@ tommieb75,
оператор strcat был с самого начала "go" в программе, я взял переменную из argv [1] и добавил ее в /dev/tty.*, чтобы вы могли выбрать, какое устройство вы хотите отслеживать.
Я не уверен, почему я закомментировал buf
, возможно, это связано с тем, что я слишком много смотрю на код / пробую разные подходы и забываю, где я находился (не так много программиста на C, именно так я могу потеряться 30 LOC).
@ caf, Хорошо поймать лишнюю точку с запятой после цикла while, к сожалению, даже после исправления программа работает некорректно.
Я продолжаю исследовать проблему. Я могу проверить (с помощью osx packetlogger), что компьютер получает данные, но в буфере никогда не помещаются никакие данные.
-Jud
--------------- -------------- Edit
Я решил проблему после небольшой проб и ошибок. Добавление следующего кода для настройки последовательного соединения решило все проблемы:
struct termios theTermios;
memset(&theTermios, 0, sizeof(struct termios));
cfmakeraw(&theTermios);
cfsetspeed(&theTermios, 115200);
theTermios.c_cflag = CREAD | CLOCAL; // turn on READ
theTermios.c_cflag |= CS8;
theTermios.c_cc[VMIN] = 0;
theTermios.c_cc[VTIME] = 10; // 1 sec timeout
ioctl(fileDescriptor, TIOCSETA, &theTermios);
Спасибо за ответы на другие вопросы.