/************************************************************************** * * Copyright (c) 2024-2024 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 MsgDefs.h * * @author (last) Sean * @date (last) 30-Jul-2024 * * @author (original) Sean * @date (original) 30-Jul-2024 * ***************************************************************************/ #ifndef __MESSAGE_DEFINITIONS_H__ #define __MESSAGE_DEFINITIONS_H__ // ********** public definitions ********** /** * @addtogroup Messaging * @{ */ /// Enumeration of system message IDs enum Msg_IDs { // normal CAN messages MSG_ID_UNUSED = 0x0, ///< Zero is an undefined (un-used) message ID) MSG_ID_ALARM_STATUS_DATA = 0x1, ///< HD broadcast of system alarm state information MSG_ID_ALARM_TRIGGERED = 0x2, ///< Alarm triggered event MSG_ID_ALARM_CLEARED = 0x3, ///< Alarm cleared event MSG_ID_ALARM_CONDITION_CLEARED = 0x4, ///< Alarm condition cleared event MSG_ID_USER_ALARM_SILENCE_REQUEST = 0x5, ///< UI request alarm silence (or cancel) MSG_ID_UI_ALARM_USER_ACTION_REQUEST = 0x6, ///< UI user has requested an alarm action MSG_ID_TD_ALARM_INFORMATION_DATA = 0x7, ///< TD alarm information broadcast message MSG_ID_DD_ALARM_INFO_DATA = 0x8, ///< DD alarm information data publish MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST = 0x9, ///< UI active alarms list request MSG_ID_TD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE = 0xA, ///< TD active alarms list request response MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD_REQUEST = 0xB, ///< UI command to set alarm audio volume level MSG_ID_TD_ALARM_AUDIO_VOLUME_SET_RESPONSE = 0xC, ///< TD response to UI set alarm audio volume request MSG_ID_FW_VERSIONS_REQUEST = 0xD, ///< UI request for f/w versions MSG_ID_TD_VERSION_REPONSE = 0xE, ///< TD f/w version response MSG_ID_DD_VERSION_REPONSE = 0xF, ///< DD f/w version response MSG_ID_UI_CHECK_IN = 0x10, ///< UI check-in with TD MSG_ID_TD_POWER_OFF_WARNING = 0x11, ///< TD broadcast power off warning - system power down is imminent MSG_ID_TD_OP_MODE_DATA = 0x12, ///< TD broadcast current operating mode MSG_ID_DD_OP_MODE_DATA = 0x13, ///< DD broadcast current operating mode MSG_ID_DD_COMMAND_RESPONSE = 0x14, ///< DD response to command from TD MSG_ID_TD_UI_VERSION_INFO_REQUEST = 0x15, ///< TD request for UI version information MSG_ID_UI_VERSION_INFO_RESPONSE = 0x16, ///< UI response to TD request for version information MSG_ID_TD_EVENT = 0x17, ///< TD general event MSG_ID_DD_EVENT = 0x18, ///< DD general event MSG_ID_TD_DD_ALARMS_REQUEST = 0x19, ///< TD request for DD to re-send trigger messages for each active alarm MSG_ID_UI_TD_RESET_IN_SERVICE_MODE_REQUEST = 0x20, ///< UI TD reset in service mode request MSG_ID_DD_VALVES_STATES_DATA = 0x21, ///< DD broadcast valve states // service/test CAN messages MSG_ID_FIRST_TD_TESTER_MESSAGE = 0x8000, ///< First TD test message ID MSG_ID_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_TD_TESTER_MESSAGE, ///< TD tester log-in MSG_ID_TD_SOFTWARE_RESET_REQUEST = 0x8001, ///< TD reset request MSG_ID_TD_SEND_TEST_CONFIGURATION = 0x8002, ///< TD send test configuration to Dialin MSG_ID_FIRST_DD_TESTER_MESSAGE = 0xA000, ///< First DD test message ID MSG_ID_DD_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_DD_TESTER_MESSAGE, ///< DD tester log-in MSG_ID_DD_SOFTWARE_RESET_REQUEST = 0xA001, ///< DD reset request MSG_ID_DD_SEND_TEST_CONFIGURATION = 0xA002, ///< DD send test configuration to Dialin MSG_ID_TD_DEBUG_EVENT = 0xFFF1, ///< TD debug event text to be logged in event log MSG_ID_DD_DEBUG_EVENT = 0xFFF2, ///< DD debug event text to be logged in event log MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK = 0xFFFF, ///< Acknowledgment of message that requires acknowledgment END_OF_MSG_IDS ///< End of system message IDs }; typedef enum Msg_IDs MSG_ID_T; ///< Type for message IDs enumeration /// Enumeration of settings change rejection reason codes enum Request_Reject_Reasons { REQUEST_REJECT_REASON_NONE = 0, ///< Used when there is no rejection REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE = 1, ///< Request is not allowed in the current operating mode REQUEST_REJECT_REASON_TIMEOUT_WAITING_FOR_USER_CONFIRM = 2, ///< Validated request was not confirmed by user in reasonable time REQUEST_REJECT_REASON_NOT_IN_TREATMENT_MODE = 3, ///< Request is not allowed if not in treatment mode REQUEST_REJECT_REASON_INVALID_TREATMENT_STATE = 4, ///< Request is not allowed in current treatment state REQUEST_REJECT_REASON_TREATMENT_TOO_CLOSE_TO_FINISHED = 5, ///< Request is not allowed so near end of treatment REQUEST_REJECT_REASON_TREATMENT_TIME_OUT_OF_RANGE = 6, ///< Treatment duration is out of range REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_CURRENT = 7, ///< Treatment time change is less than currently elapsed treatment time REQUEST_REJECT_REASON_BLOOD_FLOW_OUT_OF_RANGE = 8, ///< Blood flow is out of range REQUEST_REJECT_REASON_DIAL_FLOW_OUT_OF_RANGE = 9, ///< Dialysate flow is out of range REQUEST_REJECT_REASON_DIAL_VOLUME_OUT_OF_RANGE = 10, ///< Dialysate flow rate or treatment duration causes dialysate volume to exceed limit REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE = 11, ///< Ultrafiltration volume is out of range REQUEST_REJECT_REASON_UF_RATE_OUT_OF_RANGE = 12, ///< Ultrafiltration rate is out of range REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_MINIMUM = 13, ///< Treatment time change is less than minimum treatment time REQUEST_REJECT_REASON_UF_NOT_IN_PROGESS = 14, ///< Ultrafiltration is not currently in progress REQUEST_REJECT_REASON_UF_NOT_PAUSED = 15, ///< Ultrafiltration is not currently paused REQUEST_REJECT_REASON_SALINE_BOLUS_IN_PROGRESS = 16, ///< A saline bolus is in progress REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE = 17, ///< A treatment parameter is out of range REQUEST_REJECT_REASON_HEPARIN_PRESTOP_EXCEEDS_DURATION = 18, ///< The Heparin pre-stop setting is greater than the treatment duration REQUEST_REJECT_REASON_DG_FILTER_FLUSH_HAS_BEEN_EXPIRED = 19, ///< DG filter flush time has been expired REQUEST_REJECT_REASON_AVAILABLE_2 = 20, ///< Not used REQUEST_REJECT_REASON_SALINE_MAX_VOLUME_REACHED = 21, ///< Saline bolus volume maximum has been reached - no more saline allowed REQUEST_REJECT_REASON_SALINE_BOLUS_NOT_IN_PROGRESS = 22, ///< A saline bolus is not in progress REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE = 23, ///< Requested user action is disabled in current state REQUEST_REJECT_REASON_ALARM_IS_ACTIVE = 24, ///< Requested user action not allowed while alarm is active REQUEST_REJECT_REASON_INVALID_COMMAND = 25, ///< Requested user action invalid REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED = 26, ///< The treatment has been completed REQUEST_REJECT_REASON_ADDL_RINSEBACK_MAX_VOLUME_REACHED = 27, ///< Rinseback additional volume maximum has been reached - no more additional rinsebacks allowed REQUEST_REJECT_REASON_DIALYZER_NOT_INVERTED = 28, ///< Dialyzer not inverted yet REQUEST_REJECT_REASON_NO_PATIENT_CONNECTION_CONFIRM = 29, ///< The user has not confirmed patient connection REQUEST_REJECT_REASON_HEPARIN_PAUSE_INVALID_IN_THIS_STATE = 30, ///< Heparin cannot be paused if not currently deliverying Heparin REQUEST_REJECT_REASON_HEPARIN_NOT_PAUSED = 31, ///< Heparin cannot be resumed if not paused REQUEST_REJECT_REASON_DG_COMM_LOST = 32, ///< Treatment cannot initiate if DG comm is lost REQUEST_REJECT_REASON_DRAIN_NOT_COMPLETE = 33, ///< Post-treatment reservoirs drain not complete REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE = 34, ///< Treatment cannot initiate if DG is not in standby idle state REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT = 35, ///< Request message not formatted properly REQUEST_REJECT_REASON_INVALID_DATE_OR_TIME = 36, ///< Given date/time is invalid REQUEST_REJECT_REASON_TREATMENT_IN_PROGRESS = 37, ///< Treatment is in progress REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED = 38, ///< Battery does not have enough charge to start treatment REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED = 39, ///< Cannot move on to recirculate without completing full rinseback. REQUEST_REJECT_REASON_RESERVOIR_ONE_IS_NOT_READY = 40, ///< Reservoir one fill is not complete REQUEST_REJECT_REASON_PUMP_TRACK_NOT_CLOSED = 41, ///< Pump track is not ready / closed REQUEST_REJECT_REASON_DOOR_NOT_CLOSED = 42, ///< Door is not closed REQUEST_REJECT_REASON_SYRINGE_NOT_PRESENT = 43, ///< Syringe is not present REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN = 44, ///< Dialysate cap open REQUEST_REJECT_REASON_DG_CONCENTRATE_CAP_OPEN = 45, ///< Concentrate cap open REQUEST_REJECT_REASON_DG_DISINFECT_HAS_BEEN_EXPIRED = 46, ///< DG disinfect has been expired REQUEST_REJECT_REASON_DG_SERVICE_IS_DUE = 47, ///< DG service is due REQUEST_REJECT_REASON_HD_SERVICE_IS_DUE = 48, ///< HD service is due REQUEST_REJECT_REASON_DG_CHEM_FLUSH_NOT_COMPLETED = 49, ///< DG chemical flush is not complete REQUEST_REJECT_REASON_DG_RO_FILTER_TEMPERATURE_OUT_OF_RANGE = 50, ///< DG RO filter temperature out of range REQUEST_REJECT_REASON_DG_INCOMPATIBLE = 51, ///< DG firmware version is not compatible with HD firmware REQUEST_REJECT_REASON_HEPARIN_PRESTOP_WITH_NO_DISPENSE = 52, ///< Heparin settings are zero but pre-stop setting is non-zero REQUEST_REJECT_REASON_DIALYZER_REPRIME_IN_PROGRESS = 53, ///< Saline bolus is not allowed during dialyzer reprime REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_DG_BUSY = 54, ///< DG RO only mode DG is busy REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_INVALID_PARAMETER = 55, ///< DG RO only mode invalid parameter REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_INVALID_PAYLOAD_LENGTH = 56, ///< DG RO only mode invalid payload length REQUEST_REJECT_REASON_TREATMENT_CANNOT_BE_RESUMED = 57, ///< Cannot resume treatment per alarm REQUEST_REJECT_REASON_EXCEEDS_MAXIMUM_HEPARIN_VOLUME = 58, ///< Cannot continue due to maximum heparin volume REQUEST_REJECT_REASON_CHEM_DISINFECT_NOT_ENABLED_INST_CONFIG = 59, ///< Cannot start chemical disinfect because it is not enabled in institutional record. NUM_OF_REQUEST_REJECT_REASONS ///< Number of settings change reject codes }; typedef enum Request_Reject_Reasons REQUEST_REJECT_REASON_CODE_T; ///< Type for settings change rejection reason codes enumeration /// Enumeration of TD to DD command request rejection reason codes enum Cmd_Request_Reject_Reasons { DD_CMD_REQUEST_REJECT_REASON_NONE = 0, ///< Used when there is no rejection DD_CMD_REQUEST_REJECT_REASON_INVALID_MODE = 1, ///< Command is not allowed in the current operating mode DD_CMD_REQUEST_REJECT_REASON_INVALID_PARAMETER = 2, ///< Command parameter is not valid NUM_OF_DD_CMD_REQUEST_REJECT_REASONS ///< Number of command request reject codes }; typedef enum Cmd_Request_Reject_Reasons CMD_REQUEST_REJECT_REASON_CODE_T; ///< Type for command request rejection reason codes enumeration /**@}*/ #endif