Original Question: Identifying sensors enabled and sensors data, from a data packet of End Point in a network by sushma.r
Hi,
I have downloaded the ADRadioNet EDK, I have an issues in identifying specific sensor values in the payload displayed on the tool. Is there a way to determine form the data packets, which specific sensor values are being sent for a give End point? I am hoping that there is some way to identify specific FLOAT values as coming from a specific sensor based on the packet data alone.
Thanks,
sushma r
Verified Answer: RE: Identifying sensors enabled and sensors data, from a data packet of End Point in a network by harishkumarkatam
Hi Sushma,
The specific sensor values that are being sent from a given node can be determined by the "sensor mask" value. This value is present in the packet sent from the node. The format of the two byte sensor mask is given below. The feature of sensor mask is added in the ADRadioNet EDKv2.0 version of code.
Users can download the latest code from the download link from ADRadioNet EngineerZone page as shown. (or from www.analog.com/wsn)
Bits |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Sensor |
BMP280 |
ADIS16480 |
VOS |
PModJSTK |
ADT7310 |
EVAL_POT |
PIR |
ALS |
AD7151 |
SHT21 |
ADXL345 |
ADXL362 |
ADT75 |
LED |
In the ADRadioNet EDKv2.0, the above sensor mask is assumed. If some sensors are to enabled in a specific node, those will be enabled in the sensor mask register. The sensor data corresponding to the enabled sensors will be available in the order (from LSB side). The length of the each sensor payload is defined a priori (for example, the accelerometer sensor will have 3 float values corresponding to x, y & z).
Please find the example sensor information below captured at ANodeCenterPoint tool by enabling the following sensors
-
- ADT75 --> Temperature
- ADXL362 --> Accelerometer
- SHT21--> Temperature and Relative Humidity
- ALS --> Ambient Light Sensor APDS9005
The sensor data is followed by statistics. The sensor data is highlighted in different colors above.
Yellow --> INT_MARK
Light Green --> SINGLE_MARK
Red --> Sensor Enable Mask
Dark Green --> Temperature Data
Dark Yellow --> Accelerometer (X, Y and Z axis)
Grey --> Temperature and Relative Humidity
Pink --> Ambient Light Sensor APDS9005
The above example sensor enable mask (0x0056) indicates the ADT75, ADXL362, SHT21 and ALS (APDS9005) sensors are enabled. The below table indicates how the value of mask is calculated.
Sensor |
BMP280 |
ADIS16480 |
VOS |
PModJSTK |
ADT7310 |
EVAL_POT |
PIR |
ALS |
AD7151 |
SHT21 |
ADXL345 |
ADXL362 |
ADT75 |
LED |
||
0x0056 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0000000001010110 = 86 = 0x56
The sensor data representation at “Network overview” window
Sensor Data |
|
INT[0] |
Sensor Enable Mask |
FLOAT[0] |
ADT75 Temperature |
FLOAT[1] |
ADXL362 X-axis |
FLOAT[2] |
ADXL362 Y-axis |
FLOAT[3] |
ADXL362 Z-axis |
FLOAT[4] |
SHT21 Temperature |
FLOAT[5] |
SHT21 Relative Humidity |
FLOAT[6] |
ALS (APDS9005) |
You may choose to change the order of sensors and create your own sensor mask as desired.This requires a little bit of code modifications.
Hope this helps. Please get back if you need any further clarification
Thanks,
Harish