Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Picaso_4DGL-32PTU_Response.cpp@20:88e137b9ea46, 2016-09-26 (annotated)
- 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?
| User | Revision | Line number | New 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 |