blob: fb9c1b86f0ad8798fc26ea877f98744cde9e36e3 [file] [log] [blame]
b.liuf9fbfa12024-06-14 15:53:59 +08001/*
2* gnss_hd8122.h
3*
4* UC6228CI Header.
5*
6* Author : lb
7* Date : 2024/5/20 17:53:51
8*/
9#ifndef _GNSS_HD8122_H
10#define _GNSS_HD8122_H
11#include "gnss_info.h"
12#include "mbtk_type.h"
13
b.liu5f950c52024-06-15 20:13:12 +080014#define HD8122_PACK_LEN_MIN 8
15#define HD8122_PACK_HEAD 0xD9F1
16
17typedef enum {
18 HD8122_ID_TYPE_NAV = 0x01,
19 HD8122_ID_TYPE_ACK = 0x05,
20 HD8122_ID_TYPE_CFG = 0x06,
21 HD8122_ID_TYPE_MON = 0x0A,
22 HD8122_ID_TYPE_AID = 0x0B
23} hd8122_id_type_enum;
24
25typedef enum {
26 HD8122_ID_NAV_POSECEF = 0x01,
27 HD8122_ID_NAV_POSLLH = 0x02,
28 HD8122_ID_NAV_DOP = 0x04,
29 HD8122_ID_NAV_TIME = 0x05,
30 HD8122_ID_NAV_VELECEF = 0x11,
31 HD8122_ID_NAV_VELNED = 0x12,
32 HD8122_ID_NAV_TIMEUTC = 0x21,
33 HD8122_ID_NAV_CLOCK = 0x22,
34 HD8122_ID_NAV_CLOCK2 = 0x23,
35 HD8122_ID_NAV_PVERR = 0x26,
36 HD8122_ID_NAV_SVINFO = 0x30,
37 HD8122_ID_NAV_SVSTATE = 0x32,
38 HD8122_ID_NAV_AUTO = 0xC0,
39 HD8122_ID_NAV_PVT = 0xC1
40} hd8122_id_nav_enum;
41
42typedef enum {
43 HD8122_ID_ACK_NAK = 0x00,
44 HD8122_ID_ACK_ACK = 0x01
45} hd8122_id_ack_enum;
46
47typedef enum {
48 HD8122_ID_CFG_PRT = 0x00,
49 HD8122_ID_CFG_MSG = 0x01,
50 HD8122_ID_CFG_PPS = 0x07,
51 HD8122_ID_CFG_CFG = 0x09,
52 HD8122_ID_CFG_DOP = 0x0A,
53 HD8122_ID_CFG_ELEV = 0x0B,
54 HD8122_ID_CFG_NAVSAT = 0x0C,
55 HD8122_ID_CFG_HEIGHT = 0x0D,
56 HD8122_ID_CFG_SBAS = 0x0E,
57 HD8122_ID_CFG_SPDHOLD = 0x0F,
58 HD8122_ID_CFG_EPHSAVE = 0x10,
59 HD8122_ID_CFG_NUMSV = 0x11,
60 HD8122_ID_CFG_SURVEY = 0x12,
61 HD8122_ID_CFG_FIXEDLLA = 0x13,
62 HD8122_ID_CFG_FIXEDECEF = 0x14,
63 HD8122_ID_CFG_ANTIJAM = 0x15,
64 HD8122_ID_CFG_BDGEO = 0x16,
65 HD8122_ID_CFG_CARRSMOOTH = 0x17,
66 HD8122_ID_CFG_GEOFENCE = 0x18,
67 HD8122_ID_CFG_SIMPLERST = 0x40,
68 HD8122_ID_CFG_SLEEP = 0x41,
69 HD8122_ID_CFG_PWRCTL = 0x42,
70 HD8122_ID_CFG_PWRCTL2 = 0x44,
71 HD8122_ID_CFG_NMEAVER = 0x43,
72 HD8122_ID_CFG_FWUP = 0x50
73} hd8122_id_cfg_enum;
74
75typedef enum {
76 HD8122_ID_MON_VER = 0x04,
77 HD8122_ID_MON_INFO = 0x05,
78 HD8122_ID_MON_TRKCHAN = 0x08,
79 HD8122_ID_MON_RCVCLK = 0x09,
80 HD8122_ID_MON_CWI = 0x0A,
81} hd8122_id_mon_enum;
82
83typedef enum {
84 HD8122_ID_AID_INI = 0x01,
85 HD8122_ID_AID_POS = 0x10,
86 HD8122_ID_AID_TIME = 0x11,
87 HD8122_ID_AID_PEPH_GPS = 0x32,
88 HD8122_ID_AID_PEPH_BDS = 0x33,
89 HD8122_ID_AID_PALM_GPS = 0x22,
90 HD8122_ID_AID_PALM_BD = 0x23,
91 HD8122_ID_AID_PALM_GLN = 0x24,
92 HD8122_ID_AID_PALM_GAL = 0x25,
93 HD8122_ID_AID_PALM_QZSS = 0x26
94} hd8122_id_aid_enum;
95
96typedef struct {
97 uint16 head;
98 uint8 id_type;
99 uint8 id;
100 uint16 data_len;
101 uint8 *data;
102} hd8122_pack_info_t;
103
b.liuf9fbfa12024-06-14 15:53:59 +0800104int gnss_8122_dev_open();
105
106int gnss_8122_dev_close();
107
108int gnss_8122_open();
109
110int gnss_8122_close();
111
112int gnss_8122_fw_dl();
113
114//void gnss_8122_dl_read_cb(const void *data, int data_len);
115
116gnss_err_enum gnss_8122_set(int fd, const char *cmd, void *cmd_rsp, int cmd_rsp_len);
117
b.liu5f950c52024-06-15 20:13:12 +0800118void gnss_8122_set_cb(const void *data, int data_len);
b.liuf9fbfa12024-06-14 15:53:59 +0800119
120#endif /* _GNSS_HD8122_H */
121