blob: da51d20937b5201702f6eb510330df4f21395097 [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,
yq.wang51d17352024-09-23 04:54:46 -070050 HD8122_ID_CFG_COORD = 0x06,
b.liu5f950c52024-06-15 20:13:12 +080051 HD8122_ID_CFG_PPS = 0x07,
52 HD8122_ID_CFG_CFG = 0x09,
53 HD8122_ID_CFG_DOP = 0x0A,
54 HD8122_ID_CFG_ELEV = 0x0B,
55 HD8122_ID_CFG_NAVSAT = 0x0C,
56 HD8122_ID_CFG_HEIGHT = 0x0D,
57 HD8122_ID_CFG_SBAS = 0x0E,
58 HD8122_ID_CFG_SPDHOLD = 0x0F,
59 HD8122_ID_CFG_EPHSAVE = 0x10,
60 HD8122_ID_CFG_NUMSV = 0x11,
61 HD8122_ID_CFG_SURVEY = 0x12,
62 HD8122_ID_CFG_FIXEDLLA = 0x13,
63 HD8122_ID_CFG_FIXEDECEF = 0x14,
64 HD8122_ID_CFG_ANTIJAM = 0x15,
65 HD8122_ID_CFG_BDGEO = 0x16,
66 HD8122_ID_CFG_CARRSMOOTH = 0x17,
67 HD8122_ID_CFG_GEOFENCE = 0x18,
68 HD8122_ID_CFG_SIMPLERST = 0x40,
69 HD8122_ID_CFG_SLEEP = 0x41,
70 HD8122_ID_CFG_PWRCTL = 0x42,
71 HD8122_ID_CFG_PWRCTL2 = 0x44,
72 HD8122_ID_CFG_NMEAVER = 0x43,
73 HD8122_ID_CFG_FWUP = 0x50
74} hd8122_id_cfg_enum;
75
76typedef enum {
77 HD8122_ID_MON_VER = 0x04,
78 HD8122_ID_MON_INFO = 0x05,
79 HD8122_ID_MON_TRKCHAN = 0x08,
80 HD8122_ID_MON_RCVCLK = 0x09,
81 HD8122_ID_MON_CWI = 0x0A,
82} hd8122_id_mon_enum;
83
84typedef enum {
85 HD8122_ID_AID_INI = 0x01,
86 HD8122_ID_AID_POS = 0x10,
87 HD8122_ID_AID_TIME = 0x11,
88 HD8122_ID_AID_PEPH_GPS = 0x32,
89 HD8122_ID_AID_PEPH_BDS = 0x33,
90 HD8122_ID_AID_PALM_GPS = 0x22,
91 HD8122_ID_AID_PALM_BD = 0x23,
92 HD8122_ID_AID_PALM_GLN = 0x24,
93 HD8122_ID_AID_PALM_GAL = 0x25,
94 HD8122_ID_AID_PALM_QZSS = 0x26
95} hd8122_id_aid_enum;
96
yq.wang36222352024-11-06 03:31:24 -080097typedef enum {
98 HD8122_EPHSAVE_STATUS_DISABLE = 0x0,
99 HD8122_EPHSAVE_STATUS_ENABLE = 0x1
100} hd8122_ephsave_status_enum;
b.liu5f950c52024-06-15 20:13:12 +0800101typedef struct {
b.liud0ba7152024-06-19 14:47:21 +0800102 bool enable;
103 uint8 gid; // Groud ID
104 uint8 sid; // Sub ID
105 hd8122_id_ack_enum ack_nak;
106} hd8122_msg_id_t;
107
108typedef struct {
b.liu5f950c52024-06-15 20:13:12 +0800109 uint16 head;
110 uint8 id_type;
111 uint8 id;
112 uint16 data_len;
113 uint8 *data;
114} hd8122_pack_info_t;
115
b.liuf9fbfa12024-06-14 15:53:59 +0800116int gnss_8122_dev_open();
117
b.liu978f5432024-07-01 18:04:18 +0800118int gnss_8122_dev_close(int fd);
b.liuf9fbfa12024-06-14 15:53:59 +0800119
120int gnss_8122_open();
121
122int gnss_8122_close();
123
yq.wang36222352024-11-06 03:31:24 -0800124int gnss_8122_init_set(int fd);
125
b.liudbc3f4b2024-06-25 18:22:24 +0800126int gnss_8122_fw_dl(int fd, const char *fw_name, const char *dev);
b.liuf9fbfa12024-06-14 15:53:59 +0800127
yq.wang99db6f52024-09-12 01:58:48 -0700128gnss_err_enum gnss_8122_agnss_get_eph(const char *param);
129
130gnss_err_enum gnss_8122_agnss_inject(int fd);
b.liuf9fbfa12024-06-14 15:53:59 +0800131//void gnss_8122_dl_read_cb(const void *data, int data_len);
132
133gnss_err_enum gnss_8122_set(int fd, const char *cmd, void *cmd_rsp, int cmd_rsp_len);
134
b.liu5f950c52024-06-15 20:13:12 +0800135void gnss_8122_set_cb(const void *data, int data_len);
b.liuf9fbfa12024-06-14 15:53:59 +0800136
137#endif /* _GNSS_HD8122_H */
138