Index: dialin/common/dg_defs.py =================================================================== diff -u -r6eb7388c7884a276c3c8b93aa8060feaab38081b -r53cbfce1a370ad5a7a46a24bb3dcf04da6e7907f --- dialin/common/dg_defs.py (.../dg_defs.py) (revision 6eb7388c7884a276c3c8b93aa8060feaab38081b) +++ dialin/common/dg_defs.py (.../dg_defs.py) (revision 53cbfce1a370ad5a7a46a24bb3dcf04da6e7907f) @@ -293,7 +293,8 @@ DG_EVENT_HEATERS_INFO_UPDATE = 12 # DG new heaters information has been updated DG_EVENT_AVG_DIALYSATE_FILL_COND_VALUES = 13 # DG average dialysate fill conductivity values DG_EVENT_RESERVOIR_FILL_VALUES = 14 # DG reservoir fill base reservoir weight and filled volume values - NUM_OF_DG_EVENT_IDS = 15 # Total number of DG events + DG_EVENT_OPERATION_STATUS = 15 # DG operation status event + NUM_OF_DG_EVENT_IDS = 16 # Total number of DG events @unique Index: dialin/common/hd_defs.py =================================================================== diff -u -r428c5c0a653129867b1cb32b5e64f89f68191c4b -r53cbfce1a370ad5a7a46a24bb3dcf04da6e7907f --- dialin/common/hd_defs.py (.../hd_defs.py) (revision 428c5c0a653129867b1cb32b5e64f89f68191c4b) +++ dialin/common/hd_defs.py (.../hd_defs.py) (revision 53cbfce1a370ad5a7a46a24bb3dcf04da6e7907f) @@ -348,7 +348,8 @@ HD_EVENT_OCCLUSION_BASELINE = 20 # HD event occlusion baseline event HD_EVENT_RSRVR_UF_VOLUME_AND_TIME = 21 # HD ultrafiltration volume and time for a reservoir use HD_EVENT_RSRVR_UF_RATE = 22 # HD ultrafiltration measured and expected rates - NUM_OF_EVENT_IDS = 23 # Total number of HD events + HD_EVENT_OPERATION_STATUS = 23 # HD operation status event. + NUM_OF_EVENT_IDS = 24 # Total number of HD events @unique class HDEventDataType(DialinEnum): Index: dialin/dg/events.py =================================================================== diff -u -r9bc00e997e91dab8b404aa877b02ae3d4100d417 -r53cbfce1a370ad5a7a46a24bb3dcf04da6e7907f --- dialin/dg/events.py (.../events.py) (revision 9bc00e997e91dab8b404aa877b02ae3d4100d417) +++ dialin/dg/events.py (.../events.py) (revision 53cbfce1a370ad5a7a46a24bb3dcf04da6e7907f) @@ -152,35 +152,60 @@ @param message: published DG events data message @returns none """ + event_data_1 = 0 + event_data_2 = 0 + op_mode = 0 + sub_mode = 0 + sub_state = 0 current_sub_tuple = [] event_id = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - # Get the data type - event_data_type_1 = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - # Get the corresponding structure format - struct_data_type = self._dg_event_data_type[DGEventDataType(event_data_type_1).name] - # Get the data value by unpacking the data type - event_data_1 = struct.unpack(struct_data_type, bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] + if event_id == DGEventList.DG_EVENT_OPERATION_STATUS.value: + # Get the data type + event_data_type_1 = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] + struct_data_type = self._dg_event_data_type[HDEventDataType(event_data_type_1).name] + op_mode = struct.unpack('