на самом деле, передается #HGGLPHGNKHIGGGGGGGROOU\xD, что при распаковке дает:

10 05 91 07 41 20 00 00 00 b8 8e

41 20 00 - это значение
00 00 - индекс (используется с конфигурационными параметрами)
b8 8e - контрольная сумма

10,0 получается так:

Код:
void unpackFloat24(unsigned char* data, size_t dataSize, float* value)
{
	char *p;

	assert(data);
	assert(dataSize == 3);
	assert(value);

	*value = 1.0f;
	p = (char *)(void *)value;

	/* для x86 меняем порядок байт */
	p[0] = 0;
	p[1] = data[2];
	p[2] = data[1];
	p[3] = data[0];
}