Index: leahi_dialin/dd/modules/post_gen_dialysate.py =================================================================== diff -u -r80f84ad5638667894e9df2161b9c5d9b8f27ed9b -r252b89bc37ea3f3e104671dfa2c59231bffc7e52 --- leahi_dialin/dd/modules/post_gen_dialysate.py (.../post_gen_dialysate.py) (revision 80f84ad5638667894e9df2161b9c5d9b8f27ed9b) +++ leahi_dialin/dd/modules/post_gen_dialysate.py (.../post_gen_dialysate.py) (revision 252b89bc37ea3f3e104671dfa2c59231bffc7e52) @@ -61,4 +61,38 @@ self.execution_state = struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - post_gen_state_timestamp = timestamp \ No newline at end of file + self.post_gen_state_timestamp = timestamp + + def cmd_post_gen_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: + """ + Constructs and sends broadcast time interval. + Constraints: + Must be logged into DD. + Given interval must be non-zero and a multiple of the DD general task interval (50 ms). + + @param ms: (int) Publish time interval in ms + @param reset: (int) 1 to reset a previous override, 0 to override + @returns 1 if successful, zero otherwise + """ + if not check_broadcast_interval_override_ms(ms): + return False + + reset_value = integer_to_bytearray(reset) + interval_value = integer_to_bytearray(ms) + payload = reset_value + interval_value + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_POST_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST.value, + payload=payload) + + self.logger.debug("Sending {} ms publish interval to the Post-Gen module".format(ms)) + # Send message + received_message = self.can_interface.send(message) + + # If there is content in message + if received_message is not None: + # Response payload is OK or not + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False \ No newline at end of file Index: leahi_dialin/dd/modules/pre_gen_dialysate.py =================================================================== diff -u -r80f84ad5638667894e9df2161b9c5d9b8f27ed9b -r252b89bc37ea3f3e104671dfa2c59231bffc7e52 --- leahi_dialin/dd/modules/pre_gen_dialysate.py (.../pre_gen_dialysate.py) (revision 80f84ad5638667894e9df2161b9c5d9b8f27ed9b) +++ leahi_dialin/dd/modules/pre_gen_dialysate.py (.../pre_gen_dialysate.py) (revision 252b89bc37ea3f3e104671dfa2c59231bffc7e52) @@ -66,4 +66,38 @@ self.execution_state = struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - pre_gen_state_timestamp = timestamp \ No newline at end of file + self.pre_gen_state_timestamp = timestamp + + def cmd_pre_gen_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: + """ + Constructs and sends broadcast time interval. + Constraints: + Must be logged into DD. + Given interval must be non-zero and a multiple of the DD general task interval (50 ms). + + @param ms: (int) Publish time interval in ms + @param reset: (int) 1 to reset a previous override, 0 to override + @returns 1 if successful, zero otherwise + """ + if not check_broadcast_interval_override_ms(ms): + return False + + reset_value = integer_to_bytearray(reset) + interval_value = integer_to_bytearray(ms) + payload = reset_value + interval_value + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_PRE_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST.value, + payload=payload) + + self.logger.debug("Sending {} ms publish interval to the Pre-Gen module".format(ms)) + # Send message + received_message = self.can_interface.send(message) + + # If there is content in message + if received_message is not None: + # Response payload is OK or not + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False \ No newline at end of file Index: leahi_dialin/dd/proxies/td_proxy.py =================================================================== diff -u -rb5aa0da384c5cc177f83d59aa221ae28881cd26a -r252b89bc37ea3f3e104671dfa2c59231bffc7e52 --- leahi_dialin/dd/proxies/td_proxy.py (.../td_proxy.py) (revision b5aa0da384c5cc177f83d59aa221ae28881cd26a) +++ leahi_dialin/dd/proxies/td_proxy.py (.../td_proxy.py) (revision 252b89bc37ea3f3e104671dfa2c59231bffc7e52) @@ -100,9 +100,25 @@ bic = integer_to_bytearray(bicarb) #payload = bic +acd + byp + temp + uf + dial + stt payload = stt + dial + uf + temp + byp + acd + bic - message = DenaliMessage.build_message(channel_id=DenaliChannels.td_to_dd_ch_id, + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, message_id=MsgIds.MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA.value, payload=payload) self.logger.debug("Sending TD gen dialysate data request to DD.") + self.can_interface.send(message, 0) + + def cmd_td_send_dd_start_pre_gen_request(self, start: bool = 0 ): + """ + Constructs and sends a TD start pre gen dialysate request to the DD. + + @return: none + """ + stt = integer_to_bytearray(start) + + payload = stt + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA.value, + payload=payload) + + self.logger.debug("Sending TD start pre gen request to DD.") self.can_interface.send(message, 0) \ No newline at end of file