[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/lib/libatext/ext_zcat_func.c b/ap/lib/libatext/ext_zcat_func.c
new file mode 100644
index 0000000..11aaf45
--- /dev/null
+++ b/ap/lib/libatext/ext_zcat_func.c
@@ -0,0 +1,205 @@
+/**
+ *
+ * @file ext_zcat_func.c
+ * @brief
+ * This file is part of ZCAT.
+ * ZCATÄ£¿éÏà¹ØATÃüÁî
+ *
+ * @details
+ * @author Tools Team.
+ * @email
+ * @copyright Copyright (C) 2013 Sanechips Technology Co., Ltd.
+ * @warning
+ * @date 2019/02/02
+ * @version 1.2
+ * @pre
+ * @post
+ *
+ * @par
+ * Change History :
+ * ---------------------------------------------------------------------------
+ * date version author description
+ * ---------------------------------------------------------------------------
+ * 2017/05/22 1.0 hou.bing Create file
+ * 2019/01/15 1.1 jiang.fenglin Ôö¼ÓÉèÖÃ/²éѯzcat_usblogÃüÁî
+ * 2019/02/02 1.2 jiang.fenglin ÐÞ¸Ä×¢ÊÍ·½Ê½Îªdoxygen
+ * 2019/07/08 1.3 jiang.fenglin Ôö¼ÓAPFS/CPFSģʽ
+ * ---------------------------------------------------------------------------
+ *
+ *
+ */
+
+
+#if (APP_OS_TYPE == APP_OS_LINUX)
+#include "ext_regist.h"
+#include "at_utils.h"
+#include "softap_api.h"
+#include "zxic_errno.h"
+#include "nv_api.h"
+//#include "nvserver.h"
+
+#ifndef max
+#define max(a, b) (((a) > (b)) ? (a) : (b))
+#endif
+
+#ifndef min
+#define min(a, b) (((a) < (b)) ? (a) : (b))
+#endif
+
+
+/**
+ * º¯ÊýʵÏÖ
+ */
+
+int ext_zcat_set_mode(int at_fd,char * at_paras,void **res_msg,int * res_msglen)
+{
+ char zcat_mode[512] = {0};
+ //E_AT_PARSE parseRst = AT_PARSE_SUCCESS;
+
+ printf("ext_zcat_set %s,len is %d\n",at_paras,strlen(at_paras));
+ memcpy(zcat_mode,at_paras,min(strlen(at_paras), sizeof(zcat_mode) - 1));
+ printf("zcat_mode is %s",zcat_mode);
+ if(0==strcmp(zcat_mode,"APUSB") || 0==strcmp(zcat_mode,"APNET") || 0==strcmp(zcat_mode,"APTF") \
+ || 0==strcmp(zcat_mode,"APFS") || 0==strcmp(zcat_mode,"CPFS") \
+ || 0==strcmp(zcat_mode,"CPUSB") || 0==strcmp(zcat_mode,"CPTF"))
+ {
+ sc_cfg_set("zcat_mode",zcat_mode);
+ sc_cfg_save();
+ nv_set_item("cfg","zcat_mode", zcat_mode,1);
+ nv_commit("cfg");
+ }
+ else
+ {
+ *res_msg = at_err_build(ATERR_PARAM_INVALID);
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
+ }
+
+ *res_msg = at_ok_build();
+ *res_msglen = strlen(*res_msg);
+
+ return AT_END;
+ #if 0
+ switch(iNetcardType)
+ {
+ case 0:
+ {
+ nv_set_item(NV_RO,"forcenetcard_type", "force_ndis",1);
+ break;
+ }
+ case 1:
+ {
+ nv_set_item(NV_RO,"forcenetcard_type", "force_ecm",1);
+ break;
+ }
+ case 2:
+ {
+ nv_set_item(NV_RO,"forcenetcard_type", "force_mbim",1);
+ break;
+ }
+ case 3:
+ {
+ nv_set_item(NV_RO,"forcenetcard_type", "force_rndis",1);
+ break;
+ }
+ default:
+ {
+ *res_msg = at_err_build(ATERR_PARAM_INVALID);
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
+ }
+ }
+ nv_commit(NV_RO);
+
+ *res_msg = at_ok_build();
+ *res_msglen = strlen(*res_msg);
+
+ return AT_END;
+ #endif
+}
+
+
+int ext_zcat_get_mode(int at_fd,char * at_paras,void **res_msg,int * res_msglen)
+{
+ char zcat_mode[512] = {0};
+ printf("ext_zcat_get %s\n",at_paras);
+
+ if(-1 == sc_cfg_get("zcat_mode", zcat_mode, sizeof(zcat_mode)))
+ {
+ *res_msg = at_err_build(ATERR_PROC_FAILED);
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
+ }
+ nv_get_item("cfg", "zcat_mode", zcat_mode, sizeof(zcat_mode));
+ printf("zcat_mode is %s ,%d",zcat_mode,strlen(zcat_mode));
+ *res_msg = at_query_result_build("ZCAT_MODE",zcat_mode);
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
+
+}
+
+
+int ext_zcat_set_usblog(int at_fd,char * at_paras,void **res_msg,int * res_msglen)
+{
+ char zcat_usblog[512] = {0};
+ //E_AT_PARSE parseRst = AT_PARSE_SUCCESS;
+
+ printf("ext_zcat_set %s,len is %d\n", at_paras, strlen(at_paras));
+ memcpy(zcat_usblog, at_paras, min(strlen(at_paras), sizeof(zcat_usblog)-1));
+ printf("zcat_usblog is %s", zcat_usblog);
+ if(strstr(zcat_usblog, "tty"))
+ {
+ sc_cfg_set("zcat_usblog", zcat_usblog);
+ sc_cfg_save();
+ nv_set_item("cfg", "zcat_usblog", zcat_usblog, 1);
+ nv_commit("cfg");
+ }
+ else
+ {
+ *res_msg = at_err_build(ATERR_PARAM_INVALID);
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
+ }
+
+ *res_msg = at_ok_build();
+ *res_msglen = strlen(*res_msg);
+
+ return AT_END;
+}
+
+int ext_zcat_get_usblog(int at_fd,char * at_paras,void **res_msg,int * res_msglen)
+{
+ char zcat_usblog[512] = {0};
+ printf("ext_zcat_get %s\n", at_paras);
+
+ if(-1 == sc_cfg_get("zcat_usblog", zcat_usblog, sizeof(zcat_usblog)))
+ {
+ *res_msg = at_err_build(ATERR_PROC_FAILED);
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
+ }
+
+ nv_get_item("cfg", "zcat_usblog", zcat_usblog, sizeof(zcat_usblog));
+ printf("zcat_usblog is %s ,%d",zcat_usblog,strlen(zcat_usblog));
+ *res_msg = at_query_result_build("ZCAT_USBLOG",zcat_usblog);
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
+
+}
+
+
+int ext_zcat_regist(void)
+{
+
+ register_serv_func2("zcatmode=",0,0,0, ext_zcat_set_mode, NULL);
+ register_serv_func2("zcatmode?",0,0,0, ext_zcat_get_mode, NULL);
+
+ register_serv_func2("zcatusblog=",0,0,0,ext_zcat_set_usblog, NULL);
+ register_serv_func2("zcatusblog?",0,0,0,ext_zcat_get_usblog, NULL);
+
+ return 0;
+
+}
+
+#endif
+