12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- import os, sys,datetime
- from os.path import abspath, join
- import simplejson as json
- import ConfigParser
- from apps.web.constant import Const, DeviceCmdCode
- from apps.web.core.networking import MessageSender
- 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})
- from apps.web.device.models import Device,Group
- from apps.web.dealer.models import Dealer
- from django.core.cache import caches
- import time
- # dealers = [dealer['username'] for dealer in Dealer.all()]
- dealers = ['13656229736']
- 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():
- if devInfo['softVer'] >= 'v1.7.6':
- continue
- if not devInfo.has_key('server'):
- continue
- if not '1883' in devInfo['server']:
- continue
- devStatus = caches['devmgr'].get(devNo)
- if devStatus is None:
- continue
- statusDict = json.loads(str(devStatus))
- if not statusDict['online']:
- continue
- if devInfo['softVer'] <= 'v1.5':
- cmdPara = {"IMEI":devNo,"ota_set":{"fw_url":"http://www.washpayer.com/uploaded/SMARTBOX_1.0.0_Luat_V0014_8955_SSL.bin"}}
- else:
- cmdPara = {"IMEI":devNo,"ota_set":{"fw_url":"http://www.washpayer.com/uploaded/SMARTBOX_1.0.0_Luat_V0016_8955_SSL.bin"}}
- result = MessageSender.send(device = devInfo, cmd = DeviceCmdCode.SET_DEVINFO, payload = cmdPara)
- if result['rst'] != 0:
- print 'send updating cmd error,imei=%s' % devNo
- else:
- print 'success for imei=%s,send the message' % devNo
- time.sleep(15)
|