требуется написать код, останавливающий выполнение программы до изменения сигналов на линиях COM-порта
я пробовал опрашивать порт в цикле с помощью ioctl()
в принципе работает, но устройство, подключённое к порту, очень быстро меняет состояние на первоначальное и программа не успевает зафиксировать
предполагаю использовать IRQ, но не знаю как
может подскажите решение проблемы?
засыпание до получения сигнала с COM-порта (проблема решена, спасибо тем, кто пытался помочь)
Модератор: Модераторы разделов
-
math
- Сообщения: 300
- Статус: Ъ участник
- ОС: Artix (= Arch without systemd)
-
Galaxy Master
- Сообщения: 142
- ОС: Debian GNU/Linux
Re: засыпание до получения сигнала с COM-порта
math писал(а): ↑01.03.2008 14:49требуется написать код, останавливающий выполнение программы до изменения сигналов на линиях COM-порта
я пробовал опрашивать порт в цикле с помощью ioctl()
в принципе работает, но устройство, подключённое к порту, очень быстро меняет состояние на первоначальное и программа не успевает зафиксировать
предполагаю использовать IRQ, но не знаю как
может подскажите решение проблемы?
а что за сигналы?
и что значит "очень быстро" ? это растяжимое понятие...
так же не понятно что вы делаете, читаете/или еще что-то...
если хотите что-то прочесть из порта - посмотрите poll
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: засыпание до получения сигнала с COM-порта
можно добиться установками таймаутов того, что программа останавливается на READ пока не получит нужное число байт данных или не наступит таймаут...
-
math
- Сообщения: 300
- Статус: Ъ участник
- ОС: Artix (= Arch without systemd)
Re: засыпание до получения сигнала с COM-порта
Порывшись в исходниках ядра нашёл параметр TIOCMWAIT для ioctl. Так что в принципе проблема решена.
Дело в том, что я ничего из порта не читаю. Порт используется как физическое устройство, изменяющее напряжения на пинах и, соответственно, определяющее установленное извне напряжение.
Дело в том, что я ничего из порта не читаю. Порт используется как физическое устройство, изменяющее напряжения на пинах и, соответственно, определяющее установленное извне напряжение.