The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"слушать /dev/cuaa0 построчно (+)"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"слушать /dev/cuaa0 построчно (+)"
Сообщение от tadmin Искать по авторуВ закладки on 22-Янв-04, 13:03  (MSK)
кто посоветует, как можно слушать СОМ порт, забирая данные построчно. Цель - внесение в БД. Как правильно поймать EOL?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "слушать /dev/cuaa0 построчно (+)"
Сообщение от zizi Искать по авторуВ закладки on 22-Янв-04, 13:59  (MSK)
>кто посоветует, как можно слушать СОМ порт, забирая данные построчно. Цель -
>внесение в БД. Как правильно поймать EOL?


Надо порт настроить как туннель и брать данные как в tcpdump

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "слушать /dev/cuaa0 построчно (+)"
Сообщение от LinaS emailИскать по авторуВ закладки on 22-Янв-04, 15:10  (MSK)
>кто посоветует, как можно слушать СОМ порт, забирая данные построчно. Цель -
>внесение в БД. Как правильно поймать EOL?

все зависит от того, какие данные оттуда идут
у меня работает что-то вроде этого (сокращено!):

#!/usr/bin/perl

use Time::HiRes qw(sleep);
use Fcntl;

my $comflags='';

open(COMPORT,"< /dev/cuaa5") or die "Cannot open device: $!\n";

# я перевожу в неблокирующий режим, потому что мне так удобнее
fcntl(COMPORT, F_GETFL, $comflags) or die "Cannot get flags: $!\n";
$comflags |= O_NONBLOCK|O_RD;
fcntl(COMPORT, F_SETFL, $comflags) or die "Cannot set flags: $!\n";

while(1) {
  while(defined($read=sysread(COMPORT, $byte, 1))) {
     lalala(); # что там тебе надо сделать с байтом если надо
  }
  lalala(); # что тебе надо сделать со строкой, + повторить через секунду
  sleep(1);
}
close(COMPORT);

а как распознать EOL? ну проверяешь пришедший байт, не является ли он EOL
как-то так в общем ;)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "слушать /dev/cuaa0 построчно (+)"
Сообщение от ovax Искать по авторуВ закладки on 23-Янв-04, 02:22  (MSK)
Да всё просто :

я, например, забираю через COM порт логи с АТС.
/bin/stty -F /dev/ttyS0 9600 -icrnl clocal
cat < /dev/ttyS0 | "твой скрипт или программа, которые берут данные с <STDIN> и делают с ними что тебе нужно "

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру