|
|
|
@ -3,6 +3,7 @@ import serial_asyncio |
|
|
|
import os, subprocess |
|
|
|
import argparse |
|
|
|
import traceback |
|
|
|
import psutil |
|
|
|
|
|
|
|
#5 - 101 - a d |
|
|
|
#4 - xxx |
|
|
|
@ -113,13 +114,54 @@ class Listener(asyncio.Protocol): |
|
|
|
|
|
|
|
def __init__(self): |
|
|
|
super().__init__() |
|
|
|
self.is_connected = False |
|
|
|
self.buffer = b"" |
|
|
|
self.store = {} |
|
|
|
self.tasks = [] |
|
|
|
|
|
|
|
def connection_made(self, transport): |
|
|
|
self.transport = transport |
|
|
|
self.is_connected = True |
|
|
|
self.tasks.append(asyncio.create_task(self.cpuCheck())) |
|
|
|
self.tasks.append(asyncio.create_task(self.memCheck())) |
|
|
|
print("Connected") |
|
|
|
|
|
|
|
def connection_lost(self, exc): |
|
|
|
self.is_connected = False |
|
|
|
while self.tasks.__len__() != 0: |
|
|
|
print("Try kill tasks") |
|
|
|
self.tasks.pop().cancel() |
|
|
|
|
|
|
|
async def cpuCheck(self): |
|
|
|
DISPLAY_ID = 10001 |
|
|
|
try: |
|
|
|
while self.is_connected: |
|
|
|
cpu_percent = psutil.cpu_percent(interval=None) |
|
|
|
|
|
|
|
if self.transport and not self.transport.is_closing(): |
|
|
|
msg = f"{DISPLAY_ID} {cpu_percent:5.1f} 0\n" |
|
|
|
self.transport.write(msg.encode()) |
|
|
|
|
|
|
|
await asyncio.sleep(1) |
|
|
|
except: |
|
|
|
traceback.print_exc() |
|
|
|
|
|
|
|
async def memCheck(self): |
|
|
|
DISPLAY_ID = 10002 |
|
|
|
try: |
|
|
|
while self.is_connected: |
|
|
|
mem = psutil.virtual_memory() |
|
|
|
mem_percent = mem.percent / 10 |
|
|
|
|
|
|
|
if self.transport and not self.transport.is_closing(): |
|
|
|
msg = f"{DISPLAY_ID} {mem_percent:5.1f} 0\n" |
|
|
|
self.transport.write(msg.encode()) |
|
|
|
|
|
|
|
await asyncio.sleep(1) |
|
|
|
except: |
|
|
|
traceback.print_exc() |
|
|
|
|
|
|
|
|
|
|
|
def data_received(self, data): |
|
|
|
self.buffer += data |
|
|
|
lines = self.buffer.split(b'\n') |
|
|
|
|