[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/lib/libvsim/ght_vsim_api.c b/ap/lib/libvsim/ght_vsim_api.c
new file mode 100755
index 0000000..5d2647f
--- /dev/null
+++ b/ap/lib/libvsim/ght_vsim_api.c
@@ -0,0 +1,411 @@
+#include "ght_vsim_api.h"

+

+//********2023-01-13***********//

+

+//================================================

+

+typedef int32_t (*zte_mdm_event_ind_callback)(E_MODEM_EVENT_ID event_id, void *ind_data, uint32_t  ind_data_len);

+/**********************ZTE funcation Declartion here************

+*/

+extern int32_t zte_mdm_event_regist(zte_mdm_event_ind_callback ind_cb);

+

+extern int32_t zte_atVsimInit(VSIM_COMMAND vsim_apdu_process_fn, uint8_t nSimID);

+

+extern int32_t zte_atVsimClose(VSIM_COMMAND vsim_apdu_process_fn, uint8_t nSimID);

+

+extern int32_t zte_atVsimReset(void);

+

+//extern int16_t zte_SetSimWorkMode(SimTypeInSlot_t SimType, uint8_t nSoltID);

+

+//extern int16_t zte_GetSimWorkMode(SimTypeInSlot_t *SimType, uint8_t nSoltID);

+

+extern int32_t zte_SetGTDUALSIM(uint8_t nSimID);

+

+extern int32_t zte_GetGTDUALSIM(uint8_t *nSimID);

+

+extern int32_t zte_SetGTDATASIM(uint8_t nSimID);

+

+extern int32_t zte_GetGTDATASIM(uint8_t *nSimID);

+

+extern int32_t zte_SetCfunMode(uint8_t mode);

+

+extern int32_t zte_GetCfunMode(uint8_t *mode);

+

+extern int32_t zte_SetIMEIbySimId(uint8_t *imei, uint8_t imei_len, uint8_t nSimID);

+

+extern int32_t zte_GetIMEIbySimId(uint8_t *imei, uint8_t imei_len, uint8_t nSimID);

+

+extern int32_t zte_GetCCIDbySimId(uint8_t *ccid, uint8_t ccid_len, uint8_t nSimID);

+

+extern int32_t zte_GetMCCMNCbySimId(char *mcc, char *mnc, uint8_t nSimID);

+

+extern int32_t zte_SwitchSimHandle(uint8_t mode);

+

+extern int32_t zte_GetCSQbySimId(int32_t *rssi, int32_t *ber, uint8_t nSimID);

+

+extern int32_t zte_GetRegInfobySimid(RegInfo_t *reg_info, uint8_t nSimID);

+

+extern int32_t zte_GetCellInfobySimId(CellInfo_t *pcellinfo, uint8_t nSimID);

+

+extern int32_t zte_GetNetInfobySimId(NetInfo_t *pNetInfo, uint8_t nSimID);

+

+extern int32_t zte_SetAPNbySimID(Data_call_config_info_t *data_call, uint8_t nSimID);

+

+extern int32_t zte_StartDataCallbySimId(Data_call_config_info_t *data_call, uint8_t nSimID);

+

+extern int32_t zte_StopDataCallbySimId(uint8_t profile_id, uint8_t nSimID);

+

+extern int32_t zte_GetDataAddrbySimID(uint8_t profile_id, Data_call_addr_info_list_t *addr_list, uint8_t nSimID);

+

+extern int32_t zte_GetSimStatusbySimId(E_SIM_STATUS *sim_status, uint8_t nSimID);

+

+extern int32_t zte_SendATbySimId(char *req_at, char *info_fmt, void **pval, uint8_t nSimID);

+

+/*

+*************************ZTE API Declartion end*************************/

+

+FIBO_MODEM_EVENT g_ind_cb;

+

+int32_t fibo_mdm_event_ind_cb(E_MODEM_EVENT_ID event_id, void *ind_data, uint32_t  ind_data_len)

+{

+	if(g_ind_cb)

+		g_ind_cb(event_id, ind_data, ind_data_len);

+	

+	return 0;

+}

+

+

+/***********************The Fibo Public APIs Defination area*********************

+*/

+int32_t fibo_mdm_event_regist(FIBO_MODEM_EVENT ind_cb)

+{

+	g_ind_cb = ind_cb;

+	return 0;

+}

+

+/**********************************************************

+** Function Name: fibo_vsim_init

+** Description:

+**     VSIM³õʼ»¯£¬ÐèÒª½«APDU»Øµ÷º¯Êý×÷ΪÈë²Î´«Èë¸ø modem;

+**

+***********************************************************/

+

+void fibo_vsim_init(VSIM_COMMAND vsim_apdu_process, uint8_t nSimID)

+{

+    printf("[VSIM] fibo_vsim_init,%d", nSimID);

+	zte_mdm_event_regist(fibo_mdm_event_ind_cb);

+    zte_atVsimInit(vsim_apdu_process, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_vsim_close

+** Description:

+**     ¹Ø±ÕVSIM;

+**

+***********************************************************/

+

+void fibo_vsim_close(VSIM_COMMAND vsim_apdu_process, uint8_t nSimID)

+{

+    printf("[VSIM] fibo_vsim_close,%d", nSimID);

+    zte_atVsimClose(vsim_apdu_process, nSimID);

+}

+

+/**************************************************************

+** Function Name: fibo_set_sim_workmode

+** Description:

+**     Õë¶ÔË«¿¨Ä£×飬ÉèÖÃË«¿¨²ÛÖеĿ¨ÀàÐÍ£¬½ø¶øÄܹ»ÊÊÅäÏàÓ¦Ó¦ÓóÌÐò¹¦ÄÜ;

+**

+***************************************************************/

+

+int16_t fibo_set_sim_workmode(SimTypeInSlot_t SimType, uint8_t nSoltID)

+{

+    return 0;

+}

+

+/**************************************************************

+** Function Name: fibo_get_sim_workmode

+** Description:

+**     Õë¶ÔË«¿¨Ä£×飬ÉèÖÃË«¿¨²ÛÖеĿ¨ÀàÐÍ£¬½ø¶øÄܹ»ÊÊÅäÏàÓ¦Ó¦ÓóÌÐò¹¦ÄÜ;

+**

+***************************************************************/

+

+int16_t fibo_get_sim_workmode(SimTypeInSlot_t *SimType, uint8_t nSoltID)

+{

+    return 0;

+}

+

+/**************************************************************

+** Function Name: fibo_set_dualsim

+** Description:

+**     Ë«¿¨Çл»ÅäÖýӿڣ¬¸ù¾ÝÈë²ÎSimIDÇл»µ½¶ÔÓ¦µÄ¹¤×÷¿¨£¬SIMÏà¹ØATÒ²ÓëÖ®Çл»;

+**

+***************************************************************/

+

+int32_t fibo_set_dualsim(uint8_t nSimID)

+{

+    return zte_SetGTDUALSIM(nSimID);

+}

+

+

+/**************************************************************

+** Function Name: fibo_set_dualsim

+** Description:

+**     Ë«¿¨Çл»»ñÈ¡½Ó¿Ú£¬»ñÈ¡µ±Ç°¹¤×÷µÄSIM ID;

+**

+***************************************************************/

+

+int32_t fibo_get_dualsim(uint8_t *nSimID)

+{

+    return zte_GetGTDUALSIM(nSimID);

+}

+

+/**************************************************************

+** Function Name: fibo_set_dualsim

+** Description:

+**     ÅäÖÃÊý¾Ý¿¨ÎªnSimIDÖ¸ÏòµÄ¿¨;

+**

+***************************************************************/

+

+int32_t fibo_set_datasim(uint8_t nSimID)

+{

+    return zte_SetGTDATASIM(nSimID);

+}

+

+/**************************************************************

+** Function Name: fibo_get_datasim

+** Description:

+**     »ñÈ¡µ±Ç°ÅäÖõÄÊý¾Ý¿¨ID;

+**

+***************************************************************/

+

+int32_t fibo_get_datasim(uint8_t *nSimID)

+{

+    return zte_GetGTDATASIM(nSimID);

+}

+

+

+/**********************************************************

+** Function Name: fibo_set_IMEI_by_simid

+** Description:

+**     ÉèÖÃVSIM¶ÔÓ¦µÄIMEI;

+**

+** Note: É豸IMEI£¬µôµç²»±£´æ£¬ÔÚvsim_initÖ®ºó;

+***********************************************************/

+

+int32_t fibo_set_IMEI_by_simid(uint8_t *imei, uint8_t imei_len, uint8_t nSimID)

+{

+    printf("[VSIM] fibo_set_imei,%d", nSimID);

+    return zte_SetIMEIbySimId(imei, imei_len, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_set_IMEI_by_simid

+** Description:

+**     »ñÈ¡VSIM¶ÔÓ¦µÄIMEI;

+**

+** Note: É豸IMEI£¬µôµç²»±£´æ£¬ÔÚvsim_initÖ®ºó;

+***********************************************************/

+

+int32_t fibo_get_IMEI_by_simid(uint8_t *imei, uint8_t imei_len, uint8_t nSimID)

+{

+    printf("[VSIM] fibo_get_imei,%d", nSimID);

+    return zte_GetIMEIbySimId(imei, imei_len, nSimID);

+}

+

+

+/**********************************************************

+** Function Name: fibo_get_CCID_by_simid

+** Description:

+**     »ñȡָ¶¨SIMµÄICCID;

+**

+***********************************************************/

+

+int32_t fibo_get_CCID_by_simid(uint8_t *ccid, uint8_t ccid_len, uint8_t nSimID)

+{

+	printf("[VSIM]fibo_get_CCID_by_simid %d", nSimID);

+	return zte_GetCCIDbySimId(ccid, ccid_len, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_xiaoshui_get_mcc_mnc

+** Description:

+**     ¿Í»§¶¨ÖÆÐèÇó½Ó¿Ú£¬»ñÈ¡·þÎñÍøÂçMCCºÍMNC;

+**

+***********************************************************/

+

+int32_t fibo_get_MCC_MNC_by_simid(char *mcc, char *mnc, uint8_t nSimID)

+{

+	return zte_GetMCCMNCbySimId(mcc, mnc, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_switch_sim_handle

+** Description:

+**     µ÷ÓøýӿڽøÐÐVSIMÇл»£¬Í¬Ê±Íê³ÉPDPÁ¬½Ó;

+**     mode: 0¹Ø±ÕVSIM, 1¿ªÆôVSIM;

+**  Note: ÈôÊǵ÷ÓÃfibo_switch_sim_handle(1)£¬Ö®ºó´æÔÚµ÷ÓÃfibo_set_dualsim(0)

+**  µÄÇé¿ö£¬´Ëʱfibo_set_dualsim(0)½öÓÃÓÚÁÙʱÇп¨µ½ÊµÌ忨

+***********************************************************/

+

+int32_t fibo_switch_sim_handle(uint8_t mode)

+{

+    return zte_SwitchSimHandle(mode);

+}

+

+/**********************************************************

+** Function Name: fibo_set_cfun_mode

+** Description:

+**     ÉèÖÃCFUN²ÎÊý;

+**

+***********************************************************/

+

+int32_t fibo_set_cfun_mode(uint8_t mode)

+{

+	return zte_SetCfunMode(mode);

+    //¹ãºÍͨͬ²½Æä¶þ´Î¿ª·¢³ÌÐò²ÎÊý

+}

+

+/**********************************************************

+** Function Name: fibo_get_cfun_mode

+** Description:

+**     »ñÈ¡CFUN²ÎÊý;

+**

+***********************************************************/

+

+int32_t fibo_get_cfun_mode(uint8_t *mode)

+{

+	return zte_GetCfunMode(mode);

+    //¹ãºÍͨͬ²½Æä¶þ´Î¿ª·¢³ÌÐò²ÎÊý

+}

+

+

+/**********************************************************

+** Function Name: fibo_set_SysReset

+** Description:

+**     ÖØÆôÉ豸;

+**

+***********************************************************/

+

+int32_t fibo_set_SysReset()

+{

+	zte_atVsimReset();

+    //modem cfun=0¹Ø»ú+ϵͳµ÷Óùػú

+    //ϵͳµ÷Óùػú

+    //ÆäËû¹ãºÍͨʵÏÖ

+    return 0;

+}

+

+/**********************************************************

+** Function Name: fibo_get_csq_by_simid

+** Description:

+**     »ñÈ¡ÓëSIM IDÏà¹ØµÄCSQ;

+**

+***********************************************************/

+

+int32_t fibo_get_CSQ_by_simid(int32_t *rssi, int32_t *ber, uint8_t nSimID)

+{

+	return zte_GetCSQbySimId(rssi, ber, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_getRegInfo

+** Description:

+**     »ñÈ¡ÓëSIM IDÏà¹ØµÄRegInfo;

+**

+***********************************************************/

+

+int32_t fibo_get_RegInfo_by_simid(RegInfo_t *reg_info, uint8_t nSimID)

+{

+    return zte_GetRegInfobySimid(reg_info, nSimID);

+}

+

+

+/**********************************************************

+** Function Name: fibo_getCellInfo

+** Description:

+**     »ñÈ¡ÓëSIM IDÏà¹ØµÄCellInfo;

+**

+***********************************************************/

+

+int32_t fibo_get_CellInfo_by_simid(CellInfo_t *pcellinfo, uint8_t nSimID)

+{

+    return zte_GetCellInfobySimId(pcellinfo, nSimID);

+}

+

+

+/**********************************************************

+** Function Name: fibo_get_NetInfo_by_simid

+** Description:

+**     »ñÈ¡ÓëSIM IDÏà¹ØµÄ<´ýÈ·ÈÏ>;

+**

+***********************************************************/

+

+int32_t fibo_get_NetInfo_by_simid(NetInfo_t *pNetInfo, uint8_t nSimID)

+{

+    return zte_GetNetInfobySimId(pNetInfo, nSimID);;

+}

+

+/**********************************************************

+** Function Name: fibo_set_APN_by_simid

+** Description:

+**     ÅäÖÃÓÃÓÚPDP¼¤»îµÄprofileÐÅÏ¢;

+**

+***********************************************************/

+

+int32_t fibo_set_APN_by_simid(Data_call_config_info_t *data_call, uint8_t nSimID)

+{

+    return zte_SetAPNbySimID(data_call, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_start_Data_Call_by_simid

+** Description:

+**     ¼¤»îÖ¸¶¨profile PDPÁ¬½Ó;

+**

+***********************************************************/

+

+int32_t fibo_start_Data_Call_by_simid(Data_call_config_info_t *data_call, uint8_t rndis_flag, uint8_t nSimID)

+{

+    return zte_StartDataCallbySimId(data_call, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_stop_Data_Call_by_simid

+** Description:

+**     È¥¼¤»îÖ¸¶¨profile PDPÁ¬½Ó;

+**

+***********************************************************/

+

+int32_t fibo_stop_Data_Call_by_simid(uint8_t profile_id, uint8_t rndis_flag, uint8_t nSimID)

+{

+    return zte_StopDataCallbySimId(profile_id, nSimID);

+}

+

+/**********************************************************

+** Function Name: fibo_get_Data_Addr_by_simid

+** Description:

+**     »ñȡָ¶¨profileµÄµØÖ·ÐÅÏ¢;

+**

+***********************************************************/

+

+int32_t fibo_get_Data_Addr_by_simid(uint8_t profile_id, Data_call_addr_info_list_t *addr_list, uint8_t nSimID)

+{

+    return zte_GetDataAddrbySimID(profile_id, addr_list, nSimID);

+}

+

+

+int32_t fibo_get_SIM_Status_by_simid(E_SIM_STATUS *sim_status, uint8_t nSimID)

+{

+    return zte_GetSimStatusbySimId(sim_status, nSimID);

+}

+

+int32_t fibo_send_AT_by_simid(char *req_at, char *info_fmt, void **pval, uint8_t nSimID)

+{

+    return zte_SendATbySimId(req_at, info_fmt, pval, nSimID);

+}

+

+

+/*

+**********************The Public APIs Defination area end**********************/

+

+