Getting Started with itron SMART TFTs - Program
Basics If you received a development kit with USB cable and SD card inserted into the module, just plug in the USB cable between a PC and the display module. The boot code and operational software will load and then run the file TUxxxA.mnu from the SD card where xxx is the X number of pixels of the TU module. This will be TU320A.mnu, TU480A.mnu, TU640A.mnu or TU800A.mnu. Production modules are not supplied with demonstration screens. After experimenting with the demonstration, review the basic applications below. Do not hesitate to send us an email for further explanation. Key issues to understand.. 1. The system uses text commands rather than difficult to remember hex codes.
2. All objects and functions are given a name for easy future referencing.
3. Commonly used parameters are stored in 'styles' like in HTML web pages. |
LIB... //load in images and fonts from memory into library LIB... INC.. //include another menu file which may have global styles and setup. STYLE... //define styles for pages, text, images used in this file STYLE... SETUP.. //setup system and external interfaces like RS232 SETUP... VAR... //create variables used for calculation, temporary storage and pointing VAR... PAGE(MAIN,styleMain) //create a main page with text, images and associated keys { POSN... TEXT //place text at a specified position on screen POSN... IMG //place icon/image at a specified position on screen POSN... KEY //place a touch key area on screen and define function to call } PAGE(SUB,stylePage1) //create other pages { POSN... TEXT //place text at a specified position on screen POSN... IMG //place icon/image at a specified position on screen ....... LOOP(CntLoop,FOREVER) { IF(CNTMINS=0,FncZero); // function calls associated with page } } FUNC(FncZero){ LOAD(RS2,"Hour Count = ",CNTHRS,"\\0A\\0D"); //send message to host via RS232 FUNC(MyFunc){ ...................} //other functions associated with key press or interfaces INT... // Initialise interrupts for slave timers and inputs...not host interface - use setup with v39 software SHOW(MAIN); // After pre-loading all style parameters, pages and functions, start the application with first page. //After this point, functionality follows page key presses and functions or incoming command data from host or interfaces. |
When creating an entity for the first time,
include the style parameter. To update the entity omit the style parameter. If you specify the style again, you will create a copy. Entities are layered on the screen from back to front in the order they are listed in the menu with the screen background defined in the page style. If you want a button image to change colour, include one colour button in your background and the other colour button as a separate image over the top. To change colour, just HIDE and SHOW the top button. This technique is used in the air conditioner project. The examples below can be cut and pasted from their box into a text editor (NotePad). Save the file as TU480A.mnu and copy onto the SD card. Plug it into the itron SMART TFT module, apply power and view the result. |
Hello World from Internal Menu |
// Menu file TU480A.MNU for Demo using TU480X272C // Simple demo to display text STYLE(BlackPg, Page) { Back=black;} //black background STYLE( Txt32White, Text ) { font=Ascii32; col=white; maxLen=32; maxRows=1; curRel=CC; //white system text 32 pixels high } PAGE( MainPg, BlackPg ) { POSN( 240, 136 ); // Set writing position to centre of display TEXT( Text1, "Hello World", Txt32White ); // Draw text } SHOW( MainPg ); //end |
Hello World via RS232 IN with touch key to send RS232 OUT |
// Menu file TU480A.MNU for Demo using TU480X272C // 07-Oct-2010 // This example is identical to example 1 except RS232 is defined // using setup for command mode at19200 baud, no parity STYLE(BlackPg, Page) //define page style { Back=black; //background is black } STYLE( Txt32White, Text ) //define text style { font=Ascii32; //use built in font col=white; //text colour is white maxLen=32; maxRows=1; curRel=CC; //centre position } VAR(mytxtVar,"Hello People",TXT); //create a text variable to hold up to 32 characters PAGE( MainPg, BlackPg ) { POSN( 240, 136 ); // Set writing position to centre of display TEXT( Txt1, mytxtVar, Txt32White ); // Create text area at the writing position KEY(Key1,[LOAD(RS2,mytxtVar,"\\0D\\0A");],470,270,TOUCH); //Touch screen to sends content of mytxtVar plus CRLF out of RS232 port } SETUP( RS2 ) { set = "192NC"; // 19200 bps, no parity, command mode } SHOW( MainPg ); // Send text command to the display via RS232 : LOAD( mytxtVar, "Hello World" );;\\0D // Note :- // Sending 2 semicolons is equivalent to SHOW (currentpage); |
Images loaded, flashed and moved |
// Menu file TU480A.MNU for Demo using TU480X272C // 11-Oct-2010 // This example places 2 images on the display with one flashed and moved. LIB(Image1,"SDHC/lift1.bmp?back=\\0000CD"); //load image1 from SD card LIB(Image2,"SDHC/lift2.bmp?back=\\0000CD"); //load image2 from SD card STYLE(BluePg, Page) {back=\\0000CD;} //define style of page with blue background STYLE(StImg, Image) {curRel=CC;} //centre image with respect to POSN cursor PAGE( MainPg, BluePg ) { POSN( 199, 136 ); IMG( LeftImg, Image1,172,240,StImg); // Position and draw 1st image on display POSN( 396, 136 ); IMG( RightImg, Image2,172,240,StImg); // Position and draw 2nd image on the display } SHOW( MainPg ); //show page WAIT(2000); //wait 2 seconds HIDE( LeftImg );; //hide left image and refresh page WAIT(2000); SHOW( LeftImg );; //show left image and refresh page WAIT(2000); POSN( 396,136,LeftImg);; //position left image under right image and refresh page // Sending 2 semicolons is equivalent to SHOW (currentpage); //You will see a blue border around the right image due to background transparency differences |