Я разработчик встроенных C и очень новичок в python, так что, пожалуйста, несите меня.
Я использую linux и скомпилировал модуль общих объектов из библиотеки C и эта библиотека C открывает последовательный порт на машине Linux и общается с целью через uart. На данный момент он мало что делает и просто печатает данные, полученные через uart в терминале.
Функция в myModule. c is
void startUartComm(){
openUart();
while(1) {
receiveDataOverUartAndPrint();
}
}
У меня есть теперь импортировал этот скомпилированный модуль в мой python скрипт и вызвал его, как показано ниже. Я хочу остановить выполнение сценария python в этом бесконечном режиме, пока l oop, и я сделал что-то вроде этого
import sys
import myModule
try:
myModule.startUartComm()
except KeyboardInterrupt:
sys.exit()
Нажатие Ctrl + C ничего не сделал, но Ctrl + Z остановил скрипт. Но когда я снова запускаю скрипт, я получаю сообщение об ошибке из библиотеки C о том, что последовательный порт занят и не может быть использован.
With Ctrl + C Я мог успешно выйти из автономного приложения C и запустить его снова, не получая сообщения о занятости последовательного порта.
Вопрос в том, как я могу правильно остановить скрипт python в этом case, тем самым остановив и мое приложение.