Library for 3.2'' uLcd Picaso Display4D system Picaso Serial Environment Command Set web: http://www.4dsystems.com.au/product/20/67/Processors_Graphics/PICASO/
PicasoSerial.cpp@1:a74e42cf52b2, 2015-04-05 (annotated)
- Committer:
- adelino
- Date:
- Sun Apr 05 13:54:48 2015 +0000
- Revision:
- 1:a74e42cf52b2
- Parent:
- 0:65fd8b1cbf86
PicasoLib version 2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adelino | 0:65fd8b1cbf86 | 1 | #include "PicasoSerial.h" |
adelino | 0:65fd8b1cbf86 | 2 | |
adelino | 0:65fd8b1cbf86 | 3 | PicasoSerial::PicasoSerial(PinName _pinTx,PinName _pinRx,PinName _pinReset):Serial(_pinTx,_pinRx),myPinReset(_pinReset) |
adelino | 0:65fd8b1cbf86 | 4 | { |
adelino | 0:65fd8b1cbf86 | 5 | this->baud(9600); |
adelino | 0:65fd8b1cbf86 | 6 | myPinReset=1; |
adelino | 0:65fd8b1cbf86 | 7 | } |
adelino | 0:65fd8b1cbf86 | 8 | //-------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 9 | // |
adelino | 0:65fd8b1cbf86 | 10 | //-------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 11 | // fonction Touch Screen |
adelino | 0:65fd8b1cbf86 | 12 | //-------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 13 | void PicasoSerial::touch_set(UINT16 mode) |
adelino | 0:65fd8b1cbf86 | 14 | { |
adelino | 0:65fd8b1cbf86 | 15 | unsigned char zecom[4] = ""; |
adelino | 0:65fd8b1cbf86 | 16 | |
adelino | 0:65fd8b1cbf86 | 17 | zecom[0] = (CMD_TOUCH_SET >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 18 | zecom[1] = CMD_TOUCH_SET & 0xFF; |
adelino | 0:65fd8b1cbf86 | 19 | |
adelino | 0:65fd8b1cbf86 | 20 | zecom[2] = (mode >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 21 | zecom[3] = mode & 0xFF; |
adelino | 0:65fd8b1cbf86 | 22 | |
adelino | 0:65fd8b1cbf86 | 23 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 24 | |
adelino | 0:65fd8b1cbf86 | 25 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 26 | } |
adelino | 0:65fd8b1cbf86 | 27 | //------------------------------------------------ |
adelino | 0:65fd8b1cbf86 | 28 | void PicasoSerial::touch_detect_region(UINT16 x1, UINT16 y1, UINT16 x2, UINT16 y2) |
adelino | 0:65fd8b1cbf86 | 29 | { |
adelino | 0:65fd8b1cbf86 | 30 | unsigned char zecom[10] = ""; |
adelino | 0:65fd8b1cbf86 | 31 | |
adelino | 0:65fd8b1cbf86 | 32 | zecom[0] = (CMD_TOUCH_DETECT_REGION >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 33 | zecom[1] = CMD_TOUCH_DETECT_REGION & 0xFF; |
adelino | 0:65fd8b1cbf86 | 34 | |
adelino | 0:65fd8b1cbf86 | 35 | zecom[2] = (x1 >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 36 | zecom[3] = x1 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 37 | |
adelino | 0:65fd8b1cbf86 | 38 | zecom[4] = (y1 >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 39 | zecom[5] = y1 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 40 | |
adelino | 0:65fd8b1cbf86 | 41 | zecom[6] = (x2 >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 42 | zecom[7] = x2 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 43 | |
adelino | 0:65fd8b1cbf86 | 44 | zecom[8] = (y2 >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 45 | zecom[9] = y2 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 46 | |
adelino | 0:65fd8b1cbf86 | 47 | put_gfx_Commande(zecom, 10); |
adelino | 0:65fd8b1cbf86 | 48 | |
adelino | 0:65fd8b1cbf86 | 49 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 50 | } |
adelino | 0:65fd8b1cbf86 | 51 | //-------------------------------------- |
adelino | 0:65fd8b1cbf86 | 52 | TouchEvent PicasoSerial::touch_get_status() |
adelino | 0:65fd8b1cbf86 | 53 | { |
adelino | 0:65fd8b1cbf86 | 54 | //0 No touch |
adelino | 0:65fd8b1cbf86 | 55 | //1 press |
adelino | 0:65fd8b1cbf86 | 56 | //2 release |
adelino | 0:65fd8b1cbf86 | 57 | //3 moving |
adelino | 0:65fd8b1cbf86 | 58 | |
adelino | 0:65fd8b1cbf86 | 59 | UINT8 msb = 0; |
adelino | 0:65fd8b1cbf86 | 60 | UINT8 lsb = 0; |
adelino | 0:65fd8b1cbf86 | 61 | |
adelino | 1:a74e42cf52b2 | 62 | // TouchEvent res = EVENT_NO_ACTIVITY; |
adelino | 0:65fd8b1cbf86 | 63 | UINT16 temp=0; |
adelino | 0:65fd8b1cbf86 | 64 | |
adelino | 0:65fd8b1cbf86 | 65 | unsigned char zecom[4] = ""; |
adelino | 0:65fd8b1cbf86 | 66 | |
adelino | 0:65fd8b1cbf86 | 67 | zecom[0] = (CMD_TOUCH_GET >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 68 | zecom[1] = CMD_TOUCH_GET & 0xFF; |
adelino | 0:65fd8b1cbf86 | 69 | |
adelino | 0:65fd8b1cbf86 | 70 | zecom[2] = 0x00; |
adelino | 0:65fd8b1cbf86 | 71 | zecom[3] = 0x00; |
adelino | 0:65fd8b1cbf86 | 72 | |
adelino | 0:65fd8b1cbf86 | 73 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 74 | |
adelino | 0:65fd8b1cbf86 | 75 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 76 | |
adelino | 0:65fd8b1cbf86 | 77 | msb = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 78 | |
adelino | 0:65fd8b1cbf86 | 79 | lsb = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 80 | |
adelino | 0:65fd8b1cbf86 | 81 | temp=(msb << 8) + lsb; |
adelino | 1:a74e42cf52b2 | 82 | |
adelino | 1:a74e42cf52b2 | 83 | switch(temp) { |
adelino | 0:65fd8b1cbf86 | 84 | case 0: |
adelino | 1:a74e42cf52b2 | 85 | return EVENT_NO_ACTIVITY; |
adelino | 1:a74e42cf52b2 | 86 | |
adelino | 1:a74e42cf52b2 | 87 | // |
adelino | 0:65fd8b1cbf86 | 88 | case 1: |
adelino | 1:a74e42cf52b2 | 89 | return EVENT_PRESS; |
adelino | 1:a74e42cf52b2 | 90 | |
adelino | 1:a74e42cf52b2 | 91 | // |
adelino | 0:65fd8b1cbf86 | 92 | case 2: |
adelino | 1:a74e42cf52b2 | 93 | return EVENT_RELEASE; |
adelino | 1:a74e42cf52b2 | 94 | |
adelino | 1:a74e42cf52b2 | 95 | // |
adelino | 0:65fd8b1cbf86 | 96 | case 3: |
adelino | 1:a74e42cf52b2 | 97 | return EVENT_MOVE; |
adelino | 0:65fd8b1cbf86 | 98 | } |
adelino | 0:65fd8b1cbf86 | 99 | |
adelino | 0:65fd8b1cbf86 | 100 | return EVENT_NO_ACTIVITY; |
adelino | 0:65fd8b1cbf86 | 101 | } |
adelino | 0:65fd8b1cbf86 | 102 | //-------------------------------- |
adelino | 0:65fd8b1cbf86 | 103 | UINT16 PicasoSerial::touch_get_x() |
adelino | 0:65fd8b1cbf86 | 104 | { |
adelino | 0:65fd8b1cbf86 | 105 | UINT16 res = 0; |
adelino | 0:65fd8b1cbf86 | 106 | UINT8 lsb = 0; |
adelino | 0:65fd8b1cbf86 | 107 | UINT8 msb = 0; |
adelino | 0:65fd8b1cbf86 | 108 | |
adelino | 0:65fd8b1cbf86 | 109 | unsigned char zecom[4] = ""; |
adelino | 0:65fd8b1cbf86 | 110 | |
adelino | 0:65fd8b1cbf86 | 111 | zecom[0] = (CMD_TOUCH_GET >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 112 | zecom[1] = CMD_TOUCH_GET & 0xFF; |
adelino | 0:65fd8b1cbf86 | 113 | |
adelino | 0:65fd8b1cbf86 | 114 | zecom[2] = 0x00; |
adelino | 0:65fd8b1cbf86 | 115 | zecom[3] = 0x01; |
adelino | 0:65fd8b1cbf86 | 116 | |
adelino | 0:65fd8b1cbf86 | 117 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 118 | |
adelino | 0:65fd8b1cbf86 | 119 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 120 | |
adelino | 0:65fd8b1cbf86 | 121 | msb = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 122 | |
adelino | 0:65fd8b1cbf86 | 123 | lsb = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 124 | |
adelino | 0:65fd8b1cbf86 | 125 | res = (msb << 8) + lsb; |
adelino | 0:65fd8b1cbf86 | 126 | |
adelino | 0:65fd8b1cbf86 | 127 | return res; |
adelino | 0:65fd8b1cbf86 | 128 | } |
adelino | 0:65fd8b1cbf86 | 129 | //-------------------------------- |
adelino | 0:65fd8b1cbf86 | 130 | UINT16 PicasoSerial::touch_get_y() |
adelino | 0:65fd8b1cbf86 | 131 | { |
adelino | 0:65fd8b1cbf86 | 132 | UINT16 res = 0; |
adelino | 0:65fd8b1cbf86 | 133 | UINT8 lsb = 0; |
adelino | 0:65fd8b1cbf86 | 134 | UINT8 msb = 0; |
adelino | 0:65fd8b1cbf86 | 135 | |
adelino | 0:65fd8b1cbf86 | 136 | unsigned char zecom[4] = ""; |
adelino | 0:65fd8b1cbf86 | 137 | |
adelino | 0:65fd8b1cbf86 | 138 | zecom[0] = (CMD_TOUCH_GET >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 139 | zecom[1] = CMD_TOUCH_GET & 0xFF; |
adelino | 0:65fd8b1cbf86 | 140 | |
adelino | 0:65fd8b1cbf86 | 141 | zecom[2] = 0x00; |
adelino | 0:65fd8b1cbf86 | 142 | zecom[3] = 0x02; |
adelino | 0:65fd8b1cbf86 | 143 | |
adelino | 0:65fd8b1cbf86 | 144 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 145 | |
adelino | 0:65fd8b1cbf86 | 146 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 147 | |
adelino | 0:65fd8b1cbf86 | 148 | msb = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 149 | |
adelino | 0:65fd8b1cbf86 | 150 | lsb = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 151 | |
adelino | 0:65fd8b1cbf86 | 152 | res = (msb << 8) + lsb; |
adelino | 0:65fd8b1cbf86 | 153 | |
adelino | 0:65fd8b1cbf86 | 154 | return res; |
adelino | 0:65fd8b1cbf86 | 155 | } |
adelino | 0:65fd8b1cbf86 | 156 | //----------------------------- |
adelino | 0:65fd8b1cbf86 | 157 | void PicasoSerial::gfx_reset() |
adelino | 0:65fd8b1cbf86 | 158 | { |
adelino | 0:65fd8b1cbf86 | 159 | // reSet uLCD |
adelino | 0:65fd8b1cbf86 | 160 | //***************************** |
adelino | 0:65fd8b1cbf86 | 161 | myPinReset = 0; |
adelino | 0:65fd8b1cbf86 | 162 | |
adelino | 0:65fd8b1cbf86 | 163 | wait_us(10); |
adelino | 0:65fd8b1cbf86 | 164 | |
adelino | 0:65fd8b1cbf86 | 165 | myPinReset = 1; |
adelino | 0:65fd8b1cbf86 | 166 | //****************************** |
adelino | 0:65fd8b1cbf86 | 167 | // fin reset |
adelino | 0:65fd8b1cbf86 | 168 | |
adelino | 0:65fd8b1cbf86 | 169 | wait(5); //wait 5s after reset |
adelino | 0:65fd8b1cbf86 | 170 | } |
adelino | 0:65fd8b1cbf86 | 171 | //------------------------------------- |
adelino | 0:65fd8b1cbf86 | 172 | void PicasoSerial::setup(int baud) |
adelino | 0:65fd8b1cbf86 | 173 | { |
adelino | 0:65fd8b1cbf86 | 174 | gfx_reset(); |
adelino | 0:65fd8b1cbf86 | 175 | |
adelino | 1:a74e42cf52b2 | 176 | gfx_set_BackGroundColor(WHITE); |
adelino | 0:65fd8b1cbf86 | 177 | |
adelino | 0:65fd8b1cbf86 | 178 | touch_detect_region(0, 0, 240, 320); |
adelino | 0:65fd8b1cbf86 | 179 | // |
adelino | 0:65fd8b1cbf86 | 180 | touch_set(0x0000); |
adelino | 0:65fd8b1cbf86 | 181 | |
adelino | 0:65fd8b1cbf86 | 182 | gfx_clearScreen(); |
adelino | 0:65fd8b1cbf86 | 183 | |
adelino | 0:65fd8b1cbf86 | 184 | gfx_set_UartSpeed(baud); |
adelino | 0:65fd8b1cbf86 | 185 | } |
adelino | 0:65fd8b1cbf86 | 186 | //------------------------------- |
adelino | 0:65fd8b1cbf86 | 187 | void PicasoSerial::wait_gfx_ack() |
adelino | 0:65fd8b1cbf86 | 188 | { |
adelino | 0:65fd8b1cbf86 | 189 | UINT8 rep = GFX_NAK; |
adelino | 0:65fd8b1cbf86 | 190 | |
adelino | 0:65fd8b1cbf86 | 191 | do { |
adelino | 0:65fd8b1cbf86 | 192 | rep = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 193 | } while (rep != GFX_ACK); |
adelino | 0:65fd8b1cbf86 | 194 | } |
adelino | 0:65fd8b1cbf86 | 195 | //------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 196 | void PicasoSerial::put_gfx_char(unsigned char data) |
adelino | 0:65fd8b1cbf86 | 197 | { |
adelino | 1:a74e42cf52b2 | 198 | |
adelino | 0:65fd8b1cbf86 | 199 | while (this->writeable()==0); // buffer plein ? |
adelino | 0:65fd8b1cbf86 | 200 | |
adelino | 0:65fd8b1cbf86 | 201 | this->putc(data); |
adelino | 0:65fd8b1cbf86 | 202 | } |
adelino | 0:65fd8b1cbf86 | 203 | //------------------------------------ |
adelino | 0:65fd8b1cbf86 | 204 | UINT8 PicasoSerial::get_gfx_char(void) |
adelino | 0:65fd8b1cbf86 | 205 | { |
adelino | 0:65fd8b1cbf86 | 206 | while (this->readable()==0); // attendre data |
adelino | 0:65fd8b1cbf86 | 207 | |
adelino | 0:65fd8b1cbf86 | 208 | //return mySerial.getc(); |
adelino | 1:a74e42cf52b2 | 209 | |
adelino | 0:65fd8b1cbf86 | 210 | return this->getc(); |
adelino | 0:65fd8b1cbf86 | 211 | } |
adelino | 0:65fd8b1cbf86 | 212 | //---------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 213 | void PicasoSerial::put_gfx_Commande(unsigned char* commande, int nombre) |
adelino | 0:65fd8b1cbf86 | 214 | { |
adelino | 0:65fd8b1cbf86 | 215 | int i = 0; |
adelino | 0:65fd8b1cbf86 | 216 | |
adelino | 0:65fd8b1cbf86 | 217 | for (i = 0; i < nombre; i++) { |
adelino | 0:65fd8b1cbf86 | 218 | put_gfx_char(commande[i]); |
adelino | 0:65fd8b1cbf86 | 219 | } |
adelino | 0:65fd8b1cbf86 | 220 | } |
adelino | 0:65fd8b1cbf86 | 221 | //-------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 222 | void PicasoSerial::gfx_set_UartSpeed(int speed) |
adelino | 0:65fd8b1cbf86 | 223 | { |
adelino | 0:65fd8b1cbf86 | 224 | int mbaud = 0; |
adelino | 0:65fd8b1cbf86 | 225 | |
adelino | 0:65fd8b1cbf86 | 226 | unsigned char zecom[4] = ""; |
adelino | 0:65fd8b1cbf86 | 227 | |
adelino | 0:65fd8b1cbf86 | 228 | zecom[0] = (CMD_BAUD_RATE >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 229 | zecom[1] = CMD_BAUD_RATE & 0xFF; |
adelino | 0:65fd8b1cbf86 | 230 | |
adelino | 0:65fd8b1cbf86 | 231 | switch (speed) { |
adelino | 0:65fd8b1cbf86 | 232 | // |
adelino | 0:65fd8b1cbf86 | 233 | case 9600: |
adelino | 0:65fd8b1cbf86 | 234 | zecom[2] = (GFX_BAUD_9600 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 235 | zecom[3] = GFX_BAUD_9600 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 236 | mbaud = speed; |
adelino | 0:65fd8b1cbf86 | 237 | |
adelino | 0:65fd8b1cbf86 | 238 | break; |
adelino | 0:65fd8b1cbf86 | 239 | // |
adelino | 0:65fd8b1cbf86 | 240 | case 19200: |
adelino | 0:65fd8b1cbf86 | 241 | zecom[2] = (GFX_BAUD_19200 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 242 | zecom[3] = GFX_BAUD_19200 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 243 | mbaud = speed; |
adelino | 0:65fd8b1cbf86 | 244 | |
adelino | 0:65fd8b1cbf86 | 245 | break; |
adelino | 0:65fd8b1cbf86 | 246 | // |
adelino | 0:65fd8b1cbf86 | 247 | case 56000: |
adelino | 0:65fd8b1cbf86 | 248 | zecom[2] = (GFX_BAUD_56000 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 249 | zecom[3] = GFX_BAUD_56000 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 250 | mbaud = speed; |
adelino | 0:65fd8b1cbf86 | 251 | |
adelino | 0:65fd8b1cbf86 | 252 | break; |
adelino | 0:65fd8b1cbf86 | 253 | // |
adelino | 0:65fd8b1cbf86 | 254 | case 115200: |
adelino | 0:65fd8b1cbf86 | 255 | zecom[2] = (GFX_BAUD_115200 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 256 | zecom[3] = GFX_BAUD_115200 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 257 | mbaud = speed; |
adelino | 0:65fd8b1cbf86 | 258 | |
adelino | 0:65fd8b1cbf86 | 259 | break; |
adelino | 0:65fd8b1cbf86 | 260 | |
adelino | 0:65fd8b1cbf86 | 261 | // |
adelino | 1:a74e42cf52b2 | 262 | case 128000: |
adelino | 1:a74e42cf52b2 | 263 | zecom[2] = (GFX_BAUD_128000 >> 8) & 0xFF; |
adelino | 1:a74e42cf52b2 | 264 | zecom[3] = GFX_BAUD_128000 & 0xFF; |
adelino | 1:a74e42cf52b2 | 265 | mbaud = speed; |
adelino | 1:a74e42cf52b2 | 266 | |
adelino | 1:a74e42cf52b2 | 267 | break; |
adelino | 1:a74e42cf52b2 | 268 | // |
adelino | 1:a74e42cf52b2 | 269 | case 256000: |
adelino | 1:a74e42cf52b2 | 270 | zecom[2] = (GFX_BAUD_256000 >> 8) & 0xFF; |
adelino | 1:a74e42cf52b2 | 271 | zecom[3] = GFX_BAUD_256000 & 0xFF; |
adelino | 1:a74e42cf52b2 | 272 | mbaud = speed; |
adelino | 1:a74e42cf52b2 | 273 | break; |
adelino | 1:a74e42cf52b2 | 274 | |
adelino | 1:a74e42cf52b2 | 275 | |
adelino | 0:65fd8b1cbf86 | 276 | default: |
adelino | 0:65fd8b1cbf86 | 277 | zecom[2] = (GFX_BAUD_9600 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 278 | zecom[3] = GFX_BAUD_9600 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 279 | mbaud = 9600; |
adelino | 0:65fd8b1cbf86 | 280 | |
adelino | 0:65fd8b1cbf86 | 281 | break; |
adelino | 0:65fd8b1cbf86 | 282 | } |
adelino | 0:65fd8b1cbf86 | 283 | // |
adelino | 0:65fd8b1cbf86 | 284 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 285 | |
adelino | 0:65fd8b1cbf86 | 286 | wait_ms(50); |
adelino | 0:65fd8b1cbf86 | 287 | this->baud(mbaud); |
adelino | 0:65fd8b1cbf86 | 288 | wait_ms(100); |
adelino | 0:65fd8b1cbf86 | 289 | |
adelino | 0:65fd8b1cbf86 | 290 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 291 | } |
adelino | 0:65fd8b1cbf86 | 292 | //---------------------------------- |
adelino | 0:65fd8b1cbf86 | 293 | void PicasoSerial::gfx_clearScreen() |
adelino | 0:65fd8b1cbf86 | 294 | { |
adelino | 0:65fd8b1cbf86 | 295 | unsigned char zecom [2] = ""; |
adelino | 0:65fd8b1cbf86 | 296 | // |
adelino | 0:65fd8b1cbf86 | 297 | zecom[0] = (CMD_CLEAR_SCREEN >> 8)&0xFF; //0xFFCD |
adelino | 0:65fd8b1cbf86 | 298 | zecom[1] = (CMD_CLEAR_SCREEN & 0xFF); |
adelino | 0:65fd8b1cbf86 | 299 | |
adelino | 0:65fd8b1cbf86 | 300 | put_gfx_Commande(zecom, 2); |
adelino | 0:65fd8b1cbf86 | 301 | |
adelino | 0:65fd8b1cbf86 | 302 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 303 | } |
adelino | 0:65fd8b1cbf86 | 304 | //----------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 305 | void PicasoSerial::gfx_set_BackGroundColor(Color color) |
adelino | 0:65fd8b1cbf86 | 306 | { |
adelino | 0:65fd8b1cbf86 | 307 | unsigned char zecom [4] = ""; |
adelino | 0:65fd8b1cbf86 | 308 | |
adelino | 0:65fd8b1cbf86 | 309 | zecom[0] = (CMD_BACKGROUND_COLOR >> 8) & 0xFF; // 0xFFA4 |
adelino | 0:65fd8b1cbf86 | 310 | zecom[1] = CMD_BACKGROUND_COLOR & 0xFF; |
adelino | 0:65fd8b1cbf86 | 311 | |
adelino | 0:65fd8b1cbf86 | 312 | zecom[2] = (color >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 313 | zecom[3] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 314 | |
adelino | 0:65fd8b1cbf86 | 315 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 316 | |
adelino | 0:65fd8b1cbf86 | 317 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 318 | } |
adelino | 0:65fd8b1cbf86 | 319 | //---------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 320 | unsigned short gfx_set_RGB565(unsigned char red, |
adelino | 0:65fd8b1cbf86 | 321 | unsigned char green, |
adelino | 0:65fd8b1cbf86 | 322 | unsigned char blue) |
adelino | 0:65fd8b1cbf86 | 323 | { |
adelino | 0:65fd8b1cbf86 | 324 | UINT16 r = (red * 31) / 255; |
adelino | 0:65fd8b1cbf86 | 325 | |
adelino | 0:65fd8b1cbf86 | 326 | UINT16 v = (green * 63) / 255; |
adelino | 0:65fd8b1cbf86 | 327 | |
adelino | 0:65fd8b1cbf86 | 328 | UINT16 b = (blue * 31) / 255; |
adelino | 0:65fd8b1cbf86 | 329 | |
adelino | 0:65fd8b1cbf86 | 330 | return (r << 11) | (v << 5) | b; |
adelino | 0:65fd8b1cbf86 | 331 | |
adelino | 0:65fd8b1cbf86 | 332 | } |
adelino | 0:65fd8b1cbf86 | 333 | //----------------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 334 | void PicasoSerial::draw_circle(UINT16 x, UINT16 y, UINT16 radius,Color color) |
adelino | 0:65fd8b1cbf86 | 335 | { |
adelino | 0:65fd8b1cbf86 | 336 | unsigned char zecom [10] = ""; |
adelino | 0:65fd8b1cbf86 | 337 | |
adelino | 0:65fd8b1cbf86 | 338 | zecom[0] = (CMD_CIRCLE >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 339 | zecom[1] = CMD_CIRCLE & 0xFF; |
adelino | 0:65fd8b1cbf86 | 340 | |
adelino | 0:65fd8b1cbf86 | 341 | // coord X[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 342 | zecom[2] = (x >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 343 | zecom[3] = (x)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 344 | |
adelino | 0:65fd8b1cbf86 | 345 | // coord Y[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 346 | zecom[4] = (y >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 347 | zecom[5] = (y)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 348 | |
adelino | 0:65fd8b1cbf86 | 349 | // rayon |
adelino | 0:65fd8b1cbf86 | 350 | zecom[6] = (radius >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 351 | zecom[7] = (radius)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 352 | |
adelino | 0:65fd8b1cbf86 | 353 | zecom[8] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 354 | zecom[9] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 355 | |
adelino | 0:65fd8b1cbf86 | 356 | put_gfx_Commande(zecom, 10); |
adelino | 0:65fd8b1cbf86 | 357 | |
adelino | 0:65fd8b1cbf86 | 358 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 359 | } |
adelino | 0:65fd8b1cbf86 | 360 | //------------------------------------------------------------------------------------ |
adelino | 0:65fd8b1cbf86 | 361 | void PicasoSerial::draw_filled_circle(UINT16 x, UINT16 y, UINT16 radius,Color color) |
adelino | 0:65fd8b1cbf86 | 362 | { |
adelino | 0:65fd8b1cbf86 | 363 | unsigned char zecom [10] = ""; |
adelino | 0:65fd8b1cbf86 | 364 | |
adelino | 0:65fd8b1cbf86 | 365 | zecom[0] = (CMD_FILLED_CIRCLE >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 366 | zecom[1] = CMD_FILLED_CIRCLE & 0xFF; |
adelino | 0:65fd8b1cbf86 | 367 | |
adelino | 0:65fd8b1cbf86 | 368 | // coord X[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 369 | zecom[2] = (x >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 370 | zecom[3] = (x)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 371 | |
adelino | 0:65fd8b1cbf86 | 372 | // coord Y[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 373 | zecom[4] = (y >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 374 | zecom[5] = (y)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 375 | |
adelino | 0:65fd8b1cbf86 | 376 | // rayon |
adelino | 0:65fd8b1cbf86 | 377 | zecom[6] = (radius >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 378 | zecom[7] = (radius)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 379 | |
adelino | 0:65fd8b1cbf86 | 380 | zecom[8] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 381 | zecom[9] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 382 | |
adelino | 0:65fd8b1cbf86 | 383 | put_gfx_Commande(zecom, 10); |
adelino | 0:65fd8b1cbf86 | 384 | |
adelino | 0:65fd8b1cbf86 | 385 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 386 | } |
adelino | 0:65fd8b1cbf86 | 387 | //------------------------------------------------------------ |
adelino | 0:65fd8b1cbf86 | 388 | void PicasoSerial::draw_line(UINT16 x1, UINT16 y1, |
adelino | 0:65fd8b1cbf86 | 389 | UINT16 x2, UINT16 y2,Color color) |
adelino | 0:65fd8b1cbf86 | 390 | { |
adelino | 0:65fd8b1cbf86 | 391 | unsigned char zecom [12] = ""; |
adelino | 0:65fd8b1cbf86 | 392 | |
adelino | 0:65fd8b1cbf86 | 393 | zecom[0] = (CMD_LINE >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 394 | zecom[1] = CMD_LINE & 0xFF; |
adelino | 0:65fd8b1cbf86 | 395 | |
adelino | 0:65fd8b1cbf86 | 396 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 397 | zecom[2] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 398 | zecom[3] = (x1)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 399 | |
adelino | 0:65fd8b1cbf86 | 400 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 401 | zecom[4] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 402 | zecom[5] = (y1)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 403 | |
adelino | 0:65fd8b1cbf86 | 404 | // coord X2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 405 | zecom[6] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 406 | zecom[7] = (x2)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 407 | |
adelino | 0:65fd8b1cbf86 | 408 | // coord Y2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 409 | zecom[8] = (y2 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 410 | zecom[9] = y2 & 0xFF; |
adelino | 0:65fd8b1cbf86 | 411 | |
adelino | 0:65fd8b1cbf86 | 412 | zecom[10] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 413 | zecom[11] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 414 | |
adelino | 0:65fd8b1cbf86 | 415 | put_gfx_Commande(zecom, 12); |
adelino | 0:65fd8b1cbf86 | 416 | |
adelino | 0:65fd8b1cbf86 | 417 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 418 | } |
adelino | 0:65fd8b1cbf86 | 419 | //----------------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 420 | void PicasoSerial::draw_triangle(UINT16 x1, UINT16 y1, UINT16 x2, |
adelino | 0:65fd8b1cbf86 | 421 | UINT16 y2, UINT16 x3, UINT16 y3,Color color) |
adelino | 0:65fd8b1cbf86 | 422 | { |
adelino | 0:65fd8b1cbf86 | 423 | unsigned char zecom [16] = ""; |
adelino | 0:65fd8b1cbf86 | 424 | |
adelino | 0:65fd8b1cbf86 | 425 | zecom[0] = (CMD_TRIANGLE >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 426 | zecom[1] = CMD_TRIANGLE & 0xFF; |
adelino | 0:65fd8b1cbf86 | 427 | |
adelino | 0:65fd8b1cbf86 | 428 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 429 | zecom[2] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 430 | zecom[3] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 431 | |
adelino | 0:65fd8b1cbf86 | 432 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 433 | zecom[4] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 434 | zecom[5] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 435 | |
adelino | 0:65fd8b1cbf86 | 436 | // coord X2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 437 | zecom[6] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 438 | zecom[7] = (x2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 439 | |
adelino | 0:65fd8b1cbf86 | 440 | // coord Y2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 441 | zecom[8] = (y2 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 442 | zecom[9] = (y2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 443 | |
adelino | 0:65fd8b1cbf86 | 444 | //cord X3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 445 | zecom[10] = (x3 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 446 | zecom[11] = (x3) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 447 | |
adelino | 0:65fd8b1cbf86 | 448 | //cord Y3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 449 | zecom[12] = (y3 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 450 | zecom[13] = (y3) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 451 | |
adelino | 0:65fd8b1cbf86 | 452 | zecom[14] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 453 | zecom[15] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 454 | |
adelino | 0:65fd8b1cbf86 | 455 | put_gfx_Commande(zecom, 16); |
adelino | 0:65fd8b1cbf86 | 456 | |
adelino | 0:65fd8b1cbf86 | 457 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 458 | } |
adelino | 0:65fd8b1cbf86 | 459 | //----------------------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 460 | void PicasoSerial::draw_filled_triangle(UINT16 x1, UINT16 y1, UINT16 x2, |
adelino | 0:65fd8b1cbf86 | 461 | UINT16 y2, UINT16 x3, UINT16 y3,Color color) |
adelino | 0:65fd8b1cbf86 | 462 | { |
adelino | 0:65fd8b1cbf86 | 463 | unsigned char zecom [16] = ""; |
adelino | 0:65fd8b1cbf86 | 464 | |
adelino | 0:65fd8b1cbf86 | 465 | zecom[0] = (CMD_FILLED_TRIANGLE >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 466 | zecom[1] = CMD_FILLED_TRIANGLE & 0xFF; |
adelino | 0:65fd8b1cbf86 | 467 | |
adelino | 0:65fd8b1cbf86 | 468 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 469 | zecom[2] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 470 | zecom[3] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 471 | |
adelino | 0:65fd8b1cbf86 | 472 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 473 | zecom[4] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 474 | zecom[5] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 475 | |
adelino | 0:65fd8b1cbf86 | 476 | // coord X2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 477 | zecom[6] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 478 | zecom[7] = (x2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 479 | |
adelino | 0:65fd8b1cbf86 | 480 | // coord Y2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 481 | zecom[8] = (y2 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 482 | zecom[9] = (y2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 483 | |
adelino | 0:65fd8b1cbf86 | 484 | //cord X3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 485 | zecom[10] = (x3 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 486 | zecom[11] = (x3) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 487 | |
adelino | 0:65fd8b1cbf86 | 488 | //cord Y3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 489 | zecom[12] = (y3 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 490 | zecom[13] = (y3) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 491 | |
adelino | 0:65fd8b1cbf86 | 492 | zecom[14] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 493 | zecom[15] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 494 | |
adelino | 0:65fd8b1cbf86 | 495 | put_gfx_Commande(zecom, 16); |
adelino | 0:65fd8b1cbf86 | 496 | |
adelino | 0:65fd8b1cbf86 | 497 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 498 | } |
adelino | 0:65fd8b1cbf86 | 499 | //---------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 500 | void PicasoSerial::draw_filled_rectangle(UINT16 x1, UINT16 y1, UINT16 x2, |
adelino | 0:65fd8b1cbf86 | 501 | UINT16 y2,Color color) |
adelino | 0:65fd8b1cbf86 | 502 | { |
adelino | 0:65fd8b1cbf86 | 503 | unsigned char zecom [12] = ""; |
adelino | 0:65fd8b1cbf86 | 504 | |
adelino | 0:65fd8b1cbf86 | 505 | zecom[0] = (CMD_FILLED_RECT >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 506 | zecom[1] = (CMD_FILLED_RECT & 0xFF); |
adelino | 0:65fd8b1cbf86 | 507 | |
adelino | 0:65fd8b1cbf86 | 508 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 509 | zecom[2] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 510 | zecom[3] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 511 | |
adelino | 0:65fd8b1cbf86 | 512 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 513 | zecom[4] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 514 | zecom[5] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 515 | |
adelino | 0:65fd8b1cbf86 | 516 | // coord X2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 517 | zecom[6] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 518 | zecom[7] = (x2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 519 | |
adelino | 0:65fd8b1cbf86 | 520 | // coord Y2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 521 | zecom[8] = (y2 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 522 | zecom[9] = (y2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 523 | |
adelino | 0:65fd8b1cbf86 | 524 | // color |
adelino | 0:65fd8b1cbf86 | 525 | zecom[10] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 526 | zecom[11] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 527 | |
adelino | 0:65fd8b1cbf86 | 528 | put_gfx_Commande(zecom, 12); |
adelino | 0:65fd8b1cbf86 | 529 | |
adelino | 0:65fd8b1cbf86 | 530 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 531 | } |
adelino | 0:65fd8b1cbf86 | 532 | //---------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 533 | void PicasoSerial::draw_rectangle(UINT16 x1, UINT16 y1, UINT16 x2, |
adelino | 0:65fd8b1cbf86 | 534 | UINT16 y2,Color color) |
adelino | 0:65fd8b1cbf86 | 535 | { |
adelino | 0:65fd8b1cbf86 | 536 | unsigned char zecom [12] = ""; |
adelino | 0:65fd8b1cbf86 | 537 | |
adelino | 0:65fd8b1cbf86 | 538 | zecom[0] = (CMD_RECT >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 539 | zecom[1] = (CMD_RECT & 0xFF); |
adelino | 0:65fd8b1cbf86 | 540 | |
adelino | 0:65fd8b1cbf86 | 541 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 542 | zecom[2] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 543 | zecom[3] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 544 | |
adelino | 0:65fd8b1cbf86 | 545 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 546 | zecom[4] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 547 | zecom[5] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 548 | |
adelino | 0:65fd8b1cbf86 | 549 | // coord X2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 550 | zecom[6] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 551 | zecom[7] = (x2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 552 | |
adelino | 0:65fd8b1cbf86 | 553 | // coord Y2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 554 | zecom[8] = (y2 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 555 | zecom[9] = (y2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 556 | |
adelino | 0:65fd8b1cbf86 | 557 | // color |
adelino | 0:65fd8b1cbf86 | 558 | zecom[10] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 559 | zecom[11] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 560 | |
adelino | 0:65fd8b1cbf86 | 561 | put_gfx_Commande(zecom, 12); |
adelino | 0:65fd8b1cbf86 | 562 | |
adelino | 0:65fd8b1cbf86 | 563 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 564 | } |
adelino | 0:65fd8b1cbf86 | 565 | //----------------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 566 | void PicasoSerial::draw_panel(UINT16 state, UINT16 x1, UINT16 y1, UINT16 width, |
adelino | 0:65fd8b1cbf86 | 567 | UINT16 height,Color color) |
adelino | 0:65fd8b1cbf86 | 568 | { |
adelino | 0:65fd8b1cbf86 | 569 | unsigned char zecom [10] = ""; |
adelino | 0:65fd8b1cbf86 | 570 | |
adelino | 0:65fd8b1cbf86 | 571 | zecom[0] = (CMD_PANEL >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 572 | zecom[1] = (CMD_PANEL & 0xFF); |
adelino | 0:65fd8b1cbf86 | 573 | |
adelino | 0:65fd8b1cbf86 | 574 | // coord state[msb:Lsb]0 recessed, 1 raised |
adelino | 0:65fd8b1cbf86 | 575 | zecom[2] = (state >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 576 | zecom[3] = (state) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 577 | |
adelino | 0:65fd8b1cbf86 | 578 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 579 | zecom[4] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 580 | zecom[5] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 581 | |
adelino | 0:65fd8b1cbf86 | 582 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 583 | zecom[6] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 584 | zecom[7] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 585 | |
adelino | 0:65fd8b1cbf86 | 586 | // coord width[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 587 | zecom[8] = (width >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 588 | zecom[9] = (width) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 589 | |
adelino | 0:65fd8b1cbf86 | 590 | // coord height[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 591 | zecom[10] = (height >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 592 | zecom[11] = (height) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 593 | |
adelino | 0:65fd8b1cbf86 | 594 | // color |
adelino | 0:65fd8b1cbf86 | 595 | zecom[12] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 596 | zecom[13] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 597 | |
adelino | 0:65fd8b1cbf86 | 598 | put_gfx_Commande(zecom, 14); |
adelino | 0:65fd8b1cbf86 | 599 | |
adelino | 0:65fd8b1cbf86 | 600 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 601 | } |
adelino | 0:65fd8b1cbf86 | 602 | //---------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 603 | void PicasoSerial::draw_pixel(UINT16 x1, UINT16 y1,Color color) |
adelino | 0:65fd8b1cbf86 | 604 | { |
adelino | 0:65fd8b1cbf86 | 605 | unsigned char zecom [8] = ""; |
adelino | 0:65fd8b1cbf86 | 606 | |
adelino | 0:65fd8b1cbf86 | 607 | zecom[0] = (CMD_PIXEL >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 608 | zecom[1] = CMD_PIXEL & 0xFF; |
adelino | 0:65fd8b1cbf86 | 609 | |
adelino | 0:65fd8b1cbf86 | 610 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 611 | zecom[2] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 612 | zecom[3] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 613 | |
adelino | 0:65fd8b1cbf86 | 614 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 615 | zecom[4] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 616 | zecom[5] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 617 | |
adelino | 0:65fd8b1cbf86 | 618 | // color |
adelino | 0:65fd8b1cbf86 | 619 | zecom[6] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 620 | zecom[7] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 621 | |
adelino | 0:65fd8b1cbf86 | 622 | put_gfx_Commande(zecom, 8); |
adelino | 0:65fd8b1cbf86 | 623 | |
adelino | 0:65fd8b1cbf86 | 624 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 625 | } |
adelino | 0:65fd8b1cbf86 | 626 | //------------------------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 627 | void PicasoSerial::draw_slider(UINT16 mode, UINT16 x1, UINT16 y1, UINT16 x2, UINT16 y2, |
adelino | 0:65fd8b1cbf86 | 628 | Color color, UINT16 scale, UINT16 value) |
adelino | 0:65fd8b1cbf86 | 629 | { |
adelino | 0:65fd8b1cbf86 | 630 | unsigned char zecom [18] = ""; |
adelino | 0:65fd8b1cbf86 | 631 | |
adelino | 0:65fd8b1cbf86 | 632 | zecom[0] = (CMD_SLIDER >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 633 | zecom[1] = CMD_SLIDER & 0xFF; |
adelino | 0:65fd8b1cbf86 | 634 | |
adelino | 0:65fd8b1cbf86 | 635 | //mode |
adelino | 0:65fd8b1cbf86 | 636 | zecom[2] = (mode >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 637 | zecom[3] = (mode) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 638 | |
adelino | 0:65fd8b1cbf86 | 639 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 640 | zecom[4] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 641 | zecom[5] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 642 | |
adelino | 0:65fd8b1cbf86 | 643 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 644 | zecom[6] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 645 | zecom[7] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 646 | |
adelino | 0:65fd8b1cbf86 | 647 | // coord X2[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 648 | zecom[8] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 649 | zecom[9] = (x2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 650 | |
adelino | 0:65fd8b1cbf86 | 651 | // coord Y2[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 652 | zecom[10] = (y2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 653 | zecom[11] = (y2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 654 | |
adelino | 0:65fd8b1cbf86 | 655 | // color |
adelino | 0:65fd8b1cbf86 | 656 | zecom[12] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 657 | zecom[13] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 658 | |
adelino | 0:65fd8b1cbf86 | 659 | // scale |
adelino | 0:65fd8b1cbf86 | 660 | zecom[14] = (scale >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 661 | zecom[15] = scale & 0xFF; |
adelino | 0:65fd8b1cbf86 | 662 | |
adelino | 0:65fd8b1cbf86 | 663 | //value |
adelino | 0:65fd8b1cbf86 | 664 | zecom[16] = (value >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 665 | zecom[17] = value & 0xFF; |
adelino | 0:65fd8b1cbf86 | 666 | |
adelino | 0:65fd8b1cbf86 | 667 | put_gfx_Commande(zecom, 18); |
adelino | 0:65fd8b1cbf86 | 668 | |
adelino | 0:65fd8b1cbf86 | 669 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 670 | } |
adelino | 0:65fd8b1cbf86 | 671 | //---------------------------------------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 672 | void PicasoSerial::draw_button(string str, UINT16 x1, UINT16 y1,Font font, |
adelino | 0:65fd8b1cbf86 | 673 | State state,Color button_color,Color text_color) |
adelino | 0:65fd8b1cbf86 | 674 | { |
adelino | 0:65fd8b1cbf86 | 675 | int i = 0; |
adelino | 0:65fd8b1cbf86 | 676 | |
adelino | 0:65fd8b1cbf86 | 677 | int taille = 0; |
adelino | 0:65fd8b1cbf86 | 678 | unsigned char zecom [200] = ""; |
adelino | 0:65fd8b1cbf86 | 679 | |
adelino | 0:65fd8b1cbf86 | 680 | // cherche taille |
adelino | 0:65fd8b1cbf86 | 681 | /* |
adelino | 0:65fd8b1cbf86 | 682 | while (*s) { |
adelino | 0:65fd8b1cbf86 | 683 | size++; |
adelino | 0:65fd8b1cbf86 | 684 | s++; |
adelino | 0:65fd8b1cbf86 | 685 | |
adelino | 0:65fd8b1cbf86 | 686 | } |
adelino | 0:65fd8b1cbf86 | 687 | |
adelino | 0:65fd8b1cbf86 | 688 | s = s - size; |
adelino | 0:65fd8b1cbf86 | 689 | */ |
adelino | 0:65fd8b1cbf86 | 690 | taille=str.size(); |
adelino | 1:a74e42cf52b2 | 691 | |
adelino | 0:65fd8b1cbf86 | 692 | zecom[0] = (CMD_BUTTON >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 693 | zecom[1] = CMD_BUTTON & 0xFF; |
adelino | 0:65fd8b1cbf86 | 694 | |
adelino | 0:65fd8b1cbf86 | 695 | //etat 0 depressed, 1 raised |
adelino | 0:65fd8b1cbf86 | 696 | zecom[2] = (state >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 697 | zecom[3] = state & 0xFF; |
adelino | 0:65fd8b1cbf86 | 698 | |
adelino | 0:65fd8b1cbf86 | 699 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 700 | zecom[4] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 701 | zecom[5] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 702 | |
adelino | 0:65fd8b1cbf86 | 703 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 704 | zecom[6] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 705 | zecom[7] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 706 | |
adelino | 0:65fd8b1cbf86 | 707 | // button color |
adelino | 0:65fd8b1cbf86 | 708 | zecom[8] = (button_color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 709 | zecom[9] = button_color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 710 | |
adelino | 0:65fd8b1cbf86 | 711 | //text color |
adelino | 0:65fd8b1cbf86 | 712 | zecom[10] = (text_color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 713 | zecom[11] = text_color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 714 | |
adelino | 0:65fd8b1cbf86 | 715 | // font id |
adelino | 0:65fd8b1cbf86 | 716 | zecom[12] = (font >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 717 | zecom[13] = font & 0xFF; |
adelino | 0:65fd8b1cbf86 | 718 | |
adelino | 0:65fd8b1cbf86 | 719 | //txtWidth |
adelino | 0:65fd8b1cbf86 | 720 | zecom[14] = 0x00; |
adelino | 0:65fd8b1cbf86 | 721 | zecom[15] = 0x01; |
adelino | 0:65fd8b1cbf86 | 722 | |
adelino | 0:65fd8b1cbf86 | 723 | //txtHeight |
adelino | 0:65fd8b1cbf86 | 724 | zecom[16] = 0x00; |
adelino | 0:65fd8b1cbf86 | 725 | zecom[17] = 0x01; |
adelino | 0:65fd8b1cbf86 | 726 | |
adelino | 0:65fd8b1cbf86 | 727 | |
adelino | 0:65fd8b1cbf86 | 728 | //le text |
adelino | 0:65fd8b1cbf86 | 729 | for (i = 0; i < taille; i++) { |
adelino | 0:65fd8b1cbf86 | 730 | zecom[18 + i] = str[i]; |
adelino | 0:65fd8b1cbf86 | 731 | } |
adelino | 0:65fd8b1cbf86 | 732 | |
adelino | 0:65fd8b1cbf86 | 733 | //terminate |
adelino | 0:65fd8b1cbf86 | 734 | zecom[18 + taille] = 0x00; |
adelino | 0:65fd8b1cbf86 | 735 | |
adelino | 0:65fd8b1cbf86 | 736 | put_gfx_Commande(zecom, 19 + taille); |
adelino | 0:65fd8b1cbf86 | 737 | |
adelino | 0:65fd8b1cbf86 | 738 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 739 | } |
adelino | 0:65fd8b1cbf86 | 740 | //------------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 741 | void PicasoSerial::gfx_move_to(UINT16 x1, UINT16 y1) |
adelino | 0:65fd8b1cbf86 | 742 | { |
adelino | 0:65fd8b1cbf86 | 743 | unsigned char zecom [6] = ""; |
adelino | 0:65fd8b1cbf86 | 744 | |
adelino | 0:65fd8b1cbf86 | 745 | //move origine |
adelino | 0:65fd8b1cbf86 | 746 | zecom[0] = (CMD_MOVE_ORIGIN >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 747 | zecom[1] = (CMD_MOVE_ORIGIN)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 748 | |
adelino | 0:65fd8b1cbf86 | 749 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 750 | zecom[2] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 751 | zecom[3] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 752 | |
adelino | 0:65fd8b1cbf86 | 753 | // coord Y1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 754 | zecom[4] = (y1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 755 | zecom[5] = (y1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 756 | |
adelino | 0:65fd8b1cbf86 | 757 | put_gfx_Commande(zecom, 6); |
adelino | 0:65fd8b1cbf86 | 758 | |
adelino | 0:65fd8b1cbf86 | 759 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 760 | } |
adelino | 0:65fd8b1cbf86 | 761 | //---------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 762 | void PicasoSerial::text_foreground(Color color) |
adelino | 0:65fd8b1cbf86 | 763 | { |
adelino | 0:65fd8b1cbf86 | 764 | UINT8 rep = 0; |
adelino | 0:65fd8b1cbf86 | 765 | |
adelino | 0:65fd8b1cbf86 | 766 | unsigned char zecom [4] = ""; |
adelino | 0:65fd8b1cbf86 | 767 | |
adelino | 0:65fd8b1cbf86 | 768 | zecom[0] = (CMD_TEXT_FOREGROUND >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 769 | zecom[1] = CMD_TEXT_FOREGROUND & 0xFF; |
adelino | 0:65fd8b1cbf86 | 770 | |
adelino | 0:65fd8b1cbf86 | 771 | zecom[2] = (color >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 772 | zecom[3] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 773 | |
adelino | 0:65fd8b1cbf86 | 774 | put_gfx_Commande(zecom, 4); // ack? |
adelino | 0:65fd8b1cbf86 | 775 | |
adelino | 0:65fd8b1cbf86 | 776 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 777 | |
adelino | 0:65fd8b1cbf86 | 778 | rep = get_gfx_char(); //previous color msb |
adelino | 0:65fd8b1cbf86 | 779 | |
adelino | 0:65fd8b1cbf86 | 780 | rep = get_gfx_char(); //previous color lsb |
adelino | 0:65fd8b1cbf86 | 781 | } |
adelino | 0:65fd8b1cbf86 | 782 | //--------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 783 | void PicasoSerial::text_backround(Color color) |
adelino | 0:65fd8b1cbf86 | 784 | { |
adelino | 0:65fd8b1cbf86 | 785 | UINT8 rep = 0; |
adelino | 0:65fd8b1cbf86 | 786 | |
adelino | 0:65fd8b1cbf86 | 787 | unsigned char zecom [4] = ""; |
adelino | 0:65fd8b1cbf86 | 788 | |
adelino | 0:65fd8b1cbf86 | 789 | zecom[0] = (CMD_TEXT_BACKROUND >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 790 | zecom[1] = CMD_TEXT_BACKROUND & 0xFF; |
adelino | 0:65fd8b1cbf86 | 791 | |
adelino | 0:65fd8b1cbf86 | 792 | zecom[2] = (color >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 793 | zecom[3] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 794 | |
adelino | 0:65fd8b1cbf86 | 795 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 796 | |
adelino | 0:65fd8b1cbf86 | 797 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 798 | |
adelino | 0:65fd8b1cbf86 | 799 | rep = get_gfx_char(); //previous color msb |
adelino | 0:65fd8b1cbf86 | 800 | |
adelino | 0:65fd8b1cbf86 | 801 | rep = get_gfx_char(); //previous color lsb |
adelino | 0:65fd8b1cbf86 | 802 | } |
adelino | 0:65fd8b1cbf86 | 803 | //------------------------------------------- |
adelino | 0:65fd8b1cbf86 | 804 | void PicasoSerial::text_setFont(Font _font) |
adelino | 0:65fd8b1cbf86 | 805 | { |
adelino | 0:65fd8b1cbf86 | 806 | UINT8 rep = 0; |
adelino | 0:65fd8b1cbf86 | 807 | |
adelino | 0:65fd8b1cbf86 | 808 | unsigned char zecom [4] = ""; |
adelino | 0:65fd8b1cbf86 | 809 | |
adelino | 0:65fd8b1cbf86 | 810 | zecom[0] = (CMD_TEXT_SET_FONT >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 811 | zecom[1] = CMD_TEXT_SET_FONT & 0xFF; |
adelino | 0:65fd8b1cbf86 | 812 | |
adelino | 0:65fd8b1cbf86 | 813 | zecom[2] = (_font >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 814 | zecom[3] = _font & 0xFF; |
adelino | 0:65fd8b1cbf86 | 815 | |
adelino | 0:65fd8b1cbf86 | 816 | put_gfx_Commande(zecom, 4); |
adelino | 0:65fd8b1cbf86 | 817 | |
adelino | 0:65fd8b1cbf86 | 818 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 819 | |
adelino | 0:65fd8b1cbf86 | 820 | rep = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 821 | |
adelino | 0:65fd8b1cbf86 | 822 | rep = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 823 | } |
adelino | 0:65fd8b1cbf86 | 824 | //---------------------------------------- |
adelino | 0:65fd8b1cbf86 | 825 | void PicasoSerial::text_putstring(string str) |
adelino | 0:65fd8b1cbf86 | 826 | { |
adelino | 0:65fd8b1cbf86 | 827 | int i = 0; |
adelino | 0:65fd8b1cbf86 | 828 | UINT8 rep = 0; |
adelino | 0:65fd8b1cbf86 | 829 | int taille = 0; |
adelino | 0:65fd8b1cbf86 | 830 | unsigned char zecom [500] = ""; |
adelino | 0:65fd8b1cbf86 | 831 | |
adelino | 0:65fd8b1cbf86 | 832 | |
adelino | 0:65fd8b1cbf86 | 833 | // cherche taille |
adelino | 0:65fd8b1cbf86 | 834 | /* |
adelino | 0:65fd8b1cbf86 | 835 | while (*s) { |
adelino | 0:65fd8b1cbf86 | 836 | size++; |
adelino | 0:65fd8b1cbf86 | 837 | s++; |
adelino | 0:65fd8b1cbf86 | 838 | |
adelino | 0:65fd8b1cbf86 | 839 | } |
adelino | 0:65fd8b1cbf86 | 840 | |
adelino | 0:65fd8b1cbf86 | 841 | s = s - size; |
adelino | 0:65fd8b1cbf86 | 842 | */ |
adelino | 0:65fd8b1cbf86 | 843 | taille=str.size(); |
adelino | 0:65fd8b1cbf86 | 844 | // |
adelino | 0:65fd8b1cbf86 | 845 | zecom[0] = (CMD_PUT_STRING >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 846 | zecom[1] = CMD_PUT_STRING & 0xFF; |
adelino | 0:65fd8b1cbf86 | 847 | |
adelino | 0:65fd8b1cbf86 | 848 | |
adelino | 0:65fd8b1cbf86 | 849 | //le text |
adelino | 0:65fd8b1cbf86 | 850 | for (i = 0; i <taille; i++) { |
adelino | 0:65fd8b1cbf86 | 851 | zecom[2 + i] = str[i]; |
adelino | 0:65fd8b1cbf86 | 852 | } |
adelino | 0:65fd8b1cbf86 | 853 | |
adelino | 0:65fd8b1cbf86 | 854 | //terminate |
adelino | 0:65fd8b1cbf86 | 855 | zecom[2 + taille] = 0x00; |
adelino | 0:65fd8b1cbf86 | 856 | |
adelino | 0:65fd8b1cbf86 | 857 | put_gfx_Commande(zecom, 3 + taille); |
adelino | 0:65fd8b1cbf86 | 858 | |
adelino | 0:65fd8b1cbf86 | 859 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 860 | |
adelino | 0:65fd8b1cbf86 | 861 | rep = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 862 | |
adelino | 0:65fd8b1cbf86 | 863 | rep = get_gfx_char(); |
adelino | 0:65fd8b1cbf86 | 864 | } |
adelino | 0:65fd8b1cbf86 | 865 | //------------------------------------------------------------------------ |
adelino | 0:65fd8b1cbf86 | 866 | void PicasoSerial::draw_string(string str, UINT16 x, UINT16 y,Font _font, |
adelino | 0:65fd8b1cbf86 | 867 | Color text_color,Color color_bckg) |
adelino | 0:65fd8b1cbf86 | 868 | { |
adelino | 0:65fd8b1cbf86 | 869 | text_backround(color_bckg); |
adelino | 0:65fd8b1cbf86 | 870 | |
adelino | 0:65fd8b1cbf86 | 871 | text_foreground(text_color); |
adelino | 0:65fd8b1cbf86 | 872 | |
adelino | 0:65fd8b1cbf86 | 873 | text_setFont(_font); |
adelino | 0:65fd8b1cbf86 | 874 | |
adelino | 0:65fd8b1cbf86 | 875 | gfx_move_to(x, y); |
adelino | 0:65fd8b1cbf86 | 876 | |
adelino | 0:65fd8b1cbf86 | 877 | text_putstring(str); |
adelino | 0:65fd8b1cbf86 | 878 | |
adelino | 0:65fd8b1cbf86 | 879 | } |
adelino | 0:65fd8b1cbf86 | 880 | //------------------------------------------------------------------------ |
adelino | 1:a74e42cf52b2 | 881 | void PicasoSerial::draw_diamond(UINT16 x1, UINT16 y1, UINT16 x2,UINT16 y2, |
adelino | 1:a74e42cf52b2 | 882 | UINT16 x3,UINT16 y3, |
adelino | 1:a74e42cf52b2 | 883 | UINT16 x4,UINT16 y4,Color color) |
adelino | 0:65fd8b1cbf86 | 884 | { |
adelino | 0:65fd8b1cbf86 | 885 | unsigned char zecom [22] = ""; |
adelino | 0:65fd8b1cbf86 | 886 | UINT16 nb=0x0004; |
adelino | 0:65fd8b1cbf86 | 887 | |
adelino | 0:65fd8b1cbf86 | 888 | zecom[0] = (CMD_POLYGON >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 889 | zecom[1] = (CMD_POLYGON & 0xFF); |
adelino | 1:a74e42cf52b2 | 890 | |
adelino | 0:65fd8b1cbf86 | 891 | //n=4 |
adelino | 0:65fd8b1cbf86 | 892 | zecom[2]=(nb >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 893 | zecom[3]=(nb & 0xFF); |
adelino | 1:a74e42cf52b2 | 894 | |
adelino | 0:65fd8b1cbf86 | 895 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 896 | zecom[4] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 897 | zecom[5] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 898 | |
adelino | 0:65fd8b1cbf86 | 899 | // coord X2[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 900 | zecom[6] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 901 | zecom[7] = (x2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 902 | |
adelino | 0:65fd8b1cbf86 | 903 | // coord X3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 904 | zecom[8] = (x3 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 905 | zecom[9] = (x3) & 0xFF; |
adelino | 1:a74e42cf52b2 | 906 | |
adelino | 0:65fd8b1cbf86 | 907 | //// coord X4[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 908 | zecom[10] = (x4 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 909 | zecom[11] = (x4) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 910 | |
adelino | 0:65fd8b1cbf86 | 911 | // coord Y1[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 912 | zecom[12] = (y1 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 913 | zecom[13] = (y1) & 0xFF; |
adelino | 1:a74e42cf52b2 | 914 | |
adelino | 0:65fd8b1cbf86 | 915 | // coord Y2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 916 | zecom[14] = (y2 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 917 | zecom[15] = (y2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 918 | |
adelino | 0:65fd8b1cbf86 | 919 | // coord Y3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 920 | zecom[16] = (y3 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 921 | zecom[17] = (y3) & 0xFF; |
adelino | 1:a74e42cf52b2 | 922 | |
adelino | 0:65fd8b1cbf86 | 923 | // coord Y4[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 924 | zecom[18] = (y4 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 925 | zecom[19] = (y4) & 0xFF; |
adelino | 1:a74e42cf52b2 | 926 | |
adelino | 0:65fd8b1cbf86 | 927 | // color |
adelino | 0:65fd8b1cbf86 | 928 | zecom[20] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 929 | zecom[21] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 930 | |
adelino | 0:65fd8b1cbf86 | 931 | put_gfx_Commande(zecom, 22); |
adelino | 0:65fd8b1cbf86 | 932 | |
adelino | 0:65fd8b1cbf86 | 933 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 934 | } |
adelino | 0:65fd8b1cbf86 | 935 | //------------------------------------------------------------------------------ |
adelino | 0:65fd8b1cbf86 | 936 | void PicasoSerial::draw_filled_diamond(UINT16 x1,UINT16 y1,UINT16 x2,UINT16 y2, |
adelino | 1:a74e42cf52b2 | 937 | UINT16 x3,UINT16 y3, UINT16 x4,UINT16 y4,Color color) |
adelino | 0:65fd8b1cbf86 | 938 | { |
adelino | 0:65fd8b1cbf86 | 939 | unsigned char zecom [22] = ""; |
adelino | 0:65fd8b1cbf86 | 940 | UINT16 nb=0x0004; |
adelino | 0:65fd8b1cbf86 | 941 | |
adelino | 0:65fd8b1cbf86 | 942 | zecom[0] = (CMD_FILLED_POLYGON >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 943 | zecom[1] = (CMD_FILLED_POLYGON & 0xFF); |
adelino | 1:a74e42cf52b2 | 944 | |
adelino | 0:65fd8b1cbf86 | 945 | //n=4 |
adelino | 0:65fd8b1cbf86 | 946 | zecom[2]=(nb >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 947 | zecom[3]=(nb & 0xFF); |
adelino | 1:a74e42cf52b2 | 948 | |
adelino | 0:65fd8b1cbf86 | 949 | // coord X1[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 950 | zecom[4] = (x1 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 951 | zecom[5] = (x1) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 952 | |
adelino | 0:65fd8b1cbf86 | 953 | // coord X2[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 954 | zecom[6] = (x2 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 955 | zecom[7] = (x2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 956 | |
adelino | 0:65fd8b1cbf86 | 957 | // coord X3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 958 | zecom[8] = (x3 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 959 | zecom[9] = (x3) & 0xFF; |
adelino | 1:a74e42cf52b2 | 960 | |
adelino | 0:65fd8b1cbf86 | 961 | //// coord X4[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 962 | zecom[10] = (x4 >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 963 | zecom[11] = (x4) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 964 | |
adelino | 0:65fd8b1cbf86 | 965 | // coord Y1[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 966 | zecom[12] = (y1 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 967 | zecom[13] = (y1) & 0xFF; |
adelino | 1:a74e42cf52b2 | 968 | |
adelino | 0:65fd8b1cbf86 | 969 | // coord Y2[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 970 | zecom[14] = (y2 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 971 | zecom[15] = (y2) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 972 | |
adelino | 0:65fd8b1cbf86 | 973 | // coord Y3[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 974 | zecom[16] = (y3 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 975 | zecom[17] = (y3) & 0xFF; |
adelino | 1:a74e42cf52b2 | 976 | |
adelino | 0:65fd8b1cbf86 | 977 | // coord Y4[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 978 | zecom[18] = (y4 >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 979 | zecom[19] = (y4) & 0xFF; |
adelino | 1:a74e42cf52b2 | 980 | |
adelino | 0:65fd8b1cbf86 | 981 | // color |
adelino | 0:65fd8b1cbf86 | 982 | zecom[20] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 983 | zecom[21] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 984 | |
adelino | 0:65fd8b1cbf86 | 985 | put_gfx_Commande(zecom, 22); |
adelino | 0:65fd8b1cbf86 | 986 | |
adelino | 0:65fd8b1cbf86 | 987 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 988 | } |
adelino | 0:65fd8b1cbf86 | 989 | //--------------------------------------------- |
adelino | 1:a74e42cf52b2 | 990 | void PicasoSerial::draw_ellipse(UINT16 xc, UINT16 yc, UINT16 xrad, |
adelino | 1:a74e42cf52b2 | 991 | UINT16 yrad,Color color) |
adelino | 0:65fd8b1cbf86 | 992 | { |
adelino | 0:65fd8b1cbf86 | 993 | unsigned char zecom [12] = ""; |
adelino | 1:a74e42cf52b2 | 994 | |
adelino | 0:65fd8b1cbf86 | 995 | zecom[0] = (CMD_ELLIPSE >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 996 | zecom[1] = (CMD_ELLIPSE & 0xFF); |
adelino | 1:a74e42cf52b2 | 997 | |
adelino | 0:65fd8b1cbf86 | 998 | // coord Xc[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 999 | zecom[2] = (xc >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1000 | zecom[3] = (xc) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1001 | |
adelino | 0:65fd8b1cbf86 | 1002 | // coord Yc[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 1003 | zecom[4] = (yc >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1004 | zecom[5] = (yc) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1005 | |
adelino | 0:65fd8b1cbf86 | 1006 | // coord Xrad[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 1007 | zecom[6] = (xrad >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1008 | zecom[7] = (xrad) & 0xFF; |
adelino | 1:a74e42cf52b2 | 1009 | |
adelino | 0:65fd8b1cbf86 | 1010 | // coord Yrad[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 1011 | zecom[8] = (yrad >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1012 | zecom[9] = (yrad) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1013 | |
adelino | 0:65fd8b1cbf86 | 1014 | // color |
adelino | 0:65fd8b1cbf86 | 1015 | zecom[10] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1016 | zecom[11] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1017 | |
adelino | 0:65fd8b1cbf86 | 1018 | put_gfx_Commande(zecom, 12); |
adelino | 0:65fd8b1cbf86 | 1019 | |
adelino | 0:65fd8b1cbf86 | 1020 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 1021 | } |
adelino | 0:65fd8b1cbf86 | 1022 | //---------------------------------- |
adelino | 0:65fd8b1cbf86 | 1023 | void PicasoSerial::draw_filled_ellipse(UINT16 xc, UINT16 yc, UINT16 xrad, |
adelino | 1:a74e42cf52b2 | 1024 | UINT16 yrad,Color color) |
adelino | 0:65fd8b1cbf86 | 1025 | { |
adelino | 1:a74e42cf52b2 | 1026 | unsigned char zecom [12] = ""; |
adelino | 1:a74e42cf52b2 | 1027 | |
adelino | 0:65fd8b1cbf86 | 1028 | zecom[0] = (CMD_FILLED_ELLIPSE >> 8)&0xFF; |
adelino | 0:65fd8b1cbf86 | 1029 | zecom[1] = (CMD_FILLED_ELLIPSE & 0xFF); |
adelino | 1:a74e42cf52b2 | 1030 | |
adelino | 0:65fd8b1cbf86 | 1031 | // coord Xc[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 1032 | zecom[2] = (xc >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1033 | zecom[3] = (xc) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1034 | |
adelino | 0:65fd8b1cbf86 | 1035 | // coord Yc[msb:Lsb] |
adelino | 0:65fd8b1cbf86 | 1036 | zecom[4] = (yc >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1037 | zecom[5] = (yc) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1038 | |
adelino | 0:65fd8b1cbf86 | 1039 | // coord Xrad[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 1040 | zecom[6] = (xrad >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1041 | zecom[7] = (xrad) & 0xFF; |
adelino | 1:a74e42cf52b2 | 1042 | |
adelino | 0:65fd8b1cbf86 | 1043 | // coord Yrad[msb:lsb] |
adelino | 0:65fd8b1cbf86 | 1044 | zecom[8] = (yrad >> 8)& 0xFF; |
adelino | 0:65fd8b1cbf86 | 1045 | zecom[9] = (yrad) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1046 | |
adelino | 0:65fd8b1cbf86 | 1047 | // color |
adelino | 0:65fd8b1cbf86 | 1048 | zecom[10] = (color >> 8) & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1049 | zecom[11] = color & 0xFF; |
adelino | 0:65fd8b1cbf86 | 1050 | |
adelino | 0:65fd8b1cbf86 | 1051 | put_gfx_Commande(zecom, 12); |
adelino | 0:65fd8b1cbf86 | 1052 | |
adelino | 0:65fd8b1cbf86 | 1053 | wait_gfx_ack(); |
adelino | 0:65fd8b1cbf86 | 1054 | } |
adelino | 0:65fd8b1cbf86 | 1055 | //**************************************************************** |
adelino | 0:65fd8b1cbf86 | 1056 | // fin fichier |