Как програмировать COM порт ??

Все о программировании под *nix
Bael

Как програмировать COM порт ??

Сообщение Bael »

Есть набольшая железяка под COM порт.
Надо ею как то управлять . Протокол известен , но как написать обращение к порту (запись|чтение|параметры соединения|таймауты)
никак не пойму :cry: Всё это на C или C++ .Если есть компонента под Kylix вообще буду щастлив :D Поделитесь кта чем может , ссылки , примеры.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

#!usr/bin/perl
open COM1, "+<","/dev/ttyS0"
print COM1 "Somestring"
while(COM1)
{
$input = <COM1>
}
Вообще говоря, посмотри любую прогу работающую с ttyS - например minicom.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Anonymous

Сообщение Anonymous »

а на с++ как?

Lynxer
Неотъемлемая часть форума
Сообщения: 285
Зарегистрирован: 10 мар 2002, 14:44
Откуда: Minsk

Сообщение Lynxer »

С лету:

Код: Выделить всё

#include <iostream>
#include <fstream>
#include <string>

int main()
{
    std::fstream COM1 ("/dev/ttyS0");
    COM1 << "Somestring";
    while (!COM1.eof ())
    {
        std::string input;
        std::getline (COM1, input);
    }

    return 0;
}

Аватара пользователя
Jek
Неотъемлемая часть форума
Сообщения: 425
Зарегистрирован: 25 авг 2002, 08:50
Откуда: Minsk
Контактная информация:

Сообщение Jek »

Это всё справедливо, если протокол работы с железякой - стандартный, через UART. А если через что-нибудь, кроме сигналов TX/RX, придётся или свой драйвер писать, или с ioctl() баловаться (опыта не имею - точно не скажу). А самый грязный хак (но рабочий - сам такое писал, правда, для LPT) - через порты ввода-вывода (под рутом! :( ).
"Но в декабре я по ошибке позвонил вместо
модема на винчестер." (Linus Torvalds, "Just for fun")

Ответить