new throttle bar :P

Dependents:   SOS_V1

Committer:
zathorix
Date:
Tue May 23 12:42:43 2017 +0000
Revision:
5:3047f8d8321b
Parent:
4:f6aa318ecda0
Child:
6:051411e193b0
Added more Ubidots shit and logging battery data

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zathorix 0:0afde8480a61 1 #include "oled_characters.h" //all OLED chars + logos
zathorix 0:0afde8480a61 2 #include "mbed.h"
zathorix 2:1627da2ca15b 3 #include "rtos.h"
zathorix 0:0afde8480a61 4 #include "Dashboard.h"
zathorix 0:0afde8480a61 5 #include "pinout.h"
zathorix 0:0afde8480a61 6
zathorix 0:0afde8480a61 7 //digital outputs and SPI
zathorix 0:0afde8480a61 8 SPI spi(SPI_MOSI, NC, SPI_CLK); // mosi, miso, sclk
zathorix 0:0afde8480a61 9 DigitalOut RST(SCRN_RSTD); //reset 0: reset 1: normal operation
zathorix 0:0afde8480a61 10 DigitalOut DC(SCRN_DC); //set input as data or command 0: command 1: data
zathorix 0:0afde8480a61 11
zathorix 0:0afde8480a61 12 DigitalOut battery_temp_alert_led(SCRN_LED1);
zathorix 0:0afde8480a61 13 DigitalOut motor_temp_alert_led(SCRN_LED2);
zathorix 0:0afde8480a61 14 DigitalOut battery_low_alert_led(SCRN_LED3);
zathorix 0:0afde8480a61 15 DigitalOut fly_ready_led(SCRN_LED4);
zathorix 0:0afde8480a61 16
zathorix 0:0afde8480a61 17 DigitalOut CS_1(SCRN_CS1); //chipSelect 0: selected 1: not selected
zathorix 0:0afde8480a61 18 DigitalOut CS_2(SCRN_CS2); //chipSelect 0: selected 1: not selected
zathorix 0:0afde8480a61 19 DigitalOut CS_3(SCRN_CS3); //chipSelect 0: selected 1: not selected
zathorix 0:0afde8480a61 20
zathorix 2:1627da2ca15b 21 //Dashboard instance
zathorix 2:1627da2ca15b 22 Dashboard dash;
zathorix 2:1627da2ca15b 23
zathorix 3:4039e27bbdd9 24
zathorix 2:1627da2ca15b 25
zathorix 0:0afde8480a61 26 bool error_alert; //internal error booleaan
zathorix 0:0afde8480a61 27
zathorix 0:0afde8480a61 28 bool motor_temp_alert = true; //LED1 E01 motor temperature too high
zathorix 0:0afde8480a61 29 bool battery_temp_alert = true; //LED2 E02 battery temperature too high
zathorix 0:0afde8480a61 30 bool battery_low_alert = true; //LED3 E03 battery low power alert
zathorix 0:0afde8480a61 31 bool fly_ready_alert = true; //LED4 E04 ready for flying
zathorix 0:0afde8480a61 32 bool voltage_in_low = true; //DISPLAY E05 solar panel voltage is low
zathorix 0:0afde8480a61 33 bool communication_not_working = true; //DISPLAY E06 communication (FONA) not working
zathorix 0:0afde8480a61 34 bool dummy_1 = true; //DISPLAY E07 descr.
zathorix 0:0afde8480a61 35 bool dummy_2 = true; //DISPLAY E08 descr.
zathorix 0:0afde8480a61 36 bool dummy_3 = true; //DISPLAY E09 descr.
zathorix 0:0afde8480a61 37 bool dummy_4 = true; //DISPLAY E10 descr.
zathorix 0:0afde8480a61 38 bool dummy_5 = true; //DISPLAY E11 descr.
zathorix 0:0afde8480a61 39 bool dummy_6 = true; //DISPLAY E12 descr.
zathorix 0:0afde8480a61 40 bool dummy_7 = true; //DISPLAY E13 descr.
zathorix 0:0afde8480a61 41 bool dummy_8 = true; //DISPLAY E14 descr.
zathorix 0:0afde8480a61 42
zathorix 0:0afde8480a61 43 Dashboard::Dashboard(void) {}
zathorix 0:0afde8480a61 44
zathorix 0:0afde8480a61 45 void Dashboard::command(int screen_number, uint8_t c)
zathorix 0:0afde8480a61 46 {
zathorix 0:0afde8480a61 47 CS_1 = 1;
zathorix 0:0afde8480a61 48 CS_2 = 1;
zathorix 0:0afde8480a61 49 CS_3 = 1;
zathorix 0:0afde8480a61 50
zathorix 0:0afde8480a61 51 DC = 0;
zathorix 0:0afde8480a61 52
zathorix 0:0afde8480a61 53 if (screen_number == 1) CS_1 = 0;
zathorix 0:0afde8480a61 54 else if (screen_number == 2) CS_2 = 0;
zathorix 0:0afde8480a61 55 else if (screen_number == 3) CS_3 = 0;
zathorix 0:0afde8480a61 56
zathorix 0:0afde8480a61 57 spi.write(c);
zathorix 0:0afde8480a61 58
zathorix 0:0afde8480a61 59 CS_1 = 1;
zathorix 0:0afde8480a61 60 CS_2 = 1;
zathorix 0:0afde8480a61 61 CS_3 = 1;
zathorix 0:0afde8480a61 62 };
zathorix 0:0afde8480a61 63
zathorix 0:0afde8480a61 64 void Dashboard::data(int screen_number, uint8_t c)
zathorix 0:0afde8480a61 65 {
zathorix 0:0afde8480a61 66 CS_1 = 1;
zathorix 0:0afde8480a61 67 CS_2 = 1;
zathorix 0:0afde8480a61 68 CS_3 = 1;
zathorix 0:0afde8480a61 69
zathorix 0:0afde8480a61 70 DC = 1;
zathorix 0:0afde8480a61 71
zathorix 0:0afde8480a61 72 if (screen_number == 1) CS_1 = 0;
zathorix 0:0afde8480a61 73 else if (screen_number == 2) CS_2 = 0;
zathorix 0:0afde8480a61 74 else if (screen_number == 3) CS_3 = 0;
zathorix 0:0afde8480a61 75
zathorix 0:0afde8480a61 76 spi.write(c);
zathorix 0:0afde8480a61 77
zathorix 0:0afde8480a61 78 CS_1 = 1;
zathorix 0:0afde8480a61 79 CS_2 = 1;
zathorix 0:0afde8480a61 80 CS_3 = 1;
zathorix 0:0afde8480a61 81 };
zathorix 0:0afde8480a61 82
zathorix 0:0afde8480a61 83 void Dashboard::powerOnOLED(int screen_number)
zathorix 0:0afde8480a61 84 {
zathorix 0:0afde8480a61 85 if (screen_number == 2) spi.format(8,0); //SQUARE
zathorix 0:0afde8480a61 86 else spi.format(8,3); //CIRCULAR
zathorix 0:0afde8480a61 87 spi.frequency(SPI_FREQUENCY);
zathorix 0:0afde8480a61 88
zathorix 0:0afde8480a61 89 //internal Vdd regulator on
zathorix 0:0afde8480a61 90 command(1, 0xAB);
zathorix 0:0afde8480a61 91 command(1, 0x01);
zathorix 0:0afde8480a61 92 command(3, 0xAB);
zathorix 0:0afde8480a61 93 command(3, 0x01);
zathorix 0:0afde8480a61 94
zathorix 0:0afde8480a61 95 //give reset
zathorix 0:0afde8480a61 96 wait(0.1);
zathorix 0:0afde8480a61 97 RST = 0;
zathorix 0:0afde8480a61 98 wait(0.1);
zathorix 0:0afde8480a61 99 RST = 1;
zathorix 0:0afde8480a61 100
zathorix 0:0afde8480a61 101 //display on, normal mode
zathorix 0:0afde8480a61 102 command(1, 0xAF);
zathorix 0:0afde8480a61 103 command(1, 0xA4);
zathorix 0:0afde8480a61 104 command(2, 0xAF);
zathorix 0:0afde8480a61 105 command(2, 0xA4);
zathorix 0:0afde8480a61 106 command(3, 0xAF);
zathorix 0:0afde8480a61 107 command(3, 0xA4);
zathorix 0:0afde8480a61 108
zathorix 0:0afde8480a61 109 //Enable COM remap
zathorix 0:0afde8480a61 110 command(1, 0xA0);
zathorix 0:0afde8480a61 111 command(1, 0b01000000);
zathorix 0:0afde8480a61 112 command(2, 0xA0);
zathorix 0:0afde8480a61 113 command(2, 0b01000011);
zathorix 0:0afde8480a61 114 command(3, 0xA0);
zathorix 0:0afde8480a61 115 command(3, 0b01000000);
zathorix 5:3047f8d8321b 116
zathorix 5:3047f8d8321b 117 //when recalled, clear screens completely
zathorix 5:3047f8d8321b 118 clearDisplay(1);
zathorix 5:3047f8d8321b 119 clearDisplay(2);
zathorix 5:3047f8d8321b 120 clearDisplay(3);
zathorix 0:0afde8480a61 121 }
zathorix 0:0afde8480a61 122
zathorix 0:0afde8480a61 123 void Dashboard::welcomeScreen()
zathorix 0:0afde8480a61 124 {
zathorix 0:0afde8480a61 125 //dickbutt
zathorix 0:0afde8480a61 126 drawBitmap(1, 75, 5, 5, 50, 100);
zathorix 0:0afde8480a61 127 drawBitmap(3, 75, 5, 5, 50, 100);
zathorix 0:0afde8480a61 128 //solar boat logo
zathorix 0:0afde8480a61 129 drawBitmap(2, 74, 10, 0, 64, 64);
zathorix 0:0afde8480a61 130 wait(0.05);
zathorix 0:0afde8480a61 131 writeLetter(2, 'S', 12, 60);
zathorix 0:0afde8480a61 132 wait(0.05);
zathorix 0:0afde8480a61 133 writeLetter(2, 'o', 12, 56);
zathorix 0:0afde8480a61 134 wait(0.05);
zathorix 0:0afde8480a61 135 writeLetter(2, 'l', 12, 52);
zathorix 0:0afde8480a61 136 wait(0.05);
zathorix 0:0afde8480a61 137 writeLetter(2, 'a', 12, 48);
zathorix 0:0afde8480a61 138 wait(0.05);
zathorix 0:0afde8480a61 139 writeLetter(2, 'r', 12, 44);
zathorix 0:0afde8480a61 140 wait(0.05);
zathorix 0:0afde8480a61 141 writeLetter(2, 'B', 12, 38);
zathorix 0:0afde8480a61 142 wait(0.05);
zathorix 0:0afde8480a61 143 writeLetter(2, 'o', 12, 34);
zathorix 0:0afde8480a61 144 wait(0.05);
zathorix 0:0afde8480a61 145 writeLetter(2, 'a', 12, 30);
zathorix 0:0afde8480a61 146 wait(0.05);
zathorix 0:0afde8480a61 147 writeLetter(2, 't', 12, 26);
zathorix 0:0afde8480a61 148 wait(0.05);
zathorix 0:0afde8480a61 149 writeLetter(2, 'T', 12, 20);
zathorix 0:0afde8480a61 150 wait(0.05);
zathorix 0:0afde8480a61 151 writeLetter(2, 'w', 12, 16);
zathorix 0:0afde8480a61 152 wait(0.05);
zathorix 0:0afde8480a61 153 writeLetter(2, 'e', 12, 12);
zathorix 0:0afde8480a61 154 wait(0.05);
zathorix 0:0afde8480a61 155 writeLetter(2, 'n', 12, 8);
zathorix 0:0afde8480a61 156 wait(0.05);
zathorix 0:0afde8480a61 157 writeLetter(2, 't', 12, 4);
zathorix 0:0afde8480a61 158 wait(0.05);
zathorix 0:0afde8480a61 159 writeLetter(2, 'e', 12, 0);
zathorix 0:0afde8480a61 160 wait(0.05);
zathorix 0:0afde8480a61 161
zathorix 0:0afde8480a61 162 clearDisplay(1);
zathorix 0:0afde8480a61 163 clearDisplay(2);
zathorix 0:0afde8480a61 164 clearDisplay(3);
zathorix 0:0afde8480a61 165
zathorix 0:0afde8480a61 166 //LEDs standard on (1)
zathorix 0:0afde8480a61 167 motor_temp_alert_led = 1;
zathorix 0:0afde8480a61 168 battery_temp_alert_led = 1;
zathorix 0:0afde8480a61 169 battery_low_alert_led = 1;
zathorix 0:0afde8480a61 170 fly_ready_led = 1;
zathorix 0:0afde8480a61 171 }
zathorix 0:0afde8480a61 172
zathorix 0:0afde8480a61 173 void Dashboard::resetOLED()
zathorix 0:0afde8480a61 174 {
zathorix 0:0afde8480a61 175 wait(0.1);
zathorix 0:0afde8480a61 176 RST = 0;
zathorix 0:0afde8480a61 177 wait(0.1);
zathorix 0:0afde8480a61 178 RST = 1;
zathorix 0:0afde8480a61 179 }
zathorix 0:0afde8480a61 180
zathorix 0:0afde8480a61 181 void Dashboard::displayData1(int rpm_motor, int battery_temperature, int motor_temperature, int voltage_in, int power_out, int power_in)
zathorix 0:0afde8480a61 182 {
zathorix 0:0afde8480a61 183 if (rpm_motor < 1) rpm_motor = 0;
zathorix 0:0afde8480a61 184 if (battery_temperature < 1) battery_temperature = 0;
zathorix 0:0afde8480a61 185 if (motor_temperature < 1) motor_temperature = 0;
zathorix 0:0afde8480a61 186 if (voltage_in < 1) voltage_in = 0;
zathorix 0:0afde8480a61 187 if (power_in < 1) power_in = 0;
zathorix 0:0afde8480a61 188 if (power_out < 1) power_out = 0;
zathorix 0:0afde8480a61 189
zathorix 0:0afde8480a61 190 writeLetter(2, 'P', 66, 59);
zathorix 0:0afde8480a61 191 writeLetter(2, 'i', 66, 55);
zathorix 0:0afde8480a61 192 writeLetter(2, 'n', 66, 51);
zathorix 0:0afde8480a61 193 writeLetter(2, ':', 66, 47);
zathorix 0:0afde8480a61 194
zathorix 0:0afde8480a61 195 writeNumber(2, power_in, 66, 13, 5, false);
zathorix 0:0afde8480a61 196 writeLetter(2, 'W', 66, 0);
zathorix 0:0afde8480a61 197
zathorix 0:0afde8480a61 198 writeLetter(2, 'P', 56, 59);
zathorix 0:0afde8480a61 199 writeLetter(2, 'o', 56, 55);
zathorix 0:0afde8480a61 200 writeLetter(2, 'u', 56, 51);
zathorix 0:0afde8480a61 201 writeLetter(2, 't', 56, 47);
zathorix 0:0afde8480a61 202 writeLetter(2, ':', 56, 43);
zathorix 0:0afde8480a61 203
zathorix 0:0afde8480a61 204 writeNumber(2, power_out, 56, 13, 5, false);
zathorix 0:0afde8480a61 205 writeLetter(2, 'W', 56, 0);
zathorix 0:0afde8480a61 206
zathorix 0:0afde8480a61 207 writeLetter(2, 'V', 46, 59);
zathorix 0:0afde8480a61 208 writeLetter(2, 'i', 46, 55);
zathorix 0:0afde8480a61 209 writeLetter(2, 'n', 46, 51);
zathorix 0:0afde8480a61 210 writeLetter(2, ':', 46, 47);
zathorix 0:0afde8480a61 211
zathorix 0:0afde8480a61 212 writeNumber(2, voltage_in, 46, 13, 5, false);
zathorix 0:0afde8480a61 213 writeLetter(2, 'V', 46, 0);
zathorix 0:0afde8480a61 214
zathorix 0:0afde8480a61 215 writeLetter(2, 'T', 36, 59);
zathorix 0:0afde8480a61 216 writeLetter(2, 'm', 36, 55);
zathorix 0:0afde8480a61 217 writeLetter(2, 'o', 36, 51);
zathorix 0:0afde8480a61 218 writeLetter(2, 't', 36, 47);
zathorix 0:0afde8480a61 219 writeLetter(2, ':', 36, 43);
zathorix 0:0afde8480a61 220
zathorix 0:0afde8480a61 221 writeNumber(2, motor_temperature, 36, 13, 3, false);
zathorix 0:0afde8480a61 222 writeLetter(2, '*', 36, 4);
zathorix 0:0afde8480a61 223 writeLetter(2, 'C', 36, 0);
zathorix 0:0afde8480a61 224
zathorix 0:0afde8480a61 225 writeLetter(2, 'T', 26, 59);
zathorix 0:0afde8480a61 226 writeLetter(2, 'b', 26, 55);
zathorix 0:0afde8480a61 227 writeLetter(2, 'a', 26, 51);
zathorix 0:0afde8480a61 228 writeLetter(2, 't', 26, 47);
zathorix 0:0afde8480a61 229 writeLetter(2, ':', 26, 43);
zathorix 0:0afde8480a61 230
zathorix 0:0afde8480a61 231 writeNumber(2, battery_temperature, 26, 13, 3, false);
zathorix 0:0afde8480a61 232 writeLetter(2, '*', 26, 4);
zathorix 0:0afde8480a61 233 writeLetter(2, 'C', 26, 0);
zathorix 0:0afde8480a61 234
zathorix 0:0afde8480a61 235 writeLetter(2, 'N', 16, 59);
zathorix 0:0afde8480a61 236 writeLetter(2, 'm', 16, 55);
zathorix 0:0afde8480a61 237 writeLetter(2, 'o', 16, 51);
zathorix 0:0afde8480a61 238 writeLetter(2, 't', 16, 47);
zathorix 0:0afde8480a61 239 writeLetter(2, ':', 16, 43);
zathorix 0:0afde8480a61 240
zathorix 0:0afde8480a61 241 writeNumber(2, rpm_motor, 16, 13, 4, false);
zathorix 0:0afde8480a61 242 writeLetter(2, 'r', 16, 8);
zathorix 0:0afde8480a61 243 writeLetter(2, 'p', 16, 4);
zathorix 0:0afde8480a61 244 writeLetter(2, 'm', 16, 0);
zathorix 0:0afde8480a61 245 }
zathorix 0:0afde8480a61 246
zathorix 0:0afde8480a61 247 void Dashboard::displayData2(int battery_voltage, int battery_temperature, int motor_temperature, int voltage_in, int power_out, int power_in)
zathorix 0:0afde8480a61 248 {
zathorix 0:0afde8480a61 249 if (battery_voltage < 1) battery_voltage = 0;
zathorix 0:0afde8480a61 250
zathorix 0:0afde8480a61 251 writeLetter(2, 'V', 66, 59);
zathorix 0:0afde8480a61 252 writeLetter(2, 'b', 66, 55);
zathorix 0:0afde8480a61 253 writeLetter(2, 'a', 66, 51);
zathorix 0:0afde8480a61 254 writeLetter(2, 't', 66, 47);
zathorix 0:0afde8480a61 255 writeLetter(2, ':', 66, 43);
zathorix 0:0afde8480a61 256
zathorix 0:0afde8480a61 257 writeNumber(2, battery_voltage, 66, 13, 5, false);
zathorix 0:0afde8480a61 258 writeLetter(2, 'V', 66, 0);
zathorix 0:0afde8480a61 259
zathorix 0:0afde8480a61 260 }
zathorix 0:0afde8480a61 261
zathorix 0:0afde8480a61 262 void Dashboard::checkForErrors(int current_menu, int velocity, int battery_temperature, int motor_temperature, int battery_percentage_left, int battery_minutes_left)
zathorix 0:0afde8480a61 263 {
zathorix 0:0afde8480a61 264 int amount_of_errors = 0;
zathorix 0:0afde8480a61 265
zathorix 0:0afde8480a61 266 //------------------------------CONDITIONS FOR ERRORS----------------------------------------------
zathorix 0:0afde8480a61 267 //errors on LEDs (4x), also display in error overview, last LED end of function
zathorix 0:0afde8480a61 268 if (battery_temperature > MAX_TEMP_BATTERY) battery_temp_alert = true; //battery temperature too high LED
zathorix 0:0afde8480a61 269 else battery_temp_alert = false;
zathorix 0:0afde8480a61 270 if (motor_temperature > MAX_TEMP_MOTOR) motor_temp_alert = true; //motor temperature too high LED
zathorix 0:0afde8480a61 271 else motor_temp_alert = false;
zathorix 0:0afde8480a61 272 if (battery_percentage_left <= BATTERY_LOW_ALERT || battery_minutes_left <= BATTERY_LOW_ALERT) battery_low_alert = true;//battery low LED
zathorix 0:0afde8480a61 273 else battery_low_alert = false;
zathorix 0:0afde8480a61 274 if (velocity > 20) fly_ready_alert = true; //Errors exist LED
zathorix 0:0afde8480a61 275 else fly_ready_alert = false;
zathorix 0:0afde8480a61 276 //------------------------------END CONDITIONS FOR ERRORS-----------------------------------------
zathorix 0:0afde8480a61 277
zathorix 0:0afde8480a61 278 //------------------------------REACTIONS FOR ERRORS----------------------------------------------
zathorix 0:0afde8480a61 279 //set essential LEDs for significant errors
zathorix 0:0afde8480a61 280 if (motor_temp_alert) motor_temp_alert_led = 1;
zathorix 0:0afde8480a61 281 else motor_temp_alert_led = 0;
zathorix 0:0afde8480a61 282 if (battery_temp_alert) battery_temp_alert_led = 1;
zathorix 0:0afde8480a61 283 else battery_temp_alert_led = 0;
zathorix 0:0afde8480a61 284 if (battery_low_alert) battery_low_alert_led = 1;
zathorix 0:0afde8480a61 285 else battery_low_alert_led = 0;
zathorix 0:0afde8480a61 286 if (fly_ready_alert) fly_ready_led = 1;
zathorix 0:0afde8480a61 287 else fly_ready_led = 0;
zathorix 0:0afde8480a61 288 //------------------------------END REACTIONS FOR ERRORS-----------------------------------------
zathorix 0:0afde8480a61 289
zathorix 0:0afde8480a61 290 //count errors for main screen
zathorix 0:0afde8480a61 291 if (current_menu == 0) {
zathorix 0:0afde8480a61 292 if (motor_temp_alert) amount_of_errors++;
zathorix 0:0afde8480a61 293 if (battery_temp_alert) amount_of_errors++;
zathorix 0:0afde8480a61 294 if (battery_low_alert) amount_of_errors++;
zathorix 0:0afde8480a61 295 }
zathorix 0:0afde8480a61 296 /*
zathorix 0:0afde8480a61 297 //if in error screen display ALL errors
zathorix 0:0afde8480a61 298 if (current_menu == 1) {
zathorix 0:0afde8480a61 299 writeLetter(2, 'E', 66, 59);
zathorix 0:0afde8480a61 300 writeLetter(2, 'r', 66, 55);
zathorix 0:0afde8480a61 301 writeLetter(2, 'r', 66, 51);
zathorix 0:0afde8480a61 302 writeLetter(2, 'o', 66, 47);
zathorix 0:0afde8480a61 303 writeLetter(2, 'r', 66, 43);
zathorix 0:0afde8480a61 304 writeLetter(2, 's', 66, 39);
zathorix 0:0afde8480a61 305 writeLetter(2, ':', 66, 35);
zathorix 0:0afde8480a61 306
zathorix 0:0afde8480a61 307 if (motor_temp_alert) {
zathorix 0:0afde8480a61 308 writeLetter(2, 'E', 57 - (10*amount_of_errors), 59);
zathorix 0:0afde8480a61 309 writeNumber(2, 1, 57 - (10*amount_of_errors), 55, 1, false);
zathorix 0:0afde8480a61 310 amount_of_errors++;
zathorix 0:0afde8480a61 311 }
zathorix 0:0afde8480a61 312 if (battery_temp_alert) {
zathorix 0:0afde8480a61 313 writeLetter(2, 'E', 57 - (10*amount_of_errors), 59);
zathorix 0:0afde8480a61 314 writeNumber(2, 2, 57 - (10*amount_of_errors), 55, 1, false);
zathorix 0:0afde8480a61 315 amount_of_errors++;
zathorix 0:0afde8480a61 316 }
zathorix 0:0afde8480a61 317 if (battery_low_alert) {
zathorix 0:0afde8480a61 318 writeLetter(2, 'E', 57 - (10*amount_of_errors), 59);
zathorix 0:0afde8480a61 319 writeNumber(2, 3, 57 - (10*amount_of_errors), 55, 1, false);
zathorix 0:0afde8480a61 320 amount_of_errors++;
zathorix 0:0afde8480a61 321 }
zathorix 0:0afde8480a61 322 //if (error_alert) {
zathorix 0:0afde8480a61 323 // writeLetter(2, 'E', 57 - (10*amount_of_errors), 59);
zathorix 0:0afde8480a61 324 // writeNumber(2, 4, 57 - (10*amount_of_errors), 55, 1, false);
zathorix 0:0afde8480a61 325 // amount_of_errors++;
zathorix 0:0afde8480a61 326 // }
zathorix 0:0afde8480a61 327
zathorix 0:0afde8480a61 328 for (int j = amount_of_errors; j <= 25; j++) {
zathorix 0:0afde8480a61 329 if (j < 6) {
zathorix 0:0afde8480a61 330 writeLetter(2, ' ', 57 - (10*j), 59);
zathorix 0:0afde8480a61 331 writeLetter(2, ' ', 57 - (10*j), 55);
zathorix 0:0afde8480a61 332 }
zathorix 0:0afde8480a61 333 //else if (j > 5 && j < 11) writeLetter(2, ' ', 64 - (10*(j-5)), 47);
zathorix 0:0afde8480a61 334 // else if (j > 10 && j < 16) writeLetter(2, ' ', 64 - (10*(j-10)), 35);
zathorix 0:0afde8480a61 335 // else if (j > 15 && j < 21) writeLetter(2, ' ', 64 - (10*(j-15)), 23);
zathorix 0:0afde8480a61 336 // else if (j > 20 && j < 26) writeLetter(2, ' ', 64 - (10*(j-20)), 11);
zathorix 0:0afde8480a61 337 }
zathorix 0:0afde8480a61 338
zathorix 0:0afde8480a61 339 if (amount_of_errors < 1) {
zathorix 0:0afde8480a61 340 amount_of_errors = 0;
zathorix 0:0afde8480a61 341 error_alert = false;
zathorix 0:0afde8480a61 342 } else error_alert = true;
zathorix 0:0afde8480a61 343 if (amount_of_errors < 25) writeLetter(2, ' ', 66, 0);
zathorix 0:0afde8480a61 344 else if (amount_of_errors > 25) {
zathorix 0:0afde8480a61 345 amount_of_errors = 25;
zathorix 0:0afde8480a61 346 writeLetter(2, '+', 66, 0);
zathorix 0:0afde8480a61 347 }
zathorix 0:0afde8480a61 348 writeNumber(2, amount_of_errors, 66, 4, 2, false);
zathorix 0:0afde8480a61 349 }
zathorix 0:0afde8480a61 350 if (current_menu == 0 && error_alert) {
zathorix 0:0afde8480a61 351 //draw alert logo if errors
zathorix 0:0afde8480a61 352 drawBitmap(2, 91, 64, 48, 7, 10);
zathorix 0:0afde8480a61 353 } else if (current_menu == 0 && !error_alert) {
zathorix 0:0afde8480a61 354 //clear if no errors
zathorix 0:0afde8480a61 355 drawBitmap(2, 92, 64, 48, 7, 10);
zathorix 0:0afde8480a61 356 } */
zathorix 0:0afde8480a61 357 }
zathorix 0:0afde8480a61 358
zathorix 0:0afde8480a61 359 void Dashboard::showBatteryMinutesLeft(int battery_minutes_left)
zathorix 0:0afde8480a61 360 {
zathorix 0:0afde8480a61 361 if (battery_minutes_left < 1) battery_minutes_left = 0;
zathorix 0:0afde8480a61 362 //show minutes left
zathorix 0:0afde8480a61 363 writeNumber(3, battery_minutes_left, 55, 20, 3, true);
zathorix 0:0afde8480a61 364
zathorix 0:0afde8480a61 365 writeLetter(3, 'm', 60, 13);
zathorix 0:0afde8480a61 366 writeLetter(3, 'i', 60, 9);
zathorix 0:0afde8480a61 367 writeLetter(3, 'n', 60, 5);
zathorix 0:0afde8480a61 368 }
zathorix 0:0afde8480a61 369
zathorix 4:f6aa318ecda0 370 void Dashboard::showBatteryPercentageLeft(unsigned char battery_percentage_left)
zathorix 0:0afde8480a61 371 {
zathorix 0:0afde8480a61 372 if (battery_percentage_left > 99) battery_percentage_left = 100;
zathorix 0:0afde8480a61 373 else if (battery_percentage_left < 0) battery_percentage_left = 0;
zathorix 0:0afde8480a61 374
zathorix 0:0afde8480a61 375 //show percentage left
zathorix 0:0afde8480a61 376 writeNumber(3, battery_percentage_left, 85, 20, 3, true);
zathorix 0:0afde8480a61 377
zathorix 0:0afde8480a61 378 //drawBitmap(1, 91, 85, 10, 10, 20);
zathorix 0:0afde8480a61 379 writeLetter(3, '%', 90, 13);
zathorix 0:0afde8480a61 380
zathorix 0:0afde8480a61 381 //show battery logo
zathorix 0:0afde8480a61 382 for (int i = 18; i <= 35; i++) {
zathorix 0:0afde8480a61 383 drawPixel(3, i, 18, 0x0F);
zathorix 0:0afde8480a61 384 }
zathorix 0:0afde8480a61 385 for (int i = 18; i <= 35; i++) {
zathorix 0:0afde8480a61 386 drawPixel(3, i, 45, 0xF0);
zathorix 0:0afde8480a61 387 }
zathorix 0:0afde8480a61 388 for (int i = 18; i <= 45; i++) {
zathorix 0:0afde8480a61 389 drawPixel(3, 18, i, 0xFF);
zathorix 0:0afde8480a61 390 }
zathorix 0:0afde8480a61 391 for (int i = 18; i <= 45; i++) {
zathorix 0:0afde8480a61 392 drawPixel(3, 36, i, 0xFF);
zathorix 0:0afde8480a61 393 }
zathorix 0:0afde8480a61 394 for (int i = 22; i <= 31; i++) {
zathorix 0:0afde8480a61 395 drawPixel(3, i, 16, 0xF0);
zathorix 0:0afde8480a61 396 }
zathorix 0:0afde8480a61 397 drawPixel(3, 22, 17, 0xFF);
zathorix 0:0afde8480a61 398 drawPixel(3, 31, 17, 0xFF);
zathorix 0:0afde8480a61 399
zathorix 0:0afde8480a61 400 //drawBitmap(1, 75, 15, 20, 30, 24);
zathorix 0:0afde8480a61 401 updateBatteryBar(3, battery_percentage_left, 20, 18, 26, 15);
zathorix 0:0afde8480a61 402 }
zathorix 0:0afde8480a61 403
zathorix 0:0afde8480a61 404 void Dashboard::showRaceMinutesDone(int race_minutes_done)
zathorix 0:0afde8480a61 405 {
zathorix 0:0afde8480a61 406 if (race_minutes_done < 1) race_minutes_done = 0;
zathorix 0:0afde8480a61 407 //show minutes left
zathorix 0:0afde8480a61 408 writeNumber(1, race_minutes_done, 85, 20, 3, true);
zathorix 0:0afde8480a61 409
zathorix 0:0afde8480a61 410 writeLetter(1, 'm', 90, 13);
zathorix 0:0afde8480a61 411 writeLetter(1, 'i', 90, 9);
zathorix 0:0afde8480a61 412 writeLetter(1, 'n', 90, 5);
zathorix 0:0afde8480a61 413 }
zathorix 0:0afde8480a61 414
zathorix 0:0afde8480a61 415 void Dashboard::showRaceMinutesLeft(int race_minutes_left)
zathorix 0:0afde8480a61 416 {
zathorix 0:0afde8480a61 417 if (race_minutes_left < 1) race_minutes_left = 0;
zathorix 0:0afde8480a61 418 //show minutes left
zathorix 0:0afde8480a61 419 writeNumber(1, race_minutes_left, 25, 20, 3, true);
zathorix 0:0afde8480a61 420
zathorix 0:0afde8480a61 421 writeLetter(1, 'm', 30, 13);
zathorix 0:0afde8480a61 422 writeLetter(1, 'i', 30, 9);
zathorix 0:0afde8480a61 423 writeLetter(1, 'n', 30, 5);
zathorix 0:0afde8480a61 424 }
zathorix 0:0afde8480a61 425
zathorix 0:0afde8480a61 426 void Dashboard::showRacePercentageLeft(int race_percentage_left)
zathorix 0:0afde8480a61 427 {
zathorix 0:0afde8480a61 428 if (race_percentage_left > 99) race_percentage_left = 100;
zathorix 0:0afde8480a61 429 else if (race_percentage_left < 0) race_percentage_left = 0;
zathorix 0:0afde8480a61 430
zathorix 0:0afde8480a61 431 //show percentage left
zathorix 0:0afde8480a61 432 writeNumber(1, race_percentage_left, 55, 20, 3, true);
zathorix 0:0afde8480a61 433 writeLetter(1, '%', 60, 13);
zathorix 0:0afde8480a61 434 }
zathorix 0:0afde8480a61 435
zathorix 0:0afde8480a61 436 void Dashboard::checkTransmitter(bool transmitting)
zathorix 0:0afde8480a61 437 {
zathorix 0:0afde8480a61 438 if (time(0) % 2 == 0) transmitting = !transmitting;
zathorix 0:0afde8480a61 439 if (transmitting) {
zathorix 0:0afde8480a61 440 writeLetter(2, 'T', 65, 12);
zathorix 0:0afde8480a61 441 writeLetter(2, 'x', 65, 8);
zathorix 0:0afde8480a61 442 } else {
zathorix 0:0afde8480a61 443 writeLetter(2, ' ', 65, 12);
zathorix 0:0afde8480a61 444 writeLetter(2, ' ', 65, 8);
zathorix 0:0afde8480a61 445 }
zathorix 0:0afde8480a61 446 }
zathorix 0:0afde8480a61 447
zathorix 4:f6aa318ecda0 448 void Dashboard::displayTime(long long int timems)
zathorix 4:f6aa318ecda0 449 { long long int time = timems/1000;
zathorix 0:0afde8480a61 450 //int seconds = (int) (time(NULL) % 60);
zathorix 4:f6aa318ecda0 451 int minutes = (int) ((time / 60) % 60);
zathorix 4:f6aa318ecda0 452 int hours = (int) ((time / (60*60)) % 24 + 2);
zathorix 0:0afde8480a61 453
zathorix 0:0afde8480a61 454 drawBitmap(2, hours / 10 % 10, 65, 39, 4, 7);
zathorix 0:0afde8480a61 455 drawBitmap(2, hours % 10, 65, 35, 4, 7);
zathorix 0:0afde8480a61 456 writeLetter(2, ':', 65, 31);
zathorix 0:0afde8480a61 457 drawBitmap(2, minutes / 10 % 10, 65, 27, 4, 7);
zathorix 0:0afde8480a61 458 drawBitmap(2, minutes % 10, 65, 23, 4, 7);
zathorix 0:0afde8480a61 459 }
zathorix 0:0afde8480a61 460
zathorix 0:0afde8480a61 461 void Dashboard::displayAdvisedThrottle(int advised_throttle_power)
zathorix 0:0afde8480a61 462 {
zathorix 0:0afde8480a61 463 // writeNumber(2, advised_throttle_power, 41, 31, 4, false);
zathorix 0:0afde8480a61 464 // writeLetter(2, 'r', 41, 21);
zathorix 0:0afde8480a61 465 // writeLetter(2, 'p', 41, 17);
zathorix 0:0afde8480a61 466 // writeLetter(2, 'm', 41, 13);
zathorix 0:0afde8480a61 467 }
zathorix 0:0afde8480a61 468
zathorix 0:0afde8480a61 469 void Dashboard::displayThrottle(int throttle_power, bool reverse)
zathorix 0:0afde8480a61 470 {
zathorix 0:0afde8480a61 471 writeNumber(2, throttle_power, 45, 31, 4, false);
zathorix 2:1627da2ca15b 472 writeLetter(2, '%', 45, 21);
zathorix 0:0afde8480a61 473
zathorix 0:0afde8480a61 474 if (reverse) {
zathorix 0:0afde8480a61 475 writeLetter(2, 'R', 15, 31);
zathorix 0:0afde8480a61 476 //blink box around R
zathorix 0:0afde8480a61 477 if (time(0) % 2 == 0) {
zathorix 0:0afde8480a61 478 for (int i = 12; i < 25; i++) {
zathorix 0:0afde8480a61 479 drawPixel(2, i, 30, 0xF0);
zathorix 0:0afde8480a61 480 }
zathorix 0:0afde8480a61 481 for (int i = 12; i < 25; i++) {
zathorix 0:0afde8480a61 482 drawPixel(2, i, 35, 0xF0);
zathorix 0:0afde8480a61 483 }
zathorix 0:0afde8480a61 484 for (int i = 31; i <= 35; i++) {
zathorix 0:0afde8480a61 485 drawPixel(2, 12, i, 0xFF);
zathorix 0:0afde8480a61 486 }
zathorix 0:0afde8480a61 487 for (int i = 31; i <= 35; i++) {
zathorix 0:0afde8480a61 488 drawPixel(2, 24, i, 0xFF);
zathorix 0:0afde8480a61 489 }
zathorix 0:0afde8480a61 490 } else {
zathorix 0:0afde8480a61 491 for (int i = 12; i < 25; i++) {
zathorix 0:0afde8480a61 492 drawPixel(2, i, 30, 0x00);
zathorix 0:0afde8480a61 493 }
zathorix 0:0afde8480a61 494 for (int i = 12; i < 25; i++) {
zathorix 0:0afde8480a61 495 drawPixel(2, i, 35, 0x00);
zathorix 0:0afde8480a61 496 }
zathorix 0:0afde8480a61 497 for (int i = 31; i <= 35; i++) {
zathorix 0:0afde8480a61 498 drawPixel(2, 12, i, 0x00);
zathorix 0:0afde8480a61 499 }
zathorix 0:0afde8480a61 500 for (int i = 31; i <= 35; i++) {
zathorix 0:0afde8480a61 501 drawPixel(2, 24, i, 0x00);
zathorix 0:0afde8480a61 502 }
zathorix 0:0afde8480a61 503 }
zathorix 0:0afde8480a61 504 }
zathorix 0:0afde8480a61 505
zathorix 0:0afde8480a61 506 else {
zathorix 0:0afde8480a61 507 for (int i = 12; i < 25; i++) {
zathorix 0:0afde8480a61 508 drawPixel(2, i, 30, 0xF0);
zathorix 0:0afde8480a61 509 }
zathorix 0:0afde8480a61 510 for (int i = 12; i < 25; i++) {
zathorix 0:0afde8480a61 511 drawPixel(2, i, 35, 0xF0);
zathorix 0:0afde8480a61 512 }
zathorix 0:0afde8480a61 513 for (int i = 31; i <= 35; i++) {
zathorix 0:0afde8480a61 514 drawPixel(2, 12, i, 0xFF);
zathorix 0:0afde8480a61 515 }
zathorix 0:0afde8480a61 516 for (int i = 31; i <= 35; i++) {
zathorix 0:0afde8480a61 517 drawPixel(2, 24, i, 0xFF);
zathorix 0:0afde8480a61 518 }
zathorix 0:0afde8480a61 519 writeLetter(2, 'D', 15, 31);
zathorix 0:0afde8480a61 520 }
zathorix 0:0afde8480a61 521 }
zathorix 0:0afde8480a61 522 void Dashboard::displayVelocity(int velocity)
zathorix 0:0afde8480a61 523 {
zathorix 0:0afde8480a61 524 if (velocity < 1) velocity = 0;
zathorix 0:0afde8480a61 525
zathorix 0:0afde8480a61 526 writeNumber(2, velocity, 35, 31, 3, false);
zathorix 0:0afde8480a61 527 writeLetter(2, 'k', 35, 21);
zathorix 0:0afde8480a61 528 writeLetter(2, 'm', 35, 17);
zathorix 0:0afde8480a61 529 writeLetter(2, '/', 35, 13);
zathorix 0:0afde8480a61 530 writeLetter(2, 'h', 35, 9);
zathorix 0:0afde8480a61 531 }
zathorix 0:0afde8480a61 532
zathorix 0:0afde8480a61 533 void Dashboard::writeLetter(int screen_number, char input, int row, int col)
zathorix 0:0afde8480a61 534 {
zathorix 0:0afde8480a61 535 int index_ = 63;
zathorix 0:0afde8480a61 536 if (input == 'a') index_ = 10;
zathorix 0:0afde8480a61 537 if (input == 'b') index_ = 11;
zathorix 0:0afde8480a61 538 if (input == 'c') index_ = 12;
zathorix 0:0afde8480a61 539 if (input == 'd') index_ = 13;
zathorix 0:0afde8480a61 540 if (input == 'e') index_ = 14;
zathorix 0:0afde8480a61 541 if (input == 'f') index_ = 15;
zathorix 0:0afde8480a61 542 if (input == 'g') index_ = 16;
zathorix 0:0afde8480a61 543 if (input == 'h') index_ = 17;
zathorix 0:0afde8480a61 544 if (input == 'i') index_ = 18;
zathorix 0:0afde8480a61 545 if (input == 'j') index_ = 19;
zathorix 0:0afde8480a61 546 if (input == 'k') index_ = 20;
zathorix 0:0afde8480a61 547 if (input == 'l') index_ = 21;
zathorix 0:0afde8480a61 548 if (input == 'm') index_ = 22;
zathorix 0:0afde8480a61 549 if (input == 'n') index_ = 23;
zathorix 0:0afde8480a61 550 if (input == 'o') index_ = 24;
zathorix 0:0afde8480a61 551 if (input == 'p') index_ = 25;
zathorix 0:0afde8480a61 552 if (input == 'q') index_ = 26;
zathorix 0:0afde8480a61 553 if (input == 'r') index_ = 27;
zathorix 0:0afde8480a61 554 if (input == 's') index_ = 28;
zathorix 0:0afde8480a61 555 if (input == 't') index_ = 29;
zathorix 0:0afde8480a61 556 if (input == 'u') index_ = 30;
zathorix 0:0afde8480a61 557 if (input == 'v') index_ = 31;
zathorix 0:0afde8480a61 558 if (input == 'w') index_ = 32;
zathorix 0:0afde8480a61 559 if (input == 'x') index_ = 33;
zathorix 0:0afde8480a61 560 if (input == 'y') index_ = 34;
zathorix 0:0afde8480a61 561 if (input == 'z') index_ = 35;
zathorix 0:0afde8480a61 562 if (input == 'A') index_ = 36;
zathorix 0:0afde8480a61 563 if (input == 'B') index_ = 37;
zathorix 0:0afde8480a61 564 if (input == 'C') index_ = 38;
zathorix 0:0afde8480a61 565 if (input == 'D') index_ = 39;
zathorix 0:0afde8480a61 566 if (input == 'E') index_ = 40;
zathorix 0:0afde8480a61 567 if (input == 'F') index_ = 41;
zathorix 0:0afde8480a61 568 if (input == 'G') index_ = 42;
zathorix 0:0afde8480a61 569 if (input == 'H') index_ = 43;
zathorix 0:0afde8480a61 570 if (input == 'I') index_ = 44;
zathorix 0:0afde8480a61 571 if (input == 'J') index_ = 45;
zathorix 0:0afde8480a61 572 if (input == 'K') index_ = 46;
zathorix 0:0afde8480a61 573 if (input == 'L') index_ = 47;
zathorix 0:0afde8480a61 574 if (input == 'M') index_ = 48;
zathorix 0:0afde8480a61 575 if (input == 'N') index_ = 49;
zathorix 0:0afde8480a61 576 if (input == 'O') index_ = 50;
zathorix 0:0afde8480a61 577 if (input == 'P') index_ = 51;
zathorix 0:0afde8480a61 578 if (input == 'Q') index_ = 52;
zathorix 0:0afde8480a61 579 if (input == 'R') index_ = 53;
zathorix 0:0afde8480a61 580 if (input == 'S') index_ = 54;
zathorix 0:0afde8480a61 581 if (input == 'T') index_ = 55;
zathorix 0:0afde8480a61 582 if (input == 'U') index_ = 56;
zathorix 0:0afde8480a61 583 if (input == 'V') index_ = 57;
zathorix 0:0afde8480a61 584 if (input == 'W') index_ = 58;
zathorix 0:0afde8480a61 585 if (input == 'X') index_ = 59;
zathorix 0:0afde8480a61 586 if (input == 'Y') index_ = 60;
zathorix 0:0afde8480a61 587 if (input == 'Z') index_ = 61;
zathorix 0:0afde8480a61 588 if (input == ';') index_ = 62;
zathorix 0:0afde8480a61 589 if (input == '-') index_ = 63;
zathorix 0:0afde8480a61 590 if (input == ':') index_ = 64;
zathorix 0:0afde8480a61 591 if (input == '+') index_ = 65;
zathorix 0:0afde8480a61 592 if (input == '/') index_ = 66;
zathorix 0:0afde8480a61 593 if (input == '%') index_ = 67;
zathorix 0:0afde8480a61 594 if (input == '?') index_ = 68;
zathorix 0:0afde8480a61 595 if (input == ',') index_ = 69;
zathorix 0:0afde8480a61 596 if (input == '(') index_ = 70;
zathorix 0:0afde8480a61 597 if (input == ')') index_ = 71;
zathorix 0:0afde8480a61 598 if (input == '.') index_ = 72;
zathorix 0:0afde8480a61 599 if (input == ' ') index_ = 73;
zathorix 0:0afde8480a61 600 //logos
zathorix 0:0afde8480a61 601 if (input == '*') index_ = 76;
zathorix 0:0afde8480a61 602
zathorix 0:0afde8480a61 603 drawBitmap(screen_number, index_, row, col, 4, 7);
zathorix 0:0afde8480a61 604 }
zathorix 0:0afde8480a61 605
zathorix 0:0afde8480a61 606 void Dashboard::writeNumber(int screen_number, int input_number, char row, char col, int digits, bool large)
zathorix 0:0afde8480a61 607 {
zathorix 0:0afde8480a61 608 unsigned int number_of_digits = 0;
zathorix 0:0afde8480a61 609 int counter = input_number;
zathorix 0:0afde8480a61 610
zathorix 0:0afde8480a61 611 do {
zathorix 0:0afde8480a61 612 ++number_of_digits;
zathorix 0:0afde8480a61 613 counter /= 10;
zathorix 0:0afde8480a61 614 } while (counter);
zathorix 0:0afde8480a61 615
zathorix 0:0afde8480a61 616 for (int i = 0; i < number_of_digits; i++) {
zathorix 0:0afde8480a61 617 int result = (int) pow((double) 10,i);
zathorix 0:0afde8480a61 618 if (large) drawBitmap(screen_number, 80 + (input_number / (result) % 10), row, col + (11*i), 10, 20);
zathorix 0:0afde8480a61 619 else drawBitmap(screen_number, input_number / (result) % 10, row, col + (4*i), 4, 7);
zathorix 0:0afde8480a61 620 }
zathorix 0:0afde8480a61 621 for (int i = number_of_digits; i < digits; i++) {
zathorix 0:0afde8480a61 622 if (large) drawBitmap(screen_number, 90, row, col + (11*i), 10, 20);
zathorix 0:0afde8480a61 623 else writeLetter(screen_number, ' ', row, col + (4*i));
zathorix 0:0afde8480a61 624 }
zathorix 0:0afde8480a61 625 }
zathorix 0:0afde8480a61 626
zathorix 0:0afde8480a61 627 void Dashboard::drawPixel(int screen_number, uint8_t row, uint8_t col, uint8_t brightness)
zathorix 0:0afde8480a61 628 {
zathorix 0:0afde8480a61 629 command(screen_number, 0x15);
zathorix 0:0afde8480a61 630 command(screen_number, col);
zathorix 0:0afde8480a61 631 command(screen_number, col);
zathorix 0:0afde8480a61 632
zathorix 0:0afde8480a61 633 command(screen_number, 0x75);
zathorix 0:0afde8480a61 634 command(screen_number, row);
zathorix 0:0afde8480a61 635 command(screen_number, row);
zathorix 0:0afde8480a61 636
zathorix 0:0afde8480a61 637 data(screen_number, brightness);
zathorix 0:0afde8480a61 638 }
zathorix 0:0afde8480a61 639
zathorix 0:0afde8480a61 640 void Dashboard::clearDisplay(int screen_number)
zathorix 0:0afde8480a61 641 {
zathorix 0:0afde8480a61 642 command(screen_number, 0x15);
zathorix 0:0afde8480a61 643 command(screen_number, 0x00);
zathorix 0:0afde8480a61 644 command(screen_number, 0xFF);
zathorix 0:0afde8480a61 645
zathorix 0:0afde8480a61 646 command(screen_number, 0x75);
zathorix 0:0afde8480a61 647 command(screen_number, 0x00);
zathorix 0:0afde8480a61 648 command(screen_number, 0xFF);
zathorix 0:0afde8480a61 649
zathorix 0:0afde8480a61 650 if (screen_number == 2) {
zathorix 0:0afde8480a61 651 for (int i = 0; i < (128*64); i++) {
zathorix 0:0afde8480a61 652 data(screen_number, 0x00);
zathorix 0:0afde8480a61 653 }
zathorix 0:0afde8480a61 654 } else {
zathorix 0:0afde8480a61 655 for (int i = 0; i < (128*128); i++) {
zathorix 0:0afde8480a61 656 data(screen_number, 0x00);
zathorix 0:0afde8480a61 657 }
zathorix 0:0afde8480a61 658 }
zathorix 0:0afde8480a61 659 }
zathorix 0:0afde8480a61 660
zathorix 0:0afde8480a61 661 void Dashboard::updateProgressCircle(int screen_number, int percentage)
zathorix 0:0afde8480a61 662 {
zathorix 0:0afde8480a61 663 //circular battery percentage bar
zathorix 0:0afde8480a61 664 int radius = 31;
zathorix 0:0afde8480a61 665 for (double theta = 0; theta <= 0.01*percentage*2*PI; theta += 0.01) {
zathorix 0:0afde8480a61 666 drawPixel(screen_number, (64+2*radius*(cos(theta))), (32+radius*(sin(theta))), 0xFF);
zathorix 0:0afde8480a61 667 }
zathorix 0:0afde8480a61 668 for (double theta = 0.01*percentage*2*PI; theta <= 2*PI ; theta += 0.01) {
zathorix 0:0afde8480a61 669 drawPixel(screen_number, (64+2*radius*(cos(theta))), (32+radius*(sin(theta))), 0x00);
zathorix 0:0afde8480a61 670 }
zathorix 0:0afde8480a61 671 }
zathorix 0:0afde8480a61 672
zathorix 0:0afde8480a61 673 void Dashboard::updatePowerBars(int power_out, int power_in)
zathorix 0:0afde8480a61 674 {
zathorix 0:0afde8480a61 675 if (power_in < 1) power_in = 0;
zathorix 0:0afde8480a61 676 else if (power_in > MAX_POWER_IN) power_in = MAX_POWER_IN;
zathorix 0:0afde8480a61 677 if (power_out < 1) power_out = 0;
zathorix 0:0afde8480a61 678 else if (power_out > MAX_POWER_OUT) power_out = MAX_POWER_OUT;
zathorix 0:0afde8480a61 679
zathorix 0:0afde8480a61 680 //draw Powerbars
zathorix 0:0afde8480a61 681 for (int i = 12; i < 74; i++) {
zathorix 0:0afde8480a61 682 drawPixel(2, i, 0, 0x0F);
zathorix 0:0afde8480a61 683 }
zathorix 0:0afde8480a61 684 for (int i = 12; i < 74; i++) {
zathorix 0:0afde8480a61 685 drawPixel(2, i, 4, 0xF0);
zathorix 0:0afde8480a61 686 }
zathorix 0:0afde8480a61 687 for (int i = 0; i <= 4; i++) {
zathorix 0:0afde8480a61 688 drawPixel(2, 12, i, 0xFF);
zathorix 0:0afde8480a61 689 }
zathorix 0:0afde8480a61 690 for (int i = 0; i <= 4; i++) {
zathorix 0:0afde8480a61 691 drawPixel(2, 73, i, 0xFF);
zathorix 0:0afde8480a61 692 }
zathorix 0:0afde8480a61 693 for (int i = 12; i < 74; i++) {
zathorix 0:0afde8480a61 694 drawPixel(2, i, 59, 0x0F);
zathorix 0:0afde8480a61 695 }
zathorix 0:0afde8480a61 696 for (int i = 12; i < 74; i++) {
zathorix 0:0afde8480a61 697 drawPixel(2, i, 63, 0xF0);
zathorix 0:0afde8480a61 698 }
zathorix 0:0afde8480a61 699 for (int i = 59; i <= 63; i++) {
zathorix 0:0afde8480a61 700 drawPixel(2, 12, i, 0xFF);
zathorix 0:0afde8480a61 701 }
zathorix 0:0afde8480a61 702 for (int i = 59; i <= 63; i++) {
zathorix 0:0afde8480a61 703 drawPixel(2, 73, i, 0xFF);
zathorix 0:0afde8480a61 704 }
zathorix 0:0afde8480a61 705
zathorix 0:0afde8480a61 706 // writeLetter(2 , 'P', 12, 55);
zathorix 0:0afde8480a61 707 // writeLetter(2 , 'i', 12, 51);
zathorix 0:0afde8480a61 708 // writeLetter(2 , 'n', 12, 47);
zathorix 0:0afde8480a61 709 //
zathorix 0:0afde8480a61 710 // writeLetter(2 , 'P', 12, 17);
zathorix 0:0afde8480a61 711 // writeLetter(2 , 'o', 12, 13);
zathorix 0:0afde8480a61 712 // writeLetter(2 , 'u', 12, 9);
zathorix 0:0afde8480a61 713 // writeLetter(2 , 't', 12, 5);
zathorix 0:0afde8480a61 714
zathorix 0:0afde8480a61 715 writeLetter(2 , 'I', 12, 55);
zathorix 0:0afde8480a61 716 writeLetter(2 , 'n', 12, 51);
zathorix 0:0afde8480a61 717
zathorix 0:0afde8480a61 718 writeLetter(2 , 'O', 12, 13);
zathorix 0:0afde8480a61 719 writeLetter(2 , 'u', 12, 9);
zathorix 0:0afde8480a61 720 writeLetter(2 , 't', 12, 5);
zathorix 0:0afde8480a61 721
zathorix 0:0afde8480a61 722 //left hand side
zathorix 0:0afde8480a61 723 for (int i = 0; i < (58*power_in/MAX_POWER_IN); i++) {
zathorix 0:0afde8480a61 724 for (int j = 0; j < 3; j++) {
zathorix 0:0afde8480a61 725 drawPixel(2, 14 + i, 60 + j, 0xFF);
zathorix 0:0afde8480a61 726 }
zathorix 0:0afde8480a61 727 }
zathorix 0:0afde8480a61 728 for (int i = (58*power_in/MAX_POWER_IN); i <= 58; i++) {
zathorix 0:0afde8480a61 729 for (int j = 0; j < 3; j++) {
zathorix 0:0afde8480a61 730 drawPixel(2, 14 + i, 60 + j, 0x00);
zathorix 0:0afde8480a61 731 }
zathorix 0:0afde8480a61 732 }
zathorix 0:0afde8480a61 733 //right hand side
zathorix 0:0afde8480a61 734 for (int i = 0; i < (58*power_out/MAX_POWER_OUT); i++) {
zathorix 0:0afde8480a61 735 for (int j = 0; j < 3; j++) {
zathorix 0:0afde8480a61 736 drawPixel(2, 14 + i, 1 + j, 0xFF);
zathorix 0:0afde8480a61 737 }
zathorix 0:0afde8480a61 738 }
zathorix 0:0afde8480a61 739 for (int i = (58*power_out/MAX_POWER_OUT); i <= 58; i++) {
zathorix 0:0afde8480a61 740 for (int j = 0; j < 3; j++) {
zathorix 0:0afde8480a61 741 drawPixel(2, 14 + i, 1 + j, 0x00);
zathorix 0:0afde8480a61 742 }
zathorix 0:0afde8480a61 743 }
zathorix 0:0afde8480a61 744 }
zathorix 0:0afde8480a61 745
zathorix 0:0afde8480a61 746 void Dashboard::updateBatteryBar(int screen_number, int percentage, int row, int col, int width, int height)
zathorix 0:0afde8480a61 747 {
zathorix 0:0afde8480a61 748 for (int i = 0; i < (percentage*width/100); i++) {
zathorix 0:0afde8480a61 749 for (int j = 0; j < height; j++) {
zathorix 0:0afde8480a61 750 drawPixel(screen_number, row + j, width + col - i, 0xFF);
zathorix 0:0afde8480a61 751 }
zathorix 0:0afde8480a61 752 }
zathorix 0:0afde8480a61 753 for (int i = (percentage*width/100); i < width; i++) {
zathorix 0:0afde8480a61 754 for (int j = 0; j < height; j++) {
zathorix 0:0afde8480a61 755 drawPixel(screen_number, row + j, width + col - i, 0x00);
zathorix 0:0afde8480a61 756 }
zathorix 0:0afde8480a61 757 }
zathorix 0:0afde8480a61 758 }
zathorix 0:0afde8480a61 759
zathorix 0:0afde8480a61 760 void Dashboard::drawBitmap(int screen_number, int index_number, char row, char col, int width, int height)
zathorix 0:0afde8480a61 761 {
zathorix 0:0afde8480a61 762 command(screen_number, 0x15);
zathorix 0:0afde8480a61 763 command(screen_number, col);
zathorix 0:0afde8480a61 764 command(screen_number, (col + (width-1)));
zathorix 0:0afde8480a61 765
zathorix 0:0afde8480a61 766 command(screen_number, 0x75);
zathorix 0:0afde8480a61 767 command(screen_number, row);
zathorix 0:0afde8480a61 768 command(screen_number, (row + (height-1)));
zathorix 0:0afde8480a61 769
zathorix 0:0afde8480a61 770 for(int i = (width*height-1); i >= 0; i--) {
zathorix 0:0afde8480a61 771
zathorix 0:0afde8480a61 772 switch (index_number) {
zathorix 0:0afde8480a61 773
zathorix 0:0afde8480a61 774 case 0:
zathorix 0:0afde8480a61 775 data(screen_number, number_0_small[i]);
zathorix 0:0afde8480a61 776 break;
zathorix 0:0afde8480a61 777 case 1:
zathorix 0:0afde8480a61 778 data(screen_number, number_1_small[i]);
zathorix 0:0afde8480a61 779 break;
zathorix 0:0afde8480a61 780 case 2:
zathorix 0:0afde8480a61 781 data(screen_number, number_2_small[i]);
zathorix 0:0afde8480a61 782 break;
zathorix 0:0afde8480a61 783 case 3:
zathorix 0:0afde8480a61 784 data(screen_number, number_3_small[i]);
zathorix 0:0afde8480a61 785 break;
zathorix 0:0afde8480a61 786 case 4:
zathorix 0:0afde8480a61 787 data(screen_number, number_4_small[i]);
zathorix 0:0afde8480a61 788 break;
zathorix 0:0afde8480a61 789 case 5:
zathorix 0:0afde8480a61 790 data(screen_number, number_5_small[i]);
zathorix 0:0afde8480a61 791 break;
zathorix 0:0afde8480a61 792 case 6:
zathorix 0:0afde8480a61 793 data(screen_number, number_6_small[i]);
zathorix 0:0afde8480a61 794 break;
zathorix 0:0afde8480a61 795 case 7:
zathorix 0:0afde8480a61 796 data(screen_number, number_7_small[i]);
zathorix 0:0afde8480a61 797 break;
zathorix 0:0afde8480a61 798 case 8:
zathorix 0:0afde8480a61 799 data(screen_number, number_8_small[i]);
zathorix 0:0afde8480a61 800 break;
zathorix 0:0afde8480a61 801 case 9:
zathorix 0:0afde8480a61 802 data(screen_number, number_9_small[i]);
zathorix 0:0afde8480a61 803 break;
zathorix 0:0afde8480a61 804 case 10:
zathorix 0:0afde8480a61 805 data(screen_number, letter_a_small[i]);
zathorix 0:0afde8480a61 806 break;
zathorix 0:0afde8480a61 807 case 11:
zathorix 0:0afde8480a61 808 data(screen_number, letter_b_small[i]);
zathorix 0:0afde8480a61 809 break;
zathorix 0:0afde8480a61 810 case 12:
zathorix 0:0afde8480a61 811 data(screen_number, letter_c_small[i]);
zathorix 0:0afde8480a61 812 break;
zathorix 0:0afde8480a61 813 case 13:
zathorix 0:0afde8480a61 814 data(screen_number, letter_d_small[i]);
zathorix 0:0afde8480a61 815 break;
zathorix 0:0afde8480a61 816 case 14:
zathorix 0:0afde8480a61 817 data(screen_number, letter_e_small[i]);
zathorix 0:0afde8480a61 818 break;
zathorix 0:0afde8480a61 819 case 15:
zathorix 0:0afde8480a61 820 data(screen_number, letter_f_small[i]);
zathorix 0:0afde8480a61 821 break;
zathorix 0:0afde8480a61 822 case 16:
zathorix 0:0afde8480a61 823 data(screen_number, letter_g_small[i]);
zathorix 0:0afde8480a61 824 break;
zathorix 0:0afde8480a61 825 case 17:
zathorix 0:0afde8480a61 826 data(screen_number, letter_h_small[i]);
zathorix 0:0afde8480a61 827 break;
zathorix 0:0afde8480a61 828 case 18:
zathorix 0:0afde8480a61 829 data(screen_number, letter_i_small[i]);
zathorix 0:0afde8480a61 830 break;
zathorix 0:0afde8480a61 831 case 19:
zathorix 0:0afde8480a61 832 data(screen_number, letter_j_small[i]);
zathorix 0:0afde8480a61 833 break;
zathorix 0:0afde8480a61 834 case 20:
zathorix 0:0afde8480a61 835 data(screen_number, letter_k_small[i]);
zathorix 0:0afde8480a61 836 break;
zathorix 0:0afde8480a61 837 case 21:
zathorix 0:0afde8480a61 838 data(screen_number, letter_l_small[i]);
zathorix 0:0afde8480a61 839 break;
zathorix 0:0afde8480a61 840 case 22:
zathorix 0:0afde8480a61 841 data(screen_number, letter_m_small[i]);
zathorix 0:0afde8480a61 842 break;
zathorix 0:0afde8480a61 843 case 23:
zathorix 0:0afde8480a61 844 data(screen_number, letter_n_small[i]);
zathorix 0:0afde8480a61 845 break;
zathorix 0:0afde8480a61 846 case 24:
zathorix 0:0afde8480a61 847 data(screen_number, letter_o_small[i]);
zathorix 0:0afde8480a61 848 break;
zathorix 0:0afde8480a61 849 case 25:
zathorix 0:0afde8480a61 850 data(screen_number, letter_p_small[i]);
zathorix 0:0afde8480a61 851 break;
zathorix 0:0afde8480a61 852 case 26:
zathorix 0:0afde8480a61 853 data(screen_number, letter_q_small[i]);
zathorix 0:0afde8480a61 854 break;
zathorix 0:0afde8480a61 855 case 27:
zathorix 0:0afde8480a61 856 data(screen_number, letter_r_small[i]);
zathorix 0:0afde8480a61 857 break;
zathorix 0:0afde8480a61 858 case 28:
zathorix 0:0afde8480a61 859 data(screen_number, letter_s_small[i]);
zathorix 0:0afde8480a61 860 break;
zathorix 0:0afde8480a61 861 case 29:
zathorix 0:0afde8480a61 862 data(screen_number, letter_t_small[i]);
zathorix 0:0afde8480a61 863 break;
zathorix 0:0afde8480a61 864 case 30:
zathorix 0:0afde8480a61 865 data(screen_number, letter_u_small[i]);
zathorix 0:0afde8480a61 866 break;
zathorix 0:0afde8480a61 867 case 31:
zathorix 0:0afde8480a61 868 data(screen_number, letter_v_small[i]);
zathorix 0:0afde8480a61 869 break;
zathorix 0:0afde8480a61 870 case 32:
zathorix 0:0afde8480a61 871 data(screen_number, letter_w_small[i]);
zathorix 0:0afde8480a61 872 break;
zathorix 0:0afde8480a61 873 case 33:
zathorix 0:0afde8480a61 874 data(screen_number, letter_x_small[i]);
zathorix 0:0afde8480a61 875 break;
zathorix 0:0afde8480a61 876 case 34:
zathorix 0:0afde8480a61 877 data(screen_number, letter_y_small[i]);
zathorix 0:0afde8480a61 878 break;
zathorix 0:0afde8480a61 879 case 35:
zathorix 0:0afde8480a61 880 data(screen_number, letter_z_small[i]);
zathorix 0:0afde8480a61 881 break;
zathorix 0:0afde8480a61 882 case 36:
zathorix 0:0afde8480a61 883 data(screen_number, letter_a_large[i]);
zathorix 0:0afde8480a61 884 break;
zathorix 0:0afde8480a61 885 case 37:
zathorix 0:0afde8480a61 886 data(screen_number, letter_b_large[i]);
zathorix 0:0afde8480a61 887 break;
zathorix 0:0afde8480a61 888 case 38:
zathorix 0:0afde8480a61 889 data(screen_number, letter_c_large[i]);
zathorix 0:0afde8480a61 890 break;
zathorix 0:0afde8480a61 891 case 39:
zathorix 0:0afde8480a61 892 data(screen_number, letter_d_large[i]);
zathorix 0:0afde8480a61 893 break;
zathorix 0:0afde8480a61 894 case 40:
zathorix 0:0afde8480a61 895 data(screen_number, letter_e_large[i]);
zathorix 0:0afde8480a61 896 break;
zathorix 0:0afde8480a61 897 case 41:
zathorix 0:0afde8480a61 898 data(screen_number, letter_f_large[i]);
zathorix 0:0afde8480a61 899 break;
zathorix 0:0afde8480a61 900 case 42:
zathorix 0:0afde8480a61 901 data(screen_number, letter_g_large[i]);
zathorix 0:0afde8480a61 902 break;
zathorix 0:0afde8480a61 903 case 43:
zathorix 0:0afde8480a61 904 data(screen_number, letter_h_large[i]);
zathorix 0:0afde8480a61 905 break;
zathorix 0:0afde8480a61 906 case 44:
zathorix 0:0afde8480a61 907 data(screen_number, letter_i_large[i]);
zathorix 0:0afde8480a61 908 break;
zathorix 0:0afde8480a61 909 case 45:
zathorix 0:0afde8480a61 910 data(screen_number, letter_j_large[i]);
zathorix 0:0afde8480a61 911 break;
zathorix 0:0afde8480a61 912 case 46:
zathorix 0:0afde8480a61 913 data(screen_number, letter_k_large[i]);
zathorix 0:0afde8480a61 914 break;
zathorix 0:0afde8480a61 915 case 47:
zathorix 0:0afde8480a61 916 data(screen_number, letter_l_large[i]);
zathorix 0:0afde8480a61 917 break;
zathorix 0:0afde8480a61 918 case 48:
zathorix 0:0afde8480a61 919 data(screen_number, letter_m_large[i]);
zathorix 0:0afde8480a61 920 break;
zathorix 0:0afde8480a61 921 case 49:
zathorix 0:0afde8480a61 922 data(screen_number, letter_n_large[i]);
zathorix 0:0afde8480a61 923 break;
zathorix 0:0afde8480a61 924 case 50:
zathorix 0:0afde8480a61 925 data(screen_number, letter_o_large[i]);
zathorix 0:0afde8480a61 926 break;
zathorix 0:0afde8480a61 927 case 51:
zathorix 0:0afde8480a61 928 data(screen_number, letter_p_large[i]);
zathorix 0:0afde8480a61 929 break;
zathorix 0:0afde8480a61 930 case 52:
zathorix 0:0afde8480a61 931 data(screen_number, letter_q_large[i]);
zathorix 0:0afde8480a61 932 break;
zathorix 0:0afde8480a61 933 case 53:
zathorix 0:0afde8480a61 934 data(screen_number, letter_r_large[i]);
zathorix 0:0afde8480a61 935 break;
zathorix 0:0afde8480a61 936 case 54:
zathorix 0:0afde8480a61 937 data(screen_number, letter_s_large[i]);
zathorix 0:0afde8480a61 938 break;
zathorix 0:0afde8480a61 939 case 55:
zathorix 0:0afde8480a61 940 data(screen_number, letter_t_large[i]);
zathorix 0:0afde8480a61 941 break;
zathorix 0:0afde8480a61 942 case 56:
zathorix 0:0afde8480a61 943 data(screen_number, letter_u_large[i]);
zathorix 0:0afde8480a61 944 break;
zathorix 0:0afde8480a61 945 case 57:
zathorix 0:0afde8480a61 946 data(screen_number, letter_v_large[i]);
zathorix 0:0afde8480a61 947 break;
zathorix 0:0afde8480a61 948 case 58:
zathorix 0:0afde8480a61 949 data(screen_number, letter_w_large[i]);
zathorix 0:0afde8480a61 950 break;
zathorix 0:0afde8480a61 951 case 59:
zathorix 0:0afde8480a61 952 data(screen_number, letter_x_large[i]);
zathorix 0:0afde8480a61 953 break;
zathorix 0:0afde8480a61 954 case 60:
zathorix 0:0afde8480a61 955 data(screen_number, letter_y_large[i]);
zathorix 0:0afde8480a61 956 break;
zathorix 0:0afde8480a61 957 case 61:
zathorix 0:0afde8480a61 958 data(screen_number, letter_z_large[i]);
zathorix 0:0afde8480a61 959 break;
zathorix 0:0afde8480a61 960 case 62:
zathorix 0:0afde8480a61 961 data(screen_number, letter_semicolon[i]);
zathorix 0:0afde8480a61 962 break;
zathorix 0:0afde8480a61 963 case 63:
zathorix 0:0afde8480a61 964 data(screen_number, letter_minus[i]);
zathorix 0:0afde8480a61 965 break;
zathorix 0:0afde8480a61 966 case 64:
zathorix 0:0afde8480a61 967 data(screen_number, letter_dubbelepunt[i]);
zathorix 0:0afde8480a61 968 break;
zathorix 0:0afde8480a61 969 case 65:
zathorix 0:0afde8480a61 970 data(screen_number, letter_plus[i]);
zathorix 0:0afde8480a61 971 break;
zathorix 0:0afde8480a61 972 case 66:
zathorix 0:0afde8480a61 973 data(screen_number, letter_slash[i]);
zathorix 0:0afde8480a61 974 break;
zathorix 0:0afde8480a61 975 case 67:
zathorix 0:0afde8480a61 976 data(screen_number, letter_percent[i]);
zathorix 0:0afde8480a61 977 break;
zathorix 0:0afde8480a61 978 case 68:
zathorix 0:0afde8480a61 979 data(screen_number, letter_questionmark[i]);
zathorix 0:0afde8480a61 980 break;
zathorix 0:0afde8480a61 981 case 69:
zathorix 0:0afde8480a61 982 data(screen_number, letter_comma[i]);
zathorix 0:0afde8480a61 983 break;
zathorix 0:0afde8480a61 984 case 70:
zathorix 0:0afde8480a61 985 data(screen_number, letter_open[i]);
zathorix 0:0afde8480a61 986 break;
zathorix 0:0afde8480a61 987 case 71:
zathorix 0:0afde8480a61 988 data(screen_number, letter_close[i]);
zathorix 0:0afde8480a61 989 break;
zathorix 0:0afde8480a61 990 case 72:
zathorix 0:0afde8480a61 991 data(screen_number, letter_dot[i]);
zathorix 0:0afde8480a61 992 break;
zathorix 0:0afde8480a61 993 case 73:
zathorix 0:0afde8480a61 994 data(screen_number, letter_space[i]);
zathorix 0:0afde8480a61 995 break;
zathorix 0:0afde8480a61 996 case 74:
zathorix 0:0afde8480a61 997 data(screen_number, logo_solar_boat[i]);
zathorix 0:0afde8480a61 998 break;
zathorix 0:0afde8480a61 999 case 75:
zathorix 0:0afde8480a61 1000 data(screen_number, logo_dickbutt[i]);
zathorix 0:0afde8480a61 1001 break;
zathorix 0:0afde8480a61 1002 case 76:
zathorix 0:0afde8480a61 1003 data(screen_number, letter_degree[i]);
zathorix 0:0afde8480a61 1004 break;
zathorix 0:0afde8480a61 1005 //+80 for large numbers
zathorix 0:0afde8480a61 1006 case 80:
zathorix 0:0afde8480a61 1007 data(screen_number, large_0[i]);
zathorix 0:0afde8480a61 1008 break;
zathorix 0:0afde8480a61 1009 case 81:
zathorix 0:0afde8480a61 1010 data(screen_number, large_1[i]);
zathorix 0:0afde8480a61 1011 break;
zathorix 0:0afde8480a61 1012 case 82:
zathorix 0:0afde8480a61 1013 data(screen_number, large_2[i]);
zathorix 0:0afde8480a61 1014 break;
zathorix 0:0afde8480a61 1015 case 83:
zathorix 0:0afde8480a61 1016 data(screen_number, large_3[i]);
zathorix 0:0afde8480a61 1017 break;
zathorix 0:0afde8480a61 1018 case 84:
zathorix 0:0afde8480a61 1019 data(screen_number, large_4[i]);
zathorix 0:0afde8480a61 1020 break;
zathorix 0:0afde8480a61 1021 case 85:
zathorix 0:0afde8480a61 1022 data(screen_number, large_5[i]);
zathorix 0:0afde8480a61 1023 break;
zathorix 0:0afde8480a61 1024 case 86:
zathorix 0:0afde8480a61 1025 data(screen_number, large_6[i]);
zathorix 0:0afde8480a61 1026 break;
zathorix 0:0afde8480a61 1027 case 87:
zathorix 0:0afde8480a61 1028 data(screen_number, large_7[i]);
zathorix 0:0afde8480a61 1029 break;
zathorix 0:0afde8480a61 1030 case 88:
zathorix 0:0afde8480a61 1031 data(screen_number, large_8[i]);
zathorix 0:0afde8480a61 1032 break;
zathorix 0:0afde8480a61 1033 case 89:
zathorix 0:0afde8480a61 1034 data(screen_number, large_9[i]);
zathorix 0:0afde8480a61 1035 break;
zathorix 0:0afde8480a61 1036 case 90:
zathorix 0:0afde8480a61 1037 data(screen_number, large_space[i]);
zathorix 0:0afde8480a61 1038 break;
zathorix 0:0afde8480a61 1039 case 91:
zathorix 0:0afde8480a61 1040 data(screen_number, alert_sign[i]);
zathorix 0:0afde8480a61 1041 break;
zathorix 0:0afde8480a61 1042 case 92:
zathorix 0:0afde8480a61 1043 data(screen_number, alert_sign_space[i]);
zathorix 0:0afde8480a61 1044 break;
zathorix 0:0afde8480a61 1045 }
zathorix 0:0afde8480a61 1046 }
zathorix 0:0afde8480a61 1047 }