Чтение из COM порта С++

292
09 ноября 2017, 06:25

Есть такой код:

HANDLE port = CreateFile(L"\\\\.\\COM5", GENERIC_READ | GENERIC_WRITE, 0, 0,
                                OPEN_EXISTING, 0, 0);
        unsigned char dst[1024];
        unsigned long size = sizeof(dst);
        unsigned long recv;

            COMMTIMEOUTS CommTimeOuts;
            CommTimeOuts.ReadIntervalTimeout = 5;
            CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
            CommTimeOuts.ReadTotalTimeoutConstant = 0;
            CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
            CommTimeOuts.WriteTotalTimeoutConstant = 0;
        if(SetCommTimeouts(port, &CommTimeOuts) == 0)
        {
             qDebug() << ("Error of SetCommTimeouts");
        }
        if(port!= INVALID_HANDLE_VALUE)
        {
                int i;
                for (i = 0; i < 10; i++)
                {
                    if(ReadFile(port,dst,size, &recv,0))
                    {
                        if(recv > 0)
                        {
                            qDebug() << (recv);
                            qDebug() << (dst);
                        }
                    }
                }
                CloseHandle(port);
        }
        else
        {
            qDebug() << ("Error of Handler - INVALID_HANDLE_VALUE");
        }

Количество считанный байтов в зависимости от передаваемых данных меняется, но вот в dst ничего не записывается, почему?

Answer 1

Напишите QString::fromStdString(qDebug() << std::string((char*)dst, recv)); чтобы выводить полученную строку.

READ ALSO
C++ DLL библиотеки

C++ DLL библиотеки

Всем здравствуйтеНедавно я решил создать собственную динамически подключаемую библиотеку или иными словами dll

399
Перенаправление вывода в файл

Перенаправление вывода в файл

Скажите, пожалуйста, как внутри C++ программы можно перенаправить весь вывод в файл?

342
Редактирование кода для массива [требует правки]

Редактирование кода для массива [требует правки]

Не могу исправить ошибкипомогите кто то с кодом,позязязя:3

209
Присвоению массиву другой массив

Присвоению массиву другой массив

Нужно массиву double а[n] присвоить массив double b[n]Как реализовать? Без цикла

250