lcd

Dependencies:   LCD_DISCO_F469NI TS_DISCO_F469NI F469_GUI BSP_DISCO_F469NI

Revision:
0:0a8891401c4f
Child:
1:222362fa4bea
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Oct 23 16:00:40 2016 +0000
@@ -0,0 +1,124 @@
+#include "mbed.h"
+#include "stm32469i_discovery.h"
+#include "TS_DISCO_F469NI.h"
+#include "LCD_DISCO_F469NI.h"
+#include "F469_GUI.hpp"
+
+int main()
+{
+    BSP_LED_Init(DISCO_LED_BLUE);
+    
+    Label obj10(400, 2, "Dome: GUI parts, 2016/07/23, 12:24", Label::CENTER, Font16);
+    Label obj11(400, 20, "Button, ButtonGroup, Label, NumericLabel, BlinkLabel,",
+                Label::CENTER);
+    Label obj12(400, 32, "SeekBar, SeekbarGroup",
+                Label::CENTER);
+
+    Button button1(10, 54, 50, 40, "1");
+    Button button2(62, 54, 50, 40, "2");
+
+    const int NUMBER_BUTTONS = 4;
+    const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Activate"};
+    ButtonGroup bGroup1(160, 54, 66, 40,  NUMBER_BUTTONS, STR1, 5, 5, 3, 1,
+                        Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF);
+    NumericLabel<int> bTouch(240, 112, Label::LEFT, Font12, LCD_COLOR_MAGENTA);
+
+    // Control status of bGroup1
+    ButtonGroup bGroup2(160, 150, 66, 40,  3, (string[]){"0", "1", "2"}, 5, 5, 3);
+    bGroup2.InactivateAll();
+    
+    // Switching buttons to control barH active or inactive
+    ButtonGroup bGroup3(10, 150, 66, 40,  2, (string[]){"ON", "OFF"}, 0, 0, 2);
+    bGroup3.TouchedColor(0);
+
+    Button doNotTouch(250, 220, 120, 40, "Don't Touch", Font12,
+                      GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK,
+                      LCD_COLOR_DARKGREEN, LCD_COLOR_RED);
+
+    // Using default value for argument (Horizontal)
+    SeekBar barH(20, 250, 200, -5, 5, 0, "-5", "", "5");
+    NumericLabel<float> numLabel1(80, 205, "%5.1f", barH.GetValue());
+    NumericLabel<int> numLabel2(130, 205, "%3d", (int)barH.GetValue());
+    NumericLabel<int> numLabel3(160, 205);
+    
+    // SeekbarGroup (vertical)
+    SeekbarGroup barV(410, 130, 121, 2, 45, -6, 6, 2,
+                      SeekBar::Vertical, 0xFFA0FFC0);
+    NumericLabel<float> **numLabel4;
+    numLabel4 = new NumericLabel<float> *[2];
+    for (int n=0; n<2; n++) numLabel4[n] =
+        new NumericLabel<float>(410+n*45, 104, "%4.1f", barV.GetValue(n), Label::CENTER);
+    NumericLabel<int> numLabel5(455, 92, "%1d", barV.GetIntValue(0), Label::CENTER);
+
+    // Test of left-, cenrer-, and right-justified
+    Label leftJustified(420, 54, "ABC", Label::LEFT);
+    Label centerJustified(420, 64, "ABC", Label::CENTER);
+    Label rightJustified1(420, 74, "ABC", Label::RIGHT);
+
+    while (true)
+    {
+        if (button1.Touched()) button2.Draw();
+        if (button2.Touched()) button1.Draw();
+
+        int num;
+        if (bGroup1.GetTouchedNumber(num))
+            bTouch.Draw("Button%d touched", num+1);
+        if (num == 3)
+            bGroup2.ActivateAll();
+
+        if (bGroup2.GetTouchedNumber(num))
+        switch (num)
+        {
+            case 0: button1.Activate();
+                    bGroup1.Activate(1);
+                    BSP_LED_On(DISCO_LED_BLUE);
+                    bGroup1.DrawAll();
+                    break;
+            case 1: button1.Inactivate();
+                    bGroup1.Inactivate(1);
+                    BSP_LED_Off(DISCO_LED_BLUE);
+                    break;
+            case 2: bGroup1.EraseAll();//for (int n=0; n<4; n++) bGroup1.Erase(n);
+                    for (int n=0; n<2; n++)
+                    {
+                        barV.Draw(n, 0);    // reset seekbar
+                        numLabel4[n]->Draw("%4.1f", barV.GetValue(n));
+                    }
+                    break;
+        }
+
+        if (barH.Slide())
+        {
+            numLabel1.Draw("%5.1f", barH.GetValue());
+            int8_t x = (int8_t)barH.GetValue();
+            numLabel2.Draw("%3d", x);
+
+            numLabel3.Draw("%3d", barH.GetIntValue());            
+        }        
+
+        int sbNum;
+        if (barV.GetSlidedNumber(sbNum))
+        {
+            if (sbNum == 0) numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum));
+            else            numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum));
+            if (sbNum == 1) numLabel5.Draw("%1d", barV.GetIntValue(sbNum));
+        }
+        // If "doNotTouch" button touched, trapped into endless loop
+        if (doNotTouch.Touched())
+            BlinkLabel warning(250, 200, "You must reset", Label::LEFT, Font16);
+            
+        // SeekBar active inactive switching
+        if (bGroup3.Touched(0))
+        {
+            barH.Activate();
+            barV.ActivateAll();
+        }
+        if (bGroup3.Touched(1))
+        {
+            barH.Inactivate();
+            barV.InactivateAll();
+        }
+
+        wait(0.02f);
+    }
+}