123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707 |
- /******************************************************************************
- ** File Name: greeneye2_gnss_libgps_api.h *
- ** Author: *
- ** DATE: *
- ** Copyright: 2005 Spreadtrum, Incoporated. All Rights Reserved. *
- ** Description: *
- ******************************************************************************
- ******************************************************************************
- ** Edit History *
- ** --------------------------------------------------------------------------*
- ** DATE NAME DESCRIPTION *
- ******************************************************************************/
- /**---------------------------------------------------------------------------*
- ** Dependencies *
- **---------------------------------------------------------------------------*/
- #ifndef GREENEYE2_GNSS_LIBGPS_API_H
- #define GREENEYE2_GNSS_LIBGPS_API_H
- /**---------------------------------------------------------------------------*
- ** Compiler Flag *
- **---------------------------------------------------------------------------*/
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**---------------------------------------------------------------------------*
- ** Data Structures *
- **---------------------------------------------------------------------------*/
- #ifndef NULL
- #define NULL 0 //((void *)0)
- #endif
- /******************************************************
- The Data format between the GPS Lib and GNSS device
- -------------------------------------------------------------|
- |Magic Number| Type |Subtype|Lenth | CRC | DATA...... |
- |~~~~ | 1 Byte |1 Byte | 2 Byte | 2 Byte| n bytes |
- -------------------------------------------------------------
- *******************************************************/
- //define the type data communication
- #define GNSS_LIBGPS_SET_PARA_TYPE (0x01)
- #define GNSS_LIBGPS_REQUEST_TYPE (0x02) //aiding data
- #define GNSS_LIBGPS_FWPROC_ADD_TYPE (0x66)
- #define GNSS_LIBGPS_RESPONSE_TYPE (0x03) //aiding data
- #define GNSS_LIBGPS_NOTIFIED_TYPE (0x04) //active report
- #define GNSS_LIBGPS_DATA_TYPE (0x05) //nmea,log,dump
- #define GNSS_LIBGPS_AIDING_DATA_TYPE (0x06) //aiding data
- //add the power and work mode for special deal with begin
- #define GNSS_LIBGPS_POWER_REQUEST_TYPE (0x07)
- #define GNSS_LIBGPS_POWER_RESPONSE_TYPE (0x08)
- //add the power and work mode for special deal with end
- #define GNSS_LIBGPS_FLASH_TYPE (0x09)
- #define GNSS_LIBGPS_FLASH_ADD_TYPE (0x6d) //0x09+100 GAL/B1C FLASH
- #define GNSS_LIBGPS_EUT_TYPE (0x0a)
- #define GNSS_LIBGPS_REG_WR_TYPE (0x0b) // GNSS_REG_WR
- #define GNSS_LIBGPS_NMEA_TYPE (0x0c)
- #define GNSS_LIBGPS_MAX_TYPE (0x0d) // GNSS_REG_WR
- #define GNSS_LIBGPS_QUERY_STARTMODE_AGNSS_TYPE (0x66)
- #define GNSS_LIBGPS_RESPONSE_STARTMODE_AGNSS_NMEA_TYPE (0x6c)
- // GNSS_LIBGPS_SET_PARA_TYPE begin
- #define GNSS_LIBGPS_SET_GNSS_SUBTYPE (0x01)
- #define GNSS_LIBGPS_SET_DGPS_SUBTYPE (0x02)
- #define GNSS_LIBGPS_SET_LTE_SUBTYPE (0x03)
- #define GNSS_LIBGPS_SET_REPORT_PARA_SUBTYPE (0x04) //set report data type and period
- #define GNSS_LIBGPS_SET_GPSTIME_SUBTYPE (0x05)
- #define GNSS_LIBGPS_SET_LOGLEVEL_SUBTYPE (0x06)
- #define GNSS_LIBGPS_SET_WORKMODE_SUBTYPE (0X07)
- #define GNSS_LIBGPS_RESETCHIP_SUBTYPE (0x08)
- #define GNSS_LIBGPS_RESETEVB_SUBTYPE (0x09)
- #define GNSS_LIBGPS_SETMODE_SUBTYPE (0x0a)
- #define GNSS_LIBGPS_CLEAR_FLASH_CONFIG_SUBTYPE (0x0b)
- #define GNSS_LIBGPS_SET_OUTPUT_PROTOCOL_SUBTYPE (0x0c)
- #define GNSS_LIBGPS_SET_REPORT_INTERVAL (0x0d) // CTS_TEST
- #define GNSS_LIBGPS_SET_LTE_SWITCH (0x20)
- #define GNSS_LIBGPS_SET_CMCC_SWITCH (0x21)
- #define GNSS_LIBGPS_SET_NETWORK_STATUS (0x22)
- #define GNSS_LIBGPS_SET_REALEPH_STATUS (0x23)
- #define GNSS_LIBGPS_SET_WIFI_STATUS (0x24)
- #define GNSS_LIBGPS_SET_ASSERT_STATUS (0x25)
- #define GNSS_LIBGPS_SET_DELETE_AIDING_DATA_BIT (0x26)
- #define GNSS_LIBGPS_SETPLATFORM_SUBTYPE (0x27)
- #define GNSS_LIBGPS_SET_GLOLTE_SUBTYPE (0x29)
- #define GNSS_LIBGPS_SET_BDSLTE_SUBTYPE (0x30)
- #define GNSS_LIBGPS_SET_SMD_FLAG_SUBTYPE (0x31)
- #define GNSS_LIBGPS_SMD_RESPONSE_SUBTYPE (0x32)
- #define GNSS_LIBGPS_GLOOBS_SUBTYPE (0x33)
- #define GNSS_LIBGPS_GLOLTE_SUBTYPE (0x34)
- #define GNSS_LIBGPS_BDSOBS_SUBTYPE (0x35)
- #define GNSS_LIBGPS_BDSLTE_SUBTYPE (0x36)
- //GNSS_LIBGPS_SET_PARA_TYPE end
- // GNSS_LIBGPS_REQUEST_TYPE begin
- #define GNSS_LIBGPS_REQUEST_VERSION_SUBTYPE (0x01)
- #define GNSS_LIBGPS_REQUEST_CHIP_SUBTYPE (0x02)
- #define GNSS_LIBGPS_REQUEST_GPSTIME_SUBTYPE (0x03)
- #define GNSS_LIBGPS_REQUEST_CONSTELLATION_SUBTYPE (0x04)
- #define GNSS_LIBGPS_REQUEST_MEASUREMENT_SUBTYPE (0x05)
- #define GNSS_LIBGPS_REQUEST_TSXTEMP_SUBTYPE (0x06)
- //#define GNSS_LIBGPS_REQUEST_POWER_MANAGER_SUBTYPE (0x04)// Power manager
- // GNSS_LIBGPS_REQUEST_TYPE end
- // GNSS_LIBGPS_FWPROC_ADD_TYPE begin
- #define GNSS_LIBGPS_TO_FW_FLASH_GAL_EPH_SUBTYPE (0x2b)
- #define GNSS_LIBGPS_TO_FW_FLASH_GAL_ALM1_SUBTYPE (0x2c)
- #define GNSS_LIBGPS_TO_FW_FLASH_GAL_ALM2_SUBTYPE (0x2d)
- #define GNSS_LIBGPS_TO_FW_FLASH_B1C_EPH_SUBTYPE (0x2f)
- #define GNSS_LIBGPS_TO_FW_FLASH_GPS_ALM_CPY_OTHER_SUBTYPE (0x36)
- #define GNSS_LIBGPS_TO_FW_FLASH_B1C_ALM_SUBTYPE (0x30) // pending
- #define GNSS_LIBGPS_TO_FW_FLASH_ADD_PvtMisc_SUBTYPE (0x38)
- #define GNSS_LIBGPS_TO_FW_FLASH_ADD_IONO_UTC_SUBTYPE (0x39)
- #define GNSS_LIBGPS_TO_FW_FLASH_ADD_PVT_SEQLSQ_SUBTYPE (0x3a)
- #define GNSS_LIBGPS_FL_WORK_MODULES_SUBTYPE (0x3b)
- #define GNSS_LIBGPS_VDR_MODULES_SUBTYPE (0x3c)
- // GNSS_LIBGPS_FWPROC_ADD_TYPE end
- //TODO ADD
- //GNSS_LIBGPS_RESPONSE_TYPE begin
- #define GNSS_LIBGPS_RESPONSE_VERSION_SUBTYPE (0x01)
- #define GNSS_LIBGPS_RESPONSE_CHIP_SUBTYPE (0x02)
- #define GNSS_LIBGPS_RESPONSE_GPSTIME_SUBTYPE (0x03)
- #define GNSS_LIBGPS_RESPONSE_CONSTELLATION_SUBTYPE (0x04)
- #define GNSS_LIBGPS_RESPONSE_CP_CRASH_SUBTYPE (0x0f)
- //#define GNSS_LIBGPS_RESPONSE_POWER_RESPONSE_SUBTYPE (0x04)
- // GNSS_LIBGPS_RESPONSE_TYPE end
- //define GNSS_LIBGPS_DATA_TYPE begin
- #define GNSS_LIBGPS_NMEA_SUBTYPE (0x01)
- #define GNSS_LIBGPS_ASSERT_SUBTYPE (0x02)
- #define GNSS_LIBGPS_LOG_SUBTYPE (0x03)
- #define GNSS_LIBGPS_DGPS_SUBTYPE (0x04)
- #define GNSS_LIBGPS_LTE_SUBTYPE (0x05)
- #define GNSS_LIBGPS_TEST_SUBTYPE (0x06)
- #define GNSS_LIBGPS_MEASUREMENT_SUBTYPE (0x07) // TODO
- #define GNSS_LIBGPS_MSA_MEASUREMENT_SUBTYPE (0x08)
- #define GNSS_LIBGPS_LOG_DDDD_SUBTYPE (0x09) // 4 double datas
- #define GNSS_LIBGPS_LOG_LLLL_SUBTYPE (0x0A) // 4 long datas
- #define GNSS_LIBGPS_LOG_SSSS_SUBTYPE (0x0B) // 4 short datas
- #define GNSS_LIBGPS_LOG_FFFF_SUBTYPE (0x0C) // 4 float datas
- #define GNSS_LIBGPS_MEMDUMP_DATA_SUBTYPE (0x0D)
- #define GNSS_LIBGPS_MEMDUMP_CODE_SUBTYPE (0x0E)
- #define GNSS_LIBGPS_LOG_BB_SUBTYPE (0x0F) //baseband log
- #define GNSS_LIBGPS_SET_AP_TSX_TEMP (0x10)
- #define GNSS_LIBGPS_SET_CP_TSX_TEMP (0x11)
- #define GNSS_LIBGPS_SAVE_TSX_TEMP (0x12)
- #define GNSS_LIBGPS_CALI_TSX_TEMP (0x13) // TSXTEMP
- #define GNSS_LIBGPS_TTFF_SUBTYPE (0x14)
- #define GNSS_LIBGPS_MINILOG_SUBTYPE (0x15)
- #define GNSS_LIBGPS_MEMDUMP_PCHANNEL_SUBTYPE (0x16)
- #define GNSS_LIBGPS_ELLIPES_SUBTYPE (0x17)
- #define GNSS_LIBGPS_OBS_SUBTYPE (0x25)
- #define GNSS_LIBGPS_NAVIGATION_SUBTYPE (0x26)
- #define GNSS_LIBGPS_GPSCLOCK_SUBTYPE (0x27)
- #define GNSS_LIBGPS_SMD_REQUEST_SUBTYPE (0x37)
- #define GNSS_LIBGPS_SOFTBIT_CLEAR_SUBTYPE (0x50)
- #define GNSS_LIBGPS_SOFTBIT_SEND_SUBTYPE (0x51)
- //define GNSS_LIBGPS_DATA_TYPE end
- //define GNSS_LIBGPS_FLASH_TYPE begin
- /*Addr bias for writing to flash*/
- #define GNSS_LIBGPS_FLASH_PvtMisc_SUBTYPE (0x0)
- #define GNSS_LIBGPS_FLASH_GPS_EPH1_SUBTYPE (0x01)
- #define GNSS_LIBGPS_FLASH_GPS_EPH2_SUBTYPE (0x02)
- #define GNSS_LIBGPS_FLASH_GPS_EPH3_SUBTYPE (0x03)
- #define GNSS_LIBGPS_FLASH_GPS_EPH4_SUBTYPE (0x04)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_SUBTYPE (0x05)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_CPY1_SUBTYPE (0x06)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_CPY2_SUBTYPE (0x07)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_CPY3_SUBTYPE (0x08)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_CPY4_SUBTYPE (0x09)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_CPY5_SUBTYPE (0x0A)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_CPY6_SUBTYPE (0x0B)
- #define GNSS_LIBGPS_FLASH_QZS_EPH_SUBTYPE (0x0C)
- #define GNSS_LIBGPS_FLASH_QZS_ALM_SUBTYPE (0x0D)
- #define GNSS_LIBGPS_FLASH_BD2_EPH1_SUBTYPE (0x0E)
- #define GNSS_LIBGPS_FLASH_BD2_EPH2_SUBTYPE (0x0F)
- #define GNSS_LIBGPS_FLASH_BD2_ALM_SUBTYPE (0x10)
- #define GNSS_LIBGPS_FLASH_BD2_ALM_CPY1_SUBTYPE (0x11)
- #define GNSS_LIBGPS_FLASH_BD2_ALM_CPY2_SUBTYPE (0x12)
- #define GNSS_LIBGPS_FLASH_BD2_ALM_CPY3_SUBTYPE (0x13)
- #define GNSS_LIBGPS_FLASH_BD2_ALM_CPY4_SUBTYPE (0x14)
- #define GNSS_LIBGPS_FLASH_GLO_EPH1_SUBTYPE (0x15)
- #define GNSS_LIBGPS_FLASH_GLO_EPH2_SUBTYPE (0x16)
- #define GNSS_LIBGPS_FLASH_GLO_EPH3_SUBTYPE (0x17)
- #define GNSS_LIBGPS_FLASH_GLO_EPH4_SUBTYPE (0x18)
- #define GNSS_LIBGPS_FLASH_GLO_ALM1_SUBTYPE (0x19)
- #define GNSS_LIBGPS_FLASH_GLO_ALM2_SUBTYPE (0x1A)
- #define GNSS_LIBGPS_FLASH_IONO_UTC_SUBTYPE (0x1B)
- #define GNSS_LIBGPS_FLASH_SYS_CFG_SUBTYPE (0x1C)
- #define GNSS_LIBGPS_FLASH_ALMCPY_COMM_SUBTYPE (0x1D)
- #define GNSS_LIBGPS_FLASH_PVT_SEQLSQ_SUBTYPE (0x1E)
- #define GNSS_LIBGPS_FLASH_PVT_BLUNDER_SUBTYPE (0x1F)
- #define GNSS_LIBGPS_FLASH_STIME_SUBTYPE (0x20)
- //define GNSS_LIBGPS_FLASH_TYPE end
- //following LIBGPS_FLASH_TYPE define LIBGPS_FLASH_ADD_TYPE for GAL/B1C //Cfg_New
- //define GNSS_LIBGPS_FLASH_ADD_TYPE begin
- #define GNSS_LIBGPS_FLASH_ADD_GAL_EPH1_SUBTYPE (0x21)
- #define GNSS_LIBGPS_FLASH_ADD_GAL_EPH2_SUBTYPE (0x22)
- #define GNSS_LIBGPS_FLASH_ADD_GAL_EPH3_SUBTYPE (0x23)
- #define GNSS_LIBGPS_FLASH_ADD_GAL_EPH4_SUBTYPE (0x24)
- #define GNSS_LIBGPS_FLASH_ADD_GAL_ALM1_SUBTYPE (0x25)
- #define GNSS_LIBGPS_FLASH_ADD_GAL_ALM2_SUBTYPE (0x26)
- #define GNSS_LIBGPS_FLASH_ADD_B1C_EPH1_SUBTYPE (0x27)
- #define GNSS_LIBGPS_FLASH_ADD_B1C_EPH2_SUBTYPE (0x28)
- #define GNSS_LIBGPS_FLASH_ADD_B1C_EPH3_SUBTYPE (0x29)
- #define GNSS_LIBGPS_FLASH_ADD_B1C_EPH4_SUBTYPE (0x2a)
- #define GNSS_LIBGPS_FLASH_ADD_B1C_EPH5_SUBTYPE (0x2b)
- #define GNSS_LIBGPS_FLASH_GPS_ALM_CPY_OTHER_SUBTYPE (0x2c)
- #define GNSS_LIBGPS_FLASH_ADD_B1C_ALM_SUBTYPE (0x2d) // pending
- #define GNSS_LIBGPS_FLASH_ADD_PvtMisc_SUBTYPE (0x2e)
- #define GNSS_LIBGPS_FLASH_ADD_IONO_UTC_SUBTYPE (0x2f)
- #define GNSS_LIBGPS_FLASH_ADD_PVT_SEQLSQ_SUBTYPE (0x30)
- #define GNSS_LIBGPS_FLASH_BD2_EPH3_SUBTYPE (0x31)
- #define GNSS_LIBGPS_FLASH_BD2_EPH4_SUBTYPE (0x32)
- #define GNSS_LIBGPS_FLASH_BD2_EPH5_SUBTYPE (0x33)
- #define GNSS_LIBGPS_FLASH_BD2_ALM_EXT_SUBTYPE (0x34)
- #define GNSS_LIBGPS_FLASH_BD2_EPH6_SUBTYPE (0x35)
- #define GNSS_LIBGPS_FLASH_BD2_EPH7_SUBTYPE (0x36)
- #define GNSS_LIBGPS_FLASH_BD2_EPH8_SUBTYPE (0x37)
- //define GNSS_LIBGPS_FLASH_ADD_TYPE end
- #define GNSS_LIBGPS_FLASH_MAX_LEN_SUBTYPE (56)
- //define GNSS_LIBGPS_AIDING_DATA_TYPE begin
- #define GNSS_LIBGPS_AIDING_REFTIME_SUBTYPE (0x01) //mino:it will use POSVELTIME
- #define GNSS_LIBGPS_AIDING_REFPOSITION_SUBTYPE (0x02) //mino:it will use POSVELTIME
- #define GNSS_LIBGPS_AIDING_REFEPHEMERIS_SUBTYPE (0x03) //mino:it will use GPSSEPHEMERIS
- #define GNSS_LIBGPS_AIDING_ASSISTANCE_SUBTYPE (0x04) //
- #define GNSS_LIBGPS_AIDING_ALMANAC_SUBTYPE (0x05) //mino:it will use GPSALMANAC
- #define GNSS_LIBGPS_AIDING_DGPS_SUBTYPE (0x06)
- #define GNSS_LIBGPS_AIDING_IONOSPHERE_SUBTYPE (0x07)
- #define GNSS_LIBGPS_AIDING_UTC_SUBTYPE (0x08)
- #define GNSS_LIBGPS_AIDING_REALTIME_INTEGRITY_SUBTYPE (0x09)
- #define GNSS_LIBGPS_AIDING_IONOUTC_SUBTYPE (0x0A)
- #define GNSS_LIBGPS_AIDING_POSVELTIME_SUBTYPE (0x0B)
- #define GNSS_LIBGPS_AIDING_BDSALMANAC_SUBTYPE (0x0C)
- #define GNSS_LIBGPS_AIDING_GPSALMANAC_SUBTYPE (0x0D)
- #define GNSS_LIBGPS_AIDING_GPSEPHEMERIS_SUBTYPE (0x0E)
- #define GNSS_LIBGPS_AIDING_BDSEPHEMERIS_SUBTYPE (0x0F)
- #define GNSS_LIBGPS_AIDING_RCVSTATUS_SUBTYPE (0x10)
- #define GNSS_LIBGPS_AIDING_BDSALMPACKEDCOPY_SUBTYPE (0x11)
- #define GNSS_LIBGPS_AIDING_SET_SENSOR_SUBTYPE (0x12)
- #define GNSS_LIBGPS_AIDING_SENSOR_SUBTYPE (0x13)
- //define GNSS_LIBGPS_AIDING_DATA_TYPE end
- //GNSS_LIBGPS_POWER_REQUEST_TYPE begin
- #define GNSS_LIBGPS_POWER_ON_REQ_SUBTYPE (0x01)
- #define GNSS_LIBGPS_POWER_SHUTDOWN_REQ_SUBTYPE (0x02)
- #define GNSS_LIBGPS_POWER_IDLEON_REQ_SUBTYPE (0x03)
- #define GNSS_LIBGPS_POWER_IDLEOFF_REQ_SUBTYPE (0x04)
- #define GNSS_LIBGPS_POWER_RESET_REQ_SUBTYPE (0x05)
- //define GNSS_LIBGPS_POWER_REQUEST_TYPE end
- //define GNSS_LIBGPS_POWER_RESPONSE_TYPE begin
- #define GNSS_LIBGPS_POWERON_STATUS_SUCCESS (0x01)
- #define GNSS_LIBGPS_POWERON_STATUS_FAILED (0x02)
- #define GNSS_LIBGPS_IDLON_STATUS_SUCCESS (0x03)
- #define GNSS_LIBGPS_IDLON_STATUS_FAILED (0x04)
- #define GNSS_LIBGPS_IDLOFF_STATUS_SUCCESS (0x05)
- #define GNSS_LIBGPS_IDLOFF_STATUS_FAILED (0x06)
- #define GNSS_LIBGPS_SHUTDOWN_STATUS_SUCCESS (0x07)
- #define GNSS_LIBGPS_SHUTDOWN_STATUS_FAILED (0x09)
- #define GNSS_LIBGPS_RESET_STATUS_SUCCESS (0x0A)
- #define GNSS_LIBGPS_RESET_STATUS_FAILED (0x0B)
- //define GNSS_LIBGPS_POWER_RESPONSE_TYPE end
- //define GNSS_LIBGPS_SET_LOGLEVEL_SUBTYPE begin
- #define GNSS_LIBGPS_DEBUG_OFF (0x01)
- #define GNSS_LIBGPS_DEBUG_LEVEL0 (0x02)
- #define GNSS_LIBGPS_DEBUG_LEVEL1 (0x03)
- #define GNSS_LIBGPS_DEBUG_LEVEL2 (0x04)
- //define GNSS_LIBGPS_SET_LOGLEVEL_SUBTYPE end
- //define GNSS_LIBGPS_NOTIFIED_TYPE begin
- #define GNSS_NOTIFIED_DEVICE_STATE_SUBTYPE (0x01)
- //define GNSS_LIBGPS_NOTIFIED_TYPE end
- #define GNSS_DEVICE_READY_STATE (0x01)
- #define GNSS_DEVICE_SLEEP_STATE (0x02)
- #define GNSS_DEVICE_ABOUT_STATE (0x03)
- // GNSS_LIBGPS_EUT_TYPE begin
- #define GNSS_LIBGPS_EUT_CW_SUBTYPE (0x01)
- #define GNSS_LIBGPS_EUT_MIDBAND_SUBTYPE (0x02)
- #define GNSS_LIBGPS_EUT_TCXO_SUBTYPE (0x03)
- #define GNSS_LIBGPS_EUT_TSXTEMP_SUBTYPE (0x04)
- #define GNSS_LIBGPS_EUT_RFDATA_CAP_SUBTYPE (0x05)
- // GNSS_LIBGPS_EUT_TYPE end
- // GNSS_LIBGPS_REG_WR_TYPE begin
- #define GNSS_LIBGPS_REG_WRITE_SUBTYPE (0x01) // GNSS_REG_WR
- #define GNSS_LIBGPS_REG_READ_SUBTYPE (0x02) // GNSS_REG_WR
- #define GNSS_LIBGPS_REG_VALUE_SUBTYPE (0x03) // GNSS_REG_WR
- // GNSS_LIBGPS_REG_WR_TYPE end
- //GNSS_LIBGPS_QUERY_STARTMODE_AGNSS_TYPE begin
- #define GNSS_LIBGPS_QUERY_STARTMODE_AGNSS_SUBTYPE (0x3d)
- //GNSS_LIBGPS_QUERY_STARTMODE_AGNSS_TYPE end
- //GNSS_LIBGPS_RESPONSE_STARTMODE_AGNSS_NMEA_TYPE begin
- #define GNSS_LIBGPS_RESPONSE_STARTMODE_AGNSS_SUBTYPE (0x37)
- #define GNSS_LIBGPS_GST_SUBTYPE (0x25)
- #define GNSS_LIBGPS_SET_BD2LTE_EXT_SUBTYPE (0x36)
- /* GNSS_LIBGPS_RESPONSE_STARTMODE_AGNSS_NMEA_TYPE end*/
- //Assistant DATA
- #define DATA_POSVELTIME (0x0001)
- #define DATA_IONOUTC (0x0002)
- #define DATA_GPSSEPHEMERIS (0x0004)
- #define DATA_GPSALMANAC (0x0008)
- #define DATA_BDSEPHEMERIS (0x0010)
- #define DATA_GPSALMPACKEDCOPY (0x0020)
- #define DATA_BDSALMPACKEDCOPY (0x0040)
- #define DATA_ACQUISITION_ASSISTANCE (0x0080)
- //it define encode and decode begin
- #define GNSS_MAGIC_NUMBER_LEN (4)
- #define GNSS_MAX_DATA_CRC (2)
- #define GNSS_MAGIC_NUMBER (0x7E)
- #define GNSS_MAX_HEAD_LEN (10)
- #define GNSS_LOG_BB_LEN (32)
- #define GNSS_LOG_DDDD_LEN (57)
- #define GNSS_LOG_LLLL_LEN (41)
- #define GNSS_LOG_SSSS_LEN (33)
- #define GNSS_LOG_FFFF_LEN (41)
- #define GNSS_LOG_DDDD_CRC (0xFDC0)
- #define GNSS_LOG_LLLL_CRC (0xFDCF)
- #define GNSS_LOG_SSSS_CRC (0xFDD6)
- #define GNSS_LOG_FFFF_CRC (0xFDCD)
- #define GNSS_GET_HIGH_BYTE(D) (unsigned char)((D) >> 8)
- #define GNSS_GET_LOW_BYTE(D) (unsigned char)(D)
- #define TRUE 1
- #define FALSE 0
- #define GNSS_FLASH_BLOCK_SIZE 4096
- //it define encode and decode end
- //it define gnsstool type and subtype begin
- #define GNSS_LIBGPS_TO_GNSSTOOL_MSG_HEAD_TYPE (0x3A)
- #define GNSS_LIBGPS_TO_GNSSTOOL_ACCURACY_MSG_HEAD_SUBTYPE (0x07)
- //it define gnsstool type and subtype end
- /********************************************************
- * Structrues
- *********************************************************/
- #define MAX_SATS_NUMBERS (32)
- #define MAX_GLO_SATS_NUMBERS (28)
- #define MAX_BDS_SATS_NUMBERS (14)
- #define MAX_SATS_IN_VIEW (16)
- #define MAX_MSG_BUFF_SIZE (2038) //from 1024 to 3904
- #define STRING_MAX_LENGTH (15)
- typedef enum _EWorkMode
- {
- COLD_START_MODE = 1,
- WARM_START_MODE,
- HOT_START_MODE,
- FAC_START_MODE
- } EWorkMode_e;
- typedef struct _TPosLLH
- {
- double lat; /** geographical latitude */
- double lon; /** geographical longitude */
- double hae; /** geographical altitude */
- } TPosLLH_t;
- typedef struct _TVelocity
- {
- float horizontalSpeed; // kmh
- float bearing;
- float verticalSpeed; // kmh
- char verticalDirect; // 0: upward, 1:downward
- } TVelocity_t;
- typedef struct _TGpsTime
- {
- unsigned short weekNo; /*< week number (from beginning of current week cycle) */
- unsigned long second; /*< seconds (from beginning of current week no) */
- unsigned long secondFrac; /*< seconds fraction (from beginning of current second) units: 1ns */
- } TGpsTime_t;
- typedef struct _TEphemerisPacked
- {
- unsigned char flag; // bit0 means ephemeris valid
- unsigned char svid;
- unsigned int word[30];
- } TEphemerisPacked_t; //sizeof= 122Bytes
- typedef struct _TGpsAlmanacPacked
- {
- unsigned int flag; //bit 0-31 indicates alm validility flag of sv1-32
- unsigned int FramePageWord[2][25][8];
- } TGpsAlmanacPacked_t; //sizeof= 1604Bytes
- typedef struct _TBd2sAlmanacPacked
- {
- unsigned int flag; //bit 0-29 indicates alm validility flag of sv1-30
- unsigned int healthFlag; //bit 0-29 indicates alm health info of sv1-30,defaulted value is 0(0 indicates healthy),changed when decoded from pages
- unsigned int FramePageWord[2][24][8]; //WORD2-9 for decode,pay attention that 2LSB of word2 has been put into 2MSB of word3 both D1&D2
- } TBd2sAlmanacPacked_t; //sizeof= 1544Bytes
- typedef struct _TGpsAlmanacPackedCopy
- {
- unsigned int svMask[2][25]; //bit 0-31 indicates svMask one page of one subframe in one copy
- unsigned int FramePageValid[2]; // valid flag for page1~25 in subframe 4/5
- unsigned int FramePageWord[2][25][8];
- } TGpsAlmanacPackedCopy_t; //sizeof= 1808Bytes
- typedef struct _TBd2AlmanacPackedCopy
- {
- unsigned int svMask[2][24]; //bit 0-31 indicates svMask one page of one subframe in one copy
- unsigned int FramePageValid[2]; // valid flag for page1~25 in subframe 4/5
- unsigned int FramePageWord[2][24][8]; //WORD3-10 for data aiding,only for D1
- } TBd2AlmanacPackedCopy_t; //sizeof= 1736Bytes
- typedef struct _TAlmanac
- {
- unsigned char flag;
- unsigned char svid;
- unsigned short health; //type changed from unsigned char to unsigned short, for health of BD2 occupy 9 bits
- int toa;
- int week;
- // variables decoded from stream data
- double M0; // Mean Anomaly at Reference Time
- double ecc; // Eccentricity
- double sqrtA; // Square Root of the Semi-Major Axis
- double omega0; // Longitude of Ascending Node of Orbit Plane at Weekly Epoch
- double i0; // Inclination Angle at Reference Time
- double w; // Argument of Perigee
- double omega_dot; // Rate of Right Ascension
- double af0; // Satellite Clock Correction
- double af1; // Satellite Clock Correction
- // variables derived from basic data, avoid calculate every time
- double axis; // Semi-major Axis of Orbit
- double n; // Mean Angular Rate
- double root_ecc; // Square Root of One Minus Ecc Square
- double omega_t; // Longitude of Ascending Node of Orbit Plane at toe
- double omega_delta; // Delta Between omega_dot and WGS_OMEGDOTE
- } TAlmanac_t;
- typedef struct _TAddionalDopplerFields
- {
- float doppler1; // range: [-1.0, 0.5]hz/sec
- float dopplerUncertainty; // range: [12.5, 200]hz
- } TAddionalDopplerFields_t;
- typedef struct _TAddionalAngleFields
- {
- float azimuth; // range:0--384.75 deg
- float elevation; // range:0--78.75 deg
- } TAddionalAngleFields_t;
- typedef struct _TAcquisElement
- {
- unsigned char svid; // range:1--64
- unsigned char intCodePhase; // range:0--19 C/A period
- unsigned char gpsBitNumber; // range:0--3
- unsigned char codePhaseSearchWindow; // range:0--192 chips
- unsigned char addionalAngleFlag; // 1: addionalAngle is valid
- unsigned char addionalDopplerFlag; // 1: addionalDoppler is valid
- unsigned short codePhase; // range:0--1022 chips
- TAddionalDopplerFields_t addionalDoppler;
- TAddionalAngleFields_t addionalAngle;
- float doppler0; // range:-5120...5117.5
- } TAcquisElement_t;
- typedef struct _TAcquisAssist
- {
- unsigned char count; // acquisElement[0]...acquisElement[count-1] is valid value
- unsigned long gpsTime; // unit: ms
- TAcquisElement_t acquisElement[MAX_SATS_IN_VIEW];
- } TAcquisAssist_t;
- typedef struct _TMeasureElement
- {
- unsigned char satelliteID; // range: 0-63
- unsigned char cNo; // carrier noise ratio, range:(0..63)
- unsigned char pseuRangeRMSErr; // index, range:(0..63)
- //MpathIndic mpathInd; // multipath indicator
- unsigned short wholeChips; // whole value of the code phase measurement, range:(0..1022)
- unsigned short fracChips; // fractional value of the code phase measurement, range:(0..1023),
- float doppler; // doppler, mulltiply by 0.2, range:(-32768..32767)
- } TMeasureElement_t;
- typedef struct _TMeasuresList
- {
- unsigned long gpsTOW;
- unsigned short listNums;
- TMeasureElement_t msrElement[MAX_SATS_IN_VIEW];
- } TMeasuresList_t;
- typedef struct _TGpsEphemerisList
- {
- TEphemerisPacked_t Ephemeris[MAX_SATS_IN_VIEW];
- } TGpsEphemerisList_t;
- typedef struct _TBdsEphemerisList
- {
- TEphemerisPacked_t Ephemeris[MAX_SATS_IN_VIEW];
- } TBdsEphemerisList_t;
- typedef struct _TGpsAlmanac
- {
- int index;
- TGpsAlmanacPackedCopy_t Almanac;
- } TGpsAlmanacCopyList_t;
- typedef struct _TBdsAlmanac
- {
- int index;
- TBd2AlmanacPackedCopy_t Almanac;
- } TBdsAlmanacCopyList_t;
- typedef struct _TIonoParam
- {
- float a0; // 2**-30
- float a1; // 2**-27
- float a2; // 2**-24
- float a3; // 2**-24
- float b0; // 2**11
- float b1; // 2**14
- float b2; // 2**16
- float b3; // 2**16
- unsigned long flag; // 1, availble
- } TIonoParam_t;
- // UTC parameters
- typedef struct _TUtcParam
- {
- double A0; // second, 2**-30
- double A1; // second/second, 2**-50
- short WN;
- short WNLSF;
- unsigned char tot; // 2**12
- unsigned char TLS; // leap second
- unsigned char TLSF;
- unsigned char DN;
- unsigned int flag; // 1, availble
- } TUtcParam_t;
- typedef struct _TRtcTime
- {
- int flag;
- int Reserved;
- int week;
- int msCount;
- unsigned int timeUnc; //heidi add
- } TRtcTime_t;
- typedef struct _TPosVelParam
- {
- int PosQuality;
- int Reserved;
- double freqBias;
- TPosLLH_t ReceiverPos;
- unsigned int posUnc; //heidi add
- } TPosVelParam_t;
- typedef struct _TTimeDiff
- {
- int flag;
- int Reserved;
- double ToGPSTimeDiff;
- } TTimeDiff_t;
- typedef struct _TPosVelTimeParam
- {
- TPosVelParam_t PosVelParam;
- TRtcTime_t RTCTime;
- TTimeDiff_t TimeDiff;
- unsigned int CheckSum;
- } TPosVelTimeParam_t;
- typedef struct _TIonoUtcParam
- {
- TIonoParam_t IonoParam[2];
- TUtcParam_t UTCParam[2];
- unsigned int CheckSum;
- } TIonoUtcParam_t;
- typedef struct _TCmdData
- {
- unsigned char type;
- unsigned char subType;
- unsigned short length;
- unsigned char buff[MAX_MSG_BUFF_SIZE];
- } TCmdData_t;
- typedef struct _TLogDDDDFormat4
- {
- char str[STRING_MAX_LENGTH];
- double value1;
- double value2;
- double value3;
- double value4;
- } TLogDDDDFormat4_t;
- typedef struct _TLogLLLLFormat4
- {
- char str[STRING_MAX_LENGTH];
- long value1;
- long value2;
- long value3;
- long value4;
- } TLogLLLLFormat4_t;
- typedef struct _TLogSSSSFormat4
- {
- char str[STRING_MAX_LENGTH];
- short value1;
- short value2;
- short value3;
- short value4;
- } TLogSSSSFormat4_t;
- typedef struct _TLogFFFFFormat4
- {
- char str[STRING_MAX_LENGTH];
- float value1;
- float value2;
- float value3;
- float value4;
- } TLogFFFFFormat4_t;
- typedef struct _TLogSDSDSDFormat6
- {
- char FunctionName[STRING_MAX_LENGTH];
- char str1[STRING_MAX_LENGTH];
- double value1;
- char str2[STRING_MAX_LENGTH];
- double value2;
- char str3[STRING_MAX_LENGTH];
- double value3;
- } TLogSDSDSDFormat6_t;
- //it define encode and decode struct union begin
- typedef enum
- {
- GNSS_RECV_SEARCH_FLAG,
- GNSS_RECV_COLLECT_HEAD,
- GNSS_RECV_DATA,
- GNSS_RECV_Complete,
- GNSS_RECV_ERROR,
- } GNSS_RecvState_e;
- // GNSS frame (User Data part only)
- typedef struct
- {
- char type;
- char subtype;
- unsigned short dataLen;
- unsigned char *pBuf;
- } GNSS_packet_t;
- typedef struct __GNSS_DataProcessor
- {
- GNSS_RecvState_e state;
- unsigned short headSize; //receive head len
- unsigned short receivedDataLen; ////receive data len
- unsigned short dataLen; //total data len
- //add debug information
- unsigned short errorNum;
- unsigned char curHeader[GNSS_MAX_HEAD_LEN];
- //GNSS_packet_t *pCurData;
- TCmdData_t cmdData;
- } TGNSS_DataProcessor_t;
- typedef struct __TGNSS_Baseband_Log
- {
- unsigned char type;
- unsigned char svid;
- unsigned short data1;
- unsigned short data2;
- unsigned short data3;
- unsigned int bbtime;
- unsigned int data4;
- unsigned int data5;
- unsigned int data6;
- unsigned int data7;
- unsigned int pad;
- } TGNSS_Baseband_Log_t;
- //it define encode and decode struct union end
- /**---------------------------------------------------------------------------*
- ** Function Prototypes *
- **---------------------------------------------------------------------------*/
- void GNSS_InitParsePacket(TGNSS_DataProcessor_t *pStream);
- void GNSS_FillHead(TCmdData_t *pIndata, unsigned char *pOutData);
- int GNSS_EncodeOnePacket(TCmdData_t *pInData, unsigned char *pOutData, unsigned short outLen);
- int GNSS_ParseOnePacket(TGNSS_DataProcessor_t *pStream, unsigned char *pData, unsigned short Len);
- /**--------------------------------------------------------------------------*
- ** Compiler Flag *
- **---------------------------------------------------------------------------*/
- #ifdef __cplusplus
- }
- #endif
- #endif //GNSS_LIBGPS_API_H
|