forked from andrius/neohubapi
Add get_system call.
This commit is contained in:
parent
0fb1805f80
commit
688995ba82
55
neohub.py
55
neohub.py
|
@ -13,37 +13,32 @@ class NeoHub:
|
||||||
|
|
||||||
|
|
||||||
async def connect(self, host='Neo-Hub', port='4242'):
|
async def connect(self, host='Neo-Hub', port='4242'):
|
||||||
self._reader, self._writer = await asyncio.open_connection(host, port)
|
self._host = host
|
||||||
self._firmware_version = await self._firmware()
|
self._port = port
|
||||||
|
|
||||||
|
|
||||||
async def _send(self, message, expect_return = True):
|
async def _send(self, message):
|
||||||
|
reader, writer = await asyncio.open_connection(self._host, self._port)
|
||||||
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._logger.debug(f"Sending message: {encoded_message}")
|
||||||
self._writer.write(encoded_message)
|
writer.write(encoded_message)
|
||||||
await self._writer.drain()
|
await writer.drain()
|
||||||
|
|
||||||
if expect_return:
|
data = await reader.read(4096)
|
||||||
data = await self._reader.read(4096)
|
json_string = data.decode('utf-8')
|
||||||
json_string = data.decode('utf-8')
|
self._logger.debug(f"Received message: {json_string}")
|
||||||
self._logger.debug(f"Received message: {json_string}")
|
writer.close()
|
||||||
return json.loads(json_string)
|
await writer.wait_closed()
|
||||||
|
print(json_string)
|
||||||
|
return json.loads(json_string)
|
||||||
def firmware(self):
|
|
||||||
return self._firmware_version
|
|
||||||
|
|
||||||
|
|
||||||
async def firmware(self):
|
async def firmware(self):
|
||||||
return self._firmware_version
|
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -52,11 +47,25 @@ class NeoHub:
|
||||||
async def reset(self):
|
async def reset(self):
|
||||||
"""
|
"""
|
||||||
Reboot neohub
|
Reboot neohub
|
||||||
|
|
||||||
|
Returns True if Restart is initiated
|
||||||
"""
|
"""
|
||||||
message = {"RESET": 0}
|
message = {"RESET": 0}
|
||||||
|
|
||||||
if self._firmware_version >= 2027:
|
firmware_version = await self.firmware()
|
||||||
await self._send(message, expect_return = False)
|
result = ""
|
||||||
return True
|
if firmware_version >= 2027:
|
||||||
|
result = await self._send(message)
|
||||||
|
return result['Restarting'] == 1
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
async def get_system(self):
|
||||||
|
"""
|
||||||
|
Get system wide variables
|
||||||
|
"""
|
||||||
|
message = {"GET_SYSTEM": 0}
|
||||||
|
|
||||||
|
data = await self._send(message)
|
||||||
|
return data
|
||||||
|
|
7
test.py
7
test.py
|
@ -11,9 +11,10 @@ import logging
|
||||||
|
|
||||||
async def run():
|
async def run():
|
||||||
hub = neohub.NeoHub()
|
hub = neohub.NeoHub()
|
||||||
connection = await hub.connect()
|
await hub.connect()
|
||||||
result = await hub.firmware()
|
print(await hub.firmware())
|
||||||
print(f"Firmware: {result}")
|
result = await hub.get_system()
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
|
|
Loading…
Reference in New Issue