Garmin GPSMAP 17 Especificações técnicas - Página 36

Procurar online ou descarregar pdf Especificações técnicas para Sistema GPS marítimo Garmin GPSMAP 17. Garmin GPSMAP 17 40 páginas. Gps receiver/antenna
Também para Garmin GPSMAP 17: Manual de instruções de instalação (16 páginas), Manual de instruções de instalação (12 páginas), Manual de instalação (16 páginas), Manual de referência (1 páginas), Referência técnica (30 páginas), Manual de instruções de instalação (17 páginas), Manual de instruções de instalação (19 páginas), Declaração de Conformidade (1 páginas), Manual de início rápido (16 páginas)

Garmin GPSMAP 17 Especificações técnicas
An example function to do the parsing is shown below. Note that the double data types are converted by the
function cnvt_ieee_double(). This function merely swaps the upper and lower words of the double.
This is necessary on GPS 15, 16, 17 series sensors due to a compatibility issue with the IEEE floating point
standard): In this example, the array m_TempArray contains the data portion of the ephemeris packet
(with DLE stuffing removed).
/****************************************************************************
*
*
PROCEDURE NAME:
*
copyData - ephemeris data unpacker
*
*
DESCRIPTION:
*
unpacks data from ephemeris packet DATA field after extraneous DLEs
*
have been removed.
*
integer type.
*
****************************************************************************/
void GPM_ephList::copyData
(
GPM_ephData* pTemp
)
{
pTemp->EphStruct.wn
pTemp->EphStruct.toc = *(float*)&m_TempArray[IDX_EPH_TOC];
pTemp->EphStruct.toe = *(float*)&m_TempArray[IDX_EPH_TOE];
pTemp->EphStruct.af0 = *(float*)&m_TempArray[IDX_EPH_AF0];
pTemp->EphStruct.af1 = *(float*)&m_TempArray[IDX_EPH_AF1];
pTemp->EphStruct.af2 = *(float*)&m_TempArray[IDX_EPH_AF2];
pTemp->EphStruct.ura = *(float*)&m_TempArray[IDX_EPH_URA];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_E]);
pTemp->EphStruct.e = *(double*)&m_TempArray[IDX_EPH_E];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_SQRTA]);
pTemp->EphStruct.sqrta = *(double*)&m_TempArray[IDX_EPH_SQRTA];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_DN]);
pTemp->EphStruct.dn = *(double*)&m_TempArray[IDX_EPH_DN];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_M0]);
pTemp->EphStruct.m0 = *(double*)&m_TempArray[IDX_EPH_M0];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_W]);
pTemp->EphStruct.w = *(double*)&m_TempArray[IDX_EPH_W];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_OMG0]);
pTemp->EphStruct.omg0 = *(double*)&m_TempArray[IDX_EPH_OMG0];
cnvt_ieee_double((long *)&m_TempArray[IDX_EPH_I0]);
pTemp->EphStruct.i0 = *(double*)&m_TempArray[IDX_EPH_I0];
pTemp->EphStruct.odot = *(float*)&m_TempArray[IDX_EPH_ODOT];
pTemp->EphStruct.idot = *(float*)&m_TempArray[IDX_EPH_IDOT];
pTemp->EphStruct.cus = *(float*)&m_TempArray[IDX_EPH_CUS];
pTemp->EphStruct.cuc = *(float*)&m_TempArray[IDX_EPH_CUC];
pTemp->EphStruct.cis = *(float*)&m_TempArray[IDX_EPH_CIS];
pTemp->EphStruct.cic = *(float*)&m_TempArray[IDX_EPH_CIC];
pTemp->EphStruct.crs = *(float*)&m_TempArray[IDX_EPH_CRS];
pTemp->EphStruct.crc = *(float*)&m_TempArray[IDX_EPH_CRC];
pTemp->EphStruct.iod = *(unsigned char*)&m_TempArray[IDX_EPH_IOD];
return;
}
/* copyData */
190-00228-20
Note that sint16 refers to a signed 16-bit
/* ephemeris data unpacker
/* pointer to ephemeris data array
= *(sint16*)&m_TempArray[IDX_EPH_WN];
GPS 16/17 Technical Specifications
Page 32
*/
*/
Rev. C