65 #define CANRX_PARTICULAR_MATTER_CONCENTRATION_START_BIT (7u)
66 #define CANRX_PARTICULAR_MATTER_CONCENTRATION_LENGTH (16u)
67 #define CANRX_AEROSOL_SENSOR_STATUS_START_BIT (34u)
68 #define CANRX_AEROSOL_SENSOR_STATUS_LENGTH (3u)
69 #define CANRX_AEROSOL_SENSOR_FAULTS_START_BIT (39u)
70 #define CANRX_AEROSOL_SENSOR_FAULTS_LENGTH (5u)
71 #define CANRX_AEROSOL_SENSOR_CRC_CHECK_CODE_START_BIT (63u)
72 #define CANRX_AEROSOL_SENSOR_CRC_CHECK_CODE_LENGTH (8u)
75 #define CANRX_AEROSOL_SENSOR_STATUS_NORMAL (0u)
76 #define CANRX_AEROSOL_SENSOR_STATUS_ALARM (1u)
79 #define CANRX_AEROSOL_SENSOR_NO_ERROR (0u)
80 #define CANRX_AEROSOL_SENSOR_PHOTOELECTRIC_ERROR (1u)
81 #define CANRX_AEROSOL_SENSOR_VOLTAGE_SUPPLY_OVER_VOLTAGE_ERROR (2u)
82 #define CANRX_AEROSOL_SENSOR_VOLTAGE_SUPPLY_UNDER_VOLTAGE_ERROR (3u)
124 switch (signalData) {
149 switch (signalData) {
174 uint8_t data = (uint8_t)signalData;
181 const uint8_t *
const kpkCanData,
189 uint64_t messageData = 0u;
190 uint64_t canSignal = 0u;
201 uint16_t signalData = (uint16_t)canSignal;
211 signalData = (uint16_t)canSignal;
221 signalData = (uint16_t)canSignal;
231 signalData = (uint16_t)canSignal;
239 #ifdef UNITY_UNIT_TEST
240 extern void TEST_CANRX_HandleAerosolSensorErrors(
const CAN_SHIM_s *
const kpkCanShim, uint16_t signalData) {
243 extern void TEST_CANRX_HandleAerosolSensorStatus(
const CAN_SHIM_s *
const kpkCanShim, uint16_t signalData) {
246 extern void TEST_CANRX_SetParticulateMatterConcentration(
const CAN_SHIM_s *
const kpkCanShim, uint16_t signalData) {
249 extern void TEST_CANRX_SetAerosolSensorCrcCheckCode(
const CAN_SHIM_s *
const kpkCanShim, uint16_t signalData) {
static void CANRX_HandleAerosolSensorStatus(const CAN_SHIM_s *const kpkCanShim, uint16_t signalData)
Sets sensor status in database.
#define CANRX_AEROSOL_SENSOR_STATUS_START_BIT
#define CANRX_AEROSOL_SENSOR_CRC_CHECK_CODE_LENGTH
#define CANRX_AEROSOL_SENSOR_VOLTAGE_SUPPLY_UNDER_VOLTAGE_ERROR
#define CANRX_AEROSOL_SENSOR_VOLTAGE_SUPPLY_OVER_VOLTAGE_ERROR
#define CANRX_AEROSOL_SENSOR_FAULTS_LENGTH
#define CANRX_PARTICULAR_MATTER_CONCENTRATION_START_BIT
#define CANRX_PARTICULAR_MATTER_CONCENTRATION_LENGTH
static void CANRX_SetParticulateMatterConcentration(const CAN_SHIM_s *const kpkCanShim, uint16_t signalData)
Sets current particulate matter measurement value in database.
#define CANRX_AEROSOL_SENSOR_STATUS_LENGTH
#define CANRX_AEROSOL_SENSOR_NO_ERROR
static void CANRX_SetAerosolSensorCrcCheckCode(const CAN_SHIM_s *const kpkCanShim, uint16_t signalData)
Sets CRC check code from sensor in database.
#define CANRX_AEROSOL_SENSOR_FAULTS_START_BIT
#define CANRX_AEROSOL_SENSOR_STATUS_ALARM
#define CANRX_AEROSOL_SENSOR_STATUS_NORMAL
#define CANRX_AEROSOL_SENSOR_CRC_CHECK_CODE_START_BIT
uint32_t CANRX_AerosolSensor(CAN_MESSAGE_PROPERTIES_s message, const uint8_t *const kpkCanData, const CAN_SHIM_s *const kpkCanShim)
can rx callback function for aerosol sensor messages
#define CANRX_AEROSOL_SENSOR_PHOTOELECTRIC_ERROR
static void CANRX_HandleAerosolSensorErrors(const CAN_SHIM_s *const kpkCanShim, uint16_t signalData)
Sets error flags in database as received from can message.
Header for the driver for the CAN module.
#define CANRX_AEROSOL_SENSOR_ID
#define CANRX_AEROSOL_SENSOR_ID_TYPE
void CAN_RxGetMessageDataFromCanData(uint64_t *pMessage, const uint8_t *const kpkCanData, CAN_ENDIANNESS_e endianness)
Copy CAN data from 8 bytes to a 64-bit variable.
void CAN_RxGetSignalDataFromMessageData(uint64_t message, uint64_t bitStart, uint8_t bitLength, uint64_t *pCanSignal, CAN_ENDIANNESS_e endianness)
Gets CAN signal data from a 64-bit variable. This function is used to get signal data from a 64-bit C...
Headers for the helper functions for the CAN module.
#define DATA_WRITE_DATA(...)
DIAG_RETURNTYPE_e DIAG_Handler(DIAG_ID_e diagId, DIAG_EVENT_e event, DIAG_IMPACT_LEVEL_e impact, uint32_t data)
DIAG_Handler provides generic error handling, based on diagnosis group.
#define FAS_ASSERT(x)
Assertion macro that asserts that x is true.
#define NULL_PTR
Null pointer.
CAN_IDENTIFIER_TYPE_e idType
CAN_ENDIANNESS_e endianness
DATA_BLOCK_AEROSOL_SENSOR_s * pTableAerosolSensor
uint16_t particulateMatterConcentration
bool supplyOvervoltageError
bool supplyUndervoltageError