diff --git a/Software/src/inverter/SMA-TRIPOWER-CAN.cpp b/Software/src/inverter/SMA-TRIPOWER-CAN.cpp index 331c0f63..f11dd7eb 100644 --- a/Software/src/inverter/SMA-TRIPOWER-CAN.cpp +++ b/Software/src/inverter/SMA-TRIPOWER-CAN.cpp @@ -64,6 +64,30 @@ void SmaTripowerInverter:: SMA_4D8.data.u8[6] = READY_STATE; } + //Highest battery temperature + SMA_518.data.u8[0] = (datalayer.battery.status.temperature_max_dC >> 8); + SMA_518.data.u8[1] = (datalayer.battery.status.temperature_max_dC & 0x00FF); + //Lowest battery temperature + SMA_518.data.u8[2] = (datalayer.battery.status.temperature_min_dC >> 8); + SMA_518.data.u8[3] = (datalayer.battery.status.temperature_min_dC & 0x00FF); + //Sum of all cellvoltages + SMA_518.data.u8[4] = (datalayer.battery.status.voltage_dV >> 8); + SMA_518.data.u8[5] = (datalayer.battery.status.voltage_dV & 0x00FF); + //Cell min/max voltage (mV / 25) + SMA_518.data.u8[6] = (datalayer.battery.status.cell_min_voltage_mV / 25); + SMA_518.data.u8[7] = (datalayer.battery.status.cell_max_voltage_mV / 25); + + //Lifetime charged energy amount + SMA_458.data.u8[0] = (datalayer.battery.status.total_charged_battery_Wh & 0xFF000000) >> 24; + SMA_458.data.u8[1] = (datalayer.battery.status.total_charged_battery_Wh & 0x00FF0000) >> 16; + SMA_458.data.u8[2] = (datalayer.battery.status.total_charged_battery_Wh & 0x0000FF00) >> 8; + SMA_458.data.u8[3] = (datalayer.battery.status.total_charged_battery_Wh & 0x000000FF); + //Lifetime discharged energy amount + SMA_458.data.u8[4] = (datalayer.battery.status.total_discharged_battery_Wh & 0xFF000000) >> 24; + SMA_458.data.u8[5] = (datalayer.battery.status.total_discharged_battery_Wh & 0x00FF0000) >> 16; + SMA_458.data.u8[6] = (datalayer.battery.status.total_discharged_battery_Wh & 0x0000FF00) >> 8; + SMA_458.data.u8[7] = (datalayer.battery.status.total_discharged_battery_Wh & 0x000000FF); + control_contactor_led(); // Check if Enable line is working. If we go too long without any input, raise an event