|
|
@@ -1,60 +1,53 @@
|
|
|
#include "app_dummy.h"
|
|
|
#include <stdint.h>
|
|
|
|
|
|
-
|
|
|
nBusAppInterface_t dummy_driver = {
|
|
|
- dummy_init, dummy_reset, dummy_getType, dummy_getSensorCount, dummy_getData,
|
|
|
- dummy_setData, dummy_hasParam, dummy_getParam, dummy_setParam, dummy_start,
|
|
|
- dummy_stop, dummy_read, dummy_store, dummy_calibrate, dummy_getSensorFormat,
|
|
|
- dummy_find, dummy_device_ready
|
|
|
-};
|
|
|
-
|
|
|
-
|
|
|
-////////////////////////////////////////////////////////////// Dummy test data structure /////////////////////////////////////////////////////////////////////
|
|
|
-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_data_pressure[1] = {0x7FAB}; // dec: 32683
|
|
|
+ dummy_init, dummy_reset, dummy_getType, dummy_getSensorCount, dummy_getData, dummy_setData,
|
|
|
+ dummy_hasParam, dummy_getParam, dummy_setParam, dummy_start, dummy_stop, dummy_read,
|
|
|
+ dummy_store, dummy_calibrate, dummy_getSensorFormat, dummy_find, dummy_device_ready};
|
|
|
+
|
|
|
+////////////////////////////////////////////////////////////// Dummy test data structure
|
|
|
+////////////////////////////////////////////////////////////////////////
|
|
|
+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_data_pressure[1] = {0x7FAB}; // dec: 32683
|
|
|
uint8_t dummy_data_led = 0;
|
|
|
uint16_t dummy_data_motor[2] = {0x0000, 0x0000};
|
|
|
|
|
|
-
|
|
|
#define DUMMY_SUB_COUNT 7
|
|
|
#define DUMMY_SENSOR_COUNT 5
|
|
|
#define DUMMY_ACTUATOR_COUNT 2
|
|
|
|
|
|
-
|
|
|
// dummy sensors
|
|
|
-uint8_t *dummy_data_sensors[DUMMY_SENSOR_COUNT] = {(uint8_t *)dummy_data_acc, (uint8_t *)dummy_data_gyro, (uint8_t *)dummy_data_mag,
|
|
|
- (uint8_t *)dummy_data_hrate, (uint8_t *)dummy_data_pressure};
|
|
|
+uint8_t *dummy_data_sensors[DUMMY_SENSOR_COUNT] = {(uint8_t *)dummy_data_acc, (uint8_t *)dummy_data_gyro,
|
|
|
+ (uint8_t *)dummy_data_mag, (uint8_t *)dummy_data_hrate,
|
|
|
+ (uint8_t *)dummy_data_pressure};
|
|
|
|
|
|
-uint8_t dummy_data_sensor_lens[DUMMY_SENSOR_COUNT] = {sizeof(dummy_data_acc), sizeof(dummy_data_gyro), sizeof(dummy_data_mag), sizeof(dummy_data_hrate),
|
|
|
+uint8_t dummy_data_sensor_lens[DUMMY_SENSOR_COUNT] = {sizeof(dummy_data_acc), sizeof(dummy_data_gyro),
|
|
|
+ sizeof(dummy_data_mag), sizeof(dummy_data_hrate),
|
|
|
sizeof(dummy_data_pressure)};
|
|
|
|
|
|
// dummy actuators
|
|
|
uint8_t *dummy_data_actuators[DUMMY_ACTUATOR_COUNT] = {(uint8_t *)&dummy_data_led, (uint8_t *)dummy_data_motor};
|
|
|
|
|
|
-
|
|
|
uint8_t dummy_data_actuator_lens[DUMMY_ACTUATOR_COUNT] = {sizeof(dummy_data_led), sizeof(dummy_data_motor)};
|
|
|
|
|
|
-
|
|
|
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
-
|
|
|
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
uint8_t _dummy_memcpy(uint8_t sensor_index, uint8_t *dst, uint8_t *src, uint8_t count)
|
|
|
{
|
|
|
uint8_t i = 0;
|
|
|
-
|
|
|
+
|
|
|
dst[i] = sensor_index;
|
|
|
-
|
|
|
- for (; i < count; i++)
|
|
|
- dst[i + 1] = src[i];
|
|
|
-
|
|
|
- return i + 1;
|
|
|
- }
|
|
|
|
|
|
+ for (; i < count; i++)
|
|
|
+ dst[i + 1] = src[i];
|
|
|
|
|
|
+ return i + 1;
|
|
|
+}
|
|
|
|
|
|
nBusAppInterface_t *getDummyDriver()
|
|
|
{
|
|
|
@@ -98,7 +91,6 @@ uint8_t dummy_getSensorCount()
|
|
|
return 7;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
uint8_t dummy_getData(uint8_t sensor_index, uint8_t *data)
|
|
|
{
|
|
|
uint8_t buff_index = 0;
|
|
|
@@ -110,21 +102,23 @@ uint8_t dummy_getData(uint8_t sensor_index, uint8_t *data)
|
|
|
case 3:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
- return _dummy_memcpy(sensor_index, data, dummy_data_sensors[sensor_index - 1], dummy_data_sensor_lens[sensor_index - 1]);
|
|
|
+ return _dummy_memcpy(sensor_index, data, dummy_data_sensors[sensor_index - 1],
|
|
|
+ dummy_data_sensor_lens[sensor_index - 1]);
|
|
|
|
|
|
case 129:
|
|
|
case 130:
|
|
|
- return _dummy_memcpy(sensor_index, data, dummy_data_actuators[sensor_index - 129], dummy_data_actuator_lens[sensor_index - 129]);
|
|
|
+ return _dummy_memcpy(sensor_index, data, dummy_data_actuators[sensor_index - 129],
|
|
|
+ dummy_data_actuator_lens[sensor_index - 129]);
|
|
|
|
|
|
- case 0:
|
|
|
- {
|
|
|
+ case 0: {
|
|
|
uint8_t buff_index = 0;
|
|
|
-
|
|
|
+
|
|
|
for (uint8_t i = 0; i < DUMMY_SENSOR_COUNT; i++)
|
|
|
buff_index += _dummy_memcpy(i + 1, data + buff_index, dummy_data_sensors[i], dummy_data_sensor_lens[i]);
|
|
|
|
|
|
for (uint8_t i = 0; i < DUMMY_ACTUATOR_COUNT; i++)
|
|
|
- buff_index += _dummy_memcpy(i + 129, data + buff_index, dummy_data_actuators[i], dummy_data_actuator_lens[i]);
|
|
|
+ buff_index +=
|
|
|
+ _dummy_memcpy(i + 129, data + buff_index, dummy_data_actuators[i], dummy_data_actuator_lens[i]);
|
|
|
|
|
|
return buff_index;
|
|
|
}
|
|
|
@@ -137,37 +131,35 @@ uint8_t dummy_getData(uint8_t sensor_index, uint8_t *data)
|
|
|
|
|
|
nBus_statusType_t dummy_setData(uint8_t *data, uint8_t count, uint8_t *response)
|
|
|
{
|
|
|
- uint8_t actuaror_id;
|
|
|
+ uint8_t actuaror_id;
|
|
|
nBus_sensorFormat_t actuator_format;
|
|
|
uint8_t actuator_byte_count;
|
|
|
uint8_t response_idx = 0;
|
|
|
uint8_t data_idx = 0;
|
|
|
|
|
|
-
|
|
|
- while(data_idx < count)
|
|
|
+ while (data_idx < count)
|
|
|
{
|
|
|
actuaror_id = data[data_idx++]; // fetch actuator id
|
|
|
-
|
|
|
+
|
|
|
switch (actuaror_id)
|
|
|
{
|
|
|
case 129:
|
|
|
- case 130:
|
|
|
- {
|
|
|
+ case 130: {
|
|
|
actuator_format = dummy_getSensorFormat(actuaror_id);
|
|
|
actuator_byte_count = actuator_format.samples * actuator_format.byte_length;
|
|
|
|
|
|
// check for overflow
|
|
|
- // if (data_idx + actuator_byte_count > count)
|
|
|
+ // if (data_idx + actuator_byte_count > count)
|
|
|
{
|
|
|
- //response[response_idx++] = actuaror_id;
|
|
|
- //response[response_idx++] = STATUS_FAIL;
|
|
|
- //data_idx = count;
|
|
|
- //break;
|
|
|
+ // response[response_idx++] = actuaror_id;
|
|
|
+ // response[response_idx++] = STATUS_FAIL;
|
|
|
+ // data_idx = count;
|
|
|
+ // break;
|
|
|
}
|
|
|
|
|
|
for (uint8_t i = 0; i < actuator_byte_count; i++)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
dummy_data_actuators[actuaror_id - 129][i] = data[data_idx++];
|
|
|
}
|
|
|
|
|
|
@@ -180,9 +172,8 @@ nBus_statusType_t dummy_setData(uint8_t *data, uint8_t count, uint8_t *response)
|
|
|
response[response_idx++] = actuaror_id;
|
|
|
response[response_idx++] = STATUS_NOT_SUPPORTED;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return response_idx;
|
|
|
}
|
|
|
|
|
|
@@ -223,7 +214,7 @@ uint8_t dummy_store(void)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- nBus_statusType_t dummy_calibrate(uint8_t sensor_index)
|
|
|
+nBus_statusType_t dummy_calibrate(uint8_t sensor_index)
|
|
|
{
|
|
|
return STATUS_NOT_SUPPORTED;
|
|
|
}
|