Отправка и получение строки QStrings через последовательный порт Raspberry Pi c++

Я безуспешно пытаюсь написать строковую команду в последовательный порт моего Raspberry Pi 2 B. Я следил за этим http://www.raspberry-projects.com/pi/programming-in-c/uart-serial-port/using-the-uart, но мне нужно отправлять и получать QString (или массивы байтов). Существуют ли специальные функции С++, которые отправляют и получают строки через последовательный порт RPi? Может ли кто-нибудь поделиться примером кода? Спасибо заранее!

Андреа


person ASLaser    schedule 22.01.2016    source источник


Ответы (1)


Если вы посмотрите на документы QString, вы увидите ряд методов, которые преобразуют QString к другим типам. QString — это просто оболочка для строки символов.

Чтобы получить базовый буфер символов, вы можете сделать что-то вроде этого:

std::string stdStr = qString.toStdString();
char* buffer = stdStr.c_str();

Убедитесь, что stdStr остается в области видимости, пока вы хотите использовать buffer, иначе вы в конечном итоге будете использовать указатель, указывающий на освобожденную память.

person Mohamad Elghawi    schedule 22.01.2016
comment
Спасибо. Теперь, поскольку я хочу использовать модуль QSerialPort, я устанавливаю его с помощью sudo apt-get install libqt5serialport5-dev. Перезапускаю Qt, но когда я добавляю QT += serialport в свой файл .pro, сборка завершается с ошибкой, говоря: Неизвестный(е) модуль(и) в Qt: serialport. Я что-то пропустил? Спасибо. - person ASLaser; 22.01.2016