重构 maixpy 的 board_info + config.json 从而自适应硬件版型。

主要是备份代码。

class board_info:
  def set(key, value=None):
    return setattr(__class__, key, value)
  def all():
    return dir(__class__)
  def get():
    return getattr(__class__, key)
  def load(__map__={}):
    for k, v in __map__.items():
      __class__.set(k, v)

board_info.load()

if __name__ == "__main__":
  def check_config_json(data):
    try:
      with open('/flash/config.json', 'rb') as f:
        tmp = json.loads(f.read())
        if tmp["type"] != data["type"]:
          raise Exception('config.json no exist')
    except Exception as e:
      with open('/flash/config.json', "w") as f:
        f.write(cfg)
      import machine
      machine.reset()

  print(board_info.all())
  board_info.set('test', 123)
  print(board_info.test)
  print(board_info.all())

  import json
  test = {
    "type":"test",
    "board_info":{
      'PIN10': 10,
      'BOOT_KEY': 16,
      'WIFI_TX' : 6,
      'WIFI_RX' : 7,
      'WIFI_EN' : 8,
    }
  }
  cfg = json.dumps(test)
  check_config_json(test)
  from Maix import config
  tmp = config.get_value('board_info', None)
  if tmp != None:
    board_info.load(tmp)
  print(board_info.all())
  print(board_info.PIN10)
  print(board_info.BOOT_KEY)
  print(board_info.WIFI_TX)
  print(board_info.WIFI_RX)
  print(board_info.WIFI_EN)

posted @ 2020-10-12 14:59  Juwan  阅读(169)  评论(0编辑  收藏