F469_GUI Demo

Dependencies:   BSP_DISCO_F469NI F469_GUI LCD_DISCO_F469NI TS_DISCO_F469NI mbed

Files at this revision

API Documentation at this revision

Comitter:
inkiiin
Date:
Sun Oct 23 16:00:40 2016 +0000
Commit message:
Demo Aplication for F469_GUI

Changed in this revision

BSP_DISCO_F469NI.lib Show annotated file Show diff for this revision Revisions of this file
F469_GUI.lib Show annotated file Show diff for this revision Revisions of this file
LCD_DISCO_F469NI.lib Show annotated file Show diff for this revision Revisions of this file
TS_DISCO_F469NI.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BSP_DISCO_F469NI.lib	Sun Oct 23 16:00:40 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/ST/code/BSP_DISCO_F469NI/#9e4eb47092ed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/F469_GUI.lib	Sun Oct 23 16:00:40 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/inkiiin/code/F469_GUI/#698bf2100743
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LCD_DISCO_F469NI.lib	Sun Oct 23 16:00:40 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/ST/code/LCD_DISCO_F469NI/#d38374480318
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TS_DISCO_F469NI.lib	Sun Oct 23 16:00:40 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/ST/code/TS_DISCO_F469NI/#ee8fa51422c7
--- /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);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun Oct 23 16:00:40 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/2241e3a39974
\ No newline at end of file