-
как грамотно работать с Com-портом на с++
Господа! При работе с приборами под UNIX довольно часто возникают непонятки при чтении ответов модулей из порта. Скажите, пожалуйста, какие функции лучше всего использовать для получения нормальных ответов?
Зы Уже были опробованы следующие методы:
1) FILE * port;
char answer[N]
port = fopen("/dev/ttyS0","r");
fscanf(port,"%s",answer);
fclose(port);
Вместо N естественно указывалась размерность строки, в которую помещается ответ.
Эти функции не всегда корректно читают ответы приборов. Например, вместо >3E считывают только E
2) char answer[N];
ifstream portOut("/dev/ttyS0");
portOut.getline(answer,sizeof(answer));
portOut.close();
3) char answer[N];
fstream port("/dev/ttyS0");
port >> answer;
port.close();
Данные функции тоже не всегда считывают то, что надо. Например, они не читают ответ МВА8.
Думаю, дело в настройке буфера порта. Пожалуйста, помогите его настроить так, чтобы все ответы считывались нормально.
Последний раз редактировалось light_finder; 20.04.2009 в 19:06.
-
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума