config.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import ujson
  2. import machine
  3. import device
  4. runTask = True
  5. class Version:
  6. system = 1.0
  7. model = 1.0
  8. class AP:
  9. ssid = None
  10. pwd = None
  11. class Mqtt:
  12. host = None
  13. port = None
  14. clientId = None
  15. subTopic = None # 订阅主题
  16. sendTopic = None # 发送主题
  17. class ConnectWifi:
  18. ssid = None
  19. ip = None
  20. class Config:
  21. runTask = True
  22. id = ''.join('{:02x}'.format(x) for x in machine.unique_id())
  23. model = None
  24. version = Version()
  25. wifi = {}
  26. ap = AP()
  27. mqtt = Mqtt()
  28. connectWifi = ConnectWifi()
  29. mqttStatus = False
  30. openAp = False
  31. httpServer = False
  32. def __init__(self):
  33. file = open('config.json', 'r')
  34. text = file.read()
  35. file.close()
  36. config = ujson.loads(text)
  37. Config.runTask = True
  38. Config.model = device.model
  39. Config.version.system = config['version']['system']
  40. Config.version.model = device.version
  41. Config.wifi = config['wifi']
  42. Config.ap.ssid = config['ap']['ssid']
  43. Config.ap.pwd = config['ap']['pwd']
  44. Config.mqtt.host = config['mqtt']['host']
  45. Config.mqtt.port = config['mqtt']['port']
  46. Config.mqtt.clientId = config['mqtt']['clientId']
  47. Config.mqtt.subTopic = config['mqtt']['subTopic']
  48. Config.mqtt.sendTopic = config['mqtt']['sendTopic']
  49. print('初始化配置')
  50. def toJson(self):
  51. return {
  52. "id": self.id,
  53. "model": self.model,
  54. "version": {
  55. "system": self.version.system,
  56. "model": self.version.model
  57. },
  58. "wifi": self.wifi,
  59. "ap": {
  60. "ssid": self.ap.ssid,
  61. "pwd": self.ap.pwd
  62. },
  63. "mqtt": {
  64. "host": self.mqtt.host,
  65. "port": self.mqtt.port,
  66. "clientId": self.mqtt.clientId,
  67. "subTopic": self.mqtt.subTopic,
  68. "sendTopic": self.mqtt.sendTopic
  69. },
  70. "connectWifi":{
  71. "ssid": self.connectWifi.ssid,
  72. "ip": self.connectWifi.ip
  73. },
  74. "mqttStatus": self.mqttStatus,
  75. "openAp": self.openAp,
  76. "httpServer": self.httpServer,
  77. "device": device.status()
  78. }
  79. conf = Config()
  80. def getConfig():
  81. return conf
  82. def saveConfig():
  83. """
  84. 保存配置
  85. """
  86. c = getConfig().toJson()
  87. del c['connectWifi']
  88. del c['mqttStatus']
  89. del c['openAp']
  90. del c['httpServer']
  91. file = open('config.json', 'w')
  92. file.write(ujson.dumps(c))
  93. file.close()
  94. print('保存配置')
  95. # __initConfig()