in modules/hl7802/cellular_hl7802_api.c [694:796]
static CellularATError_t parseEidrxToken( char * pToken,
uint8_t tokenIndex,
CellularEidrxSettingsList_t * pEidrxSettingsList,
uint8_t count )
{
int32_t tempValue = 0;
CellularATError_t atCoreStatus = CELLULAR_AT_SUCCESS;
switch( tokenIndex )
{
case CELLULAR_CEDRXS_POS_ACT:
atCoreStatus = Cellular_ATStrtoi( pToken, 10, &tempValue );
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
if( ( tempValue >= 0 ) &&
( tempValue <= ( int32_t ) UINT8_MAX ) )
{
pEidrxSettingsList->eidrxList[ count ].mode = ( uint8_t ) tempValue;
}
else
{
LogError( ( "Error in processing mode value. Token %s", pToken ) );
atCoreStatus = CELLULAR_AT_ERROR;
}
}
break;
case CELLULAR_CEDRXS_POS_RAT:
atCoreStatus = Cellular_ATStrtoi( pToken, 10, &tempValue );
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
if( ( tempValue >= 0 ) &&
( tempValue <= ( int32_t ) UINT8_MAX ) )
{
pEidrxSettingsList->eidrxList[ count ].rat = ( uint8_t ) tempValue;
}
else
{
LogError( ( "Error in processing Requested rat value. Token %s", pToken ) );
atCoreStatus = CELLULAR_AT_ERROR;
}
}
break;
case CELLULAR_CEDRXS_POS_REQUESTED_EDRX_VALUE:
atCoreStatus = Cellular_ATStrtoi( pToken, 10, &tempValue );
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
if( ( tempValue >= 0 ) &&
( tempValue <= ( int32_t ) UINT8_MAX ) )
{
pEidrxSettingsList->eidrxList[ count ].requestedEdrxVaue = ( uint8_t ) tempValue;
}
else
{
LogError( ( "Error in processing Requested Edrx value. Token %s", pToken ) );
atCoreStatus = CELLULAR_AT_ERROR;
}
}
break;
case CELLULAR_CEDRXS_POS_NW_PROVIDED_EDRX_VALUE:
/* Unused value. */
break;
case CELLULAR_CEDRXS_POS_REQUESTED_PTW_VALUE:
atCoreStatus = Cellular_ATStrtoi( pToken, 10, &tempValue );
if( atCoreStatus == CELLULAR_AT_SUCCESS )
{
if( ( tempValue >= 0 ) &&
( tempValue <= ( int32_t ) UINT8_MAX ) )
{
pEidrxSettingsList->eidrxList[ count ].pagingTimeWindow = ( uint8_t ) tempValue;
}
else
{
LogError( ( "Error in processing Requested paging time window value. Token %s", pToken ) );
atCoreStatus = CELLULAR_AT_ERROR;
}
}
break;
case CELLULAR_CEDRXS_POS_NW_PROVIDED_PTW_VALUE:
/* Unused value. */
break;
default:
LogDebug( ( "Unknown Parameter Position %u in AT+CEDRXS Response", tokenIndex ) );
atCoreStatus = CELLULAR_AT_ERROR;
break;
}
return atCoreStatus;
}