Index: leahi_dialin/td/modules/air_pump.py =================================================================== diff -u -rafe332fec54d9d0432dfc0d54aef1debaa92b066 -rd0d72ba74208cb43073ec38c7bbfebb2d32dcc66 --- leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision afe332fec54d9d0432dfc0d54aef1debaa92b066) +++ leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision d0d72ba74208cb43073ec38c7bbfebb2d32dcc66) @@ -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,25 +61,32 @@ """ 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 state: integer - state value to set the air pump + @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 + pwr = integer_to_bytearray(power) + payload = idx + 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,