programme capteur d'empreinte digital

Dependencies:   F746_GUI mbed

Committer:
MikamiUitOpen
Date:
Tue Apr 12 04:16:13 2016 +0000
Revision:
4:4f73a3054a67
Parent:
3:e92615be71c7
Child:
6:ea30227e7db0
5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 1:b4bcb6fa2a1d 1 //--------------------------------------------------------------------------------
MikamiUitOpen 0:629ff18592b9 2 // GuiBase とその派生クラスのデモプログラム
MikamiUitOpen 0:629ff18592b9 3 // Demo program for GuiBase class and its derivertive classes
MikamiUitOpen 1:b4bcb6fa2a1d 4 //
MikamiUitOpen 4:4f73a3054a67 5 // GuiBase, Button, ButtonGroup, Label, NumericLabel, BlinkLabel, SeekBar
MikamiUitOpen 0:629ff18592b9 6 //
MikamiUitOpen 4:4f73a3054a67 7 // 2016/04/12, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 1:b4bcb6fa2a1d 8 //--------------------------------------------------------------------------------
MikamiUitOpen 0:629ff18592b9 9
MikamiUitOpen 0:629ff18592b9 10 #include "NumericLabel.hpp"
MikamiUitOpen 1:b4bcb6fa2a1d 11 #include "BlinkLabel.hpp"
MikamiUitOpen 0:629ff18592b9 12 #include "ButtonGroup.hpp"
MikamiUitOpen 0:629ff18592b9 13 #include "SeekBar.hpp"
MikamiUitOpen 0:629ff18592b9 14
MikamiUitOpen 0:629ff18592b9 15 using namespace Mikami;
MikamiUitOpen 0:629ff18592b9 16
MikamiUitOpen 0:629ff18592b9 17 Ticker timer;
MikamiUitOpen 3:e92615be71c7 18 NumericLabel<float> obj2(10, 116, Label::LEFT, Font16, LCD_COLOR_YELLOW);
MikamiUitOpen 0:629ff18592b9 19
MikamiUitOpen 0:629ff18592b9 20 void TimerIsr()
MikamiUitOpen 0:629ff18592b9 21 {
MikamiUitOpen 0:629ff18592b9 22 static int sec = 0;
MikamiUitOpen 0:629ff18592b9 23 obj2.Draw("%6.1f [s]", (float)(sec++)/10.0f);
MikamiUitOpen 0:629ff18592b9 24 }
MikamiUitOpen 0:629ff18592b9 25
MikamiUitOpen 0:629ff18592b9 26 int main()
MikamiUitOpen 0:629ff18592b9 27 {
MikamiUitOpen 4:4f73a3054a67 28 Label obj10(240, 4, "Dome: GUI parts, 2016/04/12", Label::CENTER, Font16);
MikamiUitOpen 1:b4bcb6fa2a1d 29 Label obj11(240, 24, "Label, NumericLabel, BlinkLabel, Button, ButtonGroup, SeekBar",
MikamiUitOpen 0:629ff18592b9 30 Label::CENTER);
MikamiUitOpen 0:629ff18592b9 31
MikamiUitOpen 2:b60c218a2432 32 Button button1(10, 50, 50, 40, "1");
MikamiUitOpen 0:629ff18592b9 33 Button button2(62, 50, 50, 40, "2");
MikamiUitOpen 0:629ff18592b9 34
MikamiUitOpen 0:629ff18592b9 35 const int NUMBER_BUTTONS = 4;
MikamiUitOpen 0:629ff18592b9 36 const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Button4"};
MikamiUitOpen 0:629ff18592b9 37 ButtonGroup bGroup1(160, 50, 66, 40, NUMBER_BUTTONS, STR1, 5, 5, 3, 1,
MikamiUitOpen 0:629ff18592b9 38 Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF);
MikamiUitOpen 1:b4bcb6fa2a1d 39 NumericLabel<int> bTouch(234, 108, Label::LEFT, Font16, LCD_COLOR_MAGENTA);
MikamiUitOpen 0:629ff18592b9 40
MikamiUitOpen 3:e92615be71c7 41 // Control status of bGroup1
MikamiUitOpen 0:629ff18592b9 42 const string STR2[3] = {"0", "1", "2"};
MikamiUitOpen 0:629ff18592b9 43 ButtonGroup bGroup2(160, 150, 66, 40, 3, STR2, 5, 5, 3);
MikamiUitOpen 1:b4bcb6fa2a1d 44
MikamiUitOpen 3:e92615be71c7 45 // Switching buttons to control barH active or inactive
MikamiUitOpen 3:e92615be71c7 46 const string STR3[3] = {"ON", "OFF"};
MikamiUitOpen 3:e92615be71c7 47 ButtonGroup bGroup3(10, 150, 66, 40, 2, STR3, 0, 0, 2);
MikamiUitOpen 3:e92615be71c7 48 bGroup3.TouchedColor(0);
MikamiUitOpen 3:e92615be71c7 49
MikamiUitOpen 1:b4bcb6fa2a1d 50 Button doNotTouch(250, 220, 120, 40, "Don't Touch", Font12,
MikamiUitOpen 1:b4bcb6fa2a1d 51 GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK,
MikamiUitOpen 1:b4bcb6fa2a1d 52 LCD_COLOR_DARKGREEN, LCD_COLOR_RED);
MikamiUitOpen 0:629ff18592b9 53
MikamiUitOpen 1:b4bcb6fa2a1d 54 // Using default value for argument (Horisontal)
MikamiUitOpen 4:4f73a3054a67 55 SeekBar barH(20, 250, 200, -5, 5, 0, "-5", "", "5");
MikamiUitOpen 4:4f73a3054a67 56 NumericLabel<float> numLabel1(80, 205, "%5.1f", barH.GetValue());
MikamiUitOpen 4:4f73a3054a67 57 NumericLabel<int> numLabel2(130, 205, "%3d", (int)barH.GetValue());
MikamiUitOpen 4:4f73a3054a67 58 NumericLabel<int> numLabel3(160, 205);
MikamiUitOpen 0:629ff18592b9 59
MikamiUitOpen 3:e92615be71c7 60 // SeekBar (vertical)
MikamiUitOpen 3:e92615be71c7 61 SeekBar barV(440, 100, 150, -5, 5, 2, SeekBar::Vertical, LCD_COLOR_GREEN);
MikamiUitOpen 3:e92615be71c7 62 NumericLabel<float> numLabel4(440, 70, "%4.1f", barV.GetValue(), Label::CENTER);
MikamiUitOpen 0:629ff18592b9 63
MikamiUitOpen 0:629ff18592b9 64 timer.attach(&TimerIsr, 0.1f);
MikamiUitOpen 0:629ff18592b9 65
MikamiUitOpen 0:629ff18592b9 66 while (true)
MikamiUitOpen 0:629ff18592b9 67 {
MikamiUitOpen 0:629ff18592b9 68 if (button1.Touched()) button2.Draw();
MikamiUitOpen 0:629ff18592b9 69 if (button2.Touched()) button1.Draw();
MikamiUitOpen 0:629ff18592b9 70
MikamiUitOpen 0:629ff18592b9 71 int num;
MikamiUitOpen 0:629ff18592b9 72 if (bGroup1.GetTouchedNumber(num))
MikamiUitOpen 1:b4bcb6fa2a1d 73 bTouch.Draw("Button%d touched", num+1);
MikamiUitOpen 0:629ff18592b9 74
MikamiUitOpen 1:b4bcb6fa2a1d 75 if (bGroup2.GetTouchedNumber(num))
MikamiUitOpen 1:b4bcb6fa2a1d 76 switch (num)
MikamiUitOpen 0:629ff18592b9 77 {
MikamiUitOpen 1:b4bcb6fa2a1d 78 case 0: button1.Activate();
MikamiUitOpen 1:b4bcb6fa2a1d 79 bGroup1.Activate(1);
MikamiUitOpen 1:b4bcb6fa2a1d 80 bGroup1.DrawAll();
MikamiUitOpen 1:b4bcb6fa2a1d 81 break;
MikamiUitOpen 1:b4bcb6fa2a1d 82 case 1: button1.Inactivate();
MikamiUitOpen 1:b4bcb6fa2a1d 83 bGroup1.Inactivate(1);
MikamiUitOpen 1:b4bcb6fa2a1d 84 break;
MikamiUitOpen 1:b4bcb6fa2a1d 85 case 2: for (int n=0; n<4; n++) bGroup1.Erase(n);
MikamiUitOpen 1:b4bcb6fa2a1d 86 break;
MikamiUitOpen 0:629ff18592b9 87 }
MikamiUitOpen 0:629ff18592b9 88
MikamiUitOpen 3:e92615be71c7 89 if (barH.Slide())
MikamiUitOpen 0:629ff18592b9 90 {
MikamiUitOpen 3:e92615be71c7 91 numLabel1.Draw("%5.1f", barH.GetValue());
MikamiUitOpen 3:e92615be71c7 92 int8_t x = (int8_t)barH.GetValue();
MikamiUitOpen 0:629ff18592b9 93 numLabel2.Draw("%3d", x);
MikamiUitOpen 0:629ff18592b9 94
MikamiUitOpen 3:e92615be71c7 95 numLabel3.Draw("%3d", barH.GetIntValue());
MikamiUitOpen 0:629ff18592b9 96 }
MikamiUitOpen 0:629ff18592b9 97
MikamiUitOpen 3:e92615be71c7 98 if (barV.Slide()) { numLabel4.Draw("%4.1f", barV.GetValue()); }
MikamiUitOpen 1:b4bcb6fa2a1d 99
MikamiUitOpen 1:b4bcb6fa2a1d 100 // If "doNotTouch" button touched, trapped into endless loop
MikamiUitOpen 1:b4bcb6fa2a1d 101 if (doNotTouch.Touched())
MikamiUitOpen 1:b4bcb6fa2a1d 102 BlinkLabel warning(250, 200, "You must reset", Label::LEFT, Font16);
MikamiUitOpen 3:e92615be71c7 103
MikamiUitOpen 3:e92615be71c7 104 // SeekBar active inactive switching
MikamiUitOpen 4:4f73a3054a67 105 if (bGroup3.Touched(0))
MikamiUitOpen 4:4f73a3054a67 106 {
MikamiUitOpen 4:4f73a3054a67 107 barH.Activate();
MikamiUitOpen 4:4f73a3054a67 108 barV.Activate();
MikamiUitOpen 4:4f73a3054a67 109 }
MikamiUitOpen 4:4f73a3054a67 110 if (bGroup3.Touched(1))
MikamiUitOpen 4:4f73a3054a67 111 {
MikamiUitOpen 4:4f73a3054a67 112 barH.Inactivate();
MikamiUitOpen 4:4f73a3054a67 113 barV.Inactivate();
MikamiUitOpen 4:4f73a3054a67 114 }
MikamiUitOpen 0:629ff18592b9 115
MikamiUitOpen 0:629ff18592b9 116 wait(0.02f);
MikamiUitOpen 0:629ff18592b9 117 }
MikamiUitOpen 0:629ff18592b9 118 }