SMARTGPU intelligent embedded graphics processor, this library helps to communicate mBed with SMARTGPU dev board 2.4\" touch, excellent serial board that only require TX,RX, and Reset pin to mbed. Powerfull graphics and text processor with universal 4GB micro SD (FAT windows) format compatible. For detailed information visit: http://www.vizictechnologies.com/#/desarrollo/4554296549 www.vizictechnologies.com

Dependents:   VariousSG BouncingBalls BounceBall House ... more

Committer:
emmanuelchio
Date:
Mon Sep 12 23:23:11 2011 +0000
Revision:
0:32fe54a88167
Child:
1:96ed067e95a6
SMARTGPU library Rev1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emmanuelchio 0:32fe54a88167 1
emmanuelchio 0:32fe54a88167 2 #include "mbed.h"
emmanuelchio 0:32fe54a88167 3 #include "SMARTGPU.h"
emmanuelchio 0:32fe54a88167 4
emmanuelchio 0:32fe54a88167 5 Serial SGSERIALPORT(TXpin, RXpin); //create the serial port which is connected to SMARTGPU serial port
emmanuelchio 0:32fe54a88167 6 DigitalOut Rst(resetPin);
emmanuelchio 0:32fe54a88167 7
emmanuelchio 0:32fe54a88167 8 // SMART GPU DEFAULT BAUD RATE: 9600bps
emmanuelchio 0:32fe54a88167 9 // Mbed default configured port for serial communication with SMARTGPU is p13 for TX, and p14 for RX, Resetpin =p15
emmanuelchio 0:32fe54a88167 10 SMARTGPU::SMARTGPU(){
emmanuelchio 0:32fe54a88167 11 init();
emmanuelchio 0:32fe54a88167 12 }
emmanuelchio 0:32fe54a88167 13
emmanuelchio 0:32fe54a88167 14 /********** high level commands, for the user! */
emmanuelchio 0:32fe54a88167 15 void SMARTGPU::init(){ //configure the mbed for SMARTGPU board
emmanuelchio 0:32fe54a88167 16 SGSERIALPORT.baud(9600);
emmanuelchio 0:32fe54a88167 17 Rst=1; //set the pin to 3.3v to avoid reset
emmanuelchio 0:32fe54a88167 18 }
emmanuelchio 0:32fe54a88167 19
emmanuelchio 0:32fe54a88167 20 void SMARTGPU::reset(){ //Reset the SMARTGPU board
emmanuelchio 0:32fe54a88167 21 Rst=0; //set the pin to GND to reset
emmanuelchio 0:32fe54a88167 22 wait_ms(500);
emmanuelchio 0:32fe54a88167 23 Rst=1; //set the pin to 3.3v to end reset
emmanuelchio 0:32fe54a88167 24 wait_ms(500);
emmanuelchio 0:32fe54a88167 25 }
emmanuelchio 0:32fe54a88167 26
emmanuelchio 0:32fe54a88167 27 unsigned char SMARTGPU::start(){ //Init the SMARTGPU
emmanuelchio 0:32fe54a88167 28 wait_ms(500);
emmanuelchio 0:32fe54a88167 29 SGSERIALPORT.putc('U');
emmanuelchio 0:32fe54a88167 30 wait_ms(1000);
emmanuelchio 0:32fe54a88167 31 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 32 }
emmanuelchio 0:32fe54a88167 33
emmanuelchio 0:32fe54a88167 34 unsigned char SMARTGPU::erase(){ //Erase the SMARTGPU screen
emmanuelchio 0:32fe54a88167 35 SGSERIALPORT.putc('E');
emmanuelchio 0:32fe54a88167 36 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 37 }
emmanuelchio 0:32fe54a88167 38
emmanuelchio 0:32fe54a88167 39 unsigned char SMARTGPU::sleep(unsigned char mode){ //Send SMARTGPU to sleep mode
emmanuelchio 0:32fe54a88167 40 SGSERIALPORT.putc('Z');
emmanuelchio 0:32fe54a88167 41 SGSERIALPORT.putc(mode);
emmanuelchio 0:32fe54a88167 42 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 43 }
emmanuelchio 0:32fe54a88167 44
emmanuelchio 0:32fe54a88167 45 unsigned char SMARTGPU::orientation(unsigned char side){ //Change display orientation
emmanuelchio 0:32fe54a88167 46 SGSERIALPORT.putc('O');
emmanuelchio 0:32fe54a88167 47 SGSERIALPORT.putc(side);
emmanuelchio 0:32fe54a88167 48 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 49 }
emmanuelchio 0:32fe54a88167 50
emmanuelchio 0:32fe54a88167 51 unsigned char SMARTGPU::bright(unsigned char val){ //Change display brightness
emmanuelchio 0:32fe54a88167 52 SGSERIALPORT.putc('V');
emmanuelchio 0:32fe54a88167 53 SGSERIALPORT.putc(val);
emmanuelchio 0:32fe54a88167 54 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 55 }
emmanuelchio 0:32fe54a88167 56
emmanuelchio 0:32fe54a88167 57 unsigned char SMARTGPU::baudChange(unsigned long val){ //Change baud rate of arduino and SMARTGPU board
emmanuelchio 0:32fe54a88167 58 unsigned char aux;
emmanuelchio 0:32fe54a88167 59
emmanuelchio 0:32fe54a88167 60 switch(val){
emmanuelchio 0:32fe54a88167 61 case 9600:
emmanuelchio 0:32fe54a88167 62 aux=0;
emmanuelchio 0:32fe54a88167 63 break;
emmanuelchio 0:32fe54a88167 64 case 19200:
emmanuelchio 0:32fe54a88167 65 aux=1;
emmanuelchio 0:32fe54a88167 66 break;
emmanuelchio 0:32fe54a88167 67 case 57600:
emmanuelchio 0:32fe54a88167 68 aux=2;
emmanuelchio 0:32fe54a88167 69 break;
emmanuelchio 0:32fe54a88167 70 case 115200:
emmanuelchio 0:32fe54a88167 71 aux=3;
emmanuelchio 0:32fe54a88167 72 break;
emmanuelchio 0:32fe54a88167 73 case 256000:
emmanuelchio 0:32fe54a88167 74 aux=4;
emmanuelchio 0:32fe54a88167 75 break;
emmanuelchio 0:32fe54a88167 76 case 500000:
emmanuelchio 0:32fe54a88167 77 aux=5;
emmanuelchio 0:32fe54a88167 78 break;
emmanuelchio 0:32fe54a88167 79 case 1000000:
emmanuelchio 0:32fe54a88167 80 aux=6;
emmanuelchio 0:32fe54a88167 81 break;
emmanuelchio 0:32fe54a88167 82 case 2000000:
emmanuelchio 0:32fe54a88167 83 aux=7;
emmanuelchio 0:32fe54a88167 84 break;
emmanuelchio 0:32fe54a88167 85 default:
emmanuelchio 0:32fe54a88167 86 return 'F';
emmanuelchio 0:32fe54a88167 87 break;
emmanuelchio 0:32fe54a88167 88 }
emmanuelchio 0:32fe54a88167 89 SGSERIALPORT.putc('X');
emmanuelchio 0:32fe54a88167 90 SGSERIALPORT.putc(aux);
emmanuelchio 0:32fe54a88167 91 aux=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 92 if(aux=='O'){
emmanuelchio 0:32fe54a88167 93 wait_ms(150);
emmanuelchio 0:32fe54a88167 94 SGSERIALPORT.baud(val);
emmanuelchio 0:32fe54a88167 95 wait_ms(200);
emmanuelchio 0:32fe54a88167 96 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 97 }else{
emmanuelchio 0:32fe54a88167 98 return aux;
emmanuelchio 0:32fe54a88167 99 }
emmanuelchio 0:32fe54a88167 100 }
emmanuelchio 0:32fe54a88167 101
emmanuelchio 0:32fe54a88167 102 unsigned char SMARTGPU::digitalOut(unsigned char number, unsigned char val ){ //Set Digital out pins to a logic value
emmanuelchio 0:32fe54a88167 103 SGSERIALPORT.putc('D');
emmanuelchio 0:32fe54a88167 104 SGSERIALPORT.putc(number);
emmanuelchio 0:32fe54a88167 105 SGSERIALPORT.putc(val);
emmanuelchio 0:32fe54a88167 106 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 107 }
emmanuelchio 0:32fe54a88167 108
emmanuelchio 0:32fe54a88167 109 unsigned char SMARTGPU::setScreenBackground(int colour){ //Change the default screen background colour for erase function
emmanuelchio 0:32fe54a88167 110 SGSERIALPORT.putc('B');
emmanuelchio 0:32fe54a88167 111 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 112 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 113 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 114 }
emmanuelchio 0:32fe54a88167 115
emmanuelchio 0:32fe54a88167 116 unsigned char SMARTGPU::setTextBackground(int colour){ //Set the default text background colour for letters and strings
emmanuelchio 0:32fe54a88167 117 SGSERIALPORT.putc('A');
emmanuelchio 0:32fe54a88167 118 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 119 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 120 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 121 }
emmanuelchio 0:32fe54a88167 122
emmanuelchio 0:32fe54a88167 123 unsigned char SMARTGPU::memoryRead(int x1, int y1, int x2, int y2, char buffer[]){ //Read the internal memory of the SMARTGPU, This command returns 24bit pixels (3 bytes)
emmanuelchio 0:32fe54a88167 124 unsigned int i,j,k=0;
emmanuelchio 0:32fe54a88167 125
emmanuelchio 0:32fe54a88167 126 SGSERIALPORT.putc('M');
emmanuelchio 0:32fe54a88167 127 SGSERIALPORT.putc(x1>>8);
emmanuelchio 0:32fe54a88167 128 SGSERIALPORT.putc(x1);
emmanuelchio 0:32fe54a88167 129 SGSERIALPORT.putc(y1>>8);
emmanuelchio 0:32fe54a88167 130 SGSERIALPORT.putc(y1);
emmanuelchio 0:32fe54a88167 131 SGSERIALPORT.putc(x2>>8);
emmanuelchio 0:32fe54a88167 132 SGSERIALPORT.putc(x2);
emmanuelchio 0:32fe54a88167 133 SGSERIALPORT.putc(y2>>8);
emmanuelchio 0:32fe54a88167 134 SGSERIALPORT.putc(y2);
emmanuelchio 0:32fe54a88167 135
emmanuelchio 0:32fe54a88167 136 //receive all the pixels
emmanuelchio 0:32fe54a88167 137 for(j=0;j<=(y2-y1);j++){
emmanuelchio 0:32fe54a88167 138 for(i=0;i<=(x2-x1);i++){
emmanuelchio 0:32fe54a88167 139 buffer[k]=SGSERIALPORT.getc(); //Red
emmanuelchio 0:32fe54a88167 140 k++;
emmanuelchio 0:32fe54a88167 141 buffer[k]=SGSERIALPORT.getc(); //Green
emmanuelchio 0:32fe54a88167 142 k++;
emmanuelchio 0:32fe54a88167 143 buffer[k]=SGSERIALPORT.getc(); //Blue
emmanuelchio 0:32fe54a88167 144 k++;
emmanuelchio 0:32fe54a88167 145 }
emmanuelchio 0:32fe54a88167 146 }
emmanuelchio 0:32fe54a88167 147 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 148 }
emmanuelchio 0:32fe54a88167 149
emmanuelchio 0:32fe54a88167 150 unsigned char SMARTGPU::putPixel(int x, int y, int colour){ //Draw a pixel on the screen
emmanuelchio 0:32fe54a88167 151 SGSERIALPORT.putc('P');
emmanuelchio 0:32fe54a88167 152 SGSERIALPORT.putc(x>>8);
emmanuelchio 0:32fe54a88167 153 SGSERIALPORT.putc(x);
emmanuelchio 0:32fe54a88167 154 SGSERIALPORT.putc(y>>8);
emmanuelchio 0:32fe54a88167 155 SGSERIALPORT.putc(y);
emmanuelchio 0:32fe54a88167 156 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 157 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 158 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 159 }
emmanuelchio 0:32fe54a88167 160
emmanuelchio 0:32fe54a88167 161 unsigned char SMARTGPU::drawLine(int x1, int y1, int x2, int y2, int colour){ //Draw a line on the screen
emmanuelchio 0:32fe54a88167 162 SGSERIALPORT.putc('L');
emmanuelchio 0:32fe54a88167 163 SGSERIALPORT.putc(x1>>8);
emmanuelchio 0:32fe54a88167 164 SGSERIALPORT.putc(x1);
emmanuelchio 0:32fe54a88167 165 SGSERIALPORT.putc(y1>>8);
emmanuelchio 0:32fe54a88167 166 SGSERIALPORT.putc(y1);
emmanuelchio 0:32fe54a88167 167 SGSERIALPORT.putc(x2>>8);
emmanuelchio 0:32fe54a88167 168 SGSERIALPORT.putc(x2);
emmanuelchio 0:32fe54a88167 169 SGSERIALPORT.putc(y2>>8);
emmanuelchio 0:32fe54a88167 170 SGSERIALPORT.putc(y2);
emmanuelchio 0:32fe54a88167 171 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 172 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 173 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 174 }
emmanuelchio 0:32fe54a88167 175
emmanuelchio 0:32fe54a88167 176 unsigned char SMARTGPU::drawRectangle(int x1, int y1, int x2, int y2, int colour, unsigned char fill){ //Draw a rectangle on the screen
emmanuelchio 0:32fe54a88167 177 SGSERIALPORT.putc('R');
emmanuelchio 0:32fe54a88167 178 SGSERIALPORT.putc(x1>>8);
emmanuelchio 0:32fe54a88167 179 SGSERIALPORT.putc(x1);
emmanuelchio 0:32fe54a88167 180 SGSERIALPORT.putc(y1>>8);
emmanuelchio 0:32fe54a88167 181 SGSERIALPORT.putc(y1);
emmanuelchio 0:32fe54a88167 182 SGSERIALPORT.putc(x2>>8);
emmanuelchio 0:32fe54a88167 183 SGSERIALPORT.putc(x2);
emmanuelchio 0:32fe54a88167 184 SGSERIALPORT.putc(y2>>8);
emmanuelchio 0:32fe54a88167 185 SGSERIALPORT.putc(y2);
emmanuelchio 0:32fe54a88167 186 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 187 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 188 SGSERIALPORT.putc(fill);
emmanuelchio 0:32fe54a88167 189 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 190 }
emmanuelchio 0:32fe54a88167 191
emmanuelchio 0:32fe54a88167 192 unsigned char SMARTGPU::drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, int colour, unsigned char fill){ //Draw a triangle on the screen
emmanuelchio 0:32fe54a88167 193 SGSERIALPORT.putc('T');
emmanuelchio 0:32fe54a88167 194 SGSERIALPORT.putc(x1>>8);
emmanuelchio 0:32fe54a88167 195 SGSERIALPORT.putc(x1);
emmanuelchio 0:32fe54a88167 196 SGSERIALPORT.putc(y1>>8);
emmanuelchio 0:32fe54a88167 197 SGSERIALPORT.putc(y1);
emmanuelchio 0:32fe54a88167 198 SGSERIALPORT.putc(x2>>8);
emmanuelchio 0:32fe54a88167 199 SGSERIALPORT.putc(x2);
emmanuelchio 0:32fe54a88167 200 SGSERIALPORT.putc(y2>>8);
emmanuelchio 0:32fe54a88167 201 SGSERIALPORT.putc(y2);
emmanuelchio 0:32fe54a88167 202 SGSERIALPORT.putc(x3>>8);
emmanuelchio 0:32fe54a88167 203 SGSERIALPORT.putc(x3);
emmanuelchio 0:32fe54a88167 204 SGSERIALPORT.putc(y3>>8);
emmanuelchio 0:32fe54a88167 205 SGSERIALPORT.putc(y3);
emmanuelchio 0:32fe54a88167 206 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 207 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 208 SGSERIALPORT.putc(fill);
emmanuelchio 0:32fe54a88167 209 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 210 }
emmanuelchio 0:32fe54a88167 211
emmanuelchio 0:32fe54a88167 212 unsigned char SMARTGPU::drawCircle(int x, int y, int radius, int colour, unsigned char fill){ //Draw a circle on the screen
emmanuelchio 0:32fe54a88167 213 SGSERIALPORT.putc('C');
emmanuelchio 0:32fe54a88167 214 SGSERIALPORT.putc(x>>8);
emmanuelchio 0:32fe54a88167 215 SGSERIALPORT.putc(x);
emmanuelchio 0:32fe54a88167 216 SGSERIALPORT.putc(y>>8);
emmanuelchio 0:32fe54a88167 217 SGSERIALPORT.putc(y);
emmanuelchio 0:32fe54a88167 218 SGSERIALPORT.putc(radius>>8);
emmanuelchio 0:32fe54a88167 219 SGSERIALPORT.putc(radius);
emmanuelchio 0:32fe54a88167 220 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 221 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 222 SGSERIALPORT.putc(fill);
emmanuelchio 0:32fe54a88167 223 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 224 }
emmanuelchio 0:32fe54a88167 225
emmanuelchio 0:32fe54a88167 226 unsigned char SMARTGPU::putLetter(int x, int y, int colour, unsigned char font, unsigned char fill, unsigned char letter){ //Draw a letter on the screen
emmanuelchio 0:32fe54a88167 227
emmanuelchio 0:32fe54a88167 228 SGSERIALPORT.putc('W');
emmanuelchio 0:32fe54a88167 229 SGSERIALPORT.putc(x>>8);
emmanuelchio 0:32fe54a88167 230 SGSERIALPORT.putc(x);
emmanuelchio 0:32fe54a88167 231 SGSERIALPORT.putc(y>>8);
emmanuelchio 0:32fe54a88167 232 SGSERIALPORT.putc(y);
emmanuelchio 0:32fe54a88167 233 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 234 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 235 SGSERIALPORT.putc(font);
emmanuelchio 0:32fe54a88167 236 SGSERIALPORT.putc(fill);
emmanuelchio 0:32fe54a88167 237 SGSERIALPORT.putc(letter);
emmanuelchio 0:32fe54a88167 238 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 239 }
emmanuelchio 0:32fe54a88167 240
emmanuelchio 0:32fe54a88167 241 unsigned char SMARTGPU::string(int x1, int y1, int x2, int y2, int colour, unsigned char font, unsigned char fill, char text[]){ //Draw a string on the screen
emmanuelchio 0:32fe54a88167 242 int counter=0;
emmanuelchio 0:32fe54a88167 243
emmanuelchio 0:32fe54a88167 244 SGSERIALPORT.putc('S');
emmanuelchio 0:32fe54a88167 245 SGSERIALPORT.putc('N'); //not SD
emmanuelchio 0:32fe54a88167 246 SGSERIALPORT.putc(x1>>8);
emmanuelchio 0:32fe54a88167 247 SGSERIALPORT.putc(x1);
emmanuelchio 0:32fe54a88167 248 SGSERIALPORT.putc(y1>>8);
emmanuelchio 0:32fe54a88167 249 SGSERIALPORT.putc(y1);
emmanuelchio 0:32fe54a88167 250 SGSERIALPORT.putc(x2>>8);
emmanuelchio 0:32fe54a88167 251 SGSERIALPORT.putc(x2);
emmanuelchio 0:32fe54a88167 252 SGSERIALPORT.putc(y2>>8);
emmanuelchio 0:32fe54a88167 253 SGSERIALPORT.putc(y2);
emmanuelchio 0:32fe54a88167 254 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 255 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 256 SGSERIALPORT.putc(font);
emmanuelchio 0:32fe54a88167 257 SGSERIALPORT.putc(fill);
emmanuelchio 0:32fe54a88167 258 while(1){
emmanuelchio 0:32fe54a88167 259 SGSERIALPORT.putc(text[counter]);
emmanuelchio 0:32fe54a88167 260 if(text[counter]==0x00){
emmanuelchio 0:32fe54a88167 261 break;
emmanuelchio 0:32fe54a88167 262 }
emmanuelchio 0:32fe54a88167 263 counter++;
emmanuelchio 0:32fe54a88167 264 }
emmanuelchio 0:32fe54a88167 265 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 266 }
emmanuelchio 0:32fe54a88167 267
emmanuelchio 0:32fe54a88167 268 unsigned char SMARTGPU::stringSD(int x1, int y1, int x2, int y2, int colour, unsigned char font, unsigned char fill, int BS, int BR, char name[]){ //Draw a String from a text file contained on the micro SD card on the screen
emmanuelchio 0:32fe54a88167 269 unsigned char counter=0;
emmanuelchio 0:32fe54a88167 270
emmanuelchio 0:32fe54a88167 271 SGSERIALPORT.putc('S');
emmanuelchio 0:32fe54a88167 272 SGSERIALPORT.putc('S'); //from SD
emmanuelchio 0:32fe54a88167 273 SGSERIALPORT.putc(x1>>8);
emmanuelchio 0:32fe54a88167 274 SGSERIALPORT.putc(x1);
emmanuelchio 0:32fe54a88167 275 SGSERIALPORT.putc(y1>>8);
emmanuelchio 0:32fe54a88167 276 SGSERIALPORT.putc(y1);
emmanuelchio 0:32fe54a88167 277 SGSERIALPORT.putc(x2>>8);
emmanuelchio 0:32fe54a88167 278 SGSERIALPORT.putc(x2);
emmanuelchio 0:32fe54a88167 279 SGSERIALPORT.putc(y2>>8);
emmanuelchio 0:32fe54a88167 280 SGSERIALPORT.putc(y2);
emmanuelchio 0:32fe54a88167 281 SGSERIALPORT.putc(colour>>8);
emmanuelchio 0:32fe54a88167 282 SGSERIALPORT.putc(colour);
emmanuelchio 0:32fe54a88167 283 SGSERIALPORT.putc(font);
emmanuelchio 0:32fe54a88167 284 SGSERIALPORT.putc(fill);
emmanuelchio 0:32fe54a88167 285 SGSERIALPORT.putc(BS>>8);
emmanuelchio 0:32fe54a88167 286 SGSERIALPORT.putc(BS);
emmanuelchio 0:32fe54a88167 287 SGSERIALPORT.putc(BR>>8);
emmanuelchio 0:32fe54a88167 288 SGSERIALPORT.putc(BR);
emmanuelchio 0:32fe54a88167 289 while(1){
emmanuelchio 0:32fe54a88167 290 SGSERIALPORT.putc(name[counter]);
emmanuelchio 0:32fe54a88167 291 if(name[counter]==0x00){
emmanuelchio 0:32fe54a88167 292 break;
emmanuelchio 0:32fe54a88167 293 }
emmanuelchio 0:32fe54a88167 294 counter++;
emmanuelchio 0:32fe54a88167 295 }
emmanuelchio 0:32fe54a88167 296 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 297 }
emmanuelchio 0:32fe54a88167 298
emmanuelchio 0:32fe54a88167 299 unsigned char SMARTGPU::icon(int x1, int y1, int x2, int y2, char icon[]){ //Send and image or icon pixel by pixel to SMARTGPU, 16bit(2 bytes) each pixel RGB565
emmanuelchio 0:32fe54a88167 300 unsigned int i,j,k=0;
emmanuelchio 0:32fe54a88167 301
emmanuelchio 0:32fe54a88167 302 SGSERIALPORT.putc('I');
emmanuelchio 0:32fe54a88167 303 SGSERIALPORT.putc('N'); //not SD
emmanuelchio 0:32fe54a88167 304 SGSERIALPORT.putc(x1>>8);
emmanuelchio 0:32fe54a88167 305 SGSERIALPORT.putc(x1);
emmanuelchio 0:32fe54a88167 306 SGSERIALPORT.putc(y1>>8);
emmanuelchio 0:32fe54a88167 307 SGSERIALPORT.putc(y1);
emmanuelchio 0:32fe54a88167 308 SGSERIALPORT.putc(x2>>8);
emmanuelchio 0:32fe54a88167 309 SGSERIALPORT.putc(x2);
emmanuelchio 0:32fe54a88167 310 SGSERIALPORT.putc(y2>>8);
emmanuelchio 0:32fe54a88167 311 SGSERIALPORT.putc(y2);
emmanuelchio 0:32fe54a88167 312
emmanuelchio 0:32fe54a88167 313 //Send icon buffer pixel by pixel
emmanuelchio 0:32fe54a88167 314 for(j=0;j<=(y2-y1);j++){
emmanuelchio 0:32fe54a88167 315 for(i=0;i<=(x2-x1);i++){
emmanuelchio 0:32fe54a88167 316 SGSERIALPORT.putc(icon[k]);
emmanuelchio 0:32fe54a88167 317 k++;
emmanuelchio 0:32fe54a88167 318 }
emmanuelchio 0:32fe54a88167 319 }
emmanuelchio 0:32fe54a88167 320 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 321 }
emmanuelchio 0:32fe54a88167 322
emmanuelchio 0:32fe54a88167 323 unsigned char SMARTGPU::imageSD(int x, int y, char name[]){ //Draw an Image contained on the micro SD card on the screen, top left corner coordinates
emmanuelchio 0:32fe54a88167 324 unsigned char counter=0;
emmanuelchio 0:32fe54a88167 325
emmanuelchio 0:32fe54a88167 326 SGSERIALPORT.putc('I');
emmanuelchio 0:32fe54a88167 327 SGSERIALPORT.putc('S'); //from SD
emmanuelchio 0:32fe54a88167 328 SGSERIALPORT.putc(x>>8);
emmanuelchio 0:32fe54a88167 329 SGSERIALPORT.putc(x);
emmanuelchio 0:32fe54a88167 330 SGSERIALPORT.putc(y>>8);
emmanuelchio 0:32fe54a88167 331 SGSERIALPORT.putc(y);
emmanuelchio 0:32fe54a88167 332 while(1){
emmanuelchio 0:32fe54a88167 333 SGSERIALPORT.putc(name[counter]);
emmanuelchio 0:32fe54a88167 334 if(name[counter]==0x00){
emmanuelchio 0:32fe54a88167 335 break;
emmanuelchio 0:32fe54a88167 336 }
emmanuelchio 0:32fe54a88167 337 counter++;
emmanuelchio 0:32fe54a88167 338 }
emmanuelchio 0:32fe54a88167 339 return SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 340 }
emmanuelchio 0:32fe54a88167 341
emmanuelchio 0:32fe54a88167 342 unsigned char SMARTGPU::touchScreen(int buffer[]){ //Ask for a touch on the screen, if return=1, touch coordinates are stored on the buffer[]
emmanuelchio 0:32fe54a88167 343
emmanuelchio 0:32fe54a88167 344 SGSERIALPORT.putc('G');
emmanuelchio 0:32fe54a88167 345 buffer[0]=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 346 buffer[0]=buffer[0]<<8;
emmanuelchio 0:32fe54a88167 347 buffer[0]|=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 348 buffer[1]=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 349 buffer[1]=buffer[1]<<8;
emmanuelchio 0:32fe54a88167 350 buffer[1]|=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 351 SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 352 if(buffer[0]<0x0200){
emmanuelchio 0:32fe54a88167 353 return 1;
emmanuelchio 0:32fe54a88167 354 }else{
emmanuelchio 0:32fe54a88167 355 return 0;
emmanuelchio 0:32fe54a88167 356 }
emmanuelchio 0:32fe54a88167 357 }
emmanuelchio 0:32fe54a88167 358
emmanuelchio 0:32fe54a88167 359 unsigned char SMARTGPU::touchIcon(char buffer[]){ //Ask for a touch on the icons of the screen, if return=1, icon name is stored on the buffer[]
emmanuelchio 0:32fe54a88167 360
emmanuelchio 0:32fe54a88167 361 SGSERIALPORT.putc('G');
emmanuelchio 0:32fe54a88167 362 buffer[0]=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 363 buffer[1]=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 364 buffer[2]=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 365 buffer[3]=SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 366 SGSERIALPORT.getc();
emmanuelchio 0:32fe54a88167 367 if(!(buffer[0]<0x02) & (buffer[0]!=0x4E)){
emmanuelchio 0:32fe54a88167 368 return 1;
emmanuelchio 0:32fe54a88167 369 }else{
emmanuelchio 0:32fe54a88167 370 return 0;
emmanuelchio 0:32fe54a88167 371 }
emmanuelchio 0:32fe54a88167 372 }