не могу прочитать данные с com порта в linux

программирование Linux C++

Проблема такая, что порт открывается, пишу в него команду, относительно устройства, write(fd,"\x05",1); 05h это запрос на устройство, после он должен мне прислать подтверждение 06h с таймаутом в пол секунды, но почему-то этого не происходит, делаю так
write(fd,"\x05",1) // успешно, возвращает 1
char buf[255];
sleep(0.5);
read(fd,buf,255); // вот тут возвращает -1;
т.е. данные не читаются

Примечание:
да по 3, вы правы

Примечание:
пробовал выставлять все тоже самое

Примечание:
проблема решена настройкой порта
Ответы:
Видимо ты забыл выставить режимы порта. Это не простой файл которому достаточно fopen, fread/fwrite и fclose. К тому же явно он ждёт аппаратного контроля передачи RXT/TXD/DR по дефолту, а устройство скорее всего по трём проводам связано, иначе бы возвращал любой бред, но не -1 на попытку чтения.
хз, на линухе с портами не работал, но в любом случае чето сильно мало строчек кода для такой операции, вот как это делается на Java: http://www.javable.com/docs/articles/comm/


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.