foxBMS - Unit Tests  1.5.0
The foxBMS Unit Tests API Documentation
test_can_cbs_rx_debug.c
Go to the documentation of this file.
1 /**
2  *
3  * @copyright © 2010 - 2023, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V.
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright notice, this
12  * list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution.
17  *
18  * 3. Neither the name of the copyright holder nor the names of its
19  * contributors may be used to endorse or promote products derived from
20  * this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  *
33  * We kindly request you to use one or more of the following phrases to refer to
34  * foxBMS in your hardware, software, documentation or advertising materials:
35  *
36  * - ″This product uses parts of foxBMS®″
37  * - ″This product includes parts of foxBMS®″
38  * - ″This product is derived from foxBMS®″
39  *
40  */
41 
42 /**
43  * @file test_can_cbs_rx_debug.c
44  * @author foxBMS Team
45  * @date 2021-04-22 (date of creation)
46  * @updated 2023-02-03 (date of last update)
47  * @version v1.5.0
48  * @ingroup UNIT_TEST_IMPLEMENTATION
49  * @prefix TEST
50  *
51  * @brief Tests for the CAN driver callbacks
52  *
53  */
54 
55 /*========== Includes =======================================================*/
56 #include "unity.h"
57 #include "Mockcan.h"
58 #include "Mockcan_cbs_tx_debug-response.h"
59 #include "Mockcan_cbs_tx_unsupported-message.h"
60 #include "Mockdatabase.h"
61 #include "Mockdiag.h"
62 #include "Mockfoxmath.h"
63 #include "Mockfram.h"
64 #include "Mockimd.h"
65 #include "Mockos.h"
66 #include "Mockreset.h"
67 
68 #include "database_cfg.h"
69 
70 #include "can_cbs_rx.h"
72 #include "can_helper.h"
73 #include "test_assert_helper.h"
74 
75 #include <stdbool.h>
76 #include <stdint.h>
77 
78 TEST_FILE("can_cbs_rx_debug.c")
79 
80 /*========== Definitions and Implementations for Unit Test ==================*/
81 
82 #define MULTIPLEXER_VALUE_VERSION_INFORMATION (0u)
83 #define MULTIPLEXER_VALUE_RTC (1u)
84 #define MULTIPLEXER_VALUE_SOFTWARE_RESET (2u)
85 #define MULTIPLEXER_VALUE_FRAM_INITIALIZATION (3u)
86 #define MULTIPLEXER_VALUE_TIME_INFO (4u)
87 #define INVALID_MULTIPLEXER_VALUE (99u)
88 
90  .id = CANRX_DEBUG_ID,
91  .idType = CANRX_DEBUG_ID_TYPE,
92  .dlc = CAN_DEFAULT_DLC,
93  .endianness = CANRX_DEBUG_ENDIANNESS,
94 };
95 
96 /* dummy data array filled with zero */
97 const uint8_t testCanDataZeroArray[CAN_MAX_DLC] = {0};
98 const uint64_t testMessageDataZero = 0u;
101 
117 
120 
123  .pTableCellVoltage = &can_tableCellVoltages,
124  .pTableCellTemperature = &can_tableTemperatures,
125  .pTableMinMax = &can_tableMinimumMaximumValues,
126  .pTableCurrentSensor = &can_tableCurrentSensor,
127  .pTableOpenWire = &can_tableOpenWire,
128  .pTableStateRequest = &can_tableStateRequest,
129  .pTablePackValues = &can_tablePackValues,
130  .pTableSof = &can_tableSof,
131  .pTableSox = &can_tableSox,
132  .pTableErrorState = &can_tableErrorState,
133  .pTableInsulation = &can_tableInsulation,
134  .pTableMsl = &can_tableMslFlags,
135  .pTableRsl = &can_tableRslFlags,
136  .pTableMol = &can_tableMolFlags,
137 };
138 
139 /*========== Setup and Teardown =============================================*/
140 void setUp(void) {
141 }
142 
143 void tearDown(void) {
144 }
145 
146 /*========== Test Cases =====================================================*/
147 
148 /*********************************************************************************************************************/
149 /* Assertion tests of the public interface of the module, i.e., 'CANRX_Debug' */
151  /* testing assertions, therefore only dummy CAN data required in this test */
152  /* test assert for wrong message ID */
153  CAN_MESSAGE_PROPERTIES_s testMessage = {
154  .id = CAN_MAX_11BIT_ID, /* invalid ID */
155  .idType = CANRX_DEBUG_ID_TYPE,
156  .dlc = 0u, /* invalid data length */
157  .endianness = CANRX_DEBUG_ENDIANNESS, /* valid endianness */
158  };
160 
161  /* fix message ID, therfore only the DLC length is wrong and must lead to
162  an assertion. */
163  testMessage.id = CANRX_DEBUG_ID;
165 
166  /* fix the message, as we now need to test the rest of the arguments assertions */
167  testMessage.id = CAN_DEFAULT_DLC;
168 
169  /* invalid pointer for the CAN data */
171  /* invalid pointer for the database shim */
173 }
174 
176  /* invalid pointer for the CAN data */
178 }
179 
181  uint8_t testCanData[CAN_MAX_DLC] = {0};
183 }
184 
185 /*********************************************************************************************************************/
186 /* tests of the public interface of the module, i.e., 'CANRX_Debug' when valid input is provided */
187 /* the provided parameters are valid, but the multiplexer value is not known to the BMS, therefore we need to answer
188  that we do not know how to process this value */
190  uint8_t testCanData[CAN_MAX_DLC] = {0};
191 
192  testCanData[0] = INVALID_MULTIPLEXER_VALUE; /* invalid multiplexer value */
193  CANTX_UnsupportedMultiplexerValue_Expect(CANRX_DEBUG_ID, INVALID_MULTIPLEXER_VALUE);
195 }
196 
197 /* provide a valid multiplexer value (version information) */
199  uint8_t testCanData[CAN_MAX_DLC] = {0};
200 
201  testCanData[0] = MULTIPLEXER_VALUE_VERSION_INFORMATION; /* version information multiplexer message */
203 }
204 
205 /* provide a valid multiplexer value (set the RTC time) */
207  uint8_t testCanData[CAN_MAX_DLC] = {0};
208  OS_SendToBackOfQueue_IgnoreAndReturn(STD_OK);
209  testCanData[0] = MULTIPLEXER_VALUE_RTC; /* RTC multiplexer message */
211 }
212 
213 /* provide a valid multiplexer value (request a software reset) */
215  uint8_t testCanData[CAN_MAX_DLC] = {0};
216 
217  testCanData[0] = MULTIPLEXER_VALUE_SOFTWARE_RESET; /* Software reset multiplexer message */
219 }
220 
221 /* provide a valid multiplexer value (request the initialization of the FRAM) */
223  uint8_t testCanData[CAN_MAX_DLC] = {0};
224 
225  testCanData[0] = MULTIPLEXER_VALUE_FRAM_INITIALIZATION; /* (re-)initialization of the FRAM multiplexer message */
227 }
228 
229 /* provide a valid multiplexer value (time information) */
231  uint8_t testCanData[CAN_MAX_DLC] = {0};
232 
233  testCanData[0] = MULTIPLEXER_VALUE_TIME_INFO; /* BMS time information multiplexer message */
235 }
236 
237 /*********************************************************************************************************************/
238 /* test RTC helper functions */
240  /* implemented as big endian */
242  /* test message decoding */
243 }
244 
246  /* implemented as big endian */
248  /* test message decoding */
249 }
250 
252  /* implemented as big endian */
254  /* test message decoding */
255 }
256 
257 void testCANRX_GetHours(void) {
258  /* implemented as big endian */
260  /* test message decoding */
261 }
262 
264  /* implemented as big endian */
266  /* test message decoding */
267 }
268 
269 void testCANRX_GetDay(void) {
270  /* implemented as big endian */
272  /* test message decoding */
273 }
274 
275 void testCANRX_GetMonth(void) {
276  /* implemented as big endian */
278  /* test message decoding */
279 }
280 
281 void testCANRX_GetYear(void) {
282  /* implemented as big endian */
284  /* test message decoding */
285 }
286 
287 /*********************************************************************************************************************/
289  /* sending response message works as expected */
290  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
292 
293  /* sending response message does not work as expected */
294  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
296 }
297 
299  /* sending response message works as expected */
300  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
302 
303  /* sending response message does not work as expected */
304  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
306 }
307 
309  /* sending response message works as expected */
310  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
312 
313  /* sending response message does not work as expected */
314  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
316 }
317 
319  /* sending response message works as expected */
320  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
322 
323  /* sending response message does not work as expected */
324  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
326 }
327 
329  /* sending response message works as expected */
330  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
332 
333  /* sending response message does not work as expected */
334  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
336 }
337 
338 /*********************************************************************************************************************/
340  /* test endianness assertion */
342 
343  /* test correct message -> return true */
344  uint64_t testMessageData = ((uint64_t)1u) << 48u; /* set bit to indicate that the software version is requested */
345  bool isRequested = TEST_CANRX_CheckIfBmsSoftwareVersionIsRequested(testMessageData, validEndianness);
346  TEST_ASSERT_TRUE(isRequested);
347 }
348 
350  /* test endianness assertion */
352 
353  /* test correct message -> return true */
354  uint64_t testMessageData = ((uint64_t)1u) << 49u; /* set bit to indicate that the MCU die Id version is requested */
355  bool isRequested = TEST_CANRX_CheckIfMcuUniqueDieIdIsRequested(testMessageData, validEndianness);
356  TEST_ASSERT_TRUE(isRequested);
357 }
358 
360  /* test endianness assertion */
362 
363  /* test correct message -> return true */
364  uint64_t testMessageData = ((uint64_t)1u) << 50u; /* set bit to indicate that the MCU lot numer is requested */
365  bool isRequested = TEST_CANRX_CheckIfMcuLotNumberIsRequested(testMessageData, validEndianness);
366  TEST_ASSERT_TRUE(isRequested);
367 }
368 
370  /* test endianness assertion */
372 
373  /* test correct message -> return true */
374  /* set bit to indicate that the MCU wafer information is requested */
375  uint64_t testMessageData = ((uint64_t)1u) << 51u;
376  bool isRequested = TEST_CANRX_CheckIfMcuWaferInformationIsRequested(testMessageData, validEndianness);
377  TEST_ASSERT_TRUE(isRequested);
378 }
379 
381  /* test endianness assertion */
383 
384  /* test correct message -> return true */
385  uint64_t testMessageData = ((uint64_t)1u) << 31u; /* set bit to indicate that the software reset is requested */
386  bool isRequested = TEST_CANRX_CheckIfSoftwareResetIsRequested(testMessageData, validEndianness);
387  TEST_ASSERT_TRUE(isRequested);
388 }
389 
391  /* test endianness assertion */
393 
394  /* test correct message -> return true */
395  /* set bit to indicate that the FRAM (re-)initialization is requested */
396  uint64_t testMessageData = ((uint64_t)1u) << 31u;
397  bool isRequested = TEST_CANRX_CheckIfSoftwareResetIsRequested(testMessageData, validEndianness);
398  TEST_ASSERT_TRUE(isRequested);
399 }
400 
402  /* test endianness assertion */
404 
405  /* test correct message -> return true */
406  /* set bit to indicate that the BMS time information is requested */
407  uint64_t testMessageData = ((uint64_t)1u) << 48u;
408  bool isRequested = TEST_CANRX_CheckIfTimeInfoIsRequested(testMessageData, validEndianness);
409  TEST_ASSERT_TRUE(isRequested);
410 }
411 
412 /*********************************************************************************************************************/
413 /* test if all functions that process the multiplexer values (pattern: CANRX_Process.*Mux) */
415  /* test endianness assertion */
417 
418  uint64_t testMessageData = ((uint64_t)1u) << 48u; /* set bit to indicate that the software version is requested */
419  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_BMS_VERSION_INFO, STD_OK);
421 
422  testMessageData = ((uint64_t)1u) << 49u; /* set bit to indicate that the MCU die Id version is requested */
423  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_UNIQUE_DIE_ID, STD_OK);
425 
426  testMessageData = ((uint64_t)1u) << 50u; /* set bit to indicate that the MCU lot numer is requested */
427  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_LOT_NUMBER, STD_OK);
429 
430  testMessageData = ((uint64_t)1u) << 51u; /* set bit to indicate that the MCU wafer information is requested */
431  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_WAFER_INFORMATION, STD_OK);
433 }
434 
436  /* test endianness assertion */
438 
439  /* provide just zero data, as it does not matter (int that test) what
440  the RTC helper functions do. It is just important that we push into
441  the queue */
442  OS_SendToBackOfQueue_IgnoreAndReturn(STD_OK);
444 }
445 
447  /* test endianness assertion */
449 
450  uint64_t testMessageData = ((uint64_t)1u) << 31u; /* set bit to indicate that the software reset is requested */
451  SYS_TriggerSoftwareReset_Expect();
453 }
454 
456  /* test endianness assertion */
458 
459  /* set bit to indicate that the FRAM (re-)initialization is requested */
460  uint64_t testMessageData = ((uint64_t)1u) << 35u;
461  FRAM_ReinitializeAllEntries_ExpectAndReturn(STD_OK);
463 }
464 
466  /* test endianness assertion */
468 
469  uint64_t testMessageData = ((uint64_t)1u) << 48u; /* set bit to indicate that the time information is requested */
470  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
472 }
CAN callbacks header.
void TEST_CANRX_ProcessSoftwareResetMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetHours(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetMinutes(uint64_t messageData, CAN_ENDIANNESS_e endianness)
bool TEST_CANRX_CheckIfMcuUniqueDieIdIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerMcuLotNumberMessage(void)
bool TEST_CANRX_CheckIfTimeInfoIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_ProcessFramInitializationMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerTimeInfoMessage(void)
bool TEST_CANRX_CheckIfFramInitializationIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetHundredthOfSeconds(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerMcuUniqueDieIdMessage(void)
void TEST_CANRX_TriggerMcuWaferInformationMessage(void)
bool TEST_CANRX_CheckIfMcuLotNumberIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetWeekday(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint32_t CANRX_Debug(CAN_MESSAGE_PROPERTIES_s message, const uint8_t *const kpkCanData, const CAN_SHIM_s *const kpkCanShim)
can rx callback function for debug messages
void TEST_CANRX_ProcessRtcMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetYear(uint64_t messageData, CAN_ENDIANNESS_e endianness)
bool TEST_CANRX_CheckIfSoftwareResetIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_ProcessVersionInformationMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
bool TEST_CANRX_CheckIfMcuWaferInformationIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetDay(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerBmsSoftwareVersionMessage(void)
bool TEST_CANRX_CheckIfBmsSoftwareVersionIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_ProcessTimeInfoMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetSeconds(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetMonth(uint64_t messageData, CAN_ENDIANNESS_e endianness)
@ CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_LOT_NUMBER
@ CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_UNIQUE_DIE_ID
@ CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_WAFER_INFORMATION
@ CANTX_DEBUG_RESPONSE_TRANSMIT_BMS_VERSION_INFO
CAN_ENDIANNESS_e
Definition: can_cfg.h:156
@ CAN_LITTLE_ENDIAN
Definition: can_cfg.h:157
@ CAN_BIG_ENDIAN
Definition: can_cfg.h:158
#define CAN_MAX_11BIT_ID
Definition: can_cfg.h:99
#define CAN_DEFAULT_DLC
Definition: can_cfg.h:103
#define CAN_MAX_DLC
Definition: can_cfg.h:101
Header for the driver for the CAN module.
#define CANRX_DEBUG_ID_TYPE
#define CANRX_DEBUG_ENDIANNESS
#define CANRX_DEBUG_ID
Headers for the helper functions for the CAN module.
Database configuration header.
@ DATA_BLOCK_ID_MIN_MAX
Definition: database_cfg.h:81
@ DATA_BLOCK_ID_SOX
Definition: database_cfg.h:97
@ DATA_BLOCK_ID_ERROR_STATE
Definition: database_cfg.h:89
@ DATA_BLOCK_ID_RSL_FLAG
Definition: database_cfg.h:95
@ DATA_BLOCK_ID_INSULATION_MONITORING
Definition: database_cfg.h:107
@ DATA_BLOCK_ID_STATE_REQUEST
Definition: database_cfg.h:98
@ DATA_BLOCK_ID_CELL_VOLTAGE
Definition: database_cfg.h:79
@ DATA_BLOCK_ID_CURRENT_SENSOR
Definition: database_cfg.h:82
@ DATA_BLOCK_ID_OPEN_WIRE_BASE
Definition: database_cfg.h:87
@ DATA_BLOCK_ID_SOF
Definition: database_cfg.h:92
@ DATA_BLOCK_ID_MSL_FLAG
Definition: database_cfg.h:94
@ DATA_BLOCK_ID_PACK_VALUES
Definition: database_cfg.h:108
@ DATA_BLOCK_ID_MOL_FLAG
Definition: database_cfg.h:96
@ DATA_BLOCK_ID_CELL_TEMPERATURE
Definition: database_cfg.h:80
@ STD_NOT_OK
Definition: fstd_types.h:84
@ STD_OK
Definition: fstd_types.h:83
#define NULL_PTR
Null pointer.
Definition: fstd_types.h:77
OS_QUEUE * pQueueImd
Definition: can_cfg.h:178
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:149
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:132
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:214
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:332
DATA_BLOCK_ID_e uniqueId
Definition: database_cfg.h:122
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:162
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:490
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:448
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:305
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:190
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:470
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:420
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:510
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:530
Helper for unit tests.
#define TEST_ASSERT_FAIL_ASSERT(_code_under_test)
assert whether assert macro has failed
void testCANRX_ProcessTimeInfoMux(void)
static DATA_BLOCK_CELL_VOLTAGE_s can_tableCellVoltages
void testCANRX_CheckIfSoftwareResetIsRequested(void)
OS_QUEUE ftsk_rtcSetTimeQueue
void testCANRX_GetMonth(void)
static DATA_BLOCK_MSL_FLAG_s can_tableMslFlags
void testCANRX_GetMinutes(void)
void testCANRX_DebugRtcMultiplexerValue(void)
void testCANRX_DebugVersionInformationMultiplexerValue(void)
void testCANRX_DebugInvalidMultiplexerValues(void)
void testCANRX_ProcessVersionInformationMux(void)
void testCANRX_CheckIfBmsSoftwareVersionIsRequested(void)
void testCANRX_TriggerMcuWaferInformationMessage(void)
void testCANRX_ProcessRtcMux(void)
static DATA_BLOCK_MIN_MAX_s can_tableMinimumMaximumValues
static DATA_BLOCK_OPEN_WIRE_s can_tableOpenWire
void testCANRX_GetYear(void)
#define MULTIPLEXER_VALUE_FRAM_INITIALIZATION
void testCANRX_GetHundredthOfSeconds(void)
#define MULTIPLEXER_VALUE_RTC
void testCANRX_CheckIfMcuUniqueDieIdIsRequested(void)
void testCANRX_TriggerMcuUniqueDieIdMessage(void)
void testCANRX_DebugTimeInfoMultiplexerValue(void)
void testCANRX_DebugFramInitializationMultiplexerValue(void)
void testCANRX_DebugAssertionsParamCanData(void)
static DATA_BLOCK_PACK_VALUES_s can_tablePackValues
void testCANRX_DebugSoftwareResetMultiplexerValue(void)
#define MULTIPLEXER_VALUE_SOFTWARE_RESET
void testCANRX_CheckIfMcuLotNumberIsRequested(void)
void testCANRX_CheckIfTimeInfoIsRequested(void)
#define MULTIPLEXER_VALUE_VERSION_INFORMATION
static DATA_BLOCK_MOL_FLAG_s can_tableMolFlags
#define MULTIPLEXER_VALUE_TIME_INFO
void testCANRX_GetSeconds(void)
const CAN_ENDIANNESS_e validEndianness
CAN_MESSAGE_PROPERTIES_s validRxDebugTestMessage
void testCANRX_ProcessSoftwareResetMux(void)
void testCANRX_TriggerTimeInfoMessage(void)
static DATA_BLOCK_ERROR_STATE_s can_tableErrorState
const uint64_t testMessageDataZero
void setUp(void)
void testCANRX_DebugAssertionsParamDatabaseShim(void)
void testCANRX_DebugAssertionsParamMessage(void)
void tearDown(void)
const uint8_t testCanDataZeroArray[CAN_MAX_DLC]
const CAN_SHIM_s can_kShim
static DATA_BLOCK_CELL_TEMPERATURE_s can_tableTemperatures
void testCANRX_GetWeekday(void)
void testCANRX_TriggerBmsSoftwareVersionMessage(void)
static DATA_BLOCK_SOX_s can_tableSox
void testCANRX_CheckIfMcuWaferInformationIsRequested(void)
static DATA_BLOCK_RSL_FLAG_s can_tableRslFlags
static DATA_BLOCK_STATE_REQUEST_s can_tableStateRequest
void testCANRX_GetDay(void)
void testCANRX_TriggerMcuLotNumberMessage(void)
static DATA_BLOCK_INSULATION_MONITORING_s can_tableInsulation
static DATA_BLOCK_SOF_s can_tableSof
void testCANRX_ProcessFramInitializationMux(void)
void testCANRX_GetHours(void)
void testCANRX_CheckIfFramInitializationIsRequested(void)
const CAN_ENDIANNESS_e invalidEndianness
#define INVALID_MULTIPLEXER_VALUE
static DATA_BLOCK_CURRENT_SENSOR_s can_tableCurrentSensor
OS_QUEUE imd_canDataQueue