瀏覽代碼

+ advanced dummy model

DLIMIKO 1 年之前
父節點
當前提交
2c83094e42
共有 1 個文件被更改,包括 45 次插入10 次删除
  1. 45 10
      src/app_dummy.c

+ 45 - 10
src/app_dummy.c

@@ -44,20 +44,51 @@ nBus_sensorType_t dummy_getType(uint8_t sensor_index)
 
 uint8_t dummy_getSensorCount()
 {
-    return 4;
+    return 5;
 }
 
-uint32_t dummy_data[4] = {0x12345678, 0x9ABCDEF0, 0x87654321, 0x0FEDCBA9};
+uint16_t  dummy_data_acc[3] = {0x31F5, 0xCCBD, 0xAABB};                     // dec: 12789, -13123, -21829
+uint32_t  dummy_data_gyro[3] = {0x1234ABCD, 0xFEDCBA98, 0x89ABCD13};        // dec: 305441741, -19088744, -1985229549
+uint8_t   dummy_data_mag[2] = {0xAB, 0x12};                                 // dec: 171, 18                            
+uint64_t  dummy_data_hrate[2] = {0x1234ABCD7890ABCD, 0xABCD123498765432};   // dec: 1311862290451049421, -6067173105892699086
+uint16_t  dummy_pressure[1] = {0x7FAB};                                     // dec: 32683
+
+uint8_t  *dummy_data_ptrs[5] = {(uint8_t*)dummy_data_acc, (uint8_t*)dummy_data_gyro, (uint8_t*)dummy_data_mag, (uint8_t*)dummy_data_hrate, (uint8_t*)dummy_pressure};
+uint8_t  dummy_data_lens[5] = {6, 12, 2, 16, 2}; 
+
 
 uint8_t dummy_getData(uint8_t sensor_index, uint8_t *data)
 {
-    for (uint8_t i = 0; i < 4; ++i)
+    uint16_t current_len = 0;
+    
+    if (sensor_index)
+    {
+        data[current_len++] = sensor_index;
+
+        uint16_t byte_len = dummy_data_lens[sensor_index - 1];
+        
+        for (uint16_t i = 0; i < byte_len; i++)
+        {
+            data[current_len++] = dummy_data_ptrs[sensor_index - 1][i];
+        }
+    }
+    else
     {
-        data[i] = ((uint8_t *)&dummy_data)[i + (sensor_index - 1) * 8];
-        data[4 + i] = ((uint8_t *)&dummy_data)[4 + i + (sensor_index - 1) * 8];
+        uint16_t sensors = dummy_getSensorCount();
+        
+        for (uint16_t sensor = 0; sensor < sensors; sensor++)
+        {
+            data[current_len++] = sensor + 1;
+            uint16_t byte_len = dummy_data_lens[sensor];
+
+            for (uint16_t i = 0; i < byte_len; i++)
+            {
+                data[current_len++] = dummy_data_ptrs[sensor][i];
+            }
+        }
     }
 
-    return 8;
+    return current_len;
 }
 
 uint8_t dummy_setData(uint8_t *data)
@@ -113,19 +144,23 @@ nBus_sensorFormat_t dummy_getSensorFormat(uint8_t sensor_index)
     {
     case 1:
         return (nBus_sensorFormat_t){
-            .sign = 0, .unit_multiplier = -3, .value_multiplier = -6, .byte_length = 4, .samples = 4};
+            .sign = 1, .unit_multiplier = -3, .value_multiplier = 2, .byte_length = 2, .samples = 3};
         break;
     case 2:
         return (nBus_sensorFormat_t){
-            .sign = 0, .unit_multiplier = -4, .value_multiplier = -7, .byte_length = 4, .samples = 4};
+            .sign = 1, .unit_multiplier = -4, .value_multiplier = 1, .byte_length = 4, .samples = 3};
         break;
     case 3:
         return (nBus_sensorFormat_t){
-            .sign = 1, .unit_multiplier = 3, .value_multiplier = 6, .byte_length = 4, .samples = 4};
+            .sign = 0, .unit_multiplier = 3, .value_multiplier = 2, .byte_length = 1, .samples = 2};
         break;
     case 4:
         return (nBus_sensorFormat_t){
-            .sign = 1, .unit_multiplier = 4, .value_multiplier = 7, .byte_length = 4, .samples = 4};
+            .sign = 1, .unit_multiplier = 4, .value_multiplier = -7, .byte_length = 8, .samples = 2};
+        break;
+    case 5:
+        return (nBus_sensorFormat_t){
+            .sign = 1, .unit_multiplier = 4, .value_multiplier = -3, .byte_length = 2, .samples = 1};
         break;
     }
 }