Punov/Project/program_files/check_connection.py

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