优化adc部分的代码开放第3路添加宏控,优化apn部分对name和type重复校验,添加gpio应用层接口(暂时未处理pullsel)

Change-Id: I55574434131b1f73745044a0232e91e9c5f3abac
diff --git a/mbtk/liblynq_lib/src/lynq_data_call.c b/mbtk/liblynq_lib/src/lynq_data_call.c
index 095b41a..33fcefb 100755
--- a/mbtk/liblynq_lib/src/lynq_data_call.c
+++ b/mbtk/liblynq_lib/src/lynq_data_call.c
@@ -267,6 +267,23 @@
     return QSER_RESULT_SUCCESS;
 }
 
+/*Check parameter*/
+int qser_check_apn_name_type(qser_apn_info_s *apn)
+{
+    int pdp_type_tmp = 0;
+    for (;pdp_type_tmp < QSER_APN_NUM; pdp_type_tmp++)
+    {
+        if (strcmp(qser_apn_info[pdp_type_tmp].apn_name, apn->apn_name) == 0 || strcmp(qser_apn_info[pdp_type_tmp].apn_type, apn->apn_type) == 0)
+        {
+            LOGE("[qser_data_call] qser_check_apn_name_type error!");
+            return QSER_RESULT_FAIL;
+        }
+    }
+
+    return QSER_RESULT_SUCCESS;
+}
+
+
 void qser_wan_net_state_change_cb(const void* data, int data_len)
 {
     if(data == NULL || data_len == 0)
@@ -742,6 +759,12 @@
         LOGE("[qser_data_call] apn_name is NULL.");
         return QSER_RESULT_FAIL;
     }
+    /*add name and type verify*/
+    if (qser_check_apn_name_type(apn) < 0)
+    {
+        LOGE("[qser_data_call] check param error.");
+        return QSER_RESULT_FAIL;
+    }
 
 #if 0
     if(memcmp(apn->apn_type, "iot_default", strlen("iot_default")) == 0)
@@ -755,7 +778,7 @@
     char mbtk_auth[32]={0};
     char qser_apn_type[32] = {0};
     mbtk_ip_type_enum pdp_type = MBTK_IP_TYPE_IPV4V6;
-    
+
     if(apn->pdp_type == QSER_APN_PDP_TYPE_IPV4)
     {
         pdp_type = MBTK_IP_TYPE_IP;