[Firmware] Adapt Decoder for Optimized Payload Format

This commit is contained in:
seiichiro 2020-01-26 17:14:12 +01:00
parent 6a6c97a01d
commit 1aac8c9f15
2 changed files with 18 additions and 11 deletions

View file

@ -11,14 +11,21 @@ Project was created using PlatformIO Atmel-AVR Framework
``` ```
function Decoder(bytes, port) { function Decoder(bytes, port) {
var decoded = {}; var decoded = {};
decoded.t = (bytes[0]) | (bytes[1] << 8 ) | (bytes[2] << 16 ) | (bytes[3] << 24)
decoded.t = decoded.t / 100 // We always have Battery Voltage
decoded.p = (bytes[4]) | (bytes[5] << 8 ) | (bytes[6] << 16 ) | (bytes[7] << 24) decoded.v = (bytes[0] * 20) / 1000.0;
decoded.p = decoded.p / 100
decoded.h = (bytes[8]) | (bytes[9] << 8 ) | (bytes[10] << 16 ) | (bytes[11] << 24) // Temperature (int32_t)
decoded.h = decoded.h / 100 if (bytes.length >= 5)
decoded.v = (bytes[12]) | (bytes[13] << 8 ) | (bytes[14] << 16 ) | (bytes[15] << 24) decoded.t = (bytes[1]) | (bytes[2] << 8 ) | (bytes[3] << 16 ) | (bytes[4] << 24) / 100.0;
decoded.v = decoded.v / 1000
// Humidity (int32_t)
if (bytes.length >= 9)
decoded.t = (bytes[5]) | (bytes[6] << 8 ) | (bytes[7] << 16 ) | (bytes[8] << 24) / 100.0;
// Atmospheric Pressure (int32t)
if (bytes.length >= 13)
decoded.t = (bytes[9]) | (bytes[10] << 8 ) | (bytes[11] << 16 ) | (bytes[12] << 24) / 100.0;
return decoded; return decoded;
} }

View file

@ -202,7 +202,7 @@ void loop()
#ifdef RF_LORA #ifdef RF_LORA
#ifdef HAS_NO_SENSOR #ifdef HAS_NO_SENSOR
// Send Packet in all 12 SFs for Beacon Mode // Send Packet in all 6 SFs for Beacon Mode
unsigned char Frame_Port =0x07; unsigned char Frame_Port =0x07;
for (int i = SF7BW125; i<=SF12BW125; i++) { for (int i = SF7BW125; i<=SF12BW125; i++) {
lora_data tdata = data; lora_data tdata = data;
@ -213,7 +213,7 @@ void loop()
} }
#else #else
// Send LoRa Packet, Increment Frame Counter // Send LoRa Packet, Increment Frame Counter
lora.Send_Data((unsigned char *)&data, sizeof(data), Frame_Counter_Tx, SF7BW125); lora.Send_Data((unsigned char *)&data, sizeof(data), Frame_Counter_Tx, SF7BW125, 0x01);
Frame_Counter_Tx++; Frame_Counter_Tx++;
#endif #endif
#endif #endif
@ -230,4 +230,4 @@ void loop()
// Sleep until next Measurement // Sleep until next Measurement
sleep(SLEEP_TIME); sleep(SLEEP_TIME);
} }