Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -rc08c138d7c8671f25b7c88f8783fef0a6087e192 -r6603a7bb42cf0889bc7463e95b97867d61c4dea9 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision c08c138d7c8671f25b7c88f8783fef0a6087e192) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 6603a7bb42cf0889bc7463e95b97867d61c4dea9) @@ -207,6 +207,7 @@ MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST = 0xA006 MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST = 0xA007 MSG_ID_DD_PRESSURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST = 0xA008 + MSG_ID_DD_TREATMENT_PARAMS_OVERRIDE_REQUEST = 0xA008 MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST = 0xA009 MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA00A MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST = 0xA00B @@ -281,7 +282,6 @@ MSG_ID_DD_VOLTAGE_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA051 MSG_ID_DD_MONITORED_VOLTAGE_OVERRIDE_REQUEST = 0xA052 MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0xA053 - MSG_ID_DD_TREATMENT_PARAMS_OVERRIDE_REQUEST = 0xA054 # Placeholder messages MSG_ID_DD_ALARM_STATE_OVERRIDE_REQUEST = 0xAF03 Index: leahi_dialin/dd/proxies/td_proxy.py =================================================================== diff -u -rc08c138d7c8671f25b7c88f8783fef0a6087e192 -r6603a7bb42cf0889bc7463e95b97867d61c4dea9 --- leahi_dialin/dd/proxies/td_proxy.py (.../td_proxy.py) (revision c08c138d7c8671f25b7c88f8783fef0a6087e192) +++ leahi_dialin/dd/proxies/td_proxy.py (.../td_proxy.py) (revision 6603a7bb42cf0889bc7463e95b97867d61c4dea9) @@ -131,16 +131,32 @@ self.logger.debug("Sending TD start pre gen request to DD.") self.can_interface.send(message, 0) - def cmd_td_override_treatment_parameter(self, paramID: int, value: float, reset: int = 0): + def cmd_td_override_treatment_parameter(self, paramID: int, value, reset: int = 0): + """ + Constructs and sends a treatment parameter override request. + @param paramID : integer - Treatment parameter ID + @param value : float or integer - Override value + @param reset : integer 1 to reset override, 0 to apply override + @returns None + """ + rst = integer_to_bytearray(reset) pid = integer_to_bytearray(paramID) - val = float_to_bytearray(value) + # Dialysate rate, UF rate and dialysate temperature are f32 + float_params = [ 0, 1, 2 ] + # Acid type and bicarbonate type are u32 + uint_params = [ 3, 4 ] + if paramID in float_params: + val = float_to_bytearray(float(value)) + elif paramID in uint_params: + val = integer_to_bytearray(int(value)) + else: + val = integer_to_bytearray(int(value)) payload = rst + pid + val message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, message_id=MsgIds.MSG_ID_DD_TREATMENT_PARAMS_OVERRIDE_REQUEST.value, payload=payload) - self.logger.debug(f"Overriding treatment parameter {paramID} with value {value}, reset={reset}") + self.logger.debug("Sending DD treatment parameter override: id={}, value={}, reset={}".format( paramID, value, reset)) self.can_interface.send(message, 0) -