Driver for 4D Systems LCD screen with Picaso processor. Ported from 4D Systems Picaso Serial Linux Library

Dependencies:   MODSERIAL

Dependents:   uLCD_4D_24PTU Drawing Program RoommateTracker_ScreenAndPhone ece4180_roommate_tracker_final

Committer:
admcrae
Date:
Tue Mar 10 16:05:28 2015 +0000
Revision:
2:ebe7029e2825
Parent:
1:1e8da43647e9
Child:
4:30010dda3b34
Added comments to header file, added a bunch of enums.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
admcrae 0:e314f3b805ed 1 /**
admcrae 0:e314f3b805ed 2 * This is a class to drive 4D systems screens with Picaso graphics processors
admcrae 0:e314f3b805ed 3 *
admcrae 0:e314f3b805ed 4 * This is a port of the 4D systems Picaso Serial Linux Library
admcrae 0:e314f3b805ed 5 * Copyright (c) 2014 4D Systems PTY Ltd, Sydney, Australia
admcrae 0:e314f3b805ed 6 * From https://github.com/4dsystems/Picaso-Serial-Linux-Library, retrieved March 5, 2015
admcrae 0:e314f3b805ed 7 *
admcrae 0:e314f3b805ed 8 * All software in this library is provided without warranty; use at your own risk.
admcrae 0:e314f3b805ed 9 */
admcrae 0:e314f3b805ed 10
admcrae 0:e314f3b805ed 11 #include "mbed.h"
admcrae 0:e314f3b805ed 12 #include <string.h>
admcrae 0:e314f3b805ed 13 #include <math.h>
admcrae 0:e314f3b805ed 14 #include <ctype.h>
admcrae 0:e314f3b805ed 15
admcrae 2:ebe7029e2825 16 #include "Picaso_enums.h"
admcrae 0:e314f3b805ed 17 #include "uLCD_4D_Picaso.h"
admcrae 0:e314f3b805ed 18
admcrae 0:e314f3b805ed 19 //Error types
admcrae 0:e314f3b805ed 20 #define Err4D_OK 0
admcrae 0:e314f3b805ed 21 #define Err4D_Timeout 1
admcrae 0:e314f3b805ed 22 #define Err4D_NAK 2
admcrae 0:e314f3b805ed 23
admcrae 0:e314f3b805ed 24
admcrae 0:e314f3b805ed 25 //Default wait time (in ms) for Serial acknowledgement
admcrae 0:e314f3b805ed 26 #define RX_MAX_WAIT_DEFAULT 2000
admcrae 0:e314f3b805ed 27
admcrae 0:e314f3b805ed 28 #if LCD_USING_MODSERIAL
admcrae 0:e314f3b805ed 29 //Serial port buffer sizes
admcrae 0:e314f3b805ed 30 #define TX_BUF_SIZE 256
admcrae 0:e314f3b805ed 31 #define RX_BUF_SIZE 2048
admcrae 0:e314f3b805ed 32 #endif
admcrae 0:e314f3b805ed 33
admcrae 0:e314f3b805ed 34 /*
admcrae 0:e314f3b805ed 35 * Start of 4D Intrinsic Routines
admcrae 0:e314f3b805ed 36 */
admcrae 0:e314f3b805ed 37 uLCD_4D_Picaso::uLCD_4D_Picaso(PinName tx, PinName rx, PinName reset) :
admcrae 0:e314f3b805ed 38 #if LCD_USING_MODSERIAL
admcrae 0:e314f3b805ed 39 serial(tx, rx, TX_BUF_SIZE, RX_BUF_SIZE),
admcrae 0:e314f3b805ed 40 #else
admcrae 0:e314f3b805ed 41 serial(tx, rx),
admcrae 0:e314f3b805ed 42 #endif
admcrae 0:e314f3b805ed 43 rst(reset)
admcrae 0:e314f3b805ed 44 {
admcrae 0:e314f3b805ed 45 TimeLimit4D = RX_MAX_WAIT_DEFAULT;
admcrae 0:e314f3b805ed 46 serial.baud(9600);
admcrae 0:e314f3b805ed 47 LCD_reset();
admcrae 0:e314f3b805ed 48 gfx_Cls();
admcrae 0:e314f3b805ed 49 }
admcrae 0:e314f3b805ed 50
admcrae 0:e314f3b805ed 51 void uLCD_4D_Picaso::LCD_reset() {
admcrae 0:e314f3b805ed 52 rst = 0;
admcrae 0:e314f3b805ed 53 LCD_wait_ms(1);
admcrae 0:e314f3b805ed 54 rst = 1;
admcrae 0:e314f3b805ed 55 LCD_wait_ms(3000);
admcrae 0:e314f3b805ed 56 rxFlush();
admcrae 0:e314f3b805ed 57 }
admcrae 0:e314f3b805ed 58
admcrae 0:e314f3b805ed 59 void uLCD_4D_Picaso::LCD_wait_ms(int ms) {
admcrae 0:e314f3b805ed 60 timer.reset();
admcrae 0:e314f3b805ed 61 timer.start();
admcrae 0:e314f3b805ed 62 while (timer.read_ms() < ms);
admcrae 0:e314f3b805ed 63 timer.stop();
admcrae 0:e314f3b805ed 64 return;
admcrae 0:e314f3b805ed 65 }
admcrae 0:e314f3b805ed 66
admcrae 0:e314f3b805ed 67 void uLCD_4D_Picaso::rxFlush() {
admcrae 0:e314f3b805ed 68 while (serial.readable()) {
admcrae 0:e314f3b805ed 69 serial.getc();
admcrae 0:e314f3b805ed 70 }
admcrae 0:e314f3b805ed 71 }
admcrae 0:e314f3b805ed 72
admcrae 0:e314f3b805ed 73 void uLCD_4D_Picaso::WriteBytes(char *psOutput, int nCount) {
admcrae 0:e314f3b805ed 74 int i;
admcrae 0:e314f3b805ed 75 rxFlush();
admcrae 0:e314f3b805ed 76 for (i = 0; i < nCount; ++i) {
admcrae 0:e314f3b805ed 77 while (!serial.writeable());
admcrae 0:e314f3b805ed 78 serial.putc(psOutput[i]);
admcrae 0:e314f3b805ed 79 }
admcrae 0:e314f3b805ed 80 }
admcrae 0:e314f3b805ed 81
admcrae 0:e314f3b805ed 82 void uLCD_4D_Picaso::WriteChars(char *psOutput) {
admcrae 0:e314f3b805ed 83 // Include NULL in output
admcrae 0:e314f3b805ed 84 WriteBytes(psOutput, strlen((char *)psOutput) + 1);
admcrae 0:e314f3b805ed 85 return;
admcrae 0:e314f3b805ed 86 }
admcrae 0:e314f3b805ed 87
admcrae 2:ebe7029e2825 88 void uLCD_4D_Picaso::WriteWords(uint16_t * Source, int Size) {
admcrae 2:ebe7029e2825 89 uint16_t wk ;
admcrae 0:e314f3b805ed 90 int i ;
admcrae 0:e314f3b805ed 91 for (i = 0; i < Size; i++)
admcrae 0:e314f3b805ed 92 {
admcrae 0:e314f3b805ed 93 wk = *Source++ ;
admcrae 0:e314f3b805ed 94 wk = (wk >> 8) + (wk << 8) ;
admcrae 0:e314f3b805ed 95 WriteBytes((char *)&wk, 2);
admcrae 0:e314f3b805ed 96 }
admcrae 0:e314f3b805ed 97 }
admcrae 0:e314f3b805ed 98
admcrae 0:e314f3b805ed 99 // read string from the serial port
admcrae 0:e314f3b805ed 100 // return code:
admcrae 0:e314f3b805ed 101 // >= 0 = number of characters read
admcrae 0:e314f3b805ed 102 // -1 = read failed
admcrae 0:e314f3b805ed 103 int uLCD_4D_Picaso::ReadSerPort(char *psData, int iMax) {
admcrae 0:e314f3b805ed 104 int i;
admcrae 0:e314f3b805ed 105 Error4D = Err4D_OK;
admcrae 0:e314f3b805ed 106
admcrae 0:e314f3b805ed 107 timer.reset();
admcrae 0:e314f3b805ed 108 timer.start();
admcrae 0:e314f3b805ed 109
admcrae 0:e314f3b805ed 110 for (i = 0; i < iMax; ++i) {
admcrae 0:e314f3b805ed 111 while (!serial.readable()) {
admcrae 0:e314f3b805ed 112 if (timer.read_ms() >= TimeLimit4D) {
admcrae 0:e314f3b805ed 113 Error4D = Err4D_Timeout;
admcrae 0:e314f3b805ed 114 timer.stop();
admcrae 0:e314f3b805ed 115 return -1;
admcrae 0:e314f3b805ed 116 }
admcrae 0:e314f3b805ed 117 }
admcrae 0:e314f3b805ed 118 psData[i] = serial.getc();
admcrae 0:e314f3b805ed 119 }
admcrae 0:e314f3b805ed 120
admcrae 0:e314f3b805ed 121 timer.stop();
admcrae 0:e314f3b805ed 122 return iMax;
admcrae 0:e314f3b805ed 123 }
admcrae 0:e314f3b805ed 124
admcrae 0:e314f3b805ed 125 void uLCD_4D_Picaso::getbytes(char *data, int size) {
admcrae 0:e314f3b805ed 126 int readc;
admcrae 0:e314f3b805ed 127 readc = ReadSerPort(data, size);
admcrae 0:e314f3b805ed 128 if (readc != size) {
admcrae 0:e314f3b805ed 129 printf("LCD serial: read timeout\r\n");
admcrae 0:e314f3b805ed 130 }
admcrae 0:e314f3b805ed 131 }
admcrae 0:e314f3b805ed 132
admcrae 0:e314f3b805ed 133 void uLCD_4D_Picaso::GetAck(void) {
admcrae 0:e314f3b805ed 134 char readx;
admcrae 0:e314f3b805ed 135 getbytes(&readx, 1);
admcrae 0:e314f3b805ed 136
admcrae 0:e314f3b805ed 137 if (readx != 6) {
admcrae 0:e314f3b805ed 138 Error4D = Err4D_NAK;
admcrae 0:e314f3b805ed 139 printf("LCD serial: no ACK received\r\n");
admcrae 0:e314f3b805ed 140 }
admcrae 0:e314f3b805ed 141 return;
admcrae 0:e314f3b805ed 142 }
admcrae 0:e314f3b805ed 143
admcrae 0:e314f3b805ed 144
admcrae 2:ebe7029e2825 145 uint16_t uLCD_4D_Picaso::GetWord(void) {
admcrae 0:e314f3b805ed 146 char readx[2];
admcrae 0:e314f3b805ed 147 getbytes(readx, 2);
admcrae 0:e314f3b805ed 148 return readx[0] << 8 | readx[1];
admcrae 0:e314f3b805ed 149 }
admcrae 0:e314f3b805ed 150
admcrae 0:e314f3b805ed 151 void uLCD_4D_Picaso::getString(char *outStr, int strLen) {
admcrae 0:e314f3b805ed 152 getbytes(outStr, strLen);
admcrae 0:e314f3b805ed 153
admcrae 0:e314f3b805ed 154 // Append EOS
admcrae 0:e314f3b805ed 155 outStr[strLen] = '\0';
admcrae 0:e314f3b805ed 156
admcrae 0:e314f3b805ed 157 return;
admcrae 0:e314f3b805ed 158 }
admcrae 0:e314f3b805ed 159
admcrae 2:ebe7029e2825 160 uint16_t uLCD_4D_Picaso::GetAckResp(void) {
admcrae 0:e314f3b805ed 161 GetAck();
admcrae 0:e314f3b805ed 162 return GetWord();
admcrae 0:e314f3b805ed 163 }
admcrae 0:e314f3b805ed 164
admcrae 2:ebe7029e2825 165 uint16_t uLCD_4D_Picaso::WaitForAck(void) {
admcrae 0:e314f3b805ed 166 int saveTimeout = TimeLimit4D;
admcrae 0:e314f3b805ed 167
admcrae 0:e314f3b805ed 168 // check once per minute
admcrae 0:e314f3b805ed 169 TimeLimit4D = 60 * 1000;
admcrae 0:e314f3b805ed 170 do {
admcrae 0:e314f3b805ed 171 GetAck();
admcrae 0:e314f3b805ed 172 } while (Error4D != Err4D_OK);
admcrae 0:e314f3b805ed 173
admcrae 0:e314f3b805ed 174 // Restore callback/timeout saves
admcrae 0:e314f3b805ed 175 TimeLimit4D = saveTimeout;
admcrae 0:e314f3b805ed 176
admcrae 0:e314f3b805ed 177 return GetWord();
admcrae 0:e314f3b805ed 178 }
admcrae 0:e314f3b805ed 179
admcrae 2:ebe7029e2825 180 uint16_t uLCD_4D_Picaso::GetAckRes2Words(uint16_t * word1, uint16_t * word2) {
admcrae 0:e314f3b805ed 181 int Result;
admcrae 0:e314f3b805ed 182 GetAck();
admcrae 0:e314f3b805ed 183 Result = GetWord();
admcrae 0:e314f3b805ed 184 *word1 = GetWord();
admcrae 0:e314f3b805ed 185 *word2 = GetWord();
admcrae 0:e314f3b805ed 186 return Result;
admcrae 0:e314f3b805ed 187 }
admcrae 0:e314f3b805ed 188
admcrae 2:ebe7029e2825 189 void uLCD_4D_Picaso::GetAck2Words(uint16_t * word1, uint16_t * word2) {
admcrae 0:e314f3b805ed 190 GetAck();
admcrae 0:e314f3b805ed 191 *word1 = GetWord();
admcrae 0:e314f3b805ed 192 *word2 = GetWord();
admcrae 0:e314f3b805ed 193 }
admcrae 0:e314f3b805ed 194
admcrae 2:ebe7029e2825 195 uint16_t uLCD_4D_Picaso::GetAckResSector(char* Sector) {
admcrae 0:e314f3b805ed 196 int Result;
admcrae 0:e314f3b805ed 197 GetAck();
admcrae 0:e314f3b805ed 198 Result = GetWord();
admcrae 0:e314f3b805ed 199 getbytes(Sector, 512);
admcrae 0:e314f3b805ed 200 return Result;
admcrae 0:e314f3b805ed 201 }
admcrae 0:e314f3b805ed 202
admcrae 2:ebe7029e2825 203 uint16_t uLCD_4D_Picaso::GetAckResStr(char * OutStr) {
admcrae 0:e314f3b805ed 204 int Result;
admcrae 0:e314f3b805ed 205 GetAck();
admcrae 0:e314f3b805ed 206 Result = GetWord();
admcrae 0:e314f3b805ed 207 getString(OutStr, Result);
admcrae 0:e314f3b805ed 208 return Result;
admcrae 0:e314f3b805ed 209 }
admcrae 0:e314f3b805ed 210
admcrae 2:ebe7029e2825 211 uint16_t uLCD_4D_Picaso::GetAckResData(char* OutData, uint16_t size) {
admcrae 0:e314f3b805ed 212 int Result;
admcrae 0:e314f3b805ed 213 GetAck();
admcrae 0:e314f3b805ed 214 Result = GetWord();
admcrae 0:e314f3b805ed 215 getbytes(OutData, size);
admcrae 0:e314f3b805ed 216 return Result;
admcrae 0:e314f3b805ed 217 }
admcrae 0:e314f3b805ed 218
admcrae 0:e314f3b805ed 219
admcrae 2:ebe7029e2825 220 void uLCD_4D_Picaso::SetThisBaudrate(Picaso::BaudRate Newrate) {
admcrae 0:e314f3b805ed 221 int nBaud;
admcrae 0:e314f3b805ed 222
admcrae 0:e314f3b805ed 223 switch (Newrate) {
admcrae 2:ebe7029e2825 224 case Picaso::BAUD_110: nBaud = 110; break;
admcrae 2:ebe7029e2825 225 case Picaso::BAUD_300: nBaud = 300; break;
admcrae 2:ebe7029e2825 226 case Picaso::BAUD_600: nBaud = 600; break;
admcrae 2:ebe7029e2825 227 case Picaso::BAUD_1200: nBaud = 1200; break;
admcrae 2:ebe7029e2825 228 case Picaso::BAUD_2400: nBaud = 2400; break;
admcrae 2:ebe7029e2825 229 case Picaso::BAUD_4800: nBaud = 4800; break;
admcrae 2:ebe7029e2825 230 case Picaso::BAUD_9600: nBaud = 9600; break;
admcrae 2:ebe7029e2825 231 case Picaso::BAUD_14400: nBaud = 14400; break;
admcrae 2:ebe7029e2825 232 case Picaso::BAUD_19200: nBaud = 19200; break;
admcrae 2:ebe7029e2825 233 case Picaso::BAUD_31250: nBaud = 31250; break;
admcrae 2:ebe7029e2825 234 case Picaso::BAUD_38400: nBaud = 38400; break;
admcrae 2:ebe7029e2825 235 case Picaso::BAUD_56000: nBaud = 56000; break;
admcrae 2:ebe7029e2825 236 case Picaso::BAUD_57600: nBaud = 57600; break;
admcrae 2:ebe7029e2825 237 case Picaso::BAUD_115200: nBaud = 115200; break;
admcrae 2:ebe7029e2825 238 case Picaso::BAUD_128000: nBaud = 133929; break;
admcrae 2:ebe7029e2825 239 case Picaso::BAUD_256000: nBaud = 281250; break;
admcrae 2:ebe7029e2825 240 case Picaso::BAUD_300000: nBaud = 312500; break;
admcrae 2:ebe7029e2825 241 case Picaso::BAUD_375000: nBaud = 401786; break;
admcrae 2:ebe7029e2825 242 case Picaso::BAUD_500000: nBaud = 562500; break;
admcrae 2:ebe7029e2825 243 case Picaso::BAUD_600000: nBaud = 703125; break;
admcrae 0:e314f3b805ed 244
admcrae 0:e314f3b805ed 245 default:
admcrae 0:e314f3b805ed 246 nBaud = 9600 ;
admcrae 0:e314f3b805ed 247 }
admcrae 0:e314f3b805ed 248
admcrae 0:e314f3b805ed 249 //Need to wait for the previous command to get out before setting new baud rate.
admcrae 0:e314f3b805ed 250 //10 ms seems to work for 9600, 40 ms for 2400
admcrae 0:e314f3b805ed 251 //Even using MODSERIAL's txIsBusy() doesn't seem to replace the need for this
admcrae 0:e314f3b805ed 252 LCD_wait_ms(40);
admcrae 0:e314f3b805ed 253 serial.baud(nBaud);
admcrae 0:e314f3b805ed 254
admcrae 0:e314f3b805ed 255 //Wait 100ms, as specified in serial command manual
admcrae 0:e314f3b805ed 256 LCD_wait_ms(100);
admcrae 0:e314f3b805ed 257
admcrae 0:e314f3b805ed 258 return;
admcrae 0:e314f3b805ed 259 }
admcrae 0:e314f3b805ed 260
admcrae 0:e314f3b805ed 261 /*
admcrae 0:e314f3b805ed 262 * End Of Intrinsic 4DRoutines here
admcrae 0:e314f3b805ed 263 */
admcrae 0:e314f3b805ed 264
admcrae 0:e314f3b805ed 265 /*
admcrae 0:e314f3b805ed 266 * Starts of 4D Compound Routines
admcrae 0:e314f3b805ed 267 */
admcrae 0:e314f3b805ed 268
admcrae 2:ebe7029e2825 269 uint16_t uLCD_4D_Picaso::bus_In()
admcrae 0:e314f3b805ed 270 {
admcrae 0:e314f3b805ed 271 char towrite[2] ;
admcrae 0:e314f3b805ed 272
admcrae 0:e314f3b805ed 273 towrite[0]= F_bus_In >> 8 ;
admcrae 0:e314f3b805ed 274 towrite[1]= F_bus_In ;
admcrae 0:e314f3b805ed 275 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 276 return GetAckResp() ;
admcrae 0:e314f3b805ed 277 }
admcrae 0:e314f3b805ed 278
admcrae 2:ebe7029e2825 279 void uLCD_4D_Picaso::bus_Out(uint16_t Bits)
admcrae 0:e314f3b805ed 280 {
admcrae 0:e314f3b805ed 281 char towrite[4] ;
admcrae 0:e314f3b805ed 282
admcrae 0:e314f3b805ed 283 towrite[0]= F_bus_Out >> 8 ;
admcrae 0:e314f3b805ed 284 towrite[1]= F_bus_Out ;
admcrae 0:e314f3b805ed 285 towrite[2]= Bits >> 8 ;
admcrae 0:e314f3b805ed 286 towrite[3]= Bits ;
admcrae 0:e314f3b805ed 287 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 288 GetAck() ;
admcrae 0:e314f3b805ed 289 }
admcrae 0:e314f3b805ed 290
admcrae 2:ebe7029e2825 291 uint16_t uLCD_4D_Picaso::bus_Read()
admcrae 0:e314f3b805ed 292 {
admcrae 0:e314f3b805ed 293 char towrite[2] ;
admcrae 0:e314f3b805ed 294
admcrae 0:e314f3b805ed 295 towrite[0]= F_bus_Read >> 8 ;
admcrae 0:e314f3b805ed 296 towrite[1]= F_bus_Read ;
admcrae 0:e314f3b805ed 297 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 298 return GetAckResp() ;
admcrae 0:e314f3b805ed 299 }
admcrae 0:e314f3b805ed 300
admcrae 2:ebe7029e2825 301 void uLCD_4D_Picaso::bus_Set(uint16_t IOMap)
admcrae 0:e314f3b805ed 302 {
admcrae 0:e314f3b805ed 303 char towrite[4] ;
admcrae 0:e314f3b805ed 304
admcrae 0:e314f3b805ed 305 towrite[0]= F_bus_Set >> 8 ;
admcrae 0:e314f3b805ed 306 towrite[1]= F_bus_Set ;
admcrae 0:e314f3b805ed 307 towrite[2]= IOMap >> 8 ;
admcrae 0:e314f3b805ed 308 towrite[3]= IOMap ;
admcrae 0:e314f3b805ed 309 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 310 GetAck() ;
admcrae 0:e314f3b805ed 311 }
admcrae 0:e314f3b805ed 312
admcrae 2:ebe7029e2825 313 void uLCD_4D_Picaso::bus_Write(uint16_t Bits)
admcrae 0:e314f3b805ed 314 {
admcrae 0:e314f3b805ed 315 char towrite[4] ;
admcrae 0:e314f3b805ed 316
admcrae 0:e314f3b805ed 317 towrite[0]= F_bus_Write >> 8 ;
admcrae 0:e314f3b805ed 318 towrite[1]= F_bus_Write ;
admcrae 0:e314f3b805ed 319 towrite[2]= Bits >> 8 ;
admcrae 0:e314f3b805ed 320 towrite[3]= Bits ;
admcrae 0:e314f3b805ed 321 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 322 GetAck() ;
admcrae 0:e314f3b805ed 323 }
admcrae 0:e314f3b805ed 324
admcrae 2:ebe7029e2825 325 uint16_t uLCD_4D_Picaso::charheight(char TestChar)
admcrae 0:e314f3b805ed 326 {
admcrae 0:e314f3b805ed 327 char towrite[3] ;
admcrae 0:e314f3b805ed 328
admcrae 0:e314f3b805ed 329 towrite[0]= F_charheight >> 8 ;
admcrae 0:e314f3b805ed 330 towrite[1]= F_charheight ;
admcrae 0:e314f3b805ed 331 towrite[2]= TestChar;
admcrae 0:e314f3b805ed 332 WriteBytes(towrite, 3) ;
admcrae 0:e314f3b805ed 333 return GetAckResp() ;
admcrae 0:e314f3b805ed 334 }
admcrae 0:e314f3b805ed 335
admcrae 2:ebe7029e2825 336 uint16_t uLCD_4D_Picaso::charwidth(char TestChar)
admcrae 0:e314f3b805ed 337 {
admcrae 0:e314f3b805ed 338 char towrite[3] ;
admcrae 0:e314f3b805ed 339
admcrae 0:e314f3b805ed 340 towrite[0]= F_charwidth >> 8 ;
admcrae 0:e314f3b805ed 341 towrite[1]= F_charwidth ;
admcrae 0:e314f3b805ed 342 towrite[2]= TestChar;
admcrae 0:e314f3b805ed 343 WriteBytes(towrite, 3) ;
admcrae 0:e314f3b805ed 344 return GetAckResp() ;
admcrae 0:e314f3b805ed 345 }
admcrae 0:e314f3b805ed 346
admcrae 2:ebe7029e2825 347 uint16_t uLCD_4D_Picaso::file_Close(uint16_t Handle)
admcrae 0:e314f3b805ed 348 {
admcrae 0:e314f3b805ed 349 char towrite[4] ;
admcrae 0:e314f3b805ed 350
admcrae 0:e314f3b805ed 351 towrite[0]= F_file_Close >> 8 ;
admcrae 0:e314f3b805ed 352 towrite[1]= F_file_Close & 0xFF;
admcrae 0:e314f3b805ed 353 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 354 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 355 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 356 return GetAckResp() ;
admcrae 0:e314f3b805ed 357 }
admcrae 0:e314f3b805ed 358
admcrae 2:ebe7029e2825 359 uint16_t uLCD_4D_Picaso::file_Count(char* Filename)
admcrae 0:e314f3b805ed 360 {
admcrae 0:e314f3b805ed 361 char towrite[2] ;
admcrae 0:e314f3b805ed 362
admcrae 0:e314f3b805ed 363 towrite[0]= F_file_Count >> 8 ;
admcrae 0:e314f3b805ed 364 towrite[1]= F_file_Count ;
admcrae 0:e314f3b805ed 365 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 366 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 367 return GetAckResp() ;
admcrae 0:e314f3b805ed 368 }
admcrae 0:e314f3b805ed 369
admcrae 2:ebe7029e2825 370 uint16_t uLCD_4D_Picaso::file_Dir(char* Filename)
admcrae 0:e314f3b805ed 371 {
admcrae 0:e314f3b805ed 372 char towrite[2] ;
admcrae 0:e314f3b805ed 373
admcrae 0:e314f3b805ed 374 towrite[0]= F_file_Dir >> 8 ;
admcrae 0:e314f3b805ed 375 towrite[1]= F_file_Dir ;
admcrae 0:e314f3b805ed 376 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 377 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 378 return GetAckResp() ;
admcrae 0:e314f3b805ed 379 }
admcrae 0:e314f3b805ed 380
admcrae 2:ebe7029e2825 381 uint16_t uLCD_4D_Picaso::file_Erase(char* Filename)
admcrae 0:e314f3b805ed 382 {
admcrae 0:e314f3b805ed 383 char towrite[2] ;
admcrae 0:e314f3b805ed 384
admcrae 0:e314f3b805ed 385 towrite[0]= F_file_Erase >> 8 ;
admcrae 0:e314f3b805ed 386 towrite[1]= F_file_Erase & 0xFF;
admcrae 0:e314f3b805ed 387 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 388 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 389 return GetAckResp() ;
admcrae 0:e314f3b805ed 390 }
admcrae 0:e314f3b805ed 391
admcrae 2:ebe7029e2825 392 Picaso::FileError uLCD_4D_Picaso::file_Error()
admcrae 0:e314f3b805ed 393 {
admcrae 0:e314f3b805ed 394 char towrite[2] ;
admcrae 0:e314f3b805ed 395
admcrae 0:e314f3b805ed 396 towrite[0]= F_file_Error >> 8 ;
admcrae 0:e314f3b805ed 397 towrite[1]= F_file_Error & 0xFF;
admcrae 2:ebe7029e2825 398 WriteBytes(towrite, 2);
admcrae 2:ebe7029e2825 399 return (Picaso::FileError) GetAckResp();
admcrae 0:e314f3b805ed 400 }
admcrae 0:e314f3b805ed 401
admcrae 2:ebe7029e2825 402 uint16_t uLCD_4D_Picaso::file_Exec(char* Filename, uint16_t ArgCount, uint16_t* Args)
admcrae 0:e314f3b805ed 403 {
admcrae 0:e314f3b805ed 404 char towrite[2] ;
admcrae 0:e314f3b805ed 405
admcrae 0:e314f3b805ed 406 towrite[0]= F_file_Exec >> 8 ;
admcrae 0:e314f3b805ed 407 towrite[1]= F_file_Exec & 0xFF;
admcrae 0:e314f3b805ed 408 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 409 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 410 towrite[0]= ArgCount >> 8 ;
admcrae 0:e314f3b805ed 411 towrite[1]= ArgCount ;
admcrae 0:e314f3b805ed 412 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 413 WriteWords(Args, ArgCount) ;
admcrae 0:e314f3b805ed 414 return WaitForAck() ;
admcrae 0:e314f3b805ed 415 }
admcrae 0:e314f3b805ed 416
admcrae 2:ebe7029e2825 417 uint16_t uLCD_4D_Picaso::file_Exists(char* Filename)
admcrae 0:e314f3b805ed 418 {
admcrae 0:e314f3b805ed 419 char towrite[2] ;
admcrae 0:e314f3b805ed 420
admcrae 0:e314f3b805ed 421 towrite[0]= F_file_Exists >> 8 ;
admcrae 0:e314f3b805ed 422 towrite[1]= F_file_Exists & 0xFF;
admcrae 0:e314f3b805ed 423 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 424 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 425 return GetAckResp() ;
admcrae 0:e314f3b805ed 426 }
admcrae 0:e314f3b805ed 427
admcrae 2:ebe7029e2825 428 uint16_t uLCD_4D_Picaso::file_FindFirst(char* Filename)
admcrae 0:e314f3b805ed 429 {
admcrae 0:e314f3b805ed 430 char towrite[2] ;
admcrae 0:e314f3b805ed 431
admcrae 0:e314f3b805ed 432 towrite[0]= F_file_FindFirst >> 8 ;
admcrae 0:e314f3b805ed 433 towrite[1]= F_file_FindFirst & 0xFF;
admcrae 0:e314f3b805ed 434 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 435 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 436 return GetAckResp() ;
admcrae 0:e314f3b805ed 437 }
admcrae 0:e314f3b805ed 438
admcrae 2:ebe7029e2825 439 uint16_t uLCD_4D_Picaso::file_FindNext()
admcrae 0:e314f3b805ed 440 {
admcrae 0:e314f3b805ed 441 char towrite[2] ;
admcrae 0:e314f3b805ed 442 towrite[0]= F_file_FindNext >> 8 ;
admcrae 0:e314f3b805ed 443 towrite[1]= F_file_FindNext & 0xFF;
admcrae 0:e314f3b805ed 444 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 445 return GetAckResp() ;
admcrae 0:e314f3b805ed 446 }
admcrae 0:e314f3b805ed 447
admcrae 2:ebe7029e2825 448 char uLCD_4D_Picaso::file_GetC(uint16_t Handle)
admcrae 0:e314f3b805ed 449 {
admcrae 0:e314f3b805ed 450 char towrite[4] ;
admcrae 0:e314f3b805ed 451 towrite[0]= F_file_GetC >> 8 ;
admcrae 0:e314f3b805ed 452 towrite[1]= F_file_GetC & 0xFF;
admcrae 0:e314f3b805ed 453 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 454 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 455 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 456 return GetAckResp() ;
admcrae 0:e314f3b805ed 457 }
admcrae 0:e314f3b805ed 458
admcrae 2:ebe7029e2825 459 uint16_t uLCD_4D_Picaso::file_GetS(char* StringIn, uint16_t Size, uint16_t Handle)
admcrae 0:e314f3b805ed 460 {
admcrae 0:e314f3b805ed 461 char towrite[6] ;
admcrae 0:e314f3b805ed 462 towrite[0]= F_file_GetS >> 8 ;
admcrae 0:e314f3b805ed 463 towrite[1]= F_file_GetS & 0xFF;
admcrae 0:e314f3b805ed 464 towrite[2]= Size >> 8 ;
admcrae 0:e314f3b805ed 465 towrite[3]= Size ;
admcrae 0:e314f3b805ed 466 towrite[4]= Handle >> 8 ;
admcrae 0:e314f3b805ed 467 towrite[5]= Handle ;
admcrae 0:e314f3b805ed 468 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 469 return GetAckResStr(StringIn) ;
admcrae 0:e314f3b805ed 470 }
admcrae 0:e314f3b805ed 471
admcrae 2:ebe7029e2825 472 uint16_t uLCD_4D_Picaso::file_GetW(uint16_t Handle)
admcrae 0:e314f3b805ed 473 {
admcrae 0:e314f3b805ed 474 char towrite[4] ;
admcrae 0:e314f3b805ed 475 towrite[0]= F_file_GetW >> 8 ;
admcrae 0:e314f3b805ed 476 towrite[1]= F_file_GetW & 0xFF;
admcrae 0:e314f3b805ed 477 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 478 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 479 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 480 return GetAckResp() ;
admcrae 0:e314f3b805ed 481 }
admcrae 0:e314f3b805ed 482
admcrae 2:ebe7029e2825 483 uint16_t uLCD_4D_Picaso::file_Image(uint16_t X, uint16_t Y, uint16_t Handle)
admcrae 0:e314f3b805ed 484 {
admcrae 0:e314f3b805ed 485 char towrite[8] ;
admcrae 0:e314f3b805ed 486 towrite[0]= F_file_Image >> 8 ;
admcrae 0:e314f3b805ed 487 towrite[1]= F_file_Image & 0xFF;
admcrae 0:e314f3b805ed 488 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 489 towrite[3]= X ;
admcrae 0:e314f3b805ed 490 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 491 towrite[5]= Y ;
admcrae 0:e314f3b805ed 492 towrite[6]= Handle >> 8 ;
admcrae 0:e314f3b805ed 493 towrite[7]= Handle ;
admcrae 0:e314f3b805ed 494 WriteBytes(towrite, 8) ;
admcrae 0:e314f3b805ed 495 return GetAckResp() ;
admcrae 0:e314f3b805ed 496 }
admcrae 0:e314f3b805ed 497
admcrae 2:ebe7029e2825 498 uint16_t uLCD_4D_Picaso::file_Index(uint16_t Handle, uint16_t HiSize, uint16_t LoSize, uint16_t Recordnum)
admcrae 0:e314f3b805ed 499 {
admcrae 0:e314f3b805ed 500 char towrite[10] ;
admcrae 0:e314f3b805ed 501 towrite[0]= F_file_Index >> 8 ;
admcrae 0:e314f3b805ed 502 towrite[1]= F_file_Index & 0xFF;
admcrae 0:e314f3b805ed 503 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 504 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 505 towrite[4]= HiSize >> 8 ;
admcrae 0:e314f3b805ed 506 towrite[5]= HiSize ;
admcrae 0:e314f3b805ed 507 towrite[6]= LoSize >> 8 ;
admcrae 0:e314f3b805ed 508 towrite[7]= LoSize ;
admcrae 0:e314f3b805ed 509 towrite[8]= Recordnum >> 8 ;
admcrae 0:e314f3b805ed 510 towrite[9]= Recordnum ;
admcrae 0:e314f3b805ed 511 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 512 return GetAckResp() ;
admcrae 0:e314f3b805ed 513 }
admcrae 0:e314f3b805ed 514
admcrae 2:ebe7029e2825 515 uint16_t uLCD_4D_Picaso::file_LoadFunction(char* Filename)
admcrae 0:e314f3b805ed 516 {
admcrae 0:e314f3b805ed 517 char towrite[2] ;
admcrae 0:e314f3b805ed 518 towrite[0]= F_file_LoadFunction >> 8 ;
admcrae 0:e314f3b805ed 519 towrite[1]= F_file_LoadFunction ;
admcrae 0:e314f3b805ed 520 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 521 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 522 return GetAckResp() ;
admcrae 0:e314f3b805ed 523 }
admcrae 0:e314f3b805ed 524
admcrae 2:ebe7029e2825 525 uint16_t uLCD_4D_Picaso::file_LoadImageControl(char* Datname, char* GCIName, uint16_t Mode)
admcrae 0:e314f3b805ed 526 {
admcrae 0:e314f3b805ed 527 char towrite[2] ;
admcrae 0:e314f3b805ed 528 towrite[0]= F_file_LoadImageControl >> 8 ;
admcrae 0:e314f3b805ed 529 towrite[1]= F_file_LoadImageControl ;
admcrae 0:e314f3b805ed 530 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 531 WriteChars(Datname) ;
admcrae 0:e314f3b805ed 532 WriteChars(GCIName) ;
admcrae 0:e314f3b805ed 533 towrite[0]= Mode >> 8 ;
admcrae 0:e314f3b805ed 534 towrite[1]= Mode ;
admcrae 0:e314f3b805ed 535 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 536 return GetAckResp() ;
admcrae 0:e314f3b805ed 537 }
admcrae 0:e314f3b805ed 538
admcrae 2:ebe7029e2825 539 uint16_t uLCD_4D_Picaso::file_Mount()
admcrae 0:e314f3b805ed 540 {
admcrae 0:e314f3b805ed 541 char towrite[2] ;
admcrae 0:e314f3b805ed 542 towrite[0]= F_file_Mount >> 8 ;
admcrae 0:e314f3b805ed 543 towrite[1]= F_file_Mount & 0xFF;
admcrae 0:e314f3b805ed 544 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 545 return GetAckResp() ;
admcrae 0:e314f3b805ed 546 }
admcrae 0:e314f3b805ed 547
admcrae 2:ebe7029e2825 548 uint16_t uLCD_4D_Picaso::file_Open(char* Filename, char Mode)
admcrae 0:e314f3b805ed 549 {
admcrae 0:e314f3b805ed 550 char towrite[2] ;
admcrae 0:e314f3b805ed 551 towrite[0]= F_file_Open >> 8 ;
admcrae 0:e314f3b805ed 552 towrite[1]= F_file_Open & 0xFF;
admcrae 0:e314f3b805ed 553 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 554 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 555 towrite[0]= Mode;
admcrae 0:e314f3b805ed 556 WriteBytes(towrite, 1) ;
admcrae 0:e314f3b805ed 557 return GetAckResp() ;
admcrae 0:e314f3b805ed 558 }
admcrae 0:e314f3b805ed 559
admcrae 2:ebe7029e2825 560 uint16_t uLCD_4D_Picaso::file_PlayWAV(char* Filename)
admcrae 0:e314f3b805ed 561 {
admcrae 0:e314f3b805ed 562 char towrite[2] ;
admcrae 0:e314f3b805ed 563 towrite[0]= F_file_PlayWAV >> 8 ;
admcrae 0:e314f3b805ed 564 towrite[1]= F_file_PlayWAV & 0xFF;
admcrae 0:e314f3b805ed 565 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 566 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 567 return GetAckResp() ;
admcrae 0:e314f3b805ed 568 }
admcrae 0:e314f3b805ed 569
admcrae 2:ebe7029e2825 570 uint16_t uLCD_4D_Picaso::file_PutC(char Character, uint16_t Handle)
admcrae 0:e314f3b805ed 571 {
admcrae 0:e314f3b805ed 572 char towrite[5] ;
admcrae 0:e314f3b805ed 573 towrite[0]= F_file_PutC >> 8 ;
admcrae 0:e314f3b805ed 574 towrite[1]= F_file_PutC ;
admcrae 0:e314f3b805ed 575 towrite[2]= Character;
admcrae 0:e314f3b805ed 576 towrite[3]= Handle >> 8 ;
admcrae 0:e314f3b805ed 577 towrite[4]= Handle ;
admcrae 0:e314f3b805ed 578 WriteBytes(towrite, 5) ;
admcrae 0:e314f3b805ed 579 return GetAckResp() ;
admcrae 0:e314f3b805ed 580 }
admcrae 0:e314f3b805ed 581
admcrae 2:ebe7029e2825 582 uint16_t uLCD_4D_Picaso::file_PutS(char * StringOut, uint16_t Handle)
admcrae 0:e314f3b805ed 583 {
admcrae 0:e314f3b805ed 584 char towrite[2] ;
admcrae 0:e314f3b805ed 585 towrite[0]= F_file_PutS >> 8 ;
admcrae 0:e314f3b805ed 586 towrite[1]= F_file_PutS & 0xFF;
admcrae 0:e314f3b805ed 587 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 588 WriteChars(StringOut) ;
admcrae 0:e314f3b805ed 589 towrite[0]= Handle >> 8 ;
admcrae 0:e314f3b805ed 590 towrite[1]= Handle ;
admcrae 0:e314f3b805ed 591 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 592 return GetAckResp() ;
admcrae 0:e314f3b805ed 593 }
admcrae 0:e314f3b805ed 594
admcrae 2:ebe7029e2825 595 uint16_t uLCD_4D_Picaso::file_PutW(uint16_t Word, uint16_t Handle)
admcrae 0:e314f3b805ed 596 {
admcrae 0:e314f3b805ed 597 char towrite[6] ;
admcrae 0:e314f3b805ed 598 towrite[0]= F_file_PutW >> 8 ;
admcrae 0:e314f3b805ed 599 towrite[1]= F_file_PutW & 0xFF;
admcrae 0:e314f3b805ed 600 towrite[2]= Word >> 8 ;
admcrae 0:e314f3b805ed 601 towrite[3]= Word ;
admcrae 0:e314f3b805ed 602 towrite[4]= Handle >> 8 ;
admcrae 0:e314f3b805ed 603 towrite[5]= Handle ;
admcrae 0:e314f3b805ed 604 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 605 return GetAckResp() ;
admcrae 0:e314f3b805ed 606 }
admcrae 0:e314f3b805ed 607
admcrae 2:ebe7029e2825 608 uint16_t uLCD_4D_Picaso::file_Read(char* Data, uint16_t Size, uint16_t Handle)
admcrae 0:e314f3b805ed 609 {
admcrae 0:e314f3b805ed 610 char towrite[6] ;
admcrae 0:e314f3b805ed 611 towrite[0]= F_file_Read >> 8 ;
admcrae 0:e314f3b805ed 612 towrite[1]= F_file_Read & 0xFF;
admcrae 0:e314f3b805ed 613 towrite[2]= Size >> 8 ;
admcrae 0:e314f3b805ed 614 towrite[3]= Size ;
admcrae 0:e314f3b805ed 615 towrite[4]= Handle >> 8 ;
admcrae 0:e314f3b805ed 616 towrite[5]= Handle ;
admcrae 0:e314f3b805ed 617 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 618 return GetAckResData(Data,Size) ;
admcrae 0:e314f3b805ed 619 }
admcrae 0:e314f3b805ed 620
admcrae 2:ebe7029e2825 621 uint16_t uLCD_4D_Picaso::file_Rewind(uint16_t Handle)
admcrae 0:e314f3b805ed 622 {
admcrae 0:e314f3b805ed 623 char towrite[4] ;
admcrae 0:e314f3b805ed 624 towrite[0]= F_file_Rewind >> 8 ;
admcrae 0:e314f3b805ed 625 towrite[1]= F_file_Rewind & 0xFF;
admcrae 0:e314f3b805ed 626 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 627 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 628 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 629 return GetAckResp() ;
admcrae 0:e314f3b805ed 630 }
admcrae 0:e314f3b805ed 631
admcrae 2:ebe7029e2825 632 uint16_t uLCD_4D_Picaso::file_Run(char * Filename, uint16_t ArgCount, uint16_t* Args)
admcrae 0:e314f3b805ed 633 {
admcrae 0:e314f3b805ed 634 char towrite[2] ;
admcrae 0:e314f3b805ed 635 towrite[0]= F_file_Run >> 8 ;
admcrae 0:e314f3b805ed 636 towrite[1]= F_file_Run & 0xFF;
admcrae 0:e314f3b805ed 637 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 638 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 639 towrite[0]= ArgCount >> 8 ;
admcrae 0:e314f3b805ed 640 towrite[1]= ArgCount ;
admcrae 0:e314f3b805ed 641 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 642 WriteWords(Args, ArgCount) ;
admcrae 0:e314f3b805ed 643 return WaitForAck() ;
admcrae 0:e314f3b805ed 644 }
admcrae 0:e314f3b805ed 645
admcrae 2:ebe7029e2825 646 uint16_t uLCD_4D_Picaso::file_ScreenCapture(uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height, uint16_t Handle)
admcrae 0:e314f3b805ed 647 {
admcrae 0:e314f3b805ed 648 char towrite[12] ;
admcrae 0:e314f3b805ed 649 towrite[0]= F_file_ScreenCapture >> 8 ;
admcrae 0:e314f3b805ed 650 towrite[1]= F_file_ScreenCapture & 0xFF;
admcrae 0:e314f3b805ed 651 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 652 towrite[3]= X ;
admcrae 0:e314f3b805ed 653 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 654 towrite[5]= Y ;
admcrae 0:e314f3b805ed 655 towrite[6]= Width >> 8 ;
admcrae 0:e314f3b805ed 656 towrite[7]= Width ;
admcrae 0:e314f3b805ed 657 towrite[8]= Height >> 8 ;
admcrae 0:e314f3b805ed 658 towrite[9]= Height ;
admcrae 0:e314f3b805ed 659 towrite[10]= Handle >> 8 ;
admcrae 0:e314f3b805ed 660 towrite[11]= Handle ;
admcrae 0:e314f3b805ed 661 WriteBytes(towrite, 12) ;
admcrae 0:e314f3b805ed 662 return GetAckResp() ;
admcrae 0:e314f3b805ed 663 }
admcrae 0:e314f3b805ed 664
admcrae 2:ebe7029e2825 665 uint16_t uLCD_4D_Picaso::file_Seek(uint16_t Handle, uint16_t HiWord, uint16_t LoWord)
admcrae 0:e314f3b805ed 666 {
admcrae 0:e314f3b805ed 667 char towrite[8] ;
admcrae 0:e314f3b805ed 668 towrite[0]= F_file_Seek >> 8 ;
admcrae 0:e314f3b805ed 669 towrite[1]= F_file_Seek & 0xFF;
admcrae 0:e314f3b805ed 670 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 671 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 672 towrite[4]= HiWord >> 8 ;
admcrae 0:e314f3b805ed 673 towrite[5]= HiWord ;
admcrae 0:e314f3b805ed 674 towrite[6]= LoWord >> 8 ;
admcrae 0:e314f3b805ed 675 towrite[7]= LoWord ;
admcrae 0:e314f3b805ed 676 WriteBytes(towrite, 8) ;
admcrae 0:e314f3b805ed 677 return GetAckResp() ;
admcrae 0:e314f3b805ed 678 }
admcrae 0:e314f3b805ed 679
admcrae 2:ebe7029e2825 680 uint16_t uLCD_4D_Picaso::file_Size(uint16_t Handle, uint16_t * HiWord, uint16_t * LoWord)
admcrae 0:e314f3b805ed 681 {
admcrae 0:e314f3b805ed 682 char towrite[4] ;
admcrae 0:e314f3b805ed 683 towrite[0]= F_file_Size >> 8 ;
admcrae 0:e314f3b805ed 684 towrite[1]= F_file_Size ;
admcrae 0:e314f3b805ed 685 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 686 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 687 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 688 return GetAckRes2Words(HiWord,LoWord) ;
admcrae 0:e314f3b805ed 689 }
admcrae 0:e314f3b805ed 690
admcrae 2:ebe7029e2825 691 uint16_t uLCD_4D_Picaso::file_Tell(uint16_t Handle, uint16_t * HiWord, uint16_t * LoWord)
admcrae 0:e314f3b805ed 692 {
admcrae 0:e314f3b805ed 693 char towrite[4] ;
admcrae 0:e314f3b805ed 694 towrite[0]= F_file_Tell >> 8 ;
admcrae 0:e314f3b805ed 695 towrite[1]= F_file_Tell ;
admcrae 0:e314f3b805ed 696 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 697 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 698 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 699 return GetAckRes2Words(HiWord,LoWord) ;
admcrae 0:e314f3b805ed 700 }
admcrae 0:e314f3b805ed 701
admcrae 0:e314f3b805ed 702 void uLCD_4D_Picaso::file_Unmount()
admcrae 0:e314f3b805ed 703 {
admcrae 0:e314f3b805ed 704 char towrite[2] ;
admcrae 0:e314f3b805ed 705
admcrae 0:e314f3b805ed 706 towrite[0]= F_file_Unmount >> 8 ;
admcrae 0:e314f3b805ed 707 towrite[1]= F_file_Unmount & 0xFF;
admcrae 0:e314f3b805ed 708 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 709 GetAck() ;
admcrae 0:e314f3b805ed 710 }
admcrae 0:e314f3b805ed 711
admcrae 2:ebe7029e2825 712 uint16_t uLCD_4D_Picaso::file_Write(uint16_t Size, char* Source, uint16_t Handle)
admcrae 0:e314f3b805ed 713 {
admcrae 0:e314f3b805ed 714 char towrite[4] ;
admcrae 0:e314f3b805ed 715 towrite[0]= F_file_Write >> 8 ;
admcrae 0:e314f3b805ed 716 towrite[1]= F_file_Write ;
admcrae 0:e314f3b805ed 717 towrite[2]= Size >> 8 ;
admcrae 0:e314f3b805ed 718 towrite[3]= Size ;
admcrae 0:e314f3b805ed 719 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 720 WriteBytes(Source, Size) ;
admcrae 0:e314f3b805ed 721 towrite[0]= Handle >> 8 ;
admcrae 0:e314f3b805ed 722 towrite[1]= Handle ;
admcrae 0:e314f3b805ed 723 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 724 return GetAckResp() ;
admcrae 0:e314f3b805ed 725 }
admcrae 0:e314f3b805ed 726
admcrae 2:ebe7029e2825 727 uint16_t uLCD_4D_Picaso::gfx_BevelShadow(uint16_t Value)
admcrae 0:e314f3b805ed 728 {
admcrae 0:e314f3b805ed 729 char towrite[4] ;
admcrae 0:e314f3b805ed 730 towrite[0]= F_gfx_BevelShadow >> 8 ;
admcrae 0:e314f3b805ed 731 towrite[1]= F_gfx_BevelShadow ;
admcrae 0:e314f3b805ed 732 towrite[2]= Value >> 8 ;
admcrae 0:e314f3b805ed 733 towrite[3]= Value ;
admcrae 0:e314f3b805ed 734 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 735 return GetAckResp() ;
admcrae 0:e314f3b805ed 736 }
admcrae 0:e314f3b805ed 737
admcrae 2:ebe7029e2825 738 uint16_t uLCD_4D_Picaso::gfx_BevelWidth(uint16_t Value)
admcrae 0:e314f3b805ed 739 {
admcrae 0:e314f3b805ed 740 char towrite[4] ;
admcrae 0:e314f3b805ed 741 towrite[0]= F_gfx_BevelWidth >> 8 ;
admcrae 0:e314f3b805ed 742 towrite[1]= F_gfx_BevelWidth ;
admcrae 0:e314f3b805ed 743 towrite[2]= Value >> 8 ;
admcrae 0:e314f3b805ed 744 towrite[3]= Value ;
admcrae 0:e314f3b805ed 745 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 746 return GetAckResp() ;
admcrae 0:e314f3b805ed 747 }
admcrae 0:e314f3b805ed 748
admcrae 2:ebe7029e2825 749 Picaso::Color uLCD_4D_Picaso::gfx_BGcolour(Picaso::Color Color)
admcrae 0:e314f3b805ed 750 {
admcrae 0:e314f3b805ed 751 char towrite[4] ;
admcrae 0:e314f3b805ed 752 towrite[0]= F_gfx_BGcolour >> 8 ;
admcrae 0:e314f3b805ed 753 towrite[1]= F_gfx_BGcolour ;
admcrae 0:e314f3b805ed 754 towrite[2]= Color >> 8 ;
admcrae 0:e314f3b805ed 755 towrite[3]= Color ;
admcrae 0:e314f3b805ed 756 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 757 return (Picaso::Color) GetAckResp() ;
admcrae 0:e314f3b805ed 758 }
admcrae 0:e314f3b805ed 759
admcrae 2:ebe7029e2825 760 void uLCD_4D_Picaso::gfx_Button(Picaso::ButtonState Up, uint16_t x, uint16_t y, Picaso::Color buttonColour, Picaso::Color txtColour, Picaso::Font font, uint16_t txtWidth, uint16_t txtHeight, char * text)
admcrae 0:e314f3b805ed 761 {
admcrae 0:e314f3b805ed 762 char towrite[18] ;
admcrae 0:e314f3b805ed 763 towrite[0]= F_gfx_Button >> 8 ;
admcrae 0:e314f3b805ed 764 towrite[1]= F_gfx_Button ;
admcrae 0:e314f3b805ed 765 towrite[2]= Up >> 8 ;
admcrae 0:e314f3b805ed 766 towrite[3]= Up ;
admcrae 0:e314f3b805ed 767 towrite[4]= x >> 8 ;
admcrae 0:e314f3b805ed 768 towrite[5]= x ;
admcrae 0:e314f3b805ed 769 towrite[6]= y >> 8 ;
admcrae 0:e314f3b805ed 770 towrite[7]= y ;
admcrae 0:e314f3b805ed 771 towrite[8]= buttonColour >> 8 ;
admcrae 0:e314f3b805ed 772 towrite[9]= buttonColour ;
admcrae 0:e314f3b805ed 773 towrite[10]= txtColour >> 8 ;
admcrae 0:e314f3b805ed 774 towrite[11]= txtColour ;
admcrae 0:e314f3b805ed 775 towrite[12]= font >> 8 ;
admcrae 0:e314f3b805ed 776 towrite[13]= font ;
admcrae 0:e314f3b805ed 777 towrite[14]= txtWidth >> 8 ;
admcrae 0:e314f3b805ed 778 towrite[15]= txtWidth ;
admcrae 0:e314f3b805ed 779 towrite[16]= txtHeight >> 8 ;
admcrae 0:e314f3b805ed 780 towrite[17]= txtHeight ;
admcrae 0:e314f3b805ed 781 WriteBytes(towrite, 18) ;
admcrae 0:e314f3b805ed 782 WriteChars( text) ;
admcrae 0:e314f3b805ed 783 GetAck() ;
admcrae 0:e314f3b805ed 784 }
admcrae 0:e314f3b805ed 785
admcrae 2:ebe7029e2825 786 void uLCD_4D_Picaso::gfx_ChangeColour(uint16_t OldColor, uint16_t NewColor)
admcrae 0:e314f3b805ed 787 {
admcrae 0:e314f3b805ed 788 char towrite[6] ;
admcrae 0:e314f3b805ed 789
admcrae 0:e314f3b805ed 790 towrite[0]= F_gfx_ChangeColour >> 8 ;
admcrae 0:e314f3b805ed 791 towrite[1]= F_gfx_ChangeColour ;
admcrae 0:e314f3b805ed 792 towrite[2]= OldColor >> 8 ;
admcrae 0:e314f3b805ed 793 towrite[3]= OldColor ;
admcrae 0:e314f3b805ed 794 towrite[4]= NewColor >> 8 ;
admcrae 0:e314f3b805ed 795 towrite[5]= NewColor ;
admcrae 0:e314f3b805ed 796 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 797 GetAck() ;
admcrae 0:e314f3b805ed 798 }
admcrae 0:e314f3b805ed 799
admcrae 2:ebe7029e2825 800 void uLCD_4D_Picaso::gfx_Circle(uint16_t X, uint16_t Y, uint16_t Radius, Picaso::Color Color)
admcrae 0:e314f3b805ed 801 {
admcrae 0:e314f3b805ed 802 char towrite[10] ;
admcrae 0:e314f3b805ed 803
admcrae 0:e314f3b805ed 804 towrite[0]= F_gfx_Circle >> 8 ;
admcrae 0:e314f3b805ed 805 towrite[1]= F_gfx_Circle ;
admcrae 0:e314f3b805ed 806 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 807 towrite[3]= X ;
admcrae 0:e314f3b805ed 808 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 809 towrite[5]= Y ;
admcrae 0:e314f3b805ed 810 towrite[6]= Radius >> 8 ;
admcrae 0:e314f3b805ed 811 towrite[7]= Radius ;
admcrae 0:e314f3b805ed 812 towrite[8]= Color >> 8 ;
admcrae 0:e314f3b805ed 813 towrite[9]= Color ;
admcrae 0:e314f3b805ed 814 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 815 GetAck() ;
admcrae 0:e314f3b805ed 816 }
admcrae 0:e314f3b805ed 817
admcrae 2:ebe7029e2825 818 void uLCD_4D_Picaso::gfx_CircleFilled(uint16_t X, uint16_t Y, uint16_t Radius, Picaso::Color Color)
admcrae 0:e314f3b805ed 819 {
admcrae 0:e314f3b805ed 820 char towrite[10] ;
admcrae 0:e314f3b805ed 821
admcrae 0:e314f3b805ed 822 towrite[0]= F_gfx_CircleFilled >> 8 ;
admcrae 0:e314f3b805ed 823 towrite[1]= F_gfx_CircleFilled ;
admcrae 0:e314f3b805ed 824 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 825 towrite[3]= X ;
admcrae 0:e314f3b805ed 826 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 827 towrite[5]= Y ;
admcrae 0:e314f3b805ed 828 towrite[6]= Radius >> 8 ;
admcrae 0:e314f3b805ed 829 towrite[7]= Radius ;
admcrae 0:e314f3b805ed 830 towrite[8]= Color >> 8 ;
admcrae 0:e314f3b805ed 831 towrite[9]= Color ;
admcrae 0:e314f3b805ed 832 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 833 GetAck() ;
admcrae 0:e314f3b805ed 834 }
admcrae 0:e314f3b805ed 835
admcrae 2:ebe7029e2825 836 void uLCD_4D_Picaso::gfx_Clipping(uint16_t OnOff)
admcrae 0:e314f3b805ed 837 {
admcrae 0:e314f3b805ed 838 char towrite[4] ;
admcrae 0:e314f3b805ed 839
admcrae 0:e314f3b805ed 840 towrite[0]= F_gfx_Clipping >> 8 ;
admcrae 0:e314f3b805ed 841 towrite[1]= F_gfx_Clipping ;
admcrae 0:e314f3b805ed 842 towrite[2]= OnOff >> 8 ;
admcrae 0:e314f3b805ed 843 towrite[3]= OnOff ;
admcrae 0:e314f3b805ed 844 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 845 GetAck() ;
admcrae 0:e314f3b805ed 846 }
admcrae 0:e314f3b805ed 847
admcrae 2:ebe7029e2825 848 void uLCD_4D_Picaso::gfx_ClipWindow(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2)
admcrae 0:e314f3b805ed 849 {
admcrae 0:e314f3b805ed 850 char towrite[10] ;
admcrae 0:e314f3b805ed 851
admcrae 0:e314f3b805ed 852 towrite[0]= F_gfx_ClipWindow >> 8 ;
admcrae 0:e314f3b805ed 853 towrite[1]= F_gfx_ClipWindow ;
admcrae 0:e314f3b805ed 854 towrite[2]= X1 >> 8 ;
admcrae 0:e314f3b805ed 855 towrite[3]= X1 ;
admcrae 0:e314f3b805ed 856 towrite[4]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 857 towrite[5]= Y1 ;
admcrae 0:e314f3b805ed 858 towrite[6]= X2 >> 8 ;
admcrae 0:e314f3b805ed 859 towrite[7]= X2 ;
admcrae 0:e314f3b805ed 860 towrite[8]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 861 towrite[9]= Y2 ;
admcrae 0:e314f3b805ed 862 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 863 GetAck() ;
admcrae 0:e314f3b805ed 864 }
admcrae 0:e314f3b805ed 865
admcrae 0:e314f3b805ed 866 void uLCD_4D_Picaso::gfx_Cls()
admcrae 0:e314f3b805ed 867 {
admcrae 0:e314f3b805ed 868 char towrite[2] ;
admcrae 0:e314f3b805ed 869 towrite[0]= F_gfx_Cls >> 8 ;
admcrae 0:e314f3b805ed 870 towrite[1]= F_gfx_Cls ;
admcrae 0:e314f3b805ed 871 WriteBytes(towrite, 2);
admcrae 0:e314f3b805ed 872 GetAck();
admcrae 0:e314f3b805ed 873 }
admcrae 0:e314f3b805ed 874
admcrae 2:ebe7029e2825 875 uint16_t uLCD_4D_Picaso::gfx_Contrast(uint16_t Contrast)
admcrae 0:e314f3b805ed 876 {
admcrae 0:e314f3b805ed 877 char towrite[4] ;
admcrae 0:e314f3b805ed 878 towrite[0]= F_gfx_Contrast >> 8 ;
admcrae 0:e314f3b805ed 879 towrite[1]= F_gfx_Contrast ;
admcrae 0:e314f3b805ed 880 towrite[2]= Contrast >> 8 ;
admcrae 0:e314f3b805ed 881 towrite[3]= Contrast ;
admcrae 0:e314f3b805ed 882 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 883 return GetAckResp() ;
admcrae 0:e314f3b805ed 884 }
admcrae 0:e314f3b805ed 885
admcrae 2:ebe7029e2825 886 void uLCD_4D_Picaso::gfx_Ellipse(uint16_t X, uint16_t Y, uint16_t Xrad, uint16_t Yrad, Picaso::Color Color)
admcrae 0:e314f3b805ed 887 {
admcrae 0:e314f3b805ed 888 char towrite[12] ;
admcrae 0:e314f3b805ed 889 towrite[0]= F_gfx_Ellipse >> 8 ;
admcrae 0:e314f3b805ed 890 towrite[1]= F_gfx_Ellipse ;
admcrae 0:e314f3b805ed 891 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 892 towrite[3]= X ;
admcrae 0:e314f3b805ed 893 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 894 towrite[5]= Y ;
admcrae 0:e314f3b805ed 895 towrite[6]= Xrad >> 8 ;
admcrae 0:e314f3b805ed 896 towrite[7]= Xrad ;
admcrae 0:e314f3b805ed 897 towrite[8]= Yrad >> 8 ;
admcrae 0:e314f3b805ed 898 towrite[9]= Yrad ;
admcrae 0:e314f3b805ed 899 towrite[10]= Color >> 8 ;
admcrae 0:e314f3b805ed 900 towrite[11]= Color ;
admcrae 0:e314f3b805ed 901 WriteBytes(towrite, 12) ;
admcrae 0:e314f3b805ed 902 GetAck() ;
admcrae 0:e314f3b805ed 903 }
admcrae 0:e314f3b805ed 904
admcrae 2:ebe7029e2825 905 void uLCD_4D_Picaso::gfx_EllipseFilled(uint16_t X, uint16_t Y, uint16_t Xrad, uint16_t Yrad, Picaso::Color Color)
admcrae 0:e314f3b805ed 906 {
admcrae 0:e314f3b805ed 907 char towrite[12] ;
admcrae 0:e314f3b805ed 908 towrite[0]= F_gfx_EllipseFilled >> 8 ;
admcrae 0:e314f3b805ed 909 towrite[1]= F_gfx_EllipseFilled ;
admcrae 0:e314f3b805ed 910 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 911 towrite[3]= X ;
admcrae 0:e314f3b805ed 912 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 913 towrite[5]= Y ;
admcrae 0:e314f3b805ed 914 towrite[6]= Xrad >> 8 ;
admcrae 0:e314f3b805ed 915 towrite[7]= Xrad ;
admcrae 0:e314f3b805ed 916 towrite[8]= Yrad >> 8 ;
admcrae 0:e314f3b805ed 917 towrite[9]= Yrad ;
admcrae 0:e314f3b805ed 918 towrite[10]= Color >> 8 ;
admcrae 0:e314f3b805ed 919 towrite[11]= Color ;
admcrae 0:e314f3b805ed 920 WriteBytes(towrite, 12) ;
admcrae 0:e314f3b805ed 921 GetAck() ;
admcrae 0:e314f3b805ed 922 }
admcrae 0:e314f3b805ed 923
admcrae 2:ebe7029e2825 924 uint16_t uLCD_4D_Picaso::gfx_FrameDelay(uint16_t Msec)
admcrae 0:e314f3b805ed 925 {
admcrae 0:e314f3b805ed 926 char towrite[4] ;
admcrae 0:e314f3b805ed 927 towrite[0]= F_gfx_FrameDelay >> 8 ;
admcrae 0:e314f3b805ed 928 towrite[1]= F_gfx_FrameDelay ;
admcrae 0:e314f3b805ed 929 towrite[2]= Msec >> 8 ;
admcrae 0:e314f3b805ed 930 towrite[3]= Msec ;
admcrae 0:e314f3b805ed 931 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 932 return GetAckResp() ;
admcrae 0:e314f3b805ed 933 }
admcrae 0:e314f3b805ed 934
admcrae 2:ebe7029e2825 935 uint16_t uLCD_4D_Picaso::gfx_Get(Picaso::GFXGetMode Mode)
admcrae 0:e314f3b805ed 936 {
admcrae 0:e314f3b805ed 937 char towrite[4] ;
admcrae 0:e314f3b805ed 938 towrite[0]= F_gfx_Get >> 8 ;
admcrae 0:e314f3b805ed 939 towrite[1]= F_gfx_Get ;
admcrae 0:e314f3b805ed 940 towrite[2]= Mode >> 8 ;
admcrae 0:e314f3b805ed 941 towrite[3]= Mode ;
admcrae 0:e314f3b805ed 942 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 943 return GetAckResp() ;
admcrae 0:e314f3b805ed 944 }
admcrae 0:e314f3b805ed 945
admcrae 2:ebe7029e2825 946 Picaso::Color uLCD_4D_Picaso::gfx_GetPixel(uint16_t X, uint16_t Y)
admcrae 0:e314f3b805ed 947 {
admcrae 0:e314f3b805ed 948 char towrite[6] ;
admcrae 0:e314f3b805ed 949 towrite[0]= F_gfx_GetPixel >> 8 ;
admcrae 0:e314f3b805ed 950 towrite[1]= F_gfx_GetPixel ;
admcrae 0:e314f3b805ed 951 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 952 towrite[3]= X ;
admcrae 0:e314f3b805ed 953 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 954 towrite[5]= Y ;
admcrae 0:e314f3b805ed 955 WriteBytes(towrite, 6) ;
admcrae 2:ebe7029e2825 956 return (Picaso::Color) GetAckResp() ;
admcrae 0:e314f3b805ed 957 }
admcrae 0:e314f3b805ed 958
admcrae 2:ebe7029e2825 959 void uLCD_4D_Picaso::gfx_Line(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color)
admcrae 0:e314f3b805ed 960 {
admcrae 0:e314f3b805ed 961 char towrite[12] ;
admcrae 0:e314f3b805ed 962 towrite[0]= F_gfx_Line >> 8 ;
admcrae 0:e314f3b805ed 963 towrite[1]= F_gfx_Line ;
admcrae 0:e314f3b805ed 964 towrite[2]= X1 >> 8 ;
admcrae 0:e314f3b805ed 965 towrite[3]= X1 ;
admcrae 0:e314f3b805ed 966 towrite[4]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 967 towrite[5]= Y1 ;
admcrae 0:e314f3b805ed 968 towrite[6]= X2 >> 8 ;
admcrae 0:e314f3b805ed 969 towrite[7]= X2 ;
admcrae 0:e314f3b805ed 970 towrite[8]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 971 towrite[9]= Y2 ;
admcrae 0:e314f3b805ed 972 towrite[10]= Color >> 8 ;
admcrae 0:e314f3b805ed 973 towrite[11]= Color ;
admcrae 0:e314f3b805ed 974 WriteBytes(towrite, 12) ;
admcrae 0:e314f3b805ed 975 GetAck() ;
admcrae 0:e314f3b805ed 976 }
admcrae 0:e314f3b805ed 977
admcrae 2:ebe7029e2825 978 uint16_t uLCD_4D_Picaso::gfx_LinePattern(uint16_t Pattern)
admcrae 0:e314f3b805ed 979 {
admcrae 0:e314f3b805ed 980 char towrite[4] ;
admcrae 0:e314f3b805ed 981 towrite[0]= F_gfx_LinePattern >> 8 ;
admcrae 0:e314f3b805ed 982 towrite[1]= F_gfx_LinePattern ;
admcrae 0:e314f3b805ed 983 towrite[2]= Pattern >> 8 ;
admcrae 0:e314f3b805ed 984 towrite[3]= Pattern ;
admcrae 0:e314f3b805ed 985 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 986 return GetAckResp() ;
admcrae 0:e314f3b805ed 987 }
admcrae 0:e314f3b805ed 988
admcrae 2:ebe7029e2825 989 void uLCD_4D_Picaso::gfx_LineTo(uint16_t X, uint16_t Y)
admcrae 0:e314f3b805ed 990 {
admcrae 0:e314f3b805ed 991 char towrite[6] ;
admcrae 0:e314f3b805ed 992 towrite[0]= F_gfx_LineTo >> 8 ;
admcrae 0:e314f3b805ed 993 towrite[1]= F_gfx_LineTo ;
admcrae 0:e314f3b805ed 994 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 995 towrite[3]= X ;
admcrae 0:e314f3b805ed 996 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 997 towrite[5]= Y ;
admcrae 0:e314f3b805ed 998 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 999 GetAck() ;
admcrae 0:e314f3b805ed 1000 }
admcrae 0:e314f3b805ed 1001
admcrae 2:ebe7029e2825 1002 void uLCD_4D_Picaso::gfx_MoveTo(uint16_t X, uint16_t Y)
admcrae 0:e314f3b805ed 1003 {
admcrae 0:e314f3b805ed 1004 char towrite[6] ;
admcrae 0:e314f3b805ed 1005 towrite[0]= F_gfx_MoveTo >> 8 ;
admcrae 0:e314f3b805ed 1006 towrite[1]= F_gfx_MoveTo ;
admcrae 0:e314f3b805ed 1007 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 1008 towrite[3]= X ;
admcrae 0:e314f3b805ed 1009 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 1010 towrite[5]= Y ;
admcrae 0:e314f3b805ed 1011 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1012 GetAck() ;
admcrae 0:e314f3b805ed 1013 }
admcrae 0:e314f3b805ed 1014
admcrae 2:ebe7029e2825 1015 uint16_t uLCD_4D_Picaso::gfx_Orbit(uint16_t Angle, uint16_t Distance, uint16_t * Xdest, uint16_t * Ydest)
admcrae 0:e314f3b805ed 1016 {
admcrae 0:e314f3b805ed 1017 char towrite[6] ;
admcrae 0:e314f3b805ed 1018 towrite[0]= F_gfx_Orbit >> 8 ;
admcrae 0:e314f3b805ed 1019 towrite[1]= F_gfx_Orbit ;
admcrae 0:e314f3b805ed 1020 towrite[2]= Angle >> 8 ;
admcrae 0:e314f3b805ed 1021 towrite[3]= Angle ;
admcrae 0:e314f3b805ed 1022 towrite[4]= Distance >> 8 ;
admcrae 0:e314f3b805ed 1023 towrite[5]= Distance ;
admcrae 0:e314f3b805ed 1024 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1025 GetAck2Words(Xdest,Ydest) ;
admcrae 0:e314f3b805ed 1026 return 0 ;
admcrae 0:e314f3b805ed 1027 }
admcrae 0:e314f3b805ed 1028
admcrae 2:ebe7029e2825 1029 Picaso::Color uLCD_4D_Picaso::gfx_OutlineColour(Picaso::Color Color) {
admcrae 0:e314f3b805ed 1030 char towrite[4] ;
admcrae 0:e314f3b805ed 1031 towrite[0]= F_gfx_OutlineColour >> 8 ;
admcrae 0:e314f3b805ed 1032 towrite[1]= F_gfx_OutlineColour ;
admcrae 0:e314f3b805ed 1033 towrite[2]= Color >> 8 ;
admcrae 0:e314f3b805ed 1034 towrite[3]= Color ;
admcrae 0:e314f3b805ed 1035 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1036 return (Picaso::Color) GetAckResp() ;
admcrae 0:e314f3b805ed 1037 }
admcrae 0:e314f3b805ed 1038
admcrae 2:ebe7029e2825 1039 void uLCD_4D_Picaso::gfx_Panel(Picaso::PanelState Raised, uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height, Picaso::Color Color)
admcrae 0:e314f3b805ed 1040 {
admcrae 0:e314f3b805ed 1041 char towrite[14] ;
admcrae 0:e314f3b805ed 1042 towrite[0]= F_gfx_Panel >> 8 ;
admcrae 0:e314f3b805ed 1043 towrite[1]= F_gfx_Panel ;
admcrae 0:e314f3b805ed 1044 towrite[2]= Raised >> 8 ;
admcrae 0:e314f3b805ed 1045 towrite[3]= Raised ;
admcrae 0:e314f3b805ed 1046 towrite[4]= X >> 8 ;
admcrae 0:e314f3b805ed 1047 towrite[5]= X ;
admcrae 0:e314f3b805ed 1048 towrite[6]= Y >> 8 ;
admcrae 0:e314f3b805ed 1049 towrite[7]= Y ;
admcrae 0:e314f3b805ed 1050 towrite[8]= Width >> 8 ;
admcrae 0:e314f3b805ed 1051 towrite[9]= Width ;
admcrae 0:e314f3b805ed 1052 towrite[10]= Height >> 8 ;
admcrae 0:e314f3b805ed 1053 towrite[11]= Height ;
admcrae 0:e314f3b805ed 1054 towrite[12]= Color >> 8 ;
admcrae 0:e314f3b805ed 1055 towrite[13]= Color ;
admcrae 0:e314f3b805ed 1056 WriteBytes(towrite, 14) ;
admcrae 0:e314f3b805ed 1057 GetAck() ;
admcrae 0:e314f3b805ed 1058 }
admcrae 0:e314f3b805ed 1059
admcrae 2:ebe7029e2825 1060 void uLCD_4D_Picaso::gfx_Polygon(uint16_t n, uint16_t* Xvalues, uint16_t* Yvalues, Picaso::Color Color)
admcrae 0:e314f3b805ed 1061 {
admcrae 0:e314f3b805ed 1062 char towrite[4] ;
admcrae 0:e314f3b805ed 1063 towrite[0]= F_gfx_Polygon >> 8 ;
admcrae 0:e314f3b805ed 1064 towrite[1]= F_gfx_Polygon ;
admcrae 0:e314f3b805ed 1065 towrite[2]= n >> 8 ;
admcrae 0:e314f3b805ed 1066 towrite[3]= n ;
admcrae 0:e314f3b805ed 1067 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1068 WriteWords(Xvalues, n) ;
admcrae 0:e314f3b805ed 1069 WriteWords(Yvalues, n) ;
admcrae 0:e314f3b805ed 1070 towrite[0]= Color >> 8 ;
admcrae 0:e314f3b805ed 1071 towrite[1]= Color ;
admcrae 0:e314f3b805ed 1072 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1073 GetAck() ;
admcrae 0:e314f3b805ed 1074 }
admcrae 0:e314f3b805ed 1075
admcrae 2:ebe7029e2825 1076 void uLCD_4D_Picaso::gfx_PolygonFilled(uint16_t n, uint16_t* Xvalues, uint16_t* Yvalues, Picaso::Color Color)
admcrae 0:e314f3b805ed 1077 {
admcrae 0:e314f3b805ed 1078 char towrite[4] ;
admcrae 0:e314f3b805ed 1079 towrite[0]= F_gfx_PolygonFilled >> 8 ;
admcrae 0:e314f3b805ed 1080 towrite[1]= F_gfx_PolygonFilled ;
admcrae 0:e314f3b805ed 1081 towrite[2]= n >> 8 ;
admcrae 0:e314f3b805ed 1082 towrite[3]= n ;
admcrae 0:e314f3b805ed 1083 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1084 WriteWords(Xvalues, n) ;
admcrae 0:e314f3b805ed 1085 WriteWords(Yvalues, n) ;
admcrae 0:e314f3b805ed 1086 towrite[0]= Color >> 8 ;
admcrae 0:e314f3b805ed 1087 towrite[1]= Color ;
admcrae 0:e314f3b805ed 1088 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1089 GetAck() ;
admcrae 0:e314f3b805ed 1090 }
admcrae 0:e314f3b805ed 1091
admcrae 2:ebe7029e2825 1092 void uLCD_4D_Picaso::gfx_Polyline(uint16_t n, uint16_t* Xvalues, uint16_t* Yvalues, Picaso::Color Color)
admcrae 0:e314f3b805ed 1093 {
admcrae 0:e314f3b805ed 1094 char towrite[4] ;
admcrae 0:e314f3b805ed 1095 towrite[0]= F_gfx_Polyline >> 8 ;
admcrae 0:e314f3b805ed 1096 towrite[1]= F_gfx_Polyline ;
admcrae 0:e314f3b805ed 1097 towrite[2]= n >> 8 ;
admcrae 0:e314f3b805ed 1098 towrite[3]= n ;
admcrae 0:e314f3b805ed 1099 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1100 WriteWords(Xvalues, n) ;
admcrae 0:e314f3b805ed 1101 WriteWords(Yvalues, n) ;
admcrae 0:e314f3b805ed 1102 towrite[0]= Color >> 8 ;
admcrae 0:e314f3b805ed 1103 towrite[1]= Color ;
admcrae 0:e314f3b805ed 1104 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1105 GetAck() ;
admcrae 0:e314f3b805ed 1106 }
admcrae 0:e314f3b805ed 1107
admcrae 2:ebe7029e2825 1108 void uLCD_4D_Picaso::gfx_PutPixel(uint16_t X, uint16_t Y, Picaso::Color Color)
admcrae 0:e314f3b805ed 1109 {
admcrae 0:e314f3b805ed 1110 char towrite[8] ;
admcrae 0:e314f3b805ed 1111 towrite[0]= F_gfx_PutPixel >> 8 ;
admcrae 0:e314f3b805ed 1112 towrite[1]= F_gfx_PutPixel ;
admcrae 0:e314f3b805ed 1113 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 1114 towrite[3]= X ;
admcrae 0:e314f3b805ed 1115 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 1116 towrite[5]= Y ;
admcrae 0:e314f3b805ed 1117 towrite[6]= Color >> 8 ;
admcrae 0:e314f3b805ed 1118 towrite[7]= Color ;
admcrae 0:e314f3b805ed 1119 WriteBytes(towrite, 8) ;
admcrae 0:e314f3b805ed 1120 GetAck() ;
admcrae 0:e314f3b805ed 1121 }
admcrae 0:e314f3b805ed 1122
admcrae 2:ebe7029e2825 1123 void uLCD_4D_Picaso::gfx_Rectangle(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color)
admcrae 0:e314f3b805ed 1124 {
admcrae 0:e314f3b805ed 1125 char towrite[12] ;
admcrae 0:e314f3b805ed 1126 towrite[0]= F_gfx_Rectangle >> 8 ;
admcrae 0:e314f3b805ed 1127 towrite[1]= F_gfx_Rectangle ;
admcrae 0:e314f3b805ed 1128 towrite[2]= X1 >> 8 ;
admcrae 0:e314f3b805ed 1129 towrite[3]= X1 ;
admcrae 0:e314f3b805ed 1130 towrite[4]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 1131 towrite[5]= Y1 ;
admcrae 0:e314f3b805ed 1132 towrite[6]= X2 >> 8 ;
admcrae 0:e314f3b805ed 1133 towrite[7]= X2 ;
admcrae 0:e314f3b805ed 1134 towrite[8]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 1135 towrite[9]= Y2 ;
admcrae 0:e314f3b805ed 1136 towrite[10]= Color >> 8 ;
admcrae 0:e314f3b805ed 1137 towrite[11]= Color ;
admcrae 0:e314f3b805ed 1138 WriteBytes(towrite, 12) ;
admcrae 0:e314f3b805ed 1139 GetAck() ;
admcrae 0:e314f3b805ed 1140 }
admcrae 0:e314f3b805ed 1141
admcrae 2:ebe7029e2825 1142 void uLCD_4D_Picaso::gfx_RectangleFilled(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color)
admcrae 0:e314f3b805ed 1143 {
admcrae 0:e314f3b805ed 1144 char towrite[12] ;
admcrae 0:e314f3b805ed 1145 towrite[0]= F_gfx_RectangleFilled >> 8 ;
admcrae 0:e314f3b805ed 1146 towrite[1]= F_gfx_RectangleFilled ;
admcrae 0:e314f3b805ed 1147 towrite[2]= X1 >> 8 ;
admcrae 0:e314f3b805ed 1148 towrite[3]= X1 ;
admcrae 0:e314f3b805ed 1149 towrite[4]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 1150 towrite[5]= Y1 ;
admcrae 0:e314f3b805ed 1151 towrite[6]= X2 >> 8 ;
admcrae 0:e314f3b805ed 1152 towrite[7]= X2 ;
admcrae 0:e314f3b805ed 1153 towrite[8]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 1154 towrite[9]= Y2 ;
admcrae 0:e314f3b805ed 1155 towrite[10]= Color >> 8 ;
admcrae 0:e314f3b805ed 1156 towrite[11]= Color ;
admcrae 0:e314f3b805ed 1157 WriteBytes(towrite, 12) ;
admcrae 0:e314f3b805ed 1158 GetAck() ;
admcrae 0:e314f3b805ed 1159 }
admcrae 0:e314f3b805ed 1160
admcrae 2:ebe7029e2825 1161 void uLCD_4D_Picaso::gfx_ScreenCopyPaste(uint16_t Xs, uint16_t Ys, uint16_t Xd, uint16_t Yd, uint16_t Width, uint16_t Height)
admcrae 0:e314f3b805ed 1162 {
admcrae 0:e314f3b805ed 1163 char towrite[14] ;
admcrae 0:e314f3b805ed 1164 towrite[0]= F_gfx_ScreenCopyPaste >> 8 ;
admcrae 0:e314f3b805ed 1165 towrite[1]= F_gfx_ScreenCopyPaste ;
admcrae 0:e314f3b805ed 1166 towrite[2]= Xs >> 8 ;
admcrae 0:e314f3b805ed 1167 towrite[3]= Xs ;
admcrae 0:e314f3b805ed 1168 towrite[4]= Ys >> 8 ;
admcrae 0:e314f3b805ed 1169 towrite[5]= Ys ;
admcrae 0:e314f3b805ed 1170 towrite[6]= Xd >> 8 ;
admcrae 0:e314f3b805ed 1171 towrite[7]= Xd ;
admcrae 0:e314f3b805ed 1172 towrite[8]= Yd >> 8 ;
admcrae 0:e314f3b805ed 1173 towrite[9]= Yd ;
admcrae 0:e314f3b805ed 1174 towrite[10]= Width >> 8 ;
admcrae 0:e314f3b805ed 1175 towrite[11]= Width ;
admcrae 0:e314f3b805ed 1176 towrite[12]= Height >> 8 ;
admcrae 0:e314f3b805ed 1177 towrite[13]= Height ;
admcrae 0:e314f3b805ed 1178 WriteBytes(towrite, 14) ;
admcrae 0:e314f3b805ed 1179 GetAck() ;
admcrae 0:e314f3b805ed 1180 }
admcrae 0:e314f3b805ed 1181
admcrae 2:ebe7029e2825 1182 Picaso::ScreenMode uLCD_4D_Picaso::gfx_ScreenMode(Picaso::ScreenMode ScreenMode)
admcrae 0:e314f3b805ed 1183 {
admcrae 0:e314f3b805ed 1184 char towrite[4] ;
admcrae 0:e314f3b805ed 1185
admcrae 0:e314f3b805ed 1186 towrite[0]= F_gfx_ScreenMode >> 8 ;
admcrae 0:e314f3b805ed 1187 towrite[1]= F_gfx_ScreenMode ;
admcrae 0:e314f3b805ed 1188 towrite[2]= ScreenMode >> 8 ;
admcrae 0:e314f3b805ed 1189 towrite[3]= ScreenMode ;
admcrae 0:e314f3b805ed 1190 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1191 return (Picaso::ScreenMode) GetAckResp() ;
admcrae 0:e314f3b805ed 1192 }
admcrae 0:e314f3b805ed 1193
admcrae 2:ebe7029e2825 1194 void uLCD_4D_Picaso::gfx_Set(Picaso::GFXSetFunc Func, uint16_t Value)
admcrae 0:e314f3b805ed 1195 {
admcrae 0:e314f3b805ed 1196 char towrite[6] ;
admcrae 0:e314f3b805ed 1197
admcrae 0:e314f3b805ed 1198 towrite[0]= F_gfx_Set >> 8 ;
admcrae 0:e314f3b805ed 1199 towrite[1]= F_gfx_Set ;
admcrae 0:e314f3b805ed 1200 towrite[2]= Func >> 8 ;
admcrae 0:e314f3b805ed 1201 towrite[3]= Func ;
admcrae 0:e314f3b805ed 1202 towrite[4]= Value >> 8 ;
admcrae 0:e314f3b805ed 1203 towrite[5]= Value ;
admcrae 0:e314f3b805ed 1204 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1205 GetAck() ;
admcrae 0:e314f3b805ed 1206 }
admcrae 0:e314f3b805ed 1207
admcrae 0:e314f3b805ed 1208 void uLCD_4D_Picaso::gfx_SetClipRegion()
admcrae 0:e314f3b805ed 1209 {
admcrae 0:e314f3b805ed 1210 char towrite[2] ;
admcrae 0:e314f3b805ed 1211
admcrae 0:e314f3b805ed 1212 towrite[0]= F_gfx_SetClipRegion >> 8 ;
admcrae 0:e314f3b805ed 1213 towrite[1]= F_gfx_SetClipRegion ;
admcrae 0:e314f3b805ed 1214 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1215 GetAck() ;
admcrae 0:e314f3b805ed 1216 }
admcrae 0:e314f3b805ed 1217
admcrae 2:ebe7029e2825 1218 uint16_t uLCD_4D_Picaso::gfx_Slider(Picaso::SliderState Mode, uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color, uint16_t Scale, uint16_t Value)
admcrae 0:e314f3b805ed 1219 {
admcrae 0:e314f3b805ed 1220 char towrite[18] ;
admcrae 0:e314f3b805ed 1221
admcrae 0:e314f3b805ed 1222 towrite[0]= F_gfx_Slider >> 8 ;
admcrae 0:e314f3b805ed 1223 towrite[1]= F_gfx_Slider ;
admcrae 0:e314f3b805ed 1224 towrite[2]= Mode >> 8 ;
admcrae 0:e314f3b805ed 1225 towrite[3]= Mode ;
admcrae 0:e314f3b805ed 1226 towrite[4]= X1 >> 8 ;
admcrae 0:e314f3b805ed 1227 towrite[5]= X1 ;
admcrae 0:e314f3b805ed 1228 towrite[6]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 1229 towrite[7]= Y1 ;
admcrae 0:e314f3b805ed 1230 towrite[8]= X2 >> 8 ;
admcrae 0:e314f3b805ed 1231 towrite[9]= X2 ;
admcrae 0:e314f3b805ed 1232 towrite[10]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 1233 towrite[11]= Y2 ;
admcrae 0:e314f3b805ed 1234 towrite[12]= Color >> 8 ;
admcrae 0:e314f3b805ed 1235 towrite[13]= Color ;
admcrae 0:e314f3b805ed 1236 towrite[14]= Scale >> 8 ;
admcrae 0:e314f3b805ed 1237 towrite[15]= Scale ;
admcrae 0:e314f3b805ed 1238 towrite[16]= Value >> 8 ;
admcrae 0:e314f3b805ed 1239 towrite[17]= Value ;
admcrae 0:e314f3b805ed 1240 WriteBytes(towrite, 18) ;
admcrae 0:e314f3b805ed 1241 return GetAckResp() ;
admcrae 0:e314f3b805ed 1242 }
admcrae 0:e314f3b805ed 1243
admcrae 2:ebe7029e2825 1244 uint16_t uLCD_4D_Picaso::gfx_Transparency(uint16_t OnOff)
admcrae 0:e314f3b805ed 1245 {
admcrae 0:e314f3b805ed 1246 char towrite[4] ;
admcrae 0:e314f3b805ed 1247
admcrae 0:e314f3b805ed 1248 towrite[0]= F_gfx_Transparency >> 8 ;
admcrae 0:e314f3b805ed 1249 towrite[1]= F_gfx_Transparency ;
admcrae 0:e314f3b805ed 1250 towrite[2]= OnOff >> 8 ;
admcrae 0:e314f3b805ed 1251 towrite[3]= OnOff ;
admcrae 0:e314f3b805ed 1252 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1253 return GetAckResp() ;
admcrae 0:e314f3b805ed 1254 }
admcrae 0:e314f3b805ed 1255
admcrae 2:ebe7029e2825 1256 Picaso::Color uLCD_4D_Picaso::gfx_TransparentColour(Picaso::Color Color)
admcrae 0:e314f3b805ed 1257 {
admcrae 0:e314f3b805ed 1258 char towrite[4] ;
admcrae 0:e314f3b805ed 1259
admcrae 0:e314f3b805ed 1260 towrite[0]= F_gfx_TransparentColour >> 8 ;
admcrae 0:e314f3b805ed 1261 towrite[1]= F_gfx_TransparentColour ;
admcrae 0:e314f3b805ed 1262 towrite[2]= Color >> 8 ;
admcrae 0:e314f3b805ed 1263 towrite[3]= Color ;
admcrae 0:e314f3b805ed 1264 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1265 return (Picaso::Color) GetAckResp() ;
admcrae 0:e314f3b805ed 1266 }
admcrae 0:e314f3b805ed 1267
admcrae 2:ebe7029e2825 1268 void uLCD_4D_Picaso::gfx_Triangle(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, Picaso::Color Color)
admcrae 0:e314f3b805ed 1269 {
admcrae 0:e314f3b805ed 1270 char towrite[16] ;
admcrae 0:e314f3b805ed 1271
admcrae 0:e314f3b805ed 1272 towrite[0]= F_gfx_Triangle >> 8 ;
admcrae 0:e314f3b805ed 1273 towrite[1]= F_gfx_Triangle ;
admcrae 0:e314f3b805ed 1274 towrite[2]= X1 >> 8 ;
admcrae 0:e314f3b805ed 1275 towrite[3]= X1 ;
admcrae 0:e314f3b805ed 1276 towrite[4]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 1277 towrite[5]= Y1 ;
admcrae 0:e314f3b805ed 1278 towrite[6]= X2 >> 8 ;
admcrae 0:e314f3b805ed 1279 towrite[7]= X2 ;
admcrae 0:e314f3b805ed 1280 towrite[8]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 1281 towrite[9]= Y2 ;
admcrae 0:e314f3b805ed 1282 towrite[10]= X3 >> 8 ;
admcrae 0:e314f3b805ed 1283 towrite[11]= X3 ;
admcrae 0:e314f3b805ed 1284 towrite[12]= Y3 >> 8 ;
admcrae 0:e314f3b805ed 1285 towrite[13]= Y3 ;
admcrae 0:e314f3b805ed 1286 towrite[14]= Color >> 8 ;
admcrae 0:e314f3b805ed 1287 towrite[15]= Color ;
admcrae 0:e314f3b805ed 1288 WriteBytes(towrite, 16) ;
admcrae 0:e314f3b805ed 1289 GetAck() ;
admcrae 0:e314f3b805ed 1290 }
admcrae 0:e314f3b805ed 1291
admcrae 2:ebe7029e2825 1292 void uLCD_4D_Picaso::gfx_TriangleFilled(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, Picaso::Color Color)
admcrae 0:e314f3b805ed 1293 {
admcrae 0:e314f3b805ed 1294 char towrite[16] ;
admcrae 0:e314f3b805ed 1295 towrite[0]= F_gfx_TriangleFilled >> 8 ;
admcrae 0:e314f3b805ed 1296 towrite[1]= F_gfx_TriangleFilled ;
admcrae 0:e314f3b805ed 1297 towrite[2]= X1 >> 8 ;
admcrae 0:e314f3b805ed 1298 towrite[3]= X1 ;
admcrae 0:e314f3b805ed 1299 towrite[4]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 1300 towrite[5]= Y1 ;
admcrae 0:e314f3b805ed 1301 towrite[6]= X2 >> 8 ;
admcrae 0:e314f3b805ed 1302 towrite[7]= X2 ;
admcrae 0:e314f3b805ed 1303 towrite[8]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 1304 towrite[9]= Y2 ;
admcrae 0:e314f3b805ed 1305 towrite[10]= X3 >> 8 ;
admcrae 0:e314f3b805ed 1306 towrite[11]= X3 ;
admcrae 0:e314f3b805ed 1307 towrite[12]= Y3 >> 8 ;
admcrae 0:e314f3b805ed 1308 towrite[13]= Y3 ;
admcrae 0:e314f3b805ed 1309 towrite[14]= Color >> 8 ;
admcrae 0:e314f3b805ed 1310 towrite[15]= Color ;
admcrae 0:e314f3b805ed 1311 WriteBytes(towrite, 16) ;
admcrae 0:e314f3b805ed 1312 GetAck() ;
admcrae 0:e314f3b805ed 1313 }
admcrae 0:e314f3b805ed 1314
admcrae 2:ebe7029e2825 1315 uint16_t uLCD_4D_Picaso::img_ClearAttributes(uint16_t Handle, uint16_t Index, Picaso::ImageAttribute Value)
admcrae 0:e314f3b805ed 1316 {
admcrae 0:e314f3b805ed 1317 char towrite[8] ;
admcrae 0:e314f3b805ed 1318 towrite[0]= F_img_ClearAttributes >> 8 ;
admcrae 0:e314f3b805ed 1319 towrite[1]= F_img_ClearAttributes & 0xFF;
admcrae 0:e314f3b805ed 1320 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1321 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1322 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1323 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1324 towrite[6]= Value >> 8 ;
admcrae 0:e314f3b805ed 1325 towrite[7]= Value ;
admcrae 0:e314f3b805ed 1326 WriteBytes(towrite, 8) ;
admcrae 0:e314f3b805ed 1327 return GetAckResp() ;
admcrae 0:e314f3b805ed 1328 }
admcrae 0:e314f3b805ed 1329
admcrae 2:ebe7029e2825 1330 uint16_t uLCD_4D_Picaso::img_Darken(uint16_t Handle, uint16_t Index)
admcrae 0:e314f3b805ed 1331 {
admcrae 0:e314f3b805ed 1332 char towrite[6] ;
admcrae 0:e314f3b805ed 1333 towrite[0]= F_img_Darken >> 8 ;
admcrae 0:e314f3b805ed 1334 towrite[1]= F_img_Darken & 0xFF;
admcrae 0:e314f3b805ed 1335 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1336 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1337 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1338 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1339 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1340 return GetAckResp() ;
admcrae 0:e314f3b805ed 1341 }
admcrae 0:e314f3b805ed 1342
admcrae 2:ebe7029e2825 1343 uint16_t uLCD_4D_Picaso::img_Disable(uint16_t Handle, uint16_t Index)
admcrae 0:e314f3b805ed 1344 {
admcrae 0:e314f3b805ed 1345 char towrite[6] ;
admcrae 0:e314f3b805ed 1346 towrite[0]= F_img_Disable >> 8 ;
admcrae 0:e314f3b805ed 1347 towrite[1]= F_img_Disable & 0xFF;
admcrae 0:e314f3b805ed 1348 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1349 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1350 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1351 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1352 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1353 return GetAckResp() ;
admcrae 0:e314f3b805ed 1354 }
admcrae 0:e314f3b805ed 1355
admcrae 2:ebe7029e2825 1356 uint16_t uLCD_4D_Picaso::img_Enable(uint16_t Handle, uint16_t Index)
admcrae 0:e314f3b805ed 1357 {
admcrae 0:e314f3b805ed 1358 char towrite[6] ;
admcrae 0:e314f3b805ed 1359 towrite[0]= F_img_Enable >> 8 ;
admcrae 0:e314f3b805ed 1360 towrite[1]= F_img_Enable & 0xFF;
admcrae 0:e314f3b805ed 1361 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1362 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1363 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1364 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1365 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1366 return GetAckResp() ;
admcrae 0:e314f3b805ed 1367 }
admcrae 0:e314f3b805ed 1368
admcrae 2:ebe7029e2825 1369 uint16_t uLCD_4D_Picaso::img_GetWord(uint16_t Handle, uint16_t Index, Picaso::ImageControlOffset Offset )
admcrae 0:e314f3b805ed 1370 {
admcrae 0:e314f3b805ed 1371 char towrite[8] ;
admcrae 0:e314f3b805ed 1372 towrite[0]= F_img_GetWord >> 8 ;
admcrae 0:e314f3b805ed 1373 towrite[1]= F_img_GetWord & 0xFF;
admcrae 0:e314f3b805ed 1374 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1375 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1376 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1377 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1378 towrite[6]= Offset >> 8 ;
admcrae 0:e314f3b805ed 1379 towrite[7]= Offset ;
admcrae 0:e314f3b805ed 1380 WriteBytes(towrite, 8) ;
admcrae 0:e314f3b805ed 1381 return GetAckResp() ;
admcrae 0:e314f3b805ed 1382 }
admcrae 0:e314f3b805ed 1383
admcrae 2:ebe7029e2825 1384 uint16_t uLCD_4D_Picaso::img_Lighten(uint16_t Handle, uint16_t Index)
admcrae 0:e314f3b805ed 1385 {
admcrae 0:e314f3b805ed 1386 char towrite[6] ;
admcrae 0:e314f3b805ed 1387 towrite[0]= F_img_Lighten >> 8 ;
admcrae 0:e314f3b805ed 1388 towrite[1]= F_img_Lighten & 0xFF;
admcrae 0:e314f3b805ed 1389 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1390 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1391 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1392 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1393 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1394 return GetAckResp() ;
admcrae 0:e314f3b805ed 1395 }
admcrae 0:e314f3b805ed 1396
admcrae 2:ebe7029e2825 1397 uint16_t uLCD_4D_Picaso::img_SetAttributes(uint16_t Handle, uint16_t Index, Picaso::ImageAttribute Value)
admcrae 0:e314f3b805ed 1398 {
admcrae 0:e314f3b805ed 1399 char towrite[8] ;
admcrae 0:e314f3b805ed 1400
admcrae 0:e314f3b805ed 1401 towrite[0]= F_img_SetAttributes >> 8 ;
admcrae 0:e314f3b805ed 1402 towrite[1]= F_img_SetAttributes & 0xFF;
admcrae 0:e314f3b805ed 1403 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1404 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1405 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1406 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1407 towrite[6]= Value >> 8 ;
admcrae 0:e314f3b805ed 1408 towrite[7]= Value ;
admcrae 0:e314f3b805ed 1409 WriteBytes(towrite, 8) ;
admcrae 0:e314f3b805ed 1410 return GetAckResp() ;
admcrae 0:e314f3b805ed 1411 }
admcrae 0:e314f3b805ed 1412
admcrae 2:ebe7029e2825 1413 uint16_t uLCD_4D_Picaso::img_SetPosition(uint16_t Handle, uint16_t Index, uint16_t Xpos, uint16_t Ypos)
admcrae 0:e314f3b805ed 1414 {
admcrae 0:e314f3b805ed 1415 char towrite[10] ;
admcrae 0:e314f3b805ed 1416
admcrae 0:e314f3b805ed 1417 towrite[0]= F_img_SetPosition >> 8 ;
admcrae 0:e314f3b805ed 1418 towrite[1]= F_img_SetPosition & 0xFF;
admcrae 0:e314f3b805ed 1419 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1420 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1421 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1422 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1423 towrite[6]= Xpos >> 8 ;
admcrae 0:e314f3b805ed 1424 towrite[7]= Xpos ;
admcrae 0:e314f3b805ed 1425 towrite[8]= Ypos >> 8 ;
admcrae 0:e314f3b805ed 1426 towrite[9]= Ypos ;
admcrae 0:e314f3b805ed 1427 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 1428 return GetAckResp() ;
admcrae 0:e314f3b805ed 1429 }
admcrae 0:e314f3b805ed 1430
admcrae 2:ebe7029e2825 1431 uint16_t uLCD_4D_Picaso::img_SetWord(uint16_t Handle, uint16_t Index, Picaso::ImageControlOffset Offset , uint16_t Word)
admcrae 0:e314f3b805ed 1432 {
admcrae 0:e314f3b805ed 1433 char towrite[10] ;
admcrae 0:e314f3b805ed 1434
admcrae 0:e314f3b805ed 1435 towrite[0]= F_img_SetWord >> 8 ;
admcrae 0:e314f3b805ed 1436 towrite[1]= F_img_SetWord & 0xFF;
admcrae 0:e314f3b805ed 1437 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1438 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1439 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1440 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1441 towrite[6]= Offset >> 8 ;
admcrae 0:e314f3b805ed 1442 towrite[7]= Offset ;
admcrae 0:e314f3b805ed 1443 towrite[8]= Word >> 8 ;
admcrae 0:e314f3b805ed 1444 towrite[9]= Word ;
admcrae 0:e314f3b805ed 1445 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 1446 return GetAckResp() ;
admcrae 0:e314f3b805ed 1447 }
admcrae 0:e314f3b805ed 1448
admcrae 2:ebe7029e2825 1449 uint16_t uLCD_4D_Picaso::img_Show(uint16_t Handle, uint16_t Index)
admcrae 0:e314f3b805ed 1450 {
admcrae 0:e314f3b805ed 1451 char towrite[6] ;
admcrae 0:e314f3b805ed 1452 towrite[0]= F_img_Show >> 8 ;
admcrae 0:e314f3b805ed 1453 towrite[1]= F_img_Show & 0xFF;
admcrae 0:e314f3b805ed 1454 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1455 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1456 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1457 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1458 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1459 return GetAckResp() ;
admcrae 0:e314f3b805ed 1460 }
admcrae 0:e314f3b805ed 1461
admcrae 2:ebe7029e2825 1462 uint16_t uLCD_4D_Picaso::img_Touched(uint16_t Handle, uint16_t Index)
admcrae 0:e314f3b805ed 1463 {
admcrae 0:e314f3b805ed 1464 char towrite[6] ;
admcrae 0:e314f3b805ed 1465 towrite[0]= F_img_Touched >> 8 ;
admcrae 0:e314f3b805ed 1466 towrite[1]= F_img_Touched & 0xFF;
admcrae 0:e314f3b805ed 1467 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1468 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1469 towrite[4]= Index >> 8 ;
admcrae 0:e314f3b805ed 1470 towrite[5]= Index ;
admcrae 0:e314f3b805ed 1471 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1472 return GetAckResp() ;
admcrae 0:e314f3b805ed 1473 }
admcrae 0:e314f3b805ed 1474
admcrae 2:ebe7029e2825 1475 uint16_t uLCD_4D_Picaso::media_Flush()
admcrae 0:e314f3b805ed 1476 {
admcrae 0:e314f3b805ed 1477 char towrite[2] ;
admcrae 0:e314f3b805ed 1478 towrite[0]= F_media_Flush >> 8 ;
admcrae 0:e314f3b805ed 1479 towrite[1]= F_media_Flush ;
admcrae 0:e314f3b805ed 1480 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1481 return GetAckResp() ;
admcrae 0:e314f3b805ed 1482 }
admcrae 0:e314f3b805ed 1483
admcrae 2:ebe7029e2825 1484 void uLCD_4D_Picaso::media_Image(uint16_t X, uint16_t Y)
admcrae 0:e314f3b805ed 1485 {
admcrae 0:e314f3b805ed 1486 char towrite[6] ;
admcrae 0:e314f3b805ed 1487
admcrae 0:e314f3b805ed 1488 towrite[0]= F_media_Image >> 8 ;
admcrae 0:e314f3b805ed 1489 towrite[1]= F_media_Image ;
admcrae 0:e314f3b805ed 1490 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 1491 towrite[3]= X ;
admcrae 0:e314f3b805ed 1492 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 1493 towrite[5]= Y ;
admcrae 0:e314f3b805ed 1494 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1495 GetAck() ;
admcrae 0:e314f3b805ed 1496 }
admcrae 0:e314f3b805ed 1497
admcrae 2:ebe7029e2825 1498 uint16_t uLCD_4D_Picaso::media_Init()
admcrae 0:e314f3b805ed 1499 {
admcrae 0:e314f3b805ed 1500 char towrite[2] ;
admcrae 0:e314f3b805ed 1501
admcrae 0:e314f3b805ed 1502 towrite[0]= F_media_Init >> 8 ;
admcrae 0:e314f3b805ed 1503 towrite[1]= F_media_Init ;
admcrae 0:e314f3b805ed 1504 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1505 return GetAckResp() ;
admcrae 0:e314f3b805ed 1506 }
admcrae 0:e314f3b805ed 1507
admcrae 2:ebe7029e2825 1508 uint16_t uLCD_4D_Picaso::media_RdSector(char* SectorIn)
admcrae 0:e314f3b805ed 1509 {
admcrae 0:e314f3b805ed 1510 char towrite[2] ;
admcrae 0:e314f3b805ed 1511
admcrae 0:e314f3b805ed 1512 towrite[0]= F_media_RdSector >> 8 ;
admcrae 0:e314f3b805ed 1513 towrite[1]= F_media_RdSector ;
admcrae 0:e314f3b805ed 1514 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1515 return GetAckResSector(SectorIn) ;
admcrae 0:e314f3b805ed 1516 }
admcrae 0:e314f3b805ed 1517
admcrae 2:ebe7029e2825 1518 uint16_t uLCD_4D_Picaso::media_ReadByte()
admcrae 0:e314f3b805ed 1519 {
admcrae 0:e314f3b805ed 1520 char towrite[2] ;
admcrae 0:e314f3b805ed 1521 towrite[0]= F_media_ReadByte >> 8 ;
admcrae 0:e314f3b805ed 1522 towrite[1]= F_media_ReadByte ;
admcrae 0:e314f3b805ed 1523 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1524 return GetAckResp() ;
admcrae 0:e314f3b805ed 1525 }
admcrae 0:e314f3b805ed 1526
admcrae 2:ebe7029e2825 1527 uint16_t uLCD_4D_Picaso::media_ReadWord()
admcrae 0:e314f3b805ed 1528 {
admcrae 0:e314f3b805ed 1529 char towrite[2] ;
admcrae 0:e314f3b805ed 1530 towrite[0]= F_media_ReadWord >> 8 ;
admcrae 0:e314f3b805ed 1531 towrite[1]= F_media_ReadWord ;
admcrae 0:e314f3b805ed 1532 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1533 return GetAckResp() ;
admcrae 0:e314f3b805ed 1534 }
admcrae 0:e314f3b805ed 1535
admcrae 2:ebe7029e2825 1536 void uLCD_4D_Picaso::media_SetAdd(uint16_t HiWord, uint16_t LoWord)
admcrae 0:e314f3b805ed 1537 {
admcrae 0:e314f3b805ed 1538 char towrite[6] ;
admcrae 0:e314f3b805ed 1539
admcrae 0:e314f3b805ed 1540 towrite[0]= F_media_SetAdd >> 8 ;
admcrae 0:e314f3b805ed 1541 towrite[1]= F_media_SetAdd ;
admcrae 0:e314f3b805ed 1542 towrite[2]= HiWord >> 8 ;
admcrae 0:e314f3b805ed 1543 towrite[3]= HiWord ;
admcrae 0:e314f3b805ed 1544 towrite[4]= LoWord >> 8 ;
admcrae 0:e314f3b805ed 1545 towrite[5]= LoWord ;
admcrae 0:e314f3b805ed 1546 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1547 GetAck() ;
admcrae 0:e314f3b805ed 1548 }
admcrae 0:e314f3b805ed 1549
admcrae 2:ebe7029e2825 1550 void uLCD_4D_Picaso::media_SetSector(uint16_t HiWord, uint16_t LoWord)
admcrae 0:e314f3b805ed 1551 {
admcrae 0:e314f3b805ed 1552 char towrite[6] ;
admcrae 0:e314f3b805ed 1553
admcrae 0:e314f3b805ed 1554 towrite[0]= F_media_SetSector >> 8 ;
admcrae 0:e314f3b805ed 1555 towrite[1]= F_media_SetSector ;
admcrae 0:e314f3b805ed 1556 towrite[2]= HiWord >> 8 ;
admcrae 0:e314f3b805ed 1557 towrite[3]= HiWord ;
admcrae 0:e314f3b805ed 1558 towrite[4]= LoWord >> 8 ;
admcrae 0:e314f3b805ed 1559 towrite[5]= LoWord ;
admcrae 0:e314f3b805ed 1560 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1561 GetAck() ;
admcrae 0:e314f3b805ed 1562 }
admcrae 0:e314f3b805ed 1563
admcrae 2:ebe7029e2825 1564 void uLCD_4D_Picaso::media_Video(uint16_t X, uint16_t Y)
admcrae 0:e314f3b805ed 1565 {
admcrae 0:e314f3b805ed 1566 char towrite[6] ;
admcrae 0:e314f3b805ed 1567
admcrae 0:e314f3b805ed 1568 towrite[0]= F_media_Video >> 8 ;
admcrae 0:e314f3b805ed 1569 towrite[1]= F_media_Video ;
admcrae 0:e314f3b805ed 1570 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 1571 towrite[3]= X ;
admcrae 0:e314f3b805ed 1572 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 1573 towrite[5]= Y ;
admcrae 0:e314f3b805ed 1574 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1575 GetAck() ;
admcrae 0:e314f3b805ed 1576 }
admcrae 0:e314f3b805ed 1577
admcrae 2:ebe7029e2825 1578 void uLCD_4D_Picaso::media_VideoFrame(uint16_t X, uint16_t Y, uint16_t Framenumber)
admcrae 0:e314f3b805ed 1579 {
admcrae 0:e314f3b805ed 1580 char towrite[8] ;
admcrae 0:e314f3b805ed 1581
admcrae 0:e314f3b805ed 1582 towrite[0]= F_media_VideoFrame >> 8 ;
admcrae 0:e314f3b805ed 1583 towrite[1]= F_media_VideoFrame ;
admcrae 0:e314f3b805ed 1584 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 1585 towrite[3]= X ;
admcrae 0:e314f3b805ed 1586 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 1587 towrite[5]= Y ;
admcrae 0:e314f3b805ed 1588 towrite[6]= Framenumber >> 8 ;
admcrae 0:e314f3b805ed 1589 towrite[7]= Framenumber ;
admcrae 0:e314f3b805ed 1590 WriteBytes(towrite, 8) ;
admcrae 0:e314f3b805ed 1591 GetAck() ;
admcrae 0:e314f3b805ed 1592 }
admcrae 0:e314f3b805ed 1593
admcrae 2:ebe7029e2825 1594 uint16_t uLCD_4D_Picaso::media_WriteByte(uint16_t Byte)
admcrae 0:e314f3b805ed 1595 {
admcrae 0:e314f3b805ed 1596 char towrite[4] ;
admcrae 0:e314f3b805ed 1597
admcrae 0:e314f3b805ed 1598 towrite[0]= F_media_WriteByte >> 8 ;
admcrae 0:e314f3b805ed 1599 towrite[1]= F_media_WriteByte ;
admcrae 0:e314f3b805ed 1600 towrite[2]= Byte >> 8 ;
admcrae 0:e314f3b805ed 1601 towrite[3]= Byte ;
admcrae 0:e314f3b805ed 1602 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1603 return GetAckResp() ;
admcrae 0:e314f3b805ed 1604 }
admcrae 0:e314f3b805ed 1605
admcrae 2:ebe7029e2825 1606 uint16_t uLCD_4D_Picaso::media_WriteWord(uint16_t Word)
admcrae 0:e314f3b805ed 1607 {
admcrae 0:e314f3b805ed 1608 char towrite[4] ;
admcrae 0:e314f3b805ed 1609
admcrae 0:e314f3b805ed 1610 towrite[0]= F_media_WriteWord >> 8 ;
admcrae 0:e314f3b805ed 1611 towrite[1]= F_media_WriteWord ;
admcrae 0:e314f3b805ed 1612 towrite[2]= Word >> 8 ;
admcrae 0:e314f3b805ed 1613 towrite[3]= Word ;
admcrae 0:e314f3b805ed 1614 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1615 return GetAckResp() ;
admcrae 0:e314f3b805ed 1616 }
admcrae 0:e314f3b805ed 1617
admcrae 2:ebe7029e2825 1618 uint16_t uLCD_4D_Picaso::media_WrSector(char* SectorOut)
admcrae 0:e314f3b805ed 1619 {
admcrae 0:e314f3b805ed 1620 char towrite[2] ;
admcrae 0:e314f3b805ed 1621
admcrae 0:e314f3b805ed 1622 towrite[0]= F_media_WrSector >> 8 ;
admcrae 0:e314f3b805ed 1623 towrite[1]= F_media_WrSector ;
admcrae 0:e314f3b805ed 1624 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1625 WriteBytes(SectorOut, 512) ;
admcrae 0:e314f3b805ed 1626 return GetAckResp() ;
admcrae 0:e314f3b805ed 1627 }
admcrae 0:e314f3b805ed 1628
admcrae 2:ebe7029e2825 1629 uint16_t uLCD_4D_Picaso::mem_Free(uint16_t Handle)
admcrae 0:e314f3b805ed 1630 {
admcrae 0:e314f3b805ed 1631 char towrite[4] ;
admcrae 0:e314f3b805ed 1632
admcrae 0:e314f3b805ed 1633 towrite[0]= F_mem_Free >> 8 ;
admcrae 0:e314f3b805ed 1634 towrite[1]= F_mem_Free & 0xFF;
admcrae 0:e314f3b805ed 1635 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 1636 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 1637 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1638 return GetAckResp() ;
admcrae 0:e314f3b805ed 1639 }
admcrae 0:e314f3b805ed 1640
admcrae 2:ebe7029e2825 1641 uint16_t uLCD_4D_Picaso::mem_Heap()
admcrae 0:e314f3b805ed 1642 {
admcrae 0:e314f3b805ed 1643 char towrite[2] ;
admcrae 0:e314f3b805ed 1644
admcrae 0:e314f3b805ed 1645 towrite[0]= F_mem_Heap >> 8 ;
admcrae 0:e314f3b805ed 1646 towrite[1]= F_mem_Heap & 0xFF;
admcrae 0:e314f3b805ed 1647 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1648 return GetAckResp() ;
admcrae 0:e314f3b805ed 1649 }
admcrae 0:e314f3b805ed 1650
admcrae 2:ebe7029e2825 1651 uint16_t uLCD_4D_Picaso::peekM(uint16_t Address)
admcrae 0:e314f3b805ed 1652 {
admcrae 0:e314f3b805ed 1653 char towrite[4] ;
admcrae 0:e314f3b805ed 1654
admcrae 0:e314f3b805ed 1655 towrite[0]= F_peekM >> 8 ;
admcrae 0:e314f3b805ed 1656 towrite[1]= F_peekM ;
admcrae 0:e314f3b805ed 1657 towrite[2]= Address >> 8 ;
admcrae 0:e314f3b805ed 1658 towrite[3]= Address ;
admcrae 0:e314f3b805ed 1659 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1660 return GetAckResp() ;
admcrae 0:e314f3b805ed 1661 }
admcrae 0:e314f3b805ed 1662
admcrae 2:ebe7029e2825 1663 uint16_t uLCD_4D_Picaso::pin_HI(Picaso::Pin Pin)
admcrae 0:e314f3b805ed 1664 {
admcrae 0:e314f3b805ed 1665 char towrite[4] ;
admcrae 0:e314f3b805ed 1666
admcrae 0:e314f3b805ed 1667 towrite[0]= F_pin_HI >> 8 ;
admcrae 0:e314f3b805ed 1668 towrite[1]= F_pin_HI ;
admcrae 0:e314f3b805ed 1669 towrite[2]= Pin >> 8 ;
admcrae 0:e314f3b805ed 1670 towrite[3]= Pin ;
admcrae 0:e314f3b805ed 1671 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1672 return GetAckResp() ;
admcrae 0:e314f3b805ed 1673 }
admcrae 0:e314f3b805ed 1674
admcrae 2:ebe7029e2825 1675 uint16_t uLCD_4D_Picaso::pin_LO(Picaso::Pin Pin)
admcrae 0:e314f3b805ed 1676 {
admcrae 0:e314f3b805ed 1677 char towrite[4] ;
admcrae 0:e314f3b805ed 1678
admcrae 0:e314f3b805ed 1679 towrite[0]= F_pin_LO >> 8 ;
admcrae 0:e314f3b805ed 1680 towrite[1]= F_pin_LO ;
admcrae 0:e314f3b805ed 1681 towrite[2]= Pin >> 8 ;
admcrae 0:e314f3b805ed 1682 towrite[3]= Pin ;
admcrae 0:e314f3b805ed 1683 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1684 return GetAckResp() ;
admcrae 0:e314f3b805ed 1685 }
admcrae 0:e314f3b805ed 1686
admcrae 2:ebe7029e2825 1687 uint16_t uLCD_4D_Picaso::pin_Read(Picaso::Pin Pin)
admcrae 0:e314f3b805ed 1688 {
admcrae 0:e314f3b805ed 1689 char towrite[4] ;
admcrae 0:e314f3b805ed 1690
admcrae 0:e314f3b805ed 1691 towrite[0]= F_pin_Read >> 8 ;
admcrae 0:e314f3b805ed 1692 towrite[1]= F_pin_Read ;
admcrae 0:e314f3b805ed 1693 towrite[2]= Pin >> 8 ;
admcrae 0:e314f3b805ed 1694 towrite[3]= Pin ;
admcrae 0:e314f3b805ed 1695 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1696 return GetAckResp() ;
admcrae 0:e314f3b805ed 1697 }
admcrae 0:e314f3b805ed 1698
admcrae 2:ebe7029e2825 1699 uint16_t uLCD_4D_Picaso::pin_Set(uint16_t Mode, Picaso::Pin Pin)
admcrae 0:e314f3b805ed 1700 {
admcrae 0:e314f3b805ed 1701 char towrite[6] ;
admcrae 0:e314f3b805ed 1702
admcrae 0:e314f3b805ed 1703 towrite[0]= F_pin_Set >> 8 ;
admcrae 0:e314f3b805ed 1704 towrite[1]= F_pin_Set ;
admcrae 0:e314f3b805ed 1705 towrite[2]= Mode >> 8 ;
admcrae 0:e314f3b805ed 1706 towrite[3]= Mode ;
admcrae 0:e314f3b805ed 1707 towrite[4]= Pin >> 8 ;
admcrae 0:e314f3b805ed 1708 towrite[5]= Pin ;
admcrae 0:e314f3b805ed 1709 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1710 return GetAckResp() ;
admcrae 0:e314f3b805ed 1711 }
admcrae 0:e314f3b805ed 1712
admcrae 2:ebe7029e2825 1713 void uLCD_4D_Picaso::pokeM(uint16_t Address, uint16_t WordValue)
admcrae 0:e314f3b805ed 1714 {
admcrae 0:e314f3b805ed 1715 char towrite[6] ;
admcrae 0:e314f3b805ed 1716
admcrae 0:e314f3b805ed 1717 towrite[0]= F_pokeM >> 8 ;
admcrae 0:e314f3b805ed 1718 towrite[1]= F_pokeM ;
admcrae 0:e314f3b805ed 1719 towrite[2]= Address >> 8 ;
admcrae 0:e314f3b805ed 1720 towrite[3]= Address ;
admcrae 0:e314f3b805ed 1721 towrite[4]= WordValue >> 8 ;
admcrae 0:e314f3b805ed 1722 towrite[5]= WordValue ;
admcrae 0:e314f3b805ed 1723 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1724 GetAck() ;
admcrae 0:e314f3b805ed 1725 }
admcrae 0:e314f3b805ed 1726
admcrae 2:ebe7029e2825 1727 void uLCD_4D_Picaso::putCH(uint16_t WordChar)
admcrae 0:e314f3b805ed 1728 {
admcrae 0:e314f3b805ed 1729 char towrite[4] ;
admcrae 0:e314f3b805ed 1730
admcrae 0:e314f3b805ed 1731 towrite[0]= F_putCH >> 8 ;
admcrae 0:e314f3b805ed 1732 towrite[1]= F_putCH ;
admcrae 0:e314f3b805ed 1733 towrite[2]= WordChar >> 8 ;
admcrae 0:e314f3b805ed 1734 towrite[3]= WordChar ;
admcrae 0:e314f3b805ed 1735 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1736 GetAck() ;
admcrae 0:e314f3b805ed 1737 }
admcrae 0:e314f3b805ed 1738
admcrae 2:ebe7029e2825 1739 uint16_t uLCD_4D_Picaso::putStr(char * InString)
admcrae 0:e314f3b805ed 1740 {
admcrae 0:e314f3b805ed 1741 char towrite[2] ;
admcrae 0:e314f3b805ed 1742
admcrae 0:e314f3b805ed 1743 towrite[0]= F_putstr >> 8 ;
admcrae 0:e314f3b805ed 1744 towrite[1]= F_putstr ;
admcrae 0:e314f3b805ed 1745 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1746 WriteChars(InString) ;
admcrae 0:e314f3b805ed 1747 return GetAckResp() ;
admcrae 0:e314f3b805ed 1748 }
admcrae 0:e314f3b805ed 1749
admcrae 2:ebe7029e2825 1750 void uLCD_4D_Picaso::snd_BufSize(uint16_t Bufsize)
admcrae 0:e314f3b805ed 1751 {
admcrae 0:e314f3b805ed 1752 char towrite[4] ;
admcrae 0:e314f3b805ed 1753
admcrae 0:e314f3b805ed 1754 towrite[0]= F_snd_BufSize >> 8 ;
admcrae 0:e314f3b805ed 1755 towrite[1]= F_snd_BufSize & 0xFF;
admcrae 0:e314f3b805ed 1756 towrite[2]= Bufsize >> 8 ;
admcrae 0:e314f3b805ed 1757 towrite[3]= Bufsize ;
admcrae 0:e314f3b805ed 1758 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1759 GetAck() ;
admcrae 0:e314f3b805ed 1760 }
admcrae 0:e314f3b805ed 1761
admcrae 0:e314f3b805ed 1762 void uLCD_4D_Picaso::snd_Continue()
admcrae 0:e314f3b805ed 1763 {
admcrae 0:e314f3b805ed 1764 char towrite[2] ;
admcrae 0:e314f3b805ed 1765
admcrae 0:e314f3b805ed 1766 towrite[0]= F_snd_Continue >> 8 ;
admcrae 0:e314f3b805ed 1767 towrite[1]= F_snd_Continue & 0xFF;
admcrae 0:e314f3b805ed 1768 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1769 GetAck() ;
admcrae 0:e314f3b805ed 1770 }
admcrae 0:e314f3b805ed 1771
admcrae 0:e314f3b805ed 1772 void uLCD_4D_Picaso::snd_Pause()
admcrae 0:e314f3b805ed 1773 {
admcrae 0:e314f3b805ed 1774 char towrite[2] ;
admcrae 0:e314f3b805ed 1775
admcrae 0:e314f3b805ed 1776 towrite[0]= F_snd_Pause >> 8 ;
admcrae 0:e314f3b805ed 1777 towrite[1]= F_snd_Pause & 0xFF;
admcrae 0:e314f3b805ed 1778 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1779 GetAck() ;
admcrae 0:e314f3b805ed 1780 }
admcrae 0:e314f3b805ed 1781
admcrae 2:ebe7029e2825 1782 uint16_t uLCD_4D_Picaso::snd_Pitch(uint16_t Pitch)
admcrae 0:e314f3b805ed 1783 {
admcrae 0:e314f3b805ed 1784 char towrite[4] ;
admcrae 0:e314f3b805ed 1785
admcrae 0:e314f3b805ed 1786 towrite[0]= F_snd_Pitch >> 8 ;
admcrae 0:e314f3b805ed 1787 towrite[1]= F_snd_Pitch & 0xFF;
admcrae 0:e314f3b805ed 1788 towrite[2]= Pitch >> 8 ;
admcrae 0:e314f3b805ed 1789 towrite[3]= Pitch ;
admcrae 0:e314f3b805ed 1790 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1791 return GetAckResp() ;
admcrae 0:e314f3b805ed 1792 }
admcrae 0:e314f3b805ed 1793
admcrae 2:ebe7029e2825 1794 uint16_t uLCD_4D_Picaso::snd_Playing()
admcrae 0:e314f3b805ed 1795 {
admcrae 0:e314f3b805ed 1796 char towrite[2] ;
admcrae 0:e314f3b805ed 1797
admcrae 0:e314f3b805ed 1798 towrite[0]= F_snd_Playing >> 8 ;
admcrae 0:e314f3b805ed 1799 towrite[1]= F_snd_Playing & 0xFF;
admcrae 0:e314f3b805ed 1800 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1801 return GetAckResp() ;
admcrae 0:e314f3b805ed 1802 }
admcrae 0:e314f3b805ed 1803
admcrae 0:e314f3b805ed 1804 void uLCD_4D_Picaso::snd_Stop()
admcrae 0:e314f3b805ed 1805 {
admcrae 0:e314f3b805ed 1806 char towrite[2] ;
admcrae 0:e314f3b805ed 1807
admcrae 0:e314f3b805ed 1808 towrite[0]= F_snd_Stop >> 8 ;
admcrae 0:e314f3b805ed 1809 towrite[1]= F_snd_Stop & 0xFF;
admcrae 0:e314f3b805ed 1810 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 1811 GetAck() ;
admcrae 0:e314f3b805ed 1812 }
admcrae 0:e314f3b805ed 1813
admcrae 2:ebe7029e2825 1814 void uLCD_4D_Picaso::snd_Volume(uint16_t Volume)
admcrae 0:e314f3b805ed 1815 {
admcrae 0:e314f3b805ed 1816 char towrite[4] ;
admcrae 0:e314f3b805ed 1817
admcrae 0:e314f3b805ed 1818 towrite[0]= F_snd_Volume >> 8 ;
admcrae 0:e314f3b805ed 1819 towrite[1]= F_snd_Volume & 0xFF;
admcrae 0:e314f3b805ed 1820 towrite[2]= Volume >> 8 ;
admcrae 0:e314f3b805ed 1821 towrite[3]= Volume ;
admcrae 0:e314f3b805ed 1822 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1823 GetAck() ;
admcrae 0:e314f3b805ed 1824 }
admcrae 0:e314f3b805ed 1825
admcrae 2:ebe7029e2825 1826 uint16_t uLCD_4D_Picaso::sys_Sleep(uint16_t Units)
admcrae 0:e314f3b805ed 1827 {
admcrae 0:e314f3b805ed 1828 char towrite[4] ;
admcrae 0:e314f3b805ed 1829
admcrae 0:e314f3b805ed 1830 towrite[0]= F_sys_Sleep >> 8 ;
admcrae 0:e314f3b805ed 1831 towrite[1]= F_sys_Sleep & 0xFF;
admcrae 0:e314f3b805ed 1832 towrite[2]= Units >> 8 ;
admcrae 0:e314f3b805ed 1833 towrite[3]= Units ;
admcrae 0:e314f3b805ed 1834 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1835 return GetAckResp() ;
admcrae 0:e314f3b805ed 1836 }
admcrae 0:e314f3b805ed 1837
admcrae 2:ebe7029e2825 1838 void uLCD_4D_Picaso::touch_DetectRegion(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2)
admcrae 0:e314f3b805ed 1839 {
admcrae 0:e314f3b805ed 1840 char towrite[10] ;
admcrae 0:e314f3b805ed 1841
admcrae 0:e314f3b805ed 1842 towrite[0]= F_touch_DetectRegion >> 8 ;
admcrae 0:e314f3b805ed 1843 towrite[1]= F_touch_DetectRegion & 0xFF;
admcrae 0:e314f3b805ed 1844 towrite[2]= X1 >> 8 ;
admcrae 0:e314f3b805ed 1845 towrite[3]= X1 ;
admcrae 0:e314f3b805ed 1846 towrite[4]= Y1 >> 8 ;
admcrae 0:e314f3b805ed 1847 towrite[5]= Y1 ;
admcrae 0:e314f3b805ed 1848 towrite[6]= X2 >> 8 ;
admcrae 0:e314f3b805ed 1849 towrite[7]= X2 ;
admcrae 0:e314f3b805ed 1850 towrite[8]= Y2 >> 8 ;
admcrae 0:e314f3b805ed 1851 towrite[9]= Y2 ;
admcrae 0:e314f3b805ed 1852 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 1853 GetAck() ;
admcrae 0:e314f3b805ed 1854 }
admcrae 0:e314f3b805ed 1855
admcrae 2:ebe7029e2825 1856 uint16_t uLCD_4D_Picaso::touch_Get(uint16_t Mode)
admcrae 0:e314f3b805ed 1857 {
admcrae 0:e314f3b805ed 1858 char towrite[4] ;
admcrae 0:e314f3b805ed 1859
admcrae 0:e314f3b805ed 1860 towrite[0]= F_touch_Get >> 8 ;
admcrae 0:e314f3b805ed 1861 towrite[1]= F_touch_Get & 0xFF;
admcrae 0:e314f3b805ed 1862 towrite[2]= Mode >> 8 ;
admcrae 0:e314f3b805ed 1863 towrite[3]= Mode ;
admcrae 0:e314f3b805ed 1864 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1865 return GetAckResp() ;
admcrae 0:e314f3b805ed 1866 }
admcrae 0:e314f3b805ed 1867
admcrae 2:ebe7029e2825 1868 void uLCD_4D_Picaso::touch_Set(uint16_t Mode)
admcrae 0:e314f3b805ed 1869 {
admcrae 0:e314f3b805ed 1870 char towrite[4] ;
admcrae 0:e314f3b805ed 1871
admcrae 0:e314f3b805ed 1872 towrite[0]= F_touch_Set >> 8 ;
admcrae 0:e314f3b805ed 1873 towrite[1]= F_touch_Set & 0xFF;
admcrae 0:e314f3b805ed 1874 towrite[2]= Mode >> 8 ;
admcrae 0:e314f3b805ed 1875 towrite[3]= Mode ;
admcrae 0:e314f3b805ed 1876 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1877 GetAck() ;
admcrae 0:e314f3b805ed 1878 }
admcrae 0:e314f3b805ed 1879
admcrae 2:ebe7029e2825 1880 Picaso::TextAttribute uLCD_4D_Picaso::txt_Attributes(Picaso::TextAttribute Attribs)
admcrae 0:e314f3b805ed 1881 {
admcrae 0:e314f3b805ed 1882 char towrite[4] ;
admcrae 0:e314f3b805ed 1883
admcrae 0:e314f3b805ed 1884 towrite[0]= F_txt_Attributes >> 8 ;
admcrae 0:e314f3b805ed 1885 towrite[1]= F_txt_Attributes ;
admcrae 0:e314f3b805ed 1886 towrite[2]= Attribs >> 8 ;
admcrae 0:e314f3b805ed 1887 towrite[3]= Attribs ;
admcrae 0:e314f3b805ed 1888 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1889 return (Picaso::TextAttribute) GetAckResp() ;
admcrae 0:e314f3b805ed 1890 }
admcrae 0:e314f3b805ed 1891
admcrae 2:ebe7029e2825 1892 Picaso::Color uLCD_4D_Picaso::txt_BGcolour(Picaso::Color Color)
admcrae 0:e314f3b805ed 1893 {
admcrae 0:e314f3b805ed 1894 char towrite[4] ;
admcrae 0:e314f3b805ed 1895
admcrae 0:e314f3b805ed 1896 towrite[0]= F_txt_BGcolour >> 8 ;
admcrae 0:e314f3b805ed 1897 towrite[1]= F_txt_BGcolour ;
admcrae 0:e314f3b805ed 1898 towrite[2]= Color >> 8 ;
admcrae 0:e314f3b805ed 1899 towrite[3]= Color ;
admcrae 0:e314f3b805ed 1900 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1901 return (Picaso::Color) GetAckResp() ;
admcrae 0:e314f3b805ed 1902 }
admcrae 0:e314f3b805ed 1903
admcrae 2:ebe7029e2825 1904 uint16_t uLCD_4D_Picaso::txt_Bold(uint16_t Bold)
admcrae 0:e314f3b805ed 1905 {
admcrae 0:e314f3b805ed 1906 char towrite[4] ;
admcrae 0:e314f3b805ed 1907
admcrae 0:e314f3b805ed 1908 towrite[0]= F_txt_Bold >> 8 ;
admcrae 0:e314f3b805ed 1909 towrite[1]= F_txt_Bold ;
admcrae 0:e314f3b805ed 1910 towrite[2]= Bold >> 8 ;
admcrae 0:e314f3b805ed 1911 towrite[3]= Bold ;
admcrae 0:e314f3b805ed 1912 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1913 return GetAckResp() ;
admcrae 0:e314f3b805ed 1914 }
admcrae 0:e314f3b805ed 1915
admcrae 2:ebe7029e2825 1916 Picaso::Color uLCD_4D_Picaso::txt_FGcolour(Picaso::Color Color)
admcrae 0:e314f3b805ed 1917 {
admcrae 0:e314f3b805ed 1918 char towrite[4] ;
admcrae 0:e314f3b805ed 1919
admcrae 0:e314f3b805ed 1920 towrite[0]= F_txt_FGcolour >> 8 ;
admcrae 0:e314f3b805ed 1921 towrite[1]= F_txt_FGcolour ;
admcrae 0:e314f3b805ed 1922 towrite[2]= Color >> 8 ;
admcrae 0:e314f3b805ed 1923 towrite[3]= Color ;
admcrae 0:e314f3b805ed 1924 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1925 return (Picaso::Color) GetAckResp() ;
admcrae 0:e314f3b805ed 1926 }
admcrae 0:e314f3b805ed 1927
admcrae 2:ebe7029e2825 1928 Picaso::Font uLCD_4D_Picaso::txt_FontID(Picaso::Font FontNumber)
admcrae 0:e314f3b805ed 1929 {
admcrae 0:e314f3b805ed 1930 char towrite[4] ;
admcrae 0:e314f3b805ed 1931
admcrae 0:e314f3b805ed 1932 towrite[0]= F_txt_FontID >> 8 ;
admcrae 0:e314f3b805ed 1933 towrite[1]= F_txt_FontID ;
admcrae 0:e314f3b805ed 1934 towrite[2]= FontNumber >> 8 ;
admcrae 0:e314f3b805ed 1935 towrite[3]= FontNumber ;
admcrae 0:e314f3b805ed 1936 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1937 return (Picaso::Font) GetAckResp() ;
admcrae 0:e314f3b805ed 1938 }
admcrae 0:e314f3b805ed 1939
admcrae 2:ebe7029e2825 1940 uint16_t uLCD_4D_Picaso::txt_Height(uint16_t Multiplier)
admcrae 0:e314f3b805ed 1941 {
admcrae 0:e314f3b805ed 1942 char towrite[4] ;
admcrae 0:e314f3b805ed 1943
admcrae 0:e314f3b805ed 1944 towrite[0]= F_txt_Height >> 8 ;
admcrae 0:e314f3b805ed 1945 towrite[1]= F_txt_Height ;
admcrae 0:e314f3b805ed 1946 towrite[2]= Multiplier >> 8 ;
admcrae 0:e314f3b805ed 1947 towrite[3]= Multiplier ;
admcrae 0:e314f3b805ed 1948 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1949 return GetAckResp() ;
admcrae 0:e314f3b805ed 1950 }
admcrae 0:e314f3b805ed 1951
admcrae 2:ebe7029e2825 1952 uint16_t uLCD_4D_Picaso::txt_Inverse(uint16_t Inverse)
admcrae 0:e314f3b805ed 1953 {
admcrae 0:e314f3b805ed 1954 char towrite[4] ;
admcrae 0:e314f3b805ed 1955
admcrae 0:e314f3b805ed 1956 towrite[0]= F_txt_Inverse >> 8 ;
admcrae 0:e314f3b805ed 1957 towrite[1]= F_txt_Inverse ;
admcrae 0:e314f3b805ed 1958 towrite[2]= Inverse >> 8 ;
admcrae 0:e314f3b805ed 1959 towrite[3]= Inverse ;
admcrae 0:e314f3b805ed 1960 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1961 return GetAckResp() ;
admcrae 0:e314f3b805ed 1962 }
admcrae 0:e314f3b805ed 1963
admcrae 2:ebe7029e2825 1964 uint16_t uLCD_4D_Picaso::txt_Italic(uint16_t Italic)
admcrae 0:e314f3b805ed 1965 {
admcrae 0:e314f3b805ed 1966 char towrite[4] ;
admcrae 0:e314f3b805ed 1967
admcrae 0:e314f3b805ed 1968 towrite[0]= F_txt_Italic >> 8 ;
admcrae 0:e314f3b805ed 1969 towrite[1]= F_txt_Italic ;
admcrae 0:e314f3b805ed 1970 towrite[2]= Italic >> 8 ;
admcrae 0:e314f3b805ed 1971 towrite[3]= Italic ;
admcrae 0:e314f3b805ed 1972 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 1973 return GetAckResp() ;
admcrae 0:e314f3b805ed 1974 }
admcrae 0:e314f3b805ed 1975
admcrae 2:ebe7029e2825 1976 void uLCD_4D_Picaso::txt_MoveCursor(uint16_t Line, uint16_t Column)
admcrae 0:e314f3b805ed 1977 {
admcrae 0:e314f3b805ed 1978 char towrite[6] ;
admcrae 0:e314f3b805ed 1979
admcrae 0:e314f3b805ed 1980 towrite[0]= F_txt_MoveCursor >> 8 ;
admcrae 0:e314f3b805ed 1981 towrite[1]= F_txt_MoveCursor ;
admcrae 0:e314f3b805ed 1982 towrite[2]= Line >> 8 ;
admcrae 0:e314f3b805ed 1983 towrite[3]= Line ;
admcrae 0:e314f3b805ed 1984 towrite[4]= Column >> 8 ;
admcrae 0:e314f3b805ed 1985 towrite[5]= Column ;
admcrae 0:e314f3b805ed 1986 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 1987 GetAck() ;
admcrae 0:e314f3b805ed 1988 }
admcrae 0:e314f3b805ed 1989
admcrae 2:ebe7029e2825 1990 Picaso::TextOpacity uLCD_4D_Picaso::txt_Opacity(Picaso::TextOpacity TransparentOpaque)
admcrae 0:e314f3b805ed 1991 {
admcrae 0:e314f3b805ed 1992 char towrite[4] ;
admcrae 0:e314f3b805ed 1993
admcrae 0:e314f3b805ed 1994 towrite[0]= F_txt_Opacity >> 8 ;
admcrae 0:e314f3b805ed 1995 towrite[1]= F_txt_Opacity ;
admcrae 0:e314f3b805ed 1996 towrite[2]= TransparentOpaque >> 8 ;
admcrae 0:e314f3b805ed 1997 towrite[3]= TransparentOpaque ;
admcrae 0:e314f3b805ed 1998 WriteBytes(towrite, 4) ;
admcrae 2:ebe7029e2825 1999 return (Picaso::TextOpacity) GetAckResp() ;
admcrae 0:e314f3b805ed 2000 }
admcrae 0:e314f3b805ed 2001
admcrae 2:ebe7029e2825 2002 void uLCD_4D_Picaso::txt_Set(Picaso::TextSetFunc Func, uint16_t Value)
admcrae 0:e314f3b805ed 2003 {
admcrae 0:e314f3b805ed 2004 char towrite[6] ;
admcrae 0:e314f3b805ed 2005
admcrae 0:e314f3b805ed 2006 towrite[0]= F_txt_Set >> 8 ;
admcrae 0:e314f3b805ed 2007 towrite[1]= F_txt_Set ;
admcrae 0:e314f3b805ed 2008 towrite[2]= Func >> 8 ;
admcrae 0:e314f3b805ed 2009 towrite[3]= Func ;
admcrae 0:e314f3b805ed 2010 towrite[4]= Value >> 8 ;
admcrae 0:e314f3b805ed 2011 towrite[5]= Value ;
admcrae 0:e314f3b805ed 2012 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 2013 GetAck() ;
admcrae 0:e314f3b805ed 2014 }
admcrae 0:e314f3b805ed 2015
admcrae 2:ebe7029e2825 2016 uint16_t uLCD_4D_Picaso::txt_Underline(uint16_t Underline)
admcrae 0:e314f3b805ed 2017 {
admcrae 0:e314f3b805ed 2018 char towrite[4] ;
admcrae 0:e314f3b805ed 2019
admcrae 0:e314f3b805ed 2020 towrite[0]= F_txt_Underline >> 8 ;
admcrae 0:e314f3b805ed 2021 towrite[1]= F_txt_Underline ;
admcrae 0:e314f3b805ed 2022 towrite[2]= Underline >> 8 ;
admcrae 0:e314f3b805ed 2023 towrite[3]= Underline ;
admcrae 0:e314f3b805ed 2024 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2025 return GetAckResp() ;
admcrae 0:e314f3b805ed 2026 }
admcrae 0:e314f3b805ed 2027
admcrae 2:ebe7029e2825 2028 uint16_t uLCD_4D_Picaso::txt_Width(uint16_t Multiplier)
admcrae 0:e314f3b805ed 2029 {
admcrae 0:e314f3b805ed 2030 char towrite[4] ;
admcrae 0:e314f3b805ed 2031
admcrae 0:e314f3b805ed 2032 towrite[0]= F_txt_Width >> 8 ;
admcrae 0:e314f3b805ed 2033 towrite[1]= F_txt_Width ;
admcrae 0:e314f3b805ed 2034 towrite[2]= Multiplier >> 8 ;
admcrae 0:e314f3b805ed 2035 towrite[3]= Multiplier ;
admcrae 0:e314f3b805ed 2036 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2037 return GetAckResp() ;
admcrae 0:e314f3b805ed 2038 }
admcrae 0:e314f3b805ed 2039
admcrae 2:ebe7029e2825 2040 uint16_t uLCD_4D_Picaso::txt_Wrap(uint16_t Position)
admcrae 0:e314f3b805ed 2041 {
admcrae 0:e314f3b805ed 2042 char towrite[4] ;
admcrae 0:e314f3b805ed 2043
admcrae 0:e314f3b805ed 2044 towrite[0]= F_txt_Wrap >> 8 ;
admcrae 0:e314f3b805ed 2045 towrite[1]= F_txt_Wrap ;
admcrae 0:e314f3b805ed 2046 towrite[2]= Position >> 8 ;
admcrae 0:e314f3b805ed 2047 towrite[3]= Position ;
admcrae 0:e314f3b805ed 2048 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2049 return GetAckResp() ;
admcrae 0:e314f3b805ed 2050 }
admcrae 0:e314f3b805ed 2051
admcrae 2:ebe7029e2825 2052 uint16_t uLCD_4D_Picaso::txt_Xgap(uint16_t Pixels)
admcrae 0:e314f3b805ed 2053 {
admcrae 0:e314f3b805ed 2054 char towrite[4] ;
admcrae 0:e314f3b805ed 2055
admcrae 0:e314f3b805ed 2056 towrite[0]= F_txt_Xgap >> 8 ;
admcrae 0:e314f3b805ed 2057 towrite[1]= F_txt_Xgap ;
admcrae 0:e314f3b805ed 2058 towrite[2]= Pixels >> 8 ;
admcrae 0:e314f3b805ed 2059 towrite[3]= Pixels ;
admcrae 0:e314f3b805ed 2060 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2061 return GetAckResp() ;
admcrae 0:e314f3b805ed 2062 }
admcrae 0:e314f3b805ed 2063
admcrae 2:ebe7029e2825 2064 uint16_t uLCD_4D_Picaso::txt_Ygap(uint16_t Pixels)
admcrae 0:e314f3b805ed 2065 {
admcrae 0:e314f3b805ed 2066 char towrite[4] ;
admcrae 0:e314f3b805ed 2067
admcrae 0:e314f3b805ed 2068 towrite[0]= F_txt_Ygap >> 8 ;
admcrae 0:e314f3b805ed 2069 towrite[1]= F_txt_Ygap ;
admcrae 0:e314f3b805ed 2070 towrite[2]= Pixels >> 8 ;
admcrae 0:e314f3b805ed 2071 towrite[3]= Pixels ;
admcrae 0:e314f3b805ed 2072 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2073 return GetAckResp() ;
admcrae 0:e314f3b805ed 2074 }
admcrae 0:e314f3b805ed 2075
admcrae 2:ebe7029e2825 2076 uint16_t uLCD_4D_Picaso::file_CallFunction(uint16_t Handle, uint16_t ArgCount, uint16_t* Args)
admcrae 0:e314f3b805ed 2077 {
admcrae 0:e314f3b805ed 2078 char towrite[6] ;
admcrae 0:e314f3b805ed 2079
admcrae 0:e314f3b805ed 2080 towrite[0]= F_file_CallFunction >> 8 ;
admcrae 0:e314f3b805ed 2081 towrite[1]= F_file_CallFunction ;
admcrae 0:e314f3b805ed 2082 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 2083 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 2084 towrite[4]= ArgCount >> 8 ;
admcrae 0:e314f3b805ed 2085 towrite[5]= ArgCount ;
admcrae 0:e314f3b805ed 2086 WriteBytes(towrite, 6) ;
admcrae 0:e314f3b805ed 2087 WriteWords(Args, ArgCount) ;
admcrae 0:e314f3b805ed 2088 return WaitForAck() ;
admcrae 0:e314f3b805ed 2089 }
admcrae 0:e314f3b805ed 2090
admcrae 2:ebe7029e2825 2091 uint16_t uLCD_4D_Picaso::sys_GetModel(char * ModelStr)
admcrae 0:e314f3b805ed 2092 {
admcrae 0:e314f3b805ed 2093 char towrite[2] ;
admcrae 0:e314f3b805ed 2094
admcrae 0:e314f3b805ed 2095 towrite[0]= F_sys_GetModel >> 8 ;
admcrae 0:e314f3b805ed 2096 towrite[1]= F_sys_GetModel ;
admcrae 0:e314f3b805ed 2097 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 2098 return GetAckResStr(ModelStr) ;
admcrae 0:e314f3b805ed 2099 }
admcrae 0:e314f3b805ed 2100
admcrae 2:ebe7029e2825 2101 uint16_t uLCD_4D_Picaso::sys_GetVersion()
admcrae 0:e314f3b805ed 2102 {
admcrae 0:e314f3b805ed 2103 char towrite[2] ;
admcrae 0:e314f3b805ed 2104
admcrae 0:e314f3b805ed 2105 towrite[0]= F_sys_GetVersion >> 8 ;
admcrae 0:e314f3b805ed 2106 towrite[1]= F_sys_GetVersion ;
admcrae 0:e314f3b805ed 2107 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 2108 return GetAckResp() ;
admcrae 0:e314f3b805ed 2109 }
admcrae 0:e314f3b805ed 2110
admcrae 2:ebe7029e2825 2111 uint16_t uLCD_4D_Picaso::sys_GetPmmC()
admcrae 0:e314f3b805ed 2112 {
admcrae 0:e314f3b805ed 2113 char towrite[2] ;
admcrae 0:e314f3b805ed 2114
admcrae 0:e314f3b805ed 2115 towrite[0]= F_sys_GetPmmC >> 8 ;
admcrae 0:e314f3b805ed 2116 towrite[1]= F_sys_GetPmmC ;
admcrae 0:e314f3b805ed 2117 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 2118 return GetAckResp() ;
admcrae 0:e314f3b805ed 2119 }
admcrae 0:e314f3b805ed 2120
admcrae 2:ebe7029e2825 2121 uint16_t uLCD_4D_Picaso::writeString(uint16_t Handle, char * StringOut)
admcrae 0:e314f3b805ed 2122 {
admcrae 0:e314f3b805ed 2123 char towrite[4] ;
admcrae 0:e314f3b805ed 2124
admcrae 0:e314f3b805ed 2125 towrite[0]= F_writeString >> 8 ;
admcrae 0:e314f3b805ed 2126 towrite[1]= F_writeString ;
admcrae 0:e314f3b805ed 2127 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 2128 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 2129 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2130 WriteChars(StringOut) ;
admcrae 0:e314f3b805ed 2131 return GetAckResp() ;
admcrae 0:e314f3b805ed 2132 }
admcrae 0:e314f3b805ed 2133
admcrae 2:ebe7029e2825 2134 uint16_t uLCD_4D_Picaso::readString(uint16_t Handle, char * StringIn)
admcrae 0:e314f3b805ed 2135 {
admcrae 0:e314f3b805ed 2136 char towrite[4] ;
admcrae 0:e314f3b805ed 2137
admcrae 0:e314f3b805ed 2138 towrite[0]= F_readString >> 8 ;
admcrae 0:e314f3b805ed 2139 towrite[1]= F_readString ;
admcrae 0:e314f3b805ed 2140 towrite[2]= Handle >> 8 ;
admcrae 0:e314f3b805ed 2141 towrite[3]= Handle ;
admcrae 0:e314f3b805ed 2142 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2143 return GetAckResStr(StringIn) ;
admcrae 0:e314f3b805ed 2144 }
admcrae 0:e314f3b805ed 2145
admcrae 2:ebe7029e2825 2146 void uLCD_4D_Picaso::blitComtoDisplay(uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height, char* Pixels)
admcrae 0:e314f3b805ed 2147 {
admcrae 0:e314f3b805ed 2148 char towrite[10] ;
admcrae 0:e314f3b805ed 2149
admcrae 0:e314f3b805ed 2150 towrite[0]= F_blitComtoDisplay >> 8 ;
admcrae 0:e314f3b805ed 2151 towrite[1]= F_blitComtoDisplay ;
admcrae 0:e314f3b805ed 2152 towrite[2]= X >> 8 ;
admcrae 0:e314f3b805ed 2153 towrite[3]= X ;
admcrae 0:e314f3b805ed 2154 towrite[4]= Y >> 8 ;
admcrae 0:e314f3b805ed 2155 towrite[5]= Y ;
admcrae 0:e314f3b805ed 2156 towrite[6]= Width >> 8 ;
admcrae 0:e314f3b805ed 2157 towrite[7]= Width ;
admcrae 0:e314f3b805ed 2158 towrite[8]= Height >> 8 ;
admcrae 0:e314f3b805ed 2159 towrite[9]= Height ;
admcrae 0:e314f3b805ed 2160 WriteBytes(towrite, 10) ;
admcrae 0:e314f3b805ed 2161 WriteBytes(Pixels, Width*Height*2) ;
admcrae 0:e314f3b805ed 2162 GetAck() ;
admcrae 0:e314f3b805ed 2163 }
admcrae 0:e314f3b805ed 2164
admcrae 2:ebe7029e2825 2165 uint16_t uLCD_4D_Picaso::file_FindFirstRet(char * Filename, char * StringIn)
admcrae 0:e314f3b805ed 2166 {
admcrae 0:e314f3b805ed 2167 char towrite[2] ;
admcrae 0:e314f3b805ed 2168
admcrae 0:e314f3b805ed 2169 towrite[0]= F_file_FindFirstRet >> 8 ;
admcrae 0:e314f3b805ed 2170 towrite[1]= F_file_FindFirstRet ;
admcrae 0:e314f3b805ed 2171 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 2172 WriteChars(Filename) ;
admcrae 0:e314f3b805ed 2173 return GetAckResStr(StringIn) ;
admcrae 0:e314f3b805ed 2174 }
admcrae 0:e314f3b805ed 2175
admcrae 2:ebe7029e2825 2176 uint16_t uLCD_4D_Picaso::file_FindNextRet(char * StringIn)
admcrae 0:e314f3b805ed 2177 {
admcrae 0:e314f3b805ed 2178 char towrite[2] ;
admcrae 0:e314f3b805ed 2179
admcrae 0:e314f3b805ed 2180 towrite[0]= F_file_FindNextRet >> 8 ;
admcrae 0:e314f3b805ed 2181 towrite[1]= F_file_FindNextRet ;
admcrae 0:e314f3b805ed 2182 WriteBytes(towrite, 2) ;
admcrae 0:e314f3b805ed 2183 return GetAckResStr(StringIn) ;
admcrae 0:e314f3b805ed 2184 }
admcrae 0:e314f3b805ed 2185
admcrae 2:ebe7029e2825 2186 void uLCD_4D_Picaso::setbaudWait(Picaso::BaudRate Newrate)
admcrae 0:e314f3b805ed 2187 {
admcrae 0:e314f3b805ed 2188 char towrite[4] ;
admcrae 0:e314f3b805ed 2189
admcrae 0:e314f3b805ed 2190 towrite[0]= F_setbaudWait >> 8 ;
admcrae 0:e314f3b805ed 2191 towrite[1]= F_setbaudWait ;
admcrae 0:e314f3b805ed 2192 towrite[2]= Newrate >> 8 ;
admcrae 0:e314f3b805ed 2193 towrite[3]= Newrate ;
admcrae 0:e314f3b805ed 2194 WriteBytes(towrite, 4) ;
admcrae 0:e314f3b805ed 2195 //printf("Baud command: %2x%2x%2x%2x\r\n", towrite[0], towrite[1], towrite[2], towrite[3]);
admcrae 0:e314f3b805ed 2196 SetThisBaudrate(Newrate) ; // change this systems baud rate to match new display rate, ACK is 100ms away
admcrae 0:e314f3b805ed 2197 GetAck() ;
admcrae 0:e314f3b805ed 2198 }
admcrae 0:e314f3b805ed 2199
admcrae 0:e314f3b805ed 2200 /*
admcrae 0:e314f3b805ed 2201 * Conpound 4D Routines Ends here
admcrae 0:e314f3b805ed 2202 */
admcrae 0:e314f3b805ed 2203