Я пытаюсь использовать QSerialPort для получения информации от сонара (EchoRange Smart Sensor), но у меня нет опыта в этой области. С настройками имени порта, скорости передачи данных (4800, протестированы и другие скорости), бит данных (8 бит), flowcontrol (нет), четности (нет) и стоп-битов (два) я могу получить поток данных с помощью:
const QByteArray data = m_serialport-> readAll ();
QDebug ()<< QString (данные)
Но вывод очень странный.
Ь ‘\ x00 \ x00’
б «[»
Ь ‘\ xd7 \ xd7 \ xd7uu \ фиксировано \ xedn- \ xd9 \ x95 \ xeb \ xb7’
b’YweWQ»
Ь ‘\ xa7 \ X9b \ x93 \ XA3 \ x8f’
Ь ‘\ x8d \ xa7y \ Xab \ x99’
Ь ‘\ x9d \ xe5 \ xeb \ x00’
Но согласно стандарту NMEA 0183, я должен получить что-то вроде:
$ SDDPT, …
Интересно, нужно ли отправлять на мое устройство команду, чтобы сообщить, какие данные отправлять?
Итак, я проверил
m_serialport-> записи (QByteArray ( «$ PAMTC, EN, ВСЕ, 1,5 * чч»));
m_serialport-> запись (QByteArray ( «$ SDDPT»))
m_serialport-> запись (QByteArray ( «$ — DBT, x.x, F, x.x, M, x.x, F * чч»))
Ничего не меняется, но индикатор показывает, что мое устройство получает сигнал.
Не могли бы вы сказать мне, как получить, например, данные о глубине в протоколе ниже?
Заранее спасибо!
http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf
Задача ещё не решена.
Других решений пока нет …