У меня есть плата Arduino, подключенная к последовательному порту моего компьютера. Плата отправляет данные на ПК, но также может принимать заказы по тому же каналу. Однако между отправленными данными и заказами нет никакой связи или последовательности.
На ПК я создал демона, который прослушивает последовательный порт. И для отправки данных в Arduino я думал о создании сервера RPC XML внутри демона. Проблема в том, что я не знаю, как прослушивать последовательный порт и посещать XML-запрос RPC в той же программе.
Изначально у меня было что-то вроде этого:
while true
if there is incoming data in the serial channel
blah blah
if there are HTTP requests
start attending the XML RPC request
Серверы, на которые я смотрел (SimpleXMLRPCServer, web.py), постоянно прослушивают и обрабатывают запросы. Я хотел бы сказать своему серверу XML RPC: «подождите, если нет запросов, мы собираемся проверить последовательный канал».
Как мне достичь этого или чего-то подобного? Или я должен изменить свой дизайн? Если у меня есть сервер XML RPC в другом процессе, я думаю, что мне понадобится какое-то межпроцессное взаимодействие, именно поэтому я начал использовать XML RPC.