[Feature] add GA346 baseline version
Change-Id: Ic62933698569507dcf98240cdf5d9931ae34348f
diff --git a/src/connectivity/gps/2.0/geofenceinf_example/geofence.h b/src/connectivity/gps/2.0/geofenceinf_example/geofence.h
new file mode 100755
index 0000000..f4c5d09
--- /dev/null
+++ b/src/connectivity/gps/2.0/geofenceinf_example/geofence.h
@@ -0,0 +1,178 @@
+#ifndef __GEOFENCE_H__
+#define __GEOFENCE_H__
+
+#pragma pack(push)
+#pragma pack(4)
+
+typedef struct {
+ bool geofence_support;
+}mtk_geofence_client_capability;
+
+typedef struct {
+ bool geofence_support;
+}mtk_geofence_server_capability;
+
+typedef enum {
+ GEOFENCE_CLIENT_CAP,//geofence client capability
+ INIT_GEOFENCE,//Reserved
+ ADD_GEOFENCE_AREA,
+ PAUSE_GEOFENCE,//Reserved
+ RESUME_GEOFENCE,//Reserved
+ REMOVE_GEOFENCE,
+ RECOVER_GEOFENCE,//Reserved
+ CLEAR_GEOFENCE,
+ QUERY_GEOFENCE_NUM
+} mtk_geofence_command;
+
+typedef enum {
+ GEOFENCE_UNKNOWN = 0,
+ GEOFENCE_ENTERED = 1,
+ GEOFENCE_EXITED = 2,
+} mtk_geofence_status;
+
+typedef int mtk_monitor_transition;
+#define MTK_GEOFENCE_ENTER 0x01
+#define MTK_GEOFENCE_EXIT 0x02
+#define MTK_GEOFENCE_UNCERTAIN 0x04//Reserved
+
+typedef struct mtk_geofence_area {
+ double latitude;
+ double longitude;
+ double radius;
+ int latest_state; /*current state(mtk_geofence_status), most cases is GEOFENCE_UNKNOWN*/
+ mtk_monitor_transition monitor_transition; /*bitwise , MTK_GEOFENCE_EXIT/MTK_GEOFENCE_ENTER/MTK_GEOFENCE_UNCERTAIN*/
+ int unknown_timer;/*The time limit after which the UNCERTAIN transition should be triggered. This paramter is defined in milliseconds.*/
+} mtk_geofence_property;
+
+typedef struct mtk_geofence_alert {
+ int id;
+ int alert_state;//mtk_geofence_status
+ double latitude;
+ double longitude;
+ double altitude;
+ double speed;
+ double heading;
+ int h_acc;
+ int h_err_majoraxis;
+ int h_err_minoraxis;
+ int h_err_angle;
+ int hor_conf;
+ double pdop;
+ double hdop;
+ double vdop;
+}mtk_geofence_alert;
+
+typedef struct mtk_gnss_tracking_status {
+ int status; //GNSS service tracking OK = 0,GNSS service tracking failure = -1
+ int year;
+ int month;
+ int day;
+ int hour;
+ int minute;
+ int second;
+}mtk_gnss_tracking_status;
+
+typedef struct {
+ void (*geofence_connection_broken)();
+ void (*geofence_fence_alert_callback)(mtk_geofence_alert *ptr);
+ void (*geofence_tracking_status_callback)(mtk_gnss_tracking_status *ptr);
+ void (*geofence_capability_update)(mtk_geofence_server_capability *cap);
+}mtk_geofence_callback;
+
+#define MTK_GFC_SUCCESS (0)
+#define MTK_GFC_ERROR (-1)
+
+#pragma pack(pop)
+
+/*****************************************************************************
+ * FUNCTION
+ * geofenceinf_add_geofence
+ * DESCRIPTION
+ * add one geofence
+ * PARAMETERS
+ * fence: fence detail information
+ * RETURNS
+ * Success: geofence id, >=1
+ * Fail: -1, create fence fail. -2, insufficient_memory. -3,too many fences
+ *****************************************************************************/
+int geofenceinf_add_geofence(mtk_geofence_property *fence);
+
+/*****************************************************************************
+ * FUNCTION
+ * geofenceinf_remove_geofence
+ * DESCRIPTION
+ * romve one geofence
+ * PARAMETERS
+ * geofence_id: geofence id
+ * RETURNS
+ * MTK_GFC_ERROR
+ * MTK_GFC_SUCCESS
+ *****************************************************************************/
+int geofenceinf_remove_geofence(const int geofence_id) ;
+
+/*****************************************************************************
+ * FUNCTION
+ * geofenceinf_clear_geofences
+ * DESCRIPTION
+ * clear all geofences
+ * PARAMETERS
+ * RETURNS
+ * MTK_GFC_ERROR
+ * MTK_GFC_SUCCESS
+ *****************************************************************************/
+int geofenceinf_clear_geofences(void) ;
+
+/*****************************************************************************
+ * FUNCTION
+ * geofenceinf_query_geofences_num
+ * DESCRIPTION
+ * query geofence numbers that geofence feature support
+ * PARAMETERS
+ * RETURNS
+ * MTK_GFC_ERROR(-1)
+ * number: geofence numbers, >= 1
+ *****************************************************************************/
+int geofenceinf_query_geofences_num(void);
+
+/*****************************************************************************
+ * FUNCTION
+ * geofenceinf_client_register
+ * DESCRIPTION
+ * register geofence client
+ * PARAMETERS
+ * name: client name
+ * mtk_geofence_callback *callback: data messsage callback function
+ * RETURNS
+ * MTK_GFC_ERROR(-1), means error
+ * fd:file descriptor
+ *****************************************************************************/
+int geofenceinf_client_register(const char* name, mtk_geofence_callback *callback);
+
+/*****************************************************************************
+ * FUNCTION
+ * geofenceinf_client_capability_config
+ * DESCRIPTION
+ * config client capability, and send to geofence server
+ * PARAMETERS
+ * cap: client capability
+ * RETURNS
+ * MTK_GFC_ERROR
+ * MTK_GFC_SUCCESS
+ *****************************************************************************/
+int geofenceinf_client_capability_config(mtk_geofence_client_capability *cap);
+
+/*****************************************************************************
+ * FUNCTION
+ * mnl2geofence_hdlr
+ * DESCRIPTION
+ * mnl to geofence adaptor handle function
+ * PARAMETERS
+ * fd:file descriptor
+ * mtk_geofence_callback *callback: data messsage callback function
+ * RETURNS
+ * MTK_GFC_ERROR
+ * MTK_GFC_SUCCESS
+ *****************************************************************************/
+int mnl2geofence_hdlr (int fd, mtk_geofence_callback *callback);
+
+#endif