Luna
22.06.2023, 11:49
Программа считывает данные с устройства ОВЕН МВ110-224.8А
Использую модуль python minimalmodbus, класс Instrument
По таймеру регулярно хочу проверять подключено ли устройство, если что-то произошло и связь пропала, программа сообщает об этом.
Вопрос, как правильно это делать.
У класса Instrument есть объект Serial (из библиотеки pyserial). При попытки использовать функцию
if myserial.serial.isOpen() is True не удается отследить ситуацию, так как если вытащить шнур из USB, то все равно возвращается True.
Поэтом сейчас сделала так:
def isWork(self):
if hasattr(self, "myserial"):
try:
self.myserial.read_register(1)
return True
except:
return False
else:
return False
То есть просто пытаюсь что-то прочитать в первом регистре и если ошибка, значит устройство отключилось по какой-то причине.
И все вроде бы работает, но вот иногда вдруг начинает мигать мой красные индикатор, то есть данные из регистра прочитать не удается, а устройство не отключилось. Через секунду все снова в порядке. Может кто подскажет, почему такое может происходить и как правильно контролировать работу ?
Использую модуль python minimalmodbus, класс Instrument
По таймеру регулярно хочу проверять подключено ли устройство, если что-то произошло и связь пропала, программа сообщает об этом.
Вопрос, как правильно это делать.
У класса Instrument есть объект Serial (из библиотеки pyserial). При попытки использовать функцию
if myserial.serial.isOpen() is True не удается отследить ситуацию, так как если вытащить шнур из USB, то все равно возвращается True.
Поэтом сейчас сделала так:
def isWork(self):
if hasattr(self, "myserial"):
try:
self.myserial.read_register(1)
return True
except:
return False
else:
return False
То есть просто пытаюсь что-то прочитать в первом регистре и если ошибка, значит устройство отключилось по какой-то причине.
И все вроде бы работает, но вот иногда вдруг начинает мигать мой красные индикатор, то есть данные из регистра прочитать не удается, а устройство не отключилось. Через секунду все снова в порядке. Может кто подскажет, почему такое может происходить и как правильно контролировать работу ?