Index: HemodialysisDevice.py =================================================================== diff -u -r8735608b72c44913ad2623ee0bb8883f6e2bfa92 -r0fb8c7f8a8c074812ae63daa12eb8bdb90270d7a --- HemodialysisDevice.py (.../HemodialysisDevice.py) (revision 8735608b72c44913ad2623ee0bb8883f6e2bfa92) +++ HemodialysisDevice.py (.../HemodialysisDevice.py) (revision 0fb8c7f8a8c074812ae63daa12eb8bdb90270d7a) @@ -20,6 +20,8 @@ from DialityCoreCanProtocol import DenaliChannels from time import sleep from binascii import unhexlify +from HD_DialOutFlow import HD_DialOut +from HD_DialOutFlow import DialOutStates import struct @@ -50,6 +52,7 @@ self.Buttons = HD.HD_Buttons(self) self.BloodFlow = HD.HD_BloodFlow(self, self.can_interface) self.Watchdog = HD.HD_Watchdog(self) + self.DialOut = HD_DialOut(self.can_interface) class HD__Basics: """ @@ -874,6 +877,47 @@ # t2 = message_id +def test_HD_DialOutFlow(): + """ + test_HD_DialOutFlow is a pytest function to test the HD_DialOutFlow states + + :return: True if test passed, False, otherwise + """ + # create an HD object called hd + hd_obj = HD() + + # wait 2 seconds and then login to HD as a tester + sleep(2) + hd_obj._Basics.CmdLogInToHD() + + totalVolumeInMl = 2400 + rxTimeInMins = 240 + flowRateMlmin = 100 + + hd_obj.DialOut.setUFRx(totalVolumeInMl, rxTimeInMins, flowRateMlmin) + + + sleep(5) + hd_obj.DialOut.setUFState(DialOutStates.RUN) + sleep(2) + state_run = hd_obj.DialOut.DialOutBroadcast['state'] + print(hd_obj.DialOut.DialOutBroadcast) + + sleep(5) + hd_obj.DialOut.setUFState(DialOutStates.PAUSE) + sleep(2) + state_pause = hd_obj.DialOut.DialOutBroadcast['state'] + print(hd_obj.DialOut.DialOutBroadcast) + + sleep(3) + hd_obj.DialOut.setUFState(DialOutStates.STOP) + sleep(2) + state_stop = hd_obj.DialOut.DialOutBroadcast['state'] + print(hd_obj.DialOut.DialOutBroadcast) + + assert(state_run == 'RUN' and state_stop == 'STOP' and state_pause == 'PAUSE') + + if __name__ == "__main__": # create an HD object called hd hd = HD() @@ -882,6 +926,59 @@ sleep(2) hd._Basics.CmdLogInToHD() + totalVolumeInMl = 2400 + rxTimeInMins = 30 + flowRateMlmin = 100 + + sleep(2) + resp = hd.DialOut.setUFRx(totalVolumeInMl, rxTimeInMins, flowRateMlmin) + print("Set TotalVolume(mL): {}, TotalTime(mins): {} and flowrate (ml/min): {}, resp: {}".format(totalVolumeInMl, + rxTimeInMins, flowRateMlmin, resp)) + + sleep(2) + rxTimeInMins = 60 + resp = hd.DialOut.setUFRx(totalVolumeInMl, rxTimeInMins, flowRateMlmin) + print("Set TotalVolume(mL): {}, TotalTime(mins): {} and flowrate (ml/min): {}, resp: {}".format(totalVolumeInMl, + rxTimeInMins, flowRateMlmin, resp)) + + sleep(5) + hd.DialOut.setUFState(DialOutStates.RUN) + state_run = hd.DialOut.DialOutBroadcast['state'] + sleep(2) + print("After RUN: {}".format(hd.DialOut.DialOutBroadcast)) + + sleep(20) + print("After 20 secs RUN: {}".format(hd.DialOut.DialOutBroadcast)) + + sleep(20) + print("After 40 secs RUN: {}".format(hd.DialOut.DialOutBroadcast)) + + hd.DialOut.setUFState(DialOutStates.PAUSE) + sleep(2) + print("After PAUSE: {}".format(hd.DialOut.DialOutBroadcast)) + state_pause = hd.DialOut.DialOutBroadcast['state'] + + sleep(10) + hd.DialOut.setUFState(DialOutStates.STOP) + sleep(2) + print("---> After STOP:{} <---".format(hd.DialOut.DialOutBroadcast)) + + sleep(3) + hd.DialOut.setUFState(DialOutStates.RUN) + sleep(2) + state_stop = hd.DialOut.DialOutBroadcast['state'] + print("After RUN again: {}".format(hd.DialOut.DialOutBroadcast)) + + sleep(3) + hd.DialOut.setUFState(DialOutStates.STOP) + sleep(2) + state_stop = hd.DialOut.DialOutBroadcast['state'] + print("After STOP: {}".format(hd.DialOut.DialOutBroadcast)) + + sleep(5) + hd.DialOut.plotBroadCastSignals() + + exit() tgtRate = 0 hd.BloodFlow.CmdBloodFlowBroadcastIntervalOverride(hd.NO_RESET, 2000)