123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- import threading
- from typing import TYPE_CHECKING, Dict
- from smart_box import SimulatorSmartBox
- if TYPE_CHECKING:
- pass
- class AQDevice(SimulatorSmartBox):
- def __init__(self, mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei):
- super(AQDevice, self).__init__(mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei)
- def exit(self):
- super(AQDevice, self).exit()
- def do_message(self, cmd, payload):
- # type: (int, Dict)->None
- message = {
- "IMEI": self.imei,
- "rst": 1,
- "cmd": cmd
- }
- if cmd == 210:
- func = payload['funCode']
- # 查询所有的端口状态 暂时固定数据返回 只做启动时候的电话号码检测
- if func == "78":
- message.update({
- "data": "574B4C59220178000A00000001000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000001BA1620130303030303030303030303030303433393239373635330000000001000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000001C1C6401303030303061716B3836333339363035323331323930350000000001000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000A7",
- "rst": 0
- })
- # 开锁的指令
- elif func == "82":
- message.update({
- "data": "574B4C590B008200010081",
- "rst": 0
- })
- return self.publish_message(cmd = cmd, payload = message)
- elif cmd == 220:
- func = payload['funCode']
- # 关闭端口的充电状态
- if func == "71":
- message.update({
- "data": "574B4C590A0071000173",
- "rst": 0
- })
- else:
- pass
- return self.publish_message(cmd=cmd, payload=message)
- else:
- super(AQDevice, self).do_message(cmd, payload)
- @property
- def device_extend_info(self):
- return {
- 'driverCode': '100230',
- 'driverVersion': 'v1.0.0'
- }
- class myThread(threading.Thread): # 继承父类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(False)
- def run(self):
- AQDevice(self.mqtt_server, self.mqtt_port, self.mqtt_user, self.mqtt_pwd, self.imei).start()
- if __name__ == '__main__':
- imei_list = {
- 'AQ_DUMMY': 'AQ_DUMMY_IMEI'
- }
- mqttServer = '211.159.224.10'
- mqttPort = 1883
- mqttUser = '20160528@vivestone'
- mqttPwd = 'j429QXqI5CTv'
- threads = []
- for _imei in imei_list.values():
- thread = myThread(mqttServer, mqttPort, mqttUser, mqttPwd, _imei)
- thread.start()
- threads.append(thread)
|