Исхдя из того, что subframe он и в Африке subframe вот кусок кода из gar2rnx.c Антонио Табернеро по декодированию навигац. кадра, который побитово “рассыпан” на 2 байта:
BYTE LSB[32] = { 7, 6, 5, 4, 3, 2, 1, 0,
15,14,13,12,11,10, 9, 8,
23,22,21,20,19,18,17,16,
31,30,29,28,27,26,25,24};
ULONG NAV_WORD;
// data bits: bits 30 → 7 within ULONG NAV_WORD
#define d1 ( (NAV_WORD>>29) & 1 )
#define d2 ( (NAV_WORD>>28) & 1 )
#define d3 ( (NAV_WORD>>27) & 1 )
#define d4 ( (NAV_WORD>>26) & 1 )
#define d5 ( (NAV_WORD>>25) & 1 )
#define d6 ( (NAV_WORD>>24) & 1 )
#define d7 ( (NAV_WORD>>23) & 1 )
#define d8 ( (NAV_WORD>>22) & 1 )
#define d9 ( (NAV_WORD>>21) & 1 )
#define d10 ( (NAV_WORD>>20) & 1 )
#define d11 ( (NAV_WORD>>19) & 1 )
#define d12 ( (NAV_WORD>>18) & 1 )
#define d13 ( (NAV_WORD>>17) & 1 )
#define d14 ( (NAV_WORD>>16) & 1 )
#define d15 ( (NAV_WORD>>15) & 1 )
#define d16 ( (NAV_WORD>>14) & 1 )
#define d17 ( (NAV_WORD>>13) & 1 )
#define d18 ( (NAV_WORD>>12) & 1 )
#define d19 ( (NAV_WORD>>11) & 1 )
#define d20 ( (NAV_WORD>>10) & 1 )
#define d21 ( (NAV_WORD>>9) & 1 )
#define d22 ( (NAV_WORD>>8) & 1 )
#define d23 ( (NAV_WORD>>7) & 1 )
#define d24 ( (NAV_WORD>>6) & 1 )
// Parity bits: bits 6 → 1 within ULONG NAV_WORD
#define D25 ( (NAV_WORD>>5) & 1 )
#define D26 ( (NAV_WORD>>4) & 1 )
#define D27 ( (NAV_WORD>>3) & 1 )
#define D28 ( (NAV_WORD>>2) & 1 )
#define D29 ( (NAV_WORD>>1) & 1 )
#define D30 ( (NAV_WORD>>0) & 1 )
// Previous word parity bits 29-30: bits 32 and 31 of ULONG NAV_WORD
#define P29 ( (NAV_WORD>>31) & 1 )
#define P30 ( (NAV_WORD>>30) & 1 )
Он это делал, для Гармина, но предполагаю, что указанные байты могут иметь одинаковый смысл (чипсет в Гармине был SirfStar-II)
Посмотрите целиком на:
http://artico.lma.fi.upm.es/numerico/miembros/antonio/pd/