Add mbtk_gnssd
Change-Id: I2e3bc0b7c9cc310c04a4fbcbe809c525b0cfafbe
diff --git a/mbtk/mbtk_gnssd/gnss_info.h b/mbtk/mbtk_gnssd/gnss_info.h
new file mode 100755
index 0000000..0e7d4fa
--- /dev/null
+++ b/mbtk/mbtk_gnssd/gnss_info.h
@@ -0,0 +1,75 @@
+/*
+* gnss_info.h
+*
+* GNSS informations header.
+*
+* Author : lb
+* Date : 2024/5/20 15:22:46
+*/
+#ifndef _GNSS_INFO_H
+#define _GNSS_INFO_H
+#include "mbtk_type.h"
+
+#define GNSS_ID_6228 "6228"
+#define GNSS_ID_5311 "5311"
+
+#define GNSS_PRINT_PORT_UART1 1 // 1
+#define GNSS_PRINT_PORT_USB_NMEA (1<<1) // 2
+#define GNSS_PRINT_PORT_USB_AT (1<<2) // 4
+#define GNSS_PRINT_PORT_TTY_AT (1<<3) // 8
+
+typedef enum {
+ GNSS_ERR_OK,
+ GNSS_ERR_UNSUPPORT,
+ GNSS_ERR_TIMEOUT,
+ GNSS_ERR_ARG,
+ GNSS_ERR_CHECKSUM,
+
+ GNSS_ERR_UNKNOWN
+} gnss_err_enum;
+
+typedef int (*gnss_dev_open_func)();
+typedef int (*gnss_dev_close_func)();
+typedef int (*gnss_open_func)(const char *dev);
+typedef int (*gnss_close_func)(int fd);
+typedef int (*gnss_fw_dl_func)(int fd);
+typedef void (*gnss_dl_read_cb_func)(const void *data, int data_len);
+typedef gnss_err_enum (*gnss_set_func)(int fd, const char *cmd, void *cmd_rsp, int cmd_rsp_len);
+typedef void (*gnss_set_cb_func)(const void *data, int data_len);
+
+typedef enum {
+ GNSS_TYPE_6228 = 0,
+ GNSS_TYPE_5311,
+} gnss_id_enum;
+
+typedef enum {
+ GNSS_STATE_CLOSE, // GNSS is closed.
+ GNSS_STATE_CLOSING, // GNSS is closing.
+ GNSS_STATE_OPEN, // GNSS is opened.
+ GNSS_STATE_DOWNLOAD, // GNSS is downloading.
+ GNSS_STATE_READY, // GNSS is ready.
+} gnss_state_enum;
+
+typedef struct {
+ gnss_id_enum gnss_id;
+ char dev_name[32];
+ bool auto_open; // Should auto open gnss?
+ bool auto_dl_fw; // Should download firmware int the first?
+ int fd; // GNSS uart fd.
+ int exit_fd[2]; // Use to exit thread.
+ gnss_state_enum state;
+ uint32 print_port;
+ pthread_t read_pid; // Read NMEA thread.
+
+ // GNSS functions.
+ gnss_dev_open_func gnss_dev_open;
+ gnss_dev_close_func gnss_dev_close;
+ gnss_open_func gnss_open;
+ gnss_close_func gnss_close;
+ gnss_fw_dl_func gnss_fw_dl;
+ gnss_dl_read_cb_func gnss_dl_read_cb;
+ gnss_set_func gnss_set;
+ gnss_set_cb_func gnss_set_cb;
+} gnss_info_t;
+
+#endif /* _GNSS_INFO_H */