Fix int promotion compile errors on thermostat application (#34627)
* Fix int promotion compile errors
* Fix cast types
* Minimize cast size
* Fix typo
---------
Co-authored-by: Andrei Litvin <andreilitvin@google.com>
diff --git a/examples/thermostat/linux/thermostat-delegate-impl.cpp b/examples/thermostat/linux/thermostat-delegate-impl.cpp
index fa7bd9a..491e44a 100644
--- a/examples/thermostat/linux/thermostat-delegate-impl.cpp
+++ b/examples/thermostat/linux/thermostat-delegate-impl.cpp
@@ -96,10 +96,10 @@
const uint8_t handle[] = { static_cast<uint8_t>(presetScenario) };
mPresets[index].SetPresetHandle(DataModel::MakeNullable(ByteSpan(handle)));
mPresets[index].SetName(NullOptional);
- int16_t coolingSetpointValue = 2500 + index * 100;
+ int16_t coolingSetpointValue = static_cast<int16_t>(2500 + (index * 100));
mPresets[index].SetCoolingSetpoint(MakeOptional(coolingSetpointValue));
- int16_t heatingSetpointValue = 2100 - index * 100;
+ int16_t heatingSetpointValue = static_cast<int16_t>(2100 - (index * 100));
mPresets[index].SetHeatingSetpoint(MakeOptional(heatingSetpointValue));
mPresets[index].SetBuiltIn(DataModel::MakeNullable(true));
index++;
diff --git a/examples/thermostat/linux/thermostat-manager.cpp b/examples/thermostat/linux/thermostat-manager.cpp
index 0026616..e96f04a 100644
--- a/examples/thermostat/linux/thermostat-manager.cpp
+++ b/examples/thermostat/linux/thermostat-manager.cpp
@@ -398,8 +398,8 @@
void ThermostatManager::UpdateRunningModeForHeating()
{
- const int16_t heatingOnThreshold = mOccupiedHeatingSetpoint - mOccupiedSetback * 10;
- const int16_t heatingOffThreshold = mOccupiedHeatingSetpoint + mOccupiedSetback * 10;
+ const int16_t heatingOnThreshold = mOccupiedHeatingSetpoint - static_cast<int16_t>(mOccupiedSetback * 10);
+ const int16_t heatingOffThreshold = mOccupiedHeatingSetpoint + static_cast<int16_t>(mOccupiedSetback * 10);
if (mRunningMode == ThermostatRunningModeEnum::kHeat)
{
@@ -429,8 +429,8 @@
void ThermostatManager::UpdateRunningModeForCooling()
{
- const int16_t coolingOffThreshold = mOccupiedCoolingSetpoint - mOccupiedSetback * 10;
- const int16_t coolingOnThreshold = mOccupiedCoolingSetpoint + mOccupiedSetback * 10;
+ const int16_t coolingOffThreshold = mOccupiedCoolingSetpoint - static_cast<int16_t>(mOccupiedSetback * 10);
+ const int16_t coolingOnThreshold = mOccupiedCoolingSetpoint + static_cast<int16_t>(mOccupiedSetback * 10);
if (mRunningMode == ThermostatRunningModeEnum::kCool)
{