Такс, продолжаем наши линукс прения
Apr. 28th, 2012 09:22 amКак принято делать (Linux/C) следующее:
есть хендл /dev/ttySx, есть stdin, есть слушающий сокет (или например, вместо него fifo какой или прочая трасца, в общем любого вида IPC). Я хочу по приходу любого события из всех трех каналов выполнять соответствующие действия), и, обязательно, несколько раз в секунду посылать в /dev/ttyS0 команду на опрос состояния устройства (оно самостоятельно ничего не говорит, только отвечает на команды). Ну и показывать результат опроса на терминале.
Под виндами я привычно подобное делаю в N потоках, но если вдуматься, потоки тут особо не нужны, т.к. достаточно конечного автомата с опросом состояния нескольких дескрипторов.
В голове вертится что-то вроде select для массива дескриптов+таймаут и по таймауту - выполнение регулярных действий..
есть хендл /dev/ttySx, есть stdin, есть слушающий сокет (или например, вместо него fifo какой или прочая трасца, в общем любого вида IPC). Я хочу по приходу любого события из всех трех каналов выполнять соответствующие действия), и, обязательно, несколько раз в секунду посылать в /dev/ttyS0 команду на опрос состояния устройства (оно самостоятельно ничего не говорит, только отвечает на команды). Ну и показывать результат опроса на терминале.
Под виндами я привычно подобное делаю в N потоках, но если вдуматься, потоки тут особо не нужны, т.к. достаточно конечного автомата с опросом состояния нескольких дескрипторов.
В голове вертится что-то вроде select для массива дескриптов+таймаут и по таймауту - выполнение регулярных действий..