Quadrifoglio / ui

Dependents:   201_test-UI 200_yotsuba_21

Committer:
piroro4560
Date:
Wed Mar 03 11:49:25 2021 +0000
Revision:
1:ed6249618fd3
Parent:
0:2623196cd444
Child:
2:a5e8e6156172
2021/3/3; toggle, button, lcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
piroro4560 0:2623196cd444 1 #include "ui.h"
piroro4560 0:2623196cd444 2
piroro4560 0:2623196cd444 3 UI::UI()
piroro4560 1:ed6249618fd3 4 : lcd(PB_9, PB_8),
piroro4560 1:ed6249618fd3 5 b0_(PC_3),
piroro4560 1:ed6249618fd3 6 tgl1(PA_9),
piroro4560 1:ed6249618fd3 7 tgl2(PB_10),
piroro4560 1:ed6249618fd3 8 tgl3(PB_5),
piroro4560 1:ed6249618fd3 9 buzz(PC_7)
piroro4560 0:2623196cd444 10 {
piroro4560 1:ed6249618fd3 11 team = 0;//初期化
piroro4560 0:2623196cd444 12 algorithm = 0;
piroro4560 0:2623196cd444 13 displayst = 0;
piroro4560 1:ed6249618fd3 14 mode = 0;
piroro4560 1:ed6249618fd3 15 name1 = name2 = NULL;
piroro4560 1:ed6249618fd3 16 for (int i = 0; i < 4; i++) b[i] = b_[i] = 0;
piroro4560 1:ed6249618fd3 17 UIthread.start(callback(this,&UI::display));
piroro4560 1:ed6249618fd3 18 }
piroro4560 1:ed6249618fd3 19
piroro4560 1:ed6249618fd3 20 void UI::updatebt()
piroro4560 1:ed6249618fd3 21 {
piroro4560 1:ed6249618fd3 22 b0 = b0_ * 100;
piroro4560 1:ed6249618fd3 23 for(int i = 0; i < 4; i++){
piroro4560 1:ed6249618fd3 24 if((b0 > 10*(2*i + 3)) && (b0 < 10*(2*i + 5))) b[i] = 1;
piroro4560 1:ed6249618fd3 25 else b[i] = 0;
piroro4560 1:ed6249618fd3 26 }
piroro4560 1:ed6249618fd3 27 if(b[0] && (!b_[0])){
piroro4560 1:ed6249618fd3 28 team = !team;
piroro4560 1:ed6249618fd3 29 buzz.beep(1760.0,0.2);
piroro4560 1:ed6249618fd3 30 }
piroro4560 1:ed6249618fd3 31 if(b[1] && (!b_[1])){
piroro4560 1:ed6249618fd3 32 ++algorithm %= 5;
piroro4560 1:ed6249618fd3 33 buzz.beep(1760.0,0.4);
piroro4560 1:ed6249618fd3 34 }
piroro4560 1:ed6249618fd3 35 if(b[2] && (!b_[2])){
piroro4560 1:ed6249618fd3 36 ++displayst %= 4;
piroro4560 1:ed6249618fd3 37 buzz.beep(1760.0,0.6);
piroro4560 1:ed6249618fd3 38 }
piroro4560 1:ed6249618fd3 39 if(b[3] && (!b_[3])){
piroro4560 1:ed6249618fd3 40 start = !start;
piroro4560 1:ed6249618fd3 41 buzz.beep(1760.0,0.6);
piroro4560 1:ed6249618fd3 42 }
piroro4560 1:ed6249618fd3 43 for(int i = 0; i < 4; i++) b_[i] = b[i];
piroro4560 1:ed6249618fd3 44 mode = (4*!tgl1)+(2*!tgl2)+(!tgl3);
piroro4560 0:2623196cd444 45 }
piroro4560 0:2623196cd444 46
piroro4560 1:ed6249618fd3 47 void UI::change(char *valname1_, char *valname2_, double *dispvalue_)
piroro4560 0:2623196cd444 48 {
piroro4560 1:ed6249618fd3 49 name1 = valname1_;
piroro4560 1:ed6249618fd3 50 name2 = valname2_;
piroro4560 1:ed6249618fd3 51 dispvalue[0] = dispvalue_[0];
piroro4560 1:ed6249618fd3 52 dispvalue[1] = dispvalue_[1];
piroro4560 0:2623196cd444 53 }
piroro4560 0:2623196cd444 54
piroro4560 1:ed6249618fd3 55 //void UI::display(char *valname1, char *valname2, double *dispvalue)
piroro4560 1:ed6249618fd3 56 void UI::display()
piroro4560 0:2623196cd444 57 {
piroro4560 1:ed6249618fd3 58 while(1) {
piroro4560 1:ed6249618fd3 59 updatebt();
piroro4560 1:ed6249618fd3 60 ThisThread::sleep_for(10ms);
piroro4560 1:ed6249618fd3 61 lcd.clear();
piroro4560 1:ed6249618fd3 62
piroro4560 1:ed6249618fd3 63 lcd.setCursor(0,0);
piroro4560 1:ed6249618fd3 64 lcd.print(algorithm);//algo
piroro4560 1:ed6249618fd3 65
piroro4560 1:ed6249618fd3 66 lcd.setCursor(0,0);
piroro4560 1:ed6249618fd3 67 lcd.print(algorithm);//algo
piroro4560 1:ed6249618fd3 68 lcd.setCursor(1,0);
piroro4560 1:ed6249618fd3 69 lcd.print(displayst);
piroro4560 1:ed6249618fd3 70 lcd.setCursor(2,0);
piroro4560 1:ed6249618fd3 71 lcd.print(name1);//
piroro4560 1:ed6249618fd3 72 lcd.setCursor(5,0);
piroro4560 1:ed6249618fd3 73 lcd.print(dispvalue[0]);
piroro4560 1:ed6249618fd3 74 /*
piroro4560 1:ed6249618fd3 75 lcd.print(b[0]);
piroro4560 1:ed6249618fd3 76 lcd.setCursor(6,0);
piroro4560 1:ed6249618fd3 77 lcd.print(b[1]);
piroro4560 1:ed6249618fd3 78 lcd.setCursor(7,0);
piroro4560 1:ed6249618fd3 79 lcd.print(b[2]);
piroro4560 1:ed6249618fd3 80 */
piroro4560 1:ed6249618fd3 81 lcd.setCursor(0,1);
piroro4560 1:ed6249618fd3 82 lcd.print(team);//team
piroro4560 1:ed6249618fd3 83 lcd.setCursor(1,1);
piroro4560 1:ed6249618fd3 84 lcd.print(mode);
piroro4560 1:ed6249618fd3 85 lcd.setCursor(2,1);
piroro4560 1:ed6249618fd3 86 lcd.print(name2);//
piroro4560 1:ed6249618fd3 87 lcd.setCursor(5,1);
piroro4560 1:ed6249618fd3 88 lcd.print(dispvalue[1]);
piroro4560 1:ed6249618fd3 89 // lcd.print(b0);
piroro4560 1:ed6249618fd3 90 ThisThread::sleep_for(40);
piroro4560 1:ed6249618fd3 91 }
piroro4560 1:ed6249618fd3 92 }
piroro4560 1:ed6249618fd3 93
piroro4560 1:ed6249618fd3 94 void UI::returnchar(char *buf)
piroro4560 1:ed6249618fd3 95 {
piroro4560 1:ed6249618fd3 96 for(int i = 0; i < 4; i++)
piroro4560 1:ed6249618fd3 97 {
piroro4560 1:ed6249618fd3 98 buf[i] = name1[i];
piroro4560 1:ed6249618fd3 99 }
piroro4560 0:2623196cd444 100 }