crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Разбор бинарных данных. Получение double
rcdimon
  опции профиля:
сообщение 22.8.2011, 13:44
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 27.10.2009
Пользователь №: 1183

Спасибо сказали: 1 раз(а)




Репутация:   0  


Всем привет.

Работаю с ГЛОНАСС-приемником по ком-порту. Он шлет бинарные пакеты определенной структуры. Я получаю эти пакеты в массив QByteArray. Я знаю, что, например, байты 4,5,6,7,8,9,10,11 хранят в себе данные типа double. Как мне эти 8 байт преобразовать в обычную double переменную? Потом эту переменную мне нужно будет вывести на экран в формате "31.12347"?
В добавок в документации к глонасс-приемнику видимо забыли указать little-endian или big-endian....

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
rcdimon
  опции профиля:
сообщение 22.8.2011, 15:10
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 27.10.2009
Пользователь №: 1183

Спасибо сказали: 1 раз(а)




Репутация:   0  


QByteArray::toDouble(bool &ok) самоотверженно выдает 0...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 22.8.2011, 15:29
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Цитата(rcdimon @ 22.8.2011, 16:10) *
QByteArray::toDouble(bool &ok) самоотверженно выдает 0...

Значит пробовать как то так:
...
double val;
QByteArray ba = <>;

memcpy(&val, ba.constData(), 8);
...


А вообще:
Цитата
Я знаю, что, например, байты 4,5,6,7,8,9,10,11 хранят в себе данные типа double.

надо иметь описание на поля протокола!!!
Разбирайся сам.

Сообщение отредактировал kuzulis - 22.8.2011, 15:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 22:48