First of all, I’m very happy with the resources of Q2501B. It is a nice GSM module with a powerful TCP/IP stack. My product is 95% finished and currently I’m testing the module in the streets.
After many hours analysing the logs created by my application, I detected a strange behavior from DTL 1.0 library. Sometimes I can not get the IP connection and DTL seems to be frozen.
Fortunately I detected where is the problem and how to simulate it.
I’m using:
+WOPEN: 2,“AT v03.10”,“AT v03.10”
655_09gg.Q2501B 2015268 111705 17:01
Sequence of command to reproduce the problem:
-> At+CGATT=1
<- ADL_GPRS_EVENT_ME_ATTACH
-> sReturn = dtl_ipConnect (DtlHandle);
<- DTL_SRV_EVENT_IP_CONNECTING
(Introduce here a command AT+CGATT=0 (GPRS Dettach)
<- ERROR
After a GPRS dettach just after DTL_SRV_EVENT_IP_CONNECTING, DTL library remain completely corrupted and the event DTL_SRV_EVENT_IP_CONNECTED never appears. It is necessary to restart the module with “AT+CFUN=1” to get other GPRS connection with DTL.
In the streets, the problem appears when the module is connecting and the GSM signal is weak.
I fixed the problem creating a complete rotine to restart the module with AT+CFUN=1 but this routine affect the GPS and many positions are lost. Certainly it is not the most elegant option.
I think that a routine like “DTL_Reset” would be userful in the future.
Comments will be welcome.