Index: dialin/dg/events.py =================================================================== diff -u -r61c2cc18c9fe1c4d02eabade578ae65fe3cb1d02 -r1936d2c112d7629ddef976e2bd4cba60664c621f --- dialin/dg/events.py (.../events.py) (revision 61c2cc18c9fe1c4d02eabade578ae65fe3cb1d02) +++ dialin/dg/events.py (.../events.py) (revision 1936d2c112d7629ddef976e2bd4cba60664c621f) @@ -54,6 +54,26 @@ self._dg_event_data_type[event_data_type] = struct_unpack_type + def get_dg_nth_event(self, event_id, event_number=0): + """ + Returns the nth requested DG event + + @param event_id the ID of the DG event types (i.e. DG_EVENT_STARTUP) + @param event_number the event number that is requested. The default is 0 meaning the last occurred event + + @returns the requested DG event number + """ + list_length = len(self._dg_event_dictionary[DGEventList(event_id).name]) + + if list_length == 0: + event = [] + elif event_number > list_length: + event = self._dg_event_dictionary[DGEventList(event_id).name][list_length - 1] + else: + event = self._dg_event_dictionary[DGEventList(event_id).name][list_length - event_number - 1] + + return event + def get_dg_events(self, event_id, number_of_events=1): """ Returns the requested number of a certain DG event ID @@ -63,7 +83,6 @@ @returns a list of the requested DG event type """ - list_of_events = [] # If there are not enough event lists send all the events that are available @@ -102,6 +121,7 @@ event_data_type_2 = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] + struct_data_type = self._dg_event_data_type[DGEventDataType(event_data_type_2).name] event_data_2 = struct.unpack(struct_data_type, bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] @@ -113,4 +133,4 @@ event_tuple = (str(datetime.now()), event_state_name, event_data_1, event_data_2) # Update event dictionary - self._dg_event_dictionary[event_state_name].append(event_tuple) + self._dg_event_dictionary[event_state_name].append(event_tuple) \ No newline at end of file Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r61c2cc18c9fe1c4d02eabade578ae65fe3cb1d02 -r1936d2c112d7629ddef976e2bd4cba60664c621f --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 61c2cc18c9fe1c4d02eabade578ae65fe3cb1d02) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 1936d2c112d7629ddef976e2bd4cba60664c621f) @@ -243,11 +243,10 @@ self.treatment_end_cmd_succeeded = False self.treatment_end_cmd_reject_reason = 0 - #self.reject_reasons = OrderedDict() - #for attr in RequestRejectReasons.__members__: - # attr: RequestRejectReasons = attr - # self.reject_reasons[attr.name] = attr.value - #self.reject_reasons = OrderedDict(sorted(self.reject_reasons.items(), key=lambda key: key[1])) + self.reject_reasons = OrderedDict() + for attr in RequestRejectReasons: + self.reject_reasons[RequestRejectReasons(attr).name] = RequestRejectReasons(attr).value + self.reject_reasons = OrderedDict(sorted(self.reject_reasons.items(), key=lambda key: key[1])) def get_hd_version(self): """ Index: tests/dg_heat_and_chemical_disinfect_test.py =================================================================== diff -u -r61c2cc18c9fe1c4d02eabade578ae65fe3cb1d02 -r1936d2c112d7629ddef976e2bd4cba60664c621f --- tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 61c2cc18c9fe1c4d02eabade578ae65fe3cb1d02) +++ tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 1936d2c112d7629ddef976e2bd4cba60664c621f) @@ -72,9 +72,10 @@ def get_dg_run_info(): - info = ('DG_op_mode, {}, DG_sub_mode, {}, DG_event, {}, '.format(DGOperationModes(dg.dg_operation_mode).name, + info = ('DG_op_mode, {}, DG_sub_mode, {}, Op, {}, Sub, {}, '.format(DGOperationModes(dg.dg_operation_mode).name, dg.dg_operation_sub_mode, - dg.events.get_dg_events(DGEventList(1).value, 4))) + dg.events.get_dg_events(DGEventList(1).value, 3), + dg.events.get_dg_events(DGEventList(2).value, 3))) return info Index: tests/test_flush.py =================================================================== diff -u -ra901fe931c08daea69337c1f44135637a764ce7a -r1936d2c112d7629ddef976e2bd4cba60664c621f --- tests/test_flush.py (.../test_flush.py) (revision a901fe931c08daea69337c1f44135637a764ce7a) +++ tests/test_flush.py (.../test_flush.py) (revision 1936d2c112d7629ddef976e2bd4cba60664c621f) @@ -24,9 +24,12 @@ def get_flush_mode_info(): - info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Drain_vol, {:5.3f}, Top_alarm, {}, ' + info = ('State, {}, Overall_elapsed_time, {}, State_elapsed_time, {}, Drain_vol, {:5.3f}, Top_alarm, {}, Op, {}, ' + 'Sub, {}, History, {}, ' .format(dg.flush.flush_state, dg.flush.overall_elapsed_time, dg.flush.state_elapsed_time, - dg.flush.flush_drain_line_volume_l, hd.alarms.alarm_top)) + dg.flush.flush_drain_line_volume_l, hd.alarms.alarm_top, dg.events.get_dg_nth_event(1), + dg.events.get_dg_nth_event(2), dg.events.get_dg_events(2, 25))) + return info