Rihards Balass / 4DGL-mbed-32PTU
Committer:
CaptainR
Date:
Mon Sep 12 10:15:54 2016 +0000
Revision:
5:890ddd974624
Parent:
3:dcfbceb81fef
Child:
12:29f5ad896382
Changed communication, now uses interupt to get all of data from LCD

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CaptainR 0:a5ef6bc3c2e8 1 //
CaptainR 2:81eaaa491a02 2 // Picaso_4DGL-32PTU is a class to drive 4D Systems TFT touch screens with PICASO processor
CaptainR 2:81eaaa491a02 3 // Tested with NUCLEO L152RE development board
CaptainR 2:81eaaa491a02 4 // Copyright (C) <2016> Rihards Balass <rihards.balass@gmail.com>
CaptainR 0:a5ef6bc3c2e8 5 //
CaptainR 2:81eaaa491a02 6 // Picaso_4DGL-32PTU is free software: you can redistribute it and/or modify
CaptainR 2:81eaaa491a02 7 // it under the terms of the GNU General Public License as published by
CaptainR 2:81eaaa491a02 8 // the Free Software Foundation, either version 3 of the License, or
CaptainR 2:81eaaa491a02 9 // (at your option) any later version.
CaptainR 2:81eaaa491a02 10 //
CaptainR 2:81eaaa491a02 11 // Picaso_4DGL-32PTU is distributed in the hope that it will be useful,
CaptainR 2:81eaaa491a02 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
CaptainR 2:81eaaa491a02 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
CaptainR 2:81eaaa491a02 14 // GNU General Public License for more details.
CaptainR 2:81eaaa491a02 15 //
CaptainR 2:81eaaa491a02 16 // You can see GNU General Public License at <http://www.gnu.org/licenses/>.
CaptainR 0:a5ef6bc3c2e8 17 //
CaptainR 0:a5ef6bc3c2e8 18
CaptainR 0:a5ef6bc3c2e8 19 #include "mbed.h"
CaptainR 0:a5ef6bc3c2e8 20 #include "Picaso_4DGL-32PTU.h"
CaptainR 0:a5ef6bc3c2e8 21
CaptainR 0:a5ef6bc3c2e8 22 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 23 void PICASO_4DGL :: setFont(char mode) { // set font size
CaptainR 0:a5ef6bc3c2e8 24
CaptainR 0:a5ef6bc3c2e8 25 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 26
CaptainR 2:81eaaa491a02 27 command[0] = (SET_FONT >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 28 command[1] = (SET_FONT >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 29
CaptainR 0:a5ef6bc3c2e8 30 switch (mode) {
CaptainR 0:a5ef6bc3c2e8 31 case 1 :
CaptainR 2:81eaaa491a02 32 command[2] = (FONT1 >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 33 command[3] = (FONT1 >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 34 currentFont = 1;
CaptainR 0:a5ef6bc3c2e8 35 break;
CaptainR 0:a5ef6bc3c2e8 36 case 2 :
CaptainR 2:81eaaa491a02 37 command[2] = (FONT2 >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 38 command[3] = (FONT2 >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 39 currentFont = 2;
CaptainR 0:a5ef6bc3c2e8 40 break;
CaptainR 0:a5ef6bc3c2e8 41 case 3 :
CaptainR 2:81eaaa491a02 42 command[2] = (FONT3 >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 43 command[3] = (FONT3 >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 44 currentFont = 3;
CaptainR 0:a5ef6bc3c2e8 45 break;
CaptainR 0:a5ef6bc3c2e8 46 }
CaptainR 0:a5ef6bc3c2e8 47
CaptainR 0:a5ef6bc3c2e8 48 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 49 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 50 }
CaptainR 0:a5ef6bc3c2e8 51
CaptainR 0:a5ef6bc3c2e8 52 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 53 void PICASO_4DGL :: textBgColor(short color) { // set text color
CaptainR 0:a5ef6bc3c2e8 54
CaptainR 0:a5ef6bc3c2e8 55 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 56
CaptainR 2:81eaaa491a02 57 command[0] = (TEXT_BG_COLOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 58 command[1] = (TEXT_BG_COLOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 59
CaptainR 2:81eaaa491a02 60 command[2] = (color >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 61 command[3] = (color >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 62
CaptainR 0:a5ef6bc3c2e8 63 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 64 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 65 }
CaptainR 0:a5ef6bc3c2e8 66
CaptainR 0:a5ef6bc3c2e8 67 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 68 void PICASO_4DGL :: putc(char c) { // place char at current cursor position
CaptainR 0:a5ef6bc3c2e8 69
CaptainR 0:a5ef6bc3c2e8 70 char command[3]= "";
CaptainR 0:a5ef6bc3c2e8 71
CaptainR 2:81eaaa491a02 72 command[0] = (PUT_CHAR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 73 command[1] = (PUT_CHAR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 74
CaptainR 0:a5ef6bc3c2e8 75 command[2] = c;
CaptainR 0:a5ef6bc3c2e8 76
CaptainR 0:a5ef6bc3c2e8 77 writeCOMMAND(command, 3);
CaptainR 5:890ddd974624 78 getResponse(1);
CaptainR 0:a5ef6bc3c2e8 79 }
CaptainR 0:a5ef6bc3c2e8 80
CaptainR 0:a5ef6bc3c2e8 81 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 82 void PICASO_4DGL :: puts(char *s) { // place string at current cursor position
CaptainR 0:a5ef6bc3c2e8 83
CaptainR 0:a5ef6bc3c2e8 84 char command[1000]= "";
CaptainR 0:a5ef6bc3c2e8 85
CaptainR 0:a5ef6bc3c2e8 86 int size = strlen(s);
CaptainR 0:a5ef6bc3c2e8 87 int i = 0;
CaptainR 0:a5ef6bc3c2e8 88
CaptainR 2:81eaaa491a02 89 command[0] = (PUT_STRING >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 90 command[1] = (PUT_STRING >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 91
CaptainR 0:a5ef6bc3c2e8 92 for (i=0; i<size; i++) command[2+i] = s[i];
CaptainR 0:a5ef6bc3c2e8 93
CaptainR 0:a5ef6bc3c2e8 94 command[2+size] = 0;
CaptainR 0:a5ef6bc3c2e8 95
CaptainR 0:a5ef6bc3c2e8 96 writeCOMMAND(command, 3 + size);
CaptainR 5:890ddd974624 97 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 98 }
CaptainR 0:a5ef6bc3c2e8 99
CaptainR 3:dcfbceb81fef 100 char PICASO_4DGL :: validateMoveCursor(short line, short col) {
CaptainR 0:a5ef6bc3c2e8 101
CaptainR 0:a5ef6bc3c2e8 102 switch (currentFont) {
CaptainR 0:a5ef6bc3c2e8 103 case 1 :
CaptainR 0:a5ef6bc3c2e8 104 if (currentOrientation == 1 || currentOrientation == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 105 if (line > F1LL) {
CaptainR 0:a5ef6bc3c2e8 106 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 107 pc.printf("\n\r Line must be less than %i...\n\r", F1LL);
CaptainR 0:a5ef6bc3c2e8 108 #endif
CaptainR 0:a5ef6bc3c2e8 109 return 0;
CaptainR 0:a5ef6bc3c2e8 110 }
CaptainR 0:a5ef6bc3c2e8 111 else if (col > F1LC) {
CaptainR 0:a5ef6bc3c2e8 112 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 113 pc.printf("\n\r Column must be less than %i...\n\r", F1LC);
CaptainR 0:a5ef6bc3c2e8 114 #endif
CaptainR 0:a5ef6bc3c2e8 115 return 0;
CaptainR 0:a5ef6bc3c2e8 116 }
CaptainR 0:a5ef6bc3c2e8 117 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 118 }
CaptainR 0:a5ef6bc3c2e8 119 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 120 if (line > F1PL) {
CaptainR 0:a5ef6bc3c2e8 121 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 122 pc.printf("\n\r Column must be less than %i...\n\r", F1PL);
CaptainR 0:a5ef6bc3c2e8 123 #endif
CaptainR 0:a5ef6bc3c2e8 124 return 0;
CaptainR 0:a5ef6bc3c2e8 125 }
CaptainR 0:a5ef6bc3c2e8 126 else if (col > F1PC) {
CaptainR 0:a5ef6bc3c2e8 127 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 128 pc.printf("\n\r Column must be less than %i...\n\r", F1PC);
CaptainR 0:a5ef6bc3c2e8 129 #endif
CaptainR 0:a5ef6bc3c2e8 130 return 0;
CaptainR 0:a5ef6bc3c2e8 131 }
CaptainR 0:a5ef6bc3c2e8 132 else return 1;
CaptainR 0:a5ef6bc3c2e8 133 }
CaptainR 0:a5ef6bc3c2e8 134 case 2 :
CaptainR 0:a5ef6bc3c2e8 135 if (currentOrientation == 1 || currentOrientation == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 136 if (line > F2LL) {
CaptainR 0:a5ef6bc3c2e8 137 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 138 pc.printf("\n\r Line must be less than %i...\n\r", F2LL);
CaptainR 0:a5ef6bc3c2e8 139 #endif
CaptainR 0:a5ef6bc3c2e8 140 return 0;
CaptainR 0:a5ef6bc3c2e8 141 }
CaptainR 0:a5ef6bc3c2e8 142 else if (col > F2LC) {
CaptainR 0:a5ef6bc3c2e8 143 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 144 pc.printf("\n\r Column must be less than %i...\n\r", F2LC);
CaptainR 0:a5ef6bc3c2e8 145 #endif
CaptainR 0:a5ef6bc3c2e8 146 return 0;
CaptainR 0:a5ef6bc3c2e8 147 }
CaptainR 0:a5ef6bc3c2e8 148 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 149 }
CaptainR 0:a5ef6bc3c2e8 150 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 151 if (line > F2PL) {
CaptainR 0:a5ef6bc3c2e8 152 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 153 pc.printf("\n\r Column must be less than %i...\n\r", F2PL);
CaptainR 0:a5ef6bc3c2e8 154 #endif
CaptainR 0:a5ef6bc3c2e8 155 return 0;
CaptainR 0:a5ef6bc3c2e8 156 }
CaptainR 0:a5ef6bc3c2e8 157 else if (col > F2PC) {
CaptainR 0:a5ef6bc3c2e8 158 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 159 pc.printf("\n\r Column must be less than %i...\n\r", F2PC);
CaptainR 0:a5ef6bc3c2e8 160 #endif
CaptainR 0:a5ef6bc3c2e8 161 return 0;
CaptainR 0:a5ef6bc3c2e8 162 }
CaptainR 0:a5ef6bc3c2e8 163 else return 1;
CaptainR 0:a5ef6bc3c2e8 164 }
CaptainR 0:a5ef6bc3c2e8 165 case 3 :
CaptainR 0:a5ef6bc3c2e8 166 if (currentOrientation == 1 || currentOrientation == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 167 if (line > F3LL) {
CaptainR 0:a5ef6bc3c2e8 168 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 169 pc.printf("\n\r Line must be less than %i...\n\r", F3LL);
CaptainR 0:a5ef6bc3c2e8 170 #endif
CaptainR 0:a5ef6bc3c2e8 171 return 0;
CaptainR 0:a5ef6bc3c2e8 172 }
CaptainR 0:a5ef6bc3c2e8 173 else if (col > F3LC) {
CaptainR 0:a5ef6bc3c2e8 174 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 175 pc.printf("\n\r Column must be less than %i...\n\r", F3LC);
CaptainR 0:a5ef6bc3c2e8 176 #endif
CaptainR 0:a5ef6bc3c2e8 177 return 0;
CaptainR 0:a5ef6bc3c2e8 178 }
CaptainR 0:a5ef6bc3c2e8 179 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 180 }
CaptainR 0:a5ef6bc3c2e8 181 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 182 if (line > F3PL) {
CaptainR 0:a5ef6bc3c2e8 183 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 184 pc.printf("\n\r Column must be less than %i...\n\r", F3PL);
CaptainR 0:a5ef6bc3c2e8 185 #endif
CaptainR 0:a5ef6bc3c2e8 186 return 0;
CaptainR 0:a5ef6bc3c2e8 187 }
CaptainR 0:a5ef6bc3c2e8 188 else if (col > F3PC) {
CaptainR 0:a5ef6bc3c2e8 189 #if DEBUGMODE
CaptainR 0:a5ef6bc3c2e8 190 pc.printf("\n\r Column must be less than %i...\n\r", F3PC);
CaptainR 0:a5ef6bc3c2e8 191 #endif
CaptainR 0:a5ef6bc3c2e8 192 return 0;
CaptainR 0:a5ef6bc3c2e8 193 }
CaptainR 0:a5ef6bc3c2e8 194 else return 1;
CaptainR 0:a5ef6bc3c2e8 195 }
CaptainR 0:a5ef6bc3c2e8 196 }
CaptainR 0:a5ef6bc3c2e8 197 return 0;
CaptainR 0:a5ef6bc3c2e8 198 }
CaptainR 0:a5ef6bc3c2e8 199
CaptainR 0:a5ef6bc3c2e8 200 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 201 char PICASO_4DGL :: moveCursor(short line, short col) {
CaptainR 0:a5ef6bc3c2e8 202
CaptainR 0:a5ef6bc3c2e8 203 char command[6]= "";
CaptainR 0:a5ef6bc3c2e8 204
CaptainR 2:81eaaa491a02 205 command[0] = (MOVE_CURSOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 206 command[1] = (MOVE_CURSOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 207
CaptainR 0:a5ef6bc3c2e8 208 if (validateMoveCursor(line, col) == 1) {
CaptainR 0:a5ef6bc3c2e8 209 command[3] = line;
CaptainR 0:a5ef6bc3c2e8 210 command[5] = col;
CaptainR 0:a5ef6bc3c2e8 211 writeCOMMAND(command, 6);
CaptainR 5:890ddd974624 212 getResponse(1);
CaptainR 0:a5ef6bc3c2e8 213 return 1;
CaptainR 0:a5ef6bc3c2e8 214 }
CaptainR 0:a5ef6bc3c2e8 215 else return 0;
CaptainR 0:a5ef6bc3c2e8 216 }
CaptainR 0:a5ef6bc3c2e8 217
CaptainR 0:a5ef6bc3c2e8 218 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 219 void PICASO_4DGL :: textFgColor(short color) {
CaptainR 0:a5ef6bc3c2e8 220
CaptainR 0:a5ef6bc3c2e8 221 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 222
CaptainR 2:81eaaa491a02 223 command[0] = (TEXT_FG_COLOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 224 command[1] = (TEXT_FG_COLOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 225
CaptainR 2:81eaaa491a02 226 command[2] = (color >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 227 command[3] = (color >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 228
CaptainR 0:a5ef6bc3c2e8 229 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 230 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 231 }
CaptainR 0:a5ef6bc3c2e8 232
CaptainR 0:a5ef6bc3c2e8 233 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 234 int PICASO_4DGL :: textWidth(short multiplier) {
CaptainR 0:a5ef6bc3c2e8 235
CaptainR 0:a5ef6bc3c2e8 236 if (multiplier > 0 && multiplier <= 16) {
CaptainR 0:a5ef6bc3c2e8 237 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 238
CaptainR 2:81eaaa491a02 239 command[0] = (TEXT_WIDTH >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 240 command[1] = (TEXT_WIDTH >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 241
CaptainR 0:a5ef6bc3c2e8 242 command[2] = (multiplier >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 243 command[3] = (multiplier >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 244
CaptainR 0:a5ef6bc3c2e8 245 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 246 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 247 return 1;
CaptainR 0:a5ef6bc3c2e8 248 }
CaptainR 0:a5ef6bc3c2e8 249 else return 0;
CaptainR 0:a5ef6bc3c2e8 250 }
CaptainR 0:a5ef6bc3c2e8 251
CaptainR 0:a5ef6bc3c2e8 252 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 253 int PICASO_4DGL :: textHeight(short multiplier) {
CaptainR 0:a5ef6bc3c2e8 254
CaptainR 0:a5ef6bc3c2e8 255 if (multiplier > 0 && multiplier <= 16) {
CaptainR 0:a5ef6bc3c2e8 256 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 257
CaptainR 2:81eaaa491a02 258 command[0] = (TEXT_HEIGHT >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 259 command[1] = (TEXT_HEIGHT >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 260
CaptainR 0:a5ef6bc3c2e8 261 command[2] = (multiplier >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 262 command[3] = (multiplier >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 263
CaptainR 0:a5ef6bc3c2e8 264 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 265 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 266 return 1;
CaptainR 0:a5ef6bc3c2e8 267 }
CaptainR 0:a5ef6bc3c2e8 268 else return 0;
CaptainR 0:a5ef6bc3c2e8 269 }
CaptainR 0:a5ef6bc3c2e8 270
CaptainR 0:a5ef6bc3c2e8 271 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 272 int PICASO_4DGL :: textXGap(short pCount) {
CaptainR 0:a5ef6bc3c2e8 273
CaptainR 0:a5ef6bc3c2e8 274 if (pCount <= 32) {
CaptainR 0:a5ef6bc3c2e8 275 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 276
CaptainR 2:81eaaa491a02 277 command[0] = (TEXT_X_GAP >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 278 command[1] = (TEXT_X_GAP >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 279
CaptainR 0:a5ef6bc3c2e8 280 command[2] = (pCount >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 281 command[3] = (pCount >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 282
CaptainR 0:a5ef6bc3c2e8 283 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 284 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 285 return 1;
CaptainR 0:a5ef6bc3c2e8 286 }
CaptainR 0:a5ef6bc3c2e8 287 else return 0;
CaptainR 0:a5ef6bc3c2e8 288 }
CaptainR 0:a5ef6bc3c2e8 289
CaptainR 0:a5ef6bc3c2e8 290 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 291 int PICASO_4DGL :: textYGap(short pCount) {
CaptainR 0:a5ef6bc3c2e8 292
CaptainR 0:a5ef6bc3c2e8 293 if (pCount <= 32) {
CaptainR 0:a5ef6bc3c2e8 294 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 295
CaptainR 2:81eaaa491a02 296 command[0] = (TEXT_Y_GAP >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 297 command[1] = (TEXT_Y_GAP >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 298
CaptainR 0:a5ef6bc3c2e8 299 command[2] = (pCount >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 300 command[3] = (pCount >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 301
CaptainR 0:a5ef6bc3c2e8 302 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 303 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 304 return 1;
CaptainR 0:a5ef6bc3c2e8 305 }
CaptainR 0:a5ef6bc3c2e8 306 else return 0;
CaptainR 0:a5ef6bc3c2e8 307 }
CaptainR 0:a5ef6bc3c2e8 308
CaptainR 0:a5ef6bc3c2e8 309 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 310 void PICASO_4DGL :: textBold(short mode) {
CaptainR 0:a5ef6bc3c2e8 311
CaptainR 0:a5ef6bc3c2e8 312 char command[4]= "";
CaptainR 2:81eaaa491a02 313 command[0] = (TEXT_BOLD >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 314 command[1] = (TEXT_BOLD >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 315 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 316 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 317
CaptainR 0:a5ef6bc3c2e8 318 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 319 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 320 }
CaptainR 0:a5ef6bc3c2e8 321
CaptainR 0:a5ef6bc3c2e8 322 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 323 void PICASO_4DGL :: textInverse(short mode) {
CaptainR 0:a5ef6bc3c2e8 324
CaptainR 0:a5ef6bc3c2e8 325 char command[4]= "";
CaptainR 2:81eaaa491a02 326 command[0] = (TEXT_INVERSE >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 327 command[1] = (TEXT_INVERSE >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 328 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 329 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 330
CaptainR 0:a5ef6bc3c2e8 331 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 332 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 333 }
CaptainR 0:a5ef6bc3c2e8 334
CaptainR 0:a5ef6bc3c2e8 335 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 336 void PICASO_4DGL :: textItalic(short mode) {
CaptainR 0:a5ef6bc3c2e8 337
CaptainR 0:a5ef6bc3c2e8 338 char command[4]= "";
CaptainR 2:81eaaa491a02 339 command[0] = (TEXT_ITALIC >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 340 command[1] = (TEXT_ITALIC >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 341 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 342 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 343
CaptainR 0:a5ef6bc3c2e8 344 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 345 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 346 }
CaptainR 0:a5ef6bc3c2e8 347
CaptainR 0:a5ef6bc3c2e8 348 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 349 void PICASO_4DGL :: textOpacity(short mode) {
CaptainR 0:a5ef6bc3c2e8 350
CaptainR 0:a5ef6bc3c2e8 351 char command[4]= "";
CaptainR 2:81eaaa491a02 352 command[0] = (TEXT_OPACITY >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 353 command[1] = (TEXT_OPACITY >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 354 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 355 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 356
CaptainR 0:a5ef6bc3c2e8 357 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 358 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 359 }
CaptainR 0:a5ef6bc3c2e8 360
CaptainR 0:a5ef6bc3c2e8 361 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 362 // The “Text Y-gap” command is required to be at least 2 for the underline to be visible,
CaptainR 0:a5ef6bc3c2e8 363 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 364 void PICASO_4DGL :: textUnderline(short mode) {
CaptainR 0:a5ef6bc3c2e8 365
CaptainR 0:a5ef6bc3c2e8 366 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 367 if (mode == 1) textYGap(2);
CaptainR 2:81eaaa491a02 368 command[0] = (TEXT_UNDERLINE >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 369 command[1] = (TEXT_UNDERLINE >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 370 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 371 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 372
CaptainR 0:a5ef6bc3c2e8 373 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 374 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 375 }
CaptainR 0:a5ef6bc3c2e8 376
CaptainR 0:a5ef6bc3c2e8 377 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 378 // (bit 5 or) DEC 16 for BOLD
CaptainR 0:a5ef6bc3c2e8 379 // (bit 6 or) DEC 32 for ITALIC
CaptainR 0:a5ef6bc3c2e8 380 // (bit 7 or) DEC 64 for INVERSE
CaptainR 0:a5ef6bc3c2e8 381 // (bit 8 or) DEC 128 for UNDERLINED
CaptainR 0:a5ef6bc3c2e8 382 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 383 void PICASO_4DGL :: textAttributes(short value) {
CaptainR 0:a5ef6bc3c2e8 384
CaptainR 0:a5ef6bc3c2e8 385 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 386 if (CHECK_BIT(value, 7)) textYGap(2);
CaptainR 2:81eaaa491a02 387 command[0] = (TEXT_ATTRIBUTES >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 388 command[1] = (TEXT_ATTRIBUTES >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 389 command[2] = (value >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 390 command[3] = (value >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 391
CaptainR 0:a5ef6bc3c2e8 392 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 393 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 394 }