/************************************************************************** * * Copyright (c) 2019-2020 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 MessagePayloads.h * * @author (last) Quang Nguyen * @date (last) 26-Aug-2020 * * @author (original) Sean Nash * @date (original) 29-Jul-2020 * ***************************************************************************/ #ifndef __MESSAGE_PAYLOADS_H__ #define __MESSAGE_PAYLOADS_H__ /** * @addtogroup SystemCommMessages * @{ */ // ********** public definitions ********** #pragma pack(push,1) /// Alarm status struct. typedef struct { U32 alarmState; ///< Alarm state: 0 = no alarms, 1 = low priority, 2 = medium priority, 3 = high priority U32 alarmTop; ///< ID of top active alarm U32 escalatesIn; ///< Seconds before escalating alarm U32 silenceExpiresIn; ///< Seconds before alarm silence expires U16 alarmsFlags; ///< Alarm bit flags: 1 = true, 0 = false for each bit } ALARM_COMP_STATUS_PAYLOAD_T; /// DG version struct. typedef struct { U08 major; ///< DG version major revision U08 minor; ///< DG version major revision U08 micro; ///< DG version micro revision U16 build; ///< DG build version U08 fpgaId; ///< DG FPGA ID U08 fpgaMajor; ///< DG FPGA major revision U08 fpgaMinor; ///< DG FPGA minor revision U08 fpgaLab; ///< DG FPGA lab revision } DG_VERSIONS_T; /// Treatment time data struct. typedef struct { U32 treatmentTimePrescribedinSec; ///< Treatment time in seconds U32 treatmentTimeElapsedinSec; ///< Treatment time elapsed in seconds U32 treatmentTimeRemaininginSec; ///< Treatment time remaining in seconds } TREATMENT_TIME_DATA_T; /// Loadcell measurements struct. typedef struct { F32 loadCellA1inGram; ///< Loadcell A1 measurement in gram F32 loadCellA2inGram; ///< Loadcell A2 measurement in gram F32 loadCellB1inGram; ///< Loadcell B1 measurement in gram F32 loadCellB2inGram; ///< Loadcell B2 measurement in gram } LOAD_CELL_DATA_T; /// Pressure data struct. typedef struct { F32 roPumpInletPressure; ///< RO pump inlet pressure F32 roPumpOutletPressure; ///< RO pump outlet pressure F32 drainPumpInletPressure; ///< Drain pump inlet pressure F32 drainPumpOutletPressure; ///< Drain pump outlet pressure } PRESSURES_DATA_T; /// Reservoir data struct. typedef struct { U32 activeReservoir; ///< Active reservoir ID U32 fillToVolumeMl; ///< Volume target to fill to U32 drainToVolumeMl; ///< Volume target to drain to } RESERVOIR_DATA_T; /// Target temperature payload struct. typedef struct { F32 targetPrimaryHeaterTemp; ///< Primary heater set temperature target F32 targetTrimmerHeaterTemp; ///< Trimmer heater set temperature target } TARGET_TEMPS_PAYLOAD_T; /// Heaters data struct. typedef struct { U32 mainPrimayHeaterDC; ///< Main primary heater DC U32 smallPrimaryHeaterDC; ///< Small primary heater DC U32 trimmerHeaterDC; ///< Trimmer heater DC } HEATERS_DATA_T; #pragma pack(pop) /**@}*/ #endif