123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- import datetime
- import threading
- from smart_box import SimulatorSmartBox
- class ZhiyangjiDevice(SimulatorSmartBox):
- def __init__(self, mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei):
- super(ZhiyangjiDevice, self).__init__(mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, imei)
- self.start_time = None
- self.duration = 0
- @property
- def device_extend_info(self):
- return {
- 'driverCode': '100717',
- 'driverVersion': 'v1.0.0'
- }
- def get_left_time(self, now_time = None):
- if self.duration == 0 or self.start_time is None:
- return 0
- if now_time:
- left_time = (self.start_time + self.duration) - now_time
- if left_time < 0:
- left_time = 0
- else:
- left_time = (self.start_time + self.duration) - int(datetime.datetime.now())
- if left_time < 0:
- left_time = 0
- def do_message(self, cmd, payload):
- # type: (int, dict)->None
- if cmd == 201:
- return self.publish_message(
- cmd = cmd,
- payload = {
- 'cmd': 210,
- 'IMEI': self.imei,
- 'rst': 0,
- 'left_time': self.get_left_time()
- })
- if cmd == 203:
- left_time = self.get_left_time(payload['t'])
- if left_time == 0:
- self.start_time = payload['t']
- self.duration = payload['duration']
- else:
- self.duration += payload['duration']
- return self.publish_message(
- cmd = cmd,
- payload = {
- 'cmd': 203,
- 'IMEI': self.imei,
- 'rst': 0,
- 'left_time': self.get_left_time()
- })
- super(ZhiyangjiDevice, 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(False)
- def run(self):
- ZhiyangjiDevice(self.mqtt_server, self.mqtt_port, self.mqtt_user, self.mqtt_pwd, self.imei).start()
- if __name__ == '__main__':
- imei_list = {
- 'DUMMY_ZHIYANGJI': 'DUMMY_ZHIYANGJI_IMEI',
- }
- mqtt_server = '120.27.251.159'
- 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)
|