Home
TC45 JAVA User's Guide
Contents
1. 50 10 2 1 Sun ONE Studio 4 1 Mobile Edition eese 51 10 2 1 1 Switching emulators 3 miu x o3938t ease aeee 52 10 2 1 2 POISONS EDITT T o3 LP ECNE ESTO ELTE 54 TO FRAEN a A 54 10 2 1 9 CONE aT E E A EEA OE 54 10 2 2 JBuilder Mobile Edition 0nnanononnenonnnnanennnnensnnnrensrrnrersnrnrsrrnrersrrnrerse 54 10 2 2 1 TC45 SMTK in Personal Edition sese 54 10 2 2 1 1 Integration of TC45 SMTK 2 0 cece cecceeeceeeeeeseeeeeseeeseeeaeeseeeseeees 55 10 2 2 1 2 Restoring original SettingS cccceccseceeceeceeceececeeeceeceeceesensaneaes of 10 2 2 2 TC45 SMTK in Enterprise Edition eeeseeseeeeeeeeeeee 58 NO eZ 268 EXA MPIC S eeoa eere rie E ETE AE Feu edunt ondulonnniereresvensnlonnventtert 59 10 2 2 4 Projects and templeleS ice en einen ono uen earum Er debout ES dedo 60 10 22 9 COMMON se BUI some mu reca E EA EE UNITE E RENI IE 61 10 3 BFGaKDOIULUS oeuiveesivdinss mito oes sect AA MU SR LEE EDUC NP EMMN DE 61 P Java THO TO Ios OEIUDIDUDIS D E E DIOE MDUDUE 62 11 1 Using the AT command API seeseeseeeeee eene nennen nnn nnne nn 62 11 1 1 Olassvlcomiundridzistesemenecamoietimidass can tiui imita dadP ESUN rA naaa Iq 62 11 1 1 1 Instantiation with or without CSD support eese 62 11 1 1 2 Sending an AT co
2. 25 PCAN SOW ERIT m 2f OG ANG SUC ARP PTT 2f PVCS IS 9 ocusbtha enis tren tse erat vee ings ae saci ated Pup NIC ee enero cao cee 2f PIQUIE 8 Module State Fa m 2 Figure 9 Module State 5 0 2 0 cccccccccccecceecceeceeeseeceeeseeceeeceeceeseeeceesaeesueeeeesaeeaeeseeseeseesaeeeaes 28 Foure TB Module Stata G ees eee eee ee tubi eee eee ee eee eee eee 28 Figure 11 Module State Transition Diagram ccccccccccecceccceeeeeeceeeeeeseeeeeseeeeeseeseeeeeesaes 29 Fig re 12 0 TAP OVGNVIEW 38 Figure 13 OTAP Install Update Information Flow The messages in brackets are optional 42 Figure 14 OTAP Delete Information FIOW cccccccceccseccsecceeeeeeseeeeeeseeeeeeseeeeeeeeeseeegeesees 43 Figure 15 Data flow of a Java application in the debug environment 49 Figure 16 Sun ONE Studio The installed emulators eeeeeeeeeeeeeeeeeee 51 Figure 17 Sun ONE Studio Switching to the Siemens emulator 02 Figure 18 Sun ONE Studio Project MAnagel cccccccecceeccecceeeceeeeeeceeeeeeeeeeeeseeeeeeseeeees 53 Figure 19 Sun ONE Studio Selecting a template ccc ccccecceeeceeeeeeeeeceeeeeeseeeeeeeees 54 Figure 20 Different JDK must be set in User HOM6 ccccccccecceecceeeeeeceeeseeceeeaeeseeeaeeees 55 Figure 21 Dialog box after changing the JDK to Siemens
3. SIEMENS TC45 Siemens Cellular E Y SECC R ERR Ree eraeee Po EEEEEELEETELEETELIELET TC45_ JAVA User s Guide_V02 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile A User s Guide_V02 ial Released General Notes Product is deemed accepted by recipient and is provided without interface to recipient s products The documentation and or product are provided for testing evaluation integration and information purposes The documentation and or product are provided on an as is basis only and may contain deficiencies or inadequacies The documentation and or product are provided without warranty of any kind express or implied To the maximum extent permitted by applicable law Siemens further disclaims all warranties including without limitation any implied warranties of merchantability completeness fitness for a particular purpose and non infringement of third party rights The entire risk arising out of the use or performance of the product and documentation remains with recipient This product is not intended for use in life support appliances devices or systems where a malfunction of the product can reasonably be expected to result in personal injury Applications incorporating the described product must be designed to be in accordance with the technical specifications provided in these guidelines Failure to comply with any of the required procedures can result in malfunctions or serious discrepa
4. boolean runThreads true Flag for stopping threads DemoThread threadi First instance of DemoThread DemoThread thread2 Second instance of DemoThread Private class implementing the thread to be started by the main application private class DemoThread extends Thread int loops public DemoThread int waitTime Store number of loops to execute loops waitTime System out printin Thread loops i Created public void runi i oystem ou t printin Thread loops t Started Lor ait L1 l mw Loops a4 4 Check if main application asked thread to die if runThreads true System out printliln Thread loops Stopped from outside Leave thread return j Print loop counter and wait 1 second do something useful here instead TC45 JAVA User s Guide VO2 Page 68 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile Systems out printin Thread loops Loop 1 try Thread sleep 1000 catch InterruptedException e System out println e System out println Thread loops Finished naturally j j ThreadDemo constructor d public ThreadDemo System out println ThreadDemo Constructor creating threads threadl new DemoThread 2 thread2 new DemoThread 6 startApp x public void startApp throws MIDletStateChangeException System out pr
5. In Siemens SMTK TC45 IMPSiemens src examples a complete data connection example DataConnectionDemo java can be found These streams behave slightly differently than regular data streams The streams are not closed by using the close method A stream remains open until the release method is called A module can be switched from the data mode to the AT command mode by calling the breakConnection method continue example if rcv 1 Now break the data connection System out printin n n rBreaking connection try StrRcv ATCmd breakConnection catch Exception e System out printlin e System out println received strRcv else Received EOF somebody else broke the connection System out printin n n rSomebody else switched to command mode 5ystem out println Hanging up Strecy ATCid send ATH yr System out println received strRcv catch IOException e System out println e j else System out println No data connection established j An lOException is thrown if any function of the I O streams are called when the module is in AT command mode 11 1 1 4 Synchronization For performance reasons there is no synchronization done in this class If an instance of this class has to be accessed from different threads it has to be ensured that the send functions the release function the cancelCommanda function and the breakConnection functi
6. gt IMP 1 0 d TCP IP Debug environment Figure 15 Data flow of a Java application in the debug environment TC45 JAVA User s Guide VO2 Page 49 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile In the debug environment the module is emulated on the PC and only the AT commands are run on the module via serial interface If the I O pins are configured as ASC1 they are emulated on the PC shown connected to the RS 232 API in the diagram above Figure 15 Further information about this configuration is given in Section 10 1 3 Regular pin I O however is controlled on the module via AT commands 10 1 1 Serial port and pin I O handling differences Please note that there are some differences in serial port handling between MlIDlets running inside the module and running on the PC debug environment Obviously there might be some differences in timing issues and buffer sizes Additionally pin I O is done on the same serial port inside the module regardless of running the application on PC or on module Therefore pin I O and serial port accesses have some restrictions on resources like those described in section 4 4 Creating a CommConnection will fail in an application running on module if pin I O is already opened and vice versa Because pin I O works via AT commands and serial port access via an additional COM port both are not mutually locked in the PC debug environment and
7. The New Project Wizard will be launched An existing project can be used as a template for new project This means that the initial default values for the new project will be the same as the project chosen as the template If no project is chosen as a template the second step of the New Project Wizard gives you the opportunity to choose the emulator used with the project CD Project Wizard Step 1 of 3 J x Select name and template tor your new JBuilder project Enter a name for your project and the path ta the directory where it iz to be saved You can optionally choose an existing project as a template for the initial default values used in this wizard Marne NewProject Type fex Directory Program Files SIEMENS MTRT C4 Builder Samples Melloworkditlew Project isd Template c Program Filez SIEMENSISMTRKITC43SrIBuilldersamplesmellovworldiHellovwvorld jpx ERN M Addi project to active project group Generate project notes file Back Ness Finish Cancel Help Figure 26 JBuilder Configuring a new project TC45 JAVA User s Guide V02 Page 60 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile You can examine a project s properties by choosing Project Properties from the Project menu C Properties for HelloWorld jpx X JDK Siemens IMP Wireless Toolkit i Output path C Program Files SIEMENS MTRT C45 BuilderSamplestelovworldiclasses Aig Backup p
8. TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 1 Introduction 1 1 Overview The TC45 module features an ultra low profile and low power consumption for data voice SMS and fax With Java technology and up to nine digital I O ports the module enables easy integration of your application This document explains how to work with the TC45 module the installation CD and the tools provided on the installation CD Old solution The customer application was distributed across 2 uC external uC and internal C on the module New solution The customer application exists only on the module Customer Application Customer Application Figure 1 Overview 1 2 Related documents In addition to the Java Docs for the development API see Chapter 4 the following documents are included with the SMTK 1 Multiplexer Installation Guide 2 Application Note 23 Installing TC45 Module on DSB45 3 DSB45 Support Box Evaluation Kit for Siemens Cellular Engines 4 TC45 AT Command Set 5 TC45 Hardware Interface Description 6 Java doc IMPSIEMENS doc html index html TC45 JAVA User s Guide VO2 Page 10 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Released mM O bi e 1 3 Terms and abbreviations Abbreviation Description API Application Program Interface ASC Asynchronous Serial Connection CLDC Connected Limited Device Configuration CSD Circuit Switched Data DAI Digital Audio Interface DCD Da
9. IMP Wireless Toolkit 56 Figure 22 Original setting for User Home ccccccccccc ccc eeeceeceeeceeeeeeceeeeeeseeeseeseeseeeeeeaeeees 57 Figure 23 JBuilder JDK SCTINGS ssrin ennn ene e e ka eai i ea ARANEAE T RERE RENE RRRS 58 Figure 24 JBuilder Siemens Library cece cec cece cece eeeceeceeeceecaeececeeeceecesaeeseesaeeseesaeesaes 58 Figure 25 JBuilder Sample Projects cccccecccecceceeeeeeeeceeeeeeseeeeeeeeeeseeseeeseecseeseeseeeaeeees o9 Figure 26 JBuilder Configuring a new project cccccecccecceeceecceeeeeeceeeeeeseeeeeeseeeeeeeeeseeees 60 Figure 27 JBuilder Project PropertieS cccccceccscceecseeceeceeceeceeseecuesaeeaeeceeceeseeseesensaeeas 61 Tables Table 1 Java AT COMIMANGAGS ccccccecccecceeceeceeceeceeseecaecceeceeceeseesaesaesesaesaeeceeseesanseesensaees 30 Table 2 A typical sequence of MIDlet execution is eeseeseeeeeeeeeeeeneee 32 Table 3 Parameters and K YWOMS ccccccceceeceeceeceeee eee eeseeseeseeseeceeeeeeeeaeeaeeseeseeseeseesaees 39 TC45 JAVA User s Guide VO2 Page 8 of 72 30 06 2003 TC45 TC45 JAVA User s Guide Confidential Released 0 Document history Preceding document TC45 JAVA User s Guide Version 01 New document TC45 JAVA User s Guide Version 02 Chapter Page What is new 11 3 1 70 Revised example TC45 JAVA User s Guide VO2 Page 9 of 72 SIEMENS Mobile 30 06 2003
10. Mobile Edition Borland JBuilder Enterprise MobileSet 3 or JBuilder Personal MobileSet 3 is installed it can be integrated into the SMTK environment during the installation of the SMTK To install Sun ONE Studio or Borland JBuilder follow the installation instructions in Section 2 3 3 and Section 2 3 4 respectively 2 2 Installation CD The Siemens Mobility Toolkit TC45 Installation CD includes e Muxlnstall pdf mux driver installation guide vxx pdf e Module Exchange Suite e MPSiemens bin classes doc e html e javadocs for STMK APIs lib e Classes zip src e diverse examples e AT Java Open Framework JDK 1 4 1 02 J2sdk 1 4 1 02 windows i586 exe e oun One Mobile Edition ffi me win32 exe e Documents dsb 45 an23 inst tc45 vxx pdf dsb45 hd vxx pdf tc45 atc vxx pdf tc45 hd vxx pdf e java user guide vO1 pdf this document Please note that vxx refers to the version number of the document TC45 JAVA User s Guide VO2 Page 12 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 2 2 1 Components 2 2 1 1 WinMUX 2 1 The multiplexer mode enables one serial interface to transmit data to three different customer applications This is achieved by providing three virtual channels using a multiplexer The multiplexer is necessary for the SMTK environment Information how to install the provided multiplexer sources can be found in 1 2 2 1 2 Module Exchange Suite The Module Exchange Suite all
11. Server Parameter SMS Parameter SMS with START install HTTP request for jad file HTTP basic authentication HTTP jad file download HTTP Post Error HTTP request for jar file a HTTP basic authentication HTTP download of jar file pe HTTP Post Result SIEMENS Mobile TC45 SMS password check Parameters collection Combination of SMS parameter set and AT parameter set f parameter set complete Close running Java application nO9UUI UMOp9SO 2 Start install update procedure Download jad file If Error post and reboot Download jar file Post result If success install and change autostart Reboot Figure 13 OTAP Install Update Information Flow The messages in brackets are optional jnoauil Ajajes Reboot When an SM with keyword START install is received and there is a valid parameter set for the operation the module always reboots either when the operation completed an error occurred or the safety timer expired If there is any error during an update operation the old application is kept untouched with one exception If there is not enough space in the file system to keep the old and the new application at the same time the old application is deleted before the download of the new one therefore it is lost when an error occurs If install update was successful the autostart is set to the new application TC45 JAVA User s Guide V0
12. aesti uem tetrum ee 26 4 4 1 1 State 1 default no Java application is running 2f 4 4 1 2 State 2 no Java application is running general purpose NO 2f 4 4 1 3 State 3 no Java application is running AT interface on ASC1 2f 4 4 1 4 State 4 default Java application active 2f 4 4 1 5 State 5 Java application active general purpose l O 20 4 4 1 6 State 6 Java application active Java interface to ASC1 20 4 4 2 Module state transitions c cece cccecceeceeceeeeeeeeeceeseeeeeeeeseeseseeseeaees 29 5 VELAT i ORDEI m 31 5 1 MIDlet documentation eeLeeeeseeueeueneen eene e nnn nenne nne nnn nnns 31 oy samme B gt o Ces en ee 31 5 3 Hello World MIDlet ccccccccceeceeeeeeeeeeeeeeeeeeseesansensonsenecneceeseeseesensonsoneonenaes 32 TC45 JAVA User s Guide VO2 Page 4 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 6 AT Java Open Framework AJOP cccscceseeseeeeeseeeeeeeenseeesaneceesansaneeeeseneseesenesesoes 34 6 1 AT COMMA GS seceaccescccaecsactcancascsenessactecnecascaacanenceateenccancasessanschesdacanaansaessoesteenca 34 6 1 1 Mobile engine Status ccccceccecceeceecsecceeceeceeceeceeceecaeceeeceeseeseesensaes 34 GZ VOICE call hand
13. atch openAtChannel Test the connection this code is optional and used only for demonstration purposes oystem out println AnTesting connection 3 String response atch send at r System out println atC response Set elaborated error messages atch send AT CMEE 2 r Enter the SIM PIN Ssystem Oul printin Entering PIN WmLock lockControl new WmLock atch try lockControl sendSimPin SIM PIN We create a CSimplePhonebook instance to look into the module s phonebook SimplePhonebook pbk new SimplePhonebook atch try Now let s look for the SMS s recipient The number is stored in the phonebook System out println Looking up phone number for RECIPIENT NAME please wait String destinationAddr pbk getNumber RECIPIENT NAME create a simple SMS control SimpleSms sms new SimpleSms atch try You need to set the SCA only once in your application sms setServiceCentreAddr SERVICE CENTRE ADDR now send the message System out println Sending Short Message please wait sms send destinationAddr MESSAGE TXT System out println Short Message was sent catch SmsSendException e System out printin e finally release the used resources sms release sms null TC45 JAVA User s Guide VO2 Page 71 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mob
14. both are possible at the same time Please keep in mind that this does not mean that it is also possible inside the module 10 1 2 Restrictions Please note that the PC debug environment only emulates the virtual machine inside the module Much effort has been taken to ensure that both virtual machines behave in the same way but accordingly since they are completely different systems there might be some differences nevertheless Besides the obvious differences in timing and execution speed there are also differences in file system handling The Flash file system of the module is simulated in a special sub directory of the PC debug environment so there are differences in the possible length of file names and also in management of the available size When using http connections it is the GPRS stack inside the module that is used This is not available on the PC so in the debug environment it is the internal IP stack of the operating system that is used Therefore the PC must have a working Internet connection for using the http classes 10 1 3 RS 232 emulator As stated previously ASC1 is emulated on the PC in the debug environment It uses the next available com port after the one used for ASCO If you wish another com port to use the WMDebug ini file must be manually updated WMbDebug ini can be found in Siemens SMTK 7TC45 IMPSiemens bin The line Port under Ports must be altered 10 2 Java IDE The SMTK is integrated into your Java IDE
15. commands referenced A state transition diagram is shown in Figure 11 Pin group 1 and DAI are not mentioned here This section only shows how Java applications must share AT parsers GPIO pin group 0 and ASC1 resources Default configuration of module Default configuration when Java application is started configured by AT Command or RS232 API Legend of colors in following figures TC45 JAVA User s Guide VO2 Page 26 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 4 1 1 State 1 default no Java application is running This is the default state The Java application is inactive and there is an AT interface with CSD on ASCO One serial interface is available for AT commands nothing else is configured AT parser with CSD ASC 0 4 pins default unused Figure 5 Module State 1 4 4 1 2 State 2 no Java application is running general purpose I O The Java application is inactive There is an AT parser with CSD on ASCO and the four 1 0 pins are used as general purpose I O ASC1 is not configured The pins are configured by at scpin refer to AT Command Set 4 AT parser with CSD ASC 0 4 pins GPIO Figure 6 Module State 2 4 4 1 3 State 3 no Java application is running AT interface on ASC1 The Java application is inactive and there is an AT interface with CSD on ASCO and a second AT interface without CSD on ASC1 The second AT interface is activated by at shif
16. during installation Please note that the IDE integration is intended for debugging purposes using the PC emulator JAR files used in the module must be configured according to the batch file examples given If the SMTK install succeeded one should be able to easily switch between the Siemens environment and Standard JDK environment Means that the special libraries APIls are available the emulators are available AT commands sent to module Regular function of the IDE for non oiemens projects is unchanged TC45 JAVA User s Guide VO2 Page 50 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 1 Sun ONE Studio 4 1 Mobile Edition This section indicates the changes to your IDE that you will see after the integration of the SMTK and how to exploit these features to build and debug your applications In the Runtime Explorer Figure 16 the installed emulators can be seen under the Device Emulator Registry The Default Emulator is not affected by the integration Explorer Runtime Bie Runtime Processes G eh VCS Commands D gp Debugger e 31 Device Emulator Registry e Eu Default Emulators A MIDP Siemens IMP Wireless Toolkit 1 0 0 e Installed Emulators ftr J2ME Wireless Toolkit 1 0 43 01 Tl Siemens IMP Wireless Toolkit 1 0 0 CJ Fiesystems lt gt Project Detaut Gg Javadoc Figure 16 Sun ONE Studio The installed emulators TC45 JAVA User s Guide V02 Page
17. for unusual network infrastructures the SM can also be of ClassO and or PID 00 The content of the SM consists of a set of keywords and parameter values These parameters might be distributed over several SMs There is one single keyword to start the OTAP procedure For parameters that are repeated in several SMs only the last value sent is valid For example an SM could look like this Install operation First SM OTAP_IMP1 0 PW D secret JADURL http www greatcompany com coolapps mega jad APPDIR a work appdir HTTPUSER user HT TPPWD anothersecret Second SM OTAP IMP1 0 PWD secret BEARER gprs APNORNUM access to thenet net NETUSER nobody NETPWD nothing DNS 192 168 1 2 START install Delete operation OTAP_IMP1 0 PWD secret APPDIR a work appdir START delete The first line is required it is used to identify an OTAP SM All other lines are optional and their order is insignificant each line is terminated with an LF n even the last one The keywords in capital letters are case sensitive A colon separates the keywords from their values The values of APPDIR BEARER and START are used internally and have to be lower case The password PWD is case sensitive The case sensitivity of the other parameter values depends on the server application or the network It is likely that not all parameters can be sent in one SM They can be distributed over several SMs Of course every SM needs to contain the identifying first line an
18. import javax microedition midlet inport Visio public class HelloWorld extends MIDlet HelloWorld default constructor i public HelloWorld oystem out printin HelloWorld Constructor j startApp m public void StartAppi oystem out println BHelloworld i startapp System out println nHello World n notifyDestroyed j pauseApp P4 public void pauseApp System out printin HelloWorld pauseApp TC45 JAVA User s Guide V02 Page 32 of 72 SIEMENS Mobile MIDlet The default no argument constructor for the MIDlet is called it is in the Paused state The MIDlet acquires any resources it needs and begins to perform its service The MIDlet stops performing its service and might choose to release some resources it currently holds If it has been designed to do so the MIDlet saves state or user preferences and performs clean up throws MIDletStateChangeException 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile destroyApp afi public void destroyApp boolean cond System out println HelloWorld destroyApp cond j TC45_JAVA User s Guide_V02 Page 33 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 6 AT Java Open Framework AJOF 6 1 AT Commands The TC45 AT Command Set 4 contains all of the standard AT commands needed to ope rate a GSM GPRS mob
19. parser and one or more listeners waiting for URCs The channel is distributed by the application to any class that needs access to the module via the ATC interface 11 3 1 Example WmTutorial java Copyright C Siemens AG 2003 All Rights reserved Transmittal reproduction and or dissemination of this document as well as utilization of its contents and communication thereof to others without express authorization are prohibited Offenders will be held liable for payment of damages All rights created by patent grant or registration of a utility model or design patent are reserved To o x HF X package example ajoftutorial import com siemens icm io ATCommandFailedException import com siemens icm ajof WmMIDlet import com siemens icm ajof AtChannel import com siemens icm ajof AtChannel SendTimeoutException import com siemens icm ajof AjofException import com siemens icm ajof status WmLock import com siemens icm ajof status WmLockException import com siemens icm ajof phonebook SimplePhonebook import com siemens icm ajof phonebook PhonebookStoreException import com siemens icm ajof sms SimpleSms import com siemens icm ajof sms SmsSendException demonstrates how easy it is to retrieve a number from the phonebook and send an SMS message to this destination author SIEMENS AG version 1 since AJOF 1 0 yr public class WmTutorial extends WmMIDlet Please change these consta
20. start up is shown below CI Configure JDKs JOK Settings Mame fava version 1 4 1 b21 Rename JOK home path cProgrammerJBuilder edk1 4 Change i Always debug with classic User Home Ee 7 java version 1 4 1 b21 in J2ME Wireless Toolkit 1 0 4 1 Class Source Documentation C Programmet Builder agdk1 4idemojfcilavazD JavazDemo jar Add Programme Builder adi AidemotpluginjtedavazDdavaz Demo jar C Programme Builder amp jdk 4jresibscharsets jar Edit C Programme Builder Gjdk1 4relbiextidnans jar C Programme Builder amp Jdk 4jredibvextidapsec jar seme CProgramme Builder adk1 4redibiextlocaledata jar C PraagrammedBuilder adi 4reAibJext sunjce provider jar E Programmet Builder adk1 3reibAm ndicim jar E Programmet Builder egdk1 4jredibjayys jar CO Programme Builder s4jidk1 4jreJibjce jar E Programmet Builder agdk1 44rejinjsse jar CO Programme Builder adi 4reibirt jar Cc Pragramme IBuilder Bjdk1 4jresib sunrsasign jar Move Down Mew Add Polder Delete Cancel Help Move Up Figure 22 Original setting for User Home To switch back to JDK shipped with JBuilder press Change and select location as shown in figure above Note JDK home path shown in this figure depends on user s installation directory TC45 JAVA User s Guide_V02 Page 5 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 2 2 TC45 SMTK i
21. will be sent before shutdown The conmands are described in the AT Command Set 4 while a description of the shutdown procedure can be found in 5 3 4 2 Restart after switch off The module can be switched off with the AT command at smso without setting an alarm time see the AT Command Set 4 A power failure will also switch off the module When the module is switched off external hardware must restart the module with the Ignition line IGT The Hardware Interface Description 5 explains how to handle a switched off situation TC45 JAVA User s Guide VO2 Page 18 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 3 5 Special AT command set for Java applications For the full AT command set refer to 4 There are differences in the behaviour of issuing AT commands from a Java application compared to using AT commands over a Serial interface 3 5 1 Switching from data mode to command mode Cancelling the data flow with is not available in Java applications see 4 for details To break the data flow use breakConnection refer to IMPSIEMENS doc index html 6 3 5 2 Mode indication after MIDlet startup As on the serial interface after starting the module without autobauding on the module sends its state SYSSTART SYSSTART ALARM MODE etc to the MIDlet This is done via URC to the AT Command API instance which executes the very first AT Command from within Java To read this U
22. 18 3 5 Special AT command set for Java applications 19 3 5 1 Switching from data mode to command mode 19 3 5 2 Mode indication after MIDlet startup eseeeeeeeeeeeeese 19 O90 LONG TOSPONSOS ne utter MD ee RTI UN UN UEM UTE 19 2 5 RESTI UONE ee Et dU ELM SEI Un SCENAM eee er 20 3 6 1 mI AA MN T EO 20 S OMEN enel E Tm 20 3 7 Performance statements i erdbonbi ash MOD NXRC UE E POEsVEEE 2 uM EHmERCN NEN IO TET EHE NPONE NE 20 3 7 1 Ene E gu nia dam sie past T ungaaa E va saacan T EEEE E ET 20 ov PIRO ee ee en eee eee 21 4 Software plal ori sersan aR EEEE AENEAN ai 22 41 Sonware Al CHIC CUS access sssccesnsccanennseecexansccensnssuncsusssssmabueciesnsnactansivenceecesectansis 22 Ae NCC ACS TOTEM 23 o MEE S ELE i iRer cR T T UT UT 23 4 2 2 General Purpose I O ssessssssssesseeenre mener 23 254 cc 23 4 2 4 Digital Audio Interface DAI cece ccccceecceeeeeeceeeeeeseeeeeeceeseeeseesaes 23 AZo JUNE dO S cessent vurixtcenPtutlen mei mo ere au bM e 24 4 2 5 1 IMP 1 0 API to TOPIIP 0 ccc ccccecceeceeeeeeeeeeeeeeeeeeeeeseeeeeseeseeeeseeeeees 24 4 3 Data flow of a Java application running on the module 25 4 4 Handling interfaces and data service resources 26 4 4 1 Mod le Sale S
23. 2 Page 42 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 8 6 2 Delete OTAP Java Application TCA45 Controller Server Parameter SMS gt SMS password check Parameters collection Parameter SMS with START delete zr Combination of SMS parameter set and AT parameter set f parameter set complete Close running Java application noouul UMOp9SO 2 Start delete procedure Delete application dir reboot jnoeuJl Ajajses Reboot Figure 14 OTAP Delete Information Flow When an SM with keyword START delete is received and there is a valid parameter set for this operation the module reboots either when the operation completed an error occurred or the safety timer expired If there is any error the application is kept untouched Autostart is not changed No result code is passed back TC45 JAVA User s Guide VO2 Page 43 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 8 Time out values and result codes Timeouts Closedown Timeout 10 seconds Safety Timeout 5 minutes Result Codes Supported status codes in body of the http POST request 900 Success 901 Insufficient memory in filesystem 902 not supported 903 not supported 904 JAR size mismatch given size in JAD file does not match real size of jar file 905 Attribute mismatch one of the mandatory attributes MIDlet name MlDlet version MIDlet Vendo
24. 51 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 1 1 Switching emulators You can easily switch to the SMTK emulator by opening the Tools menu selecting Siemens TC45 and choosing Switch Emulator gt Siemens IMP Wireless Toolkit 1 0 see Figure 3 The default emulator can be switched back to by choosing Switch Emulator gt J2ME Wireless Toolkit Any projects built and run when the Siemens emulator is selected will be compiled and run with the Siemens emulator dition Project Default ence amano wa CE BH asl synchronize g Import Management Tool GE Show Javadoc gu Generate Javadoc HER Auto Comment la Siemens TC45 d Switch Emulator gt J2ME Wireless Toolkit 1 0 4_01 3 Create Group Switch Emulator Siemens IMP Wireless Toolkit 1 0 0 set az Project Main Class Add to Project ax microedition midlet ax micraoedition lcdui j Setup Wizard E Keyboard Shortcuts EL Options C9 Update Center P 1C Class Class DETAR STE Figure 17 Sun ONE Studio Switching to the Siemens emulator TC45_JAVA User s Guide_V02 Page 52 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 1 2 Projects After integration there are two new projects in the Project Manager The first is a sample HelloWorld project and the second is an empty project that the developer can begin using or use as a model for a new TC45 pr
25. Builder Mobile Edition 10 2 2 1 TC45 SMTK in Personal Edition JBuilder Personal Edition can handle only one fixed emulator this is the reason for an integration that is more elaborate than for Enterprise Edition TC45 JAVA User s Guide V02 Page 54 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 2 1 1 Integration of TC45 SMTK After integration of TC45 SMTK into JBuilder Personal Edition user must configure the JDK being used according to following steps 1 Start Jbuilder Personal Edition 2 Open dialog box Tools 2Configure JDKs see Figure 3 Change JDK by selecting User Home Press Change and set path to installation directory TC452VMPSiemens and complete configuration by pressing OK CI Configure JDKs User Home uU Nl Baa version 1 4 1 b21 Te CENE UNEUT Rename ine in J2ME Wireless Toolkit 1 0 4 1 JOK home path cProgrammerJBuilder amp dk1 4 D Always debug with classic Change Class Source Documentation C Programmet Builder agdk1 4idemojfcilavazD JavazDemo jar E Programme Builder adi Afdemo pluginitcava2DJava2Derna jar Cc Programme Builder adi 4frejibicharsets jar CProgramme Builder Gjdk1 4 resibvextidnsns jar C Programme Builder amp Jdk 4jredibvextidapsec jar Remove C Programme Builder adi 4jrelibiextlocaledata jar C PraarammedBuilder adi 4 reAibJext sunjce provider jar E Programmet Builder adk1 4reibAm ndicim jar E
26. CSD e Net User a username used for authentication with the network e Net Password a password used for authentication with the network e DNS a Domain Name Server s IP address used to query hostnames There is one additional parameter that can only be set by AT command e SM Password it is used to authenticate incoming OTAP SMs Setting this password gives an extra level of security Note If there was a password set by AT command all SMs have to include this password Table 3 Parameters and keywords Parameters Max Length AT Keyword SM Install update delete JAD File URL 100 JADURL mandatory unused Application Directory 50 APPDIR mandatory mandatory HTTP User 32 HTTPUSER optional unused HTTP Password 32 HTTPPWD optional unused Bearer BEARER mandatory unused APN or Number 65 APNORNUM mandatory for unused CSD Net User 32 NETUSER optional unused Net Password 32 NETPWD optional unused DNS DNS optional unused SM Password 32 PWD optional optional The length of the string parameters in the AT command is limited see Table 3 the length in the SM is only limited by the maximum SM length The minimum set of required parameters depends on the intended operation see Table 3 TC45 JAVA User s Guide V02 Page 39 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 8 4 Short message format An OTAP control SM must be a Submit PDU with Class1 PID 7d and 8 bit encoding As a fallback
27. D TC45 JAVA User s Guide VO2 Page 16 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 3 Maintenance Basic maintenance features of the TC45 are described below Explicit details of these functions and modes can be found in the AT Command Set 4 and the Hardware Interface Description 5 3 1 Power Saving The module supports several power saving modes which can be configured by the at command at cfun 4 Power saving affects the Java application in two ways On the one hand it limits the access to the serial interface RS 232 API and the GPIO pins and on the other hand power saving efficiency is directly influenced by the way a Java application is programmed Java hardware access limitations e n NON CYCLIC SLEEP mode cfun 0 the serial interface cannot be accessed while in CYCLIC SLEEP mode CFUN 5 6 7 or 8 the serial interface can be used with hardware flow control CTS RTS e n all SLEEP modes the GPIO polling frequency is reduced so that only signal changes which are less than 0 2Hz can be detected properly Furthermore it should be mentioned that the signal must be constant for at least 2 12s to detect changes For further details refer to 5 Java power saving efficiency e As long as any Java thread is active power consumption cannot be reduced regardless whether any SLEEP mode has been activated or not So a Java application that wants to be power efficient should not have
28. D CALLED NO Xr 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 strings with incorrect AT command syntax will cause mistakes 11 1 3 ATCommandListener interface The ATCommandListener interface implements callback functions for URCs and changes of the serial interface signals RING DCD and DSR The user must create an implementation class for ATCommandListener to receive AT events The ATEvent method of this class must contain the processing code for the different AT Events URCs and the RINGChanged DCDChanged and DSRChanged methods possible processing code for the signal state changes TC45 JAVA User s Guide VO2 Page 65 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 1 3 1 ATEvents An ATEvent or a URC is a report message sent from the module to the application An unsolicited result code can either be delivered automatically wnen an event occurs or as a result of a query the module received before However a URC is not issued as a
29. MIDlet notifies the application management software that it has paused Note notifyPaused is not implemented in IMP 1 0 e resumeRequest the MIDlet asks application management software to be started again Note notifyPaused is not implemented in IMP 1 0 getAppProperty gets a named property from the MIDlet TC45 JAVA User s Guide VO2 Page 31 of 72 30 06 2003 TC45 TC45 JAVA User s Guide Confidential Released Table 2 A typical sequence of MIDlet execution is Application Management Software The application management software creates a new instance of a MIDlet The application management software has decided that it is an appropriate time for the MIDlet to run so it calls the MIDlet startApp method for it to enter the Active state The application management software no longer needs the application be active so it signals it to stop performing its service by calling the MIDlet pauseApp method MP 1 0 does not need the Paused state except for default constructor for the MIDlet A MiDlet pauseApp method is not necessary The application management software has determined that the MIDlet is no longer needed or perhaps needs to make room for a higher priority application in memory so it signals the MIDlet that it is a candidate to be destroyed by calling the M Dlet destroyApp method 5 3 Hello World MIDlet Here is a sample HelloWorld program HelloWorld java S package example helloworld
30. Programmet Builder egdk1 4jreJibjayys jar E ProgrammeBuilder agdk1 4reib ce jar C ProgrammeBuilder agdk1 44resinjsse jar Cc Programme Builder adi 4reibirt jar Cc Pragramme IBuilder Syidk1 4jresib sunrsasign jar Move Down Mew Add Polder Delete Add Edit Move Up Cancel Help Figure 20 Different JDK must be set in User Home TC45 JAVA User s Guide_V02 Page 55 of 72 30 06 2003 TC45 TC45 JAVA User s Guide Confidential Released SIEMENS Mobile CD Configure IDKs E User Home eee Mama JBuilder eod fn Siemens IMP Wireless To Siemens IMP Wireless Toolkit Rename JDK home path c Programme Siemens SMTKIT C4SIMP_ Siemens Change E Always debug with classic Class Source Documentation Micro C Programme Siemenz SMTEKJ TCA4SA7WP Siemensdibiclasses zip CProgrammeSiemens SMTR TC4SahMP Siemenszlibiextiajof jar AC Doc Img DET Mew dd Folder Delete gt bove Bown Cancel Help Figure 21 Dialog box after changing the JDK to Siemens IMP Wireless Toolkit After closing dialog box the Siemens IMP Wireless Toolkit will be used by JBuilder Personal Edition as system wide configuration TC45_ JAVA User s Guide V02 Page 56 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 2 1 2 Restoring original settings For user s convenience the original settings of JBuilder Personal Edition at initial
31. RC it is necessary to register a listener see 8 on this AT Command API instance before passing the first AT Command 3 5 3 Long responses The AT Command API can handle responses of AT commands up to a length of 1024 bytes oome AT commands have responses longer than 1024 bytes for these responses the Java application will receive an Exception Existing workarounds e Instead of listing the whole phone book read the entries one by one e Instead of listing the entire short message memory again list message after message e Similarly read the provider list piecewise e Periods of monitoring commands have to be handled by Java i e at moni at smong These AT commands have to be used without parameters i e at moni the periods have to be implemented in Java TC45 JAVA User s Guide VO2 Page 19 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 3 6 Restrictions 3 6 1 Flash file system The maximum length of a complete path name including the path and the filename is limited by the Flash file system on the module to 124 characters 3 6 2 Memory The memory model of the modules operating system uses 16kByte memory pages Due to this architecture there are two restrictions e t is not possible to create an object that needs more than 16 Kbytes linear i e non fragmented memory If an object has to be created whose size exceeds these 16kByte an OutOfMemoryError will be thrown e f the m
32. and prompt window This setting will be stored eternally To switch back to the wscripting host call cscript H W Script 7 2 Over the Air Provisioning oee Chapter 8 for OTA provisioning 7 3 Security issues The developer should be aware of the following security issues TC45 JAVA User s Guide VO2 Page 36 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 7 3 1 Module Exchange Suite The serial interface should be mechanically protected 7 3 2 OTAP e A password should be used to update with OTA SMS Authentication e Parameters should be set to fixed values at sjotap whenever possible so that they cannot be changed over the air e The http server should be secure e g Access control via basic authentication TC45 JAVA User s Guide VO2 Page 37 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 8 Over The Air Provisioning OTAP 8 1 Introduction to OTAP OTA Over The Air Provisioning of Java Applications is a common practice in the Java world OTAP describes mechanism to install update and delete Java applications over the air Normally this means that a user controls this mechanisms by interaction keys display with the Java device eg as described in the MIDP specification http java sun com products midp OTAProvisioning 1 0 pdf The TC45 product currently implements the IMP1 0 which is based on MIDP1 0 so the OTAP procedure is currentl
33. any unnecessarily active threads e g no busy loops 3 2 Charging Please refer to 4 and 5 for general information about charging Charging can be monitored by the running Java application The JVM is active in Charge mode and when autostart is activated also in Charge Only mode Only a limited number of AT commands are available when the module is in Charge Only mode A Java application must be able to handle the Charge Only mode and reset the module to reinstate the normal mode See 5 for information about the Charge Only mode The Charge Only mode is indicated by URC SYSSTART CHARGE ONLY MODE Note When a Java application is started in Charge Only mode only AT Command API s without CSD are available The indicating URC is created after issuing the very first AT command on any opened channel To read the URC it is necessary to register a listener see 6 on this AT command API instance before passing the first AT command TC45 JAVA User s Guide VO2 Page 1 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 3 3 Alarm mode The ALARM can be set by the attcala AT command Please refer to the AT Command Set 4 and Hardware Interface Description 5 for more information One can set an alarm switch off the module with at smso and have the module restart in ALARM mode at the time set with at cala Only a limited number of AT commands are available when the module is in ALARM mode The JVM is ac
34. ath c Program Filez SIEMEMNSIAMTEKITCAS5fAIBuidersSamplesmellewaorldibak m VYorking directory C Program Files SIEMENS SMTRET C4 Builder Samples helloworld oe source Documentation Required Libraries Jest Path C C IPragram FilezizlEMEMNSZZMTEK TC3S7IBuilderzamplesmelewarldisrc CProgram Files SIEMENS SMTKITC45 JBuilderSamples hellaworld Edit Remove Move Un Hove wen Cancel Help Figure 27 JBuilder Project Properties 10 2 2 5 Compile and run Ensure that the proper emulator will be used and compile the project as normal Any output will be shown in the output window in the IDE 10 3 Breakpoints Breakpoints can be set as usual within the IDE The debugger cannot step through methods or functions whose source code is not available TC45 JAVA User s Guide V02 Page 61 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 Java Tutorial This small tutorial includes explanations on how to use the AT Command API suggestions for programming MIDlets and an example of using AJOF The developer should read about MIDlets Threads and AT commands as a complement to this tutorial 11 1 Using the AT command API Perhaps the most important API for the developer is the AT command API This is the API that lets the developer issue commands to control the module This API consists of the ATCommand class and the ATCommanaListener and ATCommandResponseListener interfac
35. by at sjra Put the files JAR and JAD on the http Server The files can either be publicly available or protected through basic authentication When in doubt try to download the files from the server by using a common web browser on a PC which can reach your http server through TCP IP Prepare the SMS sender The sender must be able to send SMs which conform to chapter O to your device When in doubt try to send normal SMs to your device which can than be read out through the at command interface Test with a local device Send a suitable short message to your device which completes the necessary parameter set and starts the operation The operation is finished when the device reboots You can now check the content of the file system if the correct jar and jad file was loaded into the correct location Analyze error If the above test failed looking at your devices behavior and your http servers access log can give you some hints on what went wrong If the device did not terminate the running Java application and did not reboot not even after the safety timeout either your SM was not understood probably wrong format or did not properly authenticate probably wrong password or your parameter set is incomplete for the requested operation If the device terminated the running Java application but did not access your http server and rebooted after the safety timeout there were most likely some problems when opening the network c
36. cation is not running or by a running Java application as an RS 232 port refer to Java doc 6 These four pins can be configured as general purpose I O when not used as ASC1 The default status of ASC1 is inactive 4 2 4 Digital Audio Interface DAI To support the DAI function the TC45 has a five line serial interface with one input data clock line and input output data and frame lines These five pins can also be configured as general purpose I O when not used as DAI Refer to AT Command Set 4 and Hardware Interface Description document 5 for more information TC45 JAVA User s Guide VO2 Page 23 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 2 5 JVM interfaces IMP 1 0 File API RS232 API AT Command API Connected Limited Device Configuration CLDC J2ME Figure 3 Interface Configuration J2ME CLDC and MIDP were implemented by SUN IMP 1 0 is a stripped down version of MIDP prepared by Siemens and does not include the graphical interface LCDUI Siemens developed the File I O API and the AT command API TC45 also provides an RS 232 interface related to the RS 232 API of MIDP2 0 Documentation for J2ME and CLDC can be found at http java sun com j2me Documentation for the other APIs is found in Java doc 6 4 2 5 1 IMP 1 0 API to TCP IP IMP 1 0 provides access to TCP IP with these interfaces e DatagramConnection e HttpConnection e StreamConnection Because the used
37. cycle The MIDlet life cycle defines the protocol between a MIDlet and its environment through a simple well defined state machine a concise definition of the MIDlet s states and APIs to signal changes between the states A MIDlet has three valid states e Paused The MIDlet is initialised and is quiescent It should not be holding or using any shared resources The Paused state in IMP 1 0 is only used during MIDlet construction it will never reached again after changed state from paused state e Active The MIDlet is functioning normally e Destroyed The MIDlet has released all of its resources and terminated This state is only entered once otate changes are affected by the MIDlet interface which consists of e pauseApp the MIDlet should release any temporary resources and become passive e Note Because the Paused state is not used in IMP 1 0 this method will never be called e startApp the MIDlet starts it s execution needed resources can be acquire here or in the MIDlet constructor e destroyApp the MIDlet should save any state and release all resources e Note destroyApp is called when a MIDlet should terminate caused by device e notifyDestroyed the MIDlet notifies the application management software that it has cleaned up and is done e Note the only way to terminate a MIDlet is to call notifyDestroyed but destroyApp is not automatically called by notifyDestroyed e notifyPaused the
38. d Toenga tube s i bus 2 2 1 2 Module Exchange Suite 2239 TIMIPSIEITIGES murio teens toad A 2 2 1 4 AT Java Open Framework AJOF 2 3 SMTK installation ecodavatex mein IDUd tq mxs ea aevi HUNE 2 3 1 Installing the Standard Development Toolkit 2 3 2 Installing the SMTK environment 2 3 3 Installing Sun ONE Studio 4 1 Mobile Edition 2 3 4 Installing Borland JBuilder MobileSet 3 2 3 4 1 JBuilder Enterprise Edition MobileSet 3 2 3 4 2 JBuilder Personal Edition MobileSet 3 2 4 UNMS sessi Depc UIN NIS yes venntaneiawaeszeusiesacees RM UE N S 2 4 1 Uninstall WinMux eeeeeeeeeeeeeeeeee 2 5 OO AGC S ucisiersivcnnd ivamks iuis C Psi FLUR CEN IE rN On dE ixueEA nnmnnn nnmnnn 3 Maintenance esr 341 J OWBI SAV NING icieuaniicunidmidinc Mende dd DNE Dl RIS 3 2 Charging memcer 9 9 Alarm OUO ossis anindisEUmmM RUM IVPUIM ES EOpESLI UNE EE DIVA TC45 JAVA User s Guide VO2 Page 3 of 72 SIEMENS Mobile E N 13 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 3 4 Shut down TRIESTE 18 9 4 X Automatic SDutQOWTI ccesesssswskecxexie rH km Eva ak EE Xx EFE FXY ERE I YE FE S V pg kw Ea 18 3 4 2 Restart after switch OIf aussoss evettis vua din kavuk Cha ue sdadia tanedtan ve vi dit Exvu Une x Ta xus
39. d e g http 192 168 1 3 datafiles mytest jar not in the filesystem like file a java mytest mytest jar Otherwise this JAD file is useless for OTAP MIDlet Install Notify this is an optional entry specifying a URL to which the result of an update install operation is posted That is the only way to get any feedback about the outcome of an install update operation The format of the posted URL complies with the MIDP OTA Provisioning specification In contrast to the jar and jad file this URL must not be protected by basic authentication MIDlet Name MlIDlet Version MlIDlet Vendor are mandatory entries in the JAD and Manifest file Both files must contain equal values otherwise result 905 see 8 7 is returned MIDlet Jar Size must contain the correct size of the jar file otherwise result 904 see 8 7 is returned Example MIDlet Name MyTest MIDlet Version 1 0 1 MIDlet Vendor TLR Inc MIDlet Jar URL http 192 168 1 3 datafiles MyTest jar MIDlet Description My very important test MIDlet 1 MyTest example mytest MyTest MIDlet Jar Size 1442 A suitable Manifest file for the JAD file above might look like Manifest Version 1 0 MIDlet Name MyTest MIDlet Version 1 0 1 MIDlet Vendor TLR Inc MIDlet 1 MyTest example mytest MyTest TC45 JAVA User s Guide VO2 Page 41 of 72 30 06 2003 TC45 TC45 JAVA User s Guide Confidential Released 8 6 Procedures 8 6 1 Install Update OTAP Java Application Controller
40. d the PWD parameter if necessary The OTAP is started when the keyword START possibly with a parameter is contained in the SM and the parameter set is valid for the requested operation It always ends with a reboot either when the operation is completed an error occurred or the safety timer expired This also means all parameters previously set by SM are gone Apart from the first and the last line in this example these are the parameters described in the previous section Possible parameters for the START keyword are install delete or nothing In the last case an install operation is done by default TC45 JAVA User s Guide VO2 Page 40 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile The network does not guarantee the order of SMs So when using multiple SMs to start a OTAP operation their order on the receiving side might be different from the order in which they were sent This could lead to trouble because the OTAP operation probably starts before all parameters are received If you discover such problems try to wait a few seconds between sending the SMs 8 5 Java file format In general all Java files have to comply with the IMP 1 0 and TC45 specifications There are certain components of the JAD file that the developer must pay attention to when using OTAP MIDlet Jar URL make sure that this parameter points to a location on the network where your latest JAR files will be locate
41. direct response to an executed AT command Some URCs must be activated with an AT command Typical URCs may be information about incoming calls received SM changing temperature status of the battery etc A summary of URCs is listed in the AT Command Set document 4 11 1 3 2 Implementation class ATListenerA implements ATCommandListener public void ATEvent String Event if Event indexOf CALA Reminder 1 gt 0 take desired action after receiving the reminder else if Event indexOf CALA Reminder 2 gt 0 take desired action after receiving the reminder else if Event indexOf CALA Reminder 3 gt 0 take desired action after receiving the reminder j No action taken for these events public void RINGChanged boolean SignalState public void DCDChanged boolean SignalState public void DSRChanged boolean SignalState U j j class ATListenerB implements ATCommandListener public void ATEvent String Event if Event indexOf SCKS 0 gt 0 System out println SIM Card is not inserted j perform other actions else if Event indexOf SCKS 1 gt 0 System out println SIM Card is inserted perform other actions public void RINGChanged boolean SignalState take some action when the RING signal changes if you want to public void DCDChanged boolean SignalState take some action when the DCD signal changes i
42. e ATCommand class for instance with atd an input stream is opened to receive the data from the connection Similarly an output stream can be opened to send data on the connection Please note that this example would not work unless the module had been initialized and logged into a network oysten out printin Drialingr AID CALLED NO response atc send ATD CALLED NO Xr oystem out printin received response if response indexOf CONNECT gt 0 cry 4 We have a data connection now we do some streaming IOException will be thrown if any of the Stream methods fail OutputStream dataOut ATCmd getDataOutputStream InputStream dataln ATCmd getDatalInputStream out streaming dataOut write new String n rHello world n r getBytes dataOut write new String n rThis data was sent by a Java MIDIet Xuve U getbytes dataOut write new String Press Q to close the connection ynvr getBytes and in streaming System out println Waiting for incoming data currently dataIn available bytes in buffer TC45 JAVA User s Guide VO2 Page 63 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile Ley es while char rcv q amp amp char rcv Q amp amp rcv 1 rcv dataIn read if rcv gt 0 System out print char rcv The example continues after the next block of text 7
43. e e e command API with CSD Java AT e E e command API without CSD 1 2 GPRS connection SIEMENS Mobile Phonebook AT management commands e e indicates that the functionality is available from the Java AT command API indicates that the functionality is not available from the Java AT command API except for AT commands related to data calls only two Java AT command API s can be used in parallel to transmit GPRS data TC45 JAVA User s Guide V02 Page 30 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 9 MiDlets The J2ME Mobile Information Device Profile MIDP provides a targeted Java API for writing wireless applications The MIDP runs on top of the Connected Limited Device Configuration CLDC which in turn runs on top of the J2ME MIDP applications are referred to as MlDlets MiDlets are controlled by the mobile device implementation that supports the CLDC and MIDP Since IMP 1 0 is a subset of MIDP 1 0 IMP 1 0 includes MIDlets The MIDlet code structure is very similar to applet code There is no main method and MiDlets always extend from the MIDlet class The MIDlet class in the MIDlet package provides methods to manage a MlDlet s life cycle 5 1 MIDlet documentation MIDP and MIDlet documentation can be found at http wireless java sun com midp and in the html document directory of IMPSIEMENS Siemens SMTK TC45 MPSiemens doc index html 5 2 MIDlet life
44. e the setup procedure and install the IDE installation later or cancel the setup program at this stage and restart it after installing one of the supported Java IDEs In case you wish to install a Java IDE please follow the instructions in Section 2 3 3 for installing Sun ONE Studio Mobile Edition Section 2 3 4 for installing Borland JBuilder Enterprise Mobile Set 3 or Section 2 3 4 2 for installing Borland JBuilder Personal Mobile Set 3 6 If the SDK and one or more Java IDE s are found you will be asked to choose which IDE you want integrated into the TC45 development environment Once an IDE has been found and selected press next to continue Ensure that your Java IDE is closed 7 Select the folder where the TC45 SMTK will be installed A folder will be suggested to you but you may browse to select a different one 8 Choose the path that TC45 will appear under in the Start Menu 9 A brief summary of all entries made shows up 10 After step 9 all necessary files will be copied from the CD into the target folder TC45 JAVA User s Guide VO2 Page 14 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 The installation of WinMux 2 1 is started a Ensure that the module is connected to a serial port and turn the module power on b Press the Scan button of the application All Siemens modems found will be listed in a box The virtual ports are shown If at least one modem is found the Install butt
45. ee ee ee 43 8 7 Time out values and result codes eeeeeeeeeeeee eene 44 m NOS A 44 S9 HOWO t seco 45 TC45 JAVA User s Guide VO2 Page 5 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 9 Compiling and running a program without a Java IDE 46 9T Buld TOSUlls oni aig 209 2aER EFEAE UTERE DNNPBE S SFEPR NS DNE RI E SEESRERRRUR RUE LESE RAMS DONE D BS Gad UY 46 SR EEEESLD2 m 46 9 2 Compile and run on PS aise secre saree nee eared ees wand E NUI EN NEMTPEEEEEAISIME 47 9 3 Run on the module with manual start esses 47 9 4 Run on the module with Autostart eeseeseeeeeee eene nne nnne 47 9 4 1 Switch on OS i acssbenusuteorgiihmidqin a toss bentidia nunsansaneastinne hear tds bu IdURE 48 9 4 2 SWIC off Autostart uuaucetexpisupirk kate ex Ga bera qd vex Esp rS ERU EU add Tac ERE 48 T0 Debug envITODmeliLun usus cano nus kauxknku Eia Ex E UR RC ER a KY n DR 49 10 1 Data flow of a Java application in the debug environment 49 10 1 1 Serial port and pin I O handling differences 50 ju NAME Lid ele RE 50 10 13 Ro 232 GI SEOT sa E EE E 50 192 LR C
46. emory is unfavourably fragmented it might not be possible to create an object that needs a larger amount of memory smaller than 16kBytes even though the reported amount of free memory is larger than the amount needed by the object If this happens an OutOfMemoryError will be thrown 3 Performance statements ocope of the performance study was getting comparable values that indicate the performance under certain circumstances 3 1 Java This section gives information about the Java command execution throughput jPS Java statements per second The scope of this measurement is only the statement execution time not the execution delay Java command on AT interface Java instruction execution gt reaction on GPIO oend URC start performance test ATCommandListener ATEvent Reference loop for frequency A Generated frequency A ATCommand send reference sequence Change output Measurement loop for frequency B goi tini M ous measurement sequence q ATCommand send TC45 JAVA User s Guide VO2 Page 20 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile The following Java instruction was used for calculation of the typical jPS value 2 x number of calculation statements 1 frequencyB 1 frequencyA Measurement and calculation were done using e duration of each loop 600 s e number of calculation statements 5 result CONSTANT VALUE var
47. es Their javadocs can be found in MPSiemensidocMtmlNindex html 6 11 1 1 Class ATCommand The ATCommand class supports the execution of AT commands in much the same way as they would be executed over a serial interface It provides a simple way to send strings directly to the device s AT parsers 11 1 1 1 Instantiation with or without CSD support There can be only exactly as many ATCommand instances as there are parsers on the device If there are no more parsers available the ATCommand constructor will throw ATCommandFailedException A parser with CSD support may be requested through the constructor As is mentioned in Section 4 3 only one of the parsers supports CSD If there are no parsers with CSD support available when requested the constructor will again throw ATCommandFailedException However an instance may be created with CSD support even if it was not requested cry i ATCommand atc new ATCommand false An instance of ATCommand is created CSD is not explicitly requested catch ATCommandFailedException e System out println e j The csdSupported method returns the CSD capability of the connected instance of the device s AT parser DoOoleosn csd Support dLc csd2Uupportedi release releases the resources held by the instance of the ATCommand class After calling this function the class instance cannot be used any more but the resources are free to be used by a new instance TC45 JAVA User s G
48. esponse through http There are two types of OTAP operations e Install Update A new JAR and JAD file are downloaded and installed e Delete A complete application jar jad all application data and its directory is deleted TC45 JAVA User s Guide VO2 Page 38 of 72 30 06 2003 TC45 TC45 JAVA User s Guide Confidential Released SIEMENS Mobile 8 3 OTAP Parameters There is a set of parameters that control the OTAP procedures These parameters can either be set by AT command at sjotap refer to AT Command Set 7 presumably during the production of the device or by SM see Section 8 4 during operation of the device in the field None of the parameters which are set by AT command can be overwritten by SM e JAD File URL the location of the JAD file is used for install or update procedures The JAD file needs to be located on the net e g http someserver net somefile jad or http 192 168 1 2 somefile jad e Application Directory this is the directory where a new application JAD and JAR file is installed The delete operation deletes this directory completely e http User a username used for authentication with the http server e http Password a password used for authentication with the http server e Bearer the network bearer used to open the HTTP TCP IP connection either GPRS or CSD e APN or Number depending on the selected network bearer this is either an access point name for GPRS or a telephone number for
49. f you want to j public void DSRChanged boolean SignalState take some action when the DSR signal changes if you want to TC45 JAVA User s Guide VO2 Page 66 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 1 3 3 Registering a listener with an ATCommand instance After creating an instance of the ATCommandListener class this class instance has to be passed as a parameter to the ATCommand addListener method After that the callback methods will be called by the runtime system each time the corresponding events URCs or signal state changes occur on the corresponding device AT parser we have two ATCommands instances atcl and atc2 ATListenerA reminder listener new ATListenerA ATListenerB Card listener new ATListenerB atcl addbistener reminder listener atc2 addbaistener card listener The ATCommand removeListener method removes a listener object that has been previously added to the internal list table of listener objects After it has been removed from the list it will not be called when URCs occur If it was not previously registered the list remains unchanged The same ATCommandListener may be added to several ATCommand instances and several ATCommandListeners may be added to the same AT Command TC45 JAVA User s Guide VO2 Page 6 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 2Programming the MIDlet T
50. ftware architecture of the SMTK and the interfaces to it 4 1 Software architecture The SMTK enables a customer to develop a Java application on a PC and have it be executable on the TC45 module The application is loaded onto the module The SMTK comprises e A virtual machine the Java 2 Micro Edition J2ME The J2ME is provided by SUN Microsystems http java sun com j2me It is specifically designed for embedded systems and has a small memory footprint e MP 1 0 The IMP is based on the standard MIDP 1 0 and does not include the graphical interface LCDUI TCP IP API is part of IMP e Additional Java virtual machine interfaces AT Command API RS 232 API File I O API The data flow through these interfaces is shown in Figure 4 and Figure 15 Note RS 232 API does not presume that the serial interface is using the RS 232 signal level refer to Hardware Interface Description 5 about signal levels e Memory space for Java programs Flash File System around 300k RAM around 100k Programs and data share the space in the Flash file system and in RAM e Additional accessible periphery for java applications A maximum of 9 shared digital I O pins usable for example as o Output status LEDs o Input Emergency Button Serial interface RS 232 API This standard serial interface could be used for example with an external GPS device or a current meter Detailed information are available in Chapter 4 2 TC45 JAVA Use
51. hapter 7 explains how to download your application to the module e Start a terminal program and connect to ASCO e The command at sjra is used to start the application and is sent to the module via your terminal program Either the application can be started by jar or by jad file When you start by jad file the values of parameters have to be correct Example In your terminal program enter af sjra a java jam example helloworld helloworld jar If you prefer to start with jad File at sjra a java jam example helloworld helloworld jad The Flash file system on the module is referenced by a 9 4 Run on the module with Autostart e The application can be compiled at the prompt as discussed in Section 9 2 or in an SMTK integrated IDE e Transfer the jar and or jad file from the development platform to the desired directory on the module using the Module Exchange Suite or OTA provisioning See Chapter 7 TC45 JAVA User s Guide VO2 Page 47 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 9 4 1 Switch on Autostart e There is an AT command at scfg to configure the autostart functionality Please refer to the AT Command Set 4 e Restart the module 9 4 2 Switch off Autostart To switch off autostart functionality there are two possibilities e at command at scfg e tool autostart off exe included in the Installation CD software To disable the automatic start of a user applicati
52. he life cycle and structure of MIDlets are described in Chapter 5 Since the MlDlets will run on J2ME all of J2ME s features including threads are available Small applications such as those without any timer functions or those used only for tests and simple examples can be written without using threads Longer applications should be implemented with threads 11 2 1 Threads Although small applications can be written without using threads longer applications should use them The Java programming language is naturally multi threaded which can make a substantial difference in the performance of your application Therefore we recommend referring to Java descriptions on threads before making any choices about threading models Threads can be created in two ways A class can be a subclass of Thread or it can implement Runnable For example threads can be launched in startApp and destroyed in destroyApp Note that destroying Java threads can be tricky It is recommended that the developer read the Java documentation on threads It may be necessary to poll a variable within the thread to see if it is still alive 11 2 2 Example This example derives a class from Thread and creates two instances of the subclass One thread instance finishes itself the other one is stopped by the main application package example threaddemo import javax microedition midlet public class ThreadDemo extends MIDlet Member variables
53. iable value Instructions executed twice per pin cycle e frequencyA as measured with universal counter e frequencyB as measured with universal counter The reference loop has the same structure as the measurement loop except the measurement sequence is moved sae PS value nem TC45 module in IDLE mode Not connected 750 jPS CSD connection 450 jPS These mean values may be sporadically reduced depending on dynamic conditions 3 7 2 Pin lO The pin IO test was defined to find out how fast a Java MIDlet can process URCs caused by Pin IO and react on these URCs The URCs are generated by feeding an input pin with an external frequency As soon as the Java MIDlet gets informed about the URC it tries to regenerate the feeding frequency by toggling another output pin external frequency ATCommandListener poll input pin send URC ATEvent set output pin ATCommand me send generated frequency Figure 2 Test overview The results of this test show that the delay from changing the state on the pin to processing the URC in the MIDlet is at least 20 TDMA frames but depends mainly on the amount of garbage to collect and number of thread to serve by the virtual machine So Pin IO is not suitable to generate or detect frequencies TC45 JAVA User s Guide VO2 Page 21 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 Software platform In this chapter we discuss the so
54. ile catch PhonebookStoreException e System out printlin e finally release the used resources pbk release pbk null catch WmLockException e System out println e finally release the used resources lockControl release loockComntrol null catch ATCommandFailedException e System out println e catch SendTimeoutException e oystem out println AT Command timeout finally Terminate the application You don t need to care about closing open AT channels CWmMIDlet does this for you System out println Now terminating application destroyApp true j Your application does not necessarily need to override code destroyApp code but if it does make sure that code super destroyApp code is called to release the AT channels 2 public void destroyApp boolean unconditional your finalization code goes here Ssuper destroyApp unconditional notifyDestroyed TC45 JAVA User s Guide VO2 Page 72 of 72 30 06 2003
55. ile Please note that no fax commands are supported when the TC45 is operated in the Java environment Simply issuing individual AT commands can control the TC45 module See the AT Command Set to learn more about AT commands The AT Java Open Framework allows an application to be built without dealing with individual AT commands This framework sits on top of the AT command API The AT commands have been divided into six functional areas Each area is represented as a package Documentation for the methods of each area and the AT commands covered by these methods can be found in Siemens SMTK TC45 AJOF doc index html 10 Extensions are possible to this framework The Java tutorial in Chapter 11 gives examples on how to use this framework 6 1 1 Mobile engine status This area abstracts AT commands which affect the ME status either by setting or returning device parameters The methods supplied in this category are mostly query methods Most of the methods in this category can be called regardless of the ME s current status The values set by these methods remain valid after the method call is finished 6 1 2 Voice call handling This category provides the methods for the handling of voice calls Some of these methods can only be executed successfully when the module is in a particular state 6 1 3 CSD call and GPRS connection handling Similarly to the voice call handling methods this category provides methods for handling GPRS c
56. installation start the j2sdk 1 4 1 02 windows i586 exe and follow the instructions of the JDK setup procedure 2 Once the toolkit has been installed the environment variable path can be altered to comfortably use the JDK tools 3 Open the Control Panel a Open System Click on Advanced Click on the Environment Variables button d Choose path from the list of system variables Append the path for the bin directory of the newly installed SDK to the list of directories for the path variable D 2 3 2 Installing the SMTK environment 1 Insert CD start setup exe If the dialog box appears simply press the Next button to continue the procedure 2 You will be asked to read the license agreement If you accept the agreement press Next to continue with the installation 3 Afile including special information about the installation and use of the SMTK is shown Press Next to continue 4 The installation software checks for the SDK If there is no SDK on the system the installation procedure will not continue Please follow the instructions in Section 2 3 1 above for installing the SDK 5 At this point the installation software checks for a Java IDE to be integrated with the SMTK A Java IDE is not necessary to use the TC45 SMTK The IDE installation can be done at any time even if the TC45 SMTK is installed already To install the Java IDE run the setup program in maintenance mode again However you can continu
57. intln ThreadDemo startApp starting threads threadl start thread2 start System out println ThreadDemo Waiting 4 seconds before stopping threads try 4 Thread sleep 4000 catch InterruptedException e System out println e j destroyApp true System out println ThreadDemo Closing application notifyDestroyed j x pauseApp public void pauseApp System out println ThreadDemo pauseApp destroyApp a public void destroyApp boolean cond System out println ThreadDemo destroyApp cond System out println ThreadDemo Stopping threads from outsdide runThreads false try System out println ThreadDemo Waiting for threads to die threadl join thread2 join catch InterruptedException e System out println e j System out println ThreadDemo All threads died TC45 JAVA User s Guide VO2 Page 69 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 3 AJOF The following example uses AJOF It demonstrates how the writing of an application for the module is abstracted and simplified with the framework This example does not use threads but could be implemented in a structure similar to the one shown above Some comments e CWmMlIDlet is the MIDlet instance wrapping the application CWmMI Diet adds AT command channel management to the standard MIDlet class e An AT channel ATChannel consists of an ATC
58. li Osses aa 34 6 1 3 CSD call and GPRS connection handling 34 6 1 4 Short Message Service sssssssesssessesese nennen nenne nnne nne 34 6 1 5 Phonebook features iui hoi e neni xai in dE eranc c eco s aiu RI usUe uS suE dS psKSE 99 OIO PINTO E 35 T File transfer to module asp crn det enirn aetna nc eae esto ene vac icu ees cina disons EE 36 LT Module Exchange Sulle heen ene ia emisor Ux eer nee te ee ee eee ee 36 Fn FM rele ciuem TU AES 36 12 COMMA iNe DasQUsssendiensEbeisxnivatsse SE 36 7 2 Over the Air Provisioning uiciocooeipund oe oussu cue ecin cene pepe desacusuM ME URRM S URSM REUS 36 7 3 Security 1S Ift c RH 36 7 3 1 Module Exchange Suite ccccccccccccccsecceeeeeeceeeeeeceeeseeeeeeseeeeeeeeeeeeeseees 37 esp ae can eee een eee ene en nee ee ee ee eee 37 8 Over The Air Provisioning OTAP ccccseceeeeseeeeeeeeseeeeeeseeesenseeeseesenesenseneseesaness 38 o1 Intoducti nto OTAP 38 2 Py ame cao 169 21 ne ne ie ee a ee ete eee ee eee 38 6 3 OTAP P r am t S en ed eC ee eee 39 8 4 Short message format iui ietidaeecobn cse ne D Eois eUnecemsenicu issu ccin sies Enix USES ESd 40 06 5 Jaya Hle TOL E nr ne xm xk ent ern ee er eT 41 05 JPIOCOGUEBS o5p9IDUDIDUIS NUBE S eee te E eee 42 8 6 1 VD S A ECO CS ENTE D IET 42 D02 DOC ee
59. m refer to AT Command Set 4 AT parser AT parser with CSD without CSD ASC 0 4 pins ASC 1 Figure 7 Module State 3 4 4 1 4 State 4 default Java application active The Java application is active and ASCO is used as System out Java instances of AT command are connected to the available AT parsers The Java application is activated with at sjra refer to AT Command Set 4 or autostart Systemout 4 pins default ASCO unused Figure 8 Module State 4 TC45 JAVA User s Guide VO2 Page 27 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 4 1 5 State 5 Java application active general purpose I O The Java application is active ASCO is used as System out and the four I O pins are configured as general purpose I O The Java application is activated with at sjra The I O pins are configured by at scpin Refer to the AT Command Set 4 for AT command details Systema Figure 9 Module State 5 4 4 1 6 State 6 Java application active Java interface to ASC1 The Java application is running ASCO is used as System out and the Java instance of the RS 232 serial interface is connected to ASC1 The Java application is activated with at sjra refer to AT Command Set 4 er Java access to serial AT parser 0 AT parser AT parser Ny interface RS 232 with CSD without CSD without CSD ASCO 4 Pins ASC 1 Java AT command API Java AT command API Java AT command API with CSD without CSD wi
60. mmand to the device the send method 63 11511294 ALAC OM MOC CHO TS ueicsspistudm rV UvQEIIITR BUPER ASDEP NEDENE NENE 63 PEETA YCW ONZa O MERE A 64 11 1 2 ATCommandResponseListener interface sss 65 11 1 2 1 Non blocking ATCommand send method sessss 65 11 1 3 ATCommandListener interface ccccecceeceeeeeeeeeeeeeeeeeneeeeeseeeeeees 65 TC45 JAVA User s Guide VO2 Page 6 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile UE a es el EUNT er eee eee eae eee 66 UN PSP MEO ONC ME UNC aT UU m T 66 11 1 3 3 Registering a listener with an ATCommand instance 67 11 2 Programming the MIDIGL ssesserss EAEE R ATEREA MES 68 Tee NS AG e E E E 68 11 22 TEXANS unnctesesvinbetnrstctesawnitstaspswta xviptatzuxipettesareiamigodmatsastmivts rimis itai 68 TES AJOF 70 Teak EXAME ae 70 TC45 JAVA User s Guide VO2 Page of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile Figures Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 OQVOeT VI GOW ixxxias chain pkdanacoaaar e dans a t a e Can e Rai D t OW t d a 10 ue RITE 21 Menace COMO UF AMON NE T ET 24 Data flow of a Java application running on the module
61. n Enterprise Edition The Siemens emulator is installed as a second emulator in JBuilder Similarly to the Sun ONE Studio integration the default emulator of JBuilder is untouched The Siemens emulator settings can be examined by opening Tools gt Configure JDKs amp Configure IDEs E x JDK Settings Project i Home Mame Siemens IMP Wireless Toolkit Rename hune java version 1 4 1 cat mel xoa a JDE home path c iDevTaols Siemens SMTKIT C453lMP Siemens Change pee reless Too O z ds I goiemens IMP Wireless Toolkit E Always debug with classic Class Source Documentation Micro C DevTaalz siemens SMTEK TC454MP _Siemensbinkdp jar Add Co DevToolsSiemens MTRT CAS AMP _SiemensJdibiclasses zip E Dev Taols Siemens SMTKJTCA5 MP Siemens lib extiajof jar Edit Remove Move Up Hove oven Mew Add Folder Delete Cancel Figure 23 JBuilder JDK settings The libraries included with the Siemens emulator can be examined by opening Tools gt Configure Libraries CI Configure Libraries x Library Settings Es i3 JDatastore rh JDataStore Remote Mare Siemens Rename fd JDataStore Server i oe iy JEiIM p 5 JETL oe i3 JUnit C DevTools Siemens SMTK TC4AS IMP _Siemensvibiclasses zip 4 LayoutAssistant Sample C DevTools Siemens SMTKITCAS MP Siemens lib ext ajaf jar f Open Tools SDK Edit ol SHTML Handler Class Source Documentati
62. ncies in results Furthermore all safety instructions regarding the use of mobile technical systems including GSM products which also apply to cellular phones must be followed Siemens or its suppliers shall regardless of any legal theory upon which the claim is based not be liable for any consequential incidental direct indirect punitive or other damages whatsoever including without limitation damages for loss of business profits business interruption loss of business information or data or other pecuniary loss arising out the use of or inability to use the documentation and or product even if Siemens has been advised of the possibility of such damages The foregoing limitations of liability shall not apply in case of mandatory liability e g under the German Product Liability Act in case of intent gross negligence injury of life body or health or breach of a condition which goes to the root of the contract However claims for damages arising from a breach of a condition which goes to the root of the contract shall be limited to the foreseeable damage which is intrinsic to the contract unless caused by intent or gross negligence or based on liability for injury of life body or health The above provision does not imply a change on the burden of proof to the detriment of the recipient Subject to change without notice at any time The interpretation of this general note shall be governed and construed according to German law without
63. network connection CSD or GPRS is fully transparent to the Java interface the CSD and GPRS parameters must be defined separately by the AT command at sjnet 4 TC45 JAVA User s Guide VO2 Page 24 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 3 Data flow of a Java application running on the module AT Parser i system out D gt ASCO 9 9 JVM Flash File 5 System olo A C a Y Y EN AT Command ser o File I O API lt lt API RS232 API lt gt IMP 1 0 lt lt P TCP IP GPIO GPIO DAI ASC1 Figure 4 Data flow of a Java application running on the module The diagram shows the data flow of a Java application running on the module The data flow of a Java application running in the debug environment can be found in Figure 15 The compiled Java applications are stored as JAR files in Flash File System of module When the application is started the JVM interprets the JAR file and calls the interfaces to module environment The module environment consists of Flash File System TCP IP GPIO DAI ASC1 AT parser available memory for Java applications module internal TCP IP stack general purpose I O Digital Audio Interface Asynchronous serial interface 1 accessible AT parser The Java enviro
64. nfidential Released Mobile 9 2 Compile and run on a PC e Launch a Command Prompt This can be done from the Programs menu or by typing cmd at the Run prompt in the Start menu e Change to the directory where the code to be compiled is kept e Compile the program with the SDK An example of a build batch file can be in a sample program directory found in the examples directory ISiemens SMTK TC45 IMPSiemens src examples e If the compile was successful the program can be run from the command line Example of a run batch file can be found in the examples directory listed above The batch files for compiling and running the samples are using the system environment variables IMP_JDK_DIR that points to the root directory of the installed JDK and IMP_DIR which points to the root directory of the Siemens SMTK TC45 IMP installation The installation process sets these environment variables A modification is usually not necessary They might be modified e g for switching to a different JDK via the advanced system properties as requested In this scenario any AT commands issued by the application are sent to the module by the emulator over ASCO 9 3 Run on the module with manual start e The application can be compiled at the prompt as discussed in Section 9 2 or in an IDE e Transfer the jar and or jad file from the development platform to the desired directory on the module using the Module Exchange Suite or OTA provisioning C
65. nment on the module consists of JVM AT command API File API RS 232 API IMP 1 0 TC45 JAVA User s Guide V02 Java Virtual Machine Java API to AT parser Java API to Flash File System Java API to ASC1 Java API to TCP IP Page 25 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 4 Handling interfaces and data service resources To develop Java applications the developer must Know which resources data services and hardware access are available e There are three AT parsers available one parser with CSD and two without e There is hardware access over two serial interfaces ASCO System out only and ASC1 fully accessible general purpose l O GPIO divided into two groups of pins pin group O and 1 To configure the hardware access please refer to the AT Command Set 4 and the Hardware Interface Description 5 All restrictions of combinations are described in section 4 4 1 e A Java application has three instances of the AT command class each of which would in turn be attached to one of the three AT parsers one instance of access to a serial interface ASC1 through the RS 232 API oystem out over the serial interface ASCO for debugging 4 4 1 Module states The module can exist in the following six states vis a vis a Java application and the four I O pins pin group 0 used for ASC1 and general purpose I O See the AT Command Set 4 for information about any AT
66. nnection TC45 JAVA User s Guide VO2 Page 44 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 8 9 How to This chapter is supposed to be a step by step guideline for using OTAP 1 9 Do you need OTAP Is there any chance that it might be necessary to update the Java application install a new one or delete it The reason might be that your device is in the field and you cannot or do not want to do it over the serial line If the answer is yes then read through the following steps if the answer is no then just consider setting the OTAP SMS password to protect your system Then you are done with OTAP Take a look at the parameters chapter 8 3 which control OTAP You have to decide which of them you want to allow to be changed over the air by SMS and which you do not This is mainly a question of security and what you can fit into a short message Then set the unchangeable parameters with the AT command at sjotap Prepare the http server The server must be reachable by your device over TCP IP That means there is a route from your device over the air interface to the http server and back When in doubt write a small Java application using the httpConnection Interface to test it Prepare the JAR and JAD files which are to be loaded over the air Make sure that these files conform to the requirements named in chapter 8 5 and that they represent a valid application which can be started
67. nts to your desired settings final String RECIPIENT NAME foo bar final String SERVICE CENTRE ADDR 491720000000 final String SIM PIN ODDO final String MESSAGE TXT Hello world creates and sends an SMS message to a recipient whose phone number is retrieved from the SIM phonebook ol li get an AT channel to communicate with the module s AT interface lt li gt just check if the module answers to AT commands li enter the lt code gt SIM PIN lt code gt so we can access the phonebook and send an SMS message li create a phonebook control and look up the recipient s phone number li create an SMS control lt li gt set the service centre address SCA TC45 JAVA User s Guide VO2 Page 0 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile lt li gt last but not least send the SMS message lt li gt Please do not forget to cleanup all used resources Each AJOF class has a method lt code gt release lt code gt which performs this task lt li gt Terminate the application by calling lt code gt notifyDestroyed lt code gt lt ol gt see lt code gt AT lt code gt see lt code gt AT CPIN lt code gt see lt code gt AT CPBR lt code gt see see m lt code gt AT CPMGF lt code gt lt code gt AT CPMGS lt code gt public void startApp try To access the module we need an AT channel AtChannel
68. oject The Project Manager is accessed through the Project menu G Project Manager E E x Existing Projects gt Project Default Project Siemens TC 45 Hellavvarld amp Project Siemens TC 45 empty Figure 18 Sun ONE Studio Project Manager TC45 JAVA User s Guide V02 Page 53 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 1 3 Templates Templates for a Siemens MIDlet and Java Class can be found in the file explorer and under File gt New The MIDlet template provides the skeleton of a MIDlet application The Class template can be used to write a class for a Siemens MIDlet application for the TC45 liNew Wizard xi i ee COE Template 1 Choose Template select a Template a X Templates d Folder Junit amp MEF ed Class Hellci iarld Midlet amp Test Tools Intervals amp JAR Packager o E Template Description Using this Category you can write Wireless Java Applications for SIEMENS TC 45 KCHN N Figure 19 Sun ONE Studio Selecting a template 10 2 1 4 Examples There are sample MlDlets in the IMPSiemens src examples directory This directory is mounted in Sun ONE Studio and can be seen in the Explorer window 10 2 1 5 Compile and run Ensure that the proper emulator will be used and compile the project as normal Any output will be shown in the output window in the IDE 10 2 2 J
69. on Framework Required Libraries a Siemens Remove e Struts ly Unit Test ly Web Start ly WSDL4J m E Walan pos Xerces n XmlBeans Move Up R3 XMLDBMS howe Dori Mew Add Folder Delete Cancel Help Figure 24 JBuilder Siemens Library TC45_JAVA User s Guide_V02 Page 58 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 2 3 Examples There are sample projects provided with the SMTK These projects can be found in the JBuilderSamples directory of the Siemens TC45 SMTK installation directory This directory is accessed by opening a project File gt Open Project y Open Project or Project Group B X Directory L G helloworld E rm Ci gm A E UN DIP X DISCONVER E E SMTK Helloyvorld jp Desktop Fly Tc45 E IMF Siemens z leg JBuilderzamplez TEM E ajoftutorial E EE alarm fa H E Fy custdemo H ix dataconnectionderna Project E H Eam EHE H L3 rs232dermo Samples OB legi smsclipinfa B a ModuleExchange E i Simple Backup gt hd a 73 trannies File name Helicworld jpx File type All JBuilder Projects jpx jpr jpar Cancel Help Figure 25 JBuilder Sample Projects TC45 JAVA User s Guide V02 Page 59 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 2 2 4 Projects and templates To create a new project select File gt New Project
70. on becomes active The selected modems are installed if this button is pressed c The Device Manager can be used to check if the installation was successful The driver instances are visible in the device manager class Multi port serial Adapters 12 This is the final step Again a listing of all installed components appears 2 3 3 Installing Sun ONE Studio 4 1 Mobile Edition 1 Sun ONE Studio 4 1 Mobile Edition is provided on the TC45 SMTK installation disk in the subdirectory SunOne ME To begin installation start the ffi me win32 exe and follow the instructions of the Sun ONE setup procedure 2 Onthe first use of Sun ONE Studio 4 Update 1 Mobile Edition after installation you will be prompted to specify a personal Java folder when Sun ONE is started for the first time If more then one user uses the computer each user may have their own Java folder Note The integration of the SMTK into Sun ONE Studio 4 Update 1 Mobile Edition is only possible if the personal user folder is set It can only be rolled back by the user who installed the SMTK If all users use the same Java folder any user may roll back the integration 2 3 4 Installing Borland JBuilder MobileSet 3 Borland JBuilder and MobileSet can be purchased from http www borland com jbuilder JBuilder must be installed before installing the MobileSet MobileSet 3 for Personal Edition is the same as for Enterprise Edition Note The installation path name of JBuilder sho
71. on are synchronized in the user implementation TC45 JAVA User s Guide VO2 Page 64 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 1 2 ATCommandResponseListener interface The AlCommandResponseListener 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 an implementation class for 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 sent AT command class MyListener implements ATCommandResponseListener String 11s ten for void myListener String awaited response listen for awaited response void ATResponse String Response if Response i1ndexOr listen for gt 0 4 System out println received strRcv 11 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 AT
72. on in a module these steps have to be done Connect the module to the PC Make sure that the module is switched off Start the Autostart Off program Select the COM Port Press the Autostart Off button Und C9 Dom TC45 JAVA User s Guide VO2 Page 48 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 10 Debug environment Please note that this section is not intended as a tutorial in debugging or how to use Sun ONE Studio or Borland JBuilder Documents for these IDEs can be found on their respective homepages Once the proper emulator has been selected as described in the relevant IDE sections below your Java application can be built debugged and executed as usual 10 1 Data flow of a Java application in the debug environment AT parser A Disabled 9 This section is emulated E on the PC Ss Flash File i 9 SNM E System a J eae i O O J Y Y glg z p gt AT command API File I O API q Multiplexer RS 232 API lt q IMP 1 0 lt r TCP IP ace p nes M O d u e Com Port Multiplexer AT command API f gt RS 232AP lt Com Port JKVM d File I O API amp 4 File System
73. onnection Check your network parameters If the device downloaded the jad and probably even the jar file but then rebooted without saving them in the file system most likely one of the errors named in chapter 8 5 occurred These are also the only error conditions which can also be reported back They are posted to the http server if the jad file contains the required URL Start update of remote devices If you were able to successfully update your local device which is hopefully a mirror of all your remote devices you can start the update of all other devices TC45 JAVA User s Guide VO2 Page 45 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 9 Compiling and running a program without a Java IDE This chapter explains how to compile and run a Java application without a Java IDE Compiling and running Java applications with a Java IDE is explained in Section 10 2 1 5 and Section 10 2 2 5 Three different methods for running an application are described The first method explains how to run the program on a PC that is in the development environment The second and third methods describe how to run the application on the actual module 9 1 Build results A JAR file has to be created by compiling an SMTK project A JAR file will contain the class files and auxiliary resources associated with an application A JAD file contains information file name size version etc on the actual content of the as
74. onnections and CSD calls 6 1 4 Short Message Service There are two formats text and PDU for sending short messages The developer can create messages of both formats however AJOF handles SMs internally in the PDU format With this framework sending a short message should be as simple as writing a string to the screen The methods provided do all the appropriate conversions for reading or preparing an SM These conversions are transparent to the application programmer TC45 JAVA User s Guide VO2 Page 34 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 6 1 5 Phonebook features The phonebook methods provide access to the phonebook storage media This class provides methods to select a storage medium list the stored entries write into browse through read or delete from a storage medium 6 1 6 Pin I O The pin I O class provides methods for configuring the pins writing to and reading from the pins configuring the pins as a port and listening to the pins port TC45 JAVA User s Guide VO2 Page 35 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 7 File transfer to module 7 1 Module Exchange Suite The Module Exchange Suite allows you to view the Flash file system on the module as a directory from Windows Explorer Make sure that the module is turned on and that ASCO of the module is connected to the configured comport of Module Exchange Suite The adju
75. ows the developer to access the Flash file system on the cellular engine from the development environment over a serial interface File transfers from PC to module are greatly facilitated by this suite 2 2 1 3 IMPSiemens IMPSiemens is the directory where all the necessary components for the SMTK are stored The virtual machine all necessary interfaces and packages the RS 232 emulator and the Flash file system emulator are included The AT Command API is the Java interface to the module s AT command interpreters It allows AT commands to be sent as strings directly to the AT command interpreters 2 2 1 4 AT Java Open Framework AJOF The AJOF sits on top of the AT Command class API and allows the developer to write Java applications for the module without dealing directly with AT Commands TC45 JAVA User s Guide VO2 Page 13 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 2 3 SMTK installation The SMTK comes with an installation CD The installation program provided automatically installs the necessary interfaces and emulators Software can be uninstalled and updated with the install program The next sections cover the installation and removal of the SMTK and the installation of the SDK Sun ONE Studio or Borland JBuilder 2 3 1 Installing the Standard Development Toolkit 1 The JDK version 1 4 1 02 is provided on the TC45 SMTK installation disk in the subdirectory JDK 1 4 1 To begin the
76. r in the JAD file does not match those given in the JAR manifest 906 not supported 8 8 Notes For security reasons it is recommended to use a SMS password Otherwise the delete operation can remove whole directories without any authentication For extra security setup a private CSD PPP Server and set its phone number as a fixed parameter This way applications can only be downloaded from one special server As a side effect OTAP can be used to simply reboot the module Just start an OTAP procedure with a parameter set which does not really do anything like a delete operation on a nonexistent directory If you don t want to start OTAP by SMS let your Java application do it by issuing the at sjotap command That triggers a install update operation as described in chapter 8 6 1 but without the SMS part Note If a malfunctioning Java application is loaded the SM method will still be needed for another update The OTAP procedure cannot be tested in the debug environment Be aware that the module needs to be booked into the network to do OTAP That means that either the Java application has to enter the PIN or the PIN needs to be disabled To ensure that you can still do OTAP even or especially when the current Java application does not work properly disable the PIN during OTAP activities This might not be possible in all networks The OTAP procedure might fail due to call collision e g a incoming call when OTAP tries to start a CSD co
77. r s Guide VO2 Page 22 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 2 Interfaces 4 2 1 ASCO Serial device ASCO an Asynchronous Serial Connection is a 9 wire serial interface It is described in the Hardware Interface Description 5 Without a running Java application the module can be controlled by sending AT commands via ASCO Furthermore ASCO is designed for transferring files from the development PC to the module and for controlling the module with AT commands When a Java application started ASCO is used for debugging from the development environment as System out for Java applications running on the module see oection 4 4 1 4 2 2 General Purpose I O There are nine I O pins that can be configured for general purpose I O When JAVA User s Guide starts up all 9 pins of both interfaces are set by default to high impedance state for use as input The pins are divided into two GPIO pin groups Pin group 0 GPIO O0 3 is the set also used as ASC1 The second pin group GPIO 4 8 shares resources with the DAI Pins 0 3 can be configured either as general purpose I O GPIO or ASC1 but not both The same for pins 4 8 they can be configured either as GPIO or as DAI See 4 and 5 about configuring the pins 4 2 3 ASC1 ASC is the second serial interface on the module This is a 4 pin interface RX TX RTS CTS It can be used as a second AT interface when a Java appli
78. reference to any other substantive law Copyright Transmittal reproduction dissemination and or editing of this document as well as utilization of its contents and communication thereof to others without express authorization are prohibited Offenders will be held liable for payment of damages All rights created by patent grant or registration of a utility model or design patent are reserved Copyright Siemens AG 2003 Trademark notices MS Windows is a registered trademark of Microsoft Corporation Java and Sun ONE Studio 4 1 Mobile Edition are registered trademarks of Sun Microsystems Inc Borland JBuilder Enterprise MobileSet 3 and JBuilder Personal MobileSet 3 are registered trademarks of Borland Software Corporation TC45_JAVA User s Guide_V02 Page 2 of 72 30 06 2003 TC45 TC45 JAVA User s Guide Confidential Released Table of Contents 0 Document hISLOTV sisri aa Eik 1 IEF OO U CU ONT x os aei vex eunt ixi KE UK SeURUN NUR QUEUE NEU CS KS ADI UN ET XKRFEUNMIDU tI 02707 e ne ee eee eee errr 1 2 Related documents 1 3 Terms and abbreviations 2 Installation ME 2 1 System requirements eeeeeeeeeeneee 2 2 Installation C D uciessaxxs sausuntsapsshEuK sax xdqExA ES FEREPY EE beurEEVE DE KE US 2 2 1 COMDPDONENIS esincat ker dne atie a ied Gor AS du lk MVIBIMUS
79. sociated JAR file It must be written by the user The JAR file has the jar extension and the JAD file has the jad extension When the module is provisioned with the Module Exchange Suite as described in Section 7 1 only the JAR file is needed The JAD file is additionally necessary for OTA provisioning OTA provisioning is described in Chapter 8 Note The path to your installed SIEMENS SMTK TC45 IMPSiemens lib classes zip is needed to build a JAR file 9 1 1 JAD file In addition to class and resource files a JAR file contains a manifest file which describes the contents of the JAR The manifest has the name manifest mf and is automatically stored in the JAR file itself An IMP manifest file for package example mytest public class MyTest extends MIDlet includes at least Manifest Version 1 0 MIDlet Name MyTest MIDlet Version 1 0 1 MIDlet Vendor Siemens MIDlet 1 MyTest example mytest MyTest A JAD file must be written by the developer and must include at least MIDlet Name MyTest MIDl t Version 1 0 1 MIDlet Vendor Siemens MIDlet 1 MyTest example mytest MyTest MIDlet Jar URL http 192 168 1 3 datafiles MyTest jar MIDlet Jar Size 1408 A detailed description of these attributes and others can be found in the Java MlDlet documentation http java sun com 2me docs alt html WTK104 UG Ap Attributes html TC45 JAVA User s Guide VO2 Page 46 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Co
80. stment of the configured comport can be checked by attributes on Module directory Please note that the Module Exchange Suite can be used only if the module is in normal mode 7 1 1 Windows based The directory is called Module and can be found at the top level of workspace MyComputer To transfer a file to the module simply copy the file from the source directory to the target directory in the Module 7 1 2 Command line based A suite of command line tools is available for accessing the module s Flash file system They are installed in the Windows System directory so that the tools are available from any directory The module s file system is accessed with mod The tools included in this suite are MESdel MEScopy MESdir MESmkdir MESrmdir and MESformat Entering one of these commands without arguments will describe the command s usage The tools mimic the standard directory and file commands A path inside the module s file system is identified by using mod instead of a PC drive letter e g MESdir mod lists the contents of the module s root directory To direct the output of the Visual Basic Script VBS based command line tools into the command prompt window instead of a Windows popup window the VBS command scripting must be used host instead of the Windows scripting host This is achieved by calling the scripting host once with the parameter H CScript Call the command cscript H CScript once in a comm
81. ta Carrier Detect DSR Data Set Ready GPIO General Purpose O GPRS General Packet Radio Service GPS Global Positioning System HTTP Hypertext Transfer Protocol I O Input Output IDE Integrated Development Environment IMP Information Module Profile IP Internet Protocol J2ME Java 2 Mobile Edition J2SE M Java 2 Standard Edition JAD Java Application Description JAR Java Archive JDK Java Development Kit JVM Java Virtual Machine LED Light Emitting Diode ME Mobile Engine MIDP Mobile Information Device Protocol OTA Over The Air OTAP Over The Air Provisioning of Java Applications PDP Packet Data Protocol PDU Protocol Data Unit SDK Standard Development Kit SMS Short Message Service SMTK Siemens Mobile Toolkit TCP Transfer Control Protocol URC Unsolicited Result Code URL Universal Resource Locator VBS Visual Basic Script TC45_JAVA User s Guide V02 Page 11 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 2 Installation 2 1 System requirements The Siemens Mobility Toolkit SMTK TC45 requires that you have Windows 2000 or Windows XP installed 35 Mbytes free disk space Administration privileges Java 2 SDK Standard Edition version 1 3 or 1 4 To install the JDK version 1 4 1 provided follow the instructions in Section 2 3 1 In case you wish to use the Java 2 SDK version 1 3 please download the version from http java sun com j2se 1 3 download html Dow If a Java IDE such as Sun ONE Studio 4 1
82. thout CSD Figure 10 Module State 6 TC45 JAVA User s Guide VO2 Page 28 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 4 4 2 Module state transitions Java autostart no Java autostart start java at sjra State 4 Default Java active State 1 Default no Java appl running destroy java application close GPIO close GPIO open GPIO open GPIO close ASC1 for Java State 5 Java active using GPIO on ASC1 State 2 no Java appl running using GPIO on ASC1 start java at sjra destroy Java application close second at interface open ASC1 for Java open second at interface destroy java application State 6 Java active ASC1 accessible from Java State 3 no Java appl running at interface on ASC1 start java at sjra Figure 11 Module State Transition Diagram Note No AT parser is available over serial interface ASCO or ASC1 while a Java application is running on the module e System out is available on ASCO for debugging while a Java application is running e Comparison of Java AT command API s TC45 JAVA User s Guide VO2 Page 29 of 72 30 06 2003 TC45 TC45 JAVA User s Guide Confidential Released Table 1 Java AT commands Voice calls Data calls SMS incoming incoming incoming outgoing outgoing outgoing Java AT
83. tive in ALARM mode when autostart is activated A Java application must be able to handle the ALARM mode and reset the module to reinstate the normal mode The ALARM mode is indicated by URC SYSSTART ALARM MODE Note When a Java application is started in ALARM mode only AT Command API s without CSD are available The indicating URC is created after issuing the very first AT command on any opened channel 3 4 Shut down In the case of an unexpected shut down data that should be written will get lost due to a buffered write access to the flash file system However the best and safest approach to powering down the module is to issue the AT SMSO command This procedure lets the engine log off from the network and allows the software to enter into a secure state and save all data Further details can be found in 5 3 4 1 Automatic shutdown The module is switched off automatically in different situations e under or overtemperature e under or overvoltage This will happen without a warning notification unless the appropriate URC has been activated If the URC is activated the module will deliver the URC before switching off The AT command at sctm is used to activate and configure the overheating URC It is recommended that this URC be activated so that the module can be shut by the application with at smso after setting an alarm see Section 3 3 Please note that there is no URC function available for overvoltage conditions i e no alert
84. uide VO2 Page 62 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 11 1 1 2 Sending an AT command to the device the send method An AT command is sent to the device by using the send method The AT command is sent as a string which must include the finalizing line feed r or the corresponding line end character String response atc send attcpin r method returns when the module returns a response System out printin response Possible response printed to System out CPIN READY OK This send function is a blocking call which means that the calling thread will be interrupted until the module returns a response The function returns the response the result code of the AT command as a string Occasionally it may be infeasible to wait for an AT command that requires some time to be processed such as at cops There is a second non blocking send function which takes a second parameter in addition to the AT command This second parameter is a callback instance ATCommandResponseListener Any response to the AT command is delivered to the callback instance when it becomes available The method itself returns immediately The ATCommandResponseListener and the non blocking send method are described in Section 11 1 2 Note Using the send methods with strings with incorrect AT command syntax will cause mistakes 11 1 1 3 Data connections If a data connection is created with th
85. uld not include space characters Otherwise MobileSet is not working 2 3 4 1 JBuilder Enterprise Edition MobileSet 3 A free version of JBuilder Enterprise Edition is available for 30 days JBuilder must be installed before installing the MobileSet Installation instructions can also be found on the web page 2 3 4 2 JBuilder Personal Edition MobileSet 3 A free version for non commercial use can be downloaded from Borland s website Installation is similar to Enterprise Edition JBuilder must be installed before installing the MobileSet The integration of TC45 SMTK into the JBuilder Personal Edition is somewhat tricky and therefore briefly explained chapter 10 2 2 1 TC45 SMTK in Personal Edition TC45 JAVA User s Guide VO2 Page 15 of 72 30 06 2003 TC45 TC45 JAVA User s Guide SIEMENS Confidential Released Mobile 2 4 Uninstall The TC45 SMTK install package comes with an uninstall facility The entire SMTK or parts of the package can be removed To start the uninstall facility open the Control Panel select Add Remove Programs select C45 and follow the instructions 2 4 1 Uninstall WinMux The WinMux multiplexer must be manually uninstalled with the Hardware Manager It can also be uninstalled with Control Panel gt Add Remove Hardware Choose the uninstall options and select the Serial Multiplexer to be uninstalled 2 5 Upgrades The SMTK can be modified repaired or removed by running the setup program on the Installation C
86. y also based on the MIDP1 0 recommended practice for Over The Air Application Provisioning The OTAP mechanism described in this document does not require any physical user interaction with the device it can be fully controlled over the air interface Therefore it is suitable for Java devices that are not supposed to have any manual interaction like vending machines or electricity meters 8 2 OTAP overview To use OTAP the developer needs apart from the device fitted with the TC45 module an http server which is reachable through a TCP IP connection either over GPRS or CSD and a SMS sender which can send Class1 PID 7d short messages This is the PID reserved for module s data download Java Application Server HTTP Server HT TP TCP IP PENIGE pe uae jar file over GPRS CSD ae jad file gate OTAP Controller SMS Sender Figure 12 OTAP Overview The Java Application Server http Server contains the jar and the jad file which are to be loaded on the device Access to these files can be protected by http basic authentication The OTAP Controller SMS Sender controls the OTAP operations It sends SMs with or without additional parameters to the devices that are to be operated These devices then try to contact the http server and download new application data from it The OTAP Controller will not get any response about the result of the operation Optionally the server might get a result r
Download Pdf Manuals
Related Search
Related Contents
herramienta básica 1. Introduction 使用説明書 - 株式会社アプロサイエンス g…fi…{Łt ‹ó“üŠpPDF Foglio Istruzioni.indd PDFダウンロード(1516Kb) STM32F105/7 USB host library HeartSine samaritan® PAD 300P Upgrader (1.4.2/3.2.0) Protocol and Guidelines Appendices 1 Puls-CO-Oxymetrie (SpO , SpCO, SpMet) Copyright © All rights reserved.
Failed to retrieve file