Index: leahi_dialin/td/modules/air_pump.py =================================================================== diff -u -rafe332fec54d9d0432dfc0d54aef1debaa92b066 -r7f463d8649e41b995e1a94cc001ffc50541cafb7 --- leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision afe332fec54d9d0432dfc0d54aef1debaa92b066) +++ leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision 7f463d8649e41b995e1a94cc001ffc50541cafb7) @@ -47,10 +47,11 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_air_pump_sync) - self.air_pump_state = 0 + self.h12_air_pump_state = 0 + self.h12_air_pump_power = 0 self.td_air_pump_timestamp = 0.0 - @publish(["td_air_pump_timestamp", "air_pump_state"]) + @publish(["td_air_pump_timestamp", "h12_air_pump_state","h12_air_pump_power"]) def _handler_air_pump_sync(self, message, timestamp=0.0): """ Handles published air pump data messages. @@ -60,32 +61,31 @@ """ aps = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1])) + app = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2])) - self.air_pump_state = aps[0] + self.h12_air_pump_state = aps[0] + self.h12_air_pump_power = app[0] self.td_air_pump_timestamp = timestamp - def cmd_air_pump_set_state(self, state: int) -> int: + def cmd_air_pump_set_state(self, state: int, power: int) -> int: """ Constructs and sends the air pump set state command. - AIR_PUMP_STATE_INIT = 0, ///< Air Pump Initialize state - AIR_PUMP_STATE_OFF, ///< Air Pump Off state - AIR_PUMP_STATE_ON, ///< Air Pump On state - NUM_OF_AIR_PUMP_STATES, ///< Number of air pump states Constraints: Must be logged into TD. - + @param power: integer - 0-255 value to set the air pump power + @return: 1 if successful, zero otherwise """ - idx = integer_to_bytearray(state) - payload = idx + sts = integer_to_bytearray(state) + pwr = integer_to_bytearray(power) + payload = sts + pwr message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_td_ch_id, message_id=MsgIds.MSG_ID_TD_AIR_PUMP_SET_STATE_REQUEST.value, payload=payload) - self.logger.debug("setting air pump state to" + str(state)) - # Send message received_message = self.can_interface.send(message)