Garmin GPS 17N 기술 사양 - 페이지 36

{카테고리_이름} Garmin GPS 17N에 대한 기술 사양을 온라인으로 검색하거나 PDF를 다운로드하세요. Garmin GPS 17N 40 페이지. Gps 16/17 series
Garmin GPS 17N에 대해서도 마찬가지입니다: 기술 참조 (30 페이지), 적합성 선언 (1 페이지), 설치 매뉴얼 (8 페이지)

Garmin GPS 17N 기술 사양
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