We are using Q24+ for our application. It works fine when it is in local
network.
When it is roaming it will not register with the network so then we remove
the sim card and put it into our mobile phone and after confirm of
registertation in the mobile if we put back to our modem then it registers
and works fine.
We have another application running in Q24+ it also works fine in local
network. But when it is in roaming it never register with network even after doing the
above said procedure.
We have led connected for network indication
The only extra lines of code i added in the new application is below
if(adl_atUnSoSubscribe ( "+WIND: 15",UnSohdl )==OK)
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
TRACE ((2, "UnSoSubscribe OK "));
}
else
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\n UnSoSubscribe ERROR \r\n");
TRACE ((2, "UnSoSubscribe ERROR "));
}
if(adl_atUnSoSubscribe ( "+CLIP:",at_CLIP_atCmdRspHandler )==OK)
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
TRACE ((2, "UnSoSubscribe OK "));
}
else
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe ERROR \r\n");
TRACE ((2, "UnSoSubscribe ERROR "));
}
if(adl_atUnSoSubscribe ( "+CMTI:", UnSohdl_CMTI )==OK)
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
TRACE ((2, "UnSoSubscribe OK "));
}
else
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe ERROR \r\n");
TRACE ((2, "UnSoSubscribe ERROR "));
}
if(adl_atUnSoSubscribe ( "+WIND: 16", UnSohdl_WIND1)==OK)
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
TRACE ((2, "UnSoSubscribe OK "));
}
else
{
adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe ERROR \r\n");
TRACE ((2, "UnSoSubscribe ERROR "));
}
bool UnSohdl(adl_atUnsolicited_t *paras)
{
adl_atSendResponse(ADL_AT_RSP, "\r\nWe have received a \r\n");
adl_atSendResponse(ADL_AT_RSP, paras->StrData);
TRACE (( 1, paras->StrData ));
return FALSE;
}
bool UnSohdl_CMTI(adl_atUnsolicited_t *paras)
{
adl_atSendResponse(ADL_AT_RSP, "\r\nWe have received a \r\n");
adl_atSendResponse(ADL_AT_RSP, paras->StrData);
TRACE (( 1, paras->StrData ));
if(sms_clr==SET)
sms_clr=CLR;
else sms_clr=SET;
onesec_tmr=adl_tmrSubscribe(FALSE, 10, ADL_TMR_TYPE_100MS,
(adl_tmrHandler_t) onesec_timerhdl);
return FALSE;
}
bool UnSohdl_WIND1(adl_atUnsolicited_t *paras)
{
adl_atSendResponse(ADL_AT_RSP, "\r\nWe have received a \r\n");
adl_atSendResponse(ADL_AT_RSP, paras->StrData);
TRACE (( 1, paras->StrData ));
TRACE (( 1,"length=%d",strlen(paras->StrData) ));
if(!wm_strcmp(paras->StrData,"\r\n+WIND: 16\r\n"))
adl_atCmdCreate("AT+COPS=0",ADL_AT_PORT_TYPE( ADL_AT_UART1,
TRUE),(adl_atRspHandler_t) atCmdRspHandler, "*", NULL);
return FALSE;
}
bool at_CLIP_atCmdRspHandler (adl_atUnsolicited_t *atRespPtr)
{
TRACE ((1, "Inside at_CLIP_atCmdRspHandler"));
TRACE ((1, atRespPtr ->StrData));
_AT_RSP_TRUE_1("Inside at_CLIP_atCmdRspHandler\r\n");
switch(atRespPtr -> Dest)
{
case ADL_PORT_UART1:
TRACE ((2, "Command Received on UART1"));
break;
case ADL_PORT_UART2:
TRACE ((2, "Command Received on UART2"));
break;
}
wm_strGetParameterString(recvd_tel_no,atRespPtr->StrData,1);
TRACE ((2, recvd_tel_no));
return FALSE;
}
Our module is connected with external watchdog timer and network indication pin is connected as input to this watchdog the reset time approx 25 sec.
I am sending AT+COPS=0 to make auto register with network when +WIND16 arrives
Both the applications are in similar hardware.
Please give us the input what wrong going on in my module?.
This is very critical and i need your help please.