123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- import threading
- from script.simulator.smart_box import SimulatorSmartBox
- class WFLDevice(SimulatorSmartBox):
- def __init__(self, **kwargs):
- super(WFLDevice, self).__init__(**kwargs)
- def do_message(self, cmd, payload): # type: (int, dict)->None
- if cmd == 210:
- self._do_210_message(payload)
- else:
- super(WFLDevice, self).do_message(cmd, payload)
- def _do_210_message(self, payload):
- funCode = payload["data"]["fun_code"]
- print(funCode)
- message = getattr(self, "response_{:02}_message".format(funCode), self.response_default_message)
- return self.publish_message(cmd=210, payload=message)
- @property
- def response_default_message(self):
- return {
- "IMEI": self.imei,
- "rst": 1,
- "cmd": 210,
- }
- @property
- def response_01_message(self):
- """"""
- return {
- "IMEI": self.imei,
- "rst": 0,
- "cmd": 210,
- "data": {
- "port_stat": {
- "1": "idle",
- "2": "link",
- "3": "idle",
- "4": "idle",
- "5": "idle",
- "6": "idle",
- "7": "idle",
- "8": "idle",
- "9": "idle",
- "10": "idle",
- }
- }
- }
- @property
- def response_12_message(self):
- return {
- "IMEI": "861714054531706",
- "cmd": 210,
- "data": {
- "auto_close": True,
- "chrmt": "TIME",
- "float_charge": {"check_time": 10, "float_time": 120, "float_watt": 30},
- "fun_code": 12,
- "mach_max_temp": 90,
- "mach_max_volt": 260,
- "mach_max_watt": 4000,
- "noload_check": {"time": 30, "watt": 5},
- "port_max_ampr": 6000,
- "port_max_watt": 350,
- "pre_pwr_time": 600,
- "price": {"ELEC": 1000000,
- "TIME": [[300, 14400], [400, 10800], [500, 8640], [600, 7200]]},
- "volumes": {"00:00-06:59": 2, "20:00-23:59": 2, "default": 7}
- },
- "rst": 0,
- }
- @property
- def response_17_message(self):
- return {
- "IMEI": "861714054531706",
- "cmd": 210,
- "data": {
- "card_cur_key": "VEW+Ib0ZPke0i6kH0tJHdA==",
- "card_curmode": "NORMAL",
- "card_disable": False,
- "card_oncefee": 100,
- "card_refund": True,
- "card_timeout": 10,
- "fun_code": 17
- },
- "rst": 0,
- }
- @property
- def response_08_message(self):
- return {
- "IMEI": "861714054531706",
- "cmd": 210,
- "data": {"fun_code": 8, "total_card": 0},
- "rst": 0,
- }
- @property
- def device_extend_info(self):
- return {
- "driverCode": "100273",
- "driverVersion": "v1.0.0"
- }
- class myThread(threading.Thread):
- def __init__(self, mqttServer, mqttPort, mqttUser, mqttPwd, imei):
- threading.Thread.__init__(self)
- self.mqtt_server = mqttServer
- self.mqtt_port = mqttPort
- self.mqtt_user = mqttUser
- self.mqtt_pwd = mqttPwd
- self.imei = imei
- self.setDaemon(False)
- def run(self):
- WFLDevice(
- mqtt_server=self.mqtt_server,
- mqtt_port=self.mqtt_port,
- mqtt_user=self.mqtt_user,
- mqtt_pwd=self.mqtt_pwd,
- imei=self.imei
- ).start()
- if __name__ == "__main__":
- imei_list = {
- "MYCD": "MYCD_IMEI"
- }
- mqtt_server = "211.159.224.10"
- mqtt_port = 1883
- mqtt_user = "20160528@vivestone"
- mqtt_pwd = "j429QXqI5CTv"
- threads = []
- for _imei in imei_list.values():
- thread = myThread(mqtt_server, mqtt_port, mqtt_user, mqtt_pwd, _imei)
- thread.start()
- threads.append(thread)
|