static bool cbPollCreg ( adl_atResponse_t *Rsp ) { ascii *rsp; ascii regStateString [ 3 ]; s32 regStateInt; TRACE ( ( NORMAL_TRACE_LEVEL, "(cbPollCreg) Enter." ) ) ; rsp = ( ascii * ) adl_memGet ( Rsp->StrLength ); wm_strRemoveCRLF ( rsp, Rsp->StrData, Rsp->StrLength ); TRACE ( ( NORMAL_TRACE_LEVEL, rsp ) ) ; wm_strGetParameterString ( regStateString, Rsp->StrData, 2 ); regStateInt = wm_atoi ( regStateString ); TRACE ( ( NORMAL_TRACE_LEVEL, regStateString ) ) ; if ( REG_STATE_REG == regStateInt || REG_STATE_ROAM == regStateInt ) { TRACE( ( NORMAL_TRACE_LEVEL, "(cbPollCreg) Registered on GPRS network." ) ) ; /* Registration is complete so open and start bearer */ OpenAndStartBearer ( ) ; } else { /* Not ready yet, we'll check again later. Set a one-off timer. */ adl_tmrSubscribe ( FALSE, CREG_POLLING_PERIOD, ADL_TMR_TYPE_100MS, (adl_tmrHandler_t ) PollCreg ); } adl_memRelease(rsp); return FALSE; }
bool poll_creg_handler (adl_atResponse_t *Rsp) { ascii *rsp; ascii regStateString[3]; s32 regStateInt; info("Warten auf GPRS Verbindung..."); rsp = (ascii *)adl_memGet(Rsp->StrLength); wm_strRemoveCRLF(rsp, Rsp->StrData, Rsp->StrLength); wm_strGetParameterString(regStateString, Rsp->StrData, 2); regStateInt = wm_atoi(regStateString); if ( 1 == regStateInt || 5 ==regStateInt) { initGprs(); } else { /* Not ready yet, we'll check again later. Set a one-off timer. */ adl_tmrSubscribe( FALSE, 10, ADL_TMR_TYPE_100MS, poll_creg); } return FALSE; }
static bool poll_creg_callback(adl_atResponse_t *Rsp) { ascii *rsp; ascii regStateString[3]; s32 regStateInt; TRACE (( 1, "(poll_creg_callback) Enter." )); rsp = (ascii *)adl_memGet(Rsp->StrLength); wm_strRemoveCRLF(rsp, Rsp->StrData, Rsp->StrLength); wm_strGetParameterString(regStateString, Rsp->StrData, 2); regStateInt = wm_atoi(regStateString); if ( 1 == regStateInt || 5 ==regStateInt) { TRACE (( 1, "(poll_creg_callback) Registered on GPRS network." )); open_and_start_bearer(); } else { /* Not ready yet, we'll check again later. Set a one-off timer. */ adl_tmrSubscribe( FALSE, CREG_POLLING_PERIOD, ADL_TMR_TYPE_100MS, poll_creg); } return FALSE; }