From 1fe59a4255d931e8dd2c6925395a9f7d2f5d8461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Fri, 20 Nov 2020 19:14:44 +0000 Subject: [PATCH] Cache firmware version when connecting to hub. --- neohub.py | 17 ++++++++++++++++- test.py | 5 +++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/neohub.py b/neohub.py index fd7a763..286ee21 100644 --- a/neohub.py +++ b/neohub.py @@ -3,14 +3,18 @@ import asyncio import json +import logging class NeoHub: def __init__(self): + self._logger = logging.getLogger('neohub') + self._firmware_version = 0 pass async def connect(self, host='Neo-Hub', port='4242'): self._reader, self._writer = await asyncio.open_connection(host, port) + self._firmware_version = await self._firmware() async def send(self, message): @@ -20,10 +24,21 @@ class NeoHub: data = await self._reader.read(4096) json_string = data.decode('utf-8') + self._logger.debug(f"Received message: {json_string}") return json.loads(json_string) + def firmware(self): + return self._firmware_version async def firmware(self): + return self._firmware_version + + async def _firmware(self): + ''' + NeoHub firmware version + ''' + message = {"FIRMWARE": 0} result = await self.send(message) - return result['firmware version'] + firmware_version = int(result['firmware version']) + return firmware_version diff --git a/test.py b/test.py index ebe517e..05e97da 100755 --- a/test.py +++ b/test.py @@ -3,8 +3,11 @@ # SPDX-FileCopyrightText: 2020 Andrius Štikonas # SPDX-License-Identifier: LGPL-3.0-or-later + import asyncio import neohub +import logging + async def run(): hub = neohub.NeoHub() @@ -12,4 +15,6 @@ async def run(): result = await hub.firmware() print(f"Firmware: {result}") + +logging.basicConfig(level=logging.DEBUG) asyncio.run(run())