83 uint64_t messageData = 0u;
85 float minimumStringSoc_perc = FLT_MAX;
86 float maximumStringSoc_perc = FLT_MIN;
87 float minimumStringSoe_perc = FLT_MAX;
88 float maximumStringSoe_perc = FLT_MIN;
89 uint32_t minimumStringEnergy_Wh = UINT32_MAX;
98 if (maximumStringSoc_perc < kpkCanShim->pTableSox->maximumSoc_perc[s]) {
101 if (maximumStringSoe_perc < kpkCanShim->pTableSox->maximumSoe_perc[s]) {
126 float packSoc_perc = 0.0f;
127 float packSoe_perc = 0.0f;
128 uint32_t packEnergyLeft_Wh = 0u;
143 packEnergyLeft_Wh = 0u;
147 float signalData = packSoc_perc;
149 float factor = 100.0f;
150 signalData = (signalData + offset) * factor;
151 uint64_t data = (int64_t)signalData;
156 signalData = packSoe_perc;
159 signalData = (signalData + offset) * factor;
160 data = (int64_t)signalData;
165 signalData = packEnergyLeft_Wh;
168 signalData = (signalData + offset) * factor;
169 data = (int64_t)signalData;
176 factor = 1.0f / 0.025f;
177 signalData = (signalData + offset) * factor;
178 data = (int64_t)signalData;
189 #ifdef UNITY_UNIT_TEST
#define BS_NR_OF_STRINGS
Number of parallel strings in the battery pack.
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 CANTX_PackStateEstimation(CAN_MESSAGE_PROPERTIES_s message, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
can tx callback function for state estimation values
Header for the driver for the CAN module.
#define CANTX_PACK_STATE_ESTIMATION_ID
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.
CAN_ENDIANNESS_e endianness
DATA_BLOCK_SOX_s * pTableSox
float maximumSoc_perc[BS_NR_OF_STRINGS]
float minimumSoe_perc[BS_NR_OF_STRINGS]
float minimumSoc_perc[BS_NR_OF_STRINGS]
float maximumSoe_perc[BS_NR_OF_STRINGS]
uint32_t minimumSoe_Wh[BS_NR_OF_STRINGS]