LINUX.ORG.RU

C чтение и запись в /dev/ttyUSB0


0

1

Задача - получить смс с модема Huawei E173. Суть состоит в том, что бы послать на модем команду write(fd, «AT+CMGL=1\r», 10); и полученный вывод сохранить, например, в файл.

Вот как читаю информацию с модема:

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>

void main(int argc, char* argv[])
{
        int fd, ack=1, l=0;
        char buff[1000]="";
        fd=open("/dev/ttyUSB0", O_RDWR | O_NOCTTY);
        while(1)
        {
                l=read(fd, buff, 1000);
                buff[l]=0;
                printf("%s \n", buff);
        }
        close(fd);
}

Моя проблема заключается в том, что я не знаю как объеденить запись и чтение в /dev/ttyUSB0 в одной программе. Если запустить приведённый выше кусок, и в отдельном терминале дать команду echo -e 'AT+CMGL=1\r' > /dev/ttyUSB0, то всё нормально, сообщения выводятся. Однако, если в код забить write(fd, «AT+CMGL=1\r», 10); , то чтение не срабатывает, ничего не выдаётся, хотя модем команду воспринимает, и на другом терминале через cat /dev/ttyUSB0 можно увидеть вывод. Какие есть предложения?

Ответ на: комментарий от AptGet

Огромное вам спасибо. Я позорно сей факт проморгал.

dmitriym-75
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.