Видеонаблюдение

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