12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- import logging
- import time
- from apps.web.constant import DeviceCmdCode
- from apps.web.core.adapter.hanzhen import FuncCode, Device
- from apps.web.eventer.base import WorkEvent
- from apps.web.eventer import EventBuilder
- from apps.web.user.models import ServiceProgress
- logger = logging.getLogger(__name__)
- class builder(EventBuilder):
- def __getEvent__(self, device_event):
- event_data = self.deviceAdapter.analyze_event_data(device_event['data'])
- if device_event['cmd'] == 100:
- return Hanzhen(self.deviceAdapter, event_data)
- class Hanzhen(WorkEvent):
- def do(self, **args):
- time.sleep(2)
- devCache = Device.get_dev_control_cache(self.device["devNo"])
- if not devCache:
- logger.info("no dev cache!")
- return
- sendTime = devCache.get("sendTime")
- openId = devCache.get("openId")
- confirmTime = self.event_data.get("sendTime")
- confirmFunCode = self.event_data.get("funCode")
- if any([
- sendTime != confirmTime,
- confirmFunCode != FuncCode.START_DEV
- ]):
- return
- self.deviceAdapter._send_data(funCode = FuncCode.START_DEV, data = "0000",
- cmd = DeviceCmdCode.OPERATE_DEV_NO_RESPONSE)
- logger.info("send ok")
- # 消费时间里面记录消费详情 如时间等等 待协议完善
- consumeDict = {
- }
- ServiceProgress.update_progress_and_consume_rcd(
- self.device["ownerId"],
- {'open_id': openId, 'device_imei': self.device['devNo'], 'isFinished': False},
- consumeDict
- )
- Device.invalid_device_control_cache(self.device["devNo"])
|