in qgsm/cellular_qgsm_api.c [845:904]
static CellularPktStatus_t _Cellular_RecvFuncGetSimLockStatus( CellularContext_t * pContext,
const CellularATCommandResponse_t * pAtResp,
void * pData,
uint16_t dataLen )
{
char * pToken = NULL, * pInputStr = NULL;
CellularSimCardLockState_t * pSimLockState = NULL;
CellularPktStatus_t pktStatus = CELLULAR_PKT_STATUS_OK;
CellularATError_t atCoreStatus = CELLULAR_AT_SUCCESS;
if( pContext == NULL )
{
pktStatus = CELLULAR_PKT_STATUS_INVALID_HANDLE;
}
else if( ( pAtResp == NULL ) || ( pAtResp->pItm == NULL ) || ( pAtResp->pItm->pLine == NULL ) ||
( pData == NULL ) || ( dataLen != sizeof( CellularSimCardLockState_t ) ) )
{
LogError( ( " Get SIM lock State: Response data is invalid" ) );
pktStatus = CELLULAR_PKT_STATUS_BAD_PARAM;
}
else
{
pInputStr = pAtResp->pItm->pLine;
pSimLockState = ( CellularSimCardLockState_t * ) pData;
if( strlen( pInputStr ) == 0U )
{
LogError( ( "Get SIM lock State: Input data is invalid" ) );
pktStatus = CELLULAR_PKT_STATUS_FAILURE;
}
}
if( pktStatus == CELLULAR_PKT_STATUS_OK )
{
atCoreStatus = Cellular_ATRemoveAllWhiteSpaces( pInputStr );
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
atCoreStatus = Cellular_ATRemovePrefix( &pInputStr );
}
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
atCoreStatus = Cellular_ATGetNextTok( &pInputStr, &pToken );
}
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
LogDebug( ( "SIM Lock State: %s", pToken ) );
*pSimLockState = _getSimLockState( pToken );
}
if( atCoreStatus != CELLULAR_AT_SUCCESS )
{
pktStatus = _Cellular_TranslateAtCoreStatus( atCoreStatus );
}
}
return pktStatus;
}