Должно быть как-то так:
1. REG или ALARM
2. Время
3. Longitude
4. Latitude
5. Скорость
6. Курс (направление) в градусах [0; 360)
7-12. Параметры. Порядок следующий: вещественные (double), целочисленные (int), текстовые, длинные целочисленные (long), бинарные, файлы (те же бинарные, только файлы).
Все блоки разделены ; параметры разделяются запятой, имя-значение параметра разделяется двоеточием. Две запятых подряд — это небольшой косяк (проявляется вроде как только перед SATS).
В double параметрах (7 блок) находится ALT.
В int'овых параметрах (8 блок) находятся I/O параметры в виде inN:1, outN:1, если нет, то in1:0, out1:0.
Там же SATS.
В текстовых параметрах (9 блок) может быть DRIVER:"..." (кавычки нужны, " экранируется \").
Бинарные параметры, насколько я понимаю, кодируются просто в hex.
Т.е. вам нужно взять ваши сообщения, специальные параметры (SATS, ALT, DRIVER, inN, outN) раскидать куда нужно, для остальных определить их тип (дробный, 32/64-битный целый, текст, файл) и записать в один из блоков.