Показано с 1 по 2 из 2

Тема: как грамотно работать с Com-портом на с++

  1. #1

    По умолчанию как грамотно работать с 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.

  2. #2

    По умолчанию

    всем спасибо

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •