Index: shared/scripts/configuration/config.py =================================================================== diff -u -r0cc92d3b75bfb96dc4ecafd760a9ce15e455033b -r6bea5f3c54dd8e83b71577de9ecd4e44839703c8 --- shared/scripts/configuration/config.py (.../config.py) (revision 0cc92d3b75bfb96dc4ecafd760a9ce15e455033b) +++ shared/scripts/configuration/config.py (.../config.py) (revision 6bea5f3c54dd8e83b71577de9ecd4e44839703c8) @@ -14,12 +14,14 @@ ############################################################################ import os +from pathlib import Path +from configuration.strings import * AUT_NAME = "denaliSquish" +CONFIG_PATH = Path(os.getcwd()) +HOME_DIR_PATH = CONFIG_PATH.parent.parent.parent +LOG_LOCATION = "".join([str(HOME_DIR_PATH),'/Desktop/sd-card/log/']) -COMMON_PATH = os.environ['HOME']+"/Projects" - - COLOR_CODES = {"Aqua": "#81ffff", "Blue": "#017dea", "Blue 2": "#1090d5", "Green": "#29fd2d", "Grey": "#d3d3d3", "Lavender": "#db98f5", "Light Blue": "#acd7f1", "Light Teal": "#29f1da","Lime": "#b7fc36", "Magenta":"#fd28fd", "Orange": "#f2721c", "Peach":"#f1979a", "Red": "#c53b33", "Rose":"#fc178d", @@ -29,6 +31,7 @@ GOODMORNING_START_TIME_SEC = 0 GOODEVENING_START_TIME_SEC = 43200 -BLOOD_PRIMING_TEXT = "Blood Priming" -SALINE_UNIT = "mL" -BLOOD_PRIMING_DEFAULT_VALUE = "0 mL" +#ui_logs +RESET_BINARY = "0" +SET_BINARY = "1" + Index: shared/scripts/configuration/strings.py =================================================================== diff -u -r3698b5cf83c5944115b66480f071aeb0d26d0165 -r6bea5f3c54dd8e83b71577de9ecd4e44839703c8 --- shared/scripts/configuration/strings.py (.../strings.py) (revision 3698b5cf83c5944115b66480f071aeb0d26d0165) +++ shared/scripts/configuration/strings.py (.../strings.py) (revision 6bea5f3c54dd8e83b71577de9ecd4e44839703c8) @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- ########################################################################### # # Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. @@ -8,850 +7,20 @@ # # @file strings.py # -# @author (last) LTTS -# @date (last) 14-June-2022 +# @author (last) LTTS +# @date (last) 18-Jan-2022 +# ############################################################################ - - +BLOOD_PRIMING_TEXT = "Blood Priming" +SALINE_UNIT = "mL" BLOOD_PRIMING_UNIT = "mL" BLOOD_PRIMING_VALUE_0 = "0" BLOOD_PRIMING_DEFAULT_VALUE = BLOOD_PRIMING_VALUE_0 + " " + BLOOD_PRIMING_UNIT - -#pretreatment_screen_bullets -PRE_TREATMENT_SCREENS = ["Create" , "Sample" , "Consumables" , "Disposables" , "Prime" , "Ultrafiltration" , "BP/HR" , "Connection" , "Start"] -POST_TREATMENT_SCREENS = ["Disconnection", "Review", "Disposables", "Disinfection"] - - -#main_treatment_ultrafilteration -ULTRAFILTRATION_PAUSED_TEXT = "Ultrafiltration Paused" -INCREASE_UF_RATE_TEXT = "Increase UF Rate" -INCREASE_TREATMENT_DURATION_TEXT = "Increase Treatment Duration" -RESUME_TEXT = "RESUME ULTRAFILTRATION" -EDIT_TEXT = "EDIT ULTRAFILTRATION VOLUME" -TITLE_TEXT = "ULTRAFILTRATION VOLUME (L)" - -#recirculate screens -RECIRCULATE_TEXT = "Recirculate" -RECONNECT_BUTTON_TEXT = "RECONNECT" -# pretreatment_patient_connection -DIASTOLIC_TEXT = "diastolic" -SYSTOLIC_TEXT = "systolic" -OUT_OF_RANGE_COLOR = "#c53b33" -IN_RANGE_COLOR = "#fcfcfc" -HEART_RATE_TITLE = "Heart Rate" -BLOOD_PRESSURE_TITLE = "Blood Pressure" -BLOOD_PRESSURE_UNIT = "mmHg" -HEART_RATE_UNIT = "BPM" -PATIENT_CONNECTION_TEXT = "Patient Connection" -UF_VOLUME_TEXT = "Ultrafiltration Volume (L)" -UF_TITLE_TEXT = "Ultrafiltration Setup" -BP_HR_TEXT = "BP/HR" -SKIP_TEXT = "SKIP" -TUTORIAL_TEXT = { - 0 : "Wash your hands and establish vascular access per your clinic's instructions.", - 1 : "Pinch arterial clamp and venous clamp on located on the cartridge patient lines.", - 2 : "Remove arterial and venous line connector.", - 3 : "Connect arterial and venous cartridge lines to your patient access lines." -} - -#rinseback-setup -RINSE_BACK_SETUP_TEXT = "Rinseback Setup" -RINSEBACK_BUTTON_TEXT = "START RINSEBACK" -BACK_TO_TREATMENT_BUTTON_TEXT = "BACK TO TREATMENT" -END_IMAGE_BUTTON_TEXT = "End" -DECELERATE_BUTTON_TEXT = "Decelerate" -ACCELERATE_BUTTON_TEXT = "Accelerate" -PAUSE_BUTTON_TEXT = "Pause" -RESUME_BUTTON_TEXT = "Resume" -RINSEBACK_TEXT = "Rinseback" -RINSEBACK_COMPLETE_TEXT = "Rinseback Complete" -END_TREATMENT_BUTTON_TEXT = "END TREATMENT" -BACK_TO_RECIRCULATE_TEXT = "BACK TO RECIRCULATE" -RECONNECT_TEXT = "Reconnect" - - - -#tst_treatment_saline_data -SALINE_UNIT = "mL" +#ui_logs ACK_REQ_STATUS = 'Ack Req' ACK_BAK_STATUS = 'Ack Bak' -#main treatment pressure -PRESSURE_TITLE = "PRESSURES" -ARTERIAL_TITLE = "Arterial" -VENOUS_TITLE = "Venous" -VENOUS_UOM = "mmHg" -ARTERIAL_UOM = "mmHg" -LOW_TEXT = "LOW" -HIGH_TEXT = "HIGH" -#main-treatment heparin -HEPARIN_TEXT = "HEPARIN" -HEPARIN_UNIT = "mL" -HEPARIN_DELIVERY_TEXT = "HEPARIN DELIVERY" -HEPARIN_DELIVERY_OFF_TEXT = "OFF" -HEPARIN_STOP_TEXT = "Delivery Stopped" -HEPARIN_RESUME_DELIVERY_TEXT = "RESUME DELIVERY" -HEPARIN_BOLUS_ACTIVE_TEXT = "Bolus Active" -HEPARIN_BOLUS_DISPENSING_TEXT = "Dispensing Active" -HEPARIN_PAUSE_DELIVERY_TEXT = "PAUSE DELIVERY" -HEPARIN_MAXIMUM_VOLUME_DELIVERED_TEXT = "Maximum Cumulative Heparin Volume Delivered" -HEPARIN_SYRINGE_EMPTY_TEXT = "Syringe Empty" -HEPARIN_DISPENSING_RATE = "Heparin Dispensing Rate" -HEPARIN_BOLUS_VOLUME = "Heparin Bolus Volume" -HEPARIN_STOP_TIME = "Heparin Stop Time" -HEPARIN_TYPE_TITLE = "Heparin Type" -# dictionary of rejection reason from application source code. -# message location -> denali-> Headers-> common-> MsgDefs.h -REJECTION_REASON = { - 0: "REQUEST_REJECT_REASON_NONE", # Used when there is no rejection - 1: "REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE", # Request is not allowed in the current operating mode - 2: "REQUEST_REJECT_REASON_TIMEOUT_WAITING_FOR_USER_CONFIRM", # Validated request was not confirmed by user in reasonable time - 3: "REQUEST_REJECT_REASON_NOT_IN_TREATMENT_MODE", # Request is not allowed if not in treatment mode - 4: "REQUEST_REJECT_REASON_INVALID_TREATMENT_STATE", # Request is not allowed in current treatment state - 5: "REQUEST_REJECT_REASON_TREATMENT_TOO_CLOSE_TO_FINISHED", # Request is not allowed so near end of treatment - 6: "REQUEST_REJECT_REASON_TREATMENT_TIME_OUT_OF_RANGE", # Treatment duration is out of range - 7: "REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_CURRENT", # Treatment time change is less than currently elapsed treatment time - 8: "REQUEST_REJECT_REASON_BLOOD_FLOW_OUT_OF_RANGE", # Blood flow is out of range - 9: "REQUEST_REJECT_REASON_DIAL_FLOW_OUT_OF_RANGE", # Dialysate flow is out of range - 10: "REQUEST_REJECT_REASON_DIAL_VOLUME_OUT_OF_RANGE", # Dialysate flow rate or treatment duration causes dialysate volume to exceed limit - 11: "REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE", # Ultrafiltration volume is out of range - 12: "REQUEST_REJECT_REASON_UF_RATE_OUT_OF_RANGE", # Ultrafiltration rate is out of range - 13: "REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_MINIMUM", # Treatment time change is less than minimum treatment time - 14: "REQUEST_REJECT_REASON_UF_NOT_IN_PROGESS", # Ultrafiltration is not currently in progress - 15: "REQUEST_REJECT_REASON_UF_NOT_PAUSED", # Ultrafiltration is not currently paused - 16: "REQUEST_REJECT_REASON_SALINE_BOLUS_IN_PROGRESS", # A saline bolus is in progress - 17: "REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE", # A treatment parameter is out of range - 18: "REQUEST_REJECT_REASON_HEPARIN_PRESTOP_EXCEEDS_DURATION", # The Heparin pre-stop setting is greater than the treatment duration - 19: "REQUEST_REJECT_REASON_ARTERIAL_PRESSURE_LOW_VS_HIGH", # Arterial pressure low and high alarm limits are not inconsistent - 20: "REQUEST_REJECT_REASON_VENOUS_PRESSURE_LOW_VS_HIGH", # Venous pressure low and high alarm limits are inconsistent - 21: "REQUEST_REJECT_REASON_SALINE_MAX_VOLUME_REACHED", # Saline bolus volume maximum has been reached - no more saline allowed - 22: "REQUEST_REJECT_REASON_SALINE_BOLUS_NOT_IN_PROGRESS", # A saline bolus is not in progress - 23: "REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE", # Requested user action is disabled in current state - 24: "REQUEST_REJECT_REASON_ALARM_IS_ACTIVE", # Requested user action not allowed while alarm is active - 25: "REQUEST_REJECT_REASON_INVALID_COMMAND", # Requested user action invalid - 26: "REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED", # The treatment has been completed - 27: "REQUEST_REJECT_REASON_ADDL_RINSEBACK_MAX_VOLUME_REACHED", # Rinseback additional volume maximum has been reached - no more additional rinsebacks allowed - 28: "REQUEST_REJECT_REASON_UF_VOLUME_NOT_SET", # Ultrafiltration volume is not set yet - 29: "REQUEST_REJECT_REASON_NO_PATIENT_CONNECTION_CONFIRM", # The user has not confirmed patient connection - 30: "REQUEST_REJECT_REASON_HEPARIN_PAUSE_INVALID_IN_THIS_STATE", # Heparin cannot be paused if not currently deliverying Heparin - 31: "REQUEST_REJECT_REASON_HEPARIN_NOT_PAUSED", # Heparin cannot be resumed if not paused - 32: "REQUEST_REJECT_REASON_DG_COMM_LOST", # Treatment cannot initiate if DG comm is lost - 33: "REQUEST_REJECT_REASON_DRAIN_NOT_COMPLETE", # Post-treatment reservoirs drain not complete - 34: "REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE", # Treatment cannot initiate if DG is not in standby idle state - 35: "REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT", # Request message not formatted properly - 36: "REQUEST_REJECT_REASON_INVALID_DATE_OR_TIME", # Given date/time is invalid - 37: "REQUEST_REJECT_REASON_TREATMENT_IN_PROGRESS", # Treatment is in progress - 38: "REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED", # Battery does not have enough charge to start treatment - 39: "REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED", # Cannot move on to recirculate without completing full rinseback. - 40: "REQUEST_REJECT_REASON_RESERVOIR_ONE_IS_NOT_READY", # Reservoir one fill is not complete - 41: "REQUEST_REJECT_REASON_PUMP_TRACK_NOT_CLOSED", # Pump track is not ready / closed - 42: "REQUEST_REJECT_REASON_DOOR_NOT_CLOSED", # Door is not closed - 43: "REQUEST_REJECT_REASON_SYRINGE_NOT_PRESENT", # Syringe is not present - 44: "REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN", # Dialysate cap open - 45: "REQUEST_REJECT_REASON_DG_CONCENTRATE_CAP_OPEN", # Concentrate cap open - 46: "NUM_OF_REQUEST_REJECT_REASONS" # Number of settings change reject codes -} - -#Alarm List -UNDEFINED_ALARM_ID_MSG = "ALARM_ID_UNDEFINED" -ALARM_TITLE = "Alarm" -ALARM_LIST_TITLE = "Alarm list" -ALARM_PRIORITIES = {1: "LOW", 2: "MEDIUM", 3: "HIGH"} - -ALARM_PRIORITY_OPTIONS = { - 0 : 'ALARM_PRIORITY_NONE' , - 1 : 'ALARM_PRIORITY_LOW' , - 2 : 'ALARM_PRIORITY_MEDIUM', - 3 : 'ALARM_PRIORITY_HIGH', -} - -#Setting -DEVICE_SETTINGS_TEXT = "Device Settings" -DEVICE_SETTINGS_SCREEN_PARAMETER = ["Information", "Volume And Brightness", "Wi-Fi", "Bluetooth Cuff", "DG Cleaning", "Service", "Export Logs"] -CLEAR_ALARM_CONDITION_TEXT = "Clear Alarm Condition" -EXPORT_LOGS ="Export Logs" -SHUTDOWN_BUTTON_TEXT = "SHUTDOWN" -BACK_BUTTON_TEXT = "BACK" -EXPORT_LOGS_OPTIONS = ["Application", "Treatment", "Service"] -SD_CARD_DETAILS =["SD-Card (MB)", "Free : 0.000","Total: 0.000"] -USB_DRIVE_DETAILS = ["USB Drive (MB)","Free : 0.000","Total: 0.000"] -EXPORT_BUTTON_TEXT = "Export" -SettingsHome_Treatment_Text = "Treatment" -SettingsHome_Manager_Text = "Manager" -SettingsHome_Settings_Text = "Settings" -SERVICE_SCREEN_TITLE_TEXT = "Service" -SERVICE_SCREEN_PARAMETER = ["Information", "Volume And Brightness", "Wi-Fi", "Bluetooth Cuff", "Dialysate Generator Settings", "Services"] - -#create custom treatment -TREATMENT_TITLE = "Create a Custom Treatment" -CONFIRM_TREATMENT_TITLE = "Confirm Treatment" -PRESCRIPTION_TITLE = "PRESCRIPTION" -OPERATING_PARAMETERS_TITLE = "OPERATING PARAMETERS" -PATIENT_ID_TEXT = "Patient ID" -BLOOD_FLOW_RATE = "Blood Flow Rate" -DIALYSATE_FLOW_RATE = "Dialysate Flow Rate" -DURATION = "Duration" -SALINE_BOLUS_VOLUME = "Saline Bolus Volume" - -#main treatment screen -VITALS_TITLE = "VITALS" - - -PATIENT_ID = "demopatientid" -SALINE_BOLUS_TITLE = "Saline Bolus" -ACID_CONCENTRATE_TITLE = "Acid Concentrate" -BICARBONATE_CONCENTRATE_TITLE = "Bicarbonate Concentrate" -DIALYZER_TYPE_TITLE = "Dialyzer Type" -DIALYSATE_TEMPERATURE = "Dialysate Temperature" -BLOOD_PRESSURE_MEASUREMENT_INTERVAL = "Blood Pressure Measurement Interval" -RINSEBACK_FLOW_RATE = "Rinseback Flow Rate" - - -CREATE_TREATMENT_PARAMETERS = ["Blood Flow Rate", "Dialysate Flow Rate", "Duration","Heparin Dispensing Rate", - "Heparin Bolus Volume","Heparin Stop Time", "Saline Bolus", "Dialysate Temperature", - "Blood Pressure Measurement Interval", "Rinseback Flow Rate"] - -OFF_TEXT = "OFF" -CONTINUE_TEXT = "CONTINUE" - -PRESCRIPTION_DETAILS = { - "Blood Flow Rate": "mL/min", "Dialysate Flow Rate": "mL/min", - "Duration": "min", "Heparin Dispensing Rate": "mL/hr", - "Heparin Bolus Volume": "mL", "Heparin Stop Time": "min", - "Saline Bolus Volume": "mL", - "Dialysate Temperature": "°C", "Arterial Pressure Limit Low": "mmHg", - "Arterial Pressure Limit High": "mmHg","Blood Pressure Measure Interval":"min", - "Rinseback Rate" : "mL/min", "Venous Pressure Limit High": "mmHg", - "Venous Pressure Limit Low": "mmHg" -} - -#Time_Duration -TREATMENT_PAUSED_TEXT = "Treatment Paused" - -#pre-treatment -CONSUMABLE_SELF_TEST_TEXT = "Consumables Self Test" -BICARB_PUMP_CHECK_TEXT = "BiCarb Pump Check" -ACID_PUMP_CHECK_TEXT = "Acid Pump Check" -SELF_TEST_COMPLETE_TEXT = "Self Test Complete!" -BUSY = "Busy" -CHECK = "Check" -BEGIN_PRIME_TITLE = "Begin Prime" -PRIMING_TITLE = "Priming" -SYSTEM_SELF_TEST_TITLE = "System Self Test" -FILTER_FLUSH_TITLE = "Filter Flush" - -#Pre-Treatment Disposables -NEXT_BUTTON_TEXT = "NEXT" -BACK_BUTTON_TEXT = "BACK" -CONFIRM_BUTTON_TEXT = "CONFIRM" - -#Pre_treatment_water_sample -SAMPLE_TEXT = "Sample" -CREATE_TEXT = "Create" -WATER_SAMPLE_BUTTON_TEXT = "WATER SAMPLE" -PASS_TEXT = "PASS" -FAIL_TEXT = "FAIL" -OK_TEXT = "OK" - -#Vitals & pretreatment_patient_connection -SYSTOLIC_TEXT = "systolic" -DIASTOLIC_TEXT = "diastolic" - -#priming -TEST_DRY_STEPS = ["Used Cartridge Check", "Occlusion Sensors Check", "Pressure Sensors Check", "Syringe Pump Check"] -PRIMING_STEPS = ["Blood Circuit Priming", "Dialysate Circuit Priming", "Wet Self Tests"] -SELF_TEST_COMPLETION_MSG = "Self Test Complete!" -PRIMING_COMPLETE_MSG = "Priming Complete!" - -#main_treatment_flows -FLOW_UNIT = "mL/min" -BLOOD_FLOW_TEXT = "blood" -DIALYSATE_FLOW_TEXT = "dialysate" - -LIQUID_UNIT = "mL" - -#tst_treatment_monitoring -FLOWS_TEXT = "FLOWS" -BLOOD_UNIT = "mL/min" -DIALYSATE_TEXT = "Dialysate" -BLOOD_TEXT = "Blood" -VITALS_TEXT = "VITALS" -BLOOD_PRESSURE_TEXT = "mmHg" -HEARTRATE_UNIT = "BPM" -PRESSURE_TEXT = "PRESSURE (mmHg)" -ARTEREAL_TEXT = "Arterial" -VENOUS_TEXT = "Venous" -TIME_DURATION_TEXT = "Time Remaining" -ULTRAFILTERATION_TEXT = "ULTRAFILTRATION VOLUME (L)" -SALINE_BOLUS = "SALINE BOLUS" -VOLUME_DELIVERED = "Volume Delivered" -CUMULATIVE_DELIVERED = "Cumulative Delivered" - -#post-treatment -PATIENT_DISCONNECTION_TEXT = "Patient Disconnection" -REVIEW_TEXT = "Review" -PATIENT_DISCONNECTION_CONFIRM_BUTTON_TEXT = "CONFIRM" -DISPOSABLE_TEXT = "Disposables" -NEXT_TEXT = "NEXT" -BACK_TEXT = "BACK" -CONFIRM_TEXT = "CONFIRM" -DISPOSABLES_REMOVAL_TEXT = "Disposables Removal" - -#post treatment review -TREATMENT_REVIEW_TITLE_TEXT = "Treatment Review" -HEPARIN_TYPE = "UFH 1,000 IU/mL" -ACID_CONCENTRATE = ["08-1251-1", "08-2251-0", "08-3251-9"] -BICARBONATE_CONCENTRATE = "Fres. Centrisol" -DIALYZER_TYPE = ["BB Diacap Pro 13H", "BB Diacap Pro 16H", "BB Diacap Pro 19H", "F Optiflux F160NRe", "F Optiflux F180NRe"] -TREATMENT_REVIEW_TITLE_TEXT = "Treatment Review" -EXPORT_TEXT = "Export" -CODE_TEXT = "Code: " -CODE_TEXT_AFTER_LOGGING = "Code: ..." - -POST_TREATMENT_REVIEW_SCREEN_UNITS = { - "Patient ID" : "", - "Heparin Bolus Volume": "mL", - "Heparin Stop" : "min", - "Heparin Dispense Rate" : "mL/hr", - "Heparin Bolus Volume" : "mL", - "Heparin Delivered Volume": "mL", - "Blood Flow Rate" : "mL/min", - "Treatment Start DateTime" : "", - "Dialysate Flow Rate" : "mL/min", - "Treatment End DateTime" : "", - "Treatment Duration" : "min", - "Water Sample Test Result": "", - "Actual Treatment Duration":"min", - "Dialysate Volume Used" : "L", - "Acid ConcentrateType" : "", - "Prescribed UF Volume" : "L", - "Bicarbonate Concentrate Type" : "", - "Target UF Volume" : "L", - "Potassium Concentration" : "mEg/L", - "Actual UF Volume" : "L", - "Calcium Concentration" :"mEg/L", - "Prescribed UF Rate" : "mL/min", - "Bicarbonate Concentration" : "mEg/L", - "Target UF Rate": "mL/min", - "Sodium Concentration" : "mEg/L", - "Actual UF Rate": "mL/min", - "Dialysate Temperature" :"C", - "Saline Bolus Volume" : "mL", - "Dialyzer Type" : "", - "Heparin Type" : "", - "Heparin Concentration" : "IU/mL", - } - - -#Information -INFORMATION_TITLES = ["Information", "Versions"] -INFORMATION_PARAMETERS = ["Information", "UI Version", "HD Version", "HD FPGA Version", "HD Serial Number", "DG Version", "DG FPGA Version", "DG Serial Number"] -SERIVCES_TITLE = "Service" -SERVICES_PARAMETERS = ["HD Last Service Date", "HD Next Service Date", "DG Last Service Date", "DG Next Service Date"] - - -#volume and brightness -VOLUME_AND_BRIGHTNESS_TEXT = "Volume And Brightness" -BRIGHTNESS_TEXT = "Brightness" -ALARM_VOLUME_TEXT = "Alarm Volume" -UNIT_OF_VOLUME_AND_BRIGHTNESS = "%" - -#services -SHUTDOWN_TEXT = "SHUTDOWN" - -# pretreatment_patient_connection & ui logs -ACK_REQ_STATUS = 'Ack Req' -ACK_BAK_STATUS = 'Ack Bak' -PATIENT_CONNECTION_TEXT = "Patient Connection" -UF_VOLUME_TEXT = "Ultrafiltration Volume (L)" -UF_TITLE_TEXT = "Ultrafiltration Setup" -BP_HR_TEXT = "BP/HR" -SKIP_TEXT = "SKIP" -TUTORIAL_TEXT = { - 0 : "Wash your hands and establish vascular access per your clinic's instructions.", - 1 : "Pinch arterial clamp and venous clamp on located on the cartridge patient lines.", - 2 : "Remove arterial and venous shunt.", - 3 : "Connect arterial and venous cartridge lines to your patient access lines." -} - -#End treatment -RINSEBACK_BUTTON_TEXT = "START RINSEBACK" -END_TREATMENT_COMPLETE_STATE_TEXT = "Treatment Complete" -END_TREATMENT_COMPLETE_PAUSED_STATE_TEXT = "Treatment Complete Paused" - -#rinseback-setup -RINSE_BACK_SETUP_TEXT = "Rinseback Setup" -RINSEBACK_BUTTON_TEXT = "START RINSEBACK" -END_IMAGE_BUTTON_TEXT = "End" -DECELERATE_BUTTON_TEXT = "Decelerate" -ACCELERATE_BUTTON_TEXT = "Accelerate" -PAUSE_BUTTON_TEXT = "Pause" -RESUME_BUTTON_TEXT = "Resume" -RINSEBACK_TEXT = "Rinseback" -RINSEBACK_COMPLETE_TEXT = "Rinseback Complete" -END_TREATMENT_BUTTON_TEXT = "END TREATMENT" -ADDITIONAL_BUTTON_TEXT = "ADDITIONAL" -ADDITIONAL_RINSEBACK_TEXT = "Additional Rinseback" -RINSEBACK_UNIT = " mL" -RINSEBACK_UNIT_MIN = " mL/min" - -ALARM_ID_AND_MESSAGES = { - 1: "Stuck button POST failure.\nStop or Off button detected to be pressed for at least 1 second during test shortly after power up.", - 2: "HD FPGA POST failure.", - 3: "DG FPGA POST failure.", - 4: "HD Watchdog POST failure.", - 5: "DG Watchdog POST failure.", - 6: "UI communication POST failure.\nUI failed to communicate within a reasonable time after power up.", - 7: "HD RTC battery low.", - 8: "HD accelerometer failed POST.", - 9: "DG accelerometer failed POST." , - 10: "Alarm ID available for use.", - 11: "Alarm ID available for use.", - 12: "HD firmware image integrity POST test failed.", - 13: "DG firmware image integrity POST test failed.", - 14: "HD blood flow invalid calibration.", - 15: "HD dialysate flow invalid calibration.", - 16: "HD alarm audio failed POST.", - 17: "HD UI POST failed.", - 18: "DG load cells invalid calibration record.", - 19: "DG flow sensors invalid calibration record.", - 20: "DG conductivity sensors invalid calibration record.", - 21: "DG drain line volume invalid calibration record.", - 22: "DG reservoirs invalid calibration record.", - 23: "DG acid concentrate calibration record.", - 24: "DG bicarb concentrate calibration record.", - 25: "DG accelerometer invalid calibration record.", - 26: "HD accelerometer invalid calibration record.", - 27: "HD blood flow invalid calibration record.", - 28: "HD dialyzer flow invalid calibration record.", - 29: "HD heparin force sensor invalid calibration record.", - 30: "HD Software fault.\nSoftware found itself in an unexpected state.", - 31: "Blood pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running.", - 32: "Blood pump failed motor off check.\nMeasured speed while commanded off.", - 33: "Blood pump failed motor direction check.\nMeasured vs commanded.", - 34: "Blood pump failed rotor speed check.\nMismatch with rotor and motor speeds.", - 35: "Dialysis inlet pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running.", - 36: "Dialysis inlet pump failed motor off check.\nMeasured speed while commanded off.", - 37: "Dialysis inlet pump failed motor direction check.\nMeasured vs commanded.", - 38: "Dialysis inlet pump failed rotor speed check.\nMismatch with rotor and motor speeds.", - 39: "Dialysis outlet pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running.", - 40: "Dialysis outlet pump failed motor off check.\nMeasured speed while commanded off.", - 41: "Dialysis outlet pump failed motor direction check.\nMeasured vs commanded.", - 42: "Dialysis outlet pump failed rotor speed check.\nMismatch with rotor and motor speeds.", - 43: "HD blood leak self test fault.", - 44: "User interface communication timeout.", - 45: "HD too many bad communications CRC.", - 46: "System message that required acknowledgment was not acknowledged.", - 47: "Ultrafiltration rate is too high error during treatment.", - 48: "Ultrafiltration volume accuracy error during treatment.", - 49: "HD FPGA communication down for too long.", - 50: "FPGA not accepting commanded valve states.", - 51: "Blood pump failed motor speed check.\nMeasured vs commanded.", - 52: "Dialysate inlet pump failed motor speed check.\nMeasured vs commanded.", - 53: "Dialysate outlet pump failed motor speed check.\nMeasured vs commanded.", - 54: "HD critical data integrity check failed.", - 55: "DG critical data integrity check failed.", - 56: "HD accelerometer error (no readings or FPGA reports error).", - 57: "DG accelerometer error (no readings or FPGA reports error).", - 58: "HD valve homing failed.", - 59: "HD valve transition time out.", - 60: "HD valve not functional.", - 61: "HD valve current out of range.", - 62: "HD valve position out of target.", - 63: "FPGA reports failure reading arterial pressure sensor.", - 64: "FPGA reports failure reading venous pressure sensor.", - 65: "HD requests DG command with invalid parameter fault.", - 66: "HD blood leak sensor set point set failure.", - 67: "HD blood pump occlusion self-test failure alarm.", - 68: "HD active reservoir recirculation out of range.", - 69: "HD blood leak sensor invalid calibration record.", - 70: "HD arterial pressure self-test failure alarm." , - 71: "HD venous pressure self-test failure alarm.", - 72: "HD blood flow meter status check self-test failure alarm.", - 73: "HD dialysate flow meter status check self-test failure alarm.", - 74: "HD blood leak detector self-test transmit timeout.", - 75: "HD syringe pump self-test failure alarm.", - 76: "HD monitored voltage is out of range.", - 77: "DG monitored voltage is out of range.", - 78: "HD syringe pump direction (from encoder) error.", - 79: "HD syringe pump direction (from controller) error.", - 80: "HD syringe pump fault reported by FPGA.", - 81: "HD syringe pump over travel error.", - 82: "HD syringe pump DAC write failure.", - 83: "HD syringe pump is running while the BP is off.", - 84: "HD venous pressure sensor not being read.", - 85: "HD pump track latch opened alarm.", - 86: "HD BP occlusion sensor not being read.", - 87: "DG heating invalid calibration record.", - 88: "DG concentrate pumps hall sensor out of range.", - 89: "HD BP occlusion sensor error.", - 90: "DG load cells FPGA read error.", - 91: "HD No dialysate flow data receive in the last 3 seconds.", - 92: "DG conductivity sensor bad status.", - 93: "DG outlet primary conductivity out of range.", - 94: "DG pressure out of range.", - 95: "DG watchdog expired.", - 96: "Inlet water temperature in high range.", - 97: "Fill conductivity out of range.", - 98: "HD battery communication fault.", - 99: "HD syringe pump stall alarm.", - 100: "HD no cartridge self-test timeout.", - 101: "HD dry self-test timeout.", - 102: "DG heat disinfect temperature gradient out of range.", - 103: "HD non-volatile calibration group invalid record CRC.", - 104: "Air trap level sensors reporting illegal combination of air/fluid.", - 105: "DG non-volatile system group invalid record CRC.", - 106: "Unused.", - 107: "HD reports DG restarted fault.", - 108: "HD syringe pump ADC error.", - 109: "HD syringe pump volume check error.", - 110: "HD syringe pump speed check error.", - 111: "HD syringe pump not stopped in off state error.", - 112: "HD blood leak zero command transmit timeout.", - 113: "HD blood leak zero command fault.", - 114: "HD venous air bubble detector self-test failure.", - 115: "DG temperature sensor out of range.", - 116: "DG temperature sensor ADC out of range.", - 117: "DG CAN message not acked.", - 118: "DG RTC config error.", - 119: "DG RTC battery low error.", - 120: "HD pre-treatment mode wet self-test prime check failure.", - 121: "DG main primary heater voltage out of range.", - 122: "DG small primary heater voltage out of range.", - 123: "DG trimmer heater voltage out of range.", - 124: "HD end of treatment alarm (high priority).", - 125: "Blood sitting too long after treatment stopped by user alarm (>5 min).", - 126: "HD blood leak detected alarm.", - 127: "Venous pressure too low during treatment." , - 128: "HD venous air bubble detected alarm.", - 129: "HD venous air bubble detected rinseback alarm.", - 130: "Venous pressure too high during treatment.", - 131: "Arterial pressure too low during treatment.", - 132: "Arterial pressure too high during treatment.", - 133: "DG fluid leak detected alarm.", - 134: "HD fluid leak detected alarm." , - 135: "HD experienced large acceleration.", - 136: "DG experienced large acceleration.", - 137: "HD tilt exceeds maximum.", - 138: "DG tilt exceeds maximum.", - 139: "HD AC power lost alarm.", - 140: "Dialysate generator communication timeout.", - 141: "Air trap fill timeout during treatment.", - 142: "Blood pump occlusion detected.", - 143: "DG dialysate temperature sensors out of range.", - 144: "Alarm ID available for use.", - 145: "Concentrate conductivity after adding acid out of range alarm.", - 146: "DG RTC or timer accuracy failure.", - 147: "Wait for the DG to produce dialysate.", - 148: "Inlet water temperature too high.", - 149: "HD watchdog expired.", - 150: "Inlet water conductivity in high range.", - 151: "Inlet water conductivity in low range.", - 152: "Inlet water pressure in low range.", - 153: "HD prime completed high priority alarm.", - 154: "EEPROM operations (read, write, erase) failure.", - 155: "Alarm ID available for use.", - 156: "Alarm ID available for use.", - 157: "DG chemical disinfect prime acid line timeout.", - 158: "Inlet water temperature is in the low range.", - 159: "Dialysate inlet pump failed flow vs motor speed check.", - 160: "Blood pump rotor speed too high.", - 161: "DG comm too many bad CRCs.", - 162: "DG FPGA clock speed check failure.", - 163: "HD sees primary load cell for reservoir 1 change too much too fast.", - 164: "HD sees primary load cell for reservoir 2 change too much too fast.", - 165: "HD in treatment rinseback operation timeout.", - 166: "HD in treatment re-circ sub-mode for too long.", - 167: "HD cartridge door opened alarm.", - 168: "HD active reservoir depletion timeout.", - 169: "Dialysate flow rate out of range.", - 170: "HD syringe empty alarm.", - 171: "HD syringe pump occlusion alarm.", - 172: "HD syringe pump not enough Heparin alarm.", - 173: "HD RTC configuration error.", - 174: "HD RTC or timer accuracy failure.", - 175: "HD pump direction status error.", - 176: "HD active reservoir is full during treatment and DG not ready to switch reservoirs.", - 177: "DG software fault.\nSoftware found itself in an unexpected state.", - 178: "HD communication timeout.", - 179: "DG FPGA communication down for too long.", - 180: "DG load cell ADC error.", - 181: "DG load cells weight out of range for tare.", - 182: "DG load cells invalid calibration.", - 183: "DG invalid load cell value.", - 184: "Inlet or Outlet UV reactor not healthy.", - 185: "DG fan RPM out of range.", - 186: "DG concentrate pump fault.", - 187: "DG concentrate pump CP1 speed control error.", - 188: "DG concentrate pump CP2 speed control error.", - 189: "DG drain pump RPM out of range.", - 190: "DG drain pump off fault.", - 191: "DG flow rate out of upper range.", - 192: "DG flow rate out of lower range.", - 193: ".", - 194: "DG RO pump duty cycle out of range.", - 195: "DG RO pump pressure out of range.", - 196: "DG temperature sensor error flag fault.", - 197: "DG temperature sensors ADC fault.", - 198: "Alarm ID available for use.", - 199: ".", - 200: "DG thermistors/sensors temperature out of range.", - 201: "HD pre-treatment mode wet self-test lc vs FMD failure.", - 202: "HD pre-treatment mode dry pressure normal self-test failure.", - 203: "Pressure sensor fault.", - 204: "RO rejection ratio out of range.", - 205: "Conductivity sensor fault.", - 206: "DG dialysate fill runs out of time.", - 207: "DG flow meter check failure alarm.", - 208: "Alarm ID available for use.", - 209: "DG drain circulation line timeout.", - 210: "HD battery pack detected an error.", - 211: "Blood sitting too long warning (>4 min).", - 212: "HD end of treatment alarm (user not acting to end treatment).", - 213: "HD prime completed medium priority alarm.", - 214: "HD Saline bolus volume check failure.", - 215: "HD rinseback volume check failure.", - 216: "HD end treatment sub-mode timeout alarm.", - 217: "HD blood prime volume check failure.", - 218: "HD syringe detected alarm.", - 219: "HD syringe pump syringe removed alarm.", - 220: "HD battery pack SOC is too low.", - 221: "HD Saline bag is empty.", - 222: "HD dialysate temperature too high alarm.", - 223: "HD dialysate temperature too low alarm.", - 224: "Treatment stopped by user action.", - 225: "HD end of treatment warning.", - 226: "HD prime completed low priority alarm.", - 227: "HD prime out of time alarm.", - 228: "HD time out on prime sub-mode purge air state.", - 229: "HD prime dialysate dialyzer time out alarm.", - 230: "HD prime dialysate bypass time out alarm.", - 231: "HD pre-treatment mode dry pressure self-test failure.", - 232: "HD pre-treatment mode wet self-test LC vs LC failure.", - 233: "Alarm ID available for use.", - 234: "RTC (i.e read time) or RAM operations failure (read or write).", - 235: "HD in treatment stopped sub-mode after rinseback completed (no escalation).", - 236: "HD needs new cartridge to be installed.", - 237: "HD prime saline dialyzer time out alarm.", - 238: "HD no cartridge loaded or installed improperly alarm.", - 239: "HD fail to remove cartridge alarm.", - 240: "Bicarb conductivity out of range during bicarb pump check alarm.", - 241: "DG reservoir drain time out.", - 242: "DG reservoir fill time out.", - 243: "DG reservoir leak time out.", - 244: "DG temperature sensors difference out of range.", - 245: "DG heat disinfect target temperature time out (could not reach to temperature).", - 246: "DG heat disinfect inlet pressure and temperature sensors out of range.", - 247: "DG heat disinfect inlet conductivity and temperature out of range.", - 248: "DG chemical disinfect could not reach to target temperature.", - 249: "DG chemical disinfect inlet pressure and temperature sensors out of range.", - 250: "DG chemical disinfect inlet conductivity and temperature out of range.", - 251: "HD invalid system record.", - 252: "HD invalid service record.", - 253: "DG invalid system record.", - 254: "DG invalid service record.", - 255: "HD and UI software builds are not compatible.", - 256: "HD and DG software builds are not compatible.", - 257: "DG FPGA power out timeout.", - 258: "HD FPGA power out timeout.", - 259: "HD temperatures out of range.", - 260: "UI POST Application Integrity (Sha256Sum) failure.", - 261: "UI POST CANBus failure.", - 262: "UI POST Display failure.", - 263: "UI POST Touch failure.", - 264: "UI POST SD-Card failure.", - 265: "UI POST RTC failure.", - 266: "UI POST WiFi failure.", - 267: "UI POST Bluetooth failure.", - 268: "UI POST Ethernet failure.", - 269: "UI POST Sound failure.", - 270: "HD POST Safety Shutdown failure.", - 271: "DG POST Safety Shutdown failure.", - 272: "HD Fan RPM out of range.", - 273: "HD measured blood pump flow rate is out of range.", - 274: "HD measured dialysate inlet pump flow rate is out of range.", - 275: "HD arterial pressure sensor is reading out of range.", - 276: "HD venous pressure sensor is reading out of range.", - 277: "HD BP occlusion sensor is reading out of range.", - 278: "HD active reservoir weight out of range.", - 279: "DG dialysate drain time out.", - 280: "HD arterial pressure sensor read timeout error.", - 281: "Acid concentration bottle low volume alarm.", - 282: "Bicarbonate concentration bottle low volume alarm.", - 283: "DG load cells weight out of range.", - 284: "DG load cells primary/back up drift out of range.", - 285: "HD treatment recirculate timeout warning.", - 286: "HD treatment rinseback complete timeout warning.", - 287: "HD processor clock speed checks against FPGA clock failure.", - 288: "HD load cells primary/back up drift out of range.", - 289: "DG dialysate or concentrate caps not closed.", - 290: "DG flow too low while heater is on.", - 291: "Total number of alarms." #Issue 77 - need to remove after issue fix - } - -ALARM_PRIORITIES = {1: "LOW", 2: "MEDIUM", 3: "HIGH"} -ALARM_LIST_TITLE = "Alarm list" - -REJECTION_REASON = { - 0: "No Active Alarm List", - 1: "REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE", # Request is not allowed in the current operating mode - 2: "REQUEST_REJECT_REASON_TIMEOUT_WAITING_FOR_USER_CONFIRM", # Validated request was not confirmed by user in reasonable time - 3: "REQUEST_REJECT_REASON_NOT_IN_TREATMENT_MODE", # Request is not allowed if not in treatment mode - 4: "REQUEST_REJECT_REASON_INVALID_TREATMENT_STATE", # Request is not allowed in current treatment state - 5: "REQUEST_REJECT_REASON_TREATMENT_TOO_CLOSE_TO_FINISHED", # Request is not allowed so near end of treatment - 6: "REQUEST_REJECT_REASON_TREATMENT_TIME_OUT_OF_RANGE", # Treatment duration is out of range - 7: "REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_CURRENT", # Treatment time change is less than currently elapsed treatment time - 8: "REQUEST_REJECT_REASON_BLOOD_FLOW_OUT_OF_RANGE", # Blood flow is out of range - 9: "REQUEST_REJECT_REASON_DIAL_FLOW_OUT_OF_RANGE", # Dialysate flow is out of range - 10: "REQUEST_REJECT_REASON_DIAL_VOLUME_OUT_OF_RANGE", # Dialysate flow rate or treatment duration causes dialysate volume to exceed limit - 11: "REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE", # Ultrafiltration volume is out of range - 12: "REQUEST_REJECT_REASON_UF_RATE_OUT_OF_RANGE", # Ultrafiltration rate is out of range - 13: "REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_MINIMUM", # Treatment time change is less than minimum treatment time - 14: "REQUEST_REJECT_REASON_UF_NOT_IN_PROGESS", # Ultrafiltration is not currently in progress - 15: "REQUEST_REJECT_REASON_UF_NOT_PAUSED", # Ultrafiltration is not currently paused - 16: "REQUEST_REJECT_REASON_SALINE_BOLUS_IN_PROGRESS", # A saline bolus is in progress - 17: "REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE", # A treatment parameter is out of range - 18: "REQUEST_REJECT_REASON_HEPARIN_PRESTOP_EXCEEDS_DURATION", # The Heparin pre-stop setting is greater than the treatment duration - 19: "REQUEST_REJECT_REASON_ARTERIAL_PRESSURE_LOW_VS_HIGH", # Arterial pressure low and high alarm limits are not inconsistent - 20: "REQUEST_REJECT_REASON_VENOUS_PRESSURE_LOW_VS_HIGH", # Venous pressure low and high alarm limits are inconsistent - 21: "REQUEST_REJECT_REASON_SALINE_MAX_VOLUME_REACHED", # Saline bolus volume maximum has been reached - no more saline allowed - 22: "REQUEST_REJECT_REASON_SALINE_BOLUS_NOT_IN_PROGRESS", # A saline bolus is not in progress - 23: "REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE", # Requested user action is disabled in current state - 24: "REQUEST_REJECT_REASON_ALARM_IS_ACTIVE", # Requested user action not allowed while alarm is active - 25: "REQUEST_REJECT_REASON_INVALID_COMMAND", # Requested user action invalid - 26: "REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED", # The treatment has been completed - 27: "REQUEST_REJECT_REASON_ADDL_RINSEBACK_MAX_VOLUME_REACHED", # Rinseback additional volume maximum has been reached - no more additional rinsebacks allowed - 28: "REQUEST_REJECT_REASON_UF_VOLUME_NOT_SET", # Ultrafiltration volume is not set yet - 29: "REQUEST_REJECT_REASON_NO_PATIENT_CONNECTION_CONFIRM", # The user has not confirmed patient connection - 30: "REQUEST_REJECT_REASON_HEPARIN_PAUSE_INVALID_IN_THIS_STATE", # Heparin cannot be paused if not currently deliverying Heparin - 31: "REQUEST_REJECT_REASON_HEPARIN_NOT_PAUSED", # Heparin cannot be resumed if not paused - 32: "REQUEST_REJECT_REASON_DG_COMM_LOST", # Treatment cannot initiate if DG comm is lost - 33: "REQUEST_REJECT_REASON_DRAIN_NOT_COMPLETE", # Post-treatment reservoirs drain not complete - 34: "REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE", # Treatment cannot initiate if DG is not in standby idle state - 35: "REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT", # Request message not formatted properly - 36: "REQUEST_REJECT_REASON_INVALID_DATE_OR_TIME", # Given date/time is invalid - 37: "REQUEST_REJECT_REASON_TREATMENT_IN_PROGRESS", # Treatment is in progress - 38: "REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED", # Battery does not have enough charge to start treatment - 39: "REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED", # Cannot move on to recirculate without completing full rinseback. - 40: "REQUEST_REJECT_REASON_RESERVOIR_ONE_IS_NOT_READY", # Reservoir one fill is not complete - 41: "REQUEST_REJECT_REASON_PUMP_TRACK_NOT_CLOSED", # Pump track is not ready / closed - 42: "REQUEST_REJECT_REASON_DOOR_NOT_CLOSED", # Door is not closed - 43: "REQUEST_REJECT_REASON_SYRINGE_NOT_PRESENT", # Syringe is not present - 44: "REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN", # Dialysate cap open - 45: "REQUEST_REJECT_REASON_DG_CONCENTRATE_CAP_OPEN", #Concentrate cap open - 46: "NUM_OF_REQUEST_REJECT_REASONS" # Number of settings change reject codes - } - -# dictionary of rejection reason from application source code. -# message location -> denali-> Headers-> common-> MsgDefs.h - -#create custom treatment -TREATMENT_TITLE = "Create a Custom Treatment" -HEPARIN_TYPE = "UFH 1,000 IU/mL" -ACID_CONCENTRATE = ["08-1251-1", "08-2251-0", "08-3251-9"] -BICARBONATE_CONCENTRATE = "Fres. Centrisol" -DIALYZER_TYPE = ["BB Diacap Pro 13H", "BB Diacap Pro 16H", "BB Diacap Pro 19H", "F Optiflux F160NRe", "F Optiflux F180NRe"] -CONFIRM_TREATMENT_TITLE = "Confirm Treatment" -PRESCRIPTION_TITLE = "PRESCRIPTION" -OPERATING_PARAMETERS_TITLE = "OPERATING PARAMETERS" - -#wifi -WIFI_TITLE_TEXT = "Wi-Fi" -IP_ADDRESS_TEXT = "IP Address" -GATEWAY_TEXT = "Gateway" -SUBNET_MASK_TEXT = "Subnet Mask" -DNS_TEXT = "DNS" -SSID_TEXT = "SSID" -SCAN_TEXT = "SCAN" -BACK_BUTTON_TEXT = "BACK" - -#Bluetooth cuff -BLUETOOTH_CUFF_TITLE_TEXT = "Bluetooth Cuff" -DEVICES_TEXT = "Devices" - -#DG Cleaning -DG_CLEANING_TITLE_TEXT = "DG Cleaning" -WATER_FLUSH_TEXT = "Water Flush" -HEAT_DISINFECTION_TEXT = "Heat Disinfection" -CHEMICAL_DISINFECTION_TEXT = "Chemical Disinfection" - - -CURRENT_COLOR = '#000000' -COMPLETE_COLOR= '#4290ec' -ENABLED_COLOR = '#fcfcfc' -INCOMPLETE_COLOR = '#607a91' -BLOOD_FLOW_RATE = "Blood Flow Rate" -DIALYSATE_FLOW_RATE = "Dialysate Flow Rate" -DURATION = "Duration" -HEPARIN_DISPENSING_RATE = "Heparin Dispensing Rate" -HEPARIN_BOLUS_VOLUME = "Heparin Bolus Volume" -HEPARIN_STOP_TIME = "Heparin Stop Time" -SALINE_BOLUS_VOLUME = "Saline Bolus Volume" -HEPARIN_TYPE_TITLE = "Heparin Type" -SALINE_BOLUS_TITLE = "Saline Bolus" -ACID_CONCENTRATE_TITLE = "Acid Concentrate" -BICARBONATE_CONCENTRATE_TITLE = "Bicarbonate Concentrate" -DIALYZER_TYPE_TITLE = "Dialyzer Type" -DIALYSATE_TEMPERATURE = "Dialysate Temperature" -BLOOD_PRESSURE_MEASUREMENT_INTERVAL = "Blood Pressure Measurement Interval" -RINSEBACK_FLOW_RATE = "Rinseback Flow Rate" - - -CREATE_TREATMENT_PARAMETERS = ["Blood Flow Rate", "Dialysate Flow Rate", "Duration","Heparin Dispensing Rate", - "Heparin Bolus Volume","Heparin Stop Time", "Saline Bolus", "Dialysate Temperature", - "Blood Pressure Measurement Interval", "Rinseback Flow Rate"] -TREATMENT_UNHIGHLIGHTED_COLOR = "#000000" -TREATMENT_HIGHLIGHTED_COLOR = "#135088" -OFF_TEXT = "OFF" -BACK_TEXT = "BACK" -CONTINUE_TEXT = "CONTINUE" - -PRESCRIPTION_DETAILS = { - "Blood Flow Rate": "mL/min", "Dialysate Flow Rate": "mL/min", - "Duration": "min", "Heparin Dispensing Rate": "mL/hr", - "Heparin Bolus Volume": "mL", "Heparin Stop Time": "min", - "Saline Bolus Volume": "mL", - "Dialysate Temperature": "°C", "Arterial Pressure Limit Low": "mmHg", - "Arterial Pressure Limit High": "mmHg","Blood Pressure Measure Interval":"min", - "Rinseback Rate" : "mL/min", "Venous Pressure Limit High": "mmHg", - "Venous Pressure Limit Low": "mmHg" -} - -OPERATIONAL_PARAMETERS = {"Heparin Type": HEPARIN_TYPE, "Acid Concentrate": "Fres. Naturalyte", - "Bicarbonate Concentrate": BICARBONATE_CONCENTRATE, "Dialyzer Type": "BB Diacap Pro 16H"} - -LIQUID_UNIT = "mL" - -#Pre-Treatment Disposables -NEXT_BUTTON_TEXT = "NEXT" -BACK_BUTTON_TEXT = "BACK" -CONFIRM_BUTTON_TEXT = "CONFIRM" -CONSUMABLE_SELF_TEST_TEXT = "Consumables Self Test" -BICARB_PUMP_CHECK_TEXT = "BiCarb Pump Check" -ACID_PUMP_CHECK_TEXT = "Acid Pump Check" -SELF_TEST_COMPLETE_TEXT = "Self Test Complete!" -BUSY = "Busy" -CHECK = "Check" -BEGIN_PRIME_TITLE = "Begin Prime" -PRIMING_TITLE = "Priming" -SYSTEM_SELF_TEST_TITLE = "System Self Test" -FILTER_FLUSH_TITLE = "Filter Flush" - -#service -SERVICE_TEXT = "Service" -BACK_TEXT = "BACK" -CONFIRM_TEXT = "CONFIRM" -SHUTDOWN_TEXT = "SHUTDOWN" -SERVICE_BACK_BTN = "BACK" - -BLOOD_PRIMING_TEXT = "Blood Priming" -SALINE_UNIT = "mL" -BLOOD_PRIMING_UNIT = "mL" -BLOOD_PRIMING_VALUE_0 = "0" -BLOOD_PRIMING_DEFAULT_VALUE = BLOOD_PRIMING_VALUE_0 + " " + BLOOD_PRIMING_UNIT - - Index: shared/scripts/configuration/utility.py =================================================================== diff -u -r0cc92d3b75bfb96dc4ecafd760a9ce15e455033b -r6bea5f3c54dd8e83b71577de9ecd4e44839703c8 --- shared/scripts/configuration/utility.py (.../utility.py) (revision 0cc92d3b75bfb96dc4ecafd760a9ce15e455033b) +++ shared/scripts/configuration/utility.py (.../utility.py) (revision 6bea5f3c54dd8e83b71577de9ecd4e44839703c8) @@ -12,76 +12,18 @@ # ############################################################################ - -import sys +import csv import test import squish from configuration import config +from dialin.ui.hd_simulator import HDSimulator from builtins import int as pyInt +from builtins import format +from datetime import datetime +hd_simulator = HDSimulator() -def start_application(app_name): - """ - Function to start application and verify application status [running] - If application does not start or running status is false, test stops - Argument: - @param app_name : (str) - Name of the application - @param app_executable : (str) - Actual application - @return: handle for the application if the application is in running state, - or error (exist the application) - """ - counter = 0 - while True: - try: - counter += 1 - test.log("Starting {}".format(app_name)) - squish.startApplication(app_name) - if counter == 1: - test.log("Application launched at the "+str(counter)+" st try.") - elif counter == 2: - test.log("Application launched at the "+str(counter)+" nd try.") - elif counter == 3: - test.log("Application launched at the "+str(counter)+" rd try.") - else: - test.log("Application launched at the "+str(counter)+" th try.") - break - except RuntimeError: - if counter == 1: - test.log("Application failed to launch after "+str(counter)+" try - Please refer logs") - elif counter == 20: - test.log("Exiting after "+str(counter)+ " tries..") - sys.exit(1) - else: - test.log("Application failed to launch after "+str(counter)+ " tries - Please refer logs") - except: - logErrorDetails("Failed to start the application") - sys.exit(1) - -def check_if_object_is_within_the_container(obj=None, container=None): - """ - check if an object is inside a container - @param obj - child UI object - @param container - container UI object - @return boolean true/false - """ - container = squish.findObject(container) - containerPos = container.mapToGlobal(squish.QPoint(0, 0)) - container_x, container_y = pyInt(containerPos.x), pyInt(containerPos.y) - container_width, container_height = pyInt(container.width), pyInt(container.height) - - obj = squish.findObject(obj) - objPos = obj.mapToGlobal(squish.QPoint(0, 0)) - obj_x, obj_y = pyInt(objPos.x), pyInt(objPos.y) - obj_width, obj_height = pyInt(obj.width), pyInt(obj.height) - - if obj_x >= container_x and obj_y >= container_y: - if (obj_x + obj_width) <= (container_x + container_width) and (obj_y + obj_height) <= (container_y + container_height): - return True - - return False - - def scroll_to_zone(zone=None, screen_object=None): """ scroll to the numeric if object is hidden @@ -108,3 +50,202 @@ raise LookupError("zone object is not in view to the user after " + \ "trying 100 times") + +def get_current_date_and_time(date_format='%Y/%b/%d - %H:%M:%S'): + + date = datetime.now() + return str(date.strftime(date_format)) + +def is_float(num): + """ + This function checks the value is adaptable for float conversion. + + @param num - (string) input value for conversion. + @return True/False- (bool) returns True if the value can type casted into float, else False + """ + try: + if '.' in num: + float(num) + return True + except ValueError: + return False + + +def is_intiger(num): + """ + This function checks the value is adaptable for integer conversion. + + @param num - (string) (string) input value for conversion. + @return True/False- (bool) returns True if the value can type casted into int, else False + """ + try: + if num.isdigit(): + return True + except ValueError: + return False + + +def get_extracted_file(): + """ + This function is the handler for getting file from log folder. + + This handler will go inside log folder and looks for newly added log based on current time. + if it satisfied that condition, it will return the exact path of newly created log. + + Application log file is automatically created on '/home/denali/Desktop/sd-card/log/ {current_date}_denaliSquish.log' + + @return latest_file - (string) returns latest file that append on log folder from sd-data + """ + try: + current_date = get_current_date_and_time(date_format = "%Y_%m_%d") + latest_file = config.LOG_LOCATION + current_date + '_denaliSquish.log' + return latest_file + except: + return False + + +def get_message_from_log(file_name, message_text): + + """ + This method intended to extract the message from application log. + For row[index], index represent column to be extracted. + + @param file_name - (string) path of the latest log file created. + @param message_text - (string) message text to be extracted. + @return message - (list) API arguments displayed in log. + """ + message = [] + count = 0 + try: + with open(file_name, 'r') as csv_file: + try: + for row in reversed(list(csv.reader(csv_file))): + if row[0].isalpha(): + pass + else: + row_length = sum(1 for values in row) + if row_length >= 4: + if row[3]!= None and row[3] == message_text: + if count == 30: + test.fail("handler unable to find message text from log file.") + message_length = sum(1 for values in row) + for column in range(4, message_length, 1): + message.append(row[column]) + count +=1 + for value in range(len(message)): + float_status = is_float(message[value]) + int_status = is_intiger(message[value]) + if float_status is True: + message[value] = float(message[value]) + if int_status is True: + message[value] = int(message[value]) + return message + else: + pass + except: + test.fail("application log data is corrupted") + except: + test.fail("Log file is not created or log file is not created based on standard log naming format.") + + +def get_ack_request_details(file_name, message_text): + """ + This method intended to extract acknowledgement request status, negative requested acknowledgement + and message id from application log. + + For row[index], were index represent column to be extracted. + + @param file_name - (string) path of the latest log file created. + @param message_text - (string) message text to be extracted from log. + @return row[3] - (string) acknowledgement request status. + @return row[4] - (string) Negative requested acknowledgement value (Sq). + @return message_id - (string) formatted message id from log. + """ + try: + message_id = " ID" + with open(file_name, 'r') as csv_file: + try: + for row in reversed(list(csv.reader(csv_file))): + if row[0].isalpha(): + pass + else: + row_length = sum(1 for values in row) + if row_length == 6 and row[3] != message_text: + if row[5].split(':')[0] == message_id: + extracted_message_id = pyInt(row[5].split(':')[1], 16) + formatted_message_id = format(extracted_message_id, '#0x') + # MSG_ID_HD_DEBUG_EVENT (0xFFF1) and MSG_ID_DG_DEBUG_EVENT (0xFFF2) hex values are reversed in log. + string_format_id = str(formatted_message_id) + first_two_char = string_format_id[2:4] + last_two_char = string_format_id[-2:] + if last_two_char != '00': + return row[3], row[4], ('0x'+last_two_char+first_two_char) + else: + return row[3], row[4], formatted_message_id.replace("00", "") + else: + pass + except: + test.fail("application log data is corrupted - unable to fetch data") + except: + test.fail("Log file is not created or log file is not created based on standard log naming format.") + + +def get_bak_request_details(file_name, ack_bak_value): + """ + This method intended to extract the acknowledgement back status from application log. + + For row[index], were index represent column to be extracted. + + @param file_name - (string) path of the latest log file created. + @param ack_bak_value - (string) Positive back acknowledgement value (Sq). + @return row[3] - (string) acknowledgement back status. + """ + try: + with open(file_name, 'r') as csv_file: + try: + for row in reversed(list(csv.reader(csv_file))): + if row[0].isalpha(): + pass + else: + row_length = sum(1 for values in row) + if row_length >= 5: + if row[4] == ack_bak_value: + return row[3] + else: + pass + else: + pass + except: + test.fail("application log data is corrupted") + except: + test.fail("Log file is not created or log file is not created based on standard log naming format.") + + + +def get_current_log_details(message_ack = False, message_text = None): + """ + This function is capable to perform data analysis from application log folder. + + logs are automatically created in path :"/home/denali/Desktop/sd-card/log/*.log". + + In row[index], index represent column to be extracted. + @param message_ack - (bool) 'True' - if ack is satisfied in log / 'False' - if ack condition is not satisfied + @param message_text - (string) message text to be extracted from log. + @return content_record - (list) list contains extracted data (ack_req, ack_bak, message, message_id). + """ + content_record = [] + file_name = get_extracted_file() + if message_text != None: + message = get_message_from_log(file_name, message_text) + content_record.append(message) + if message_ack != False: + ack_req_status, ack_req_value, message_id = get_ack_request_details(file_name, message_text) + ack_bak_value = ack_req_value.replace(":-", ":") # getting negative requested ack from positive requested ack + content_record.append(ack_req_status) + content_record.append(message_id.lower()) + if message_ack != False and ack_bak_value != None: + ack_bak_status = get_bak_request_details(file_name, ack_bak_value) + content_record.append(ack_bak_status) + return content_record + + Index: suite.conf =================================================================== diff -u -r8df6f936193bbd9127d3ec940562e62db0060bcb -r6bea5f3c54dd8e83b71577de9ecd4e44839703c8 --- suite.conf (.../suite.conf) (revision 8df6f936193bbd9127d3ec940562e62db0060bcb) +++ suite.conf (.../suite.conf) (revision 6bea5f3c54dd8e83b71577de9ecd4e44839703c8) @@ -1,6 +1,6 @@ AUT=denaliSquish LANGUAGE=Python OBJECTMAPSTYLE=script -TEST_CASES=tst_environment tst_post tst_standbymode tst_In_treatment +TEST_CASES=tst_environment tst_post tst_standbymode tst_In_treatment tst_dialin_logs VERSION=3 WRAPPERS=Qt Index: tst_dialin_logs/test.py =================================================================== diff -u --- tst_dialin_logs/test.py (revision 0) +++ tst_dialin_logs/test.py (revision 6bea5f3c54dd8e83b71577de9ecd4e44839703c8) @@ -0,0 +1,631 @@ +# -*- coding: utf-8 -*- + +## +# Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +# copyright +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, +# IN PART OR IN WHOLE, +# WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# file tst_dialin_log_verification +# date 27-July-2022 +# author Sai Chaitanya Ela +# + +# NOTE: +# This test verifies the logs for the messages provided + +import builtins +import logging +from dialin.ui.hd_simulator_alarms import HDAlarmsSimulator +from dialin.protocols.CAN import DenaliCanMessenger, DenaliChannels +from dialin.ui import HDSimulator +from dialin.ui import DGSimulator +from dialin.ui import utils +from configuration import utility +from configuration import config +from dialin.common.msg_ids import MsgIds +from dialin.common.hd_defs import HDOpSubModes, HDOpModes +from dialin.common import msg_defs +from dialin.utils.conversions import integer_to_bytearray, float_to_bytearray, short_to_bytearray, unsigned_integer_to_bytearray, integer_to_bit_array, bytearray_to_value + +hd_simulator = HDSimulator() +dg_simulator = DGSimulator() + +hd_simulator = HDSimulator() +logger= logging.getLogger("INFO") +messenger= DenaliCanMessenger('can0') +hd_alarm= HDAlarmsSimulator(can_interface=messenger, logger=logger) +dg_simulator = DGSimulator() + +NUMBER_OF_OPMODE = 9 +NUMBER_OF_TREATMENTMODES = 3 +CONDITIONS = [0,1] + +def verify_log(msg_id = None,msg=None, param=None): + """ + This function verifies the UI log's. + @param msg_id - (string) expected message_id's. + @param msg - (string) message to be displayed on log. + @param param - (list) parameters for msg_id's. + """ + test.startSection("Verification of UI log based on message : " + str(msg)) + utils.waitForGUI(2) + ack = False + if not msg_id in msg_defs.ACK_NOT_REQUIRED and msg_id != None: + ack = True + message_extracted = utility.get_current_log_details(message_ack=ack, message_text=msg) + test.log(str(message_extracted)) + if ack == True: + test.verify(config.ACK_REQ_STATUS in message_extracted, "ack request is verified") + test.verify(config.ACK_BAK_STATUS in message_extracted, "ack back is verified") + message_id_hex = builtins.hex(builtins.int(msg_id)) + message_id_str = builtins.str(message_id_hex) + test.verify(message_id_str in message_extracted, "message ID is verified") + if param != None: + test.verify(param in message_extracted, "parameters are verified") + test.endSection() + + +def main(): + utils.tstStart(__file__) + startApplication(config.AUT_NAME+" -d") + + + #Verification of Dialin->HD API's data from channel ID: 400 + + #0x8002 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32770, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Off_Button_State", param = [1,2]) + + #0x8003 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32771, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Stop_Button_State", param = [1,2]) + + #0x8004 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32772, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Alarm_Lamp", param = [1,2]) + + #0x8005 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32773, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Watch_Task_Checkin", param = [1,2,3]) + + #0x8006 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32774, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Alarm_State", param = [1,2,3]) + + #0x8007 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32775, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Alarm_Start", param = [1,2,3]) + + #0x8008 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32776, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Blood_Flow_Set_Point", param = [1,2,3]) + + #0x8009 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.5) + hd_simulator.cmd_send_hd_general_response(message_id = 32777, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Blood_Flow_Meas_Rate", param = [1,2.5]) + + #0x800A + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.5) + hd_simulator.cmd_send_hd_general_response(message_id = 32778, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Blood_Pump_Meas_MC_Spd", param = [1,2.5]) + + #0x800B + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.5) + hd_simulator.cmd_send_hd_general_response(message_id = 32779, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Blood_Pump_Meas_MC_Current", param = [1,2.5]) + + #0x800C + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32780, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Blood_Flow_Broadcast_Interval", param = [1,2]) + + #0x800D + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32781, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Treatment_Time_Remaining", param = [1,2]) + + #0x800E + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(1.5) + hd_simulator.cmd_send_hd_general_response(message_id = 32782, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Treatment_Time_Remaining", param = [1,1.5]) + + #0x800F + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.4) + hd_simulator.cmd_send_hd_general_response(message_id = 32783, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Blood_Pump_Rotor_Count", param = [1,2.4]) + + #0x8010 + payload = unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32784, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Flow_Set_Point", param = [2,2,2]) + + + #0x8011 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32785, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Flow_Meas_Rate", param = [1,2.0]) + + #0x8012 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32786, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Pump_Meas_MC_Spd", param = [1,2.0]) + + #0x8013 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32787, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Pump_Meas_MC_Current", param = [1,2.0]) + + #0x8014 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32788, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Flow_Broadcast_Interval", param = [1,2]) + + #0x8015 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32789, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Flow_Broadcast_Interval", param = [1,2]) + + #0x8016 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32790, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Flow_Broadcast_Interval", param = [1,2]) + + #0x8017 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32791, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Inlet_Flow_Broadcast_Interval", param = [1,2]) + + #0x8018 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32792, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Venous_Pressure", param = [1,2.0]) + + #0x8019 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32793, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Venous_Pressure", param = [1,2]) + + #0x801A + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32794, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Blood_Pump_Rotor_Count", param = [1,2]) + + #0x801B + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32795, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Arterial_Pressure_Offset_Request", param = [1,2.0]) + + #0x801C + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32796, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Pressure_Occlusion_Interval", param = [1,2]) + + #0x801D + payload = unsigned_integer_to_bytearray(1) + hd_simulator.cmd_send_hd_general_response(message_id = 32797, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + + + #0x801E + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32798, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Outlet_Pump_Broadcast_Interval", param = [1,2]) + + #0x801F + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32799, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_UF_Ref_Volume", param = [1,2.0]) + + #0x8020 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32800, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_UF_Measured_Volume", param = [1,2.0]) + + #0x8021 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32801, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Dial_Outlet_Pump_Meas_MC_Spd", param = [1,2.0]) + + #0x8022 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32802, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Meas_MC_Current", param = [1,2.0]) + + #0x8023 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32803, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Meas_Spd", param = [1,2]) + + #0x8024 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32804, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~~HD_Dial_Outlet_Pump_Meas_Spd", param = [1,2]) + + #0x8025 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + payload += unsigned_integer_to_bytearray(13) + hd_simulator.cmd_send_hd_general_response(message_id = 32805, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2.0,3]) + + #0x8026 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + hd_simulator.cmd_send_hd_general_response(message_id = 32806, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2.0,3]) + + #0x8027 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32807, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2.0,3]) + + #0x8028 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32808, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + verify_log(msg = "~HD_Accelerometer_Max_Axis", param = [1,2.0,2]) + + #0x8029 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32809, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2.0,3]) + + #0x802A + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32810, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2.0,3]) + + #0x802B + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(1.0) + payload += float_to_bytearray(1.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32811, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2,3]) + + #0x802C + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(1) + payload += float_to_bytearray(1) + hd_simulator.cmd_send_hd_general_response(message_id = 32812, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2,3]) + + #0x802D + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += float_to_bytearray(1.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32813, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2,3]) + + #0x802E + payload = unsigned_integer_to_bytearray(1) + hd_simulator.cmd_send_hd_general_response(message_id = 32814, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2,3]) + #Verification of Dialin->DG API's data from unhandled.conf file channel ID: 400 + + #0x8076 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(3) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(4) + payload += unsigned_integer_to_bytearray(0) + hd_simulator.cmd_send_hd_general_response(message_id = 32886, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + #verify_log(msg = "~HD_Message_Block", param = [1,0,2,0,3,0,4,0]) + + #0x807C + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(3) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(4) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(0) + payload += unsigned_integer_to_bytearray(4) + payload += unsigned_integer_to_bytearray(0) + payload += short_to_bytearray(10) + payload += short_to_bytearray(10) + payload += short_to_bytearray(10) + payload += short_to_bytearray(10) + payload += float_to_bytearray(3.5) + payload += float_to_bytearray(3.5) + payload += float_to_bytearray(3.5) + payload += float_to_bytearray(3.5) + hd_simulator.cmd_send_hd_general_response(message_id = 32892, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_hd_ch_id) + + #Verification of Dialin->HD (HD->PC) API's data from channel ID: 401 + + #0x8002 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32770, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.hd_to_dialin_ch_id) + verify_log(msg = "~HD_Off_Button_State", param = [1,2]) + + #0x8003 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32771, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.hd_to_dialin_ch_id) + verify_log(msg = "~HD_Stop_Button_State", param = [1,2]) + + #0x8004 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32772, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.hd_to_dialin_ch_id) + verify_log(msg = "~HD_Alarm_Lamp", param = [1,2]) + + #0x8005 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32773, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.hd_to_dialin_ch_id) + verify_log(msg = "~HD_Watch_Task_Checkin", param = [1,2,3]) + + #0x8006 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32774, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.hd_to_dialin_ch_id) + verify_log(msg = "~HD_Alarm_State", param = [1,2,3]) + + #0x8007 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + payload += unsigned_integer_to_bytearray(3) + hd_simulator.cmd_send_hd_general_response(message_id = 32775, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.hd_to_dialin_ch_id) + verify_log(msg = "~HD_Alarm_Start", param = [1,2,3]) + + + #Verification of Dialin->DG API's data from unhandled.conf file channel ID: 402 + #0xA001 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40961, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Alarm_State", param = [1,1,1]) + + #0xA002 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40962, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Watchdog_Check_In", param = [1,1,1]) + + #0xA004 + payload = unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40964, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Set_RTC_Date_Time", param = [1]) + + #0xA005 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(1.0) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40965, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Load_Cell", param = [1,1.0,1]) + + #0xA006 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(1.0) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40966, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Pressure", param = [1,1.0,1]) + + #0xA007 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40967, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Pressure_Broadcast_Interval", param = [1,1]) + + #0xA00A + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40970, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_RO_Pump_Broadcast_Interval", param = [1,1]) + + #0xA00B + payload = unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40971, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Drain_Pump_Set_RPM", param = [1]) + + #0xA00C + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40972, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Drain_Pump_Broadcast_Interval", param = [1,1]) + + #0xA00D + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40973, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Load_Cell_Broadcast_Interval", param = [1,1]) + + #0xA00E + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40974, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Valve_State", param = [1,1,1]) + + #0xA00F + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40975, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dialin_to_dg_ch_id) + verify_log(msg = "~DG_Valve_Broadcast_Interval", param = [1,1]) + + #Verification of Dialin->DG API's data from unhandled.conf file channel ID: 403 + #0xA001 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40961, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dg_to_dialin_ch_id) + verify_log(msg = "~DG_Alarm_State", param = [1,1,1]) + + #0xA002 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40962, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dg_to_dialin_ch_id) + verify_log(msg = "~DG_Watchdog_Check_In", param = [1,1,1]) + + #0xA003 + dg_simulator.cmd_send_dg_general_response(message_id = 40963, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = None, channel_id = DenaliChannels.dg_to_dialin_ch_id) + verify_log(msg = "~DG_Set_RTC_Date_Time", param = None) + + #0xA004 + payload = unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40964, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dg_to_dialin_ch_id) + verify_log(msg = "~DG_Set_RTC_Date_Time", param = [1]) + + #0xA005 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(1.0) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40965, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dg_to_dialin_ch_id) + verify_log(msg = "~DG_Load_Cell", param = [1,1.0,1]) + + #0xA006 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(1.0) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40966, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dg_to_dialin_ch_id) + verify_log(msg = "~DG_Pressure", param = [1,1.0,1]) + + #0xA007 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40967, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.dg_to_dialin_ch_id) + verify_log(msg = "~DG_Pressure_Broadcast_Interval", param = [1,1]) + + #Verification of Dialin->UI API's data from unhandled.conf file channel ID: 404 + #0x8020 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32800, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_ui_ch_id) + verify_log(msg = "~HD_UF_Measured_Volume", param = [1,2.0]) + + #0x8021 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + hd_simulator.cmd_send_hd_general_response(message_id = 32801, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_ui_ch_id) + verify_log(msg = "~HD_Dial_Outlet_Pump_Meas_MC_Spd", param = [1,2.0]) + + #0x8022 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32802, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_ui_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Meas_MC_Current", param = [1,2.0]) + + #0x8023 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32803, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_ui_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Meas_Spd", param = [1,2]) + + #0x8024 + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(2) + hd_simulator.cmd_send_hd_general_response(message_id = 32804, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_ui_ch_id) + #verify_log(msg = "~~HD_Dial_Outlet_Pump_Meas_Spd", param = [1,2]) + + #0x8025 + payload = unsigned_integer_to_bytearray(1) + payload += float_to_bytearray(2.0) + payload += unsigned_integer_to_bytearray(13) + hd_simulator.cmd_send_hd_general_response(message_id = 32805, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id=DenaliChannels.dialin_to_ui_ch_id) + #verify_log(msg = "~HD_Dial_Outlet_Pump_Rotor_Spd", param = [1,2.0,3]) + + #Verification of Dialin->UI API's data from unhandled.conf file channel ID: 405 + #0xA00A + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40970, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.ui_to_dialin_ch_id) + verify_log(msg = "~DG_RO_Pump_Broadcast_Interval", param = [1,1]) + + #0xA00B + payload = unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40971, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.ui_to_dialin_ch_id) + verify_log(msg = "~DG_Drain_Pump_Set_RPM", param = [1]) + + #0xA00C + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40972, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.ui_to_dialin_ch_id) + verify_log(msg = "~DG_Drain_Pump_Broadcast_Interval", param = [1,1]) + + #0xA00D + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40973, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.ui_to_dialin_ch_id) + verify_log(msg = "~DG_Load_Cell_Broadcast_Interval", param = [1,1]) + + #0xA00E + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40974, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.ui_to_dialin_ch_id) + verify_log(msg = "~DG_Valve_State", param = [1,1,1]) + + #0xA00F + payload = unsigned_integer_to_bytearray(1) + payload += unsigned_integer_to_bytearray(1) + dg_simulator.cmd_send_dg_general_response(message_id = 40975, accepted = 1, reason = 0, is_pure_data = False, has_parameters = True, parameters_payload = payload, channel_id = DenaliChannels.ui_to_dialin_ch_id) + verify_log(msg = "~DG_Valve_Broadcast_Interval", param = [1,1]) + + utils.tstDone() + + \ No newline at end of file