Skip to content

Commit 6917ff8

Browse files
committed
Add list of sensors with long payload
1 parent 63d03ac commit 6917ff8

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

src/sensors/SensorID.h

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#ifndef SENSOR_ID_H_
22
#define SENSOR_ID_H_
33

4-
#define NUM_SUPPORTEND_SENSOR 77
4+
#define NUM_SUPPORTEND_SENSOR 79
5+
#define NUM_LONG_SENSOR 2
56

67
enum SensorID {
78
SENSOR_ID_ACC_PASS = 1, /* Accelerometer passthrough */
@@ -99,7 +100,8 @@ enum SensorPayload {
99100
P40BITUNSIGNED = 10,
100101
PEVENT = 11,
101102
ACTIVITY = 12,
102-
DEBUG_DATA = 13
103+
DEBUG_DATA = 13,
104+
BSEC = 14
103105
};
104106

105107
struct SensorStruct
@@ -109,6 +111,11 @@ struct SensorStruct
109111
float scaleFactor;
110112
};
111113

114+
static SensorStruct LongSensorList[2] = {
115+
{SENSOR_ID_BSEC, BSEC, 1.0},
116+
{SENSOR_ID_BSEC_LEGACY, BSEC, 1.0}
117+
};
118+
112119
static SensorStruct SensorList[NUM_SUPPORTEND_SENSOR] = {
113120
{SENSOR_ID_ACC_PASS, VECTOR3D, 1.0},
114121
{SENSOR_ID_ACC_RAW, VECTOR3D, 1.0},
@@ -158,6 +165,7 @@ static SensorStruct SensorList[NUM_SUPPORTEND_SENSOR] = {
158165
{SENSOR_ID_GYRO_BIAS_WU, VECTOR3D, 1.0},
159166
{SENSOR_ID_MAG_BIAS_WU, VECTOR3D, 1.0},
160167
{SENSOR_ID_STD_WU, PEVENT, 1.0},
168+
{SENSOR_ID_BSEC, BSEC, 1.0},
161169
{SENSOR_ID_TEMP, P16BITSIGNED, 0.01},
162170
{SENSOR_ID_BARO, P24BITUNSIGNED, 0.0078},
163171
{SENSOR_ID_HUM, P8BITUNISIGNED, 1.0},
@@ -180,6 +188,7 @@ static SensorStruct SensorList[NUM_SUPPORTEND_SENSOR] = {
180188
{SENSOR_ID_PROX, P8BITUNISIGNED, 1.0},
181189
{SENSOR_ID_LIGHT_WU, P16BITUNSIGNED, 46.296},
182190
{SENSOR_ID_PROX_WU, P8BITUNISIGNED, 1.0},
191+
{SENSOR_ID_BSEC_LEGACY, BSEC, 1.0},
183192
{DEBUG_DATA_EVENT, DEBUG_DATA, 1.0},
184193
{TIMESTAMP_SMALL_DELTA, P8BITUNISIGNED, 0.000015625},
185194
{TIMESTAMP_SMALL_DELTA_WU, P8BITUNISIGNED, 0.000015625},

src/sensors/SensorManager.cpp

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "SensorManager.h"
2+
#include "SensorID.h"
23

34
SensorManager::SensorManager() :
45
_sensors(),
@@ -10,14 +11,27 @@ void SensorManager::process(SensorLongDataPacket &data)
1011
{
1112
for (int i = 0; i < _sensorsLen; i++) {
1213
if (data.sensorId == _sensors[i]->id()) {
13-
if (data.sensorId == 115 || data.sensorId == 171) {
14+
15+
bool longSensor = false;
16+
17+
for (int i = 0; i < NUM_LONG_SENSOR; i++) {
18+
if (LongSensorList[i].id == data.sensorId) {
19+
longSensor = true;
20+
break;
21+
}
22+
}
23+
24+
if (longSensor) {
1425
_sensors[i]->setData(data);
1526
} else {
27+
// All the other sensors have short payloads
1628
SensorDataPacket shortData;
1729
memcpy(&shortData, &data, sizeof(SensorDataPacket));
1830
_sensors[i]->setData(shortData);
1931
}
20-
return; // can more sensor objects use the same sensor id?
32+
33+
return;
34+
2135
}
2236
}
2337
}

0 commit comments

Comments
 (0)