Index: firmware/App/Controllers/FluidLeak.c =================================================================== diff -u -ra9315539f527b92523b1598ff91e47db4d71dae2 -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Controllers/FluidLeak.c (.../FluidLeak.c) (revision a9315539f527b92523b1598ff91e47db4d71dae2) +++ firmware/App/Controllers/FluidLeak.c (.../FluidLeak.c) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -134,9 +134,11 @@ // Publish fluid leak state on interval if ( ++fluidLeakStatePublicationTimerCounter >= getU32OverrideValue( &fluidLeakStatePublishInterval ) ) { - U32 state = (U32)getFluidLeakState(); + FLUID_LEAK_DATA_T data; - broadcastData( MSG_ID_DG_FLUID_LEAK_STATE, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&state, sizeof( U32 ) ); + data.fluidLeakState = (U32)getFluidLeakState(); + + broadcastData( MSG_ID_DG_FLUID_LEAK_STATE, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&data, sizeof( FLUID_LEAK_DATA_T ) ); fluidLeakStatePublicationTimerCounter = 0; } } Index: firmware/App/Controllers/FluidLeak.h =================================================================== diff -u -ra9315539f527b92523b1598ff91e47db4d71dae2 -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Controllers/FluidLeak.h (.../FluidLeak.h) (revision a9315539f527b92523b1598ff91e47db4d71dae2) +++ firmware/App/Controllers/FluidLeak.h (.../FluidLeak.h) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -41,6 +41,13 @@ NUM_OF_FLUID_LEAK_STATES ///< Number of fluid leak detector states } FLUID_LEAK_STATES_T; +/// Fluid leak publish data structure +typedef struct +{ + U32 fluidLeakState; ///< Fluid leak state. +} FLUID_LEAK_DATA_T; + + // ********** public function prototypes ********** void initFluidLeak( void ); Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -ra9315539f527b92523b1598ff91e47db4d71dae2 -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision a9315539f527b92523b1598ff91e47db4d71dae2) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -336,7 +336,7 @@ if ( valveID < NUM_OF_VALVES ) { - if ( checkValveStateName( valveID, valveStateName ) ) + if ( TRUE == checkValveStateName( valveID, valveStateName ) ) { valveStates[ valveID ].data = convertValveStateNameToValveState( valveStateName ); result = TRUE; @@ -426,9 +426,12 @@ { // publish valve state on interval if ( ++valvesStatesPublicationTimerCounter >= getU32OverrideValue( &valvesStatesPublishInterval ) ) - { - U16 valvesStatus = getFPGAValveStates(); - broadcastData( MSG_ID_DG_VALVES_STATES, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&valvesStatus, sizeof( U16 ) ); + { + DG_VALVES_DATA_T data; + + data.valvesStatus = getFPGAValveStates(); + + broadcastData( MSG_ID_DG_VALVES_STATES, COMM_BUFFER_OUT_CAN_DG_BROADCAST, (U08*)&data, sizeof( DG_VALVES_DATA_T ) ); valvesStatesPublicationTimerCounter = 0; } Index: firmware/App/Controllers/Valves.h =================================================================== diff -u -ra9315539f527b92523b1598ff91e47db4d71dae2 -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Controllers/Valves.h (.../Valves.h) (revision a9315539f527b92523b1598ff91e47db4d71dae2) +++ firmware/App/Controllers/Valves.h (.../Valves.h) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -64,7 +64,13 @@ VRD2, ///< Valve Reservoir 2 Drain VPD, ///< Valve Production Drain NUM_OF_VALVES ///< Number of valves -} VALVES_T; +} VALVES_T; + +/// Valves publish structure +typedef struct +{ + U16 valvesStatus; ///< DG valves status. +} DG_VALVES_DATA_T; // ********** public function prototypes ********** Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -re0cdf49eb0f54239e5d765282e0952cea7ded1bd -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision e0cdf49eb0f54239e5d765282e0952cea7ded1bd) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -225,7 +225,7 @@ *************************************************************************/ static DG_DRAIN_STATE_T handleDrainStateDrain( void ) { - DG_DRAIN_STATE_T result = DG_DRAIN_STATE_DRAIN; + DG_DRAIN_STATE_T result = DG_DRAIN_STATE_DRAIN; DG_RESERVOIR_ID_T inactiveReservoir = getInactiveReservoir(); // if we have reached our target drain to volume (by weight) or cannot drain anymore, we are done draining - go back to generation idle mode Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r929a44fe491f63e6a9900227b89e3e0cd2980ed0 -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 929a44fe491f63e6a9900227b89e3e0cd2980ed0) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -187,7 +187,6 @@ flushFilterRequest = FALSE; filterFlushStartTime = getMSTimerCount(); setValveState( VPI, VALVE_STATE_OPEN ); - setValveState( VPD, VALVE_STATE_OPEN_C_TO_NC ); state = DG_STANDBY_MODE_STATE_FLUSH_FILTER; } else if ( TRUE == pendingStartDGRequest ) @@ -250,7 +249,6 @@ { endSampleWaterRequest = FALSE; setValveState( VPI, VALVE_STATE_CLOSED ); - setValveState( VPD, VALVE_STATE_CLOSED ); state = DG_STANDBY_MODE_STATE_IDLE; } @@ -283,7 +281,6 @@ { endSampleWaterRequest = FALSE; setValveState( VPI, VALVE_STATE_CLOSED ); - setValveState( VPD, VALVE_STATE_DRAIN_C_TO_NO ); state = DG_STANDBY_MODE_STATE_IDLE; } @@ -307,8 +304,6 @@ { stopSampleWaterRequest = FALSE; setValveState( VSP, VALVE_STATE_CLOSED ); - - setValveState( VPD, VALVE_STATE_DRAIN_C_TO_NO ); state = DG_STANDBY_MODE_STATE_FLUSH_FILTER_IDLE; } Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -ra9315539f527b92523b1598ff91e47db4d71dae2 -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a9315539f527b92523b1598ff91e47db4d71dae2) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -273,9 +273,11 @@ // Publish voltages monitor data on interval if ( ++alarmInfoPublicationTimerCounter >= getU32OverrideValue( &alarmInfoPublishInterval ) ) { - U32 safetyActivated = (U32)isSafetyShutdownActivated(); + SAFETY_SHUTDOWN_ACTIVATION_DATA_T data; - broadcastData( MSG_ID_DG_ALARM_INFO, COMM_BUFFER_OUT_CAN_DG_ALARM, (U08*)&safetyActivated, sizeof( U32 ) ); + data.safetyShutdownStatus = (U32)isSafetyShutdownActivated(); + + broadcastData( MSG_ID_DG_ALARM_INFO, COMM_BUFFER_OUT_CAN_DG_ALARM, (U08*)&data, sizeof( SAFETY_SHUTDOWN_ACTIVATION_DATA_T ) ); alarmInfoPublicationTimerCounter = 0; } } @@ -401,9 +403,11 @@ { if ( TRUE == alarmIsActive[ a ] ) { - U32 al = (U32)a; + ALARM_NAME_DATA_T data; - broadcastData( MSG_ID_ALARM_CLEARED, COMM_BUFFER_OUT_CAN_DG_ALARM, (U08*)&al, sizeof( U32 ) ); + data.alarmName = (U32)a; + + broadcastData( MSG_ID_ALARM_CLEARED, COMM_BUFFER_OUT_CAN_DG_ALARM, (U08*)&data, sizeof( ALARM_NAME_DATA_T ) ); alarmIsActive[ a ] = FALSE; } } Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -ra9315539f527b92523b1598ff91e47db4d71dae2 -rc65551beea443f6fb5a50c5be5af73c97fe77cf5 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision a9315539f527b92523b1598ff91e47db4d71dae2) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision c65551beea443f6fb5a50c5be5af73c97fe77cf5) @@ -74,7 +74,19 @@ ALARM_DATA_TYPES_T dataType; ///< The type of alarm data provided ALARM_DATAS_T data; ///< The alarm data of specified type } ALARM_DATA_T; -#pragma pack(pop) +#pragma pack(pop) + +/// Safety shutdown activation status +typedef struct +{ + U32 safetyShutdownStatus; ///< Safety shutdown activation status +} SAFETY_SHUTDOWN_ACTIVATION_DATA_T; + +/// Alarm name data publish +typedef struct +{ + U32 alarmName; ///< Alarm name. +} ALARM_NAME_DATA_T; // ********** public function prototypes **********