Почему я могу инициализировать определенный канал PCAN только один раз? - PullRequest
0 голосов
/ 05 марта 2019

Использование библиотеки python-can здесь.Вот простой код для распечатки баночных сообщений:

from can.interface import Bus

bus = Bus(bustype='pcan', channel='PCAN_USBBUS1', bitrate=500000)
for msg in bus:
    print(msg)

Он работает нормально, пока я не остановлю программу (выполняющуюся в Pycharm IDE) и попытаюсь запустить ее снова.Это покажет эту ошибку:

can.interfaces.pcan.pcan.PcanError: A PCAN Channel has not been initialized yet or the initialization process has failed

Я не могу понять, почему это так.Это исправлено путем «перезапуска» программы, либо путем повторной установки ключа CAN, либо путем перезапуска Pycharm.Это потому, что предыдущий экземпляр был где-то кэширован?Был бы признателен за совет по этому вопросу.

1 Ответ

0 голосов
/ 14 мая 2019

Это произойдет, когда ваше приложение не закроет канал с помощью CAN_UnInitialize (), или когда вы сломаете приложение с помощью отладчика.Поэтому, пожалуйста, неинициализируйте канал перед закрытием приложения или перезагрузите систему один раз.

...