hangzhoufulian.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # coding=utf-8
  2. import logging
  3. from apps.web.device.models import Device
  4. from apps.web.eventer import EventBuilder
  5. from apps.web.eventer.base import FaultEvent, WorkEvent
  6. logger = logging.getLogger(__name__)
  7. class builder(EventBuilder):
  8. def __getEvent__(self, device_event):
  9. event_data = self.deviceAdapter.analyze_event_data(device_event['data'])
  10. if not event_data:
  11. return
  12. event_data['raw_msg'] = device_event
  13. funCode = event_data.get("cmdCode")
  14. if funCode == "0100":
  15. return HZFLFaultEventer(self.deviceAdapter, event_data)
  16. else:
  17. return HZFLWorkEventer(self.deviceAdapter, event_data)
  18. class HZFLFaultEventer(FaultEvent):
  19. pass
  20. class HZFLWorkEventer(WorkEvent):
  21. def do(self):
  22. cmdCode = self.event_data["cmdCode"]
  23. if cmdCode == "0107":
  24. totalElec = self.event_data["totalElec"]
  25. otherConf = self.device.get("otherConf", dict())
  26. otherConf["totalElec"] = totalElec
  27. Device.objects.get(devNo=self.device.devNo).update(otherConf=otherConf)
  28. Device.invalid_device_cache(self.device.devNo)
  29. elif cmdCode == "000A":
  30. pass
  31. elif cmdCode == "0105":
  32. pass
  33. elif cmdCode == "0102":
  34. pass
  35. else:
  36. logger.error("error evene data, data is <{}>, dev is <{}>".format(self.event_data, self.device.devNo))