# -*- coding: utf-8 -*- # !/usr/bin/env python import threading from smart_box import SimulatorSmartBox class PulseDeviceQuickCharge(SimulatorSmartBox): POWER_1_STATE = 1 POWER_2_STATE = 0 def __init__(self, mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei): super(PulseDeviceQuickCharge, self).__init__(mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei) @property def device_extend_info(self): return { 'driverCode': '100000', 'driverVersion': 'v1.0.0', 'power1': self.POWER_1_STATE, 'power2': self.POWER_2_STATE } def do_message(self, cmd, payload): # type: (int, dict)->None if cmd == 203: if self.device_extend_info['power{}'.format(payload['port'])] == 1: return self.publish_message( cmd = cmd, payload = { 'cmd': cmd, 'IMEI': self.imei, 'rst': 100 }) else: return self.publish_message( cmd = cmd, payload = { 'cmd': cmd, 'IMEI': self.imei, 'rst': 0 }) super(PulseDeviceQuickCharge, self).do_message(cmd, payload) class myThread(threading.Thread): def __init__(self, mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei): threading.Thread.__init__(self) self.mqtt_server = mqtt_server self.mqtt_port = mqtt_port self.mqtt_user = mqtt_user self.mqtt_pwd = mqtt_pwd self.imei = imei self.setDaemon(True) def run(self): PulseDeviceQuickCharge(self.mqtt_server, self.mqtt_port, self.mqtt_user, self.mqtt_pwd, self.imei).start() if __name__ == '__main__': imei_list = { 'DUMMY_QUICK_CHARGE': 'DUMMY_QUICK_CHARGE_IMEI' } mqtt_server = '211.159.224.10' mqtt_port = 1883 mqtt_user = '20160528@vivestone' mqtt_pwd = 'j429QXqI5CTv' for imei in imei_list.values(): myThread(mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei).start() import time while (True): time.sleep(10)