Update knx-bme680.ino

fix example (save/restore)
This commit is contained in:
Bernator 2019-10-18 16:23:08 +02:00 committed by GitHub
parent dee066e0e3
commit 960d48aab7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,8 +24,8 @@
// Helper functions declarations // Helper functions declarations
void checkIaqSensorStatus(void); void checkIaqSensorStatus(void);
void errLeds(void); void errLeds(void);
uint8_t* saveBme680State(uint8_t* buffer); void saveBme680State(uint8_t* buffer, uint32_t* size);
uint8_t* loadBme680State(uint8_t* buffer); void loadBme680State(uint8_t* buffer, uint32_t* size);
void triggerCallback(GroupObject& go); void triggerCallback(GroupObject& go);
void updateState(); void updateState();
@ -214,31 +214,32 @@ void errLeds(void)
delay(100); delay(100);
} }
uint8_t* loadBme680State(uint8_t* buffer) void loadBme680State(uint8_t* buffer, uint32_t* size)
{ {
// Existing state in EEPROM // Existing state in EEPROM
Serial.println("Reading state from EEPROM"); Serial.println("Reading state from EEPROM");
for (uint8_t i = 0; i < BSEC_MAX_STATE_BLOB_SIZE; i++) { for (uint8_t i = 0; i < *size; i++) {
Serial.println(buffer[i], HEX); Serial.println(buffer[i], HEX);
} }
iaqSensor.setState(buffer); iaqSensor.setState(buffer);
checkIaqSensorStatus(); checkIaqSensorStatus();
return buffer + BSEC_MAX_STATE_BLOB_SIZE;
} }
uint8_t* saveBme680State(uint8_t* buffer) void saveBme680State(uint8_t* buffer, uint32_t* size)
{ {
// buffer gets freed inside knx object after saved
buffer = new uint8[BSEC_MAX_STATE_BLOB_SIZE];
*size = BSEC_MAX_STATE_BLOB_SIZE;
iaqSensor.getState(buffer); iaqSensor.getState(buffer);
checkIaqSensorStatus(); checkIaqSensorStatus();
Serial.println("Writing state to EEPROM"); Serial.println("Writing state to EEPROM");
for (uint8_t i = 0; i < BSEC_MAX_STATE_BLOB_SIZE; i++) { for (uint8_t i = 0; i < *size; i++) {
Serial.println(buffer[i], HEX); Serial.println(buffer[i], HEX);
} }
return buffer + BSEC_MAX_STATE_BLOB_SIZE;
} }
void updateState(void) void updateState(void)