new version of AL96_OT
Dependencies: mbed LCD_DISCO_F469NI TS_DISCO_F469NI BSP_DISCO_F469NI
display.h@2:ee10ee4002d5, 2020-05-18 (annotated)
- Committer:
- billycorgan123
- Date:
- Mon May 18 19:00:39 2020 +0000
- Revision:
- 2:ee10ee4002d5
- Parent:
- 0:c980456a5562
prova
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
billycorgan123 | 0:c980456a5562 | 1 | #ifndef DISPLAY_H |
billycorgan123 | 0:c980456a5562 | 2 | #define DISPLAY_H |
billycorgan123 | 0:c980456a5562 | 3 | |
billycorgan123 | 2:ee10ee4002d5 | 4 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 5 | void display_Error(bool error) |
billycorgan123 | 2:ee10ee4002d5 | 6 | { |
billycorgan123 | 2:ee10ee4002d5 | 7 | //visualizzazione della faccina felice/triste |
billycorgan123 | 2:ee10ee4002d5 | 8 | int X = 10; |
billycorgan123 | 2:ee10ee4002d5 | 9 | int Y = 10; |
billycorgan123 | 2:ee10ee4002d5 | 10 | int riga, colonna, contatore=0; |
billycorgan123 | 2:ee10ee4002d5 | 11 | for (colonna=0; colonna<220; colonna++) { |
billycorgan123 | 2:ee10ee4002d5 | 12 | for ( riga=0; riga<400; riga++) { |
billycorgan123 | 2:ee10ee4002d5 | 13 | if (error == 0) lcd.DrawPixel (X+riga, Y+colonna, _acError000[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 14 | else lcd.DrawPixel (X+riga, Y+colonna, _acError111[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 15 | contatore++; |
billycorgan123 | 2:ee10ee4002d5 | 16 | } |
billycorgan123 | 2:ee10ee4002d5 | 17 | riga=0; |
billycorgan123 | 2:ee10ee4002d5 | 18 | } |
billycorgan123 | 2:ee10ee4002d5 | 19 | } |
billycorgan123 | 2:ee10ee4002d5 | 20 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 21 | void display_sfondo_macchina() |
billycorgan123 | 2:ee10ee4002d5 | 22 | { |
billycorgan123 | 2:ee10ee4002d5 | 23 | int X = 150; |
billycorgan123 | 2:ee10ee4002d5 | 24 | int Y = 50; |
billycorgan123 | 2:ee10ee4002d5 | 25 | int riga, colonna, contatore=0; |
billycorgan123 | 2:ee10ee4002d5 | 26 | for (colonna=0; colonna<300; colonna++) { |
billycorgan123 | 2:ee10ee4002d5 | 27 | for ( riga=0; riga<450; riga++) { |
billycorgan123 | 2:ee10ee4002d5 | 28 | lcd.DrawPixel (X+riga, Y+colonna, _acsfondo[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 29 | contatore++; |
billycorgan123 | 2:ee10ee4002d5 | 30 | } |
billycorgan123 | 2:ee10ee4002d5 | 31 | riga=0; |
billycorgan123 | 2:ee10ee4002d5 | 32 | } |
billycorgan123 | 2:ee10ee4002d5 | 33 | } |
billycorgan123 | 2:ee10ee4002d5 | 34 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 35 | void display_mini_state(int sensor_state, int X, int Y) |
billycorgan123 | 2:ee10ee4002d5 | 36 | { |
billycorgan123 | 2:ee10ee4002d5 | 37 | //visualizzazione dello stato dei vari elementi, usato in pagina 0 |
billycorgan123 | 2:ee10ee4002d5 | 38 | int riga, colonna, contatore=0; |
billycorgan123 | 2:ee10ee4002d5 | 39 | for (colonna=0; colonna<40; colonna++) { |
billycorgan123 | 2:ee10ee4002d5 | 40 | for ( riga=0; riga<40; riga++) { |
billycorgan123 | 2:ee10ee4002d5 | 41 | switch (sensor_state) { |
billycorgan123 | 2:ee10ee4002d5 | 42 | //---------------------------------------------------------- |
billycorgan123 | 2:ee10ee4002d5 | 43 | case 0: |
billycorgan123 | 2:ee10ee4002d5 | 44 | lcd.DrawPixel (X+riga, Y+colonna, _acqgreen[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 45 | break; |
billycorgan123 | 2:ee10ee4002d5 | 46 | case 1: |
billycorgan123 | 2:ee10ee4002d5 | 47 | lcd.DrawPixel (X+riga, Y+colonna, _acqredgreen[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 48 | break; |
billycorgan123 | 2:ee10ee4002d5 | 49 | case 2: |
billycorgan123 | 2:ee10ee4002d5 | 50 | lcd.DrawPixel (X+riga, Y+colonna, _acqred[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 51 | break; |
billycorgan123 | 2:ee10ee4002d5 | 52 | } |
billycorgan123 | 2:ee10ee4002d5 | 53 | contatore++; |
billycorgan123 | 2:ee10ee4002d5 | 54 | } |
billycorgan123 | 2:ee10ee4002d5 | 55 | riga=0; |
billycorgan123 | 2:ee10ee4002d5 | 56 | } |
billycorgan123 | 2:ee10ee4002d5 | 57 | contatore=0; |
billycorgan123 | 2:ee10ee4002d5 | 58 | } |
billycorgan123 | 2:ee10ee4002d5 | 59 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 60 | void display_OT_state(int sensor_state, int X, int Y, int MAXSensor) |
billycorgan123 | 2:ee10ee4002d5 | 61 | { |
billycorgan123 | 2:ee10ee4002d5 | 62 | //visualizzazione degli stati degli OT, usato in pagina 1 |
billycorgan123 | 2:ee10ee4002d5 | 63 | int riga, colonna, contatore=0; |
billycorgan123 | 2:ee10ee4002d5 | 64 | for (colonna=0; colonna<150; colonna++) { |
billycorgan123 | 2:ee10ee4002d5 | 65 | for ( riga=0; riga<75; riga++) { |
billycorgan123 | 2:ee10ee4002d5 | 66 | switch (sensor_state) { |
billycorgan123 | 2:ee10ee4002d5 | 67 | //---------------------------------------------------------- |
billycorgan123 | 2:ee10ee4002d5 | 68 | case 0: |
billycorgan123 | 2:ee10ee4002d5 | 69 | lcd.DrawPixel (X+riga, Y+colonna, _ac_on1[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 70 | break; |
billycorgan123 | 2:ee10ee4002d5 | 71 | case 1: |
billycorgan123 | 2:ee10ee4002d5 | 72 | lcd.DrawPixel (X+riga, Y+colonna, _ac_onoff1[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 73 | break; |
billycorgan123 | 2:ee10ee4002d5 | 74 | case 2: |
billycorgan123 | 2:ee10ee4002d5 | 75 | lcd.DrawPixel (X+riga, Y+colonna, _ac_off1[contatore]); |
billycorgan123 | 2:ee10ee4002d5 | 76 | break; |
billycorgan123 | 2:ee10ee4002d5 | 77 | } |
billycorgan123 | 2:ee10ee4002d5 | 78 | contatore++; |
billycorgan123 | 2:ee10ee4002d5 | 79 | } |
billycorgan123 | 2:ee10ee4002d5 | 80 | riga=0; |
billycorgan123 | 2:ee10ee4002d5 | 81 | } |
billycorgan123 | 2:ee10ee4002d5 | 82 | contatore=0; |
billycorgan123 | 0:c980456a5562 | 83 | |
billycorgan123 | 2:ee10ee4002d5 | 84 | } |
billycorgan123 | 2:ee10ee4002d5 | 85 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 86 | void display_setup() |
billycorgan123 | 2:ee10ee4002d5 | 87 | { |
billycorgan123 | 2:ee10ee4002d5 | 88 | //realizzazione del rettangolo di sfondo piu' la barra grigia nel riquadro inferiore del display |
billycorgan123 | 2:ee10ee4002d5 | 89 | lcd.Clear(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 90 | lcd.SetFont(&Font24); |
billycorgan123 | 2:ee10ee4002d5 | 91 | lcd.SetTextColor(gray); |
billycorgan123 | 2:ee10ee4002d5 | 92 | lcd.SetBackColor(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 93 | lcd.FillRect(0, 440, 800, 39); |
billycorgan123 | 2:ee10ee4002d5 | 94 | lcd.SetTextColor(black); |
billycorgan123 | 2:ee10ee4002d5 | 95 | lcd.SetBackColor(gray); |
billycorgan123 | 2:ee10ee4002d5 | 96 | lcd.DrawHLine(0, 410, 800); |
billycorgan123 | 2:ee10ee4002d5 | 97 | lcd.DrawHLine(0,440, 800); |
billycorgan123 | 2:ee10ee4002d5 | 98 | lcd.DrawVLine(160, 441, 39); |
billycorgan123 | 2:ee10ee4002d5 | 99 | lcd.DrawVLine(640, 441, 39); |
billycorgan123 | 2:ee10ee4002d5 | 100 | lcd.DisplayStringAt(0, 450, (uint8_t *)"Metal Controller - Ver 2.3", CENTER_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 101 | lcd.DisplayStringAt(5, LINE(19)-5, (uint8_t *)"<< PREV", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 102 | lcd.DisplayStringAt(645, LINE(19)-5, (uint8_t *)"NEXT >>", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 103 | lcd.SetBackColor(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 104 | } |
billycorgan123 | 2:ee10ee4002d5 | 105 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 106 | void display_draw_sheet (int actual_sheet) |
billycorgan123 | 2:ee10ee4002d5 | 107 | { |
billycorgan123 | 2:ee10ee4002d5 | 108 | //disegno delle singole pagine////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 109 | switch (actual_sheet) { |
billycorgan123 | 2:ee10ee4002d5 | 110 | //---------------------------------------------------------------------- |
billycorgan123 | 2:ee10ee4002d5 | 111 | case 0: { //Disegno Pagina 0 |
billycorgan123 | 2:ee10ee4002d5 | 112 | lcd.SetTextColor(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 113 | lcd.FillRect(0, 0, 800, 409); |
billycorgan123 | 2:ee10ee4002d5 | 114 | lcd.SetTextColor(black); |
billycorgan123 | 2:ee10ee4002d5 | 115 | if (is_OT_displayed) lcd.DisplayStringAt(430, 40, (uint8_t *)"Over Temperatures", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 116 | if (is_Heater_displayed) lcd.DisplayStringAt(430, 120, (uint8_t *)"Heaters", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 117 | if (is_Analog_displayed) lcd.DisplayStringAt(430, 200, (uint8_t *)"Analog Signals", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 118 | if (is_Digital_displayed) lcd.DisplayStringAt(430, 280, (uint8_t *)"Digital Signals", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 119 | } |
billycorgan123 | 2:ee10ee4002d5 | 120 | break; |
billycorgan123 | 2:ee10ee4002d5 | 121 | //---------------------------------------------------------------------- |
billycorgan123 | 2:ee10ee4002d5 | 122 | case 1: { //Disegno Pagina 1 |
billycorgan123 | 2:ee10ee4002d5 | 123 | lcd.SetTextColor(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 124 | lcd.FillRect(0, 0, 800, 409); |
billycorgan123 | 2:ee10ee4002d5 | 125 | lcd.SetTextColor(black); |
billycorgan123 | 2:ee10ee4002d5 | 126 | lcd.DisplayStringAt(35, 35, (uint8_t *)"Over Temperatures:", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 127 | } |
billycorgan123 | 2:ee10ee4002d5 | 128 | break; |
billycorgan123 | 2:ee10ee4002d5 | 129 | //---------------------------------------------------------------------- |
billycorgan123 | 2:ee10ee4002d5 | 130 | case 2: { //Disegno Pagina 2 |
billycorgan123 | 2:ee10ee4002d5 | 131 | lcd.SetTextColor(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 132 | lcd.FillRect(0, 0, 800, 409); |
billycorgan123 | 2:ee10ee4002d5 | 133 | lcd.SetTextColor(black); |
billycorgan123 | 2:ee10ee4002d5 | 134 | for (int riga=0; riga<MAX_HEATER; riga++) { |
billycorgan123 | 2:ee10ee4002d5 | 135 | lcd.DisplayStringAt(10, LINE(1+2*riga), (uint8_t *)"Heater :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 136 | //lcd.DisplayStringAt(10, LINE(7+2*riga), (uint8_t *)"Calibration :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 137 | sprintf((char*)text, "%d", riga+1); |
billycorgan123 | 2:ee10ee4002d5 | 138 | lcd.DisplayStringAt(120,LINE(1+2*riga), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 139 | sprintf((char*)text, "%2.3f", Heater[riga].limit); |
billycorgan123 | 2:ee10ee4002d5 | 140 | lcd.DisplayStringAt(660,LINE(1+2*riga), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 141 | //lcd.DisplayStringAt(210,LINE(7+2*riga), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 142 | //sprintf((char*)text, "%2.3f", Heater[riga].offset); |
billycorgan123 | 2:ee10ee4002d5 | 143 | //lcd.DisplayStringAt(250,LINE(7+2*riga), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 144 | } |
billycorgan123 | 2:ee10ee4002d5 | 145 | } |
billycorgan123 | 2:ee10ee4002d5 | 146 | break; |
billycorgan123 | 2:ee10ee4002d5 | 147 | //------------------------------------------------------------------ |
billycorgan123 | 2:ee10ee4002d5 | 148 | case 3: { //Disegno Pagina 3 |
billycorgan123 | 2:ee10ee4002d5 | 149 | lcd.SetTextColor(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 150 | lcd.FillRect(0, 0, 800, 409); |
billycorgan123 | 2:ee10ee4002d5 | 151 | lcd.SetTextColor(black); |
billycorgan123 | 2:ee10ee4002d5 | 152 | lcd.DisplayStringAt(10, LINE(1), (uint8_t *)"Analog Signals", CENTER_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 153 | lcd.DisplayStringAt(10, LINE(2), (uint8_t *)"BCl3 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 154 | lcd.DisplayStringAt(10, LINE(3), (uint8_t *)"gas2 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 155 | lcd.DisplayStringAt(10, LINE(4), (uint8_t *)"gas3 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 156 | lcd.DisplayStringAt(10, LINE(5), (uint8_t *)"gas4 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 157 | lcd.DisplayStringAt(10, LINE(6), (uint8_t *)"gas5 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 158 | lcd.DisplayStringAt(10, LINE(7), (uint8_t *)"gas6 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 159 | lcd.DisplayStringAt(10, LINE(8), (uint8_t *)"gas7 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 160 | lcd.DisplayStringAt(10, LINE(9), (uint8_t *)"gas8 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 161 | lcd.DisplayStringAt(10, LINE(10), (uint8_t *)"Digital Signals", CENTER_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 162 | lcd.DisplayStringAt(10, LINE(11), (uint8_t *)"dig1 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 163 | lcd.DisplayStringAt(10, LINE(12), (uint8_t *)"dig2 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 164 | lcd.DisplayStringAt(10, LINE(13), (uint8_t *)"dig3 :", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 165 | |
billycorgan123 | 2:ee10ee4002d5 | 166 | } |
billycorgan123 | 2:ee10ee4002d5 | 167 | break; |
billycorgan123 | 2:ee10ee4002d5 | 168 | //---------------------------------------------------------------------- |
billycorgan123 | 2:ee10ee4002d5 | 169 | case 4: { //Disegno Pagina 4 |
billycorgan123 | 2:ee10ee4002d5 | 170 | lcd.SetTextColor(BackColor); |
billycorgan123 | 2:ee10ee4002d5 | 171 | lcd.FillRect(0, 0, 800, 409); |
billycorgan123 | 2:ee10ee4002d5 | 172 | lcd.SetTextColor(black); |
billycorgan123 | 2:ee10ee4002d5 | 173 | lcd.DisplayStringAt(5, LINE(3), (uint8_t *)"OT display", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 174 | lcd.DisplayStringAt(5, LINE(4), (uint8_t *)"OT control", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 175 | lcd.DisplayStringAt(5, LINE(5), (uint8_t *)"Heater display", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 176 | lcd.DisplayStringAt(5, LINE(6), (uint8_t *)"Heater control", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 177 | lcd.DisplayStringAt(5, LINE(7), (uint8_t *)"Analog display", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 178 | lcd.DisplayStringAt(5, LINE(8), (uint8_t *)"Analog control", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 179 | lcd.DisplayStringAt(5, LINE(9), (uint8_t *)"Digital display", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 180 | lcd.DisplayStringAt(5, LINE(10), (uint8_t *)"Digital control", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 181 | (is_OT_displayed) ? lcd.DisplayStringAt(350, LINE(3), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(3), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 182 | (is_OT_controlled) ? lcd.DisplayStringAt(350, LINE(4), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(4), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 183 | (is_Heater_displayed) ? lcd.DisplayStringAt(350, LINE(5), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(5), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 184 | (is_Heater_controlled) ? lcd.DisplayStringAt(350, LINE(6), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(6), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 185 | (is_Analog_displayed) ? lcd.DisplayStringAt(350, LINE(7), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(7), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 186 | (is_Analog_controlled) ? lcd.DisplayStringAt(350, LINE(8), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(8), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 187 | (is_Digital_displayed) ? lcd.DisplayStringAt(350, LINE(9), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(9), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 188 | (is_Digital_controlled) ? lcd.DisplayStringAt(350, LINE(10), (uint8_t *)"ACTIVE", LEFT_MODE) : lcd.DisplayStringAt(350, LINE(10), (uint8_t *)"NOT ACTIVE", LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 189 | |
billycorgan123 | 2:ee10ee4002d5 | 190 | } |
billycorgan123 | 2:ee10ee4002d5 | 191 | break; |
billycorgan123 | 2:ee10ee4002d5 | 192 | //---------------------------------------------------------------------- |
billycorgan123 | 2:ee10ee4002d5 | 193 | } |
billycorgan123 | 2:ee10ee4002d5 | 194 | } |
billycorgan123 | 2:ee10ee4002d5 | 195 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 196 | void display_sheet_number() |
billycorgan123 | 2:ee10ee4002d5 | 197 | { |
billycorgan123 | 2:ee10ee4002d5 | 198 | //visualizza il numero della pagina attuale sul display in basso a sinistra |
billycorgan123 | 2:ee10ee4002d5 | 199 | sprintf((char*)text, "%d", actual_sheet); |
billycorgan123 | 2:ee10ee4002d5 | 200 | lcd.DisplayStringAt(10,415, (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 2:ee10ee4002d5 | 201 | } |
billycorgan123 | 2:ee10ee4002d5 | 202 | //////////////////////////////////////////////////////////////////////////////// |
billycorgan123 | 2:ee10ee4002d5 | 203 | |
billycorgan123 | 2:ee10ee4002d5 | 204 | #endif |
billycorgan123 | 0:c980456a5562 | 205 | |
billycorgan123 | 0:c980456a5562 | 206 | |
billycorgan123 | 0:c980456a5562 | 207 | |
billycorgan123 | 0:c980456a5562 | 208 |