prima versione

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Committer:
geco300
Date:
Wed Jun 29 13:40:16 2016 +0000
Revision:
1:cfb1117e1e9d
Parent:
0:6ed610929e7f
prima versione

Who changed what in which revision?

UserRevisionLine numberNew contents of line
geco300 0:6ed610929e7f 1 #include "mbed.h"
geco300 0:6ed610929e7f 2 #include "TS_DISCO_F746NG.h"
geco300 0:6ed610929e7f 3 #include "LCD_DISCO_F746NG.h"
geco300 0:6ed610929e7f 4 #include "Button.h"
geco300 0:6ed610929e7f 5 #include "LED.h"
geco300 0:6ed610929e7f 6 #include "page.h"
geco300 0:6ed610929e7f 7 #include "SeekBar.h"
geco300 0:6ed610929e7f 8 #include "LCD_PLUS.h"
geco300 0:6ed610929e7f 9
geco300 0:6ed610929e7f 10 //#include "bitmap.cpp"
geco300 0:6ed610929e7f 11 const int LED_DIM=10;
geco300 0:6ed610929e7f 12
geco300 0:6ed610929e7f 13 int numPagina = 0;
geco300 0:6ed610929e7f 14 bool loaded = false; //ogni volta che viene richiamata una pagina loaded va posto a false così che la nuova pagina possa essere inizializzata nel case
geco300 0:6ed610929e7f 15
geco300 0:6ed610929e7f 16 LCD_DISCO_F746NG lcd;
geco300 0:6ed610929e7f 17 LCD_PLUS giri, numero, rpm,giri2, numero2, rpm2;
geco300 0:6ed610929e7f 18 Page pagina1(&lcd);
geco300 0:6ed610929e7f 19
geco300 0:6ed610929e7f 20 TS_DISCO_F746NG ts;
geco300 0:6ed610929e7f 21 LED led(20, 200, 200, LCD_COLOR_GRAY,LCD_COLOR_GREEN,LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 22 Mikami::Button prova(100, 100, 50, 50, "Button", Font12, LCD_COLOR_RED , LCD_COLOR_YELLOW , LCD_COLOR_BLUE, LCD_COLOR_BLACK, LCD_COLOR_GREEN, LCD_COLOR_GREEN);
geco300 0:6ed610929e7f 23 Mikami::Button next(15, 240, 65, 25, "TEMP.", Font16, LCD_COLOR_BLACK , LCD_COLOR_YELLOW , LCD_COLOR_WHITE, LCD_COLOR_RED, LCD_COLOR_ORANGE, LCD_COLOR_GREEN);
geco300 0:6ed610929e7f 24 Mikami::Button previous(480-(15+65), 240, 65, 25, "SUSP.", Font16, LCD_COLOR_BLACK , LCD_COLOR_YELLOW , LCD_COLOR_WHITE, LCD_COLOR_RED, LCD_COLOR_ORANGE, LCD_COLOR_GREEN);
geco300 0:6ed610929e7f 25 //Mikami::BlinkLabel blink(10, 10, "blink",LEFT, &Font16,LCD_COLOR_RED,LCD_COLOR_RED,500, 200);
geco300 0:6ed610929e7f 26 Mikami::SeekBar see(20, 30, 100,1, 50, 5,"left", "center", "right",0xFFB0B0FF,30,4,LCD_COLOR_LIGHTGRAY,0xFFB0B0B0, LCD_COLOR_GREEN);
geco300 0:6ed610929e7f 27 //Button(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const string str = "", sFONT &fonts = Font12,uint32_t textColor= GuiBase::ENUM_TEXT, uint32_t backColor = GuiBase::ENUM_BACK, uint32_t createdColor = GuiBase::ENUM_CREATED, uint32_t touchedColor= GuiBase::ENUM_TOUCHED, uint32_t inactiveColor = GuiBase::ENUM_INACTIVE, uint32_t inactiveTextColor = GuiBase::ENUM_INACTIVE_TEXT)
geco300 0:6ed610929e7f 28
geco300 0:6ed610929e7f 29
geco300 0:6ed610929e7f 30
geco300 0:6ed610929e7f 31
geco300 0:6ed610929e7f 32 //uint8_t * ptr_bm = bm;
geco300 0:6ed610929e7f 33 int main()
geco300 0:6ed610929e7f 34 {
geco300 0:6ed610929e7f 35 TS_StateTypeDef TS_State;
geco300 0:6ed610929e7f 36 uint16_t x, y;
geco300 0:6ed610929e7f 37 uint8_t text[30];
geco300 0:6ed610929e7f 38 uint8_t status;
geco300 0:6ed610929e7f 39 uint8_t idx;
geco300 0:6ed610929e7f 40 uint8_t cleared = 0;
geco300 0:6ed610929e7f 41 uint8_t prev_nb_touches = 0;
geco300 0:6ed610929e7f 42
geco300 0:6ed610929e7f 43 //lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE);
geco300 0:6ed610929e7f 44 // wait(1);
geco300 0:6ed610929e7f 45
geco300 0:6ed610929e7f 46 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
geco300 0:6ed610929e7f 47 if (status != TS_OK) {
geco300 0:6ed610929e7f 48 lcd.Clear(LCD_COLOR_RED);
geco300 0:6ed610929e7f 49 lcd.SetBackColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 50 lcd.SetTextColor(LCD_COLOR_WHITE);
geco300 0:6ed610929e7f 51 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
geco300 0:6ed610929e7f 52
geco300 0:6ed610929e7f 53 } else {
geco300 0:6ed610929e7f 54 lcd.Clear(LCD_COLOR_GREEN);
geco300 0:6ed610929e7f 55 lcd.SetBackColor(LCD_COLOR_GREEN);
geco300 0:6ed610929e7f 56 lcd.SetTextColor(LCD_COLOR_WHITE);
geco300 0:6ed610929e7f 57 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE);
geco300 0:6ed610929e7f 58 }
geco300 0:6ed610929e7f 59
geco300 0:6ed610929e7f 60 wait(1);
geco300 0:6ed610929e7f 61 lcd.SetFont(&Font12);
geco300 0:6ed610929e7f 62 lcd.SetBackColor(LCD_COLOR_BLUE);
geco300 0:6ed610929e7f 63 lcd.SetTextColor(LCD_COLOR_WHITE);
geco300 0:6ed610929e7f 64 //prova.Draw();
geco300 0:6ed610929e7f 65 //lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Non premuto", CENTER_MODE);
geco300 0:6ed610929e7f 66 //wait(1);
geco300 0:6ed610929e7f 67
geco300 0:6ed610929e7f 68 // led.Draw();
geco300 0:6ed610929e7f 69 //led.Blink(20);
geco300 0:6ed610929e7f 70
geco300 0:6ed610929e7f 71 while(1){
geco300 0:6ed610929e7f 72 switch (numPagina){
geco300 0:6ed610929e7f 73
geco300 0:6ed610929e7f 74 case 0:
geco300 0:6ed610929e7f 75 if(!loaded && numPagina==0){
geco300 0:6ed610929e7f 76 //inizializzazione prima pagina
geco300 0:6ed610929e7f 77 numPagina=0;
geco300 0:6ed610929e7f 78 //lcd.Clear(LCD_COLOR_WHITE);
geco300 0:6ed610929e7f 79 //lcd.SetBackColor(LCD_COLOR_WHITE);
geco300 0:6ed610929e7f 80
geco300 0:6ed610929e7f 81 lcd.SetTextColor(LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 82 // lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"CARICO LA PRIMA PAGINA", CENTER_MODE);
geco300 0:6ed610929e7f 83
geco300 0:6ed610929e7f 84 loaded = true;
geco300 0:6ed610929e7f 85 pagina1.show();
geco300 0:6ed610929e7f 86 wait(0.2);
geco300 0:6ed610929e7f 87 next.Draw();
geco300 0:6ed610929e7f 88
geco300 0:6ed610929e7f 89 previous.Draw();
geco300 0:6ed610929e7f 90 uint16_t xa = 100;
geco300 0:6ed610929e7f 91 uint16_t ya= 100;
geco300 0:6ed610929e7f 92 uint16_t xa2 = 300;
geco300 0:6ed610929e7f 93
geco300 0:6ed610929e7f 94
geco300 0:6ed610929e7f 95 //lcd.SetTextColor(LCD_COLOR_GREEN);
geco300 0:6ed610929e7f 96 //plus.DrawRectBord(50,50,50,50,4);
geco300 0:6ed610929e7f 97
geco300 0:6ed610929e7f 98 //SPEED
geco300 0:6ed610929e7f 99
geco300 0:6ed610929e7f 100 //rpm.DrawLabInfo(200, 100, 90, 30, LCD_COLOR_RED, LCD_COLOR_BLACK,(uint8_t *) "Giusiana", (uint8_t *)"232323", (uint8_t *) "RPM", 12);
geco300 0:6ed610929e7f 101 numero.DrawLabel(true, xa,ya+30,90,30, LCD_COLOR_RED, LCD_COLOR_WHITE,(uint8_t *)"Ready?",24);
geco300 0:6ed610929e7f 102 //rendo omogenee le dimensioni dei label
geco300 0:6ed610929e7f 103 uint32_t temp = numero.getInternalWidth();
geco300 0:6ed610929e7f 104 giri.DrawLabel(true, xa,ya,temp-2,30,LCD_COLOR_RED, LCD_COLOR_WHITE,(uint8_t *)"GIRI/m",20);
geco300 0:6ed610929e7f 105 wait(0.005);
geco300 0:6ed610929e7f 106
geco300 0:6ed610929e7f 107
geco300 0:6ed610929e7f 108 rpm.DrawLabel(true, xa,ya+60,temp-2,30,LCD_COLOR_RED, LCD_COLOR_WHITE,(uint8_t *)"RPM",16);
geco300 0:6ed610929e7f 109 wait(2);
geco300 0:6ed610929e7f 110
geco300 0:6ed610929e7f 111
geco300 0:6ed610929e7f 112 numero.updateInfo((uint8_t *)"3");
geco300 0:6ed610929e7f 113 wait(1);
geco300 0:6ed610929e7f 114 numero.updateInfo((uint8_t *)"2");
geco300 0:6ed610929e7f 115 wait(1);
geco300 0:6ed610929e7f 116 numero.updateInfo((uint8_t *)"1");
geco300 0:6ed610929e7f 117 wait(1);
geco300 0:6ed610929e7f 118 numero.updateInfo((uint8_t *)"0");
geco300 0:6ed610929e7f 119 wait(1.2);
geco300 0:6ed610929e7f 120 numero.updateInfo((uint8_t *)"GO!");
geco300 0:6ed610929e7f 121 wait(1);
geco300 0:6ed610929e7f 122
geco300 0:6ed610929e7f 123 //Ciccio !!! devi usare questa funzione per stampare gli interi -***************************************
geco300 0:6ed610929e7f 124 numero.displayInt(i);
geco300 0:6ed610929e7f 125
geco300 0:6ed610929e7f 126 for(int i=0; i < 3000; i++){
geco300 0:6ed610929e7f 127 numero.displayInt(i);
geco300 0:6ed610929e7f 128 wait(0.02);
geco300 0:6ed610929e7f 129 }
geco300 0:6ed610929e7f 130
geco300 0:6ed610929e7f 131 //secondo blocco a dx -------------------------------------------------------------------------------
geco300 0:6ed610929e7f 132
geco300 0:6ed610929e7f 133 numero2.DrawLabel(false, xa2,ya+30,90,30,LCD_COLOR_RED, LCD_COLOR_BLUE,(uint8_t *)"Ready?",24);
geco300 0:6ed610929e7f 134 //rendo omogenee le dimensioni dei label
geco300 0:6ed610929e7f 135 uint32_t temp2 = numero2.getInternalWidth();
geco300 0:6ed610929e7f 136 //giri2.DrawLabel(false, xa2,ya,temp,30,LCD_COLOR_RED, LCD_COLOR_BLUE,(uint8_t *)"GIRI/m",20);
geco300 0:6ed610929e7f 137 wait(0.005);
geco300 0:6ed610929e7f 138
geco300 0:6ed610929e7f 139 // rpm2.DrawLabel(false, xa2,ya+60,temp2,30,LCD_COLOR_RED, LCD_COLOR_BLUE,(uint8_t *)"RPM",16);
geco300 0:6ed610929e7f 140 wait(2);
geco300 0:6ed610929e7f 141
geco300 0:6ed610929e7f 142 //numero2.updateInfo((uint8_t *)"3");
geco300 0:6ed610929e7f 143 wait(1);
geco300 0:6ed610929e7f 144 //numero2.updateInfo((uint8_t *)"2");
geco300 0:6ed610929e7f 145 wait(1);
geco300 0:6ed610929e7f 146 //numero2.updateInfo((uint8_t *)"1");
geco300 0:6ed610929e7f 147 wait(1);
geco300 0:6ed610929e7f 148 //numero2.updateInfo((uint8_t *)"0");
geco300 0:6ed610929e7f 149 wait(1.2);
geco300 0:6ed610929e7f 150 //numero2.updateInfo((uint8_t *)"GO!");
geco300 0:6ed610929e7f 151 wait(1);
geco300 0:6ed610929e7f 152
geco300 0:6ed610929e7f 153 for(int i=0; i < 3000; i++){
geco300 0:6ed610929e7f 154 numero2.displayInt(i);
geco300 0:6ed610929e7f 155 wait(0.008);
geco300 0:6ed610929e7f 156 }
geco300 0:6ed610929e7f 157
geco300 0:6ed610929e7f 158 /*
geco300 0:6ed610929e7f 159 lcd.SetTextColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 160 lcd.FillRect(xa,ya+30,90,30);
geco300 0:6ed610929e7f 161 lcd.SetFont(&Font24);
geco300 0:6ed610929e7f 162 lcd.SetTextColor(LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 163 lcd.SetBackColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 164 lcd.DisplayStringAt(xa+28, ya+30, (uint8_t *)"92", LEFT_MODE);
geco300 0:6ed610929e7f 165 */
geco300 0:6ed610929e7f 166 /*
geco300 0:6ed610929e7f 167 lcd.SetTextColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 168 lcd.FillRect(xa,ya+60,90,15);
geco300 0:6ed610929e7f 169 lcd.SetFont(&Font12);
geco300 0:6ed610929e7f 170 lcd.SetTextColor(LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 171 lcd.SetBackColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 172 lcd.DisplayStringAt(xa+30, ya+55, (uint8_t *)"Km/h", LEFT_MODE);
geco300 0:6ed610929e7f 173 */
geco300 0:6ed610929e7f 174
geco300 0:6ed610929e7f 175
geco300 0:6ed610929e7f 176
geco300 0:6ed610929e7f 177 // plus.DrawLabel(false, 200+100,100,90,30,LCD_COLOR_RED, LCD_COLOR_BLACK,(uint8_t *)"RPM",20);
geco300 0:6ed610929e7f 178 // plus.DrawLabel(false, 200+100,100+30,90,30,LCD_COLOR_RED, LCD_COLOR_BLACK,(uint8_t *)"3750",24);
geco300 0:6ed610929e7f 179
geco300 0:6ed610929e7f 180 //for(int i=0; i< 100; i++){
geco300 0:6ed610929e7f 181 // speed.UpdateInfo(i);
geco300 0:6ed610929e7f 182 // wait(1);
geco300 0:6ed610929e7f 183 // }
geco300 0:6ed610929e7f 184 /*
geco300 0:6ed610929e7f 185 //RPM_________________________________
geco300 0:6ed610929e7f 186
geco300 0:6ed610929e7f 187 lcd.SetTextColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 188 lcd.FillRect(200+100,100,90,30);
geco300 0:6ed610929e7f 189 lcd.SetFont(&Font20);
geco300 0:6ed610929e7f 190 lcd.SetBackColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 191 lcd.SetTextColor(LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 192 lcd.DisplayStringAt(200+100+18, 100+5, (uint8_t *)"RPM", LEFT_MODE);
geco300 0:6ed610929e7f 193
geco300 0:6ed610929e7f 194 lcd.SetTextColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 195 lcd.FillRect(200+xa,ya+30,90,30);
geco300 0:6ed610929e7f 196 lcd.SetFont(&Font24);
geco300 0:6ed610929e7f 197 lcd.SetTextColor(LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 198 lcd.SetBackColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 199 lcd.DisplayStringAt(200+xa+8, ya+30, (uint8_t *)"3550", LEFT_MODE);
geco300 0:6ed610929e7f 200
geco300 0:6ed610929e7f 201 lcd.SetTextColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 202 lcd.FillRect(200+xa,ya+60,90,15);
geco300 0:6ed610929e7f 203 lcd.SetFont(&Font12);
geco300 0:6ed610929e7f 204 lcd.SetTextColor(LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 205 lcd.SetBackColor(LCD_COLOR_RED);
geco300 0:6ed610929e7f 206 */
geco300 0:6ed610929e7f 207
geco300 0:6ed610929e7f 208 //lcd.DisplayStringAt(100+xa+30, ya+55, (uint8_t *)"Km/h", LEFT_MODE);
geco300 0:6ed610929e7f 209
geco300 0:6ed610929e7f 210 //see.Draw(20);
geco300 0:6ed610929e7f 211
geco300 0:6ed610929e7f 212 break;
geco300 0:6ed610929e7f 213 }//endif
geco300 0:6ed610929e7f 214 else if(loaded && numPagina==0){ //se la pagina è già stata caricata eseguo il codice della pagina
geco300 0:6ed610929e7f 215
geco300 0:6ed610929e7f 216 // lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Sei nella PRIMA PAGINA", CENTER_MODE);
geco300 0:6ed610929e7f 217 //lcd.SetLayerWindow(1,50,20,50,50);
geco300 0:6ed610929e7f 218
geco300 0:6ed610929e7f 219 /*
geco300 0:6ed610929e7f 220 next.Draw();
geco300 0:6ed610929e7f 221 while(1){
geco300 0:6ed610929e7f 222 if (!prova.Touched()){
geco300 0:6ed610929e7f 223 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Non premuto nella prima pagina", CENTER_MODE);
geco300 0:6ed610929e7f 224 led.Off();
geco300 0:6ed610929e7f 225 }
geco300 0:6ed610929e7f 226 else {
geco300 0:6ed610929e7f 227 lcd.ClearStringLine(5);
geco300 0:6ed610929e7f 228 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Premuto nella prima pagina", CENTER_MODE);
geco300 0:6ed610929e7f 229 led.On();
geco300 0:6ed610929e7f 230 }
geco300 0:6ed610929e7f 231 if (next.Touched()){
geco300 0:6ed610929e7f 232 numPagina=1;
geco300 0:6ed610929e7f 233 loaded=false;
geco300 0:6ed610929e7f 234 break;
geco300 0:6ed610929e7f 235 }
geco300 0:6ed610929e7f 236 else {
geco300 0:6ed610929e7f 237 //nothing
geco300 0:6ed610929e7f 238 }
geco300 0:6ed610929e7f 239
geco300 0:6ed610929e7f 240
geco300 0:6ed610929e7f 241 }//endwhile
geco300 0:6ed610929e7f 242 */
geco300 0:6ed610929e7f 243 } //end else if
geco300 0:6ed610929e7f 244 //-----------fine prima pagina--------------------------------------------------------------------------------------------------
geco300 0:6ed610929e7f 245 case 1:
geco300 0:6ed610929e7f 246 {
geco300 0:6ed610929e7f 247 if(!loaded && numPagina==1){
geco300 0:6ed610929e7f 248 //inizializzazione prima pagina
geco300 0:6ed610929e7f 249 lcd.Clear(LCD_COLOR_WHITE);
geco300 0:6ed610929e7f 250 lcd.SetBackColor(LCD_COLOR_WHITE);
geco300 0:6ed610929e7f 251 lcd.SetTextColor(LCD_COLOR_BLACK);
geco300 0:6ed610929e7f 252 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"CARICO LA SECONDA PAGINA", CENTER_MODE);
geco300 0:6ed610929e7f 253 //previous.Draw();
geco300 0:6ed610929e7f 254 loaded = true;
geco300 0:6ed610929e7f 255 numPagina=1;
geco300 0:6ed610929e7f 256 wait(0.8);
geco300 0:6ed610929e7f 257 break;
geco300 0:6ed610929e7f 258 }//endif
geco300 0:6ed610929e7f 259 else if(loaded && numPagina==1)
geco300 0:6ed610929e7f 260 { //se la pagina è già stata caricata eseguo il codice della pagina
geco300 0:6ed610929e7f 261 previous.Draw();
geco300 0:6ed610929e7f 262 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Sei nella SECONDA PAGINA", CENTER_MODE);
geco300 0:6ed610929e7f 263
geco300 0:6ed610929e7f 264 while(1){
geco300 0:6ed610929e7f 265 if (!prova.Touched()){
geco300 0:6ed610929e7f 266 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Non premuto nella seconda pagina", CENTER_MODE);
geco300 0:6ed610929e7f 267 led.Off();
geco300 0:6ed610929e7f 268 }
geco300 0:6ed610929e7f 269 else {
geco300 0:6ed610929e7f 270 lcd.ClearStringLine(5);
geco300 0:6ed610929e7f 271 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Premuto nella seconda pagina", CENTER_MODE);
geco300 0:6ed610929e7f 272 led.On();
geco300 0:6ed610929e7f 273 }
geco300 0:6ed610929e7f 274 if (next.Touched()){
geco300 0:6ed610929e7f 275 numPagina=0;
geco300 0:6ed610929e7f 276 loaded=false;
geco300 0:6ed610929e7f 277 break;
geco300 0:6ed610929e7f 278 }
geco300 0:6ed610929e7f 279 else {
geco300 0:6ed610929e7f 280 //nothing
geco300 0:6ed610929e7f 281 }
geco300 0:6ed610929e7f 282
geco300 0:6ed610929e7f 283 }//endwhile
geco300 0:6ed610929e7f 284 }//end else if
geco300 0:6ed610929e7f 285 }//end case1
geco300 0:6ed610929e7f 286 //-----------fine seconda pagina--------------------------------------------------------------------------------------------------
geco300 0:6ed610929e7f 287
geco300 0:6ed610929e7f 288 }//end switch
geco300 0:6ed610929e7f 289
geco300 0:6ed610929e7f 290 }//end while
geco300 0:6ed610929e7f 291
geco300 0:6ed610929e7f 292 }