12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- import os, sys
- from os.path import abspath, join
- import ConfigParser
- from apps.web.constant import Const, DeviceCmdCode
- try:
- configParser = ConfigParser.ConfigParser()
- configParser.read('./settings.ini')
- settingModuleName = configParser.get('CORE', 'setting')
- except Exception:
- settingModuleName = 'staging'
- settingModuleIdentifier = "configs.production"
- PROJECT_ROOT = abspath(os.path.split(os.path.realpath(__file__))[0] + "/..")
- sys.path.insert(0, PROJECT_ROOT)
- sys.path.insert(0, join(PROJECT_ROOT, "apps"))
- os.environ.update({"DJANGO_SETTINGS_MODULE": settingModuleIdentifier})
- import simplejson as json
- from apps.web.device.models import Device,Group
- from apps.web.dealer.models import Dealer
- from django.core.cache import caches
- from apps.web.core.networking import MessageSender
- dealers = ['15775042578']
- def motify_pulse(dev,width,interval,battery):
-
- result = MessageSender.send(dev, DeviceCmdCode.SET_DEVINFO, {
- 'IMEI': devNo,
- 'pulse_set': {
- 'pwm_inter': int(interval),
- 'pwm_wid': int(width),
- 'pwm_idle': battery
- }
- })
-
- if result['rst'] != 0:
- return False
- try:
- Device.get_collection().update_one({'devNo': devNo}, {
- '$set': {'pulseInterval1': interval, 'pulseWidth1': width,'battery':battery}})
- Device.invalid_device_cache(devNo)
- except Exception, e:
- print 'database error!'
-
- return True
-
- for username in dealers:
- try:
- dealer = Dealer.objects.get(username = username)
- except Exception,e:
- continue
-
- groupIds = Group.get_group_ids_of_dealer(str(dealer.id))
- devs = Device.get_devices_by_group(groupIds)
- for devNo,devInfo in devs.items():
- devStatus = caches['devmgr'].get(devNo)
- if devStatus is None:
- continue
- statusDict = json.loads(str(devStatus))
- if statusDict['status'] != 0:
- print 'the dev=%s in offline' % devInfo['logicalCode']
- continue
-
- if devInfo['pulseInterval1'] == 500 and devInfo['pulseWidth1'] == 200:
- print 'the dev=%s para is ok' % devInfo['logicalCode']
- continue
-
- result = motify_pulse(devInfo, 200, 500,devInfo['battery'])
-
- if not result :
- print 'send updating cmd error,imei=%s' % devInfo['logicalCode']
-
- print 'set para success dev = %s' % devInfo['logicalCode']
-
|