The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Чтение COM-порта"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Чтение COM-порта"  
Сообщение от Андрей email(??) on 29-Сен-08, 23:33 
Здравствуйте!

Есть самопальная железка, подключенная к COM-порту, для подсчета проходящих через дверь людей в обоих направлениях и программулинка для неё под Windows. Железка шлёт один символ, в зависимости от того, зашёл чел или вышел. На компе стоит Mandriva2008 и Win98 на vmware для работы этой программулинки. Естественно хочется избавиться от костыля в виде 98-й винды, но не получается прочитать данные с порта. Сразу в лоб попробовал примерно следующее:

sysopen(COM,"/dev/ttyS0",O_RDONLY|O_NOCTTY|O_NDELAY)||die "$!\n";
select((select(COM),$|=1)[0]);
sysread(COM,$buf,1);

Не заработало. При дефолтных настройках порта sysread ничего не читает и ссотв. висит на этом метсе. vmware настраивает порт по своему - как минимум как stty -F /dev/ttyS0 9600 min 0 time 0 и может ещё что-то, после чего перловый скрипт просто отрабатывает не задерживаясь и ничего не читая (я полагаю из-за min 0). Скрипт запускается от root'а. Пробовал minicom, устанавливал параметры порта по всякому - шляпа. Подцеплял модем - всё работатет и в minicom'e, и по echo/cat, и в скрипте. Куда копать? serial mini how-to видел, но, то ли лыжи не едут, о ли.... тоже самое и с man perlopen, man stty, man setserials и т.д. Исходники проги на Си видел один раз - десять срочек open, read, writeln в файл журнала.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Чтение COM-порта"  
Сообщение от Олег (??) on 30-Сен-08, 01:16 
Заказать данную программу в софтверной компании не пробовал?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Чтение COM-порта"  
Сообщение от Андрей email(??) on 30-Сен-08, 02:06 
>Заказать данную программу в софтверной компании не пробовал?

Это про то, что я маны не вкурил Ж)? Нет, не пробовал.... Мне кажется, что решение простое и где-то рядом, т.к. vmware напрямую к этому же устройству цепляется и прога под винду самая простая...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Чтение COM-порта"  
Сообщение от vg (??) on 30-Сен-08, 09:04 
>>Заказать данную программу в софтверной компании не пробовал?
>
>Это про то, что я маны не вкурил Ж)? Нет, не пробовал....
>Мне кажется, что решение простое и где-то рядом, т.к. vmware напрямую
>к этому же устройству цепляется и прога под винду самая простая...
>

а vmware в это время запущен? может нет доступа к самому порту?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Чтение COM-порта"  
Сообщение от Андрей (??) on 30-Сен-08, 12:30 
>
>а vmware в это время запущен? может нет доступа к самому порту?
>

я пробовал по всякому запускать и вместе и по отдельности и после vmware - результат отрицательный

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Чтение COM-порта"  
Сообщение от NuINu (??) on 30-Сен-08, 09:59 
>>Заказать данную программу в софтверной компании не пробовал?
>
>Это про то, что я маны не вкурил Ж)? Нет, не пробовал....
>Мне кажется, что решение простое и где-то рядом, т.к. vmware напрямую
>к этому же устройству цепляется и прога под винду самая простая...
>

я не очень понял что у вас работает с модемом, ну ладно, а вот можете посмотреть что у вас выдается командой
stty -a --file /dev/ttyS0
во время работы программы официальной
и без ее работы


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Чтение COM-порта"  
Сообщение от Андрей (??) on 30-Сен-08, 12:35 
>я не очень понял что у вас работает с модемом, ну ладно,

модем просто для теста подключал

>а вот можете посмотреть что у вас выдается командой
>stty -a --file /dev/ttyS0
>во время работы программы официальной
>и без ее работы

Во время работы wmvare

stty -a -F /dev/ttyS0
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0;
-parenb parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar parmrk inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

после service vmware stop

stty -a -F /dev/ttyS0
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0;
-parenb parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar parmrk inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Чтение COM-порта"  
Сообщение от NuINu (??) on 30-Сен-08, 14:34 
>>я не очень понял что у вас работает с модемом, ну ладно,
>
>модем просто для теста подключал
>
>>а вот можете посмотреть что у вас выдается командой
>>stty -a --file /dev/ttyS0
>>во время работы программы официальной
>>и без ее работы
>
>Во время работы wmvare

Я никаких отличий не нашел :) в wmvare программа чтения компорта работала? когда ты снимал параметры?
если да,то значит она ничего не перестраивает во время работы, значит и через minicom должны приниматься символы.
А железке этой ничего посылать не надо?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Чтение COM-порта"  
Сообщение от Андрей (??) on 30-Сен-08, 15:04 
>Я никаких отличий не нашел :)

я тоже Ж), но на всякий случай запостил

>в wmvare программа чтения компорта работала?

да

>когда ты снимал параметры?

во время работы проги

>если да,то значит она ничего не перестраивает во время работы, значит и

я тоже так думаю

>через minicom должны приниматься символы.

длжны, но не принимаются...

Получилось прочитать через Term::ReadKey

>А железке этой ничего посылать не надо?

нет, она только посылает


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Чтение COM-порта"  
Сообщение от sn (??) on 30-Сен-08, 10:06 
посмотри в сторону Term::ReadKey
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Чтение COM-порта"  
Сообщение от Андрей (??) on 30-Сен-08, 14:53 
>посмотри в сторону Term::ReadKey

Спасибо, всё получилось.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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