4D systems Picaso uLCD 32PTU touch display library

Committer:
CaptainR
Date:
Thu Sep 29 19:40:53 2016 +0000
Revision:
27:dbf79d116497
Parent:
12:29f5ad896382
get word and get string

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 12:29f5ad896382 34 currentFont = 0;
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 12:29f5ad896382 39 currentFont = 1;
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 12:29f5ad896382 44 currentFont = 2;
CaptainR 12:29f5ad896382 45 break;
CaptainR 12:29f5ad896382 46 default :
CaptainR 12:29f5ad896382 47 command[2] = (FONT3 >> (8*1)) & 0xff;
CaptainR 12:29f5ad896382 48 command[3] = (FONT3 >> (8*0)) & 0xff;
CaptainR 12:29f5ad896382 49 currentFont = 2;
CaptainR 0:a5ef6bc3c2e8 50 break;
CaptainR 0:a5ef6bc3c2e8 51 }
CaptainR 0:a5ef6bc3c2e8 52
CaptainR 0:a5ef6bc3c2e8 53 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 54 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 55 }
CaptainR 0:a5ef6bc3c2e8 56
CaptainR 0:a5ef6bc3c2e8 57 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 58 void PICASO_4DGL :: textBgColor(short color) { // set text color
CaptainR 0:a5ef6bc3c2e8 59
CaptainR 0:a5ef6bc3c2e8 60 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 61
CaptainR 2:81eaaa491a02 62 command[0] = (TEXT_BG_COLOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 63 command[1] = (TEXT_BG_COLOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 64
CaptainR 2:81eaaa491a02 65 command[2] = (color >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 66 command[3] = (color >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 67
CaptainR 0:a5ef6bc3c2e8 68 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 69 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 70 }
CaptainR 0:a5ef6bc3c2e8 71
CaptainR 0:a5ef6bc3c2e8 72 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 73 void PICASO_4DGL :: putc(char c) { // place char at current cursor position
CaptainR 0:a5ef6bc3c2e8 74
CaptainR 0:a5ef6bc3c2e8 75 char command[3]= "";
CaptainR 0:a5ef6bc3c2e8 76
CaptainR 2:81eaaa491a02 77 command[0] = (PUT_CHAR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 78 command[1] = (PUT_CHAR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 79
CaptainR 0:a5ef6bc3c2e8 80 command[2] = c;
CaptainR 0:a5ef6bc3c2e8 81
CaptainR 0:a5ef6bc3c2e8 82 writeCOMMAND(command, 3);
CaptainR 5:890ddd974624 83 getResponse(1);
CaptainR 0:a5ef6bc3c2e8 84 }
CaptainR 0:a5ef6bc3c2e8 85
CaptainR 0:a5ef6bc3c2e8 86 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 87 void PICASO_4DGL :: puts(char *s) { // place string at current cursor position
CaptainR 0:a5ef6bc3c2e8 88
CaptainR 0:a5ef6bc3c2e8 89 char command[1000]= "";
CaptainR 0:a5ef6bc3c2e8 90
CaptainR 0:a5ef6bc3c2e8 91 int size = strlen(s);
CaptainR 0:a5ef6bc3c2e8 92 int i = 0;
CaptainR 0:a5ef6bc3c2e8 93
CaptainR 2:81eaaa491a02 94 command[0] = (PUT_STRING >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 95 command[1] = (PUT_STRING >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 96
CaptainR 0:a5ef6bc3c2e8 97 for (i=0; i<size; i++) command[2+i] = s[i];
CaptainR 0:a5ef6bc3c2e8 98
CaptainR 0:a5ef6bc3c2e8 99 command[2+size] = 0;
CaptainR 0:a5ef6bc3c2e8 100
CaptainR 0:a5ef6bc3c2e8 101 writeCOMMAND(command, 3 + size);
CaptainR 5:890ddd974624 102 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 103 }
CaptainR 0:a5ef6bc3c2e8 104
CaptainR 3:dcfbceb81fef 105 char PICASO_4DGL :: validateMoveCursor(short line, short col) {
CaptainR 0:a5ef6bc3c2e8 106
CaptainR 0:a5ef6bc3c2e8 107 switch (currentFont) {
CaptainR 0:a5ef6bc3c2e8 108 case 1 :
CaptainR 12:29f5ad896382 109 if (currentMode == 1 || currentMode == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 110 if (line > F1LL) {
CaptainR 12:29f5ad896382 111 pc.printf("\n\r ERROR_MOVE_CURSOR: Line must be less than %i...\n\r", F1LL);
CaptainR 0:a5ef6bc3c2e8 112 return 0;
CaptainR 0:a5ef6bc3c2e8 113 }
CaptainR 0:a5ef6bc3c2e8 114 else if (col > F1LC) {
CaptainR 12:29f5ad896382 115 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F1LC);
CaptainR 0:a5ef6bc3c2e8 116 return 0;
CaptainR 0:a5ef6bc3c2e8 117 }
CaptainR 0:a5ef6bc3c2e8 118 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 119 }
CaptainR 0:a5ef6bc3c2e8 120 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 121 if (line > F1PL) {
CaptainR 12:29f5ad896382 122 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F1PL);
CaptainR 0:a5ef6bc3c2e8 123 return 0;
CaptainR 0:a5ef6bc3c2e8 124 }
CaptainR 0:a5ef6bc3c2e8 125 else if (col > F1PC) {
CaptainR 12:29f5ad896382 126 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F1PC);
CaptainR 0:a5ef6bc3c2e8 127 return 0;
CaptainR 0:a5ef6bc3c2e8 128 }
CaptainR 0:a5ef6bc3c2e8 129 else return 1;
CaptainR 0:a5ef6bc3c2e8 130 }
CaptainR 0:a5ef6bc3c2e8 131 case 2 :
CaptainR 12:29f5ad896382 132 if (currentMode == 1 || currentMode == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 133 if (line > F2LL) {
CaptainR 12:29f5ad896382 134 pc.printf("\n\r ERROR_MOVE_CURSOR: Line must be less than %i...\n\r", F2LL);
CaptainR 0:a5ef6bc3c2e8 135 return 0;
CaptainR 0:a5ef6bc3c2e8 136 }
CaptainR 0:a5ef6bc3c2e8 137 else if (col > F2LC) {
CaptainR 12:29f5ad896382 138 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F2LC);
CaptainR 0:a5ef6bc3c2e8 139 return 0;
CaptainR 0:a5ef6bc3c2e8 140 }
CaptainR 0:a5ef6bc3c2e8 141 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 142 }
CaptainR 0:a5ef6bc3c2e8 143 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 144 if (line > F2PL) {
CaptainR 12:29f5ad896382 145 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F2PL);
CaptainR 0:a5ef6bc3c2e8 146 return 0;
CaptainR 0:a5ef6bc3c2e8 147 }
CaptainR 0:a5ef6bc3c2e8 148 else if (col > F2PC) {
CaptainR 12:29f5ad896382 149 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F2PC);
CaptainR 0:a5ef6bc3c2e8 150 return 0;
CaptainR 0:a5ef6bc3c2e8 151 }
CaptainR 0:a5ef6bc3c2e8 152 else return 1;
CaptainR 0:a5ef6bc3c2e8 153 }
CaptainR 0:a5ef6bc3c2e8 154 case 3 :
CaptainR 12:29f5ad896382 155 if (currentMode == 1 || currentMode == 2) { // landscape or rewersed landscape
CaptainR 0:a5ef6bc3c2e8 156 if (line > F3LL) {
CaptainR 12:29f5ad896382 157 pc.printf("\n\r ERROR_MOVE_CURSOR: Line must be less than %i...\n\r", F3LL);
CaptainR 0:a5ef6bc3c2e8 158 return 0;
CaptainR 0:a5ef6bc3c2e8 159 }
CaptainR 0:a5ef6bc3c2e8 160 else if (col > F3LC) {
CaptainR 12:29f5ad896382 161 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F3LC);
CaptainR 0:a5ef6bc3c2e8 162 return 0;
CaptainR 0:a5ef6bc3c2e8 163 }
CaptainR 0:a5ef6bc3c2e8 164 else return 1; // everything is ok move the cursor
CaptainR 0:a5ef6bc3c2e8 165 }
CaptainR 0:a5ef6bc3c2e8 166 else { // portrait or rewersed portrait
CaptainR 0:a5ef6bc3c2e8 167 if (line > F3PL) {
CaptainR 12:29f5ad896382 168 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F3PL);
CaptainR 0:a5ef6bc3c2e8 169 return 0;
CaptainR 0:a5ef6bc3c2e8 170 }
CaptainR 0:a5ef6bc3c2e8 171 else if (col > F3PC) {
CaptainR 12:29f5ad896382 172 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F3PC);
CaptainR 12:29f5ad896382 173 return 0;
CaptainR 12:29f5ad896382 174 }
CaptainR 12:29f5ad896382 175 else return 1;
CaptainR 12:29f5ad896382 176 }
CaptainR 12:29f5ad896382 177 default :
CaptainR 12:29f5ad896382 178 if (currentMode == 1 || currentMode == 2) { // landscape or rewersed landscape
CaptainR 12:29f5ad896382 179 if (line > F3LL) {
CaptainR 12:29f5ad896382 180 pc.printf("\n\r ERROR_MOVE_CURSOR: Line must be less than %i...\n\r", F3LL);
CaptainR 12:29f5ad896382 181 return 0;
CaptainR 12:29f5ad896382 182 }
CaptainR 12:29f5ad896382 183 else if (col > F3LC) {
CaptainR 12:29f5ad896382 184 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F3LC);
CaptainR 12:29f5ad896382 185 return 0;
CaptainR 12:29f5ad896382 186 }
CaptainR 12:29f5ad896382 187 else return 1; // everything is ok move the cursor
CaptainR 12:29f5ad896382 188 }
CaptainR 12:29f5ad896382 189 else { // portrait or rewersed portrait
CaptainR 12:29f5ad896382 190 if (line > F3PL) {
CaptainR 12:29f5ad896382 191 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F3PL);
CaptainR 12:29f5ad896382 192 return 0;
CaptainR 12:29f5ad896382 193 }
CaptainR 12:29f5ad896382 194 else if (col > F3PC) {
CaptainR 12:29f5ad896382 195 pc.printf("\n\r ERROR_MOVE_CURSOR: Column must be less than %i...\n\r", F3PC);
CaptainR 0:a5ef6bc3c2e8 196 return 0;
CaptainR 0:a5ef6bc3c2e8 197 }
CaptainR 0:a5ef6bc3c2e8 198 else return 1;
CaptainR 0:a5ef6bc3c2e8 199 }
CaptainR 0:a5ef6bc3c2e8 200 }
CaptainR 0:a5ef6bc3c2e8 201 }
CaptainR 0:a5ef6bc3c2e8 202
CaptainR 0:a5ef6bc3c2e8 203 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 204 char PICASO_4DGL :: moveCursor(short line, short col) {
CaptainR 0:a5ef6bc3c2e8 205
CaptainR 0:a5ef6bc3c2e8 206 char command[6]= "";
CaptainR 0:a5ef6bc3c2e8 207
CaptainR 2:81eaaa491a02 208 command[0] = (MOVE_CURSOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 209 command[1] = (MOVE_CURSOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 210
CaptainR 0:a5ef6bc3c2e8 211 if (validateMoveCursor(line, col) == 1) {
CaptainR 12:29f5ad896382 212
CaptainR 0:a5ef6bc3c2e8 213 command[3] = line;
CaptainR 0:a5ef6bc3c2e8 214 command[5] = col;
CaptainR 0:a5ef6bc3c2e8 215 writeCOMMAND(command, 6);
CaptainR 5:890ddd974624 216 getResponse(1);
CaptainR 0:a5ef6bc3c2e8 217 return 1;
CaptainR 0:a5ef6bc3c2e8 218 }
CaptainR 0:a5ef6bc3c2e8 219 else return 0;
CaptainR 0:a5ef6bc3c2e8 220 }
CaptainR 0:a5ef6bc3c2e8 221
CaptainR 0:a5ef6bc3c2e8 222 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 223 void PICASO_4DGL :: textFgColor(short color) {
CaptainR 0:a5ef6bc3c2e8 224
CaptainR 0:a5ef6bc3c2e8 225 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 226
CaptainR 2:81eaaa491a02 227 command[0] = (TEXT_FG_COLOR >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 228 command[1] = (TEXT_FG_COLOR >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 229
CaptainR 2:81eaaa491a02 230 command[2] = (color >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 231 command[3] = (color >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 232
CaptainR 0:a5ef6bc3c2e8 233 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 234 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 235 }
CaptainR 0:a5ef6bc3c2e8 236
CaptainR 0:a5ef6bc3c2e8 237 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 238 int PICASO_4DGL :: textWidth(short multiplier) {
CaptainR 0:a5ef6bc3c2e8 239
CaptainR 0:a5ef6bc3c2e8 240 if (multiplier > 0 && multiplier <= 16) {
CaptainR 0:a5ef6bc3c2e8 241 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 242
CaptainR 2:81eaaa491a02 243 command[0] = (TEXT_WIDTH >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 244 command[1] = (TEXT_WIDTH >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 245
CaptainR 0:a5ef6bc3c2e8 246 command[2] = (multiplier >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 247 command[3] = (multiplier >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 248
CaptainR 0:a5ef6bc3c2e8 249 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 250 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 251 return 1;
CaptainR 0:a5ef6bc3c2e8 252 }
CaptainR 0:a5ef6bc3c2e8 253 else return 0;
CaptainR 0:a5ef6bc3c2e8 254 }
CaptainR 0:a5ef6bc3c2e8 255
CaptainR 0:a5ef6bc3c2e8 256 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 257 int PICASO_4DGL :: textHeight(short multiplier) {
CaptainR 0:a5ef6bc3c2e8 258
CaptainR 0:a5ef6bc3c2e8 259 if (multiplier > 0 && multiplier <= 16) {
CaptainR 0:a5ef6bc3c2e8 260 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 261
CaptainR 2:81eaaa491a02 262 command[0] = (TEXT_HEIGHT >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 263 command[1] = (TEXT_HEIGHT >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 264
CaptainR 0:a5ef6bc3c2e8 265 command[2] = (multiplier >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 266 command[3] = (multiplier >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 267
CaptainR 0:a5ef6bc3c2e8 268 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 269 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 270 return 1;
CaptainR 0:a5ef6bc3c2e8 271 }
CaptainR 0:a5ef6bc3c2e8 272 else return 0;
CaptainR 0:a5ef6bc3c2e8 273 }
CaptainR 0:a5ef6bc3c2e8 274
CaptainR 0:a5ef6bc3c2e8 275 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 276 int PICASO_4DGL :: textXGap(short pCount) {
CaptainR 0:a5ef6bc3c2e8 277
CaptainR 0:a5ef6bc3c2e8 278 if (pCount <= 32) {
CaptainR 0:a5ef6bc3c2e8 279 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 280
CaptainR 2:81eaaa491a02 281 command[0] = (TEXT_X_GAP >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 282 command[1] = (TEXT_X_GAP >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 283
CaptainR 0:a5ef6bc3c2e8 284 command[2] = (pCount >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 285 command[3] = (pCount >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 286
CaptainR 0:a5ef6bc3c2e8 287 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 288 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 289 return 1;
CaptainR 0:a5ef6bc3c2e8 290 }
CaptainR 0:a5ef6bc3c2e8 291 else return 0;
CaptainR 0:a5ef6bc3c2e8 292 }
CaptainR 0:a5ef6bc3c2e8 293
CaptainR 0:a5ef6bc3c2e8 294 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 295 int PICASO_4DGL :: textYGap(short pCount) {
CaptainR 0:a5ef6bc3c2e8 296
CaptainR 0:a5ef6bc3c2e8 297 if (pCount <= 32) {
CaptainR 0:a5ef6bc3c2e8 298 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 299
CaptainR 2:81eaaa491a02 300 command[0] = (TEXT_Y_GAP >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 301 command[1] = (TEXT_Y_GAP >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 302
CaptainR 0:a5ef6bc3c2e8 303 command[2] = (pCount >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 304 command[3] = (pCount >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 305
CaptainR 0:a5ef6bc3c2e8 306 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 307 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 308 return 1;
CaptainR 0:a5ef6bc3c2e8 309 }
CaptainR 0:a5ef6bc3c2e8 310 else return 0;
CaptainR 0:a5ef6bc3c2e8 311 }
CaptainR 0:a5ef6bc3c2e8 312
CaptainR 0:a5ef6bc3c2e8 313 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 314 void PICASO_4DGL :: textBold(short mode) {
CaptainR 0:a5ef6bc3c2e8 315
CaptainR 0:a5ef6bc3c2e8 316 char command[4]= "";
CaptainR 2:81eaaa491a02 317 command[0] = (TEXT_BOLD >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 318 command[1] = (TEXT_BOLD >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 319 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 320 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 321
CaptainR 0:a5ef6bc3c2e8 322 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 323 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 324 }
CaptainR 0:a5ef6bc3c2e8 325
CaptainR 0:a5ef6bc3c2e8 326 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 327 void PICASO_4DGL :: textInverse(short mode) {
CaptainR 0:a5ef6bc3c2e8 328
CaptainR 0:a5ef6bc3c2e8 329 char command[4]= "";
CaptainR 2:81eaaa491a02 330 command[0] = (TEXT_INVERSE >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 331 command[1] = (TEXT_INVERSE >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 332 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 333 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 334
CaptainR 0:a5ef6bc3c2e8 335 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 336 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 337 }
CaptainR 0:a5ef6bc3c2e8 338
CaptainR 0:a5ef6bc3c2e8 339 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 340 void PICASO_4DGL :: textItalic(short mode) {
CaptainR 0:a5ef6bc3c2e8 341
CaptainR 0:a5ef6bc3c2e8 342 char command[4]= "";
CaptainR 2:81eaaa491a02 343 command[0] = (TEXT_ITALIC >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 344 command[1] = (TEXT_ITALIC >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 345 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 346 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 347
CaptainR 0:a5ef6bc3c2e8 348 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 349 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 350 }
CaptainR 0:a5ef6bc3c2e8 351
CaptainR 0:a5ef6bc3c2e8 352 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 353 void PICASO_4DGL :: textOpacity(short mode) {
CaptainR 0:a5ef6bc3c2e8 354
CaptainR 0:a5ef6bc3c2e8 355 char command[4]= "";
CaptainR 2:81eaaa491a02 356 command[0] = (TEXT_OPACITY >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 357 command[1] = (TEXT_OPACITY >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 358 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 359 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 360
CaptainR 0:a5ef6bc3c2e8 361 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 362 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 363 }
CaptainR 0:a5ef6bc3c2e8 364
CaptainR 0:a5ef6bc3c2e8 365 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 366 // The “Text Y-gap” command is required to be at least 2 for the underline to be visible,
CaptainR 0:a5ef6bc3c2e8 367 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 368 void PICASO_4DGL :: textUnderline(short mode) {
CaptainR 0:a5ef6bc3c2e8 369
CaptainR 0:a5ef6bc3c2e8 370 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 371 if (mode == 1) textYGap(2);
CaptainR 2:81eaaa491a02 372 command[0] = (TEXT_UNDERLINE >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 373 command[1] = (TEXT_UNDERLINE >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 374 command[2] = (mode >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 375 command[3] = (mode >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 376
CaptainR 0:a5ef6bc3c2e8 377 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 378 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 379 }
CaptainR 0:a5ef6bc3c2e8 380
CaptainR 0:a5ef6bc3c2e8 381 //****************************************************************************************************
CaptainR 0:a5ef6bc3c2e8 382 // (bit 5 or) DEC 16 for BOLD
CaptainR 0:a5ef6bc3c2e8 383 // (bit 6 or) DEC 32 for ITALIC
CaptainR 0:a5ef6bc3c2e8 384 // (bit 7 or) DEC 64 for INVERSE
CaptainR 0:a5ef6bc3c2e8 385 // (bit 8 or) DEC 128 for UNDERLINED
CaptainR 0:a5ef6bc3c2e8 386 //****************************************************************************************************
CaptainR 3:dcfbceb81fef 387 void PICASO_4DGL :: textAttributes(short value) {
CaptainR 0:a5ef6bc3c2e8 388
CaptainR 0:a5ef6bc3c2e8 389 char command[4]= "";
CaptainR 0:a5ef6bc3c2e8 390 if (CHECK_BIT(value, 7)) textYGap(2);
CaptainR 2:81eaaa491a02 391 command[0] = (TEXT_ATTRIBUTES >> (8*1)) & 0xff;
CaptainR 2:81eaaa491a02 392 command[1] = (TEXT_ATTRIBUTES >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 393 command[2] = (value >> (8*1)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 394 command[3] = (value >> (8*0)) & 0xff;
CaptainR 0:a5ef6bc3c2e8 395
CaptainR 0:a5ef6bc3c2e8 396 writeCOMMAND(command, 4);
CaptainR 5:890ddd974624 397 getResponse(3);
CaptainR 0:a5ef6bc3c2e8 398 }