Add toolchain and mbtk source
Change-Id: Ie12546301367ea59240bf23d5e184ad7e36e40b3
diff --git a/mbtk/lynq_lib/src/lynq_gnss.c b/mbtk/lynq_lib/src/lynq_gnss.c
new file mode 100755
index 0000000..b746c31
--- /dev/null
+++ b/mbtk/lynq_lib/src/lynq_gnss.c
@@ -0,0 +1,151 @@
+/**
+ * \file gnss_test.c
+ * \brief A Documented file.
+ *
+ * Detailed description
+ * \Author: Sniper <e190@163.com>
+ * \Version: 1.0.0
+ * \Date: 2022-03-26
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <errno.h>
+#include <termios.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+#include "mbtk_type.h"
+#include "mbtk_gnss.h"
+#include "lynq/lynq_gnss.h"
+
+static mbtk_gnss_client_handle _gnss_handle = 0;
+
+static lynq_gnss_rx_ind_msg_handler_t handler_ptr = NULL;
+
+void lynq_gnss_handler_function
+(
+ mbtk_gnss_client_handle h_loc,
+ int e_msg_id,
+ void *pv_data,
+ void *context_ptr
+)
+{
+ if(NULL == handler_ptr)
+ return;
+
+ if(E_LYNQ_LOC_MSG_ID_NMEA_INFO == e_msg_id) {
+ handler_ptr(h_loc, e_msg_id, pv_data, context_ptr);
+ } else {
+ }
+}
+
+//该函数用于进行GNSS初始化
+int lynq_gnss_init(void)
+{
+ int ret=0;
+
+ ret = mbtk_gnss_client_init(&_gnss_handle);
+ if(ret < 0) {
+ printf("mopen_gnss_client_init FAIL. ret:%d\n",ret);
+ return -1;
+ }
+
+ return 0;
+}
+
+//该函数用于取消GNSS初始化
+int lynq_gnss_deinit(void)
+{
+ int ret;
+ if(0 == _gnss_handle) {
+ return -1;
+ }
+
+ ret = mbtk_gnss_client_deinit(_gnss_handle);
+ if(ret < 0) {
+ printf("mopen_gnss_client_deinit FAIL. ret:%d\n",ret);
+ return -1;
+ }
+
+ _gnss_handle = 0;
+ return 0;
+}
+
+//该函数用于GNSS回调函数初始化
+
+int lynq_gnss_callback_reg(lynq_gnss_rx_ind_msg_handler_t handlerPtr)
+{
+ int ret;
+
+ if(0 == _gnss_handle) {
+ return -1;
+ }
+ mbtk_gnss_print_version(_gnss_handle);
+
+ ret = mbtk_gnss_add_rx_msg_handler(_gnss_handle, lynq_gnss_handler_function);
+ if(0 == ret && handlerPtr)
+ handler_ptr = handlerPtr;
+ else
+ return -1;
+ return 0;
+}
+
+//该函数用于启动GNSS。
+int lynq_gnss_start(void)
+{
+ if(0 == _gnss_handle) {
+ return -1;
+ }
+
+ mbtk_gnss_set_mode(_gnss_handle, 0);
+ return mbtk_gnss_set_mode(_gnss_handle, 3);
+}
+
+//该函数用于关闭GNSS。
+int lynq_gnss_stop(void)
+{
+ if(0 == _gnss_handle) {
+ return -1;
+ }
+
+ return mbtk_gnss_set_mode(_gnss_handle, 0);
+}
+
+
+int lynq_gnss_agps_dataconnopen(void)
+{
+ int ret;
+
+ ret = mbtk_gnss_download_tle();
+ if(ret)
+ {
+ printf("%s: download injects failed!!\n", __FUNCTION__);
+ return -1;
+ }
+ return mbtk_gnss_injects_aidpos(_gnss_handle);
+}
+
+int lynq_gnss_dev_reset(void)
+{
+ int ret = 0;
+ if(_gnss_handle < 0)
+ {
+ return -1;
+ }
+ ret = mbtk_gnss_dev_reset(_gnss_handle, 0, 0);
+ return ret;
+}
+
+int lynq_gnss_enable_glonass(void)
+{
+ mbtk_gnss_firmware_update();
+ return 0;
+}