使用示例
## 使用示例
```
#include <cfw_prv.h> //查询、设置 SIM 卡状态需包含此头文件
if (CFW_GetSimStatus(0) == 0x01)
{
//查询 SIM 卡状态,且 SIM 卡状态正常
}
CFW_SetSimStatus(0, CFW_SIM_NORMAL); //设置 SIM 卡状态为正常状态
if (CFW_GetSimType(nSim) == 1) //USIM card
{
//查询 SIM 卡类型,且 SIM 卡为 USIM card
}
UINT8 *pICCID = CFW_GetICCID(nSim); //查询 SIM 卡的 CCID
COS_LOGI(0x10004396, "pICCID =%x\n", pICCID);
UINT8 nImeiLen = 0;
UINT8 ret = 0;
UINT8 nImeiD[16] = {
0x00,
};
CFW_EmodGetIMEI(nImei, &nImeiLen, 0); //查询设备 IMEI
ret = CFW_EmodSaveIMEI(nImeiD, AT_StrLen(nImeiD), 0); //设置设备的 IMEI
if (1 != ret )//判断返回值,并对异常情况做处理
{
COS_LOGI(0x0810099d, "ERROR set issue IMEI\n");
return ERR_SUCCESS;
}
UINT8 nPreIMSI[12]= {
0x00,
};
UINT32 nRet = 0;
nRet = CFW_CfgGetIMSI(nPreIMSI, 0); //查询 SIM 卡的 IMSI
if (0 != nRet)//判断返回值,并对异常情况做处理
{
COS_LOGI(0x0810099d, "ERROR get issue IMSI\n");
return ERR_SUCCESS;
}
nRet = CFW_CfgSetIMSI(nPreIMSI, 0); //设置 SIM 卡的 IMSI
if (0 != nRet) //判断返回值,并对异常情况做处理
{
COS_LOGI(0x0810099d, "ERROR set issue IMSI\n");
return ERR_SUCCESS;
}
UINT8 nSignalLevel = 0;
UINT8 nBitError = 0;
nbiot_atGetUeRssiAndBer(&nSignalLevel, &nBitError); //获取信号强度和误码
UINT32 Ret = 0;
UINT8 uData = 1;
CFW_CfgSetNwStatus(uData, 0);//设置网络注册使能状态
if (0 != Ret) //判断返回值,并对异常情况做处理
{
COS_LOGI(0x0810099d, "ERROR set nwstatus\n");
return ERR_SUCCESS;
}
UINT8 nStatusURC = 0x0;
CFW_CfgGetNwStatus(&nStatusURC, 0);//查询网络注册使能状态
if (0 != Ret) //判断返回值,并对异常情况做处理
{
COS_LOGI(0x0810099d, "ERROR get nwstatus\n");
return ERR_SUCCESS;
}
CFW_NW_STATUS_INFO nStatusInfo;
int ret;
ret = CFW_NwGetStatus(&nStatusInfo, nSim);
if (0 == ret)//返回值成功的情况下
{
COS_LOGI(0x100048f5, "+CREG: nStatus %d\n\r", nStatusInfo.nStatus);//网络注册情况
COS_LOGI(0x100048f5, "%02x%02x", nStatusInfo.nAreaCode[3], nStatusInfo.nAreaCode[4]);/*
位置区编号*/
COS_LOGI(0x100048f5, "%02x%02x", nStatusInfo.nCellId[0], nStatusInfo.nCellId[1]);/*小区编号
*/
}
CFW_EMOD_LOCT_PRODUCT_INFO sProInfo = {0,};
CFW_EmodGetProductInfo(&sProInfo); //获取序列号
int i;
for(i=0; i<64; i++) /*利用 for 循环对序列号数组中的数字进行逐个输出,序列号数组
长度为 64,循环 64 次即可*/
COS_LOGI(0x10004396, "%d", sProInfo.nBoardSN[i]);
UINT32 basebandVersion;
basebandVersion = CFW_EmodGetBaseBandVersion();//获取基带版本信息
```