Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r2e95b9c3bf3cc4e02330bec5f0267a2bf264ce9b -rd7cb8e4ffc42b5d0fead6d86f79866626551184b --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 2e95b9c3bf3cc4e02330bec5f0267a2bf264ce9b) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision d7cb8e4ffc42b5d0fead6d86f79866626551184b) @@ -121,6 +121,7 @@ { MSG_ID_DD_TESTER_LOGIN_REQUEST, &handleTesterLogInRequest }, { MSG_ID_DD_SOFTWARE_RESET_REQUEST, &handleDDSoftwareResetRequest }, { MSG_ID_TD_OP_MODE_DATA, &handleSetTDOperationMode }, + { MSG_ID_FFU_SIGNAL_DD_UPDATE_AVAILABLE, &handleUpdateAvailable }, { MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testValvesStatesPublishIntervalOverride }, { MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST, &testValveStateOverride }, { MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST, &testValveSensedStateOverride }, @@ -289,7 +290,6 @@ { MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_REQUEST, &testHandleConductivitySensorVersionRequest }, { MSG_ID_DD_TEMPERATURE_SENSOR_FILTERED_TEMP_OVERRIDE_REQUEST, &testDDTemperatureSensorFilteredReadingsOverride }, { MSG_ID_FP_SET_RECOVERY_VALVES_REQUEST, &testIOFPSetValveRecoveryConfig }, - { MSG_ID_FFU_SIGNAL_DD_UPDATE_AVAILABLE, &handleUpdateAvailable }, }; /// Calculation for number of entries in the incoming message function handler look-up table. Index: firmware/App/Services/SystemCommDD.h =================================================================== diff -u -r28d969ae6856de61c4b172e2b59cdcf56f4f53bb -rd7cb8e4ffc42b5d0fead6d86f79866626551184b --- firmware/App/Services/SystemCommDD.h (.../SystemCommDD.h) (revision 28d969ae6856de61c4b172e2b59cdcf56f4f53bb) +++ firmware/App/Services/SystemCommDD.h (.../SystemCommDD.h) (revision d7cb8e4ffc42b5d0fead6d86f79866626551184b) @@ -14,22 +14,6 @@ * @date (original) 07-Aug-2024 * ***************************************************************************/ -/************************************************************************** -* -* Copyright (c) 2024-2026 Diality Inc. - All Rights Reserved. -* -* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN -* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. -* -* @file SystemCommDD.h -* -* @author (last) Michael Garthwaite -* @date (last) 08-Sep-2025 -* -* @author (original) Vinayakam Mani -* @date (original) 07-Aug-2024 -* -***************************************************************************/ #ifndef __SYSTEM_COMM_DD_H__ #define __SYSTEM_COMM_DD_H__ Index: firmware/DD.dil =================================================================== diff -u -r8bd2386ed976da1b73ad6e29ddafa5e493b29964 -rd7cb8e4ffc42b5d0fead6d86f79866626551184b --- firmware/DD.dil (.../DD.dil) (revision 8bd2386ed976da1b73ad6e29ddafa5e493b29964) +++ firmware/DD.dil (.../DD.dil) (revision d7cb8e4ffc42b5d0fead6d86f79866626551184b) @@ -1,4 +1,4 @@ -# RM46L852PGE 05/17/26 17:30:16 +# RM46L852PGE 05/27/26 13:24:19 # ARCH=RM46L852PGE # @@ -3398,7 +3398,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_22_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_14_ENA.VALUE=0x80000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA.VALUE=0x00000800 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA.VALUE=0x00000400 DRIVER.CAN.VAR.CAN_3_MESSAGE_7_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_51_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_43_INT_LEVEL.VALUE=0x00000000 @@ -3516,7 +3516,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_23_EOB.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_15_EOB.VALUE=0x00000080 -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_DIR.VALUE=0x20000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_DIR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_3_INT_ENA_REF.VALUE=0x00000001 DRIVER.CAN.VAR.CAN_3_MESSAGE_5_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_11_ENA.VALUE=0x00000000 @@ -3628,8 +3628,8 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_32_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_EOB.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_DIR.VALUE=0x20000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_EOB.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_DIR.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_EOB.VALUE=0x00000080 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_40_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_32_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_24_MASK.VALUE=0x000007FF @@ -3678,7 +3678,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_9_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_11_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_6_BOOL_ENA.VALUE=0 -DRIVER.CAN.VAR.CAN_1_MESSAGE_11_INT_ENA.VALUE=0x00000400 +DRIVER.CAN.VAR.CAN_1_MESSAGE_11_INT_ENA.VALUE=0x00000800 DRIVER.CAN.VAR.CAN_1_MESSAGE_4_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_3_MESSAGE_62_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_54_RTR.VALUE=0x00000000 @@ -3981,7 +3981,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_10_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_5_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_1_INT_LEVEL.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_11_ID.VALUE=0x402 +DRIVER.CAN.VAR.CAN_1_MESSAGE_11_ID.VALUE=0x50 DRIVER.CAN.VAR.CAN_1_NOMINAL_BIT_TIME.VALUE=8 DRIVER.CAN.VAR.CAN_3_MESSAGE_61_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_53_INT_ENA_REF.VALUE=0x00000000 @@ -4036,7 +4036,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_49_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_59_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_ID.VALUE=20 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ID.VALUE=0x403 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ID.VALUE=0x51 DRIVER.CAN.VAR.CAN_2_MESSAGE_40_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_32_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_24_DLC.VALUE=8 @@ -4113,7 +4113,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_11_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_6_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_21_ID.VALUE=21 -DRIVER.CAN.VAR.CAN_1_MESSAGE_13_ID.VALUE=0x404 +DRIVER.CAN.VAR.CAN_1_MESSAGE_13_ID.VALUE=0x402 DRIVER.CAN.VAR.CAN_1_MESSAGE_9_INT_LEVEL.VALUE=0x00000200 DRIVER.CAN.VAR.CAN_2_MESSAGE_40_EOB.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_40_DIR.VALUE=0x20000000 @@ -4169,7 +4169,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_3_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_30_ID.VALUE=30 DRIVER.CAN.VAR.CAN_1_MESSAGE_22_ID.VALUE=22 -DRIVER.CAN.VAR.CAN_1_MESSAGE_14_ID.VALUE=0x405 +DRIVER.CAN.VAR.CAN_1_MESSAGE_14_ID.VALUE=0x403 DRIVER.CAN.VAR.CAN_2_MESSAGE_41_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_33_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_25_DLC.VALUE=8 @@ -4233,7 +4233,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_58_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_31_ID.VALUE=31 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_ID.VALUE=23 -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ID.VALUE=0x50 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ID.VALUE=0x404 DRIVER.CAN.VAR.CAN_3_MESSAGE_1_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_3_MESSAGE_5_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_41_EOB.VALUE=0x00000000 @@ -4279,7 +4279,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_39_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_ENA.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA.VALUE=0x00000400 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA.VALUE=0x00000800 DRIVER.CAN.VAR.CAN_3_MESSAGE_59_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_60_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_52_INT_LEVEL.VALUE=0x00000000 @@ -4289,7 +4289,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_40_ID.VALUE=40 DRIVER.CAN.VAR.CAN_1_MESSAGE_32_ID.VALUE=32 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_ID.VALUE=24 -DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ID.VALUE=0x51 +DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ID.VALUE=0x405 DRIVER.CAN.VAR.CAN_2_MESSAGE_50_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_42_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_34_DLC.VALUE=8 @@ -4643,7 +4643,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_31_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_23_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_23_MASK.VALUE=0x000007FF -DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA.VALUE=0x00000800 +DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA.VALUE=0x00000400 DRIVER.CAN.VAR.CAN_1_MESSAGE_15_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_8_ENA.VALUE=0x80000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_21_ID.VALUE=21 @@ -5325,7 +5325,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_57_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_49_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_11_EOB.VALUE=0x00000080 -DRIVER.CAN.VAR.CAN_1_MESSAGE_11_DIR.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_11_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_20_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_12_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_7_BOOL_ENA.VALUE=0 @@ -5430,7 +5430,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_20_EOB.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_12_EOB.VALUE=0x00000080 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_DIR.VALUE=0x20000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_DIR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_30_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_22_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_14_MASK.VALUE=0x000007FF Index: firmware/source/can.c =================================================================== diff -u -r8bd2386ed976da1b73ad6e29ddafa5e493b29964 -rd7cb8e4ffc42b5d0fead6d86f79866626551184b --- firmware/source/can.c (.../can.c) (revision 8bd2386ed976da1b73ad6e29ddafa5e493b29964) +++ firmware/source/can.c (.../can.c) (revision d7cb8e4ffc42b5d0fead6d86f79866626551184b) @@ -387,8 +387,8 @@ } /* Wait */ canREG1->IF1MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x402U & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x50U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF1CMD = (uint8) 0xF8U; canREG1->IF1NO = 11U; @@ -406,8 +406,8 @@ } /* Wait */ canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x403U & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x51U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF2CMD = (uint8) 0xF8U; canREG1->IF2NO = 12U; @@ -425,7 +425,7 @@ } /* Wait */ canREG1->IF1MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x404U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x402U & (uint32)0x000007FFU) << (uint32)18U); canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF1CMD = (uint8) 0xF8U; canREG1->IF1NO = 13U; @@ -444,7 +444,7 @@ } /* Wait */ canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x405U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x403U & (uint32)0x000007FFU) << (uint32)18U); canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF2CMD = (uint8) 0xF8U; canREG1->IF2NO = 14U; @@ -463,8 +463,8 @@ } /* Wait */ canREG1->IF1MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x50U & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x404U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF1CMD = (uint8) 0xF8U; canREG1->IF1NO = 15U; @@ -482,8 +482,8 @@ } /* Wait */ canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x51U & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)8U; + canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x405U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF2CMD = (uint8) 0xF8U; canREG1->IF2NO = 16U;