Здравствуйте, гость ( Вход | Регистрация )
lanz | Дата 8.6.2015, 9:26 |
Используйте метод .toLatin1() У вас не получается, потому что нельзя передать в порт объект QString, потому что порт принимает байты, а строка содержит символы. Чтобы преобразовать строку в байты, нужно ее закодировать, используя некую кодировку. Тут я немножко спекулирую и предполагаю, что ваше устройство понимает только Latin-1( http://en.wikipedia.org/wiki/ISO/IEC_8859-1 ), поэтому мы преобразовываем строку в массив байт, кодирующий эту строку - http://doc.qt.io/qt-4.8/qstring.html#toLatin1 |
|
Lya_Inventor | Дата 7.6.2015, 12:25 |
Здравствуйте! Подскажите, пожалуйста, как корректно записать в порт номер телефона через переменную? (phone - переменная QString) Пробовала записать следующим образом, но получаю ошибку no matching function for call to 'QSerialPort::write(const QString)'. serial1->write("AT+CMGS=\"'%" +phone+ "%'\"\r"); Если вводить номер телефона, то всё проходит успешно. serial1->write("AT+CMGS=\"+7**********\"\r") Заранее благодарю. |
|
Lya_Inventor | Дата 26.5.2015, 8:02 |
Возможны два варианта, 1. Все байты записаны ДО вызова wait 2. Запись длится дольше 200 мс Попробуйте убрать таймаут, и посмотрите что получится. Если все равно возвращает false, значит первый вариант. Спасибо за помощь, удалось отправить сообщение. |
|
lanz | Дата 24.5.2015, 19:05 |
Возможны два варианта, 1. Все байты записаны ДО вызова wait 2. Запись длится дольше 200 мс Попробуйте убрать таймаут, и посмотрите что получится. Если все равно возвращает false, значит первый вариант. |
|
Lya_Inventor | Дата 24.5.2015, 18:11 |
С вопросом записи команды в порт разобралась. Скажите, пожалуйста, по какой причине serial1->waitForBytesWritten(200) возвращает false?
|
|
Lya_Inventor | Дата 24.5.2015, 15:35 |
А почему QChar(13) и почему в кавычках? QChar(13) код клавиши ENTER, необходимо вводить после установки режима работы и номера телефона. В кавычках записала, т.к. пробовала различные варианты ввода. |
|
lanz | Дата 24.5.2015, 14:46 |
А почему QChar(13) и почему в кавычках? |
|
Lya_Inventor | Дата 24.5.2015, 10:00 |
Доброе утро! Подскажите, пожалуйста, как правильно записать AT команду в порт? Использую библиотеку QSerialPort, но к сожалению команда в порт не уходит. Ошибок нет, т.к. возвращает 0 (No error occurred). Прикладываю пример с записью команды serial.write("AT+CMGF=1"); serial.write("QChar(13)"); serial.waitForBytesWritten(200); Заранее благодарю за ответ. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 18:19 |