debug_fram
This commit is contained in:
parent
b4b7232937
commit
091dc183fe
7 changed files with 126 additions and 48 deletions
|
@ -86,24 +86,37 @@ void ClimateCard::setFRAMAutoSave(bool autoSave)
|
|||
|
||||
void ClimateCard::saveStateToFRAM()
|
||||
{
|
||||
fram->writeObject(fram_address, this->state);
|
||||
// fram->write8(fram_address, state.ac_temperature);
|
||||
// fram->write8(fram_address + 1, state.ac_mode);
|
||||
// fram->write8(fram_address + 2, state.ac_fan_speed);
|
||||
fram->writeObject(fram_address, state);
|
||||
Serial.println("Saved state to FRAM");
|
||||
Serial.write(0xFF);
|
||||
Serial.write(0xFF);
|
||||
Serial.write(0xFF);
|
||||
}
|
||||
|
||||
void ClimateCard::loadStateFromFRAM()
|
||||
{
|
||||
fram->readObject(fram_address, this->state);
|
||||
// If temperature is out of range, set to its respective maximum or minimum
|
||||
if (state.ac_temperature > ac.max_temperature)
|
||||
state.ac_temperature = ac.max_temperature;
|
||||
else if (state.ac_temperature < ac.min_temperature)
|
||||
state.ac_temperature = ac.min_temperature;
|
||||
// If mode is out of range, set to 0
|
||||
if (state.ac_mode > ac.modes)
|
||||
state.ac_mode = 0;
|
||||
// If fan speed is out of range, set to 0
|
||||
if (state.ac_fan_speed > ac.fan_speeds)
|
||||
state.ac_fan_speed = 0;
|
||||
// state.ac_temperature = fram->read8(fram_address);
|
||||
// state.ac_mode = fram->read8(fram_address + 1);
|
||||
// state.ac_fan_speed = fram->read8(fram_address + 2);
|
||||
fram->readObject(fram_address, state);
|
||||
// if (state.ac_temperature > ac.max_temperature)
|
||||
// state.ac_temperature = ac.max_temperature;
|
||||
// else if (state.ac_temperature < ac.min_temperature)
|
||||
// state.ac_temperature = ac.min_temperature;
|
||||
// // If mode is out of range, set to 0
|
||||
// if (state.ac_mode > ac.modes)
|
||||
// state.ac_mode = 0;
|
||||
// // If fan speed is out of range, set to 0
|
||||
// if (state.ac_fan_speed > ac.fan_speeds)
|
||||
// state.ac_fan_speed = 0;
|
||||
updateAirConditioner();
|
||||
for (uint8_t i = 0; i < callbacks.size(); i++)
|
||||
{
|
||||
callbacks[i](this->state.ac_mode, this->state.ac_fan_speed, this->state.ac_temperature);
|
||||
}
|
||||
}
|
||||
|
||||
void ClimateCard::setTemperature(uint8_t temperature)
|
||||
|
@ -137,6 +150,10 @@ void ClimateCard::setFanSpeed(uint8_t fan_speed)
|
|||
|
||||
void ClimateCard::registerChangeCallback(std::function<void(uint8_t, uint8_t, uint8_t)> callback)
|
||||
{
|
||||
Serial.print("Registering callback");
|
||||
Serial.write(0xFF);
|
||||
Serial.write(0xFF);
|
||||
Serial.write(0xFF);
|
||||
callbacks.push_back(callback);
|
||||
}
|
||||
|
||||
|
@ -199,10 +216,15 @@ void ClimateCard::updateAirConditioner()
|
|||
// rmt_write_items(RMT_TX_CHANNEL, items, itemCount, true);
|
||||
// rmt_wait_tx_done(RMT_TX_CHANNEL, portMAX_DELAY);
|
||||
// // Publish state
|
||||
// for (uint8_t i = 0; i < callbacks.size(); i++)
|
||||
// {
|
||||
// callbacks[i](this->state.ac_mode, this->state.ac_fan_speed, this->state.ac_temperature);
|
||||
// }
|
||||
Serial.print("Callbacks: ");
|
||||
Serial.println(callbacks.size());
|
||||
Serial.write(0xFF);
|
||||
Serial.write(0xFF);
|
||||
Serial.write(0xFF);
|
||||
for (uint8_t i = 0; i < callbacks.size(); i++)
|
||||
{
|
||||
callbacks[i](this->state.ac_mode, this->state.ac_fan_speed, this->state.ac_temperature);
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t ClimateCard::getSensorType()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue