lcd
Dependencies: LCD_DISCO_F469NI TS_DISCO_F469NI F469_GUI BSP_DISCO_F469NI
main.cpp@1:222362fa4bea, 2019-02-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |