Проблема при кодировании и декодировании с использованием CBOR

У меня есть ниже класс, который я хочу декодировать и кодировать с помощью TinyCBOR.

class Test {
public:
int a;
int b;
float c;
}

Я делаю следующее для кодирования и декодирования этого класса:

int main () {

Test t;
t.a = 10;
t.b = 20;
t.c = 3.30;

// Encode values
uint8_t buf[40];
CborEncoder encoder;
cbor_encoder_init(&encoder, &buf, sizeof(buf), 0);
cbor_encode_int(&encoder, t.a);
cbor_encode_int(&encoder, t.b);
cbor_encode_float(&encoder, t.c);// Decode values
CborParser parser;
CborValue value;
int a;
int b;
float c;

cbor_parser_init(buf, sizeof(buf), 0, &parser, &value);
cbor_value_get_int(&value, &a);
cout << "Int A: " << a << endl;

cbor_value_get_int(&value, &b);
cout << "Int B: " << b << endl;

cbor_value_get_float(&value, &c);
cout << "Float C: " << c << endl;

return 0;
}

Проблема в том, что моя программа печатает:

A: 10
B: 10

И это дает ошибку для чтения float.

В чем может быть проблема?
Я также попытался добавить cbor_value_advance_fixed(&value); но результат тот же.
Также я не нашел ни одного примера кодирования / декодирования нескольких значений на TinyCBOR сайт.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector