lcd

Dependencies:   LCD_DISCO_F469NI TS_DISCO_F469NI F469_GUI BSP_DISCO_F469NI

Committer:
bouaziz
Date:
Wed Feb 20 09:24:35 2019 +0000
Revision:
1:222362fa4bea
Parent:
0:0a8891401c4f
test LCD et tactile qui marche

Who changed what in which revision?

UserRevisionLine numberNew contents of line
inkiiin 0:0a8891401c4f 1 #include "mbed.h"
inkiiin 0:0a8891401c4f 2 #include "stm32469i_discovery.h"
inkiiin 0:0a8891401c4f 3 #include "TS_DISCO_F469NI.h"
inkiiin 0:0a8891401c4f 4 #include "LCD_DISCO_F469NI.h"
inkiiin 0:0a8891401c4f 5 #include "F469_GUI.hpp"
inkiiin 0:0a8891401c4f 6
inkiiin 0:0a8891401c4f 7 int main()
inkiiin 0:0a8891401c4f 8 {
inkiiin 0:0a8891401c4f 9 BSP_LED_Init(DISCO_LED_BLUE);
inkiiin 0:0a8891401c4f 10
inkiiin 0:0a8891401c4f 11 Label obj10(400, 2, "Dome: GUI parts, 2016/07/23, 12:24", Label::CENTER, Font16);
inkiiin 0:0a8891401c4f 12 Label obj11(400, 20, "Button, ButtonGroup, Label, NumericLabel, BlinkLabel,",
inkiiin 0:0a8891401c4f 13 Label::CENTER);
inkiiin 0:0a8891401c4f 14 Label obj12(400, 32, "SeekBar, SeekbarGroup",
inkiiin 0:0a8891401c4f 15 Label::CENTER);
inkiiin 0:0a8891401c4f 16
bouaziz 1:222362fa4bea 17 Button button1(10, 300, 80, 60, "1");
bouaziz 1:222362fa4bea 18 Button button2(95, 300, 80, 60, "2");
inkiiin 0:0a8891401c4f 19
inkiiin 0:0a8891401c4f 20 const int NUMBER_BUTTONS = 4;
inkiiin 0:0a8891401c4f 21 const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Activate"};
inkiiin 0:0a8891401c4f 22 ButtonGroup bGroup1(160, 54, 66, 40, NUMBER_BUTTONS, STR1, 5, 5, 3, 1,
inkiiin 0:0a8891401c4f 23 Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF);
inkiiin 0:0a8891401c4f 24 NumericLabel<int> bTouch(240, 112, Label::LEFT, Font12, LCD_COLOR_MAGENTA);
inkiiin 0:0a8891401c4f 25
inkiiin 0:0a8891401c4f 26 // Control status of bGroup1
inkiiin 0:0a8891401c4f 27 ButtonGroup bGroup2(160, 150, 66, 40, 3, (string[]){"0", "1", "2"}, 5, 5, 3);
inkiiin 0:0a8891401c4f 28 bGroup2.InactivateAll();
inkiiin 0:0a8891401c4f 29
inkiiin 0:0a8891401c4f 30 // Switching buttons to control barH active or inactive
inkiiin 0:0a8891401c4f 31 ButtonGroup bGroup3(10, 150, 66, 40, 2, (string[]){"ON", "OFF"}, 0, 0, 2);
inkiiin 0:0a8891401c4f 32 bGroup3.TouchedColor(0);
inkiiin 0:0a8891401c4f 33
inkiiin 0:0a8891401c4f 34 Button doNotTouch(250, 220, 120, 40, "Don't Touch", Font12,
inkiiin 0:0a8891401c4f 35 GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK,
inkiiin 0:0a8891401c4f 36 LCD_COLOR_DARKGREEN, LCD_COLOR_RED);
inkiiin 0:0a8891401c4f 37
inkiiin 0:0a8891401c4f 38 // Using default value for argument (Horizontal)
bouaziz 1:222362fa4bea 39 SeekBar barH(20, 250, 200, -5, 5, 0, "-5", "0", "5");
inkiiin 0:0a8891401c4f 40 NumericLabel<float> numLabel1(80, 205, "%5.1f", barH.GetValue());
inkiiin 0:0a8891401c4f 41 NumericLabel<int> numLabel2(130, 205, "%3d", (int)barH.GetValue());
inkiiin 0:0a8891401c4f 42 NumericLabel<int> numLabel3(160, 205);
inkiiin 0:0a8891401c4f 43
inkiiin 0:0a8891401c4f 44 // SeekbarGroup (vertical)
inkiiin 0:0a8891401c4f 45 SeekbarGroup barV(410, 130, 121, 2, 45, -6, 6, 2,
inkiiin 0:0a8891401c4f 46 SeekBar::Vertical, 0xFFA0FFC0);
inkiiin 0:0a8891401c4f 47 NumericLabel<float> **numLabel4;
inkiiin 0:0a8891401c4f 48 numLabel4 = new NumericLabel<float> *[2];
inkiiin 0:0a8891401c4f 49 for (int n=0; n<2; n++) numLabel4[n] =
inkiiin 0:0a8891401c4f 50 new NumericLabel<float>(410+n*45, 104, "%4.1f", barV.GetValue(n), Label::CENTER);
inkiiin 0:0a8891401c4f 51 NumericLabel<int> numLabel5(455, 92, "%1d", barV.GetIntValue(0), Label::CENTER);
inkiiin 0:0a8891401c4f 52
inkiiin 0:0a8891401c4f 53 // Test of left-, cenrer-, and right-justified
inkiiin 0:0a8891401c4f 54 Label leftJustified(420, 54, "ABC", Label::LEFT);
inkiiin 0:0a8891401c4f 55 Label centerJustified(420, 64, "ABC", Label::CENTER);
inkiiin 0:0a8891401c4f 56 Label rightJustified1(420, 74, "ABC", Label::RIGHT);
bouaziz 1:222362fa4bea 57 unsigned char flag=0;
bouaziz 1:222362fa4bea 58 unsigned tab [2]={0x0000FF,0x00FF00};
inkiiin 0:0a8891401c4f 59 while (true)
inkiiin 0:0a8891401c4f 60 {
bouaziz 1:222362fa4bea 61 if (button1.Touched()){
bouaziz 1:222362fa4bea 62 if(flag==0){
bouaziz 1:222362fa4bea 63 flag=1;
bouaziz 1:222362fa4bea 64 }else{
bouaziz 1:222362fa4bea 65 button1.Draw();
bouaziz 1:222362fa4bea 66 flag=0;
bouaziz 1:222362fa4bea 67 }
bouaziz 1:222362fa4bea 68 }
bouaziz 1:222362fa4bea 69 if (button2.Touched()){
bouaziz 1:222362fa4bea 70 unsigned int v= (unsigned)(((barH.GetValue()+5)*255)/10)<<24;
bouaziz 1:222362fa4bea 71 button2.Draw((unsigned)(tab[flag]+v));
bouaziz 1:222362fa4bea 72 }
inkiiin 0:0a8891401c4f 73
inkiiin 0:0a8891401c4f 74 int num;
inkiiin 0:0a8891401c4f 75 if (bGroup1.GetTouchedNumber(num))
inkiiin 0:0a8891401c4f 76 bTouch.Draw("Button%d touched", num+1);
inkiiin 0:0a8891401c4f 77 if (num == 3)
inkiiin 0:0a8891401c4f 78 bGroup2.ActivateAll();
inkiiin 0:0a8891401c4f 79
inkiiin 0:0a8891401c4f 80 if (bGroup2.GetTouchedNumber(num))
inkiiin 0:0a8891401c4f 81 switch (num)
inkiiin 0:0a8891401c4f 82 {
inkiiin 0:0a8891401c4f 83 case 0: button1.Activate();
inkiiin 0:0a8891401c4f 84 bGroup1.Activate(1);
inkiiin 0:0a8891401c4f 85 BSP_LED_On(DISCO_LED_BLUE);
inkiiin 0:0a8891401c4f 86 bGroup1.DrawAll();
inkiiin 0:0a8891401c4f 87 break;
inkiiin 0:0a8891401c4f 88 case 1: button1.Inactivate();
inkiiin 0:0a8891401c4f 89 bGroup1.Inactivate(1);
inkiiin 0:0a8891401c4f 90 BSP_LED_Off(DISCO_LED_BLUE);
inkiiin 0:0a8891401c4f 91 break;
inkiiin 0:0a8891401c4f 92 case 2: bGroup1.EraseAll();//for (int n=0; n<4; n++) bGroup1.Erase(n);
inkiiin 0:0a8891401c4f 93 for (int n=0; n<2; n++)
inkiiin 0:0a8891401c4f 94 {
inkiiin 0:0a8891401c4f 95 barV.Draw(n, 0); // reset seekbar
inkiiin 0:0a8891401c4f 96 numLabel4[n]->Draw("%4.1f", barV.GetValue(n));
inkiiin 0:0a8891401c4f 97 }
inkiiin 0:0a8891401c4f 98 break;
inkiiin 0:0a8891401c4f 99 }
inkiiin 0:0a8891401c4f 100
inkiiin 0:0a8891401c4f 101 if (barH.Slide())
inkiiin 0:0a8891401c4f 102 {
inkiiin 0:0a8891401c4f 103 numLabel1.Draw("%5.1f", barH.GetValue());
inkiiin 0:0a8891401c4f 104 int8_t x = (int8_t)barH.GetValue();
inkiiin 0:0a8891401c4f 105 numLabel2.Draw("%3d", x);
inkiiin 0:0a8891401c4f 106
inkiiin 0:0a8891401c4f 107 numLabel3.Draw("%3d", barH.GetIntValue());
inkiiin 0:0a8891401c4f 108 }
inkiiin 0:0a8891401c4f 109
inkiiin 0:0a8891401c4f 110 int sbNum;
inkiiin 0:0a8891401c4f 111 if (barV.GetSlidedNumber(sbNum))
inkiiin 0:0a8891401c4f 112 {
inkiiin 0:0a8891401c4f 113 if (sbNum == 0) numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum));
inkiiin 0:0a8891401c4f 114 else numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum));
inkiiin 0:0a8891401c4f 115 if (sbNum == 1) numLabel5.Draw("%1d", barV.GetIntValue(sbNum));
inkiiin 0:0a8891401c4f 116 }
inkiiin 0:0a8891401c4f 117 // If "doNotTouch" button touched, trapped into endless loop
inkiiin 0:0a8891401c4f 118 if (doNotTouch.Touched())
inkiiin 0:0a8891401c4f 119 BlinkLabel warning(250, 200, "You must reset", Label::LEFT, Font16);
inkiiin 0:0a8891401c4f 120
inkiiin 0:0a8891401c4f 121 // SeekBar active inactive switching
inkiiin 0:0a8891401c4f 122 if (bGroup3.Touched(0))
inkiiin 0:0a8891401c4f 123 {
inkiiin 0:0a8891401c4f 124 barH.Activate();
inkiiin 0:0a8891401c4f 125 barV.ActivateAll();
inkiiin 0:0a8891401c4f 126 }
inkiiin 0:0a8891401c4f 127 if (bGroup3.Touched(1))
inkiiin 0:0a8891401c4f 128 {
inkiiin 0:0a8891401c4f 129 barH.Inactivate();
inkiiin 0:0a8891401c4f 130 barV.InactivateAll();
inkiiin 0:0a8891401c4f 131 }
inkiiin 0:0a8891401c4f 132
inkiiin 0:0a8891401c4f 133 wait(0.02f);
inkiiin 0:0a8891401c4f 134 }
inkiiin 0:0a8891401c4f 135 }