forked from pmiguelpinto90/BasketScoreboard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
controller.ino
147 lines (125 loc) · 2.71 KB
/
controller.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "commands.h"
const int MIN_POINTS = 0;
const int MAX_POINTS = 199;
const int DEFAULT_POINTS = 0;
const int MIN_FOULS = 0;
const int MAX_FOULS = 9;
const int DEFAULT_FOULS = 0;
const int MIN_PERIOD = 0;
const int MAX_PERIOD = 9;
const int DEFAULT_PERIOD = 1;
const bool DEFAULT_POSSESSION = false;
volatile int pointsHome, pointsVisit;
volatile int foulsHome, foulsVisit;
volatile bool possessionHome, possessionVisit;
volatile int period;
volatile bool foobarButtonPressed;
void updateDisplay() {
// TODO
}
void sendCommand(int cmd, int arg = NULL) {
// TODO
}
void incrementPointsHome() {
if (pointsHome < MAX_POINTS) {
pointsHome++;
updateDisplay();
sendCommand(SET_POINTS_HOME, pointsHome);
}
}
void incrementPointsVisit() {
if (pointsVisit < MAX_POINTS) {
pointsVisit++;
updateDisplay();
sendCommand(SET_POINTS_VISIT , pointsVisit);
}
}
void decrementPointsHome() {
if (pointsHome > MIN_POINTS) {
pointsHome--;
updateDisplay();
sendCommand(SET_POINTS_HOME, pointsHome);
}
}
void decrementPointsVisit() {
if (pointsVisit > MIN_POINTS) {
pointsVisit--;
updateDisplay();
sendCommand(SET_POINTS_VISIT, pointsVisit);
}
}
void incrementFoulsHome() {
if (foulsHome < MAX_FOULS) {
foulsHome++;
updateDisplay();
sendCommand(SET_FOULS_HOME, foulsHome);
}
}
void incrementFoulsVisit() {
if (foulsVisit < MAX_FOULS) {
foulsVisit++;
updateDisplay();
sendCommand(SET_FOULS_VISIT, foulsVisit);
}
}
void decrementFoulsHome() {
if (foulsHome > MIN_FOULS) {
foulsHome--;
updateDisplay();
sendCommand(SET_FOULS_HOME, foulsHome);
}
}
void decrementFoulsVisit() {
if (foulsVisit > MIN_FOULS) {
foulsVisit--;
updateDisplay();
sendCommand(SET_FOULS_VISIT, foulsVisit);
}
}
void incrementPeriod() {
if (period < MAX_PERIOD) {
period++;
updateDisplay();
sendCommand(SET_PERIOD, period);
}
}
void decrementPeriod() {
if (period > MIN_PERIOD) {
period--;
updateDisplay();
sendCommand(SET_PERIOD, period);
}
}
void clearPossession() {
possessionHome = false;
possessionVisit = false;
updateDisplay();
sendCommand(CLEAR_POSSESSION);
}
void setPossessionHome() {
possessionVisit = false;
possessionHome = true;
updateDisplay();
sendCommand(SET_POSSESSION_HOME);
}
void setPossessionVisit() {
possessionHome = false;
possessionVisit = true;
updateDisplay();
sendCommand(SET_POSSESSION_VISIT);
}
void setup() {
pointsHome, pointsVisit = DEFAULT_POINTS;
foulsHome, foulsVisit = DEFAULT_FOULS;
period = DEFAULT_PERIOD;
possessionHome, possessionVisit = DEFAULT_POSSESSION;
foobarButtonPressed = false;
// attachInterrupt();
}
void loop() {
//static int pointsHome = DEFAULT_POINTS;
if (foobarButtonPressed) {
incrementPointsHome();
foobarButtonPressed = false;
}
}