Rihards Balass / 4DGL-mbed-32PTU
Committer:
CaptainR
Date:
Mon Sep 26 10:51:02 2016 +0000
Revision:
20:88e137b9ea46
Parent:
19:a259bc128867
Child:
21:ea68a8a3cea4
started on file system

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CaptainR 17:5bf7947c3c19 1 //
CaptainR 17:5bf7947c3c19 2 // Picaso_4DGL-32PTU is a class to drive 4D Systems TFT touch screens with PICASO processor
CaptainR 17:5bf7947c3c19 3 // Tested with NUCLEO L152RE development board
CaptainR 17:5bf7947c3c19 4 // Copyright (C) <2016> Rihards Balass <rihards.balass@gmail.com>
CaptainR 17:5bf7947c3c19 5 //
CaptainR 17:5bf7947c3c19 6 // Picaso_4DGL-32PTU is free software: you can redistribute it and/or modify
CaptainR 17:5bf7947c3c19 7 // it under the terms of the GNU General Public License as published by
CaptainR 17:5bf7947c3c19 8 // the Free Software Foundation, either version 3 of the License, or
CaptainR 17:5bf7947c3c19 9 // (at your option) any later version.
CaptainR 17:5bf7947c3c19 10 //
CaptainR 17:5bf7947c3c19 11 // Picaso_4DGL-32PTU is distributed in the hope that it will be useful,
CaptainR 17:5bf7947c3c19 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
CaptainR 17:5bf7947c3c19 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
CaptainR 17:5bf7947c3c19 14 // GNU General Public License for more details.
CaptainR 17:5bf7947c3c19 15 //
CaptainR 17:5bf7947c3c19 16 // You can see GNU General Public License at <http://www.gnu.org/licenses/>.
CaptainR 17:5bf7947c3c19 17 //
CaptainR 17:5bf7947c3c19 18
CaptainR 17:5bf7947c3c19 19 #include "mbed.h"
CaptainR 17:5bf7947c3c19 20 #include "Picaso_4DGL-32PTU.h"
CaptainR 17:5bf7947c3c19 21
CaptainR 17:5bf7947c3c19 22
CaptainR 17:5bf7947c3c19 23 //**************************************************************************
CaptainR 17:5bf7947c3c19 24 bool PICASO_4DGL :: getResponse(int count) {
CaptainR 17:5bf7947c3c19 25
CaptainR 17:5bf7947c3c19 26 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 27 pc.printf("\n\r DEBUG: Wait for answer...");
CaptainR 17:5bf7947c3c19 28 #endif
CaptainR 17:5bf7947c3c19 29 //pc.printf("\n\r count = %i, index = %i", count, index);
CaptainR 17:5bf7947c3c19 30 while (index < count) wait_ms(100); // wait for screen answer
CaptainR 17:5bf7947c3c19 31
CaptainR 17:5bf7947c3c19 32 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 33 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 17:5bf7947c3c19 34 for (int i = 0; i < index; i++) {
CaptainR 17:5bf7947c3c19 35 pc.printf("%02X ", rxBuf[i]);
CaptainR 17:5bf7947c3c19 36 }
CaptainR 17:5bf7947c3c19 37 pc.printf("\n\r");
CaptainR 17:5bf7947c3c19 38 #endif
CaptainR 17:5bf7947c3c19 39 if (rxBuf[0] == 0x06) {
CaptainR 17:5bf7947c3c19 40 index = 0; // set buffer index to 0
CaptainR 17:5bf7947c3c19 41 return true;
CaptainR 17:5bf7947c3c19 42 }
CaptainR 17:5bf7947c3c19 43 else {
CaptainR 17:5bf7947c3c19 44 index = 0;
CaptainR 17:5bf7947c3c19 45 return false;
CaptainR 17:5bf7947c3c19 46 }
CaptainR 17:5bf7947c3c19 47 }
CaptainR 17:5bf7947c3c19 48
CaptainR 17:5bf7947c3c19 49 //**************************************************************************
CaptainR 17:5bf7947c3c19 50 bool PICASO_4DGL :: calculateOrbitResponse() {
CaptainR 17:5bf7947c3c19 51
CaptainR 17:5bf7947c3c19 52 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 53 pc.printf("\n\r DEBUG: Wait for answer...");
CaptainR 17:5bf7947c3c19 54 #endif
CaptainR 17:5bf7947c3c19 55 while (index < 5) wait_ms(100); // wait for screen answer
CaptainR 17:5bf7947c3c19 56
CaptainR 17:5bf7947c3c19 57 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 58 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 17:5bf7947c3c19 59 for (int i = 0; i < index; i++) {
CaptainR 17:5bf7947c3c19 60 pc.printf("%02X ", rxBuf[i]);
CaptainR 17:5bf7947c3c19 61 }
CaptainR 17:5bf7947c3c19 62 pc.printf("\n\r");
CaptainR 17:5bf7947c3c19 63 #endif
CaptainR 17:5bf7947c3c19 64 Xdest = rxBuf[1] << 8 | rxBuf[2];
CaptainR 17:5bf7947c3c19 65 Ydest = rxBuf[3] << 8 | rxBuf[4];
CaptainR 17:5bf7947c3c19 66 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 67 pc.printf("\n\r DEBUG: New coordiantes = %i x %i\n\r", Xdest, Ydest);
CaptainR 17:5bf7947c3c19 68 #endif
CaptainR 17:5bf7947c3c19 69 index = 0; // set buffer index to 0
CaptainR 17:5bf7947c3c19 70 return true;
CaptainR 17:5bf7947c3c19 71 }
CaptainR 17:5bf7947c3c19 72
CaptainR 17:5bf7947c3c19 73
CaptainR 17:5bf7947c3c19 74 //**************************************************************************
CaptainR 17:5bf7947c3c19 75 short PICASO_4DGL :: getGraphicsResponse() {
CaptainR 17:5bf7947c3c19 76
CaptainR 17:5bf7947c3c19 77 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 78 pc.printf("\n\r DEBUG: Wait for answer...");
CaptainR 17:5bf7947c3c19 79 #endif
CaptainR 17:5bf7947c3c19 80 while (index < 3) wait_ms(100); // wait for screen answer
CaptainR 17:5bf7947c3c19 81
CaptainR 17:5bf7947c3c19 82 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 83 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 17:5bf7947c3c19 84 for (int i = 0; i < index; i++) {
CaptainR 17:5bf7947c3c19 85 pc.printf("%02X ", rxBuf[i]);
CaptainR 17:5bf7947c3c19 86 }
CaptainR 17:5bf7947c3c19 87 pc.printf("\n\r");
CaptainR 17:5bf7947c3c19 88 #endif
CaptainR 17:5bf7947c3c19 89 short answer = rxBuf[1] << 8 | rxBuf[2]; // set response variable
CaptainR 17:5bf7947c3c19 90 index = 0; // set buffer index to 0
CaptainR 17:5bf7947c3c19 91 return answer;
CaptainR 17:5bf7947c3c19 92 }
CaptainR 17:5bf7947c3c19 93
CaptainR 17:5bf7947c3c19 94 //**************************************************************************
CaptainR 17:5bf7947c3c19 95 short PICASO_4DGL :: mediaInitResponse() {
CaptainR 17:5bf7947c3c19 96
CaptainR 17:5bf7947c3c19 97 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 98 pc.printf("\n\r DEBUG: Wait for answer...");
CaptainR 17:5bf7947c3c19 99 #endif
CaptainR 17:5bf7947c3c19 100 while (index < 3) wait_ms(100); // wait for screen answer
CaptainR 17:5bf7947c3c19 101
CaptainR 17:5bf7947c3c19 102 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 103 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 17:5bf7947c3c19 104 for (int i = 0; i < index; i++) {
CaptainR 17:5bf7947c3c19 105 pc.printf("%02X ", rxBuf[i]);
CaptainR 17:5bf7947c3c19 106 }
CaptainR 17:5bf7947c3c19 107 pc.printf("\n\r");
CaptainR 17:5bf7947c3c19 108 #endif
CaptainR 17:5bf7947c3c19 109 short answer = rxBuf[1] << 8 | rxBuf[2];
CaptainR 17:5bf7947c3c19 110 index = 0;
CaptainR 17:5bf7947c3c19 111 return answer;
CaptainR 17:5bf7947c3c19 112 }
CaptainR 17:5bf7947c3c19 113
CaptainR 17:5bf7947c3c19 114 //**************************************************************************
CaptainR 17:5bf7947c3c19 115 bool PICASO_4DGL :: readSectorResponse(int count) {
CaptainR 17:5bf7947c3c19 116
CaptainR 17:5bf7947c3c19 117 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 118 pc.printf("\n\r DEBUG: Wait for answer");
CaptainR 17:5bf7947c3c19 119 #endif
CaptainR 17:5bf7947c3c19 120
CaptainR 17:5bf7947c3c19 121 while (index < count) wait_ms(100); // wait for screen answer
CaptainR 17:5bf7947c3c19 122
CaptainR 17:5bf7947c3c19 123 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 124 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 17:5bf7947c3c19 125 pc.printf("%02X %02X %02X\n\r", rxBuf[0], rxBuf[1], rxBuf[2]);
CaptainR 17:5bf7947c3c19 126 #endif
CaptainR 17:5bf7947c3c19 127
CaptainR 17:5bf7947c3c19 128 int j = 3;
CaptainR 17:5bf7947c3c19 129 for (int i = 0; i < BUFFER_SIZE; i++) {
CaptainR 17:5bf7947c3c19 130 buffer[i] = rxBuf[j];
CaptainR 17:5bf7947c3c19 131 j++;
CaptainR 17:5bf7947c3c19 132 }
CaptainR 17:5bf7947c3c19 133 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 134 pc.printf("\n\r DEBUG: Buffer = ");
CaptainR 17:5bf7947c3c19 135 for (int i = 0; i < BUFFER_SIZE; i++) {
CaptainR 17:5bf7947c3c19 136 pc.printf("%02X ", buffer[i]);
CaptainR 17:5bf7947c3c19 137 }
CaptainR 17:5bf7947c3c19 138 pc.printf("\n\r");
CaptainR 17:5bf7947c3c19 139 #endif
CaptainR 17:5bf7947c3c19 140 if (rxBuf[2] == 1) {
CaptainR 17:5bf7947c3c19 141 index = 0; // set buffer index to 0
CaptainR 17:5bf7947c3c19 142 return true;
CaptainR 17:5bf7947c3c19 143 }
CaptainR 17:5bf7947c3c19 144 else {
CaptainR 17:5bf7947c3c19 145 index = 0;
CaptainR 17:5bf7947c3c19 146 return false;
CaptainR 17:5bf7947c3c19 147 }
CaptainR 17:5bf7947c3c19 148 }
CaptainR 17:5bf7947c3c19 149
CaptainR 17:5bf7947c3c19 150 //**************************************************************************
CaptainR 17:5bf7947c3c19 151 bool PICASO_4DGL :: writeSectorResponse(int count) {
CaptainR 17:5bf7947c3c19 152
CaptainR 17:5bf7947c3c19 153 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 154 pc.printf("\n\r DEBUG: Wait for answer");
CaptainR 17:5bf7947c3c19 155 #endif
CaptainR 17:5bf7947c3c19 156 while (index < count) wait_ms(100); // wait for screen answer
CaptainR 17:5bf7947c3c19 157
CaptainR 17:5bf7947c3c19 158 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 159 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 17:5bf7947c3c19 160 pc.printf("%02X %02X %02X\n\r", rxBuf[0], rxBuf[1], rxBuf[2]);
CaptainR 17:5bf7947c3c19 161 #endif
CaptainR 17:5bf7947c3c19 162
CaptainR 17:5bf7947c3c19 163 if (rxBuf[2] == 1) {
CaptainR 17:5bf7947c3c19 164 index = 0; // set buffer index to 0
CaptainR 17:5bf7947c3c19 165 return true;
CaptainR 17:5bf7947c3c19 166 }
CaptainR 17:5bf7947c3c19 167 else {
CaptainR 17:5bf7947c3c19 168 index = 0;
CaptainR 17:5bf7947c3c19 169 return false;
CaptainR 17:5bf7947c3c19 170 }
CaptainR 17:5bf7947c3c19 171 }
CaptainR 17:5bf7947c3c19 172
CaptainR 17:5bf7947c3c19 173 //**************************************************************************
CaptainR 18:829f3e2c064c 174 bool PICASO_4DGL :: readResponse() {
CaptainR 17:5bf7947c3c19 175
CaptainR 17:5bf7947c3c19 176 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 177 pc.printf("\n\r DEBUG: Wait for answer");
CaptainR 17:5bf7947c3c19 178 #endif
CaptainR 17:5bf7947c3c19 179
CaptainR 18:829f3e2c064c 180 while (index < 3) wait_ms(100); // wait for screen answer
CaptainR 17:5bf7947c3c19 181
CaptainR 17:5bf7947c3c19 182 #if DEBUGMODE
CaptainR 17:5bf7947c3c19 183 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 17:5bf7947c3c19 184 pc.printf("%02X %02X %02X\n\r", rxBuf[0], rxBuf[1], rxBuf[2]);
CaptainR 17:5bf7947c3c19 185 #endif
CaptainR 17:5bf7947c3c19 186
CaptainR 18:829f3e2c064c 187 if (rxBuf[0] == ACK) {
CaptainR 17:5bf7947c3c19 188 index = 0; // set buffer index to 0
CaptainR 17:5bf7947c3c19 189 return true;
CaptainR 17:5bf7947c3c19 190 }
CaptainR 17:5bf7947c3c19 191 else {
CaptainR 17:5bf7947c3c19 192 index = 0;
CaptainR 17:5bf7947c3c19 193 return false;
CaptainR 17:5bf7947c3c19 194 }
CaptainR 17:5bf7947c3c19 195 }
CaptainR 19:a259bc128867 196
CaptainR 19:a259bc128867 197 //**************************************************************************
CaptainR 19:a259bc128867 198 bool PICASO_4DGL :: writeByteResponse() {
CaptainR 19:a259bc128867 199
CaptainR 19:a259bc128867 200 #if DEBUGMODE
CaptainR 19:a259bc128867 201 pc.printf("\n\r DEBUG: Wait for answer");
CaptainR 19:a259bc128867 202 #endif
CaptainR 19:a259bc128867 203
CaptainR 19:a259bc128867 204 while (index < 3) wait_ms(100); // wait for screen answer
CaptainR 19:a259bc128867 205
CaptainR 19:a259bc128867 206 #if DEBUGMODE
CaptainR 19:a259bc128867 207 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 19:a259bc128867 208 pc.printf("%02X %02X %02X\n\r", rxBuf[0], rxBuf[1], rxBuf[2]);
CaptainR 19:a259bc128867 209 #endif
CaptainR 19:a259bc128867 210
CaptainR 19:a259bc128867 211 if (rxBuf[2] > 0) {
CaptainR 19:a259bc128867 212 index = 0; // set buffer index to 0
CaptainR 19:a259bc128867 213 return true;
CaptainR 19:a259bc128867 214 }
CaptainR 19:a259bc128867 215 else {
CaptainR 19:a259bc128867 216 index = 0;
CaptainR 19:a259bc128867 217 return false;
CaptainR 19:a259bc128867 218 }
CaptainR 19:a259bc128867 219 }
CaptainR 20:88e137b9ea46 220
CaptainR 20:88e137b9ea46 221 //**************************************************************************
CaptainR 20:88e137b9ea46 222 bool PICASO_4DGL :: fileMountResponse() {
CaptainR 20:88e137b9ea46 223
CaptainR 20:88e137b9ea46 224 #if DEBUGMODE
CaptainR 20:88e137b9ea46 225 pc.printf("\n\r DEBUG: Wait for answer");
CaptainR 20:88e137b9ea46 226 #endif
CaptainR 20:88e137b9ea46 227
CaptainR 20:88e137b9ea46 228 while (index < 3) wait_ms(100); // wait for screen answer
CaptainR 20:88e137b9ea46 229
CaptainR 20:88e137b9ea46 230 #if DEBUGMODE
CaptainR 20:88e137b9ea46 231 pc.printf("\n\r DEBUG: Answer = ");
CaptainR 20:88e137b9ea46 232 pc.printf("%02X %02X %02X\n\r", rxBuf[0], rxBuf[1], rxBuf[2]);
CaptainR 20:88e137b9ea46 233 #endif
CaptainR 20:88e137b9ea46 234
CaptainR 20:88e137b9ea46 235 if (rxBuf[2] > 0) {
CaptainR 20:88e137b9ea46 236 index = 0; // set buffer index to 0
CaptainR 20:88e137b9ea46 237 return true;
CaptainR 20:88e137b9ea46 238 }
CaptainR 20:88e137b9ea46 239 else {
CaptainR 20:88e137b9ea46 240 index = 0;
CaptainR 20:88e137b9ea46 241 return false;
CaptainR 20:88e137b9ea46 242 }
CaptainR 20:88e137b9ea46 243 }
CaptainR 20:88e137b9ea46 244