Здравствуйте!Есть самопальная железка, подключенная к 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 в файл журнала.