Add command to reboot neohub.

This commit is contained in:
Andrius Štikonas 2020-11-20 19:38:02 +00:00
parent 1fe59a4255
commit 0fb1805f80
1 changed files with 26 additions and 8 deletions

View File

@ -17,28 +17,46 @@ class NeoHub:
self._firmware_version = await self._firmware() self._firmware_version = await self._firmware()
async def send(self, message): async def _send(self, message, expect_return = True):
encoded_message = bytearray(json.dumps(message) + "\0\r", "utf-8") encoded_message = bytearray(json.dumps(message) + "\0\r", "utf-8")
self._logger.debug(f"Sending message: {encoded_message}")
self._writer.write(encoded_message) self._writer.write(encoded_message)
await self._writer.drain() await self._writer.drain()
data = await self._reader.read(4096) if expect_return:
json_string = data.decode('utf-8') data = await self._reader.read(4096)
self._logger.debug(f"Received message: {json_string}") json_string = data.decode('utf-8')
return json.loads(json_string) self._logger.debug(f"Received message: {json_string}")
return json.loads(json_string)
def firmware(self): def firmware(self):
return self._firmware_version return self._firmware_version
async def firmware(self): async def firmware(self):
return self._firmware_version return self._firmware_version
async def _firmware(self): async def _firmware(self):
''' """
NeoHub firmware version NeoHub firmware version
''' """
message = {"FIRMWARE": 0} message = {"FIRMWARE": 0}
result = await self.send(message) result = await self._send(message)
firmware_version = int(result['firmware version']) firmware_version = int(result['firmware version'])
return firmware_version return firmware_version
async def reset(self):
"""
Reboot neohub
"""
message = {"RESET": 0}
if self._firmware_version >= 2027:
await self._send(message, expect_return = False)
return True
else:
return False