一、构造函数的入参:

    1. config

    tb_gateway.yaml关于thingsboard配置:

    1. thingsboard:
    2. host: 127.0.0.1
    3. port: 1883
    4. remoteShell: true
    5. remoteConfiguration: false
    6. statsSendPeriodInSeconds: 3600
    7. minPackSendDelayMS: 0
    8. checkConnectorsConfigurationInSeconds: 60
    9. handleDeviceRenaming: true
    10. checkingDeviceActivity:
    11. checkDeviceInactivity: false
    12. inactivityTimeoutSeconds: 120
    13. inactivityCheckPeriodSeconds: 10
    14. security:
    15. accessToken: o55jUl0quC1QX2XRPhl5
    16. qos: 1
    1. config_folder_path

    配置文件目录:
    D:\xx\code\python\thingsboard-gateway\thingsboard_gateway\config\
    二、构造函数主要工作

    1. 从构造函数传递过来的配置初始化成员变量,核心成员变量是:

      1. self.client = TBGatewayMqttClient(self.__host, self.__port, self.__token, self, quality_of_service=self.__default_quality_of_service)
    2. 启动线程

      1. self.start()

      线程run函数:

      1. def run(self):
      2. keep_alive = self.__config.get("keep_alive", 120)
      3. try:
      4. while not self.client.is_connected() and not self.__stopped:
      5. if not self.__paused:
      6. if self.__stopped:
      7. break
      8. log.info("connecting to ThingsBoard")
      9. try:
      10. self.client.connect(keepalive=keep_alive,
      11. min_reconnect_delay=self.__min_reconnect_delay)
      12. except ConnectionRefusedError:
      13. pass
      14. except Exception as e:
      15. log.exception(e)
      16. sleep(1)
      17. except Exception as e:
      18. log.exception(e)
      19. sleep(10)
      20. while not self.__stopped:
      21. try:
      22. if not self.__stopped:
      23. sleep(.2)
      24. else:
      25. break
      26. except KeyboardInterrupt:
      27. log.info('KeyboardInterrupt')
      28. self.__stopped = True
      29. except Exception as e:
      30. log.exception(e)

      tip:
      只是启动线程,还没有去连接thingsborad,只有gatewayservice调用connect函数才去连接thingsboard