Index: dialin/common/msg_ids.py =================================================================== diff -u -ra901fe931c08daea69337c1f44135637a764ce7a -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision a901fe931c08daea69337c1f44135637a764ce7a) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -330,7 +330,7 @@ MSG_ID_DG_ACCEL_SEND_INTERVAL_OVERRIDE = 0XA019 MSG_ID_DG_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE = 0XA01A MSG_ID_DG_MONITORED_VOLTAGES_OVERRIDE = 0XA01B - MSG_ID_DRAIN_PUMP_SET_DELTA_PRESSURE_OVERRIDE = 0XA01C + MSG_ID_DRAIN_PUMP_TARGET_OUTLET_PRESSURE = 0XA01C MSG_ID_DG_SWITCHES_STATUS_OVERRIDE = 0XA01D MSG_ID_DG_SWITCHES_PUBLISH_INTERVAL_OVERRIDE = 0XA01E MSG_ID_DG_OP_MODE_PUBLISH_INTERVAL_OVERRIDE = 0XA01F Index: dialin/dg/drain_pump.py =================================================================== diff -u -r8474f8e345f165187d4dde17840575ee4e98a9b4 -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- dialin/dg/drain_pump.py (.../drain_pump.py) (revision 8474f8e345f165187d4dde17840575ee4e98a9b4) +++ dialin/dg/drain_pump.py (.../drain_pump.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -22,7 +22,7 @@ from ..protocols.CAN import DenaliMessage, DenaliChannels from ..utils.base import AbstractSubSystem, publish, DialinEnum from ..utils.checks import check_broadcast_interval_override_ms -from ..utils.conversions import integer_to_bytearray +from ..utils.conversions import integer_to_bytearray, float_to_bytearray @unique @@ -113,6 +113,39 @@ self.drain_pump_state = state self.current_drain_pump_rpm = curr_rpm + def cmd_drain_pump_set_outlet_target_pressure(self, pressure: float) -> int: + """ + Constructs and sends the drain pump target outlet pressure command + Constraints: + Must be logged into DG. + + @param pressure: (float) target outlet pressure + @return: 1 if successful, zero otherwise + """ + + prssr = float_to_bytearray(pressure) + payload = prssr + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_DRAIN_PUMP_TARGET_OUTLET_PRESSURE.value, + payload=payload) + + self.logger.debug("Setting drain pump target pressure") + + # Send message + received_message = self.can_interface.send(message) + + # If there is no content... + if received_message is not None: + + self.logger.debug("Drain pump outlet pressure set to " + str(pressure) + " psi" + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False + def cmd_drain_pump_speed_set_point_override(self, speed: int) -> int: """ Constructs and sends the drain pump speed set point override command Index: dialin/dg/events.py =================================================================== diff -u -re979b3b8161d4232a93fd7c995e1aaeb690c1c6c -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- dialin/dg/events.py (.../events.py) (revision e979b3b8161d4232a93fd7c995e1aaeb690c1c6c) +++ dialin/dg/events.py (.../events.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -209,6 +209,3 @@ # Update event dictionary self._dg_event_dictionary[event_state_name].append(event_tuple) - - -# What is wrong with the events in develop? Index: dialin/dg/ro_pump.py =================================================================== diff -u -ra901fe931c08daea69337c1f44135637a764ce7a -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- dialin/dg/ro_pump.py (.../ro_pump.py) (revision a901fe931c08daea69337c1f44135637a764ce7a) +++ dialin/dg/ro_pump.py (.../ro_pump.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -62,8 +62,6 @@ self.ro_pump_state = 0.0 self.target_flow_lpm = 0.0 - self.temporary_flow_value = 0.0 - def get_target_pressure(self): """ Gets the target pressure @@ -117,15 +115,10 @@ tgt_flow = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] - temp_current_flow = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] - self.temporary_flow_value = temp_current_flow - self.target_pressure_psi = tgt_pres self.measured_flow_rate_lpm = flow self.pwm_duty_cycle_pct = pwm self.ro_pump_state = ROPumpStates(ro_state).name if ROPumpStates.has_value(ro_state) else 'State Unknown' - self.target_flow_lpm = tgt_flow def cmd_ro_pump_duty_cycle_pct(self, duty: float) -> int: """ Index: dialin/dg/system_record.py =================================================================== diff -u -ra901fe931c08daea69337c1f44135637a764ce7a -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- dialin/dg/system_record.py (.../system_record.py) (revision a901fe931c08daea69337c1f44135637a764ce7a) +++ dialin/dg/system_record.py (.../system_record.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -88,6 +88,16 @@ return status + def get_dg_system_record(self) -> dict: + """ + Handles getting DG system record per user's request. + NOTE: In order to get the latest system record, use cmd_request_dg_system_record first + to fetch the system record from the firmware. + + @return: DG system record dictionary + """ + return self.dg_system_record['system_record'] + def cmd_request_dg_system_record(self) -> int: """ Handles getting DG system record from firmware. Index: dialin/hd/system_record.py =================================================================== diff -u -ra901fe931c08daea69337c1f44135637a764ce7a -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- dialin/hd/system_record.py (.../system_record.py) (revision a901fe931c08daea69337c1f44135637a764ce7a) +++ dialin/hd/system_record.py (.../system_record.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -89,6 +89,16 @@ return status + def get_hd_system_record(self) -> dict: + """ + Handles getting HD system record per user's request. + NOTE: In order to get the latest system record, use cmd_request_hd_system_record first + to fetch the system record from the firmware. + + @return: HD system record dictionary + """ + return self.hd_system_record['system_record'] + def cmd_request_hd_system_record(self) -> int: """ Handles getting HD calibration_record data from firmware. Index: tests/dg_heat_and_chemical_disinfect_test.py =================================================================== diff -u -re979b3b8161d4232a93fd7c995e1aaeb690c1c6c -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision e979b3b8161d4232a93fd7c995e1aaeb690c1c6c) +++ tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -122,10 +122,10 @@ def get_ro_info(): - info = ('RO, {}, PPi, {:5.3f}, PPo, {:5.3f}, PWM, {:5.3f}, Flow, {:5.3f}, Tgt_flow, {:5.3f}, Temp_flow, {:5.3f}, ' + info = ('RO, {}, PPi, {:5.3f}, PPo, {:5.3f}, PWM, {:5.3f}, Flow, {:5.3f}, Tgt_flow, {:5.3f}, ' .format(dg.ro_pump.ro_pump_state, dg.pressures.ro_pump_inlet_pressure, dg.pressures.ro_pump_outlet_pressure, dg.ro_pump.pwm_duty_cycle_pct, - dg.ro_pump.measured_flow_rate_lpm, dg.ro_pump.target_flow_lpm, dg.ro_pump.temporary_flow_value)) + dg.ro_pump.measured_flow_rate_lpm, dg.ro_pump.target_flow_lpm)) return info @@ -553,14 +553,14 @@ # run_chemical_disinfect() - run_dg() + #run_dg() # run_ro_pump_duty_cycles() # cmd_set_disinfect_ui_screen() # cmd_test_heaters() - #collect_treatment_data() + collect_treatment_data() Index: tests/test_flush.py =================================================================== diff -u -re979b3b8161d4232a93fd7c995e1aaeb690c1c6c -rb5ebd4c79b40e896e806e3495c7548466731bcd1 --- tests/test_flush.py (.../test_flush.py) (revision e979b3b8161d4232a93fd7c995e1aaeb690c1c6c) +++ tests/test_flush.py (.../test_flush.py) (revision b5ebd4c79b40e896e806e3495c7548466731bcd1) @@ -28,7 +28,7 @@ '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.events.get_dg_nth_event(1), - dg.events.get_dg_nth_event(2), dg.events.get_dg_events(2, 25))) + dg.events.get_dg_nth_event(2), dg.events.get_dg_events(2, 70))) return info