adl_atCmdCreate problem with adl_atCmdSubscribe


#21

Hiya,

Arrrgh - you got me. :blush: I didn’t pay any attention to what the hex values were - I’ve been building odd command strings and assumed that he was doing the same.

Sorry about that. Consider me chastised.

ciao, Dave


#22

In that case, you are still not building the command string correctly.

How have you verified that you are building the correct string?
Have you done it on a non-Open-AT platform?

Another advantage of using sprintf to build the command string is that you can also TRACE the string.


#23

Like this, for example:

sprintf( command_string, ...           // build the string

   TRACE( 1, command_string );            // trace it

   adl_atCmdCreate( command_string, ...   // execute it

#24

In fact, you can activate the ATI level 1 traces from TMT to see what all commands are sent to the firmware. All the commands that are issued from either the external terminal or from within the application can be seen in the ATI level 1 traces.

Activate the traces and check the command that is sent to the firmware. You will be able to find out whether the implementation in your application is correct or not. Do post your findings here :slight_smile:


#25

Only if you have the appropriate files to decode them - which I don’t think Wavecom make generally available?


#26

I agree with you. However, for the problem that we are discussing, we can at least see the command that is sent to the Firmware in its original form without requiring a file to decode it. The ATI level 1 traces look something like this:

Trace ATI 1 at+csq --> You can see that the command that is issued is “AT+CSQ”
Trace ATI 1 Storing AT Command
Dump ATI 1 41 54 2b 43 53 51 1a
Trace ATI 1 ati_SndIntermediateAtRsp: Len=13
Trace ATI 1
+CSQ: 9,0 --> The response to the command.

Dump ATI 1 0d 0a 2b 43 53 51 3a 20 39 2c 30 0d 0a
Trace ATI 1 ati_Rsp RspType = 1 CmdClass = 22
Trace ATI 1 ati_Rsp() : FlowID= 1
Trace ATI 1 context->ati_V24PortId = 0x1
Trace ATI 1 ati_SendRsp: Len=6 PortId = 1
Trace ATI 1
OK

this way, we can at least see what is the command that is sent to the firmware.


#27

Actually, without the appropriate “Workspace” files to decode it, the trace will look more like this:

Trace	ATI	1	at+csq     
Trace	ATI	1	Unable to find the string of the remote trace in the file (ID = xxxx)

Dump	 ATI	1	41 54 2b 43 53 51 1a 
Trace	ATI	1	Unable to find the string of the remote trace in the file (ID = xxxx)
Trace	ATI	1	
			+CSQ: 9,0 
			
Dump	 ATI	1	0d 0a 2b 43 53 51 3a 20 39 2c 30 0d 0a 
Trace	ATI	1	Unable to find the string of the remote trace in the file (ID = xxxx)
Trace	ATI	1	Unable to find the string of the remote trace in the file (ID = xxxx)
Trace	ATI	1	Unable to find the string of the remote trace in the file (ID = xxxx)
Trace	ATI	1	Unable to find the string of the remote trace in the file (ID = xxxx)
Trace	ATI	1	
			OK

Your’re right - so we can! :smiley:

Just don’t worry about all the “Unable to find the string of the remote trace in the file (ID = xxxx)” stuff…


#28

just wanted to close this issue from my side , the problem was that the application gets into command handler several times when it enters this comand ,
Therfore the strings are retrived as garbage if i didnt put a condition to enter the handler.