- err = sr_analog_init(&analog, &encoding, &meaning, &spec, bac->digits);
- if (err != SR_OK)
- goto err_out;
-
- meaning.mq = bac->mq;
- meaning.unit = bac->unit;
- meaning.mqflags = 0;
- meaning.channels = g_slist_append(NULL, ch);
-
- spec.spec_digits = bac->digits;
-
- analog.data = &value;
- analog.num_samples = 1;
-
- err = sr_session_send(sdi, &packet);
- if (err != SR_OK)
- goto err_free;
+ switch (spec->type) {
+ case BVT_UINT8:
+ value = read_u8(ptr);
+ break;
+ case BVT_BE_UINT16:
+ value = read_u16be(ptr);
+ break;
+ case BVT_BE_UINT24:
+ value = read_u24be(ptr);
+ break;
+ case BVT_BE_UINT32:
+ value = read_u32be(ptr);
+ break;
+ case BVT_LE_UINT16:
+ value = read_u16le(ptr);
+ break;
+ case BVT_LE_UINT24:
+ value = read_u24le(ptr);
+ break;
+ case BVT_LE_UINT32:
+ value = read_u32le(ptr);
+ break;
+ default:
+ return SR_ERR_ARG;
+ }