Index: dialin/dg/dialysate_generator.py =================================================================== diff -u -rd531ce09d0240e0ae542ea33cf8ebe4b8169825b -r505662d5788dd84187626842552d58247de7a429 --- dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision d531ce09d0240e0ae542ea33cf8ebe4b8169825b) +++ dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 505662d5788dd84187626842552d58247de7a429) @@ -321,3 +321,35 @@ else: self.logger.debug("Timeout!!!!") return False + + def cmd_dg_change_operation_mode_request(self, mode=0): + """ + Constructs and sends an DG change operation mode request via CAN bus. + Constraints: + Must be logged into DG. + + \returns response message if received, False if no response received + + @return: 1 if successful, zero otherwise + + """ + + mode_byte_array = integer_to_bytearray(mode) + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_DG_OPERATION_MODE_REQUEST.value, + payload=mode_byte_array) + + self.logger.debug("requesting DG operation mode change") + + # Send message + received_message = self.can_interface.send(message) + + if received_message is not None: + if received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] == 1: + self.logger.debug("request changing DG operation mode succesfully...") + else: + self.logger.debug("DG operation mode change request failed.") + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False