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 19:01:56 2015 +0000
Revision:
4:30010dda3b34
Parent:
2:ebe7029e2825
Continuing to work on doxygen comments.

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