in sim70x0/cellular_sim70x0_urc_handler.c [1036:1131]
CellularPktStatus_t _Cellular_ParseSimstat( char * pInputStr,
CellularSimCardStatus_t * pSimStuts )
{
/*Handling +CPIN: <state> */
CellularPktStatus_t pktStatus = CELLULAR_PKT_STATUS_OK;
CellularATError_t atCoreStatus = CELLULAR_AT_SUCCESS;
char * pToken = NULL;
char * pLocalInputStr = pInputStr;
if( ( pInputStr == NULL ) || ( strlen( pInputStr ) == 0U ) ||
( strlen( pInputStr ) < 2U ) || ( pSimStuts == NULL ) )
{
LogError( ( "_Cellular_ProcessQsimstat Input data is invalid %s", pInputStr ) );
pktStatus = CELLULAR_PKT_STATUS_BAD_PARAM;
}
else
{
#if 0
atCoreStatus = Cellular_ATGetNextTok( &pLocalInputStr, &pToken );
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
LogDebug( ( "URC Enable: %s", pToken ) );
atCoreStatus = Cellular_ATGetNextTok( &pLocalInputStr, &pToken );
}
#endif
pToken = pLocalInputStr;
atCoreStatus = Cellular_ATRemoveAllWhiteSpaces( pToken );
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
LogDebug( ( " Sim status: %s", pToken ) );
if( strcmp( pToken, "READY" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_READY;
}
else if( strcmp( pToken, "NOT READY" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_LOCK_UNKNOWN;
}
else if( strcmp( pToken, "SIM PIN" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_PIN;
}
else if( strcmp( pToken, "SIM PUK" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_PUK;
}
else if( strcmp( pToken, "PH_SIM PIN" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_PH_NET_PIN;
}
else if( strcmp( pToken, "PH_SIM PUK" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_PH_NET_PUK;
}
else if( strcmp( pToken, "PH_NET PIN" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_PH_NETSUB_PIN;
}
else if( strcmp( pToken, "SIM PIN2" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_PIN2;
}
else if( strcmp( pToken, "SIM PUK2" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_INSERTED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_PUK2;
}
else if( strcmp( pToken, "NOT INSERT" ) == 0 )
{
pSimStuts->simCardState = CELLULAR_SIM_CARD_REMOVED;
pSimStuts->simCardLockState = CELLULAR_SIM_CARD_LOCK_UNKNOWN;
}
else
{
LogError( ( "Error in processing SIM state. token %s", pToken ) );
atCoreStatus = CELLULAR_AT_ERROR;
}
}
pktStatus = _Cellular_TranslateAtCoreStatus( atCoreStatus );
}
return pktStatus;
}