Name

getchunks8, getchunks16, getchunks32, decode — functions for decoding chunks from server's data blocks and decoding data from chunks

Common stuff

All the data is encoded in network (big endian) order.

Chunks are stored in table {id = chunk_id, data = chunk_data}. So chunk list looks like {{id = id1, data = data1}, {id = id2, data = data2}, ...}

Format string for decoding is list of entries "<bytes>[.count]<data_type>", where count is number of entries (1 <= count <= 256), data_type is <i|f|s>. For (data_type == 'i') bytes can be 1, 2 and 4. That means uint8_t, uint16_t and uint32_t respectively. For (data_type == 'f') bytes can be 4 and 8. That means float and double respectively. For (data_type == 's') bytes can be 1 and 2. That means uint8_t or uint16_t to describe length of string and then given bytes of string data.

Description

getchunks8 ();

Extracts and returns chunk list from given data block. ID and size take by 8 bits.

getchunks16 ();

Extracts and returns chunk list from given data block. ID and size take by 16 bits.

getchunks32 ();

Extracts and returns chunk list from given data block. ID and size take by 32 bits.

decode (format_string, data);

Extracts table of numbers and strings decoded from data using format_string.