54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
|
import re
|
||
|
import subprocess
|
||
|
import os
|
||
|
import rw_device_params
|
||
|
|
||
|
# Check single device connection by device ID and return status of connection
|
||
|
# Input example: '0000:0000'
|
||
|
# Output example: 'Online'
|
||
|
|
||
|
|
||
|
def check_connection(device_ID):
|
||
|
df = str(subprocess.check_output("lsusb"))
|
||
|
if re.search(device_ID, df):
|
||
|
return True
|
||
|
else:
|
||
|
return False
|
||
|
|
||
|
# Check all device connection by their ID's and returns list of connection status
|
||
|
# Output example: ['Online', 'Offline', 'Online', 'Offline]
|
||
|
|
||
|
|
||
|
def check_devices_connection():
|
||
|
status = []
|
||
|
for root, dirs, files in os.walk('data'):
|
||
|
for filename in files:
|
||
|
filename = filename.rstrip('.dat')
|
||
|
params = rw_device_params.read_device_params(filename)
|
||
|
id = params[3]
|
||
|
if check_connection(id):
|
||
|
status.append('Online')
|
||
|
rw_device_params.write_device_params(
|
||
|
filename, 'status', 'Online')
|
||
|
else:
|
||
|
status.append('Offline')
|
||
|
rw_device_params.write_device_params(
|
||
|
filename, 'status', 'Offline')
|
||
|
return status
|
||
|
|
||
|
# Finf ttyUSB_ file for device by it's ID
|
||
|
# Input example: '0000:0000'
|
||
|
# Output example: 'ttyUSB0'
|
||
|
|
||
|
|
||
|
def get_device_folder_tty(id):
|
||
|
folder = subprocess.check_output(
|
||
|
['python3', '-m', 'serial.tools.list_ports', '-q', id]).decode().rstrip('\n').strip()
|
||
|
return folder
|
||
|
|
||
|
|
||
|
def get_device_folder_tmc(id):
|
||
|
folder = subprocess.check_output(
|
||
|
['python3', '-m', 'serial.tools.list_ports', '-q', id]).decode().rstrip('\n').strip()
|
||
|
return folder
|