This is the Official SmartGPU 2 processor board library to use with MBED boards!!!

Dependents:   BounceBall_SG2 BounceBalls_SG2 EEPROM_SG2 Ellipses_SG2 ... more

Committer:
emmanuelchio
Date:
Tue Jul 09 08:18:07 2013 +0000
Revision:
0:210b5ba62803
Child:
1:0bf6fac21233
Official SmartGPU 2 processor board - MBED library!!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emmanuelchio 0:210b5ba62803 1 /*********************************************************
emmanuelchio 0:210b5ba62803 2 VIZIC TECHNOLOGIES. COPYRIGHT 2013.
emmanuelchio 0:210b5ba62803 3 THE DATASHEETS, SOFTWARE AND LIBRARIES ARE PROVIDED "AS IS."
emmanuelchio 0:210b5ba62803 4 VIZIC EXPRESSLY DISCLAIM ANY WARRANTY OF ANY KIND, WHETHER
emmanuelchio 0:210b5ba62803 5 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED
emmanuelchio 0:210b5ba62803 6 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
emmanuelchio 0:210b5ba62803 7 OR NONINFRINGEMENT. IN NO EVENT SHALL VIZIC BE LIABLE FOR
emmanuelchio 0:210b5ba62803 8 ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES,
emmanuelchio 0:210b5ba62803 9 LOST PROFITS OR LOST DATA, HARM TO YOUR EQUIPMENT, COST OF
emmanuelchio 0:210b5ba62803 10 PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES,
emmanuelchio 0:210b5ba62803 11 ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO
emmanuelchio 0:210b5ba62803 12 ANY DEFENCE THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION,
emmanuelchio 0:210b5ba62803 13 OR OTHER SIMILAR COSTS.
emmanuelchio 0:210b5ba62803 14 *********************************************************/
emmanuelchio 0:210b5ba62803 15
emmanuelchio 0:210b5ba62803 16 /********************************************************
emmanuelchio 0:210b5ba62803 17 MBED SMARTGPU2 LIBRARY VERSION V1.0
emmanuelchio 0:210b5ba62803 18 IMPORTANT : This library is created for the MBED Software IDE
emmanuelchio 0:210b5ba62803 19 ********************************************************/
emmanuelchio 0:210b5ba62803 20
emmanuelchio 0:210b5ba62803 21 #ifndef SMARTGPU2_h
emmanuelchio 0:210b5ba62803 22 #define SMARTGPU2_h
emmanuelchio 0:210b5ba62803 23
emmanuelchio 0:210b5ba62803 24 #include <mbed.h>
emmanuelchio 0:210b5ba62803 25
emmanuelchio 0:210b5ba62803 26 //General MBED pinout defines
emmanuelchio 0:210b5ba62803 27 #define TXPIN p13
emmanuelchio 0:210b5ba62803 28 #define RXPIN p14
emmanuelchio 0:210b5ba62803 29 #define RESETPIN p15
emmanuelchio 0:210b5ba62803 30
emmanuelchio 0:210b5ba62803 31 //defines for SmartGPU2 LCD320x240 ONLY
emmanuelchio 0:210b5ba62803 32 #define LCD_WIDTH 320
emmanuelchio 0:210b5ba62803 33 #define LCD_HEIGHT 240
emmanuelchio 0:210b5ba62803 34 #define MAX_X_LANDSCAPE 319
emmanuelchio 0:210b5ba62803 35 #define MAX_Y_LANDSCAPE 239
emmanuelchio 0:210b5ba62803 36 #define MAX_X_PORTRAIT 239
emmanuelchio 0:210b5ba62803 37 #define MAX_Y_PORTRAIT 319
emmanuelchio 0:210b5ba62803 38
emmanuelchio 0:210b5ba62803 39 //General definitions
emmanuelchio 0:210b5ba62803 40 #define OFF 0
emmanuelchio 0:210b5ba62803 41 #define ON 1
emmanuelchio 0:210b5ba62803 42 #define GND 0
emmanuelchio 0:210b5ba62803 43 #define VCC 1
emmanuelchio 0:210b5ba62803 44 #define SCROLLBUTTONSIZE 25
emmanuelchio 0:210b5ba62803 45 typedef unsigned int AXIS;
emmanuelchio 0:210b5ba62803 46 typedef unsigned int COLOUR;
emmanuelchio 0:210b5ba62803 47 typedef unsigned int RADIUS;
emmanuelchio 0:210b5ba62803 48 typedef unsigned int NUMBEROFBYTES;
emmanuelchio 0:210b5ba62803 49 typedef unsigned int ITEMNUMBER;
emmanuelchio 0:210b5ba62803 50 typedef unsigned int ADDRESS;
emmanuelchio 0:210b5ba62803 51 typedef unsigned long POINTERPOSITION;
emmanuelchio 0:210b5ba62803 52 typedef char FILENAME[];
emmanuelchio 0:210b5ba62803 53
emmanuelchio 0:210b5ba62803 54 typedef enum {
emmanuelchio 0:210b5ba62803 55 DISABLE, //0
emmanuelchio 0:210b5ba62803 56 ENABLE //1
emmanuelchio 0:210b5ba62803 57 } STATE; //to set Enable/Disable States
emmanuelchio 0:210b5ba62803 58
emmanuelchio 0:210b5ba62803 59 typedef enum {
emmanuelchio 0:210b5ba62803 60 DESELECTED, //0
emmanuelchio 0:210b5ba62803 61 SELECTED //1
emmanuelchio 0:210b5ba62803 62 } ACTIVE; //to set Selected/DeSelected Active objects
emmanuelchio 0:210b5ba62803 63
emmanuelchio 0:210b5ba62803 64 typedef enum {
emmanuelchio 0:210b5ba62803 65 DESELECTEDTRANS, //0 set an unselected top window with transparent center
emmanuelchio 0:210b5ba62803 66 SELECTEDTRANS, //1 set a selected window with transparent center
emmanuelchio 0:210b5ba62803 67 SELECTEDGRAY, //2 set a selected window with gray center
emmanuelchio 0:210b5ba62803 68 SELECTEDWHITE //3 set a selected window with white center
emmanuelchio 0:210b5ba62803 69 } WINDOWTYPE; //to set type of window to draw
emmanuelchio 0:210b5ba62803 70
emmanuelchio 0:210b5ba62803 71 typedef struct {
emmanuelchio 0:210b5ba62803 72 AXIS x; //X axis
emmanuelchio 0:210b5ba62803 73 AXIS y; //Y axis
emmanuelchio 0:210b5ba62803 74 } POINT; //to create a point with point.x and point.y variables
emmanuelchio 0:210b5ba62803 75
emmanuelchio 0:210b5ba62803 76 typedef enum {
emmanuelchio 0:210b5ba62803 77 OK = 'O', //Command successfully executed
emmanuelchio 0:210b5ba62803 78 FAIL = 'F' //Command Fail
emmanuelchio 0:210b5ba62803 79 } SMARTGPUREPLY; //to get SmartGPU2 command responses
emmanuelchio 0:210b5ba62803 80
emmanuelchio 0:210b5ba62803 81 //Graphics functions definitions
emmanuelchio 0:210b5ba62803 82 typedef enum {
emmanuelchio 0:210b5ba62803 83 UNFILL, //0
emmanuelchio 0:210b5ba62803 84 FILL //1
emmanuelchio 0:210b5ba62803 85 } FILLGEOM; //to set fill or unfill colour geometry
emmanuelchio 0:210b5ba62803 86
emmanuelchio 0:210b5ba62803 87 typedef enum {
emmanuelchio 0:210b5ba62803 88 HORIZONTAL, //0
emmanuelchio 0:210b5ba62803 89 VERTICAL //1
emmanuelchio 0:210b5ba62803 90 } ORIENTATIONPARAMETER;//to set gradient colour fade orientation and objects: scrollBar and Slider orientations
emmanuelchio 0:210b5ba62803 91
emmanuelchio 0:210b5ba62803 92 typedef enum {
emmanuelchio 0:210b5ba62803 93 LANDSCAPE_LEFT, //0 left
emmanuelchio 0:210b5ba62803 94 PORTRAIT_LOW, //1 low
emmanuelchio 0:210b5ba62803 95 LANDSCAPE_RIGHT, //2 right
emmanuelchio 0:210b5ba62803 96 PORTRAIT_TOP //3 top
emmanuelchio 0:210b5ba62803 97 } LCDORIENTATIONS; //to set LCD orientations
emmanuelchio 0:210b5ba62803 98
emmanuelchio 0:210b5ba62803 99 typedef enum {
emmanuelchio 0:210b5ba62803 100 QUADRANT1 = 1, //1
emmanuelchio 0:210b5ba62803 101 QUADRANT2, //2
emmanuelchio 0:210b5ba62803 102 QUADRANT3, //3
emmanuelchio 0:210b5ba62803 103 QUADRANT4 //4
emmanuelchio 0:210b5ba62803 104 } ARCQUADRANT; //to set desired arc drawing quadrant
emmanuelchio 0:210b5ba62803 105
emmanuelchio 0:210b5ba62803 106 //basic colours definitions
emmanuelchio 0:210b5ba62803 107 #define BLACK 0x0000
emmanuelchio 0:210b5ba62803 108 #define WHITE 0xFFFF
emmanuelchio 0:210b5ba62803 109 #define RED 0xF800
emmanuelchio 0:210b5ba62803 110 #define GREEN 0x07E0
emmanuelchio 0:210b5ba62803 111 #define BLUE 0x001F
emmanuelchio 0:210b5ba62803 112 #define YELLOW 0xFFE0
emmanuelchio 0:210b5ba62803 113 #define CYAN 0x07FF
emmanuelchio 0:210b5ba62803 114 #define MAGENTA 0xF81F
emmanuelchio 0:210b5ba62803 115
emmanuelchio 0:210b5ba62803 116 //fonts definitions
emmanuelchio 0:210b5ba62803 117 typedef enum {
emmanuelchio 0:210b5ba62803 118 FONT0 = 0,
emmanuelchio 0:210b5ba62803 119 FONT1,
emmanuelchio 0:210b5ba62803 120 FONT2,
emmanuelchio 0:210b5ba62803 121 FONT3,
emmanuelchio 0:210b5ba62803 122 FONT4,
emmanuelchio 0:210b5ba62803 123 FONT5,
emmanuelchio 0:210b5ba62803 124 FONT6,
emmanuelchio 0:210b5ba62803 125 FONT7,
emmanuelchio 0:210b5ba62803 126 FONT8,
emmanuelchio 0:210b5ba62803 127 FONT9,
emmanuelchio 0:210b5ba62803 128 FONT10,
emmanuelchio 0:210b5ba62803 129 FONT11,
emmanuelchio 0:210b5ba62803 130 FONT12,
emmanuelchio 0:210b5ba62803 131 FONT13
emmanuelchio 0:210b5ba62803 132 } FONTSIZE; //to set text font sizes
emmanuelchio 0:210b5ba62803 133
emmanuelchio 0:210b5ba62803 134 typedef enum {
emmanuelchio 0:210b5ba62803 135 TRANS = 0,
emmanuelchio 0:210b5ba62803 136 FILLED
emmanuelchio 0:210b5ba62803 137 } TEXTBACKGROUNDCOLOURFILLUNFILL; //to set text background colour to transparent or filled
emmanuelchio 0:210b5ba62803 138
emmanuelchio 0:210b5ba62803 139 //Video
emmanuelchio 0:210b5ba62803 140 typedef struct {
emmanuelchio 0:210b5ba62803 141 unsigned int width; //X width
emmanuelchio 0:210b5ba62803 142 unsigned int height; //Y height
emmanuelchio 0:210b5ba62803 143 unsigned int framesPerSec; //video frames per second
emmanuelchio 0:210b5ba62803 144 unsigned int totalFrames; //video total frames in the file
emmanuelchio 0:210b5ba62803 145 } VIDDATA; //to create a Video Data struct containing, size X, size Y, frames per second and totalframes info
emmanuelchio 0:210b5ba62803 146
emmanuelchio 0:210b5ba62803 147 //Touch definitions
emmanuelchio 0:210b5ba62803 148 typedef enum {
emmanuelchio 0:210b5ba62803 149 INVALID, //returned touch point is invalid
emmanuelchio 0:210b5ba62803 150 VALID //returned touch point is valid
emmanuelchio 0:210b5ba62803 151 } TOUCHREPLY; //to get SmartGPU2 touch responses
emmanuelchio 0:210b5ba62803 152
emmanuelchio 0:210b5ba62803 153 typedef enum {
emmanuelchio 0:210b5ba62803 154 HOUSE = 'H',
emmanuelchio 0:210b5ba62803 155 MESSAGE = 'M',
emmanuelchio 0:210b5ba62803 156 BOOK = 'B',
emmanuelchio 0:210b5ba62803 157 PHONE = 'P',
emmanuelchio 0:210b5ba62803 158 SONG = 'S',
emmanuelchio 0:210b5ba62803 159 NONE = 'N'
emmanuelchio 0:210b5ba62803 160 } ICON; //to get the type of touched icon
emmanuelchio 0:210b5ba62803 161
emmanuelchio 0:210b5ba62803 162 //File access definitions
emmanuelchio 0:210b5ba62803 163 #define BEGINNING 0
emmanuelchio 0:210b5ba62803 164 #define ALLCONTENTS 0
emmanuelchio 0:210b5ba62803 165 typedef enum {
emmanuelchio 0:210b5ba62803 166 READONLY = 1, //1
emmanuelchio 0:210b5ba62803 167 WRITEONLY, //2
emmanuelchio 0:210b5ba62803 168 READWRITE //3
emmanuelchio 0:210b5ba62803 169 } OPENMODE; //to set the file access open mode
emmanuelchio 0:210b5ba62803 170
emmanuelchio 0:210b5ba62803 171 //SMARTGPU2 Command Execution responses definitions
emmanuelchio 0:210b5ba62803 172 typedef enum {
emmanuelchio 0:210b5ba62803 173 F_OK = 0, /* (0) Succeeded */
emmanuelchio 0:210b5ba62803 174 F_DISK_ERR, /* (1) A hard error occurred in the low level disk I/O layer */
emmanuelchio 0:210b5ba62803 175 F_INT_ERR, /* (2) Assertion failed */
emmanuelchio 0:210b5ba62803 176 F_NOT_READY, /* (3) The physical drive cannot work */
emmanuelchio 0:210b5ba62803 177 F_NO_FILE, /* (4) Could not find the file */
emmanuelchio 0:210b5ba62803 178 F_NO_PATH, /* (5) Could not find the path */
emmanuelchio 0:210b5ba62803 179 F_INVALID_NAME, /* (6) The path name format is invalid */
emmanuelchio 0:210b5ba62803 180 F_DENIED, /* (7) Access denied due to prohibited access or directory full */
emmanuelchio 0:210b5ba62803 181 F_EXIST, /* (8) Access denied due to prohibited access */
emmanuelchio 0:210b5ba62803 182 F_INVALID_OBJECT, /* (9) The file/directory object is invalid */
emmanuelchio 0:210b5ba62803 183 F_WRITE_PROTECTED, /* (10) The physical drive is write protected */
emmanuelchio 0:210b5ba62803 184 F_INVALID_DRIVE, /* (11) The logical drive number is invalid */
emmanuelchio 0:210b5ba62803 185 F_NOT_ENABLED, /* (12) The volume has no work area */
emmanuelchio 0:210b5ba62803 186 F_NO_FILESYSTEM, /* (13) There is no valid FAT volume */
emmanuelchio 0:210b5ba62803 187 F_MKFS_ABORTED, /* (14) The f_mkfs() aborted due to any parameter error */
emmanuelchio 0:210b5ba62803 188 F_TIMEOUT, /* (15) Could not get a grant to access the volume within defined period */
emmanuelchio 0:210b5ba62803 189 F_LOCKED, /* (16) The operation is rejected according to the file sharing policy */
emmanuelchio 0:210b5ba62803 190 F_NOT_ENOUGH_CORE, /* (17) LFN working buffer could not be allocated */
emmanuelchio 0:210b5ba62803 191 F_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_SHARE */
emmanuelchio 0:210b5ba62803 192 F_INVALID_PARAMETER /* (19) Given parameter is invalid */
emmanuelchio 0:210b5ba62803 193 } FILERESULT; //to get all FAT related functions responses
emmanuelchio 0:210b5ba62803 194
emmanuelchio 0:210b5ba62803 195 //SMARTGPU2 WorkSpaces definitions
emmanuelchio 0:210b5ba62803 196 typedef enum {
emmanuelchio 0:210b5ba62803 197 WORKSPACE0 = 0,
emmanuelchio 0:210b5ba62803 198 WORKSPACE1,
emmanuelchio 0:210b5ba62803 199 WORKSPACE2,
emmanuelchio 0:210b5ba62803 200 WORKSPACE3
emmanuelchio 0:210b5ba62803 201 } WORKSPACEBLOCK; //to set the working workspace
emmanuelchio 0:210b5ba62803 202
emmanuelchio 0:210b5ba62803 203 //SMARTGPU2 EEPROM pages definitions, each page is 2048bytes (2Kb) in size
emmanuelchio 0:210b5ba62803 204 typedef enum {
emmanuelchio 0:210b5ba62803 205 PAGE0 = 0,
emmanuelchio 0:210b5ba62803 206 PAGE1,
emmanuelchio 0:210b5ba62803 207 PAGE2,
emmanuelchio 0:210b5ba62803 208 PAGE3,
emmanuelchio 0:210b5ba62803 209 PAGE4,
emmanuelchio 0:210b5ba62803 210 PAGE5,
emmanuelchio 0:210b5ba62803 211 PAGE6,
emmanuelchio 0:210b5ba62803 212 PAGE7
emmanuelchio 0:210b5ba62803 213 } EEPROMPAGE; //to set the EEPROM page
emmanuelchio 0:210b5ba62803 214
emmanuelchio 0:210b5ba62803 215 //Files Time and Date
emmanuelchio 0:210b5ba62803 216 typedef struct {
emmanuelchio 0:210b5ba62803 217 unsigned char hour;
emmanuelchio 0:210b5ba62803 218 unsigned char minute;
emmanuelchio 0:210b5ba62803 219 unsigned char second;
emmanuelchio 0:210b5ba62803 220 unsigned char day;
emmanuelchio 0:210b5ba62803 221 unsigned char month;
emmanuelchio 0:210b5ba62803 222 unsigned int year;
emmanuelchio 0:210b5ba62803 223 } TIME; //to create a Time-Date info struct
emmanuelchio 0:210b5ba62803 224
emmanuelchio 0:210b5ba62803 225 //JPG images scale factor definitions
emmanuelchio 0:210b5ba62803 226 typedef enum {
emmanuelchio 0:210b5ba62803 227 SCALE1_1 = 0, // 1 to 1
emmanuelchio 0:210b5ba62803 228 SCALE1_2, // 1 to 2
emmanuelchio 0:210b5ba62803 229 SCALE1_4, // 1 to 4
emmanuelchio 0:210b5ba62803 230 SCALE1_8 // 1 to 8
emmanuelchio 0:210b5ba62803 231 } JPGSCALEFACTOR; //to set the desired JPG image decompression scale factor
emmanuelchio 0:210b5ba62803 232
emmanuelchio 0:210b5ba62803 233 //Recommended(but not limited to) MBED-SmartGPU Baud rate definitions
emmanuelchio 0:210b5ba62803 234 typedef enum{
emmanuelchio 0:210b5ba62803 235 BAUD0 = 9600,
emmanuelchio 0:210b5ba62803 236 BAUD1 = 19200,
emmanuelchio 0:210b5ba62803 237 BAUD2 = 57600,
emmanuelchio 0:210b5ba62803 238 BAUD3 = 115200,
emmanuelchio 0:210b5ba62803 239 BAUD4 = 256000,
emmanuelchio 0:210b5ba62803 240 BAUD5 = 500000,
emmanuelchio 0:210b5ba62803 241 BAUD6 = 1000000,
emmanuelchio 0:210b5ba62803 242 BAUD7 = 2000000
emmanuelchio 0:210b5ba62803 243 } BAUDRATE;
emmanuelchio 0:210b5ba62803 244
emmanuelchio 0:210b5ba62803 245 //**************************************************************************
emmanuelchio 0:210b5ba62803 246 // class SMARTGPU2 SMARTGPU2.h
emmanuelchio 0:210b5ba62803 247 // This is the main class. It shoud be used like this : SMARTGPU2 lcd(p13,p14,p15);
emmanuelchio 0:210b5ba62803 248 //***************************************************************************
emmanuelchio 0:210b5ba62803 249 class SMARTGPU2{
emmanuelchio 0:210b5ba62803 250
emmanuelchio 0:210b5ba62803 251 public:
emmanuelchio 0:210b5ba62803 252 /****************************************************************/
emmanuelchio 0:210b5ba62803 253 //MBED exclusive Functions
emmanuelchio 0:210b5ba62803 254 /****************************************************************/
emmanuelchio 0:210b5ba62803 255 SMARTGPU2(PinName TXPin, PinName RXPin, PinName resetPin);
emmanuelchio 0:210b5ba62803 256
emmanuelchio 0:210b5ba62803 257 void init();
emmanuelchio 0:210b5ba62803 258
emmanuelchio 0:210b5ba62803 259 SMARTGPUREPLY reset();
emmanuelchio 0:210b5ba62803 260
emmanuelchio 0:210b5ba62803 261 SMARTGPUREPLY start();
emmanuelchio 0:210b5ba62803 262
emmanuelchio 0:210b5ba62803 263 /****************************************************************/
emmanuelchio 0:210b5ba62803 264 //Master Functions
emmanuelchio 0:210b5ba62803 265 /****************************************************************/
emmanuelchio 0:210b5ba62803 266 SMARTGPUREPLY erase();
emmanuelchio 0:210b5ba62803 267
emmanuelchio 0:210b5ba62803 268 SMARTGPUREPLY sleep(STATE);
emmanuelchio 0:210b5ba62803 269
emmanuelchio 0:210b5ba62803 270 SMARTGPUREPLY orientation(LCDORIENTATIONS);
emmanuelchio 0:210b5ba62803 271
emmanuelchio 0:210b5ba62803 272 SMARTGPUREPLY bright(unsigned char);
emmanuelchio 0:210b5ba62803 273
emmanuelchio 0:210b5ba62803 274 SMARTGPUREPLY baudChange(unsigned long);
emmanuelchio 0:210b5ba62803 275
emmanuelchio 0:210b5ba62803 276 SMARTGPUREPLY setEraseBackColour(COLOUR);
emmanuelchio 0:210b5ba62803 277
emmanuelchio 0:210b5ba62803 278 /****************************************************************/
emmanuelchio 0:210b5ba62803 279 //Geometric Functions
emmanuelchio 0:210b5ba62803 280 /****************************************************************/
emmanuelchio 0:210b5ba62803 281 SMARTGPUREPLY putPixel(AXIS, AXIS, COLOUR);
emmanuelchio 0:210b5ba62803 282
emmanuelchio 0:210b5ba62803 283 SMARTGPUREPLY drawLine(AXIS, AXIS, AXIS, AXIS, COLOUR);
emmanuelchio 0:210b5ba62803 284
emmanuelchio 0:210b5ba62803 285 SMARTGPUREPLY drawRectangle(AXIS, AXIS, AXIS, AXIS, COLOUR, FILLGEOM);
emmanuelchio 0:210b5ba62803 286
emmanuelchio 0:210b5ba62803 287 SMARTGPUREPLY drawRoundRect(AXIS, AXIS, AXIS, AXIS, RADIUS, COLOUR, FILLGEOM);
emmanuelchio 0:210b5ba62803 288
emmanuelchio 0:210b5ba62803 289 SMARTGPUREPLY drawGradientRect(AXIS, AXIS, AXIS, AXIS, COLOUR, COLOUR, ORIENTATIONPARAMETER);
emmanuelchio 0:210b5ba62803 290
emmanuelchio 0:210b5ba62803 291 SMARTGPUREPLY drawTriangle(AXIS, AXIS, AXIS, AXIS, AXIS, AXIS, COLOUR, FILLGEOM);
emmanuelchio 0:210b5ba62803 292
emmanuelchio 0:210b5ba62803 293 SMARTGPUREPLY drawArc(AXIS, AXIS, RADIUS, RADIUS, ARCQUADRANT, COLOUR, FILLGEOM);
emmanuelchio 0:210b5ba62803 294
emmanuelchio 0:210b5ba62803 295 SMARTGPUREPLY drawCircle(AXIS, AXIS, RADIUS, COLOUR, FILLGEOM);
emmanuelchio 0:210b5ba62803 296
emmanuelchio 0:210b5ba62803 297 SMARTGPUREPLY drawEllipse(AXIS, AXIS, RADIUS, RADIUS, COLOUR, FILLGEOM);
emmanuelchio 0:210b5ba62803 298
emmanuelchio 0:210b5ba62803 299 /****************************************************************/
emmanuelchio 0:210b5ba62803 300 //String Functions
emmanuelchio 0:210b5ba62803 301 /****************************************************************/
emmanuelchio 0:210b5ba62803 302 SMARTGPUREPLY putLetter(AXIS, AXIS, char, AXIS*);
emmanuelchio 0:210b5ba62803 303
emmanuelchio 0:210b5ba62803 304 SMARTGPUREPLY printNumber(AXIS, AXIS, float);
emmanuelchio 0:210b5ba62803 305
emmanuelchio 0:210b5ba62803 306 SMARTGPUREPLY string(AXIS, AXIS, AXIS, AXIS, char[], NUMBEROFBYTES*); //returns in NUMBEROFBYTES the successfully printed chars or letters
emmanuelchio 0:210b5ba62803 307
emmanuelchio 0:210b5ba62803 308 SMARTGPUREPLY stringSD(AXIS, AXIS, AXIS, AXIS, NUMBEROFBYTES, NUMBEROFBYTES, FILENAME, NUMBEROFBYTES*); //returns in NUMBEROFBYTES the successfully printed chars or letters
emmanuelchio 0:210b5ba62803 309
emmanuelchio 0:210b5ba62803 310 SMARTGPUREPLY setTextColour(COLOUR);
emmanuelchio 0:210b5ba62803 311
emmanuelchio 0:210b5ba62803 312 SMARTGPUREPLY setTextBackColour(COLOUR);
emmanuelchio 0:210b5ba62803 313
emmanuelchio 0:210b5ba62803 314 SMARTGPUREPLY setTextSize(FONTSIZE);
emmanuelchio 0:210b5ba62803 315
emmanuelchio 0:210b5ba62803 316 SMARTGPUREPLY setTextBackFill(TEXTBACKGROUNDCOLOURFILLUNFILL);
emmanuelchio 0:210b5ba62803 317
emmanuelchio 0:210b5ba62803 318 /****************************************************************/
emmanuelchio 0:210b5ba62803 319 //Image Functions
emmanuelchio 0:210b5ba62803 320 /****************************************************************/
emmanuelchio 0:210b5ba62803 321 SMARTGPUREPLY drawIcon(AXIS, AXIS, AXIS, AXIS, char[]);
emmanuelchio 0:210b5ba62803 322
emmanuelchio 0:210b5ba62803 323 SMARTGPUREPLY imageBMPSD(AXIS, AXIS, FILENAME);
emmanuelchio 0:210b5ba62803 324
emmanuelchio 0:210b5ba62803 325 SMARTGPUREPLY imageJPGSD(AXIS, AXIS, JPGSCALEFACTOR, FILENAME);
emmanuelchio 0:210b5ba62803 326
emmanuelchio 0:210b5ba62803 327 SMARTGPUREPLY getImageFromMemory(AXIS, AXIS, AXIS, AXIS, char[]); //Read the internal memory of the SMARTGPU2, This command returns 24bit pixels (3 bytes)
emmanuelchio 0:210b5ba62803 328
emmanuelchio 0:210b5ba62803 329 SMARTGPUREPLY screenshot();
emmanuelchio 0:210b5ba62803 330
emmanuelchio 0:210b5ba62803 331 /****************************************************************/
emmanuelchio 0:210b5ba62803 332 //Video Functions
emmanuelchio 0:210b5ba62803 333 /****************************************************************/
emmanuelchio 0:210b5ba62803 334 SMARTGPUREPLY allocateVideoSD(FILENAME, VIDDATA*);
emmanuelchio 0:210b5ba62803 335
emmanuelchio 0:210b5ba62803 336 SMARTGPUREPLY freeVideoSD();
emmanuelchio 0:210b5ba62803 337
emmanuelchio 0:210b5ba62803 338 SMARTGPUREPLY setFrameVideoSD(unsigned int);
emmanuelchio 0:210b5ba62803 339
emmanuelchio 0:210b5ba62803 340 SMARTGPUREPLY playVideoSD(AXIS, AXIS, unsigned int);
emmanuelchio 0:210b5ba62803 341
emmanuelchio 0:210b5ba62803 342 /****************************************************************/
emmanuelchio 0:210b5ba62803 343 //Audio Functions
emmanuelchio 0:210b5ba62803 344 /****************************************************************/
emmanuelchio 0:210b5ba62803 345 SMARTGPUREPLY initDACAudio(STATE);
emmanuelchio 0:210b5ba62803 346
emmanuelchio 0:210b5ba62803 347 SMARTGPUREPLY audioBoost(STATE);
emmanuelchio 0:210b5ba62803 348
emmanuelchio 0:210b5ba62803 349 SMARTGPUREPLY getWAVPlayState(STATE*);
emmanuelchio 0:210b5ba62803 350
emmanuelchio 0:210b5ba62803 351 SMARTGPUREPLY playWAVFile(FILENAME, unsigned int*); //returns in unsigned int* the file duration in seconds
emmanuelchio 0:210b5ba62803 352
emmanuelchio 0:210b5ba62803 353 SMARTGPUREPLY pauseWAVFile();
emmanuelchio 0:210b5ba62803 354
emmanuelchio 0:210b5ba62803 355 SMARTGPUREPLY stopWAVFile();
emmanuelchio 0:210b5ba62803 356
emmanuelchio 0:210b5ba62803 357 SMARTGPUREPLY advanceWAVFile(unsigned int); //advance file to the parameter(means seconds)
emmanuelchio 0:210b5ba62803 358
emmanuelchio 0:210b5ba62803 359 SMARTGPUREPLY setVolumeWAV(unsigned char);
emmanuelchio 0:210b5ba62803 360
emmanuelchio 0:210b5ba62803 361 /****************************************************************/
emmanuelchio 0:210b5ba62803 362 //Real Time Clock Functions
emmanuelchio 0:210b5ba62803 363 /****************************************************************/
emmanuelchio 0:210b5ba62803 364 SMARTGPUREPLY setupRTC(STATE*);
emmanuelchio 0:210b5ba62803 365
emmanuelchio 0:210b5ba62803 366 SMARTGPUREPLY getRTCTimeDate(TIME*);
emmanuelchio 0:210b5ba62803 367
emmanuelchio 0:210b5ba62803 368 SMARTGPUREPLY setRTCTimeDate(TIME*);
emmanuelchio 0:210b5ba62803 369
emmanuelchio 0:210b5ba62803 370 /****************************************************************/
emmanuelchio 0:210b5ba62803 371 //Objects Functions - Refer to "smartGPU2 Command Set" to learn about minimum width and height objects size.
emmanuelchio 0:210b5ba62803 372 /****************************************************************/
emmanuelchio 0:210b5ba62803 373 SMARTGPUREPLY objButton(AXIS, AXIS, AXIS, AXIS, ACTIVE, char[]);
emmanuelchio 0:210b5ba62803 374
emmanuelchio 0:210b5ba62803 375 SMARTGPUREPLY objSwitch(AXIS, AXIS, unsigned int, ACTIVE);
emmanuelchio 0:210b5ba62803 376
emmanuelchio 0:210b5ba62803 377 SMARTGPUREPLY objCheckbox(AXIS, AXIS, unsigned int, ACTIVE);
emmanuelchio 0:210b5ba62803 378
emmanuelchio 0:210b5ba62803 379 SMARTGPUREPLY objProgressBar(AXIS, AXIS, AXIS, AXIS, unsigned char);
emmanuelchio 0:210b5ba62803 380
emmanuelchio 0:210b5ba62803 381 SMARTGPUREPLY objSlider(AXIS, AXIS, AXIS, AXIS, unsigned char, unsigned char, ORIENTATIONPARAMETER);
emmanuelchio 0:210b5ba62803 382
emmanuelchio 0:210b5ba62803 383 SMARTGPUREPLY objScrollBar(AXIS, AXIS, AXIS, AXIS, unsigned char, unsigned char, ORIENTATIONPARAMETER, ACTIVE);
emmanuelchio 0:210b5ba62803 384
emmanuelchio 0:210b5ba62803 385 SMARTGPUREPLY objWindow(AXIS, AXIS, AXIS, AXIS, FONTSIZE, WINDOWTYPE, char[]);
emmanuelchio 0:210b5ba62803 386
emmanuelchio 0:210b5ba62803 387 /****************************************************************/
emmanuelchio 0:210b5ba62803 388 //EEPROM-FLASH Functions - Refer to "smartGPU2 Command Set" to learn about READ-WRITE procedure, and page SIZE.
emmanuelchio 0:210b5ba62803 389 /****************************************************************/
emmanuelchio 0:210b5ba62803 390 SMARTGPUREPLY initClearEEPROMBuff();
emmanuelchio 0:210b5ba62803 391
emmanuelchio 0:210b5ba62803 392 SMARTGPUREPLY readEEPROMBuff(char[], ADDRESS, NUMBEROFBYTES, NUMBEROFBYTES*);
emmanuelchio 0:210b5ba62803 393
emmanuelchio 0:210b5ba62803 394 SMARTGPUREPLY writeEEPROMBuff(char[], ADDRESS, NUMBEROFBYTES, NUMBEROFBYTES*);
emmanuelchio 0:210b5ba62803 395
emmanuelchio 0:210b5ba62803 396 SMARTGPUREPLY saveBuffToEEPROMPage(EEPROMPAGE);
emmanuelchio 0:210b5ba62803 397
emmanuelchio 0:210b5ba62803 398 SMARTGPUREPLY fillBuffFromEEPROMPage(EEPROMPAGE);
emmanuelchio 0:210b5ba62803 399
emmanuelchio 0:210b5ba62803 400 SMARTGPUREPLY compBuffToEEPROMPage(EEPROMPAGE, unsigned char*);
emmanuelchio 0:210b5ba62803 401
emmanuelchio 0:210b5ba62803 402 SMARTGPUREPLY eraseEEPROMPage(EEPROMPAGE);
emmanuelchio 0:210b5ba62803 403
emmanuelchio 0:210b5ba62803 404 /****************************************************************/
emmanuelchio 0:210b5ba62803 405 //Touch Functions
emmanuelchio 0:210b5ba62803 406 //Those next Touch Functions return valid or invalid touch coordinates status(TOUCHREPLY) instead of ACK 'O' or NAK 'F'(SMARTGPUREPLY)
emmanuelchio 0:210b5ba62803 407 /****************************************************************/
emmanuelchio 0:210b5ba62803 408 TOUCHREPLY touchScreen(POINT*);
emmanuelchio 0:210b5ba62803 409
emmanuelchio 0:210b5ba62803 410 TOUCHREPLY touchIcon(ICON*);
emmanuelchio 0:210b5ba62803 411
emmanuelchio 0:210b5ba62803 412 /****************************************************************/
emmanuelchio 0:210b5ba62803 413 //SD FAT management Functions
emmanuelchio 0:210b5ba62803 414 //Those next SDF - SD Functions return file execution status(FILERESULT) instead of ACK 'O' or NAK 'F'(SMARTGPUREPLY)
emmanuelchio 0:210b5ba62803 415 /****************************************************************/
emmanuelchio 0:210b5ba62803 416 FILERESULT SDFgetList(unsigned int*, unsigned int*); //get number of dirs and files
emmanuelchio 0:210b5ba62803 417
emmanuelchio 0:210b5ba62803 418 FILERESULT SDFgetDirName(ITEMNUMBER, FILENAME); //searches for the "itemNumber" on the SD current folder and updates the buffer with the Dir name ended with NULL character
emmanuelchio 0:210b5ba62803 419
emmanuelchio 0:210b5ba62803 420 FILERESULT SDFgetFileName(ITEMNUMBER, FILENAME); //searches for the "itemNumber" on the SD current folder and updates the buffer with the File name ended with NULL character
emmanuelchio 0:210b5ba62803 421
emmanuelchio 0:210b5ba62803 422 FILERESULT SDFgetDirPath(char[]); //obtains current dir path and stores on path[] buffer
emmanuelchio 0:210b5ba62803 423
emmanuelchio 0:210b5ba62803 424 FILERESULT SDFnewDir(FILENAME); //create a new Directory, fails if already exist
emmanuelchio 0:210b5ba62803 425
emmanuelchio 0:210b5ba62803 426 FILERESULT SDFnewFile(FILENAME); //create a new File, fails if already exist
emmanuelchio 0:210b5ba62803 427
emmanuelchio 0:210b5ba62803 428 FILERESULT SDFopenDir(FILENAME); //opens an existing Dir
emmanuelchio 0:210b5ba62803 429
emmanuelchio 0:210b5ba62803 430 FILERESULT SDFopenFile(FILENAME, OPENMODE, WORKSPACEBLOCK); //opens an existing file in READONLY, WRITEONLY or READWRITE mode on the received object # workspace
emmanuelchio 0:210b5ba62803 431
emmanuelchio 0:210b5ba62803 432 FILERESULT SDFcloseFile(WORKSPACEBLOCK); //close and save file object # workspace
emmanuelchio 0:210b5ba62803 433
emmanuelchio 0:210b5ba62803 434 FILERESULT SDFsaveFile(WORKSPACEBLOCK); //sync/save file object # workspace
emmanuelchio 0:210b5ba62803 435
emmanuelchio 0:210b5ba62803 436 FILERESULT SDFsetFilePointer(POINTERPOSITION, WORKSPACEBLOCK); // set/move file pointer of file object # workspace
emmanuelchio 0:210b5ba62803 437
emmanuelchio 0:210b5ba62803 438 FILERESULT SDFgetFilePointer(POINTERPOSITION*, WORKSPACEBLOCK); // get file pointer of file object # workspace
emmanuelchio 0:210b5ba62803 439
emmanuelchio 0:210b5ba62803 440 FILERESULT SDFreadFile(char[], NUMBEROFBYTES, NUMBEROFBYTES*, WORKSPACEBLOCK); //Bytes to Read, Succesfully Read Bytes, file object # to read bytes from
emmanuelchio 0:210b5ba62803 441
emmanuelchio 0:210b5ba62803 442 FILERESULT SDFwriteFile(char[], NUMBEROFBYTES,NUMBEROFBYTES*, WORKSPACEBLOCK); //Bytes to Write, Succesfully Written Bytes, file object # to write bytes
emmanuelchio 0:210b5ba62803 443
emmanuelchio 0:210b5ba62803 444 FILERESULT SDFtestFileError(WORKSPACEBLOCK); //test for an error on file # workspace
emmanuelchio 0:210b5ba62803 445
emmanuelchio 0:210b5ba62803 446 FILERESULT SDFtestFileEnd(WORKSPACEBLOCK); //test for an error on file # workspace
emmanuelchio 0:210b5ba62803 447
emmanuelchio 0:210b5ba62803 448 FILERESULT SDFtruncateFile(WORKSPACEBLOCK); //truncates the file size to the current file read/write pointer of the file # workspace
emmanuelchio 0:210b5ba62803 449
emmanuelchio 0:210b5ba62803 450 FILERESULT SDFeraseDirFile(FILENAME); //Erases an existing Dir or File
emmanuelchio 0:210b5ba62803 451
emmanuelchio 0:210b5ba62803 452 FILERESULT SDFsetFileTimeDate(TIME*, FILENAME); //Set Time and Date to an existing File
emmanuelchio 0:210b5ba62803 453
emmanuelchio 0:210b5ba62803 454 FILERESULT SDFgetFileTimeDate(TIME*, FILENAME); //Get Time and Date to an existing File
emmanuelchio 0:210b5ba62803 455
emmanuelchio 0:210b5ba62803 456 FILERESULT SDFgetFileSize(FILENAME, unsigned long *); //Get Size of an existing File
emmanuelchio 0:210b5ba62803 457
emmanuelchio 0:210b5ba62803 458 FILERESULT SDFrenameMoveDirFile(FILENAME, FILENAME); //renames or moves an existing Dir or File
emmanuelchio 0:210b5ba62803 459
emmanuelchio 0:210b5ba62803 460 FILERESULT SDFgetFreeTotalSpace(unsigned long *,unsigned long *); //Get free and total space in bytes of the microSD card
emmanuelchio 0:210b5ba62803 461
emmanuelchio 0:210b5ba62803 462 protected :
emmanuelchio 0:210b5ba62803 463
emmanuelchio 0:210b5ba62803 464 Serial _serialSMARTGPU2;
emmanuelchio 0:210b5ba62803 465 DigitalOut _resetPin;
emmanuelchio 0:210b5ba62803 466
emmanuelchio 0:210b5ba62803 467 };
emmanuelchio 0:210b5ba62803 468
emmanuelchio 0:210b5ba62803 469 #endif