Index: dialin/ui/dd_ui_request_handler.py =================================================================== diff -u -r1e9de03223eeeec426716c6157ce88ddd60e4d5a -r691116a693026e10fdaf825d77107e1587ba66e9 --- dialin/ui/dd_ui_request_handler.py (.../dd_ui_request_handler.py) (revision 1e9de03223eeeec426716c6157ce88ddd60e4d5a) +++ dialin/ui/dd_ui_request_handler.py (.../dd_ui_request_handler.py) (revision 691116a693026e10fdaf825d77107e1587ba66e9) @@ -18,7 +18,7 @@ from . import pressure_ranges as pr -def ui_post_final_test_result(parent, params): +def ui_post_final_test_result(parent): rsp_id = None rsp_payload = None parent.demoSelection = 1 # setup event to change Mode @@ -27,7 +27,7 @@ return rsp_id, rsp_payload -def ui_confirmation_result_response_99(parent, params): +def ui_confirmation_result_response_99(parent): rsp_id = MsgIds.MSG_ID_HD_UI_CONFIRMATION_REQUEST rsp_payload = integer_to_bytearray(98) rsp_payload += integer_to_bytearray(0) # TBD use consts @@ -41,12 +41,12 @@ return rsp_id, rsp_payload -def ui_confirmation_result_98(parent, params): +def ui_confirmation_result_98(parent): rsp_id = MsgIds.MSG_ID_HD_UI_CONFIRMATION_REQUEST rsp_payload = integer_to_bytearray(98) # TBD! Use const for 99 rsp_payload += integer_to_bytearray(3) # TBD use consts rsp_payload += integer_to_bytearray(0) - if params.data_int[1] == EResponse.Accepted: # Reset the Demo + if parent.params.data_int[1] == EResponse.Accepted: # Reset the Demo parent.demoSelection = 1 # setup event to change Mode parent.demoCount = 0 parent.demoCounter = 1 @@ -63,15 +63,16 @@ return rsp_id, rsp_payload -def ui_confirmation_result_response_6(parent, params): +def ui_confirmation_result_response_6(parent): + # UI sends this when rsp_id = MsgIds.MSG_ID_HD_UI_CONFIRMATION_REQUEST rsp_payload = integer_to_bytearray(6) - if params.data_int[1] == EResponse.Accepted: + if parent.params.data_int[1] == EResponse.Accepted: rsp_payload += integer_to_bytearray(1) rsp_payload += integer_to_bytearray(0) parent.demoSelection = 61 # setup event to change Mode - elif params.data_int[1] == 0: + elif parent.params.data_int[1] == 0: rsp_payload += integer_to_bytearray(3) rsp_payload += integer_to_bytearray(0) @@ -80,43 +81,42 @@ return rsp_id, rsp_payload -def ui_service_mode_request(parent, params): - rsp_id = MsgIds.MSG_ID_HD_RESPONSE_SERVICE_MODE_REQUEST - rsp_payload = integer_to_bytearray(EResponse.Accepted) - rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) - parent.demoCount = 0 # immediately +def ui_service_mode_request(parent): + rsp_id = MsgIds.MSG_ID_HD_OP_MODE_DATA # 37, 0x2500 + rsp_payload = integer_to_bytearray(HDOpModes.MODE_SERV.value) + rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) #integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) return rsp_id, rsp_payload -def ui_initiate_treatment_request(parent, params): +def ui_initiate_treatment_request(parent): rsp_id = MsgIds.MSG_ID_HD_OP_MODE_DATA - if params.data_int[0] == EResponse.Accepted: + if parent.params.data_int[0] == EResponse.Accepted: rsp_payload = integer_to_bytearray(HDOpModes.MODE_TPAR.value) else: rsp_payload = integer_to_bytearray(HDOpModes.MODE_STAN.value) rsp_payload += integer_to_bytearray(0) return rsp_id, rsp_payload -def ui_new_treatment_params_request(parent, params): +def ui_new_treatment_params_request(parent): rsp_id = MsgIds.MSG_ID_HD_NEW_TREATMENT_PARAMS_RESPONSE rsp_payload = struct.pack("<" + str(TreatmentParameters.NUM_OF_TREATMENT_PARAMS.value + 1) + "i", 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) - parent.demo_treatment_params = deepcopy(params) # keep a complete copy + parent.demo_treatment_params = deepcopy(parent.params) # keep a complete copy # UF Treatment - parent.treatment_time_sec = params.data_int[TreatmentParameters.TREATMENT_PARAM_TREATMENT_DURATION_MIN.value] * 60 + parent.treatment_time_sec = parent.params.data_int[TreatmentParameters.TREATMENT_PARAM_TREATMENT_DURATION_MIN.value] * 60 parent.uf_volume_set_l = 0 # TBD not in this message parent.uf_volume_out_l = 0 # reset status parent.uf_rate_l_per_sec = 0 parent.salineVolume_ml = 0.0 # status parent.salineVolCum_ml = 0.0 # status - parent.dialysate_flow_set_point_ml_per_min = params.data_int[TreatmentParameters.TREATMENT_PARAM_DIALYSATE_FLOW_RATE_ML_MIN.value] - parent.blood_flow_set_point_ml_per_min = params.data_int[TreatmentParameters.TREATMENT_PARAM_BLOOD_FLOW_RATE_ML_MIN.value] + parent.dialysate_flow_set_point_ml_per_min = parent.params.data_int[TreatmentParameters.TREATMENT_PARAM_DIALYSATE_FLOW_RATE_ML_MIN.value] + parent.blood_flow_set_point_ml_per_min = parent.params.data_int[TreatmentParameters.TREATMENT_PARAM_BLOOD_FLOW_RATE_ML_MIN.value] # rsp_id = MsgIds.MSG_ID_HD_PRESSURE_LIMITS_CHANGE_RESPONSE parent.cmd_send_treatment_adjust_pressures_limit_response( accepted=EResponse.Accepted, reason=RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value, @@ -129,14 +129,14 @@ parent.venous_pressure_mmHg = parent.venous_pressure_mid_mmHg + 32 # simulation # Rinseback parent.rinseback_volume_set_ml = 80 + 120 # TBD! 80 + should be based on dialyzer blood volume? - parent.rinsebackVelocity_ml_per_sec = params.data_int[TreatmentParameters.TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN.value] / 60.0 + parent.rinsebackVelocity_ml_per_sec = parent.params.data_int[TreatmentParameters.TREATMENT_PARAM_RINSEBACK_FLOW_RATE_ML_MIN.value] / 60.0 parent.rinseback_volume_out_ml = 0 # reset status parent.rinseback_volume_all_ml = 0 # Heparin - parent.heparin_stop_min = params.data_int[TreatmentParameters.TREATMENT_PARAM_HEPARIN_PRESTOP_MIN.value] - parent.heparin_rate_ml_per_hr = params.data_float[TreatmentParameters.TREATMENT_PARAM_HEPARIN_DISPENSE_RATE_ML_HR.value] + parent.heparin_stop_min = parent.params.data_int[TreatmentParameters.TREATMENT_PARAM_HEPARIN_PRESTOP_MIN.value] + parent.heparin_rate_ml_per_hr = parent.params.data_float[TreatmentParameters.TREATMENT_PARAM_HEPARIN_DISPENSE_RATE_ML_HR.value] parent.heparin_rate_ml_per_s = parent.heparin_rate_ml_per_hr / 3600.0 - parent.heparin_bolus_ml = params.data_float[TreatmentParameters.TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME_ML.value] + parent.heparin_bolus_ml = parent.params.data_float[TreatmentParameters.TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME_ML.value] parent.heparin_out_ml = 0 # reset status parent.heparin_pause = False # setting parent.heparin_expected_ml = (((parent.treatment_time_sec / 60.0) - parent.heparin_stop_min) / 60.0 * @@ -151,8 +151,8 @@ return rsp_id, rsp_payload -def ui_user_confirm_treatment_request(parent, params): - if params.data_int[0] == EResponse.Accepted: +def ui_user_confirm_treatment_request(parent): + if parent.params.data_int[0] == EResponse.Accepted: parent.salineVolume_ml = 0.0 parent.salineVolCum_ml = 0.0 rsp_id = MsgIds.MSG_ID_PRE_TREATMENT_STATE_DATA @@ -181,8 +181,8 @@ return rsp_id, rsp_payload -def ui_sample_water_result(parent, params): - if params.data_int[0] == EResponse.Accepted: +def ui_sample_water_result(parent): + if parent.params.data_int[0] == EResponse.Accepted: ## TBD!!! FOLLOWING IS FUTILE ATTEMPT TO SET UF MAX calc_max_uf_volume = min(int(parent.MAX_UF_RATE_ML_PER_SEC * parent.treatment_time_sec / 100.0) * 100.0, parent.MAX_UF_ML_PER_TX) @@ -230,7 +230,7 @@ return rsp_id, rsp_payload -def ui_consumable_install_confirm_request(parent, params): +def ui_consumable_install_confirm_request(parent): rsp_id = None rsp_payload = None ## TBD!!! Does this work? @@ -247,7 +247,7 @@ return rsp_id, rsp_payload -def ui_installation_confirm_request(parent, params): +def ui_installation_confirm_request(parent): rsp_id = None rsp_payload = None @@ -269,7 +269,7 @@ return rsp_id, rsp_payload -def ui_start_prime_request(parent, params): +def ui_start_prime_request(parent): rsp_id = None rsp_payload = None parent.demoSelection = 10 # continue on, picking up from previous state setup by selection 9 @@ -280,7 +280,7 @@ return rsp_id, rsp_payload -def ui_patient_connection_begin_request(parent, params): +def ui_patient_connection_begin_request(parent): rsp_id = None rsp_payload = None # TBD!!! Setup UF Range before this @@ -291,12 +291,12 @@ return rsp_id, rsp_payload -def ui_set_uf_volume_parameter_request(parent, params): +def ui_set_uf_volume_parameter_request(parent): rsp_id = MsgIds.MSG_ID_HD_SET_UF_VOLUME_PARAMETER_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) - rsp_payload += integer_to_bytearray(params.data_int[0]) # echo back setting - parent.uf_volume_set_l = params.data_float[0] / 1000.0 # TBD!! passed as mL instead + rsp_payload += integer_to_bytearray(parent.params.data_int[0]) # echo back setting + parent.uf_volume_set_l = parent.params.data_float[0] / 1000.0 # TBD!! passed as mL instead if (parent.uf_volume_set_l is not None) and (parent.uf_volume_set_l >= 0.0009) and ( parent.uf_stop_time_sec is not None): @@ -308,15 +308,15 @@ return rsp_id, rsp_payload -def ui_patient_connection_confirm_request(parent, params): +def ui_patient_connection_confirm_request(parent): rsp_id = MsgIds.MSG_ID_HD_PATIENT_CONNECTION_CONFIRM_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) parent.demoSelection = 0 # Wait for user return rsp_id, rsp_payload -def ui_start_treatment_request(parent, params): +def ui_start_treatment_request(parent): rsp_id = MsgIds.MSG_ID_HD_START_TREATMENT_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) @@ -325,13 +325,13 @@ return rsp_id, rsp_payload -def ui_user_treatment_time_change_request(parent, params): +def ui_user_treatment_time_change_request(parent): rsp_id = MsgIds.MSG_ID_USER_TREATMENT_TIME_CHANGE_RESPONSE - if params.data_int[0] is not None: - if params.data_int[0] == 4 * 60 + 30: # 'secret' means to force end if 0 duration is unavailable - params.data_int[0] = 0 - parent.treatment_time_sec = params.data_int[0] * 60 + if parent.params.data_int[0] is not None: + if parent.params.data_int[0] == 4 * 60 + 30: # 'secret' means to force end if 0 duration is unavailable + parent.params.data_int[0] = 0 + parent.treatment_time_sec = parent.params.data_int[0] * 60 rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) else: @@ -345,106 +345,106 @@ return rsp_id, rsp_payload -def ui_user_saline_bolus_request(parent, params): +def ui_user_saline_bolus_request(parent): rsp_id = MsgIds.MSG_ID_USER_SALINE_BOLUS_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) rsp_payload += integer_to_bytearray( parent.demo_treatment_params.data_int[TreatmentParameters.TREATMENT_PARAM_SALINE_BOLUS_VOLUME_ML.value]) - if params.data_int[0] == EResponse.Accepted: + if parent.params.data_int[0] == EResponse.Accepted: parent.demoSelection = 31 # Saline Bolus else: parent.demoSelection = 33 # Bolus Stop request return rsp_id, rsp_payload -def ui_heparin_pause_resume_request(parent, params): +def ui_heparin_pause_resume_request(parent): rsp_id = MsgIds.MSG_ID_HD_HEPARIN_PAUSE_RESUME_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) - if params.data_int[0] != EResponse.Accepted: + if parent.params.data_int[0] != EResponse.Accepted: parent.heparin_pause = True # Heparin Pause else: parent.heparin_pause = False # Heparin Resume return rsp_id, rsp_payload -def ui_pressure_limits_change_request(parent, params): +def ui_pressure_limits_change_request(parent): rsp_id = MsgIds.MSG_ID_HD_PRESSURE_LIMITS_CHANGE_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) # apply new settings parent.demo_treatment_params.data_int[TreatmentParameters.TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW.value] = \ - params.data_int[0] + parent.params.data_int[0] parent.demo_treatment_params.data_int[TreatmentParameters.TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW.value] = \ - params.data_int[1] + parent.params.data_int[1] parent.demo_treatment_params.data_int[TreatmentParameters.TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC.value] = \ - params.data_int[2] - rsp_payload += integer_to_bytearray(params.data_int[0]) # reply with as set - rsp_payload += integer_to_bytearray(params.data_int[1]) - rsp_payload += integer_to_bytearray(params.data_int[2]) + parent.params.data_int[2] + rsp_payload += integer_to_bytearray(parent.params.data_int[0]) # reply with as set + rsp_payload += integer_to_bytearray(parent.params.data_int[1]) + rsp_payload += integer_to_bytearray(parent.params.data_int[2]) return rsp_id, rsp_payload -def ui_user_blood_dial_rate_change_request(parent, params): +def ui_user_blood_dial_rate_change_request(parent): rsp_id = MsgIds.MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) # apply new settings parent.demo_treatment_params.data_int[TreatmentParameters.TREATMENT_PARAM_BLOOD_FLOW_RATE_ML_MIN.value] = \ - params.data_int[0] + parent.params.data_int[0] parent.demo_treatment_params.data_int[TreatmentParameters.TREATMENT_PARAM_DIALYSATE_FLOW_RATE_ML_MIN.value] = \ - params.data_int[1] - parent.dialysate_flow_set_point_ml_per_min = params.data_int[1] - parent.blood_flow_set_point_ml_per_min = params.data_int[0] + parent.params.data_int[1] + parent.dialysate_flow_set_point_ml_per_min = parent.params.data_int[1] + parent.blood_flow_set_point_ml_per_min = parent.params.data_int[0] rsp_payload += integer_to_bytearray(parent.blood_flow_set_point_ml_per_min) rsp_payload += integer_to_bytearray(parent.dialysate_flow_set_point_ml_per_min) # reply with as set return rsp_id, rsp_payload -def ui_rinseback_cmd_request(parent, params): +def ui_rinseback_cmd_request(parent): rsp_id = MsgIds.MSG_ID_HD_RINSEBACK_CMD_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) - if params.data_int[0] == 0: # 0 Start Rinseback + if parent.params.data_int[0] == 0: # 0 Start Rinseback parent.rinseback_volume_out_ml = 0 # reset these parent.demoSelection = 41 - elif params.data_int[0] == 1: # 1 Accelerate ++25 mL/min (R) + elif parent.params.data_int[0] == 1: # 1 Accelerate ++25 mL/min (R) parent.rinsebackVelocity_ml_per_sec = min(parent.rinsebackVelocity_ml_per_sec + 25.0 / 60.0, parent.rinsebackVelocity_max_ml_per_sec) - elif params.data_int[0] == 2: # 2 Decelerate --25 mL/min (R) + elif parent.params.data_int[0] == 2: # 2 Decelerate --25 mL/min (R) parent.rinsebackVelocity_ml_per_sec = max(parent.rinsebackVelocity_ml_per_sec - 25.0 / 60.0, parent.rinsebackVelocity_min_ml_per_sec) - elif params.data_int[0] == 3: # 3 Pause + elif parent.params.data_int[0] == 3: # 3 Pause parent.demoSelection = 44 - elif params.data_int[0] == 4: # 4 Resume + elif parent.params.data_int[0] == 4: # 4 Resume parent.demoSelection = 41 - elif params.data_int[0] == 5: # 5 = "End" during rinseback + elif parent.params.data_int[0] == 5: # 5 = "End" during rinseback rsp_id = MsgIds.MSG_ID_HD_OP_MODE_DATA rsp_payload = integer_to_bytearray(HDOpModes.MODE_POST.value) rsp_payload += integer_to_bytearray(PostTreatmentStates.HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE.value) parent.demoSelection = 0 # Complete Treatment parent.demoCount = 0 # immediately - elif params.data_int[0] == 6: # TBD!! Additional + elif parent.params.data_int[0] == 6: # TBD!! Additional # TreatmentRinsebackStates.RINSEBACK_RUN_ADDITIONAL_STATE.value # #TBD!! # 4 Additional rinseback volume (10 mL) state of the rinseback sub-mode state machine parent.rinseback_volume_set_ml += 10.0 # ++10 mL (R) parent.demoSelection = 45 - elif params.data_int[0] == 8: # "END" 8 = Disconnect without further rinseback + elif parent.params.data_int[0] == 8: # "END" 8 = Disconnect without further rinseback parent.demoSelection = 60 # Prompt User parent.demoCount = 0 # immediately - elif params.data_int[0] == 9: # TBD!! Additional not implemented 9 = return to treatment + elif parent.params.data_int[0] == 9: # TBD!! Additional not implemented 9 = return to treatment rsp_payload = integer_to_bytearray(EResponse.Rejected) return rsp_id, rsp_payload -def ui_displosal_removal_confirm_request(parent, params): +def ui_displosal_removal_confirm_request(parent): rsp_id = MsgIds.MSG_ID_HD_DISPOSABLE_REMOVAL_CONFIRM_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value) @@ -453,7 +453,7 @@ return rsp_id, rsp_payload -def ui_post_tx_next_request(parent, params): +def ui_post_tx_next_request(parent): rsp_id = MsgIds.MSG_ID_HD_POST_TX_NEXT_CMD_RESPONSE rsp_payload = integer_to_bytearray(EResponse.Accepted) rsp_payload += integer_to_bytearray(RequestRejectReasons.REQUEST_REJECT_REASON_NONE.value)