change_driver_version.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. # coding=utf-8
  2. import os
  3. import time
  4. os.environ.update({"DJANGO_SETTINGS_MODULE": "configs.production"})
  5. from base import init_env
  6. init_env(False)
  7. from apps.web.device.models import Device, DeviceDict
  8. from apps.web.core.networking import MessageSender
  9. from apps.web.device.define import DeviceChannelType
  10. def is_online(devNo):
  11. return bool(Device.get_dev(devNo).online)
  12. def change_ip_and_record(devNo, debug):
  13. if debug:
  14. print devNo
  15. else:
  16. device = Device.get_dev(devNo) # type: DeviceDict
  17. if device.channelType == DeviceChannelType.Channel_BT:
  18. return
  19. if len(devNo) < 15:
  20. return
  21. url = "http://121.43.232.118/uploaded/version/2g/SmartBox_6.1.151_Luat_V0020_8955_SSL_v3_100000.bin"
  22. url = url.replace('Luat_V0020_8955_SSL', device.coreVer)
  23. MessageSender.send(
  24. device = device,
  25. cmd = 202,
  26. payload = {
  27. "IMEI": device.devNo,
  28. "ota_set": {
  29. "fw_url": url,
  30. }
  31. },
  32. timeout = 15
  33. )
  34. with open("change_driver_device.txt", "a") as f:
  35. f.write("{}\n".format(devNo))
  36. def run(debug, range_list, done_list):
  37. filter = {
  38. 'softVer': 'v6.1.150', 'hwVer': 'v3', 'driverVersion': 'v5.0.2'
  39. }
  40. if range_list:
  41. filter.update({
  42. 'devNo': {'$in': range_list}
  43. })
  44. devices = Device.objects(__raw__ = filter)
  45. for _dev in devices: # type: Device
  46. if _dev.devNo in done_list:
  47. continue
  48. if not is_online(_dev.devNo):
  49. continue
  50. if 'DUMMY' in _dev.devNo:
  51. continue
  52. if 'LuaRTOS' in _dev.coreVer:
  53. print('{} is lua os'.format(_dev.devNo))
  54. continue
  55. try:
  56. change_ip_and_record(_dev.devNo, debug)
  57. except Exception as e:
  58. print "{}-{}".format(_dev.devNo, e)
  59. if __name__ == '__main__':
  60. __list = []
  61. try:
  62. with open("change_version_device.txt", "r") as f:
  63. lines = f.readlines()
  64. for line in lines:
  65. line = line.strip()
  66. __list.append(line)
  67. except Exception as e:
  68. pass
  69. __done_list = []
  70. try:
  71. with open("change_driver_device.txt", "r") as f:
  72. lines = f.readlines()
  73. for line in lines:
  74. line = line.strip()
  75. __done_list.append(line)
  76. except Exception as e:
  77. pass
  78. run(debug = False, range_list = __list, done_list = __done_list)