Payload Format Changes

This commit is contained in:
seiichiro 2020-01-20 14:33:10 +01:00
parent 68697a4b19
commit c4cd51a791
1 changed files with 28 additions and 16 deletions

View File

@ -159,30 +159,42 @@ void setup()
void loop()
{
// Without Sensor (Beacon Mode) just send the Battery Voltage
// Use less acurate Battery Voltage Reading (100mv Steps) to be
// Compatible with IOT-Usergroup Basenodes
// Create Data Structure for Sensor Data
#ifdef HAS_NO_SENSOR
uint8_t data[1];
struct lora_data {
uint8_t bat;
} __attribute__ ((packed)) data;
#elif defined HAS_SHT21
struct lora_data {
uint8_t bat;
int32_t temperature;
int32_t humidity;
} __attribute__ ((packed)) data;
#elif defined HAS_BME280
struct lora_data {
uint8_t bat;
int32_t temperature;
int32_t humidity;
int32_t pressure;
} __attribute__ ((packed)) data;
#endif
// Get Sensor Data
#ifdef HAS_BME280
int32_t data[4] = {0, 0, 0, 0};
sensor.getData(&data[0], &data[1], &data[2]);
sensor.getData(&data.temperature, &data.pressure, &data.humidity);
#endif
#ifdef HAS_SHT21
int32_t data[4] = {0, 0, 0, 0};
data[0] = (int32_t)(sensor.getTemperature()*100);
data[2] = (int32_t)(sensor.getHumidity()*100);
data.temperature = (int32_t)(sensor.getTemperature()*100);
data.humidity = (int32_t)(sensor.getHumidity()*100);
#endif
#ifdef HAS_NO_SENSOR
data[0] = (uint8_t)(readVcc()/20);
#else
data[3] = readVcc();
#endif
// Add Battery Voltage, 20mv steps, encoded into 1 Byte
uint32_t batv = readVcc();
data.bat = (uint8_t)(batv/20);
if (batv % 20 > 9)
data.bat += 1;
// LED On before Sending
#ifdef LED_PIN
@ -191,12 +203,12 @@ void loop()
#ifdef RF_LORA
// 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);
Frame_Counter_Tx++;
#endif
#ifdef RF_RFM69
radio.send(RFM69_GATEWAY, data, sizeof(data));
radio.send(RFM69_GATEWAY, &data, sizeof(data));
radio.sleep();
#endif