1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # coding=utf-8
- import logging
- from apps.web.device.models import Device
- from apps.web.eventer import EventBuilder
- from apps.web.eventer.base import FaultEvent, WorkEvent
- logger = logging.getLogger(__name__)
- class builder(EventBuilder):
- def __getEvent__(self, device_event):
- event_data = self.deviceAdapter.analyze_event_data(device_event['data'])
- if not event_data:
- return
- event_data['raw_msg'] = device_event
- funCode = event_data.get("cmdCode")
- if funCode == "0100":
- return HZFLFaultEventer(self.deviceAdapter, event_data)
- else:
- return HZFLWorkEventer(self.deviceAdapter, event_data)
- class HZFLFaultEventer(FaultEvent):
- pass
- class HZFLWorkEventer(WorkEvent):
- def do(self):
- cmdCode = self.event_data["cmdCode"]
- if cmdCode == "0107":
- totalElec = self.event_data["totalElec"]
- otherConf = self.device.get("otherConf", dict())
- otherConf["totalElec"] = totalElec
- Device.objects.get(devNo=self.device.devNo).update(otherConf=otherConf)
- Device.invalid_device_cache(self.device.devNo)
- elif cmdCode == "000A":
- pass
- elif cmdCode == "0105":
- pass
- elif cmdCode == "0102":
- pass
- else:
- logger.error("error evene data, data is <{}>, dev is <{}>".format(self.event_data, self.device.devNo))
|