@AlexSer

Как перевести данные с бинарного формата?

Подключаюсь к прибору через программу terminal 1.9b, с заданными настройками производителя
Программа терминал ловит некорректные данные. В инструкции прописано

Прибор передает пакет данных в бинарном формате по завершении каждого измерения

Подскажите как получить данные в нормальном формате
  • Вопрос задан
  • 144 просмотра
Решения вопроса 2
HemulGM
@HemulGM
Delphi Developer, сис. админ
Бинарные данные это и есть нормальные данные. Тебе нужно просто их правильно читать. Правильно их прочесть тебе поможет только инструкция. Или пробуй угадать структуру данных вручную.
Для этого тебе нужно читать часть данных в byte, int, int64, float и другие переменные различных размеров.
Ответ написан
NeiroNx
@NeiroNx
Программист
Cоздаешь структуру, согдасно документации, копируешь данные пакета по указателю струтруры и забираешь из компонентов структуры готовые данные с нужными типами.
typedef struct
{
    short field1;
    long field2;
} PacketDataStruct;

char data[] = [0x20,0x10,0x30,0x40,0x50,0x60,0x70];
PacketDataStruct recv;
memcpy(&data,&recv, sizeof(recv));
short data_field1 = recv.field1;
//data_field1 = 0x2010

а настройки порта играют главную роль - если есть парность или стоповых битов не стандарттное значение - то со стандартными значениями мусор примется - это и ежу понятно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Описать структуру данных в Protobuf согласно инструкции и сгенерировать код на Це++.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы