beautypg.com

Synchronization, Atcommandresponselistener interface, Non-blocking atcommand.send() method – Siemens TC65 User Manual

Page 85: 2 atcommandresponselistener interface

background image

TC65 JAVA User's Guide
Strictly confidential / Released

s

TC65 JAVA User's Guide_V05

Page 85 of 90

26.09.2005

12.1.1.4 Synchronization

For performance reasons no synchronization is done in the ATCommand class. If an
instance of this class has to be accessed from different threads ensure that the send()
functions, the release() function, the cancelCommand() function and the breakConnection()
function are synchronized in the user implementation.

12.1.2 ATCommandResponseListener

Interface

The ATCommandResponseListener interface defines the capabilities for receiving the
response to an AT command sent to one of the module's AT parsers. When the user wants
to use the non blocking version of the ATCommand.send function of an implementation class
of the ATCommandResponseListener interface must be created first. The single method of
this class, ATResponse(), must contain the processing code for the possible response to the
AT command sent.

class MyListener implements ATCommandResponseListener {

String listen_for;

public MyListener(String awaited_response) {
listen_for = awaited_response;
}

void ATResponse(String Response) {
if (Response.indexOf(listen_for) >= 0) {
System.out.println("received: " + strRcv);
}
}
}

12.1.2.1 Non-blocking ATCommand.send() Method

After creating an instance of the ATCommandResponseListener class, the class instance
can be passed as the second parameter of the non-blocking ATCommand.send() method.
After the AT command has been passed to the AT parser, the function returns immediately
and the response to the AT command is passed to this callback class later when it becomes
available

Somewhere in the application:


MyListener connect_list = new MyListener("CONNECT");
atc.send("ATD" + CALLED_NO + "\r", connect_list);

/* Application continues while the AT command is processed*/
/* When the module delivers its response to the AT command the callback
* method ATResponse is called. If the response is "CONNECT", we will see
* the printed message from ATResponse in MyListener. */


A running AT command sent with the non-blocking send function can be cancelled with
ATCommand.cancelCommand(). Any possible responses to the cancellation are sent to the
waiting callback instance.

Note: Using the send methods with incorrect AT command syntax in the strings will cause
errors.