programme capteur d'empreinte digital

Dependencies:   F746_GUI mbed

Committer:
MikamiUitOpen
Date:
Sat Apr 30 06:34:22 2016 +0000
Revision:
11:0195d802ab3d
Parent:
10:f23cca92f446
Child:
12:262492b42b04
12

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 8:8a55f2e374da 5 // GuiBase, Button, ButtonGroup, Label, NumericLabel, BlinkLabel,
MikamiUitOpen 8:8a55f2e374da 6 // SeekBar, SeekbarGroup
MikamiUitOpen 0:629ff18592b9 7 //
MikamiUitOpen 11:0195d802ab3d 8 // 2016/04/30, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 1:b4bcb6fa2a1d 9 //--------------------------------------------------------------------------------
MikamiUitOpen 0:629ff18592b9 10
MikamiUitOpen 0:629ff18592b9 11 #include "NumericLabel.hpp"
MikamiUitOpen 1:b4bcb6fa2a1d 12 #include "BlinkLabel.hpp"
MikamiUitOpen 0:629ff18592b9 13 #include "ButtonGroup.hpp"
MikamiUitOpen 10:f23cca92f446 14 #include "SeekbarGroup.hpp"
MikamiUitOpen 0:629ff18592b9 15
MikamiUitOpen 0:629ff18592b9 16 using namespace Mikami;
MikamiUitOpen 0:629ff18592b9 17
MikamiUitOpen 0:629ff18592b9 18 Ticker timer;
MikamiUitOpen 3:e92615be71c7 19 NumericLabel<float> obj2(10, 116, Label::LEFT, Font16, LCD_COLOR_YELLOW);
MikamiUitOpen 0:629ff18592b9 20
MikamiUitOpen 0:629ff18592b9 21 void TimerIsr()
MikamiUitOpen 0:629ff18592b9 22 {
MikamiUitOpen 0:629ff18592b9 23 static int sec = 0;
MikamiUitOpen 0:629ff18592b9 24 obj2.Draw("%6.1f [s]", (float)(sec++)/10.0f);
MikamiUitOpen 0:629ff18592b9 25 }
MikamiUitOpen 0:629ff18592b9 26
MikamiUitOpen 0:629ff18592b9 27 int main()
MikamiUitOpen 0:629ff18592b9 28 {
MikamiUitOpen 11:0195d802ab3d 29 Label obj10(240, 2, "Dome: GUI parts, 2016/04/30, 15:31", Label::CENTER, Font16);
MikamiUitOpen 11:0195d802ab3d 30 Label obj11(240, 20, "Button, ButtonGroup, Label, NumericLabel, BlinkLabel,",
MikamiUitOpen 11:0195d802ab3d 31 Label::CENTER);
MikamiUitOpen 11:0195d802ab3d 32 Label obj12(240, 32, "SeekBar, SeekbarGroup",
MikamiUitOpen 0:629ff18592b9 33 Label::CENTER);
MikamiUitOpen 0:629ff18592b9 34
MikamiUitOpen 11:0195d802ab3d 35 Button button1(10, 52, 50, 40, "1");
MikamiUitOpen 11:0195d802ab3d 36 Button button2(62, 52, 50, 40, "2");
MikamiUitOpen 0:629ff18592b9 37
MikamiUitOpen 0:629ff18592b9 38 const int NUMBER_BUTTONS = 4;
MikamiUitOpen 7:5788d0406bfd 39 const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Activate"};
MikamiUitOpen 11:0195d802ab3d 40 ButtonGroup bGroup1(160, 52, 66, 40, NUMBER_BUTTONS, STR1, 5, 5, 3, 1,
MikamiUitOpen 0:629ff18592b9 41 Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF);
MikamiUitOpen 11:0195d802ab3d 42 NumericLabel<int> bTouch(240, 112, Label::LEFT, Font12, LCD_COLOR_MAGENTA);
MikamiUitOpen 0:629ff18592b9 43
MikamiUitOpen 3:e92615be71c7 44 // Control status of bGroup1
MikamiUitOpen 0:629ff18592b9 45 const string STR2[3] = {"0", "1", "2"};
MikamiUitOpen 0:629ff18592b9 46 ButtonGroup bGroup2(160, 150, 66, 40, 3, STR2, 5, 5, 3);
MikamiUitOpen 7:5788d0406bfd 47 bGroup2.InactivateAll();
MikamiUitOpen 1:b4bcb6fa2a1d 48
MikamiUitOpen 3:e92615be71c7 49 // Switching buttons to control barH active or inactive
MikamiUitOpen 3:e92615be71c7 50 const string STR3[3] = {"ON", "OFF"};
MikamiUitOpen 3:e92615be71c7 51 ButtonGroup bGroup3(10, 150, 66, 40, 2, STR3, 0, 0, 2);
MikamiUitOpen 3:e92615be71c7 52 bGroup3.TouchedColor(0);
MikamiUitOpen 3:e92615be71c7 53
MikamiUitOpen 1:b4bcb6fa2a1d 54 Button doNotTouch(250, 220, 120, 40, "Don't Touch", Font12,
MikamiUitOpen 1:b4bcb6fa2a1d 55 GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK,
MikamiUitOpen 1:b4bcb6fa2a1d 56 LCD_COLOR_DARKGREEN, LCD_COLOR_RED);
MikamiUitOpen 0:629ff18592b9 57
MikamiUitOpen 7:5788d0406bfd 58 // Using default value for argument (Horizontal)
MikamiUitOpen 4:4f73a3054a67 59 SeekBar barH(20, 250, 200, -5, 5, 0, "-5", "", "5");
MikamiUitOpen 4:4f73a3054a67 60 NumericLabel<float> numLabel1(80, 205, "%5.1f", barH.GetValue());
MikamiUitOpen 4:4f73a3054a67 61 NumericLabel<int> numLabel2(130, 205, "%3d", (int)barH.GetValue());
MikamiUitOpen 4:4f73a3054a67 62 NumericLabel<int> numLabel3(160, 205);
MikamiUitOpen 0:629ff18592b9 63
MikamiUitOpen 8:8a55f2e374da 64 // SeekbarGroup (vertical)
MikamiUitOpen 8:8a55f2e374da 65 SeekbarGroup barV(400, 120, 130, 2, 50, -5, 5, 2,
MikamiUitOpen 11:0195d802ab3d 66 SeekBar::Vertical, 0xFFA0FFC0);
MikamiUitOpen 8:8a55f2e374da 67 NumericLabel<float> **numLabel4;
MikamiUitOpen 8:8a55f2e374da 68 numLabel4 = new NumericLabel<float> *[2];
MikamiUitOpen 8:8a55f2e374da 69 for (int n=0; n<2; n++) numLabel4[n] =
MikamiUitOpen 11:0195d802ab3d 70 new NumericLabel<float>(400+n*50, 94, "%4.1f", barV.GetValue(n), Label::CENTER);
MikamiUitOpen 8:8a55f2e374da 71
MikamiUitOpen 8:8a55f2e374da 72 // Test of left-, cenrer-, right-justified
MikamiUitOpen 11:0195d802ab3d 73 Label leftJustified(420, 52, "ABC", Label::LEFT);
MikamiUitOpen 11:0195d802ab3d 74 Label centerJustified(420, 62, "ABC", Label::CENTER);
MikamiUitOpen 11:0195d802ab3d 75 Label rightJustified1(420, 72, "ABC", Label::RIGHT);
MikamiUitOpen 0:629ff18592b9 76
MikamiUitOpen 0:629ff18592b9 77 timer.attach(&TimerIsr, 0.1f);
MikamiUitOpen 0:629ff18592b9 78
MikamiUitOpen 0:629ff18592b9 79 while (true)
MikamiUitOpen 0:629ff18592b9 80 {
MikamiUitOpen 0:629ff18592b9 81 if (button1.Touched()) button2.Draw();
MikamiUitOpen 0:629ff18592b9 82 if (button2.Touched()) button1.Draw();
MikamiUitOpen 0:629ff18592b9 83
MikamiUitOpen 0:629ff18592b9 84 int num;
MikamiUitOpen 0:629ff18592b9 85 if (bGroup1.GetTouchedNumber(num))
MikamiUitOpen 1:b4bcb6fa2a1d 86 bTouch.Draw("Button%d touched", num+1);
MikamiUitOpen 7:5788d0406bfd 87 if (num == 3)
MikamiUitOpen 7:5788d0406bfd 88 bGroup2.ActivateAll();
MikamiUitOpen 0:629ff18592b9 89
MikamiUitOpen 1:b4bcb6fa2a1d 90 if (bGroup2.GetTouchedNumber(num))
MikamiUitOpen 1:b4bcb6fa2a1d 91 switch (num)
MikamiUitOpen 0:629ff18592b9 92 {
MikamiUitOpen 1:b4bcb6fa2a1d 93 case 0: button1.Activate();
MikamiUitOpen 1:b4bcb6fa2a1d 94 bGroup1.Activate(1);
MikamiUitOpen 1:b4bcb6fa2a1d 95 bGroup1.DrawAll();
MikamiUitOpen 1:b4bcb6fa2a1d 96 break;
MikamiUitOpen 1:b4bcb6fa2a1d 97 case 1: button1.Inactivate();
MikamiUitOpen 1:b4bcb6fa2a1d 98 bGroup1.Inactivate(1);
MikamiUitOpen 1:b4bcb6fa2a1d 99 break;
MikamiUitOpen 1:b4bcb6fa2a1d 100 case 2: for (int n=0; n<4; n++) bGroup1.Erase(n);
MikamiUitOpen 8:8a55f2e374da 101 for (int n=0; n<2; n++)
MikamiUitOpen 8:8a55f2e374da 102 {
MikamiUitOpen 8:8a55f2e374da 103 barV.Draw(n, 0); // reset seekbar
MikamiUitOpen 8:8a55f2e374da 104 numLabel4[n]->Draw("%4.1f", barV.GetValue(n));
MikamiUitOpen 8:8a55f2e374da 105 }
MikamiUitOpen 1:b4bcb6fa2a1d 106 break;
MikamiUitOpen 0:629ff18592b9 107 }
MikamiUitOpen 0:629ff18592b9 108
MikamiUitOpen 3:e92615be71c7 109 if (barH.Slide())
MikamiUitOpen 0:629ff18592b9 110 {
MikamiUitOpen 3:e92615be71c7 111 numLabel1.Draw("%5.1f", barH.GetValue());
MikamiUitOpen 3:e92615be71c7 112 int8_t x = (int8_t)barH.GetValue();
MikamiUitOpen 0:629ff18592b9 113 numLabel2.Draw("%3d", x);
MikamiUitOpen 0:629ff18592b9 114
MikamiUitOpen 3:e92615be71c7 115 numLabel3.Draw("%3d", barH.GetIntValue());
MikamiUitOpen 0:629ff18592b9 116 }
MikamiUitOpen 0:629ff18592b9 117
MikamiUitOpen 8:8a55f2e374da 118 int sbNum;
MikamiUitOpen 8:8a55f2e374da 119 if (barV.GetSlidedNumber(sbNum))
MikamiUitOpen 8:8a55f2e374da 120 numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum));
MikamiUitOpen 8:8a55f2e374da 121
MikamiUitOpen 1:b4bcb6fa2a1d 122 // If "doNotTouch" button touched, trapped into endless loop
MikamiUitOpen 1:b4bcb6fa2a1d 123 if (doNotTouch.Touched())
MikamiUitOpen 1:b4bcb6fa2a1d 124 BlinkLabel warning(250, 200, "You must reset", Label::LEFT, Font16);
MikamiUitOpen 3:e92615be71c7 125
MikamiUitOpen 3:e92615be71c7 126 // SeekBar active inactive switching
MikamiUitOpen 4:4f73a3054a67 127 if (bGroup3.Touched(0))
MikamiUitOpen 4:4f73a3054a67 128 {
MikamiUitOpen 4:4f73a3054a67 129 barH.Activate();
MikamiUitOpen 8:8a55f2e374da 130 barV.ActivateAll();
MikamiUitOpen 4:4f73a3054a67 131 }
MikamiUitOpen 4:4f73a3054a67 132 if (bGroup3.Touched(1))
MikamiUitOpen 4:4f73a3054a67 133 {
MikamiUitOpen 4:4f73a3054a67 134 barH.Inactivate();
MikamiUitOpen 8:8a55f2e374da 135 barV.InactivateAll();
MikamiUitOpen 4:4f73a3054a67 136 }
MikamiUitOpen 0:629ff18592b9 137
MikamiUitOpen 0:629ff18592b9 138 wait(0.02f);
MikamiUitOpen 0:629ff18592b9 139 }
MikamiUitOpen 0:629ff18592b9 140 }