debug_weifule_device.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. import datetime
  4. import os
  5. import struct
  6. import time
  7. import arrow
  8. from bson import ObjectId
  9. from base import init_env
  10. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "configs.production")
  11. init_env(interactive = False)
  12. from mongoengine import StringField,DateField,IntField
  13. from django.db.models.fields import FloatField, DateTimeField
  14. from apps.web.device.models import Device
  15. from apps.web.core.db import Searchable
  16. from apps.web.core.helpers import ActionDeviceBuilder
  17. from apps.web.constant import Const
  18. class TesterLog(Searchable):
  19. devNo = StringField(verbose_name = 'devNo',default = '')
  20. port = IntField(verbose_name = 'port',default = 1)
  21. dateTimeAdded = DateTimeField(verbose_name = 'datetime',default = datetime.datetime.now)
  22. power = IntField(verbose_name = 'power',default = 1.0)
  23. ampere = IntField(verbose_name = 'ampere',default = 1.0)
  24. voltage = IntField(verbose_name = 'voltage',default = 1.0)
  25. meta = {'collection': 'tester_log', 'db_alias': 'logdata'}
  26. devNos = ['862167056729985','862167056665890','862167056722444','862167056665593']
  27. ii = 0
  28. portDict = {}
  29. while True:
  30. try:
  31. if ii > 100000:
  32. ii = 0
  33. for devNo in devNos:
  34. dev = Device.get_dev(devNo)
  35. box = ActionDeviceBuilder.create_action_device(dev)
  36. if ii % 40 == 0:
  37. portDict = box.get_port_status()
  38. print portDict
  39. for port,info in portDict.items():
  40. if info['status'] == Const.DEV_WORK_STATUS_WORKING:
  41. detail = box.get_port_info(port)
  42. if detail['status'] == Const.DEV_WORK_STATUS_IDLE:
  43. continue
  44. newRcd = TesterLog(devNo = devNo,port=port,dateTimeAdded = time.time(),power = detail['power'],ampere=detail['ampere']*1000,voltage=detail['voltage'])
  45. newRcd.save()
  46. else:
  47. continue
  48. time.sleep(5)
  49. except Exception,e:
  50. continue
  51. print 'a'