Видеонаблюдение
- From
- Alex Mogilnikov (2:5054/70)
- To
- Alexander Burylov
- Date
- 2005-08-05T14:34:08Z
- Area
- PERM.HARDW
Привет Alexander!
05 Aug 05 10:52, Alexander Burylov писал Alex Mogilnikov:
AM>> У нас в фирме стоит спец. шкаф, у которого есть датчик
AM>> вскрытия (контакт на двери).
AM>> Пока дверь закрыта, процесс спит в read().
AB> Можешь посмотреть куда подключен датчик и что ещё задействовано в
AB> разьёме?
Посмотрел. Заодно проверил работу датчика. Работает отлично - тревога при вскрытии зафиксирована. :)
Я оказался виноват, дезинформировал, за что прошу прощения. RxD там действительно не используется. Датчик замыкает DTR и DCD. Работает это так. В нормальном положении двери (закрыта) контакты замкнуты и на DCD высокий уровень. Программа вызывает read() и уходит на нем в спячку. При открытии двери цепь разрывается, на DCD появляется низкий уровень и read() завершается. Вот фрагмент программы (чуть-чуть упрощенный):
for(;;)
{
/* порт надо каждый раз переоткрывать заново! */
int fd = open("/dev/cuaa0", O_RDWR);
char buffer[8];
read(fd, buffer, sizeof(buffer));
close(fd);
/* read() завершился. Бьем тревогу. */
syslog(LOG_ALERT, "ALERT!!!");
sleep(1); /* надо переждать дребезг контактов */
}
Предварительно надо не забыть установить игнорирование SIGHUP.
AB> Большое подозрение что всё это работает основываясь на loopback-тесте
AB> (из спецификации на RS232).
Нет. Это штатный режим работы порта и драйвера.
Всего наилучшего, [Team PCAD 2000]
Алексей М.
... Дареному письму в клуджи не смотрят.
---
* Origin: === Сисоп спит - почта идет === (2:5054/70)
SEEN-BY: 5010/146 5054/1 4 5 8 9 18 28 29 30 35 36 37 45 50 63 66 67 70 72 75
SEEN-BY: 5054/80 81 84 85
PATH: 5054/70 1 37