x

Dependents:   20180621_FT813

Committer:
JackB
Date:
Mon Jul 23 12:24:05 2018 +0000
Revision:
0:0ee5e6b7245e
AP

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JackB 0:0ee5e6b7245e 1 #include "mbed.h"
JackB 0:0ee5e6b7245e 2 #include "AP3000.h"
JackB 0:0ee5e6b7245e 3 #include "FT_Platform.h"
JackB 0:0ee5e6b7245e 4 #include "SDBlockDevice.h"
JackB 0:0ee5e6b7245e 5 #include "FATFileSystem.h"
JackB 0:0ee5e6b7245e 6 //#include "HeapBlockDevice.h"
JackB 0:0ee5e6b7245e 7 #include "SPIFBlockDevice.h"
JackB 0:0ee5e6b7245e 8 #include "I2CEEBlockDevice.h"
JackB 0:0ee5e6b7245e 9 //#include "FRAMSPI.h"
JackB 0:0ee5e6b7245e 10 #include "BurstSPI.h"
JackB 0:0ee5e6b7245e 11 #include "NMEA0183.h"
JackB 0:0ee5e6b7245e 12 #include "nmea_parser.h"
JackB 0:0ee5e6b7245e 13
JackB 0:0ee5e6b7245e 14
JackB 0:0ee5e6b7245e 15 Button main_button;
JackB 0:0ee5e6b7245e 16 Indicator main_indicator;
JackB 0:0ee5e6b7245e 17 Indicator main_indicator_previous; // Track changes
JackB 0:0ee5e6b7245e 18 Indicator main_indicator_backup;
JackB 0:0ee5e6b7245e 19
JackB 0:0ee5e6b7245e 20 //Timer touchTimer;
JackB 0:0ee5e6b7245e 21 Timer blinker;
JackB 0:0ee5e6b7245e 22 //Ticker blinkLights;
JackB 0:0ee5e6b7245e 23
JackB 0:0ee5e6b7245e 24 uint8_t brightnessLow;
JackB 0:0ee5e6b7245e 25 uint8_t brightnessHigh;
JackB 0:0ee5e6b7245e 26 uint8_t brightnessSelect;
JackB 0:0ee5e6b7245e 27
JackB 0:0ee5e6b7245e 28 uint8_t mainBlink;
JackB 0:0ee5e6b7245e 29
JackB 0:0ee5e6b7245e 30 void InitAP3000(void)
JackB 0:0ee5e6b7245e 31 {
JackB 0:0ee5e6b7245e 32 // blinkLights.attach(&updateAlarmLights, 0.5);
JackB 0:0ee5e6b7245e 33
JackB 0:0ee5e6b7245e 34 blinker.reset();
JackB 0:0ee5e6b7245e 35 blinker.start();
JackB 0:0ee5e6b7245e 36 mainBlink = false;
JackB 0:0ee5e6b7245e 37
JackB 0:0ee5e6b7245e 38 setDisplayBrighnessLow(40);
JackB 0:0ee5e6b7245e 39 setDisplayBrighnessHigh(255);
JackB 0:0ee5e6b7245e 40 setDisplayBrighnessSelect(BIGHTNESS_SELECT_HIGH);
JackB 0:0ee5e6b7245e 41
JackB 0:0ee5e6b7245e 42 main_button.accept_alarm_pressed = BUTTON_RELEASED;
JackB 0:0ee5e6b7245e 43 main_button.accept_horn_pressed = BUTTON_RELEASED;
JackB 0:0ee5e6b7245e 44 main_button.set_pressed = BUTTON_RELEASED;
JackB 0:0ee5e6b7245e 45 main_button.dim_pressed = BUTTON_RELEASED;
JackB 0:0ee5e6b7245e 46
JackB 0:0ee5e6b7245e 47 setPumpInUse(PUMP_OFF);
JackB 0:0ee5e6b7245e 48 setPumpInUseBlinkStatus(STEADY_OFF);
JackB 0:0ee5e6b7245e 49
JackB 0:0ee5e6b7245e 50 // main_indicator.pump_in_use = PUMP_IN_USE_MAIN;
JackB 0:0ee5e6b7245e 51 // main_indicator.pump_in_use_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 52
JackB 0:0ee5e6b7245e 53 // All Main and Aux alarms
JackB 0:0ee5e6b7245e 54 for(int system = MAIN_SYSTEM; system <= GLOBAL_SYSTEM; system++) {
JackB 0:0ee5e6b7245e 55 // MAIN_SYSTEM, AUX_SYSTEM, GLOBAL_SYSTEM
JackB 0:0ee5e6b7245e 56 for(int alarm = PHASE_FAIL; alarm <= FU_FAILURE; alarm++) {
JackB 0:0ee5e6b7245e 57 // PHASE_FAIL, MAIN_POWER, CTRL_POWER, OIL_PRESS, HYDR_LOCK,
JackB 0:0ee5e6b7245e 58 // OVERLOAD, OIL_LEVEL, OIL_FILTER, OIL_TEMP, FU_FAILURE
JackB 0:0ee5e6b7245e 59 setAlarmStatus((System)system, (Alarm)alarm, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 60 setAlarmBlinkStatus((System)system, (Alarm)alarm, STEADY_OFF);
JackB 0:0ee5e6b7245e 61 }
JackB 0:0ee5e6b7245e 62 if (system != GLOBAL_SYSTEM) {
JackB 0:0ee5e6b7245e 63 setPumpRunningStatus((System)system, RUN_STATUS_OFF);
JackB 0:0ee5e6b7245e 64 setPumpRunningBlinkStatus((System)system, STEADY_OFF);
JackB 0:0ee5e6b7245e 65 }
JackB 0:0ee5e6b7245e 66 }
JackB 0:0ee5e6b7245e 67
JackB 0:0ee5e6b7245e 68 // main_indicator.md_main_running = RUN_STATUS_OFF;
JackB 0:0ee5e6b7245e 69 // main_indicator.md_main_running_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 70 // main_indicator.md_aux_running = RUN_STATUS_OFF;
JackB 0:0ee5e6b7245e 71 // main_indicator.md_aux_running_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 72
JackB 0:0ee5e6b7245e 73 // main_indicator.rb_main_phase_fail = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 74 // main_indicator.rb_main_phase_fail_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 75 // main_indicator.rb_main_main_power = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 76 // main_indicator.rb_main_main_power_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 77 // main_indicator.rb_main_ctrl_power = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 78 // main_indicator.rb_main_ctrl_power_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 79 // main_indicator.rb_main_oil_press = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 80 // main_indicator.rb_main_oil_press_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 81 // main_indicator.rb_main_hydr_lock = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 82 // main_indicator.rb_main_hydr_lock_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 83 // main_indicator.rb_main_overload = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 84 // main_indicator.rb_main_overload_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 85 // main_indicator.rb_main_oil_level = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 86 // main_indicator.rb_main_oil_level_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 87 // main_indicator.rb_main_oil_filter = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 88 // main_indicator.rb_main_oil_filter_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 89 // main_indicator.rb_main_oil_temp = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 90 // main_indicator.rb_main_oil_temp_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 91 //
JackB 0:0ee5e6b7245e 92 // main_indicator.rb_aux_phase_fail = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 93 // main_indicator.rb_aux_phase_fail_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 94 // main_indicator.rb_aux_main_power = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 95 // main_indicator.rb_aux_main_power_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 96 // main_indicator.rb_aux_ctrl_power = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 97 // main_indicator.rb_aux_ctrl_power_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 98 // main_indicator.rb_aux_oil_press = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 99 // main_indicator.rb_aux_oil_press_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 100 // main_indicator.rb_aux_hydr_lock = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 101 // main_indicator.rb_aux_hydr_lock_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 102 // main_indicator.rb_aux_overload = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 103 // main_indicator.rb_aux_overload_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 104 // main_indicator.rb_aux_oil_level = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 105 // main_indicator.rb_aux_oil_level_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 106 // main_indicator.rb_aux_oil_filter = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 107 // main_indicator.rb_aux_oil_filter_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 108 // main_indicator.rb_aux_oil_temp = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 109 // main_indicator.rb_aux_oil_temp_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 110 //
JackB 0:0ee5e6b7245e 111 // main_indicator.rb_fu_failure = ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 112 // main_indicator.rb_fu_failure_light = STEADY_OFF;
JackB 0:0ee5e6b7245e 113
JackB 0:0ee5e6b7245e 114 main_indicator_previous = main_indicator; // Copy to previous state
JackB 0:0ee5e6b7245e 115 }
JackB 0:0ee5e6b7245e 116
JackB 0:0ee5e6b7245e 117 void loadBitmaps(void)
JackB 0:0ee5e6b7245e 118 {
JackB 0:0ee5e6b7245e 119 TFT.ResetInflateFileBitmap();
JackB 0:0ee5e6b7245e 120
JackB 0:0ee5e6b7245e 121 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_C_20x20_BL.bin", L8, 20, 20);
JackB 0:0ee5e6b7245e 122 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_C_20x20_BR.bin", L8, 20, 20);
JackB 0:0ee5e6b7245e 123 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_C_20x20_TL.bin", L8, 20, 20);
JackB 0:0ee5e6b7245e 124 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_C_20x20_TR.bin", L8, 20, 20);
JackB 0:0ee5e6b7245e 125 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_H_5x4.bin", L8, 5, 4);
JackB 0:0ee5e6b7245e 126 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_H_10x4.bin", L8, 10, 4);
JackB 0:0ee5e6b7245e 127 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_H_25x4.bin", L8, 25, 4);
JackB 0:0ee5e6b7245e 128 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_H_190x4.bin", L8, 190, 4);
JackB 0:0ee5e6b7245e 129 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_V_4x535.bin", L8, 4, 535);
JackB 0:0ee5e6b7245e 130 // TFT.LoadInflateFileBitmap("/fs/BACKGROUND_01_V_4x21.bin", L8, 4, 21);
JackB 0:0ee5e6b7245e 131
JackB 0:0ee5e6b7245e 132 // TFT.LoadInflateFileBitmap("/fs/RegularButtonBlk_220x51r4t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 133 // TFT.LoadInflateFileBitmap("/fs/RegularButtonGray_220x51r10t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 134 // TFT.LoadInflateFileBitmap("/fs/RegularButtonRed_220x51r10t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 135 // TFT.LoadInflateFileBitmap("/fs/RegularButtonYel_220x51r10t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 136 // TFT.LoadInflateFileBitmap("/fs/RegularButtonGray_220x51r0t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 137 // TFT.LoadInflateFileBitmap("/fs/RegularButtonRed_220x51r0t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 138 // TFT.LoadInflateFileBitmap("/fs/RegularButtonYel_220x51r0t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 139 // TFT.LoadInflateFileBitmap("/fs/RegularButtonGray_220x51r0r10t.bin", ARGB4, 220, 51); // 40 characters
JackB 0:0ee5e6b7245e 140 // TFT.LoadInflateFileBitmap("/fs/RegularButtonRed_220x51r0r10t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 141 // TFT.LoadInflateFileBitmap("/fs/RegularButtonYel_220x51r0r10t.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 142
JackB 0:0ee5e6b7245e 143 TFT.LoadInflateFileBitmap("/fs/SwitchOn_234x132_blk.bin", L8, 234, 132);
JackB 0:0ee5e6b7245e 144 TFT.LoadInflateFileBitmap("/fs/SwitchOff_234x132_blk.bin", L8, 234, 132);
JackB 0:0ee5e6b7245e 145 TFT.LoadInflateFileBitmap("/fs/SwitchOn_100x132_blk.bin", L8, 100, 132);
JackB 0:0ee5e6b7245e 146 TFT.LoadInflateFileBitmap("/fs/SwitchOff_100x132_blk.bin", L8, 100, 132);
JackB 0:0ee5e6b7245e 147 TFT.LoadInflateFileBitmap("/fs/SwitchOn_115x66_t.bin", L8, 115, 66);
JackB 0:0ee5e6b7245e 148 TFT.LoadInflateFileBitmap("/fs/SwitchOff_115x66_t.bin", L8, 115, 66);
JackB 0:0ee5e6b7245e 149
JackB 0:0ee5e6b7245e 150 TFT.LoadInflateFileBitmap("/fs/settings_40x40.bin", L8, 40, 40);
JackB 0:0ee5e6b7245e 151 TFT.LoadInflateFileBitmap("/fs/light-bulb_40x40.bin", L8, 40, 40);
JackB 0:0ee5e6b7245e 152
JackB 0:0ee5e6b7245e 153
JackB 0:0ee5e6b7245e 154 // Markus Adobe Ilustrator
JackB 0:0ee5e6b7245e 155 // TFT.LoadInflateFileBitmap("/fs/MD_DISABLED_230x70.bin", ARGB4, 230, 70);
JackB 0:0ee5e6b7245e 156 // TFT.LoadInflateFileBitmap("/fs/MD_OFF_230x70.bin", ARGB4, 230, 70);
JackB 0:0ee5e6b7245e 157 // TFT.LoadInflateFileBitmap("/fs/MD_OFF_GREY_230x70.bin", ARGB4, 230, 70);
JackB 0:0ee5e6b7245e 158 // TFT.LoadInflateFileBitmap("/fs/MD_RUNNING_230x70.bin", ARGB4, 230, 70);
JackB 0:0ee5e6b7245e 159 // TFT.LoadInflateFileBitmap("/fs/MD_WARNING_230x70.bin", ARGB4, 230, 70);
JackB 0:0ee5e6b7245e 160
JackB 0:0ee5e6b7245e 161 // SVG generated bitmaps, FT813 Font: Google Yantramanav
JackB 0:0ee5e6b7245e 162 // https://www.w3schools.com/howto/tryit.asp?font=Yantramanav
JackB 0:0ee5e6b7245e 163 // https://fonts.google.com/?query=Yantramanav
JackB 0:0ee5e6b7245e 164 TFT.LoadInflateFileBitmap("/fs/MD_DISABLED_220x51bt.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 165 TFT.LoadInflateFileBitmap("/fs/MD_OFF_Grey_220x51bt.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 166 TFT.LoadInflateFileBitmap("/fs/MD_OFF_Red_220x51bt.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 167 TFT.LoadInflateFileBitmap("/fs/MD_RUNNING_220x51bt.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 168 TFT.LoadInflateFileBitmap("/fs/MD_WARNING_220x51bt.bin", ARGB4, 220, 51);
JackB 0:0ee5e6b7245e 169
JackB 0:0ee5e6b7245e 170 TFT.LoadInflateFileBitmap("/fs/RUN_TIME_C_ON_21_X_21.bin", ARGB4, 21, 21);
JackB 0:0ee5e6b7245e 171 TFT.LoadInflateFileBitmap("/fs/RUN_TIME_C_OFF_21_X_21.bin", ARGB4, 21, 21);
JackB 0:0ee5e6b7245e 172 TFT.LoadInflateFileBitmap("/fs/RUN_TIME_L_ON_21_X_21.bin", ARGB4, 21, 21);
JackB 0:0ee5e6b7245e 173 TFT.LoadInflateFileBitmap("/fs/RUN_TIME_L_OFF_21_X_21.bin", ARGB4, 21, 21);
JackB 0:0ee5e6b7245e 174 TFT.LoadInflateFileBitmap("/fs/RUN_TIME_R_ON_21_X_21.bin", ARGB4, 21, 21);
JackB 0:0ee5e6b7245e 175 TFT.LoadInflateFileBitmap("/fs/RUN_TIME_R_OFF_21_X_21.bin", ARGB4, 21, 21);
JackB 0:0ee5e6b7245e 176
JackB 0:0ee5e6b7245e 177 // TFT.DL(DISPLAY()); // Display the image
JackB 0:0ee5e6b7245e 178 TFT.Swap(); // Swap the current display list
JackB 0:0ee5e6b7245e 179 TFT.Flush_Co_Buffer(); // Download the command list into fifo
JackB 0:0ee5e6b7245e 180 TFT.WaitCmdfifo_empty(); // Wait till coprocessor completes the operation
JackB 0:0ee5e6b7245e 181 }
JackB 0:0ee5e6b7245e 182
JackB 0:0ee5e6b7245e 183 void loadSplashScreen(void)
JackB 0:0ee5e6b7245e 184 {
JackB 0:0ee5e6b7245e 185 TFT.DLstart(); // start a new display command list
JackB 0:0ee5e6b7245e 186 TFT.DL(CLEAR_COLOR_RGB(0x00, 0x00, 0x00)); // set the clear color to white
JackB 0:0ee5e6b7245e 187 TFT.DL(CLEAR(1, 1, 1)); // clear buffers -> color buffer,stencil buffer, tag buffer
JackB 0:0ee5e6b7245e 188 TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set the clear color to white
JackB 0:0ee5e6b7245e 189 TFT.DL(DISPLAY()); // Display the image
JackB 0:0ee5e6b7245e 190 TFT.Swap(); // Swap the current display list
JackB 0:0ee5e6b7245e 191 TFT.Flush_Co_Buffer(); // Download the command list into fifo
JackB 0:0ee5e6b7245e 192 TFT.WaitCmdfifo_empty(); // Wait till coprocessor completes the operation
JackB 0:0ee5e6b7245e 193
JackB 0:0ee5e6b7245e 194 TFT.ResetInflateFileBitmap();
JackB 0:0ee5e6b7245e 195 TFT.LoadInflateFileBitmap("/fs/DMC_logo_438x154.bin", ARGB4, 438, 154);
JackB 0:0ee5e6b7245e 196 // TFT.LoadInflateFileBitmap("/fs/DMC_logo_black_438x154.bin", RGB332, 438, 154); // smaller, scattering effect
JackB 0:0ee5e6b7245e 197 }
JackB 0:0ee5e6b7245e 198
JackB 0:0ee5e6b7245e 199 void showSplashScreen(void)
JackB 0:0ee5e6b7245e 200 {
JackB 0:0ee5e6b7245e 201 TFT.DLstart(); // start a new display command list
JackB 0:0ee5e6b7245e 202 TFT.DL(CLEAR_COLOR_RGB(0x00, 0x00, 0x00)); // set the clear color to white
JackB 0:0ee5e6b7245e 203 TFT.DL(CLEAR(1, 1, 1)); // clear buffers -> color buffer,stencil buffer, tag buffer
JackB 0:0ee5e6b7245e 204 TFT.DL(COLOR_RGB(0xff, 0x80, 0x00)); // set current color to gray
JackB 0:0ee5e6b7245e 205
JackB 0:0ee5e6b7245e 206 // // Use bitmap
JackB 0:0ee5e6b7245e 207 // TFT.DL(BEGIN(BITMAPS));
JackB 0:0ee5e6b7245e 208 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 209 // TFT.ShowBitmapByName("DMC_logo", 21, 323);
JackB 0:0ee5e6b7245e 210
JackB 0:0ee5e6b7245e 211 // Use text (preserves space)
JackB 0:0ee5e6b7245e 212 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 213 TFT.Text(240, 400, 31, OPT_CENTER, "DMC"); // text SYSTEM
JackB 0:0ee5e6b7245e 214
JackB 0:0ee5e6b7245e 215 TFT.DL(DISPLAY()); // Display the image
JackB 0:0ee5e6b7245e 216 TFT.Swap(); // Swap the current display list
JackB 0:0ee5e6b7245e 217 TFT.Flush_Co_Buffer(); // Download the command list into fifo
JackB 0:0ee5e6b7245e 218 TFT.WaitCmdfifo_empty(); // Wait till coprocessor completes the operation
JackB 0:0ee5e6b7245e 219 }
JackB 0:0ee5e6b7245e 220
JackB 0:0ee5e6b7245e 221 void showMainPage(void)
JackB 0:0ee5e6b7245e 222 {
JackB 0:0ee5e6b7245e 223 // printf("showMainPage\n");
JackB 0:0ee5e6b7245e 224
JackB 0:0ee5e6b7245e 225 TFT.DLstart(); // start a new display command list
JackB 0:0ee5e6b7245e 226 TFT.DL(CLEAR_COLOR_RGB(0x10, 0x10, 0x10)); // set the clear color to white
JackB 0:0ee5e6b7245e 227 TFT.DL(CLEAR(1, 1, 1)); // clear buffers -> color buffer,stencil buffer, tag buffer
JackB 0:0ee5e6b7245e 228 TFT.DL(COLOR_RGB(0xff, 0xff, 0xff)); // set the clear color to white
JackB 0:0ee5e6b7245e 229
JackB 0:0ee5e6b7245e 230 TFT.DL(BEGIN(BITMAPS));
JackB 0:0ee5e6b7245e 231
JackB 0:0ee5e6b7245e 232 // Main box
JackB 0:0ee5e6b7245e 233 RoundedRectangle(5, 5, 229, 541, 20, 2, 0xC8, 0xC8, 0xC8, 0x00, 0x00, 0x00, 0, "");
JackB 0:0ee5e6b7245e 234 // Black cut-out at the top
JackB 0:0ee5e6b7245e 235 RoundedRectangle(50, 3, 140, 8, 0, 0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0, "");
JackB 0:0ee5e6b7245e 236
JackB 0:0ee5e6b7245e 237 // Aux box
JackB 0:0ee5e6b7245e 238 RoundedRectangle(245, 5, 229, 541, 20, 2, 0xC8, 0xC8, 0xC8, 0x00, 0x00, 0x00, 0, "");
JackB 0:0ee5e6b7245e 239 // Black cut-out at the top
JackB 0:0ee5e6b7245e 240 RoundedRectangle(290, 3, 140, 8, 0, 0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0, "");
JackB 0:0ee5e6b7245e 241
JackB 0:0ee5e6b7245e 242 int yFuBox = 557;
JackB 0:0ee5e6b7245e 243
JackB 0:0ee5e6b7245e 244 // FU box
JackB 0:0ee5e6b7245e 245 RoundedRectangle(125, yFuBox, 229, 58, 20, 2, 0xC8, 0xC8, 0xC8, 0x00, 0x00, 0x00, 0, "");
JackB 0:0ee5e6b7245e 246
JackB 0:0ee5e6b7245e 247 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 248
JackB 0:0ee5e6b7245e 249 // Build the background for main and aux
JackB 0:0ee5e6b7245e 250 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_TL", 5, 5);
JackB 0:0ee5e6b7245e 251 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_TL", 5 + 240, 5);
JackB 0:0ee5e6b7245e 252 // TFT.ShowBitmapByName("BACKGROUND_01_H_25x4", 25, 5);
JackB 0:0ee5e6b7245e 253 // TFT.ShowBitmapByName("BACKGROUND_01_H_25x4", 190, 5);
JackB 0:0ee5e6b7245e 254 // TFT.ShowBitmapByName("BACKGROUND_01_H_25x4", 25 + 240, 5);
JackB 0:0ee5e6b7245e 255 // TFT.ShowBitmapByName("BACKGROUND_01_H_25x4", 190 + 240, 5);
JackB 0:0ee5e6b7245e 256 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_TR", 215, 5);
JackB 0:0ee5e6b7245e 257 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_TR", 215 + 240, 5);
JackB 0:0ee5e6b7245e 258 // TFT.ShowBitmapByName("BACKGROUND_01_V_4x535", 5, 25);
JackB 0:0ee5e6b7245e 259 // TFT.ShowBitmapByName("BACKGROUND_01_V_4x535", 231, 25);
JackB 0:0ee5e6b7245e 260 // TFT.ShowBitmapByName("BACKGROUND_01_V_4x535", 5 + 240, 25);
JackB 0:0ee5e6b7245e 261 // TFT.ShowBitmapByName("BACKGROUND_01_V_4x535", 231 + 240, 25);
JackB 0:0ee5e6b7245e 262 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_BL", 5, 560);
JackB 0:0ee5e6b7245e 263 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_BL", 5 + 240, 560);
JackB 0:0ee5e6b7245e 264 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_BR", 215, 560);
JackB 0:0ee5e6b7245e 265 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_BR", 215 + 240, 560);
JackB 0:0ee5e6b7245e 266 // TFT.ShowBitmapByName("BACKGROUND_01_H_190x4", 25, 576);
JackB 0:0ee5e6b7245e 267 // TFT.ShowBitmapByName("BACKGROUND_01_H_190x4", 25 + 240, 576);
JackB 0:0ee5e6b7245e 268
JackB 0:0ee5e6b7245e 269 // Build the background for FU FAILURE box
JackB 0:0ee5e6b7245e 270 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_TL", 125, 588);
JackB 0:0ee5e6b7245e 271 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_TR", 335, 588);
JackB 0:0ee5e6b7245e 272 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_BL", 125, 629);
JackB 0:0ee5e6b7245e 273 // TFT.ShowBitmapByName("BACKGROUND_01_C_20x20_BR", 335, 629);
JackB 0:0ee5e6b7245e 274 // TFT.ShowBitmapByName("BACKGROUND_01_V_4x21", 125, 608);
JackB 0:0ee5e6b7245e 275 // TFT.ShowBitmapByName("BACKGROUND_01_V_4x21", 351, 608);
JackB 0:0ee5e6b7245e 276 // TFT.ShowBitmapByName("BACKGROUND_01_H_190x4", 145, 588);
JackB 0:0ee5e6b7245e 277 // TFT.ShowBitmapByName("BACKGROUND_01_H_190x4", 145, 645);
JackB 0:0ee5e6b7245e 278
JackB 0:0ee5e6b7245e 279 // Text SYSTEM at the top
JackB 0:0ee5e6b7245e 280 TFT.DL(COLOR_RGB(0xC8, 0xC8, 0xC8)); // set current color to gray
JackB 0:0ee5e6b7245e 281 TFT.Text(118, 15, 30, OPT_CENTER, "SYSTEM"); // text SYSTEM
JackB 0:0ee5e6b7245e 282 TFT.Text(118 + 240, 15, 30, OPT_CENTER, "SYSTEM"); // text SYSTEM
JackB 0:0ee5e6b7245e 283 // TFT.Text(118, 25, 30, OPT_CENTER, "RUNNING"); // text SYSTEM
JackB 0:0ee5e6b7245e 284 // TFT.Text(118 + 240, 25, 30, OPT_CENTER, "WARNING"); // text SYSTEM
JackB 0:0ee5e6b7245e 285
JackB 0:0ee5e6b7245e 286
JackB 0:0ee5e6b7245e 287 // Draw indicators
JackB 0:0ee5e6b7245e 288
JackB 0:0ee5e6b7245e 289 // Pump Running Indicators (small triangles)
JackB 0:0ee5e6b7245e 290 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 291 switch(main_indicator.pump_in_use) {
JackB 0:0ee5e6b7245e 292 case PUMP_IN_USE :
JackB 0:0ee5e6b7245e 293 TFT.ShowBitmapByName("RUN_TIME_C_ON_21_X_21", 230, 2);
JackB 0:0ee5e6b7245e 294 TFT.ShowBitmapByName("RUN_TIME_L_OFF_21_X_21", 207, 9);
JackB 0:0ee5e6b7245e 295 TFT.ShowBitmapByName("RUN_TIME_R_OFF_21_X_21", 253, 9);
JackB 0:0ee5e6b7245e 296 break;
JackB 0:0ee5e6b7245e 297 case PUMP_IN_USE_MAIN :
JackB 0:0ee5e6b7245e 298 TFT.ShowBitmapByName("RUN_TIME_C_OFF_21_X_21", 230, 2);
JackB 0:0ee5e6b7245e 299 TFT.ShowBitmapByName("RUN_TIME_L_ON_21_X_21", 207, 9);
JackB 0:0ee5e6b7245e 300 TFT.ShowBitmapByName("RUN_TIME_R_OFF_21_X_21", 253, 9);
JackB 0:0ee5e6b7245e 301 break;
JackB 0:0ee5e6b7245e 302 case PUMP_IN_USE_AUX :
JackB 0:0ee5e6b7245e 303 TFT.ShowBitmapByName("RUN_TIME_C_OFF_21_X_21", 230, 2);
JackB 0:0ee5e6b7245e 304 TFT.ShowBitmapByName("RUN_TIME_L_OFF_21_X_21", 207, 9);
JackB 0:0ee5e6b7245e 305 TFT.ShowBitmapByName("RUN_TIME_R_ON_21_X_21", 253, 9);
JackB 0:0ee5e6b7245e 306 break;
JackB 0:0ee5e6b7245e 307 default :
JackB 0:0ee5e6b7245e 308 // PUMP_OFF
JackB 0:0ee5e6b7245e 309 TFT.ShowBitmapByName("RUN_TIME_C_OFF_21_X_21", 230, 2);
JackB 0:0ee5e6b7245e 310 TFT.ShowBitmapByName("RUN_TIME_L_OFF_21_X_21", 207, 9);
JackB 0:0ee5e6b7245e 311 TFT.ShowBitmapByName("RUN_TIME_R_OFF_21_X_21", 253, 9);
JackB 0:0ee5e6b7245e 312 }
JackB 0:0ee5e6b7245e 313
JackB 0:0ee5e6b7245e 314 // Draw indicators and buttons
JackB 0:0ee5e6b7245e 315 int y = 0;
JackB 0:0ee5e6b7245e 316 int x1 = 120;
JackB 0:0ee5e6b7245e 317 int x2 = 120 + 240;
JackB 0:0ee5e6b7245e 318 int xc = 240;
JackB 0:0ee5e6b7245e 319 int x1b = 10;
JackB 0:0ee5e6b7245e 320 int x2b = 250;
JackB 0:0ee5e6b7245e 321 int xcb = 130;
JackB 0:0ee5e6b7245e 322 uint8_t box_radius = 15;
JackB 0:0ee5e6b7245e 323
JackB 0:0ee5e6b7245e 324
JackB 0:0ee5e6b7245e 325 // MD Running indicators
JackB 0:0ee5e6b7245e 326 y += 65;
JackB 0:0ee5e6b7245e 327 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 328 // TFT.ShowBitmapByName("RegularButtonBlk_220x51r4t", 10, y-25);
JackB 0:0ee5e6b7245e 329 // TFT.ShowBitmapByName("RegularButtonBlk_220x51r4t", 10 + 240, y-25);
JackB 0:0ee5e6b7245e 330
JackB 0:0ee5e6b7245e 331 RoundedRectangle(x1b, y-25+1, 219, 48, 5, 2, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0, "");
JackB 0:0ee5e6b7245e 332 RoundedRectangle(x2b, y-25+1, 219, 48, 5, 2, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0, "");
JackB 0:0ee5e6b7245e 333
JackB 0:0ee5e6b7245e 334 // SVG indicators, FT813 Font: Google Yantramanav
JackB 0:0ee5e6b7245e 335 // https://www.w3schools.com/howto/tryit.asp?font=Yantramanav
JackB 0:0ee5e6b7245e 336 // https://fonts.google.com/?query=Yantramanav
JackB 0:0ee5e6b7245e 337 // TFT.ShowBitmapByName("MD_RUNNING_220x51", 10, y-27);
JackB 0:0ee5e6b7245e 338 // TFT.ShowBitmapByName("MD_WARNING_220x51", 10 + 240, y-27);
JackB 0:0ee5e6b7245e 339 // Markus Adobe Ilustrator
JackB 0:0ee5e6b7245e 340 // TFT.ShowBitmapByName("MD_RUNNING_230x70", 5, y-35);
JackB 0:0ee5e6b7245e 341 // TFT.ShowBitmapByName("MD_WARNING_230x70", 245, y-35);
JackB 0:0ee5e6b7245e 342
JackB 0:0ee5e6b7245e 343 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 344 switch(main_indicator.md_main_running) {
JackB 0:0ee5e6b7245e 345 case RUN_STATUS_RUNNING :
JackB 0:0ee5e6b7245e 346 TFT.ShowBitmapByName("MD_RUNNING_220x51bt", 10, y-27);
JackB 0:0ee5e6b7245e 347 break;
JackB 0:0ee5e6b7245e 348 case RUN_STATUS_WARNING :
JackB 0:0ee5e6b7245e 349 TFT.ShowBitmapByName("MD_WARNING_220x51bt", 10, y-27);
JackB 0:0ee5e6b7245e 350 break;
JackB 0:0ee5e6b7245e 351 case RUN_STATUS_DISABLED :
JackB 0:0ee5e6b7245e 352 TFT.ShowBitmapByName("MD_DISABLED_220x51bt", 10, y-27);
JackB 0:0ee5e6b7245e 353 break;
JackB 0:0ee5e6b7245e 354 case RUN_STATUS_OFF_RED :
JackB 0:0ee5e6b7245e 355 TFT.ShowBitmapByName("MD_OFF_Red_220x51bt", 10, y-27);
JackB 0:0ee5e6b7245e 356 break;
JackB 0:0ee5e6b7245e 357 case RUN_STATUS_OFF :
JackB 0:0ee5e6b7245e 358 TFT.ShowBitmapByName("MD_OFF_Grey_220x51bt", 10, y-27);
JackB 0:0ee5e6b7245e 359 break;
JackB 0:0ee5e6b7245e 360 default :
JackB 0:0ee5e6b7245e 361 // RUN_STATUS_BLANK: No bitmap
JackB 0:0ee5e6b7245e 362 break;
JackB 0:0ee5e6b7245e 363 }
JackB 0:0ee5e6b7245e 364
JackB 0:0ee5e6b7245e 365 switch(main_indicator.md_aux_running) {
JackB 0:0ee5e6b7245e 366 case RUN_STATUS_RUNNING :
JackB 0:0ee5e6b7245e 367 TFT.ShowBitmapByName("MD_RUNNING_220x51bt", 250, y-27);
JackB 0:0ee5e6b7245e 368 break;
JackB 0:0ee5e6b7245e 369 case RUN_STATUS_WARNING :
JackB 0:0ee5e6b7245e 370 TFT.ShowBitmapByName("MD_WARNING_220x51bt", 250, y-27);
JackB 0:0ee5e6b7245e 371 break;
JackB 0:0ee5e6b7245e 372 case RUN_STATUS_DISABLED :
JackB 0:0ee5e6b7245e 373 TFT.ShowBitmapByName("MD_DISABLED_220x51bt", 250, y-27);
JackB 0:0ee5e6b7245e 374 break;
JackB 0:0ee5e6b7245e 375 case RUN_STATUS_OFF_RED :
JackB 0:0ee5e6b7245e 376 TFT.ShowBitmapByName("MD_OFF_Red_220x51bt", 250, y-27);
JackB 0:0ee5e6b7245e 377 break;
JackB 0:0ee5e6b7245e 378 case RUN_STATUS_OFF :
JackB 0:0ee5e6b7245e 379 TFT.ShowBitmapByName("MD_OFF_Grey_220x51bt", 250, y-27);
JackB 0:0ee5e6b7245e 380 break;
JackB 0:0ee5e6b7245e 381 default :
JackB 0:0ee5e6b7245e 382 // RUN_STATUS_BLANK: No bitmap
JackB 0:0ee5e6b7245e 383 break;
JackB 0:0ee5e6b7245e 384 }
JackB 0:0ee5e6b7245e 385
JackB 0:0ee5e6b7245e 386 // PHASE FAIL
JackB 0:0ee5e6b7245e 387 y += 60;
JackB 0:0ee5e6b7245e 388 switch(main_indicator.rb_main_phase_fail) {
JackB 0:0ee5e6b7245e 389 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 390 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 391 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 392 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 393 // TFT.Text(x1, y, 30, OPT_CENTER, "PHASE FAIL"); // text PHASE FAIL
JackB 0:0ee5e6b7245e 394 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "PHASE FAIL");
JackB 0:0ee5e6b7245e 395 break;
JackB 0:0ee5e6b7245e 396 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 397 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 398 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 399 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 400 // TFT.Text(x1, y, 30, OPT_CENTER, "PHASE FAIL"); // text PHASE FAIL
JackB 0:0ee5e6b7245e 401 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "PHASE FAIL");
JackB 0:0ee5e6b7245e 402 break;
JackB 0:0ee5e6b7245e 403 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 404 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 405 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 406 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 407 // TFT.Text(x1, y, 30, OPT_CENTER, "PHASE FAIL"); // text PHASE FAIL
JackB 0:0ee5e6b7245e 408 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "PHASE FAIL");
JackB 0:0ee5e6b7245e 409 }
JackB 0:0ee5e6b7245e 410
JackB 0:0ee5e6b7245e 411 switch(main_indicator.rb_aux_phase_fail) {
JackB 0:0ee5e6b7245e 412 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 413 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 414 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 415 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 416 // TFT.Text(x2, y, 30, OPT_CENTER, "PHASE FAIL"); // text PHASE FAIL
JackB 0:0ee5e6b7245e 417 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "PHASE FAIL");
JackB 0:0ee5e6b7245e 418 break;
JackB 0:0ee5e6b7245e 419 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 420 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 421 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 422 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 423 // TFT.Text(x2, y, 30, OPT_CENTER, "PHASE FAIL"); // text PHASE FAIL
JackB 0:0ee5e6b7245e 424 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "PHASE FAIL");
JackB 0:0ee5e6b7245e 425 break;
JackB 0:0ee5e6b7245e 426 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 427 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 428 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 429 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 430 // TFT.Text(x2, y, 30, OPT_CENTER, "PHASE FAIL"); // text PHASE FAIL
JackB 0:0ee5e6b7245e 431 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "PHASE FAIL");
JackB 0:0ee5e6b7245e 432 }
JackB 0:0ee5e6b7245e 433
JackB 0:0ee5e6b7245e 434 // MAIN POWER
JackB 0:0ee5e6b7245e 435 y += 49;
JackB 0:0ee5e6b7245e 436 switch(main_indicator.rb_main_main_power) {
JackB 0:0ee5e6b7245e 437 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 438 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 439 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 440 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 441 // TFT.Text(x1, y, 30, OPT_CENTER, "MAIN POWER"); // text MAIN POWER
JackB 0:0ee5e6b7245e 442 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "MAIN POWER");
JackB 0:0ee5e6b7245e 443 break;
JackB 0:0ee5e6b7245e 444 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 445 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 446 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 447 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 448 // TFT.Text(x1, y, 30, OPT_CENTER, "MAIN POWER"); // text MAIN POWER
JackB 0:0ee5e6b7245e 449 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "MAIN POWER");
JackB 0:0ee5e6b7245e 450 break;
JackB 0:0ee5e6b7245e 451 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 452 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 453 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 454 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 455 // TFT.Text(x1, y, 30, OPT_CENTER, "MAIN POWER"); // text MAIN POWER
JackB 0:0ee5e6b7245e 456 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "MAIN POWER");
JackB 0:0ee5e6b7245e 457 }
JackB 0:0ee5e6b7245e 458
JackB 0:0ee5e6b7245e 459 switch(main_indicator.rb_aux_main_power) {
JackB 0:0ee5e6b7245e 460 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 461 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 462 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 463 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 464 // TFT.Text(x2, y, 30, OPT_CENTER, "MAIN POWER"); // text MAIN POWER
JackB 0:0ee5e6b7245e 465 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "MAIN POWER");
JackB 0:0ee5e6b7245e 466 break;
JackB 0:0ee5e6b7245e 467 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 468 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 469 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 470 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 471 // TFT.Text(x2, y, 30, OPT_CENTER, "MAIN POWER"); // text MAIN POWER
JackB 0:0ee5e6b7245e 472 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "MAIN POWER");
JackB 0:0ee5e6b7245e 473 break;
JackB 0:0ee5e6b7245e 474 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 475 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 476 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 477 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 478 // TFT.Text(x2, y, 30, OPT_CENTER, "MAIN POWER"); // text MAIN POWER
JackB 0:0ee5e6b7245e 479 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "MAIN POWER");
JackB 0:0ee5e6b7245e 480 }
JackB 0:0ee5e6b7245e 481
JackB 0:0ee5e6b7245e 482 // CTRL POWER
JackB 0:0ee5e6b7245e 483 y += 49;
JackB 0:0ee5e6b7245e 484 switch(main_indicator.rb_main_ctrl_power) {
JackB 0:0ee5e6b7245e 485 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 486 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 487 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 488 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 489 // TFT.Text(x1, y, 30, OPT_CENTER, "CTRL POWER"); // text CTRL POWER
JackB 0:0ee5e6b7245e 490 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "CTRL POWER");
JackB 0:0ee5e6b7245e 491 break;
JackB 0:0ee5e6b7245e 492 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 493 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 494 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 495 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 496 // TFT.Text(x1, y, 30, OPT_CENTER, "CTRL POWER"); // text CTRL POWER
JackB 0:0ee5e6b7245e 497 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "CTRL POWER");
JackB 0:0ee5e6b7245e 498 break;
JackB 0:0ee5e6b7245e 499 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 500 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 501 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 502 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 503 // TFT.Text(x1, y, 30, OPT_CENTER, "CTRL POWER"); // text CTRL POWER
JackB 0:0ee5e6b7245e 504 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "CTRL POWER");
JackB 0:0ee5e6b7245e 505 }
JackB 0:0ee5e6b7245e 506
JackB 0:0ee5e6b7245e 507 switch(main_indicator.rb_aux_ctrl_power) {
JackB 0:0ee5e6b7245e 508 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 509 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 510 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 511 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 512 // TFT.Text(x2, y, 30, OPT_CENTER, "CTRL POWER"); // text CTRL POWER
JackB 0:0ee5e6b7245e 513 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "CTRL POWER");
JackB 0:0ee5e6b7245e 514 break;
JackB 0:0ee5e6b7245e 515 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 516 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 517 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 518 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 519 // TFT.Text(x2, y, 30, OPT_CENTER, "CTRL POWER"); // text CTRL POWER
JackB 0:0ee5e6b7245e 520 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "CTRL POWER");
JackB 0:0ee5e6b7245e 521 break;
JackB 0:0ee5e6b7245e 522 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 523 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 524 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 525 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 526 // TFT.Text(x2, y, 30, OPT_CENTER, "CTRL POWER"); // text CTRL POWER
JackB 0:0ee5e6b7245e 527 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "CTRL POWER");
JackB 0:0ee5e6b7245e 528 }
JackB 0:0ee5e6b7245e 529
JackB 0:0ee5e6b7245e 530 // OIL PRESS
JackB 0:0ee5e6b7245e 531 y += 49;
JackB 0:0ee5e6b7245e 532 switch(main_indicator.rb_main_oil_press) {
JackB 0:0ee5e6b7245e 533 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 534 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 535 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 536 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 537 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL PRESS"); // text OIL PRESS
JackB 0:0ee5e6b7245e 538 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OIL PRESS");
JackB 0:0ee5e6b7245e 539 break;
JackB 0:0ee5e6b7245e 540 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 541 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 542 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 543 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 544 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL PRESS"); // text OIL PRESS
JackB 0:0ee5e6b7245e 545 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OIL PRESS");
JackB 0:0ee5e6b7245e 546 break;
JackB 0:0ee5e6b7245e 547 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 548 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 549 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 550 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 551 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL PRESS"); // text OIL PRESS
JackB 0:0ee5e6b7245e 552 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OIL PRESS");
JackB 0:0ee5e6b7245e 553 }
JackB 0:0ee5e6b7245e 554
JackB 0:0ee5e6b7245e 555 switch(main_indicator.rb_aux_oil_press) {
JackB 0:0ee5e6b7245e 556 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 557 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 558 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 559 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 560 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL PRESS"); // text OIL PRESS
JackB 0:0ee5e6b7245e 561 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OIL PRESS");
JackB 0:0ee5e6b7245e 562 break;
JackB 0:0ee5e6b7245e 563 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 564 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 565 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 566 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 567 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL PRESS"); // text OIL PRESS
JackB 0:0ee5e6b7245e 568 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OIL PRESS");
JackB 0:0ee5e6b7245e 569 break;
JackB 0:0ee5e6b7245e 570 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 571 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 572 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 573 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 574 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL PRESS"); // text OIL PRESS
JackB 0:0ee5e6b7245e 575 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OIL PRESS");
JackB 0:0ee5e6b7245e 576 }
JackB 0:0ee5e6b7245e 577
JackB 0:0ee5e6b7245e 578 // HYDR LOCK
JackB 0:0ee5e6b7245e 579 y += 49;
JackB 0:0ee5e6b7245e 580 TFT.DL(TAG(100)); // assign TAG
JackB 0:0ee5e6b7245e 581 switch(main_indicator.rb_main_hydr_lock) {
JackB 0:0ee5e6b7245e 582 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 583 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 584 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 585 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 586 // TFT.Text(x1, y, 30, OPT_CENTER, "HYDR LOCK"); // text HYDR LOCK
JackB 0:0ee5e6b7245e 587 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "HYDR LOCK");
JackB 0:0ee5e6b7245e 588 break;
JackB 0:0ee5e6b7245e 589 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 590 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 591 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 592 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 593 // TFT.Text(x1, y, 30, OPT_CENTER, "HYDR LOCK"); // text HYDR LOCK
JackB 0:0ee5e6b7245e 594 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "HYDR LOCK");
JackB 0:0ee5e6b7245e 595 break;
JackB 0:0ee5e6b7245e 596 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 597 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 598 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 599 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 600 // TFT.Text(x1, y, 30, OPT_CENTER, "HYDR LOCK"); // text HYDR LOCK
JackB 0:0ee5e6b7245e 601 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "HYDR LOCK");
JackB 0:0ee5e6b7245e 602 }
JackB 0:0ee5e6b7245e 603
JackB 0:0ee5e6b7245e 604 TFT.DL(TAG(101)); // assign TAG
JackB 0:0ee5e6b7245e 605 switch(main_indicator.rb_aux_hydr_lock) {
JackB 0:0ee5e6b7245e 606 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 607 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 608 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 609 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 610 // TFT.Text(x2, y, 30, OPT_CENTER, "HYDR LOCK"); // text HYDR LOCK
JackB 0:0ee5e6b7245e 611 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "HYDR LOCK");
JackB 0:0ee5e6b7245e 612 break;
JackB 0:0ee5e6b7245e 613 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 614 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 615 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 616 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 617 // TFT.Text(x2, y, 30, OPT_CENTER, "HYDR LOCK"); // text HYDR LOCK
JackB 0:0ee5e6b7245e 618 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "HYDR LOCK");
JackB 0:0ee5e6b7245e 619 break;
JackB 0:0ee5e6b7245e 620 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 621 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 622 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 623 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 624 // TFT.Text(x2, y, 30, OPT_CENTER, "HYDR LOCK"); // text HYDR LOCK
JackB 0:0ee5e6b7245e 625 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "HYDR LOCK");
JackB 0:0ee5e6b7245e 626 }
JackB 0:0ee5e6b7245e 627
JackB 0:0ee5e6b7245e 628 // OVERLOAD
JackB 0:0ee5e6b7245e 629 y += 49;
JackB 0:0ee5e6b7245e 630
JackB 0:0ee5e6b7245e 631 switch(main_indicator.rb_main_overload) {
JackB 0:0ee5e6b7245e 632 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 633 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 634 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 635 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 636 // TFT.Text(x1, y, 30, OPT_CENTER, "OVERLOAD"); // text OVERLOAD
JackB 0:0ee5e6b7245e 637 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OVERLOAD");
JackB 0:0ee5e6b7245e 638 break;
JackB 0:0ee5e6b7245e 639 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 640 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 641 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 642 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 643 // TFT.Text(x1, y, 30, OPT_CENTER, "OVERLOAD"); // text OVERLOAD
JackB 0:0ee5e6b7245e 644 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OVERLOAD");
JackB 0:0ee5e6b7245e 645 break;
JackB 0:0ee5e6b7245e 646 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 647 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 648 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 649 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 650 // TFT.Text(x1, y, 30, OPT_CENTER, "OVERLOAD"); // text OVERLOAD
JackB 0:0ee5e6b7245e 651 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OVERLOAD");
JackB 0:0ee5e6b7245e 652 }
JackB 0:0ee5e6b7245e 653
JackB 0:0ee5e6b7245e 654 switch(main_indicator.rb_aux_overload) {
JackB 0:0ee5e6b7245e 655 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 656 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 657 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 658 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 659 // TFT.Text(x2, y, 30, OPT_CENTER, "OVERLOAD"); // text OVERLOAD
JackB 0:0ee5e6b7245e 660 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OVERLOAD");
JackB 0:0ee5e6b7245e 661 break;
JackB 0:0ee5e6b7245e 662 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 663 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 664 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 665 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 666 // TFT.Text(x2, y, 30, OPT_CENTER, "OVERLOAD"); // text OVERLOAD
JackB 0:0ee5e6b7245e 667 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OVERLOAD");
JackB 0:0ee5e6b7245e 668 break;
JackB 0:0ee5e6b7245e 669 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 670 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 671 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 672 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 673 // TFT.Text(x2, y, 30, OPT_CENTER, "OVERLOAD"); // text OVERLOAD
JackB 0:0ee5e6b7245e 674 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OVERLOAD");
JackB 0:0ee5e6b7245e 675 }
JackB 0:0ee5e6b7245e 676
JackB 0:0ee5e6b7245e 677 // OIL LEVEL
JackB 0:0ee5e6b7245e 678 y += 49;
JackB 0:0ee5e6b7245e 679 switch(main_indicator.rb_main_oil_level) {
JackB 0:0ee5e6b7245e 680 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 681 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 682 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 683 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 684 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL LEVEL"); // text OIL LEVEL
JackB 0:0ee5e6b7245e 685 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OIL LEVEL");
JackB 0:0ee5e6b7245e 686 break;
JackB 0:0ee5e6b7245e 687 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 688 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 689 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 690 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 691 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL LEVEL"); // text OIL LEVEL
JackB 0:0ee5e6b7245e 692 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OIL LEVEL");
JackB 0:0ee5e6b7245e 693 break;
JackB 0:0ee5e6b7245e 694 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 695 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 696 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 697 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 698 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL LEVEL"); // text OIL LEVEL
JackB 0:0ee5e6b7245e 699 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OIL LEVEL");
JackB 0:0ee5e6b7245e 700 }
JackB 0:0ee5e6b7245e 701
JackB 0:0ee5e6b7245e 702 switch(main_indicator.rb_aux_oil_level) {
JackB 0:0ee5e6b7245e 703 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 704 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 705 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 706 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 707 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL LEVEL"); // text OIL LEVEL
JackB 0:0ee5e6b7245e 708 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OIL LEVEL");
JackB 0:0ee5e6b7245e 709 break;
JackB 0:0ee5e6b7245e 710 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 711 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 712 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 713 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 714 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL LEVEL"); // text OIL LEVEL
JackB 0:0ee5e6b7245e 715 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OIL LEVEL");
JackB 0:0ee5e6b7245e 716 break;
JackB 0:0ee5e6b7245e 717 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 718 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 719 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 720 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 721 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL LEVEL"); // text OIL LEVEL
JackB 0:0ee5e6b7245e 722 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OIL LEVEL");
JackB 0:0ee5e6b7245e 723 }
JackB 0:0ee5e6b7245e 724
JackB 0:0ee5e6b7245e 725 // OIL FILTER
JackB 0:0ee5e6b7245e 726 y += 49;
JackB 0:0ee5e6b7245e 727 switch(main_indicator.rb_main_oil_filter) {
JackB 0:0ee5e6b7245e 728 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 729 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 730 // TFT.DL(COLOR_RGB(0x60, 0x60, 0x60)); // set current color to white
JackB 0:0ee5e6b7245e 731 // TFT.RectWH(x1b+1, y-25+1, 217, 48, 1);
JackB 0:0ee5e6b7245e 732 // TFT.DL(COLOR_RGB(0x80, 0x80, 0x80)); // set current color to white
JackB 0:0ee5e6b7245e 733 // TFT.RectWH(x1b+1+4, y-25+1+4, 217-8, 48-8, 1);
JackB 0:0ee5e6b7245e 734 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OIL FILTER");
JackB 0:0ee5e6b7245e 735 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 736 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 737 break;
JackB 0:0ee5e6b7245e 738 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 739 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 740 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 741 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 742 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL FILTER"); // text OIL FILTER
JackB 0:0ee5e6b7245e 743 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OIL FILTER");
JackB 0:0ee5e6b7245e 744 break;
JackB 0:0ee5e6b7245e 745 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 746 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 747 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x1b, y-25);
JackB 0:0ee5e6b7245e 748 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 749 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL FILTER"); // text OIL FILTER
JackB 0:0ee5e6b7245e 750 RegularButton(x1b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OIL FILTER");
JackB 0:0ee5e6b7245e 751 }
JackB 0:0ee5e6b7245e 752
JackB 0:0ee5e6b7245e 753 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to white
JackB 0:0ee5e6b7245e 754 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL FILTER"); // text OIL FILTER
JackB 0:0ee5e6b7245e 755
JackB 0:0ee5e6b7245e 756
JackB 0:0ee5e6b7245e 757
JackB 0:0ee5e6b7245e 758 switch(main_indicator.rb_aux_oil_filter) {
JackB 0:0ee5e6b7245e 759 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 760 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 761 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 762 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 763 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL FILTER"); // text OIL FILTER
JackB 0:0ee5e6b7245e 764 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0x80, 0x80, 0x80, 0, "OIL FILTER");
JackB 0:0ee5e6b7245e 765 break;
JackB 0:0ee5e6b7245e 766 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 767 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 768 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 769 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 770 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL FILTER"); // text OIL FILTER
JackB 0:0ee5e6b7245e 771 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFF, 0xFF, 0x00, 0, "OIL FILTER");
JackB 0:0ee5e6b7245e 772 break;
JackB 0:0ee5e6b7245e 773 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 774 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 775 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0t", x2b, y-25);
JackB 0:0ee5e6b7245e 776 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 777 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL FILTER"); // text OIL FILTER
JackB 0:0ee5e6b7245e 778 RegularButton(x2b, y-25+1, 219, 48, 1, 0, 0xFE, 0x00, 0x00, 1, "OIL FILTER");
JackB 0:0ee5e6b7245e 779 }
JackB 0:0ee5e6b7245e 780
JackB 0:0ee5e6b7245e 781 // OIL TEMP
JackB 0:0ee5e6b7245e 782 y += 49;
JackB 0:0ee5e6b7245e 783 switch(main_indicator.rb_main_oil_temp) {
JackB 0:0ee5e6b7245e 784 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 785 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 786 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0r10t", x1b, y-25);
JackB 0:0ee5e6b7245e 787 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 788 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL TEMP"); // text OIL TEMP
JackB 0:0ee5e6b7245e 789 RegularButton(x1b, y-25+1, 219, 48, box_radius, 1, 0x80, 0x80, 0x80, 0, "OIL TEMP");
JackB 0:0ee5e6b7245e 790 break;
JackB 0:0ee5e6b7245e 791 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 792 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 793 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0r10t", x1b, y-25);
JackB 0:0ee5e6b7245e 794 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 795 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL TEMP"); // text OIL TEMP
JackB 0:0ee5e6b7245e 796 RegularButton(x1b, y-25+1, 219, 48, box_radius, 1, 0xFF, 0xFF, 0x00, 0, "OIL TEMP");
JackB 0:0ee5e6b7245e 797 break;
JackB 0:0ee5e6b7245e 798 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 799 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 800 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0r10t", x1b, y-25);
JackB 0:0ee5e6b7245e 801 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 802 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL TEMP"); // text OIL TEMP
JackB 0:0ee5e6b7245e 803 RegularButton(x1b, y-25+1, 219, 48, box_radius, 1, 0xFE, 0x00, 0x00, 1, "OIL TEMP");
JackB 0:0ee5e6b7245e 804 }
JackB 0:0ee5e6b7245e 805
JackB 0:0ee5e6b7245e 806 // TFT.Text(x1, y, 30, OPT_CENTER, "OIL TEMP"); // text OIL TEMP
JackB 0:0ee5e6b7245e 807
JackB 0:0ee5e6b7245e 808 switch(main_indicator.rb_aux_oil_temp) {
JackB 0:0ee5e6b7245e 809 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 810 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 811 // TFT.ShowBitmapByName("RegularButtonGray_220x51r0r10t", x2b, y-25);
JackB 0:0ee5e6b7245e 812 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 813 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL TEMP"); // text OIL TEMP
JackB 0:0ee5e6b7245e 814 RegularButton(x2b, y-25+1, 219, 48, box_radius, 1, 0x80, 0x80, 0x80, 0, "OIL TEMP");
JackB 0:0ee5e6b7245e 815 break;
JackB 0:0ee5e6b7245e 816 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 817 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 818 // TFT.ShowBitmapByName("RegularButtonYel_220x51r0r10t", x2b, y-25);
JackB 0:0ee5e6b7245e 819 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 820 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL TEMP"); // text OIL TEMP
JackB 0:0ee5e6b7245e 821 RegularButton(x2b, y-25+1, 219, 48, box_radius, 1, 0xFF, 0xFF, 0x00, 0, "OIL TEMP");
JackB 0:0ee5e6b7245e 822 break;
JackB 0:0ee5e6b7245e 823 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 824 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 825 // TFT.ShowBitmapByName("RegularButtonRed_220x51r0r10t", x2b, y-25);
JackB 0:0ee5e6b7245e 826 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 827 // TFT.Text(x2, y, 30, OPT_CENTER, "OIL TEMP"); // text OIL TEMP
JackB 0:0ee5e6b7245e 828 RegularButton(x2b, y-25+1, 219, 48, box_radius, 1, 0xFE, 0x00, 0x00, 1, "OIL TEMP");
JackB 0:0ee5e6b7245e 829 }
JackB 0:0ee5e6b7245e 830
JackB 0:0ee5e6b7245e 831 // FU FAILURE
JackB 0:0ee5e6b7245e 832 y = yFuBox; // 557
JackB 0:0ee5e6b7245e 833 switch(main_indicator.rb_fu_failure) {
JackB 0:0ee5e6b7245e 834 case ALARM_STATUS_OFF :
JackB 0:0ee5e6b7245e 835 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 836 // TFT.ShowBitmapByName("RegularButtonGray_220x51r10t", xcb, y-25);
JackB 0:0ee5e6b7245e 837 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 838 // TFT.Text(xc, y, 30, OPT_CENTER, "FU FAILURE"); // text FU FAILURE
JackB 0:0ee5e6b7245e 839 RegularButton(xcb, y+5, 219, 48, box_radius, 2, 0x80, 0x80, 0x80, 0, "FU FAILURE");
JackB 0:0ee5e6b7245e 840 break;
JackB 0:0ee5e6b7245e 841 case ALARM_STATUS_WARNING :
JackB 0:0ee5e6b7245e 842 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 843 // TFT.ShowBitmapByName("RegularButtonYel_220x51r10t", xcb, y-25);
JackB 0:0ee5e6b7245e 844 // TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 845 // TFT.Text(xc, y, 30, OPT_CENTER, "FU FAILURE"); // text FU FAILURE
JackB 0:0ee5e6b7245e 846 RegularButton(xcb, y+5, 219, 48, box_radius, 2, 0xFF, 0xFF, 0x00, 0, "FU FAILURE");
JackB 0:0ee5e6b7245e 847 break;
JackB 0:0ee5e6b7245e 848 default : // ALARM_STATUS_FAILURE
JackB 0:0ee5e6b7245e 849 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 850 // TFT.ShowBitmapByName("RegularButtonRed_220x51r10t", xcb, y-25);
JackB 0:0ee5e6b7245e 851 // TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 852 // TFT.Text(xc, y, 30, OPT_CENTER, "FU FAILURE"); // text FU FAILURE
JackB 0:0ee5e6b7245e 853 RegularButton(xcb, y+5, 219, 48, box_radius, 2, 0xFE, 0x00, 0x00, 1, "FU FAILURE");
JackB 0:0ee5e6b7245e 854 }
JackB 0:0ee5e6b7245e 855
JackB 0:0ee5e6b7245e 856
JackB 0:0ee5e6b7245e 857 // BUTTON SET
JackB 0:0ee5e6b7245e 858 TFT.DL(TAG(BUTTON_SET_TAG)); // assign TAG
JackB 0:0ee5e6b7245e 859 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 860 if (main_button.set_pressed == 0) {
JackB 0:0ee5e6b7245e 861 TFT.ShowBitmapByName("SwitchOn_115x66_t", 5, y-4);
JackB 0:0ee5e6b7245e 862 TFT.DL(COLOR_RGB(0xB0, 0xB0, 0xB0)); // set current color to white
JackB 0:0ee5e6b7245e 863 } else {
JackB 0:0ee5e6b7245e 864 TFT.ShowBitmapByName("SwitchOff_115x66_t", 5, y-4);
JackB 0:0ee5e6b7245e 865 TFT.DL(COLOR_RGB(0x90, 0x90, 0x90)); // set current color to white
JackB 0:0ee5e6b7245e 866 }
JackB 0:0ee5e6b7245e 867 // TFT.Text(63, y+1, 30, OPT_CENTER, "SET"); // text SET
JackB 0:0ee5e6b7245e 868 TFT.ShowBitmapByName("settings_40x40", 42, y-4+13);
JackB 0:0ee5e6b7245e 869
JackB 0:0ee5e6b7245e 870 // BUTTON DIM
JackB 0:0ee5e6b7245e 871 TFT.DL(TAG(BUTTON_DIM_TAG)); // assign TAG
JackB 0:0ee5e6b7245e 872 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 873 if (main_button.dim_pressed == 0) {
JackB 0:0ee5e6b7245e 874 TFT.ShowBitmapByName("SwitchOn_115x66_t", 360, y-4);
JackB 0:0ee5e6b7245e 875 TFT.DL(COLOR_RGB(0xB0, 0xB0, 0xB0)); // set current color to white
JackB 0:0ee5e6b7245e 876 } else {
JackB 0:0ee5e6b7245e 877 TFT.ShowBitmapByName("SwitchOff_115x66_t", 360, y-4);
JackB 0:0ee5e6b7245e 878 TFT.DL(COLOR_RGB(0x90, 0x90, 0x90)); // set current color to white
JackB 0:0ee5e6b7245e 879 }
JackB 0:0ee5e6b7245e 880 // TFT.Text(418, y+1, 30, OPT_CENTER, "DIM"); // text DIM
JackB 0:0ee5e6b7245e 881 TFT.ShowBitmapByName("light-bulb_40x40", 397, y-4+13);
JackB 0:0ee5e6b7245e 882
JackB 0:0ee5e6b7245e 883
JackB 0:0ee5e6b7245e 884 // Accept Switches
JackB 0:0ee5e6b7245e 885 y = 623;
JackB 0:0ee5e6b7245e 886 // BUTTON ACCEPT ALARM
JackB 0:0ee5e6b7245e 887 TFT.DL(TAG(BUTTON_ACCEPT_ALARM_TAG)); // assign TAG
JackB 0:0ee5e6b7245e 888 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 889 if (main_button.accept_alarm_pressed == 0)
JackB 0:0ee5e6b7245e 890 TFT.ShowBitmapByName("SwitchOn_234x132", 3, y);
JackB 0:0ee5e6b7245e 891 else
JackB 0:0ee5e6b7245e 892 TFT.ShowBitmapByName("SwitchOff_234x132", 3, y);
JackB 0:0ee5e6b7245e 893 TFT.Text(x1, y+49, 30, OPT_CENTER, "ACCEPT"); // text OIL PRESS
JackB 0:0ee5e6b7245e 894 TFT.Text(x1, y+84, 30, OPT_CENTER, "ALARM"); // text OIL PRESS
JackB 0:0ee5e6b7245e 895
JackB 0:0ee5e6b7245e 896 // BUTTON ACCEPT HORN
JackB 0:0ee5e6b7245e 897 TFT.DL(TAG(BUTTON_ACCEPT_HORN_TAG)); // assign TAG
JackB 0:0ee5e6b7245e 898 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 899 if (main_button.accept_horn_pressed == 0)
JackB 0:0ee5e6b7245e 900 TFT.ShowBitmapByName("SwitchOn_234x132", 3 + 240, y);
JackB 0:0ee5e6b7245e 901 else
JackB 0:0ee5e6b7245e 902 TFT.ShowBitmapByName("SwitchOff_234x132", 3 + 240, y);
JackB 0:0ee5e6b7245e 903 TFT.Text(x2, y+49, 30, OPT_CENTER, "ACCEPT"); // text OIL PRESS
JackB 0:0ee5e6b7245e 904 TFT.Text(x2, y+84, 30, OPT_CENTER, "HORN"); // text OIL PRESS
JackB 0:0ee5e6b7245e 905
JackB 0:0ee5e6b7245e 906 TFT.DL(DISPLAY()); // Display the image
JackB 0:0ee5e6b7245e 907 TFT.Swap(); // Swap the current display list
JackB 0:0ee5e6b7245e 908 TFT.Flush_Co_Buffer(); // Download the command list into fifo
JackB 0:0ee5e6b7245e 909 TFT.WaitCmdfifo_empty(); // Wait till coprocessor completes the operation
JackB 0:0ee5e6b7245e 910 }
JackB 0:0ee5e6b7245e 911
JackB 0:0ee5e6b7245e 912 void RegularButton(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t corner, uint8_t style, uint8_t R, uint8_t G, uint8_t B, uint8_t text_color, char *text)
JackB 0:0ee5e6b7245e 913 {
JackB 0:0ee5e6b7245e 914 uint8_t linewidth = 4;
JackB 0:0ee5e6b7245e 915 uint8_t corner_inner = corner - linewidth;
JackB 0:0ee5e6b7245e 916 if (corner_inner < 1) {
JackB 0:0ee5e6b7245e 917 corner_inner = 1;
JackB 0:0ee5e6b7245e 918 }
JackB 0:0ee5e6b7245e 919 uint8_t Rd = R * 0.5;
JackB 0:0ee5e6b7245e 920 uint8_t Gd = G * 0.5;
JackB 0:0ee5e6b7245e 921 uint8_t Bd = B * 0.5;
JackB 0:0ee5e6b7245e 922 uint16_t x1 = x0 + w / 2;
JackB 0:0ee5e6b7245e 923 uint16_t y1 = y0 + h / 2;
JackB 0:0ee5e6b7245e 924 if (style == 0) {
JackB 0:0ee5e6b7245e 925 TFT.DL(COLOR_RGB(Rd, Gd, Bd)); // set current color to white
JackB 0:0ee5e6b7245e 926 TFT.RectWH(x0, y0, w, h, 1);
JackB 0:0ee5e6b7245e 927 TFT.DL(COLOR_RGB(R, G, B)); // set current color to white
JackB 0:0ee5e6b7245e 928 TFT.RectWH(x0+linewidth, y0+linewidth, w-linewidth*2, h-linewidth*2, 1);
JackB 0:0ee5e6b7245e 929 } else if (style == 1) {
JackB 0:0ee5e6b7245e 930 if (corner < linewidth) {
JackB 0:0ee5e6b7245e 931 corner = linewidth;
JackB 0:0ee5e6b7245e 932 }
JackB 0:0ee5e6b7245e 933 if (corner_inner < 1) {
JackB 0:0ee5e6b7245e 934 corner_inner = 1;
JackB 0:0ee5e6b7245e 935 }
JackB 0:0ee5e6b7245e 936 TFT.DL(COLOR_RGB(Rd, Gd, Bd)); // set current color to white
JackB 0:0ee5e6b7245e 937 TFT.RectWH(x0, y0, corner, corner, 1); // left top rect
JackB 0:0ee5e6b7245e 938 TFT.RectWH(x0+w-corner, y0, corner, corner, 1); // right top rect
JackB 0:0ee5e6b7245e 939 TFT.RectWH(x0, y0, w, h, corner);
JackB 0:0ee5e6b7245e 940 TFT.DL(COLOR_RGB(R, G, B)); // set current color to white
JackB 0:0ee5e6b7245e 941 TFT.RectWH(x0+linewidth, y0+linewidth, corner, corner, 1); // left top rect
JackB 0:0ee5e6b7245e 942 TFT.RectWH(x0+w-linewidth-corner, y0+linewidth, corner, corner, 1); // right top rect
JackB 0:0ee5e6b7245e 943 TFT.RectWH(x0+linewidth, y0+linewidth, w-linewidth*2, h-linewidth*2, corner_inner);
JackB 0:0ee5e6b7245e 944 } else if (style == 2) {
JackB 0:0ee5e6b7245e 945 if (corner < linewidth) {
JackB 0:0ee5e6b7245e 946 corner = linewidth;
JackB 0:0ee5e6b7245e 947 }
JackB 0:0ee5e6b7245e 948 if (corner_inner < 1) {
JackB 0:0ee5e6b7245e 949 corner_inner = 1;
JackB 0:0ee5e6b7245e 950 }
JackB 0:0ee5e6b7245e 951 TFT.DL(COLOR_RGB(Rd, Gd, Bd)); // set current color to white
JackB 0:0ee5e6b7245e 952 TFT.RectWH(x0, y0, w, h, corner);
JackB 0:0ee5e6b7245e 953 TFT.DL(COLOR_RGB(R, G, B)); // set current color to white
JackB 0:0ee5e6b7245e 954 TFT.RectWH(x0+linewidth, y0+linewidth, w-linewidth*2, h-linewidth*2, corner_inner);
JackB 0:0ee5e6b7245e 955 }
JackB 0:0ee5e6b7245e 956 if (text_color == 0) {
JackB 0:0ee5e6b7245e 957 TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 958 }
JackB 0:0ee5e6b7245e 959 else {
JackB 0:0ee5e6b7245e 960 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 961 }
JackB 0:0ee5e6b7245e 962 TFT.Text(x1, y1, 30, OPT_CENTER, text); // text OIL TEMP
JackB 0:0ee5e6b7245e 963 }
JackB 0:0ee5e6b7245e 964
JackB 0:0ee5e6b7245e 965 void RoundedRectangle(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t corner, uint8_t style, uint8_t Ro, uint8_t Go, uint8_t Bo, uint8_t Ri, uint8_t Gi, uint8_t Bi, uint8_t text_color, char *text)
JackB 0:0ee5e6b7245e 966 {
JackB 0:0ee5e6b7245e 967 uint8_t linewidth = 4;
JackB 0:0ee5e6b7245e 968 uint8_t corner_inner = corner - linewidth;
JackB 0:0ee5e6b7245e 969 uint16_t x1 = x0 + w / 2;
JackB 0:0ee5e6b7245e 970 uint16_t y1 = y0 + h / 2;
JackB 0:0ee5e6b7245e 971 if (style == 0) {
JackB 0:0ee5e6b7245e 972 TFT.DL(COLOR_RGB(Ro, Go, Bo)); // set current color to white
JackB 0:0ee5e6b7245e 973 TFT.RectWH(x0, y0, w, h, 1);
JackB 0:0ee5e6b7245e 974 TFT.DL(COLOR_RGB(Ri, Gi, Bi)); // set current color to white
JackB 0:0ee5e6b7245e 975 TFT.RectWH(x0+linewidth, y0+linewidth, w-linewidth*2, h-linewidth*2, 1);
JackB 0:0ee5e6b7245e 976 } else if (style == 1) {
JackB 0:0ee5e6b7245e 977 if (corner < linewidth) {
JackB 0:0ee5e6b7245e 978 corner = linewidth;
JackB 0:0ee5e6b7245e 979 }
JackB 0:0ee5e6b7245e 980 if (corner_inner < linewidth) {
JackB 0:0ee5e6b7245e 981 corner_inner = linewidth;
JackB 0:0ee5e6b7245e 982 }
JackB 0:0ee5e6b7245e 983 TFT.DL(COLOR_RGB(Ro, Go, Bo)); // set current color to white
JackB 0:0ee5e6b7245e 984 TFT.RectWH(x0, y0, corner, corner, 1);
JackB 0:0ee5e6b7245e 985 TFT.RectWH(x0+w-corner, y0, corner, corner, 1);
JackB 0:0ee5e6b7245e 986 TFT.RectWH(x0, y0, w, h, corner);
JackB 0:0ee5e6b7245e 987 TFT.DL(COLOR_RGB(Ri, Gi, Bi)); // set current color to white
JackB 0:0ee5e6b7245e 988 TFT.RectWH(x0+linewidth, y0+linewidth, corner, corner, 1);
JackB 0:0ee5e6b7245e 989 TFT.RectWH(x0+linewidth+w-corner-corner_inner, y0+linewidth, corner, corner, 1);
JackB 0:0ee5e6b7245e 990 TFT.RectWH(x0+linewidth, y0+linewidth, w-linewidth*2, h-linewidth*2, corner_inner);
JackB 0:0ee5e6b7245e 991 } else if (style == 2) {
JackB 0:0ee5e6b7245e 992 if (corner < linewidth) {
JackB 0:0ee5e6b7245e 993 corner = linewidth;
JackB 0:0ee5e6b7245e 994 }
JackB 0:0ee5e6b7245e 995 if (corner_inner < linewidth) {
JackB 0:0ee5e6b7245e 996 corner_inner = linewidth;
JackB 0:0ee5e6b7245e 997 }
JackB 0:0ee5e6b7245e 998 TFT.DL(COLOR_RGB(Ro, Go, Bo)); // set current color to white
JackB 0:0ee5e6b7245e 999 TFT.RectWH(x0, y0, w, h, corner);
JackB 0:0ee5e6b7245e 1000 TFT.DL(COLOR_RGB(Ri, Gi, Bi)); // set current color to white
JackB 0:0ee5e6b7245e 1001 TFT.RectWH(x0+linewidth, y0+linewidth, w-linewidth*2, h-linewidth*2, corner_inner);
JackB 0:0ee5e6b7245e 1002 }
JackB 0:0ee5e6b7245e 1003 // Text
JackB 0:0ee5e6b7245e 1004 // if (strlen(text) > 0) {
JackB 0:0ee5e6b7245e 1005 if (text_color == 0) {
JackB 0:0ee5e6b7245e 1006 TFT.DL(COLOR_RGB(0x00, 0x00, 0x00)); // set current color to black
JackB 0:0ee5e6b7245e 1007 }
JackB 0:0ee5e6b7245e 1008 else {
JackB 0:0ee5e6b7245e 1009 TFT.DL(COLOR_RGB(0xFF, 0xFF, 0xFF)); // set current color to white
JackB 0:0ee5e6b7245e 1010 }
JackB 0:0ee5e6b7245e 1011 TFT.Text(x1, y1, 30, OPT_CENTER, text); // text
JackB 0:0ee5e6b7245e 1012 // }
JackB 0:0ee5e6b7245e 1013 }
JackB 0:0ee5e6b7245e 1014
JackB 0:0ee5e6b7245e 1015 void updateAlarmLights(void)
JackB 0:0ee5e6b7245e 1016 {
JackB 0:0ee5e6b7245e 1017 // Set indicators to OFF, BLINK, or STEADY_OFF ON
JackB 0:0ee5e6b7245e 1018 // Status can be OFF, WARNING, and FAILURE
JackB 0:0ee5e6b7245e 1019 // Update screen if something changed
JackB 0:0ee5e6b7245e 1020
JackB 0:0ee5e6b7245e 1021 bool updatePage = false;
JackB 0:0ee5e6b7245e 1022 if (blinker.read() >= 0.5) {
JackB 0:0ee5e6b7245e 1023 blinker.reset();
JackB 0:0ee5e6b7245e 1024
JackB 0:0ee5e6b7245e 1025
JackB 0:0ee5e6b7245e 1026 // Blink all indicators synchonously
JackB 0:0ee5e6b7245e 1027 mainBlink = !mainBlink;
JackB 0:0ee5e6b7245e 1028
JackB 0:0ee5e6b7245e 1029 // All Main and Aux alarms
JackB 0:0ee5e6b7245e 1030 for(int system = MAIN_SYSTEM; system <= GLOBAL_SYSTEM; system++) {
JackB 0:0ee5e6b7245e 1031 // MAIN_SYSTEM, AUX_SYSTEM, GLOBAL_SYSTEM
JackB 0:0ee5e6b7245e 1032 for(int alarm = PHASE_FAIL; alarm <= FU_FAILURE; alarm++) {
JackB 0:0ee5e6b7245e 1033 // PHASE_FAIL, MAIN_POWER, CTRL_POWER, OIL_PRESS, HYDR_LOCK,
JackB 0:0ee5e6b7245e 1034 // OVERLOAD, OIL_LEVEL, OIL_FILTER, OIL_TEMP, FU_FAILURE
JackB 0:0ee5e6b7245e 1035
JackB 0:0ee5e6b7245e 1036 if (getAlarmBlinkStatus((System)system, (Alarm)alarm) == STEADY_OFF) {
JackB 0:0ee5e6b7245e 1037 setAlarmStatus((System)system, (Alarm)alarm, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1038 }
JackB 0:0ee5e6b7245e 1039 if (getAlarmBlinkStatus((System)system, (Alarm)alarm) == BLINK_WARNING_ON) {
JackB 0:0ee5e6b7245e 1040 toggleAlarmStatus((System)system, (Alarm)alarm, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1041 }
JackB 0:0ee5e6b7245e 1042 if (getAlarmBlinkStatus((System)system, (Alarm)alarm) == STEADY_WARNING_ON) {
JackB 0:0ee5e6b7245e 1043 setAlarmStatus((System)system, (Alarm)alarm, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1044 }
JackB 0:0ee5e6b7245e 1045 if (getAlarmBlinkStatus((System)system, (Alarm)alarm) == BLINK_FAILURE_ON) {
JackB 0:0ee5e6b7245e 1046 toggleAlarmStatus((System)system, (Alarm)alarm, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1047 }
JackB 0:0ee5e6b7245e 1048 if (getAlarmBlinkStatus((System)system, (Alarm)alarm) == STEADY_FAILURE_ON) {
JackB 0:0ee5e6b7245e 1049 setAlarmStatus((System)system, (Alarm)alarm, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1050 }
JackB 0:0ee5e6b7245e 1051 }
JackB 0:0ee5e6b7245e 1052 if (system != GLOBAL_SYSTEM) {
JackB 0:0ee5e6b7245e 1053 // printf("getPumpRunningBlinkStatus(%d) = %d\n", system, getPumpRunningBlinkStatus((System)system));
JackB 0:0ee5e6b7245e 1054 if (getPumpRunningBlinkStatus((System)system) == STEADY_OFF) {
JackB 0:0ee5e6b7245e 1055 setPumpRunningStatus((System)system, RUN_STATUS_OFF);
JackB 0:0ee5e6b7245e 1056 }
JackB 0:0ee5e6b7245e 1057 if (getPumpRunningBlinkStatus((System)system) == BLINK_WARNING_ON) {
JackB 0:0ee5e6b7245e 1058 togglePumpRunningStatus((System)system, RUN_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1059 }
JackB 0:0ee5e6b7245e 1060 if (getPumpRunningBlinkStatus((System)system) == STEADY_WARNING_ON) {
JackB 0:0ee5e6b7245e 1061 setPumpRunningStatus((System)system, RUN_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1062 }
JackB 0:0ee5e6b7245e 1063 if (getPumpRunningBlinkStatus((System)system) == BLINK_DISABLED_ON) {
JackB 0:0ee5e6b7245e 1064 togglePumpRunningStatus((System)system, RUN_STATUS_DISABLED);
JackB 0:0ee5e6b7245e 1065 }
JackB 0:0ee5e6b7245e 1066 if (getPumpRunningBlinkStatus((System)system) == STEADY_DISABLED_ON) {
JackB 0:0ee5e6b7245e 1067 setPumpRunningStatus((System)system, RUN_STATUS_DISABLED);
JackB 0:0ee5e6b7245e 1068 }
JackB 0:0ee5e6b7245e 1069 if (getPumpRunningBlinkStatus((System)system) == BLINK_RUNNING_ON) {
JackB 0:0ee5e6b7245e 1070 togglePumpRunningStatus((System)system, RUN_STATUS_RUNNING);
JackB 0:0ee5e6b7245e 1071 }
JackB 0:0ee5e6b7245e 1072 if (getPumpRunningBlinkStatus((System)system) == STEADY_RUNNING_ON) {
JackB 0:0ee5e6b7245e 1073 setPumpRunningStatus((System)system, RUN_STATUS_RUNNING);
JackB 0:0ee5e6b7245e 1074 }
JackB 0:0ee5e6b7245e 1075 if (getPumpRunningBlinkStatus((System)system) == BLINK_OFF_RED_ON) {
JackB 0:0ee5e6b7245e 1076 togglePumpRunningStatus((System)system, RUN_STATUS_OFF_RED);
JackB 0:0ee5e6b7245e 1077 }
JackB 0:0ee5e6b7245e 1078 if (getPumpRunningBlinkStatus((System)system) == STEADY_OFF_RED_ON) {
JackB 0:0ee5e6b7245e 1079 setPumpRunningStatus((System)system, RUN_STATUS_OFF_RED);
JackB 0:0ee5e6b7245e 1080 }
JackB 0:0ee5e6b7245e 1081 }
JackB 0:0ee5e6b7245e 1082 }
JackB 0:0ee5e6b7245e 1083 if (checkIndicatorsChanged()) {
JackB 0:0ee5e6b7245e 1084 main_indicator_previous = main_indicator;
JackB 0:0ee5e6b7245e 1085 updatePage = true;
JackB 0:0ee5e6b7245e 1086 }
JackB 0:0ee5e6b7245e 1087 if (updatePage) {
JackB 0:0ee5e6b7245e 1088 showMainPage();
JackB 0:0ee5e6b7245e 1089 }
JackB 0:0ee5e6b7245e 1090 }
JackB 0:0ee5e6b7245e 1091 }
JackB 0:0ee5e6b7245e 1092
JackB 0:0ee5e6b7245e 1093 void processButtonPressed(uint16_t tagval)
JackB 0:0ee5e6b7245e 1094 {
JackB 0:0ee5e6b7245e 1095 switch(tagval) {
JackB 0:0ee5e6b7245e 1096 case BUTTON_ACCEPT_ALARM_TAG :
JackB 0:0ee5e6b7245e 1097 setButtonAcceptAlarm(BUTTON_PRESSED); // Flag Accept Alarm button is in pressed state
JackB 0:0ee5e6b7245e 1098 break;
JackB 0:0ee5e6b7245e 1099 case BUTTON_ACCEPT_HORN_TAG :
JackB 0:0ee5e6b7245e 1100 setButtonAcceptHorn(BUTTON_PRESSED); // Flag Accept Horn button is in pressed state
JackB 0:0ee5e6b7245e 1101 break;
JackB 0:0ee5e6b7245e 1102 case BUTTON_SET_TAG :
JackB 0:0ee5e6b7245e 1103 setButtonSet(BUTTON_PRESSED); // Flag Set button is in pressed state
JackB 0:0ee5e6b7245e 1104 // testIndicators(); // Jack TEST
JackB 0:0ee5e6b7245e 1105 break;
JackB 0:0ee5e6b7245e 1106 case BUTTON_DIM_TAG :
JackB 0:0ee5e6b7245e 1107 setButtonDim(BUTTON_PRESSED); // Flag Dim button is in pressed state
JackB 0:0ee5e6b7245e 1108 toggleDisplayBrighnessSelect(); // Toggle display brightness
JackB 0:0ee5e6b7245e 1109 break;
JackB 0:0ee5e6b7245e 1110 case 100 :
JackB 0:0ee5e6b7245e 1111 testIndicators(); // Jack TEST
JackB 0:0ee5e6b7245e 1112 break;
JackB 0:0ee5e6b7245e 1113 }
JackB 0:0ee5e6b7245e 1114 }
JackB 0:0ee5e6b7245e 1115
JackB 0:0ee5e6b7245e 1116 void processButtonReleased(void)
JackB 0:0ee5e6b7245e 1117 {
JackB 0:0ee5e6b7245e 1118 if (getButtonAcceptAlarm() != BUTTON_RELEASED) {
JackB 0:0ee5e6b7245e 1119 setButtonAcceptAlarm(BUTTON_RELEASED); // Flag Accept Alarm button is in released state
JackB 0:0ee5e6b7245e 1120 }
JackB 0:0ee5e6b7245e 1121 if (getButtonAcceptHorn() != BUTTON_RELEASED) {
JackB 0:0ee5e6b7245e 1122 setButtonAcceptHorn(BUTTON_RELEASED); // Flag Accept Horn button is in released state
JackB 0:0ee5e6b7245e 1123 }
JackB 0:0ee5e6b7245e 1124 if (getButtonSet() != BUTTON_RELEASED) {
JackB 0:0ee5e6b7245e 1125 setButtonSet(BUTTON_RELEASED); // Flag Set button is in released state
JackB 0:0ee5e6b7245e 1126 }
JackB 0:0ee5e6b7245e 1127 if (getButtonDim() != BUTTON_RELEASED) {
JackB 0:0ee5e6b7245e 1128 setButtonDim(BUTTON_RELEASED); // Flag Dim button is in released state
JackB 0:0ee5e6b7245e 1129 }
JackB 0:0ee5e6b7245e 1130 }
JackB 0:0ee5e6b7245e 1131
JackB 0:0ee5e6b7245e 1132 void backupAlarms(void)
JackB 0:0ee5e6b7245e 1133 {
JackB 0:0ee5e6b7245e 1134 main_indicator_backup = main_indicator;
JackB 0:0ee5e6b7245e 1135 }
JackB 0:0ee5e6b7245e 1136
JackB 0:0ee5e6b7245e 1137 void restoreAlarms(void)
JackB 0:0ee5e6b7245e 1138 {
JackB 0:0ee5e6b7245e 1139 main_indicator = main_indicator_backup;
JackB 0:0ee5e6b7245e 1140 }
JackB 0:0ee5e6b7245e 1141
JackB 0:0ee5e6b7245e 1142 uint8_t getDisplayBrighnessSelect(void)
JackB 0:0ee5e6b7245e 1143 {
JackB 0:0ee5e6b7245e 1144 return brightnessSelect;
JackB 0:0ee5e6b7245e 1145 }
JackB 0:0ee5e6b7245e 1146
JackB 0:0ee5e6b7245e 1147 void setDisplayBrighnessSelect(uint8_t select)
JackB 0:0ee5e6b7245e 1148 {
JackB 0:0ee5e6b7245e 1149 brightnessSelect = select;
JackB 0:0ee5e6b7245e 1150 if (select == BIGHTNESS_SELECT_LOW) {
JackB 0:0ee5e6b7245e 1151 TFT.SetBacklight(brightnessLow); // Brightness Low
JackB 0:0ee5e6b7245e 1152 }
JackB 0:0ee5e6b7245e 1153 if (select == BIGHTNESS_SELECT_HIGH) {
JackB 0:0ee5e6b7245e 1154 TFT.SetBacklight(brightnessHigh); // Brightness High
JackB 0:0ee5e6b7245e 1155 }
JackB 0:0ee5e6b7245e 1156 }
JackB 0:0ee5e6b7245e 1157
JackB 0:0ee5e6b7245e 1158 void toggleDisplayBrighnessSelect(void)
JackB 0:0ee5e6b7245e 1159 {
JackB 0:0ee5e6b7245e 1160 if (getDisplayBrighnessSelect() == BIGHTNESS_SELECT_HIGH) {
JackB 0:0ee5e6b7245e 1161 setDisplayBrighnessSelect(BIGHTNESS_SELECT_LOW);
JackB 0:0ee5e6b7245e 1162 } else {
JackB 0:0ee5e6b7245e 1163 setDisplayBrighnessSelect(BIGHTNESS_SELECT_HIGH);
JackB 0:0ee5e6b7245e 1164 }
JackB 0:0ee5e6b7245e 1165 }
JackB 0:0ee5e6b7245e 1166
JackB 0:0ee5e6b7245e 1167 void setDisplayBrighnessHigh(uint8_t value)
JackB 0:0ee5e6b7245e 1168 {
JackB 0:0ee5e6b7245e 1169 brightnessHigh = value;
JackB 0:0ee5e6b7245e 1170 }
JackB 0:0ee5e6b7245e 1171
JackB 0:0ee5e6b7245e 1172 void setDisplayBrighnessLow(uint8_t value)
JackB 0:0ee5e6b7245e 1173 {
JackB 0:0ee5e6b7245e 1174 brightnessLow = value;
JackB 0:0ee5e6b7245e 1175 }
JackB 0:0ee5e6b7245e 1176
JackB 0:0ee5e6b7245e 1177 uint8_t getButtonAcceptAlarm(void)
JackB 0:0ee5e6b7245e 1178 {
JackB 0:0ee5e6b7245e 1179 return main_button.accept_alarm_pressed;
JackB 0:0ee5e6b7245e 1180 }
JackB 0:0ee5e6b7245e 1181
JackB 0:0ee5e6b7245e 1182 void setButtonAcceptAlarm(uint8_t status)
JackB 0:0ee5e6b7245e 1183 {
JackB 0:0ee5e6b7245e 1184 main_button.accept_alarm_pressed = status;
JackB 0:0ee5e6b7245e 1185 }
JackB 0:0ee5e6b7245e 1186
JackB 0:0ee5e6b7245e 1187 uint8_t getButtonAcceptHorn(void)
JackB 0:0ee5e6b7245e 1188 {
JackB 0:0ee5e6b7245e 1189 return main_button.accept_horn_pressed;
JackB 0:0ee5e6b7245e 1190 }
JackB 0:0ee5e6b7245e 1191
JackB 0:0ee5e6b7245e 1192 void setButtonAcceptHorn(uint8_t status)
JackB 0:0ee5e6b7245e 1193 {
JackB 0:0ee5e6b7245e 1194 main_button.accept_horn_pressed = status;
JackB 0:0ee5e6b7245e 1195 }
JackB 0:0ee5e6b7245e 1196
JackB 0:0ee5e6b7245e 1197 uint8_t getButtonSet(void)
JackB 0:0ee5e6b7245e 1198 {
JackB 0:0ee5e6b7245e 1199 return main_button.set_pressed;
JackB 0:0ee5e6b7245e 1200 }
JackB 0:0ee5e6b7245e 1201
JackB 0:0ee5e6b7245e 1202 void setButtonSet(uint8_t status)
JackB 0:0ee5e6b7245e 1203 {
JackB 0:0ee5e6b7245e 1204 main_button.set_pressed = status;
JackB 0:0ee5e6b7245e 1205 }
JackB 0:0ee5e6b7245e 1206
JackB 0:0ee5e6b7245e 1207 uint8_t getButtonDim(void)
JackB 0:0ee5e6b7245e 1208 {
JackB 0:0ee5e6b7245e 1209 return main_button.dim_pressed;
JackB 0:0ee5e6b7245e 1210 }
JackB 0:0ee5e6b7245e 1211
JackB 0:0ee5e6b7245e 1212 void setButtonDim(uint8_t status)
JackB 0:0ee5e6b7245e 1213 {
JackB 0:0ee5e6b7245e 1214 main_button.dim_pressed = status;
JackB 0:0ee5e6b7245e 1215 }
JackB 0:0ee5e6b7245e 1216
JackB 0:0ee5e6b7245e 1217 Pump getPumpInUse(void)
JackB 0:0ee5e6b7245e 1218 {
JackB 0:0ee5e6b7245e 1219 return main_indicator.pump_in_use;
JackB 0:0ee5e6b7245e 1220 }
JackB 0:0ee5e6b7245e 1221
JackB 0:0ee5e6b7245e 1222 void setPumpInUse(Pump status)
JackB 0:0ee5e6b7245e 1223 {
JackB 0:0ee5e6b7245e 1224 main_indicator.pump_in_use = status;
JackB 0:0ee5e6b7245e 1225 }
JackB 0:0ee5e6b7245e 1226
JackB 0:0ee5e6b7245e 1227 IndicatorLightStatus getPumpInUseBlinkStatus(void)
JackB 0:0ee5e6b7245e 1228 {
JackB 0:0ee5e6b7245e 1229 return main_indicator.pump_in_use_light;
JackB 0:0ee5e6b7245e 1230 }
JackB 0:0ee5e6b7245e 1231
JackB 0:0ee5e6b7245e 1232 void setPumpInUseBlinkStatus(IndicatorLightStatus status)
JackB 0:0ee5e6b7245e 1233 {
JackB 0:0ee5e6b7245e 1234 main_indicator.pump_in_use_light = status;
JackB 0:0ee5e6b7245e 1235 }
JackB 0:0ee5e6b7245e 1236
JackB 0:0ee5e6b7245e 1237
JackB 0:0ee5e6b7245e 1238
JackB 0:0ee5e6b7245e 1239 IndicatorLightStatus getPumpRunningBlinkStatus(System system)
JackB 0:0ee5e6b7245e 1240 {
JackB 0:0ee5e6b7245e 1241 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1242 return main_indicator.md_main_running_light;
JackB 0:0ee5e6b7245e 1243 }
JackB 0:0ee5e6b7245e 1244 if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1245 return main_indicator.md_aux_running_light;
JackB 0:0ee5e6b7245e 1246 }
JackB 0:0ee5e6b7245e 1247 return STEADY_OFF;
JackB 0:0ee5e6b7245e 1248 }
JackB 0:0ee5e6b7245e 1249
JackB 0:0ee5e6b7245e 1250 void setPumpRunningBlinkStatus(System system, IndicatorLightStatus status)
JackB 0:0ee5e6b7245e 1251 {
JackB 0:0ee5e6b7245e 1252 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1253 main_indicator.md_main_running_light = status;
JackB 0:0ee5e6b7245e 1254 } else if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1255 main_indicator.md_aux_running_light = status;
JackB 0:0ee5e6b7245e 1256 }
JackB 0:0ee5e6b7245e 1257 }
JackB 0:0ee5e6b7245e 1258
JackB 0:0ee5e6b7245e 1259 IndicatorRunStatus getPumpRunningStatus(System system)
JackB 0:0ee5e6b7245e 1260 {
JackB 0:0ee5e6b7245e 1261 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1262 return main_indicator.md_main_running;
JackB 0:0ee5e6b7245e 1263 } else if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1264 return main_indicator.md_aux_running;
JackB 0:0ee5e6b7245e 1265 }
JackB 0:0ee5e6b7245e 1266 return RUN_STATUS_BLANK;
JackB 0:0ee5e6b7245e 1267 }
JackB 0:0ee5e6b7245e 1268
JackB 0:0ee5e6b7245e 1269 void setPumpRunningStatus(System system, IndicatorRunStatus status)
JackB 0:0ee5e6b7245e 1270 {
JackB 0:0ee5e6b7245e 1271 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1272 main_indicator.md_main_running = status;
JackB 0:0ee5e6b7245e 1273 } else if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1274 main_indicator.md_aux_running = status;
JackB 0:0ee5e6b7245e 1275 }
JackB 0:0ee5e6b7245e 1276 }
JackB 0:0ee5e6b7245e 1277
JackB 0:0ee5e6b7245e 1278 void togglePumpRunningStatus(System system, IndicatorRunStatus status)
JackB 0:0ee5e6b7245e 1279 {
JackB 0:0ee5e6b7245e 1280 if (mainBlink) {
JackB 0:0ee5e6b7245e 1281 setPumpRunningStatus(system, status);
JackB 0:0ee5e6b7245e 1282 } else {
JackB 0:0ee5e6b7245e 1283 setPumpRunningStatus(system, RUN_STATUS_BLANK);
JackB 0:0ee5e6b7245e 1284 }
JackB 0:0ee5e6b7245e 1285 }
JackB 0:0ee5e6b7245e 1286
JackB 0:0ee5e6b7245e 1287 IndicatorLightStatus getAlarmBlinkStatus(System system, Alarm alarm)
JackB 0:0ee5e6b7245e 1288 {
JackB 0:0ee5e6b7245e 1289 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1290 // MAIN_SYSTEM
JackB 0:0ee5e6b7245e 1291 switch(alarm) {
JackB 0:0ee5e6b7245e 1292 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1293 return main_indicator.rb_main_phase_fail_light;
JackB 0:0ee5e6b7245e 1294 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1295 return main_indicator.rb_main_main_power_light;
JackB 0:0ee5e6b7245e 1296 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1297 return main_indicator.rb_main_ctrl_power_light;
JackB 0:0ee5e6b7245e 1298 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1299 return main_indicator.rb_main_oil_press_light;
JackB 0:0ee5e6b7245e 1300 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1301 return main_indicator.rb_main_hydr_lock_light;
JackB 0:0ee5e6b7245e 1302 case OVERLOAD :
JackB 0:0ee5e6b7245e 1303 return main_indicator.rb_main_overload_light;
JackB 0:0ee5e6b7245e 1304 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1305 return main_indicator.rb_main_oil_level_light;
JackB 0:0ee5e6b7245e 1306 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1307 return main_indicator.rb_main_oil_filter_light;
JackB 0:0ee5e6b7245e 1308 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1309 return main_indicator.rb_main_oil_temp_light;
JackB 0:0ee5e6b7245e 1310 default :
JackB 0:0ee5e6b7245e 1311 return STEADY_OFF;
JackB 0:0ee5e6b7245e 1312 }
JackB 0:0ee5e6b7245e 1313 } else if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1314 // AUX_SYSTEM
JackB 0:0ee5e6b7245e 1315 switch(alarm) {
JackB 0:0ee5e6b7245e 1316 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1317 return main_indicator.rb_aux_phase_fail_light;
JackB 0:0ee5e6b7245e 1318 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1319 return main_indicator.rb_aux_main_power_light;
JackB 0:0ee5e6b7245e 1320 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1321 return main_indicator.rb_aux_ctrl_power_light;
JackB 0:0ee5e6b7245e 1322 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1323 return main_indicator.rb_aux_oil_press_light;
JackB 0:0ee5e6b7245e 1324 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1325 return main_indicator.rb_aux_hydr_lock_light;
JackB 0:0ee5e6b7245e 1326 case OVERLOAD :
JackB 0:0ee5e6b7245e 1327 return main_indicator.rb_aux_overload_light;
JackB 0:0ee5e6b7245e 1328 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1329 return main_indicator.rb_aux_oil_level_light;
JackB 0:0ee5e6b7245e 1330 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1331 return main_indicator.rb_aux_oil_filter_light;
JackB 0:0ee5e6b7245e 1332 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1333 return main_indicator.rb_aux_oil_temp_light;
JackB 0:0ee5e6b7245e 1334 default :
JackB 0:0ee5e6b7245e 1335 return STEADY_OFF;
JackB 0:0ee5e6b7245e 1336 }
JackB 0:0ee5e6b7245e 1337 } else if (system == GLOBAL_SYSTEM) {
JackB 0:0ee5e6b7245e 1338 // GLOBAL_SYSTEM
JackB 0:0ee5e6b7245e 1339 switch(alarm) {
JackB 0:0ee5e6b7245e 1340 case FU_FAILURE :
JackB 0:0ee5e6b7245e 1341 return main_indicator.rb_fu_failure_light;
JackB 0:0ee5e6b7245e 1342 default :
JackB 0:0ee5e6b7245e 1343 return STEADY_OFF;
JackB 0:0ee5e6b7245e 1344 }
JackB 0:0ee5e6b7245e 1345 }
JackB 0:0ee5e6b7245e 1346 return STEADY_OFF;
JackB 0:0ee5e6b7245e 1347 }
JackB 0:0ee5e6b7245e 1348
JackB 0:0ee5e6b7245e 1349 void setAlarmBlinkStatus(System system, Alarm alarm, IndicatorLightStatus status)
JackB 0:0ee5e6b7245e 1350 {
JackB 0:0ee5e6b7245e 1351 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1352 // MAIN_SYSTEM
JackB 0:0ee5e6b7245e 1353 switch(alarm) {
JackB 0:0ee5e6b7245e 1354 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1355 main_indicator.rb_main_phase_fail_light = status;
JackB 0:0ee5e6b7245e 1356 break;
JackB 0:0ee5e6b7245e 1357 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1358 main_indicator.rb_main_main_power_light = status;
JackB 0:0ee5e6b7245e 1359 break;
JackB 0:0ee5e6b7245e 1360 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1361 main_indicator.rb_main_ctrl_power_light = status;
JackB 0:0ee5e6b7245e 1362 break;
JackB 0:0ee5e6b7245e 1363 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1364 main_indicator.rb_main_oil_press_light = status;
JackB 0:0ee5e6b7245e 1365 break;
JackB 0:0ee5e6b7245e 1366 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1367 main_indicator.rb_main_hydr_lock_light = status;
JackB 0:0ee5e6b7245e 1368 break;
JackB 0:0ee5e6b7245e 1369 case OVERLOAD :
JackB 0:0ee5e6b7245e 1370 main_indicator.rb_main_overload_light = status;
JackB 0:0ee5e6b7245e 1371 break;
JackB 0:0ee5e6b7245e 1372 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1373 main_indicator.rb_main_oil_level_light = status;
JackB 0:0ee5e6b7245e 1374 break;
JackB 0:0ee5e6b7245e 1375 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1376 main_indicator.rb_main_oil_filter_light = status;
JackB 0:0ee5e6b7245e 1377 break;
JackB 0:0ee5e6b7245e 1378 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1379 main_indicator.rb_main_oil_temp_light = status;
JackB 0:0ee5e6b7245e 1380 break;
JackB 0:0ee5e6b7245e 1381 }
JackB 0:0ee5e6b7245e 1382 } else if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1383 // AUX_SYSTEM
JackB 0:0ee5e6b7245e 1384 switch(alarm) {
JackB 0:0ee5e6b7245e 1385 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1386 main_indicator.rb_aux_phase_fail_light = status;
JackB 0:0ee5e6b7245e 1387 break;
JackB 0:0ee5e6b7245e 1388 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1389 main_indicator.rb_aux_main_power_light = status;
JackB 0:0ee5e6b7245e 1390 break;
JackB 0:0ee5e6b7245e 1391 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1392 main_indicator.rb_aux_ctrl_power_light = status;
JackB 0:0ee5e6b7245e 1393 break;
JackB 0:0ee5e6b7245e 1394 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1395 main_indicator.rb_aux_oil_press_light = status;
JackB 0:0ee5e6b7245e 1396 break;
JackB 0:0ee5e6b7245e 1397 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1398 main_indicator.rb_aux_hydr_lock_light = status;
JackB 0:0ee5e6b7245e 1399 break;
JackB 0:0ee5e6b7245e 1400 case OVERLOAD :
JackB 0:0ee5e6b7245e 1401 main_indicator.rb_aux_overload_light = status;
JackB 0:0ee5e6b7245e 1402 break;
JackB 0:0ee5e6b7245e 1403 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1404 main_indicator.rb_aux_oil_level_light = status;
JackB 0:0ee5e6b7245e 1405 break;
JackB 0:0ee5e6b7245e 1406 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1407 main_indicator.rb_aux_oil_filter_light = status;
JackB 0:0ee5e6b7245e 1408 break;
JackB 0:0ee5e6b7245e 1409 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1410 main_indicator.rb_aux_oil_temp_light = status;
JackB 0:0ee5e6b7245e 1411 break;
JackB 0:0ee5e6b7245e 1412 }
JackB 0:0ee5e6b7245e 1413 } else if (system == GLOBAL_SYSTEM) {
JackB 0:0ee5e6b7245e 1414 // GLOBAL_SYSTEM
JackB 0:0ee5e6b7245e 1415 switch(alarm) {
JackB 0:0ee5e6b7245e 1416 case FU_FAILURE :
JackB 0:0ee5e6b7245e 1417 main_indicator.rb_fu_failure_light = status;
JackB 0:0ee5e6b7245e 1418 break;
JackB 0:0ee5e6b7245e 1419 }
JackB 0:0ee5e6b7245e 1420 }
JackB 0:0ee5e6b7245e 1421 }
JackB 0:0ee5e6b7245e 1422
JackB 0:0ee5e6b7245e 1423 IndicatorAlarmStatus getAlarmStatus(System system, Alarm alarm)
JackB 0:0ee5e6b7245e 1424 {
JackB 0:0ee5e6b7245e 1425 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1426 // MAIN_SYSTEM
JackB 0:0ee5e6b7245e 1427 switch(alarm) {
JackB 0:0ee5e6b7245e 1428 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1429 return main_indicator.rb_main_phase_fail;
JackB 0:0ee5e6b7245e 1430 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1431 return main_indicator.rb_main_main_power;
JackB 0:0ee5e6b7245e 1432 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1433 return main_indicator.rb_main_ctrl_power;
JackB 0:0ee5e6b7245e 1434 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1435 return main_indicator.rb_main_oil_press;
JackB 0:0ee5e6b7245e 1436 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1437 return main_indicator.rb_main_hydr_lock;
JackB 0:0ee5e6b7245e 1438 case OVERLOAD :
JackB 0:0ee5e6b7245e 1439 return main_indicator.rb_main_overload;
JackB 0:0ee5e6b7245e 1440 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1441 return main_indicator.rb_main_oil_level;
JackB 0:0ee5e6b7245e 1442 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1443 return main_indicator.rb_main_oil_filter;
JackB 0:0ee5e6b7245e 1444 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1445 return main_indicator.rb_main_oil_temp;
JackB 0:0ee5e6b7245e 1446 default :
JackB 0:0ee5e6b7245e 1447 return ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 1448 }
JackB 0:0ee5e6b7245e 1449 } else if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1450 // AUX_SYSTEM
JackB 0:0ee5e6b7245e 1451 switch(alarm) {
JackB 0:0ee5e6b7245e 1452 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1453 return main_indicator.rb_aux_phase_fail;
JackB 0:0ee5e6b7245e 1454 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1455 return main_indicator.rb_aux_main_power;
JackB 0:0ee5e6b7245e 1456 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1457 return main_indicator.rb_aux_ctrl_power;
JackB 0:0ee5e6b7245e 1458 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1459 return main_indicator.rb_aux_oil_press;
JackB 0:0ee5e6b7245e 1460 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1461 return main_indicator.rb_aux_hydr_lock;
JackB 0:0ee5e6b7245e 1462 case OVERLOAD :
JackB 0:0ee5e6b7245e 1463 return main_indicator.rb_aux_overload;
JackB 0:0ee5e6b7245e 1464 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1465 return main_indicator.rb_aux_oil_level;
JackB 0:0ee5e6b7245e 1466 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1467 return main_indicator.rb_aux_oil_filter;
JackB 0:0ee5e6b7245e 1468 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1469 return main_indicator.rb_aux_oil_temp;
JackB 0:0ee5e6b7245e 1470 default :
JackB 0:0ee5e6b7245e 1471 return ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 1472 }
JackB 0:0ee5e6b7245e 1473 } else if (system == GLOBAL_SYSTEM) {
JackB 0:0ee5e6b7245e 1474 // GLOBAL_SYSTEM
JackB 0:0ee5e6b7245e 1475 switch(alarm) {
JackB 0:0ee5e6b7245e 1476 case FU_FAILURE :
JackB 0:0ee5e6b7245e 1477 return main_indicator.rb_fu_failure;
JackB 0:0ee5e6b7245e 1478 default :
JackB 0:0ee5e6b7245e 1479 return ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 1480 }
JackB 0:0ee5e6b7245e 1481 }
JackB 0:0ee5e6b7245e 1482 return ALARM_STATUS_OFF;
JackB 0:0ee5e6b7245e 1483 }
JackB 0:0ee5e6b7245e 1484
JackB 0:0ee5e6b7245e 1485 void setAlarmStatus(System system, Alarm alarm, IndicatorAlarmStatus status)
JackB 0:0ee5e6b7245e 1486 {
JackB 0:0ee5e6b7245e 1487 if (system == MAIN_SYSTEM) {
JackB 0:0ee5e6b7245e 1488 // MAIN_SYSTEM
JackB 0:0ee5e6b7245e 1489 switch(alarm) {
JackB 0:0ee5e6b7245e 1490 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1491 main_indicator.rb_main_phase_fail = status;
JackB 0:0ee5e6b7245e 1492 break;
JackB 0:0ee5e6b7245e 1493 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1494 main_indicator.rb_main_main_power = status;
JackB 0:0ee5e6b7245e 1495 break;
JackB 0:0ee5e6b7245e 1496 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1497 main_indicator.rb_main_ctrl_power = status;
JackB 0:0ee5e6b7245e 1498 break;
JackB 0:0ee5e6b7245e 1499 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1500 main_indicator.rb_main_oil_press = status;
JackB 0:0ee5e6b7245e 1501 break;
JackB 0:0ee5e6b7245e 1502 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1503 main_indicator.rb_main_hydr_lock = status;
JackB 0:0ee5e6b7245e 1504 break;
JackB 0:0ee5e6b7245e 1505 case OVERLOAD :
JackB 0:0ee5e6b7245e 1506 main_indicator.rb_main_overload = status;
JackB 0:0ee5e6b7245e 1507 break;
JackB 0:0ee5e6b7245e 1508 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1509 main_indicator.rb_main_oil_level = status;
JackB 0:0ee5e6b7245e 1510 break;
JackB 0:0ee5e6b7245e 1511 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1512 main_indicator.rb_main_oil_filter = status;
JackB 0:0ee5e6b7245e 1513 break;
JackB 0:0ee5e6b7245e 1514 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1515 main_indicator.rb_main_oil_temp = status;
JackB 0:0ee5e6b7245e 1516 break;
JackB 0:0ee5e6b7245e 1517 }
JackB 0:0ee5e6b7245e 1518 } else if (system == AUX_SYSTEM) {
JackB 0:0ee5e6b7245e 1519 // AUX_SYSTEM
JackB 0:0ee5e6b7245e 1520 switch(alarm) {
JackB 0:0ee5e6b7245e 1521 case PHASE_FAIL :
JackB 0:0ee5e6b7245e 1522 main_indicator.rb_aux_phase_fail = status;
JackB 0:0ee5e6b7245e 1523 break;
JackB 0:0ee5e6b7245e 1524 case MAIN_POWER :
JackB 0:0ee5e6b7245e 1525 main_indicator.rb_aux_main_power = status;
JackB 0:0ee5e6b7245e 1526 break;
JackB 0:0ee5e6b7245e 1527 case CTRL_POWER :
JackB 0:0ee5e6b7245e 1528 main_indicator.rb_aux_ctrl_power = status;
JackB 0:0ee5e6b7245e 1529 break;
JackB 0:0ee5e6b7245e 1530 case OIL_PRESS :
JackB 0:0ee5e6b7245e 1531 main_indicator.rb_aux_oil_press = status;
JackB 0:0ee5e6b7245e 1532 break;
JackB 0:0ee5e6b7245e 1533 case HYDR_LOCK :
JackB 0:0ee5e6b7245e 1534 main_indicator.rb_aux_hydr_lock = status;
JackB 0:0ee5e6b7245e 1535 break;
JackB 0:0ee5e6b7245e 1536 case OVERLOAD :
JackB 0:0ee5e6b7245e 1537 main_indicator.rb_aux_overload = status;
JackB 0:0ee5e6b7245e 1538 break;
JackB 0:0ee5e6b7245e 1539 case OIL_LEVEL :
JackB 0:0ee5e6b7245e 1540 main_indicator.rb_aux_oil_level = status;
JackB 0:0ee5e6b7245e 1541 break;
JackB 0:0ee5e6b7245e 1542 case OIL_FILTER :
JackB 0:0ee5e6b7245e 1543 main_indicator.rb_aux_oil_filter = status;
JackB 0:0ee5e6b7245e 1544 break;
JackB 0:0ee5e6b7245e 1545 case OIL_TEMP :
JackB 0:0ee5e6b7245e 1546 main_indicator.rb_aux_oil_temp = status;
JackB 0:0ee5e6b7245e 1547 break;
JackB 0:0ee5e6b7245e 1548 }
JackB 0:0ee5e6b7245e 1549 } else if (system == GLOBAL_SYSTEM) {
JackB 0:0ee5e6b7245e 1550 // GLOBAL_SYSTEM
JackB 0:0ee5e6b7245e 1551 switch(alarm) {
JackB 0:0ee5e6b7245e 1552 case FU_FAILURE :
JackB 0:0ee5e6b7245e 1553 main_indicator.rb_fu_failure = status;
JackB 0:0ee5e6b7245e 1554 break;
JackB 0:0ee5e6b7245e 1555 }
JackB 0:0ee5e6b7245e 1556 }
JackB 0:0ee5e6b7245e 1557 }
JackB 0:0ee5e6b7245e 1558
JackB 0:0ee5e6b7245e 1559 void toggleAlarmStatus(System system, Alarm alarm, IndicatorAlarmStatus status)
JackB 0:0ee5e6b7245e 1560 {
JackB 0:0ee5e6b7245e 1561 int changed = false;
JackB 0:0ee5e6b7245e 1562 if (mainBlink) {
JackB 0:0ee5e6b7245e 1563 setAlarmStatus(system, alarm, status);
JackB 0:0ee5e6b7245e 1564 } else {
JackB 0:0ee5e6b7245e 1565 setAlarmStatus(system, alarm, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1566 }
JackB 0:0ee5e6b7245e 1567 }
JackB 0:0ee5e6b7245e 1568
JackB 0:0ee5e6b7245e 1569 bool checkIndicatorsChanged(void)
JackB 0:0ee5e6b7245e 1570 {
JackB 0:0ee5e6b7245e 1571 bool changed = false;
JackB 0:0ee5e6b7245e 1572
JackB 0:0ee5e6b7245e 1573 // Check if anything on the Main page was chnaged, so it can be refreshed
JackB 0:0ee5e6b7245e 1574 // C provides no language facilities to compare two instances of structs for equality (in standard C)
JackB 0:0ee5e6b7245e 1575 // Problems with memcmp: Structures can be padded, and the contents of padding bytes are undefined,
JackB 0:0ee5e6b7245e 1576 // dynamically allocated memory pointed to by struct members, and no guarantee of contiguity.
JackB 0:0ee5e6b7245e 1577 // memcmp doesn't know this and will blindly compare all bytes.
JackB 0:0ee5e6b7245e 1578 // Don't do this:
JackB 0:0ee5e6b7245e 1579 // uint8_t ret = memcmp(&main_indicator, &main_indicator_previous, sizeof(main_indicator));
JackB 0:0ee5e6b7245e 1580 // if (ret != 0) {
JackB 0:0ee5e6b7245e 1581 // changed = true;
JackB 0:0ee5e6b7245e 1582 // }
JackB 0:0ee5e6b7245e 1583 // The only thing to do is compare each member
JackB 0:0ee5e6b7245e 1584
JackB 0:0ee5e6b7245e 1585 // The safest ways is to compare member for member (can exclude something, intended or not intended)
JackB 0:0ee5e6b7245e 1586 if (main_indicator.md_main_running != main_indicator_previous.md_main_running) {
JackB 0:0ee5e6b7245e 1587 changed = true;
JackB 0:0ee5e6b7245e 1588 }
JackB 0:0ee5e6b7245e 1589 if (main_indicator.md_main_running_light != main_indicator_previous.md_main_running_light) {
JackB 0:0ee5e6b7245e 1590 changed = true;
JackB 0:0ee5e6b7245e 1591 }
JackB 0:0ee5e6b7245e 1592 if (main_indicator.rb_main_phase_fail != main_indicator_previous.rb_main_phase_fail) {
JackB 0:0ee5e6b7245e 1593 changed = true;
JackB 0:0ee5e6b7245e 1594 }
JackB 0:0ee5e6b7245e 1595 if (main_indicator.rb_main_phase_fail_light != main_indicator_previous.rb_main_phase_fail_light) {
JackB 0:0ee5e6b7245e 1596 changed = true;
JackB 0:0ee5e6b7245e 1597 }
JackB 0:0ee5e6b7245e 1598 if (main_indicator.rb_main_main_power != main_indicator_previous.rb_main_main_power) {
JackB 0:0ee5e6b7245e 1599 changed = true;
JackB 0:0ee5e6b7245e 1600 }
JackB 0:0ee5e6b7245e 1601 if (main_indicator.rb_main_main_power_light != main_indicator_previous.rb_main_main_power_light) {
JackB 0:0ee5e6b7245e 1602 changed = true;
JackB 0:0ee5e6b7245e 1603 }
JackB 0:0ee5e6b7245e 1604 if (main_indicator.rb_main_ctrl_power != main_indicator_previous.rb_main_ctrl_power) {
JackB 0:0ee5e6b7245e 1605 changed = true;
JackB 0:0ee5e6b7245e 1606 }
JackB 0:0ee5e6b7245e 1607 if (main_indicator.rb_main_ctrl_power_light != main_indicator_previous.rb_main_ctrl_power_light) {
JackB 0:0ee5e6b7245e 1608 changed = true;
JackB 0:0ee5e6b7245e 1609 }
JackB 0:0ee5e6b7245e 1610 if (main_indicator.rb_main_oil_press != main_indicator_previous.rb_main_oil_press) {
JackB 0:0ee5e6b7245e 1611 changed = true;
JackB 0:0ee5e6b7245e 1612 }
JackB 0:0ee5e6b7245e 1613 if (main_indicator.rb_main_oil_press_light != main_indicator_previous.rb_main_oil_press_light) {
JackB 0:0ee5e6b7245e 1614 changed = true;
JackB 0:0ee5e6b7245e 1615 }
JackB 0:0ee5e6b7245e 1616 if (main_indicator.rb_main_hydr_lock != main_indicator_previous.rb_main_hydr_lock) {
JackB 0:0ee5e6b7245e 1617 changed = true;
JackB 0:0ee5e6b7245e 1618 }
JackB 0:0ee5e6b7245e 1619 if (main_indicator.rb_main_hydr_lock_light != main_indicator_previous.rb_main_hydr_lock_light) {
JackB 0:0ee5e6b7245e 1620 changed = true;
JackB 0:0ee5e6b7245e 1621 }
JackB 0:0ee5e6b7245e 1622 if (main_indicator.rb_main_overload != main_indicator_previous.rb_main_overload) {
JackB 0:0ee5e6b7245e 1623 changed = true;
JackB 0:0ee5e6b7245e 1624 }
JackB 0:0ee5e6b7245e 1625 if (main_indicator.rb_main_overload_light != main_indicator_previous.rb_main_overload_light) {
JackB 0:0ee5e6b7245e 1626 changed = true;
JackB 0:0ee5e6b7245e 1627 }
JackB 0:0ee5e6b7245e 1628 if (main_indicator.rb_main_oil_level != main_indicator_previous.rb_main_oil_level) {
JackB 0:0ee5e6b7245e 1629 changed = true;
JackB 0:0ee5e6b7245e 1630 }
JackB 0:0ee5e6b7245e 1631 if (main_indicator.rb_main_oil_level_light != main_indicator_previous.rb_main_oil_level_light) {
JackB 0:0ee5e6b7245e 1632 changed = true;
JackB 0:0ee5e6b7245e 1633 }
JackB 0:0ee5e6b7245e 1634 if (main_indicator.rb_main_oil_filter != main_indicator_previous.rb_main_oil_filter) {
JackB 0:0ee5e6b7245e 1635 changed = true;
JackB 0:0ee5e6b7245e 1636 }
JackB 0:0ee5e6b7245e 1637 if (main_indicator.rb_main_oil_filter_light != main_indicator_previous.rb_main_oil_filter_light) {
JackB 0:0ee5e6b7245e 1638 changed = true;
JackB 0:0ee5e6b7245e 1639 }
JackB 0:0ee5e6b7245e 1640 if (main_indicator.rb_main_oil_temp != main_indicator_previous.rb_main_oil_temp) {
JackB 0:0ee5e6b7245e 1641 changed = true;
JackB 0:0ee5e6b7245e 1642 }
JackB 0:0ee5e6b7245e 1643 if (main_indicator.rb_main_oil_temp_light != main_indicator_previous.rb_main_oil_temp_light) {
JackB 0:0ee5e6b7245e 1644 changed = true;
JackB 0:0ee5e6b7245e 1645 }
JackB 0:0ee5e6b7245e 1646
JackB 0:0ee5e6b7245e 1647 if (main_indicator.md_aux_running != main_indicator_previous.md_aux_running) {
JackB 0:0ee5e6b7245e 1648 changed = true;
JackB 0:0ee5e6b7245e 1649 }
JackB 0:0ee5e6b7245e 1650 if (main_indicator.md_aux_running_light != main_indicator_previous.md_aux_running_light) {
JackB 0:0ee5e6b7245e 1651 changed = true;
JackB 0:0ee5e6b7245e 1652 }
JackB 0:0ee5e6b7245e 1653 if (main_indicator.rb_aux_phase_fail != main_indicator_previous.rb_aux_phase_fail) {
JackB 0:0ee5e6b7245e 1654 changed = true;
JackB 0:0ee5e6b7245e 1655 }
JackB 0:0ee5e6b7245e 1656 if (main_indicator.rb_aux_phase_fail_light != main_indicator_previous.rb_aux_phase_fail_light) {
JackB 0:0ee5e6b7245e 1657 changed = true;
JackB 0:0ee5e6b7245e 1658 }
JackB 0:0ee5e6b7245e 1659 if (main_indicator.rb_aux_main_power != main_indicator_previous.rb_aux_main_power) {
JackB 0:0ee5e6b7245e 1660 changed = true;
JackB 0:0ee5e6b7245e 1661 }
JackB 0:0ee5e6b7245e 1662 if (main_indicator.rb_aux_main_power_light != main_indicator_previous.rb_aux_main_power_light) {
JackB 0:0ee5e6b7245e 1663 changed = true;
JackB 0:0ee5e6b7245e 1664 }
JackB 0:0ee5e6b7245e 1665 if (main_indicator.rb_aux_ctrl_power != main_indicator_previous.rb_aux_ctrl_power) {
JackB 0:0ee5e6b7245e 1666 changed = true;
JackB 0:0ee5e6b7245e 1667 }
JackB 0:0ee5e6b7245e 1668 if (main_indicator.rb_aux_ctrl_power_light != main_indicator_previous.rb_aux_ctrl_power_light) {
JackB 0:0ee5e6b7245e 1669 changed = true;
JackB 0:0ee5e6b7245e 1670 }
JackB 0:0ee5e6b7245e 1671 if (main_indicator.rb_aux_oil_press != main_indicator_previous.rb_aux_oil_press) {
JackB 0:0ee5e6b7245e 1672 changed = true;
JackB 0:0ee5e6b7245e 1673 }
JackB 0:0ee5e6b7245e 1674 if (main_indicator.rb_aux_oil_press_light != main_indicator_previous.rb_aux_oil_press_light) {
JackB 0:0ee5e6b7245e 1675 changed = true;
JackB 0:0ee5e6b7245e 1676 }
JackB 0:0ee5e6b7245e 1677 if (main_indicator.rb_aux_hydr_lock != main_indicator_previous.rb_aux_hydr_lock) {
JackB 0:0ee5e6b7245e 1678 changed = true;
JackB 0:0ee5e6b7245e 1679 }
JackB 0:0ee5e6b7245e 1680 if (main_indicator.rb_aux_hydr_lock_light != main_indicator_previous.rb_aux_hydr_lock_light) {
JackB 0:0ee5e6b7245e 1681 changed = true;
JackB 0:0ee5e6b7245e 1682 }
JackB 0:0ee5e6b7245e 1683 if (main_indicator.rb_aux_overload != main_indicator_previous.rb_aux_overload) {
JackB 0:0ee5e6b7245e 1684 changed = true;
JackB 0:0ee5e6b7245e 1685 }
JackB 0:0ee5e6b7245e 1686 if (main_indicator.rb_aux_overload_light != main_indicator_previous.rb_aux_overload_light) {
JackB 0:0ee5e6b7245e 1687 changed = true;
JackB 0:0ee5e6b7245e 1688 }
JackB 0:0ee5e6b7245e 1689 if (main_indicator.rb_aux_oil_level != main_indicator_previous.rb_aux_oil_level) {
JackB 0:0ee5e6b7245e 1690 changed = true;
JackB 0:0ee5e6b7245e 1691 }
JackB 0:0ee5e6b7245e 1692 if (main_indicator.rb_aux_oil_level_light != main_indicator_previous.rb_aux_oil_level_light) {
JackB 0:0ee5e6b7245e 1693 changed = true;
JackB 0:0ee5e6b7245e 1694 }
JackB 0:0ee5e6b7245e 1695 if (main_indicator.rb_aux_oil_filter != main_indicator_previous.rb_aux_oil_filter) {
JackB 0:0ee5e6b7245e 1696 changed = true;
JackB 0:0ee5e6b7245e 1697 }
JackB 0:0ee5e6b7245e 1698 if (main_indicator.rb_aux_oil_filter_light != main_indicator_previous.rb_aux_oil_filter_light) {
JackB 0:0ee5e6b7245e 1699 changed = true;
JackB 0:0ee5e6b7245e 1700 }
JackB 0:0ee5e6b7245e 1701 if (main_indicator.rb_aux_oil_temp != main_indicator_previous.rb_aux_oil_temp) {
JackB 0:0ee5e6b7245e 1702 changed = true;
JackB 0:0ee5e6b7245e 1703 }
JackB 0:0ee5e6b7245e 1704 if (main_indicator.rb_aux_oil_temp_light != main_indicator_previous.rb_aux_oil_temp_light) {
JackB 0:0ee5e6b7245e 1705 changed = true;
JackB 0:0ee5e6b7245e 1706 }
JackB 0:0ee5e6b7245e 1707 if (main_indicator.rb_fu_failure != main_indicator_previous.rb_fu_failure) {
JackB 0:0ee5e6b7245e 1708 changed = true;
JackB 0:0ee5e6b7245e 1709 }
JackB 0:0ee5e6b7245e 1710 if (main_indicator.rb_fu_failure_light != main_indicator_previous.rb_fu_failure_light) {
JackB 0:0ee5e6b7245e 1711 changed = true;
JackB 0:0ee5e6b7245e 1712 }
JackB 0:0ee5e6b7245e 1713 if (main_indicator.pump_in_use != main_indicator_previous.pump_in_use) {
JackB 0:0ee5e6b7245e 1714 changed = true;
JackB 0:0ee5e6b7245e 1715 }
JackB 0:0ee5e6b7245e 1716 if (main_indicator.pump_in_use_light != main_indicator_previous.pump_in_use_light) {
JackB 0:0ee5e6b7245e 1717 changed = true;
JackB 0:0ee5e6b7245e 1718 }
JackB 0:0ee5e6b7245e 1719
JackB 0:0ee5e6b7245e 1720 return changed;
JackB 0:0ee5e6b7245e 1721 }
JackB 0:0ee5e6b7245e 1722
JackB 0:0ee5e6b7245e 1723 void testIndicators(void)
JackB 0:0ee5e6b7245e 1724 {
JackB 0:0ee5e6b7245e 1725 float delay = 0.5;
JackB 0:0ee5e6b7245e 1726 backupAlarms();
JackB 0:0ee5e6b7245e 1727
JackB 0:0ee5e6b7245e 1728 setPumpInUse(PUMP_OFF);
JackB 0:0ee5e6b7245e 1729 setPumpRunningStatus(MAIN_SYSTEM, RUN_STATUS_OFF);
JackB 0:0ee5e6b7245e 1730 setPumpRunningStatus(AUX_SYSTEM, RUN_STATUS_OFF);
JackB 0:0ee5e6b7245e 1731 setAlarmStatus(MAIN_SYSTEM, PHASE_FAIL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1732 setAlarmStatus(AUX_SYSTEM, PHASE_FAIL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1733 setAlarmStatus(MAIN_SYSTEM, MAIN_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1734 setAlarmStatus(AUX_SYSTEM, MAIN_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1735 setAlarmStatus(MAIN_SYSTEM, CTRL_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1736 setAlarmStatus(AUX_SYSTEM, CTRL_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1737 setAlarmStatus(MAIN_SYSTEM, OIL_PRESS, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1738 setAlarmStatus(AUX_SYSTEM, OIL_PRESS, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1739 setAlarmStatus(MAIN_SYSTEM, HYDR_LOCK, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1740 setAlarmStatus(AUX_SYSTEM, HYDR_LOCK, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1741 setAlarmStatus(MAIN_SYSTEM, OVERLOAD, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1742 setAlarmStatus(AUX_SYSTEM, OVERLOAD, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1743 setAlarmStatus(MAIN_SYSTEM, OIL_LEVEL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1744 setAlarmStatus(AUX_SYSTEM, OIL_LEVEL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1745 setAlarmStatus(MAIN_SYSTEM, OIL_FILTER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1746 setAlarmStatus(AUX_SYSTEM, OIL_FILTER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1747 setAlarmStatus(MAIN_SYSTEM, OIL_TEMP, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1748 setAlarmStatus(AUX_SYSTEM, OIL_TEMP, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1749 setAlarmStatus(GLOBAL_SYSTEM, FU_FAILURE, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1750 showMainPage();
JackB 0:0ee5e6b7245e 1751 wait(1);
JackB 0:0ee5e6b7245e 1752 wdt.Service();
JackB 0:0ee5e6b7245e 1753
JackB 0:0ee5e6b7245e 1754 // for (int i = 0; i < 2; i++) {
JackB 0:0ee5e6b7245e 1755 setPumpInUse(PUMP_IN_USE);
JackB 0:0ee5e6b7245e 1756 showMainPage();
JackB 0:0ee5e6b7245e 1757 wait(delay);
JackB 0:0ee5e6b7245e 1758 setPumpInUse(PUMP_IN_USE_MAIN);
JackB 0:0ee5e6b7245e 1759 showMainPage();
JackB 0:0ee5e6b7245e 1760 wait(delay);
JackB 0:0ee5e6b7245e 1761 setPumpInUse(PUMP_IN_USE_AUX);
JackB 0:0ee5e6b7245e 1762 showMainPage();
JackB 0:0ee5e6b7245e 1763 wait(delay);
JackB 0:0ee5e6b7245e 1764 setPumpInUse(PUMP_OFF);
JackB 0:0ee5e6b7245e 1765 showMainPage();
JackB 0:0ee5e6b7245e 1766 wait(delay);
JackB 0:0ee5e6b7245e 1767 // }
JackB 0:0ee5e6b7245e 1768
JackB 0:0ee5e6b7245e 1769 setPumpRunningStatus(MAIN_SYSTEM, RUN_STATUS_RUNNING);
JackB 0:0ee5e6b7245e 1770 showMainPage();
JackB 0:0ee5e6b7245e 1771 wait(delay);
JackB 0:0ee5e6b7245e 1772 setPumpRunningStatus(MAIN_SYSTEM, RUN_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1773 showMainPage();
JackB 0:0ee5e6b7245e 1774 wait(delay);
JackB 0:0ee5e6b7245e 1775 setPumpRunningStatus(MAIN_SYSTEM, RUN_STATUS_DISABLED);
JackB 0:0ee5e6b7245e 1776 showMainPage();
JackB 0:0ee5e6b7245e 1777 wait(delay);
JackB 0:0ee5e6b7245e 1778 setPumpRunningStatus(MAIN_SYSTEM, RUN_STATUS_OFF_RED);
JackB 0:0ee5e6b7245e 1779 showMainPage();
JackB 0:0ee5e6b7245e 1780 wait(delay);
JackB 0:0ee5e6b7245e 1781 setPumpRunningStatus(MAIN_SYSTEM, RUN_STATUS_OFF);
JackB 0:0ee5e6b7245e 1782 showMainPage();
JackB 0:0ee5e6b7245e 1783 wait(delay);
JackB 0:0ee5e6b7245e 1784 wdt.Service();
JackB 0:0ee5e6b7245e 1785
JackB 0:0ee5e6b7245e 1786 setPumpRunningStatus(AUX_SYSTEM, RUN_STATUS_RUNNING);
JackB 0:0ee5e6b7245e 1787 showMainPage();
JackB 0:0ee5e6b7245e 1788 wait(delay);
JackB 0:0ee5e6b7245e 1789 setPumpRunningStatus(AUX_SYSTEM, RUN_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1790 showMainPage();
JackB 0:0ee5e6b7245e 1791 wait(delay);
JackB 0:0ee5e6b7245e 1792 setPumpRunningStatus(AUX_SYSTEM, RUN_STATUS_DISABLED);
JackB 0:0ee5e6b7245e 1793 showMainPage();
JackB 0:0ee5e6b7245e 1794 wait(delay);
JackB 0:0ee5e6b7245e 1795 setPumpRunningStatus(AUX_SYSTEM, RUN_STATUS_OFF_RED);
JackB 0:0ee5e6b7245e 1796 showMainPage();
JackB 0:0ee5e6b7245e 1797 wait(delay);
JackB 0:0ee5e6b7245e 1798 setPumpRunningStatus(AUX_SYSTEM, RUN_STATUS_OFF);
JackB 0:0ee5e6b7245e 1799 showMainPage();
JackB 0:0ee5e6b7245e 1800 wait(delay);
JackB 0:0ee5e6b7245e 1801 wdt.Service();
JackB 0:0ee5e6b7245e 1802
JackB 0:0ee5e6b7245e 1803 setAlarmStatus(MAIN_SYSTEM, PHASE_FAIL, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1804 showMainPage();
JackB 0:0ee5e6b7245e 1805 wait(delay);
JackB 0:0ee5e6b7245e 1806 setAlarmStatus(MAIN_SYSTEM, PHASE_FAIL, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1807 showMainPage();
JackB 0:0ee5e6b7245e 1808 wait(delay);
JackB 0:0ee5e6b7245e 1809 setAlarmStatus(MAIN_SYSTEM, PHASE_FAIL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1810 showMainPage();
JackB 0:0ee5e6b7245e 1811 wait(delay);
JackB 0:0ee5e6b7245e 1812
JackB 0:0ee5e6b7245e 1813 setAlarmStatus(AUX_SYSTEM, PHASE_FAIL, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1814 showMainPage();
JackB 0:0ee5e6b7245e 1815 wait(delay);
JackB 0:0ee5e6b7245e 1816 setAlarmStatus(AUX_SYSTEM, PHASE_FAIL, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1817 showMainPage();
JackB 0:0ee5e6b7245e 1818 wait(delay);
JackB 0:0ee5e6b7245e 1819 setAlarmStatus(AUX_SYSTEM, PHASE_FAIL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1820 showMainPage();
JackB 0:0ee5e6b7245e 1821 wait(delay);
JackB 0:0ee5e6b7245e 1822
JackB 0:0ee5e6b7245e 1823 setAlarmStatus(MAIN_SYSTEM, MAIN_POWER, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1824 showMainPage();
JackB 0:0ee5e6b7245e 1825 wait(delay);
JackB 0:0ee5e6b7245e 1826 setAlarmStatus(MAIN_SYSTEM, MAIN_POWER, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1827 showMainPage();
JackB 0:0ee5e6b7245e 1828 wait(delay);
JackB 0:0ee5e6b7245e 1829 setAlarmStatus(MAIN_SYSTEM, MAIN_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1830 showMainPage();
JackB 0:0ee5e6b7245e 1831 wait(delay);
JackB 0:0ee5e6b7245e 1832 wdt.Service();
JackB 0:0ee5e6b7245e 1833
JackB 0:0ee5e6b7245e 1834 setAlarmStatus(AUX_SYSTEM, MAIN_POWER, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1835 showMainPage();
JackB 0:0ee5e6b7245e 1836 wait(delay);
JackB 0:0ee5e6b7245e 1837 setAlarmStatus(AUX_SYSTEM, MAIN_POWER, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1838 showMainPage();
JackB 0:0ee5e6b7245e 1839 wait(delay);
JackB 0:0ee5e6b7245e 1840 setAlarmStatus(AUX_SYSTEM, MAIN_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1841 showMainPage();
JackB 0:0ee5e6b7245e 1842 wait(delay);
JackB 0:0ee5e6b7245e 1843
JackB 0:0ee5e6b7245e 1844 setAlarmStatus(MAIN_SYSTEM, CTRL_POWER, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1845 showMainPage();
JackB 0:0ee5e6b7245e 1846 wait(delay);
JackB 0:0ee5e6b7245e 1847 setAlarmStatus(MAIN_SYSTEM, CTRL_POWER, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1848 showMainPage();
JackB 0:0ee5e6b7245e 1849 wait(delay);
JackB 0:0ee5e6b7245e 1850 setAlarmStatus(MAIN_SYSTEM, CTRL_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1851 showMainPage();
JackB 0:0ee5e6b7245e 1852 wait(delay);
JackB 0:0ee5e6b7245e 1853 wdt.Service();
JackB 0:0ee5e6b7245e 1854
JackB 0:0ee5e6b7245e 1855 setAlarmStatus(AUX_SYSTEM, CTRL_POWER, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1856 showMainPage();
JackB 0:0ee5e6b7245e 1857 wait(delay);
JackB 0:0ee5e6b7245e 1858 setAlarmStatus(AUX_SYSTEM, CTRL_POWER, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1859 showMainPage();
JackB 0:0ee5e6b7245e 1860 wait(delay);
JackB 0:0ee5e6b7245e 1861 setAlarmStatus(AUX_SYSTEM, CTRL_POWER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1862 showMainPage();
JackB 0:0ee5e6b7245e 1863 wait(delay);
JackB 0:0ee5e6b7245e 1864
JackB 0:0ee5e6b7245e 1865 setAlarmStatus(MAIN_SYSTEM, OIL_PRESS, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1866 showMainPage();
JackB 0:0ee5e6b7245e 1867 wait(delay);
JackB 0:0ee5e6b7245e 1868 setAlarmStatus(MAIN_SYSTEM, OIL_PRESS, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1869 showMainPage();
JackB 0:0ee5e6b7245e 1870 wait(delay);
JackB 0:0ee5e6b7245e 1871 setAlarmStatus(MAIN_SYSTEM, OIL_PRESS, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1872 showMainPage();
JackB 0:0ee5e6b7245e 1873 wait(delay);
JackB 0:0ee5e6b7245e 1874
JackB 0:0ee5e6b7245e 1875 setAlarmStatus(AUX_SYSTEM, OIL_PRESS, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1876 showMainPage();
JackB 0:0ee5e6b7245e 1877 wait(delay);
JackB 0:0ee5e6b7245e 1878 setAlarmStatus(AUX_SYSTEM, OIL_PRESS, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1879 showMainPage();
JackB 0:0ee5e6b7245e 1880 wait(delay);
JackB 0:0ee5e6b7245e 1881 setAlarmStatus(AUX_SYSTEM, OIL_PRESS, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1882 showMainPage();
JackB 0:0ee5e6b7245e 1883 wait(delay);
JackB 0:0ee5e6b7245e 1884 wdt.Service();
JackB 0:0ee5e6b7245e 1885
JackB 0:0ee5e6b7245e 1886 setAlarmStatus(MAIN_SYSTEM, HYDR_LOCK, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1887 showMainPage();
JackB 0:0ee5e6b7245e 1888 wait(delay);
JackB 0:0ee5e6b7245e 1889 setAlarmStatus(MAIN_SYSTEM, HYDR_LOCK, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1890 showMainPage();
JackB 0:0ee5e6b7245e 1891 wait(delay);
JackB 0:0ee5e6b7245e 1892 setAlarmStatus(MAIN_SYSTEM, HYDR_LOCK, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1893 showMainPage();
JackB 0:0ee5e6b7245e 1894 wait(delay);
JackB 0:0ee5e6b7245e 1895
JackB 0:0ee5e6b7245e 1896 setAlarmStatus(AUX_SYSTEM, HYDR_LOCK, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1897 showMainPage();
JackB 0:0ee5e6b7245e 1898 wait(delay);
JackB 0:0ee5e6b7245e 1899 setAlarmStatus(AUX_SYSTEM, HYDR_LOCK, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1900 showMainPage();
JackB 0:0ee5e6b7245e 1901 wait(delay);
JackB 0:0ee5e6b7245e 1902 setAlarmStatus(AUX_SYSTEM, HYDR_LOCK, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1903 showMainPage();
JackB 0:0ee5e6b7245e 1904 wait(delay);
JackB 0:0ee5e6b7245e 1905
JackB 0:0ee5e6b7245e 1906 setAlarmStatus(MAIN_SYSTEM, OVERLOAD, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1907 showMainPage();
JackB 0:0ee5e6b7245e 1908 wait(delay);
JackB 0:0ee5e6b7245e 1909 setAlarmStatus(MAIN_SYSTEM, OVERLOAD, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1910 showMainPage();
JackB 0:0ee5e6b7245e 1911 wait(delay);
JackB 0:0ee5e6b7245e 1912 setAlarmStatus(MAIN_SYSTEM, OVERLOAD, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1913 showMainPage();
JackB 0:0ee5e6b7245e 1914 wait(delay);
JackB 0:0ee5e6b7245e 1915 wdt.Service();
JackB 0:0ee5e6b7245e 1916
JackB 0:0ee5e6b7245e 1917 setAlarmStatus(AUX_SYSTEM, OVERLOAD, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1918 showMainPage();
JackB 0:0ee5e6b7245e 1919 wait(delay);
JackB 0:0ee5e6b7245e 1920 setAlarmStatus(AUX_SYSTEM, OVERLOAD, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1921 showMainPage();
JackB 0:0ee5e6b7245e 1922 wait(delay);
JackB 0:0ee5e6b7245e 1923 setAlarmStatus(AUX_SYSTEM, OVERLOAD, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1924 showMainPage();
JackB 0:0ee5e6b7245e 1925 wait(delay);
JackB 0:0ee5e6b7245e 1926
JackB 0:0ee5e6b7245e 1927 setAlarmStatus(MAIN_SYSTEM, OIL_LEVEL, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1928 showMainPage();
JackB 0:0ee5e6b7245e 1929 wait(delay);
JackB 0:0ee5e6b7245e 1930 setAlarmStatus(MAIN_SYSTEM, OIL_LEVEL, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1931 showMainPage();
JackB 0:0ee5e6b7245e 1932 wait(delay);
JackB 0:0ee5e6b7245e 1933 setAlarmStatus(MAIN_SYSTEM, OIL_LEVEL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1934 showMainPage();
JackB 0:0ee5e6b7245e 1935 wait(delay);
JackB 0:0ee5e6b7245e 1936
JackB 0:0ee5e6b7245e 1937 setAlarmStatus(AUX_SYSTEM, OIL_LEVEL, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1938 showMainPage();
JackB 0:0ee5e6b7245e 1939 wait(delay);
JackB 0:0ee5e6b7245e 1940 setAlarmStatus(AUX_SYSTEM, OIL_LEVEL, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1941 showMainPage();
JackB 0:0ee5e6b7245e 1942 wait(delay);
JackB 0:0ee5e6b7245e 1943 setAlarmStatus(AUX_SYSTEM, OIL_LEVEL, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1944 showMainPage();
JackB 0:0ee5e6b7245e 1945 wait(delay);
JackB 0:0ee5e6b7245e 1946 wdt.Service();
JackB 0:0ee5e6b7245e 1947
JackB 0:0ee5e6b7245e 1948 setAlarmStatus(MAIN_SYSTEM, OIL_FILTER, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1949 showMainPage();
JackB 0:0ee5e6b7245e 1950 wait(delay);
JackB 0:0ee5e6b7245e 1951 setAlarmStatus(MAIN_SYSTEM, OIL_FILTER, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1952 showMainPage();
JackB 0:0ee5e6b7245e 1953 wait(delay);
JackB 0:0ee5e6b7245e 1954 setAlarmStatus(MAIN_SYSTEM, OIL_FILTER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1955 showMainPage();
JackB 0:0ee5e6b7245e 1956 wait(delay);
JackB 0:0ee5e6b7245e 1957
JackB 0:0ee5e6b7245e 1958 setAlarmStatus(AUX_SYSTEM, OIL_FILTER, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1959 showMainPage();
JackB 0:0ee5e6b7245e 1960 wait(delay);
JackB 0:0ee5e6b7245e 1961 setAlarmStatus(AUX_SYSTEM, OIL_FILTER, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1962 showMainPage();
JackB 0:0ee5e6b7245e 1963 wait(delay);
JackB 0:0ee5e6b7245e 1964 setAlarmStatus(AUX_SYSTEM, OIL_FILTER, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1965 showMainPage();
JackB 0:0ee5e6b7245e 1966 wait(delay);
JackB 0:0ee5e6b7245e 1967
JackB 0:0ee5e6b7245e 1968 setAlarmStatus(MAIN_SYSTEM, OIL_TEMP, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1969 showMainPage();
JackB 0:0ee5e6b7245e 1970 wait(delay);
JackB 0:0ee5e6b7245e 1971 setAlarmStatus(MAIN_SYSTEM, OIL_TEMP, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1972 showMainPage();
JackB 0:0ee5e6b7245e 1973 wait(delay);
JackB 0:0ee5e6b7245e 1974 setAlarmStatus(MAIN_SYSTEM, OIL_TEMP, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1975 showMainPage();
JackB 0:0ee5e6b7245e 1976 wait(delay);
JackB 0:0ee5e6b7245e 1977 wdt.Service();
JackB 0:0ee5e6b7245e 1978
JackB 0:0ee5e6b7245e 1979 setAlarmStatus(AUX_SYSTEM, OIL_TEMP, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1980 showMainPage();
JackB 0:0ee5e6b7245e 1981 wait(delay);
JackB 0:0ee5e6b7245e 1982 setAlarmStatus(AUX_SYSTEM, OIL_TEMP, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1983 showMainPage();
JackB 0:0ee5e6b7245e 1984 wait(delay);
JackB 0:0ee5e6b7245e 1985 setAlarmStatus(AUX_SYSTEM, OIL_TEMP, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1986 showMainPage();
JackB 0:0ee5e6b7245e 1987 wait(delay);
JackB 0:0ee5e6b7245e 1988
JackB 0:0ee5e6b7245e 1989 setAlarmStatus(GLOBAL_SYSTEM, FU_FAILURE, ALARM_STATUS_WARNING);
JackB 0:0ee5e6b7245e 1990 showMainPage();
JackB 0:0ee5e6b7245e 1991 wait(delay);
JackB 0:0ee5e6b7245e 1992 setAlarmStatus(GLOBAL_SYSTEM, FU_FAILURE, ALARM_STATUS_FAILURE);
JackB 0:0ee5e6b7245e 1993 showMainPage();
JackB 0:0ee5e6b7245e 1994 wait(delay);
JackB 0:0ee5e6b7245e 1995 setAlarmStatus(GLOBAL_SYSTEM, FU_FAILURE, ALARM_STATUS_OFF);
JackB 0:0ee5e6b7245e 1996 showMainPage();
JackB 0:0ee5e6b7245e 1997 wait(delay);
JackB 0:0ee5e6b7245e 1998 wdt.Service();
JackB 0:0ee5e6b7245e 1999
JackB 0:0ee5e6b7245e 2000 restoreAlarms();
JackB 0:0ee5e6b7245e 2001 showMainPage();
JackB 0:0ee5e6b7245e 2002 }