86 float signalData = 0.0f;
91 float minimumStringSoc_perc = FLT_MAX;
92 float maximumStringSoc_perc = FLT_MIN;
93 float minimumStringSoe_perc = FLT_MAX;
94 float maximumStringSoe_perc = FLT_MIN;
95 float packSoc_perc = 0.0f;
96 float packSoe_perc = 0.0f;
97 uint32_t minimumStringEnergy_Wh = UINT32_MAX;
98 uint32_t packEnergyLeft_Wh = 0u;
105 for (uint8_t stringNumber = 0u; stringNumber <
BS_NR_OF_STRINGS; stringNumber++) {
107 if (maximumStringSoc_perc < kpkCanShim->pTableSox->maximumSoc_perc[stringNumber]) {
110 if (maximumStringSoe_perc < kpkCanShim->pTableSox->maximumSoe_perc[stringNumber]) {
120 for (uint8_t stringNumber = 0u; stringNumber <
BS_NR_OF_STRINGS; stringNumber++) {
148 packEnergyLeft_Wh = 0u;
152 signalData = packSoc_perc;
155 signalData = (signalData + offset) * factor;
156 data = (int64_t)signalData;
161 signalData = packSoe_perc;
164 signalData = (signalData + offset) * factor;
165 data = (int64_t)signalData;
170 signalData = packEnergyLeft_Wh;
173 signalData = (signalData + offset) * factor;
174 data = (int64_t)signalData;
181 factor = 1.0f / 0.025f;
182 signalData = (signalData + offset) * factor;
183 data = (int64_t)signalData;
206 uint64_t message = 0;
217 #ifdef UNITY_UNIT_TEST
uint8_t BMS_GetNumberOfConnectedStrings(void)
Returns number of connected strings.
bool BMS_IsStringClosed(uint8_t stringNumber)
Returns string state (closed or open)
BMS_CURRENT_FLOW_STATE_e BMS_GetBatterySystemState(void)
Returns current battery system state (charging/discharging, resting or in relaxation phase)
uint32_t CAN_TxStateEstimation(uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
can tx callback function for state estimation values
uint32_t CAN_TxStringStateEstimation(uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
can tx callback function for string state estimation
enum CAN_ENDIANNESS CAN_ENDIANNESS_e
void CAN_TxSetMessageDataWithSignalData(uint64_t *pMessage, uint64_t bitStart, uint8_t bitLength, uint64_t canSignal, CAN_ENDIANNESS_e endianness)
Puts CAN signal data in a 64-bit variable. This function is used to compose a 64-bit CAN message....
void CAN_TxSetCanDataWithMessageData(uint64_t message, uint8_t *pCanData, CAN_ENDIANNESS_e endianness)
Copy CAN data from a 64-bit variable to 8 bytes. This function is used to copy a 64-bit CAN message t...
Headers for the helper functions for the CAN module.
#define DATA_READ_DATA(...)
#define FAS_ASSERT(x)
Assertion macro that asserts that x is true.
math library for often used math functions
#define NULL_PTR
Null pointer.
DATA_BLOCK_SOX_s * pTableSox
float maximumSoe_perc[BS_NR_OF_STRINGS]
float minimumSoe_perc[BS_NR_OF_STRINGS]
float minimumSoc_perc[BS_NR_OF_STRINGS]
float maximumSoc_perc[BS_NR_OF_STRINGS]
uint32_t minimumSoe_Wh[BS_NR_OF_STRINGS]