LINUX.ORG.RU

еще раз про com порты


0

0
можно ли приостановить выполнение программы до изменения игналов ком
порта?
select(fd,&rd,NULL,&ev,NULL) не работает т.е. пока байт не придет из
кома программа дальше не выполняется, как бы не изменялось состояние
линий.
А опрашивать в нити ioctl() без задержек слишком накладно
anonymous
самый простой способ - включить в select timeout (только стоит
обратить внимание на то, что в линуксе он сделан непортабельно),
и после завершения select проверять сигналы.
я сомневаюсь, что можно повесить прерывание на изменение статуса
порта (хотя чтобы быть до конца уверенным нужно посмотреть source
драйвера).
Z0termaNN
()
Енто конечно хорошо но изменение состояния - асинхронно
поэтому с таймаутом можно пропустить изменение:(((
anonymous
()
Енто конечно хорошо но изменение состояния - асинхронно
поэтому с таймаутом можно пропустить изменение:(((
anonymous
()
Ответ на: комментарий от anonymous
слушай, я не знаю что у тебя там с сигналами на порту, но в данном
конкретном случае я все-таки разобрался бы с сигналами на принтере и
flow controlом и сделал бы signal driven I/O - появляется байт и тебе
генерится SIGIO.
Z0termaNN
()
насчет принтера не понял:(
А если на ком не приходят данные, но состояния линий меняются ~100 раз
в секунду?
kirill_s
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.