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