-
Notifications
You must be signed in to change notification settings - Fork 0
/
ModeSelector.h
85 lines (72 loc) · 2.14 KB
/
ModeSelector.h
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
#pragma once
//
// Lucky Resistor's Data Logger (Simple Version)
// ---------------------------------------------------------------------------
// (c)2015 by Lucky Resistor. See LICENSE for details.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
#include <Arduino.h>
#define MODE_SELECTOR_PIN_D1 4
#define MODE_SELECTOR_PIN_D2 5
#define MODE_SELECTOR_PIN_D4 6
#define MODE_SELECTOR_PIN_D8 8
/// This is the mode selector for the logger.
///
/// It uses the digital inputs 4, 5, 6 and 8 to detect the
/// setting of the BCD DIL.
///
/// 0 = Log values - 10s interval.
/// 1 = Log values - 30s interval.
/// 2 = Log values - 1m interval.
/// 3 = Log values - 10m interval.
/// 4 = Log values - 1h interval.
/// 5 = Log values - 4h interval.
/// 6 = Log values - 8h interval.
/// 7 = Log values - 24h interval.
/// 8 = Read records and send them to serial.
/// 9 = Format storage. All data will be lost.
///
class ModeSelector
{
public:
enum Mode {
Log,
Read,
Format
};
public:
/// ctor
///
ModeSelector();
/// dtor
///
~ModeSelector();
public:
/// Call this method in setup() to set the inputs and read the selected value.
///
void begin();
/// Get the selected mode.
///
Mode getMode();
/// Get the selected interval in seconds.
///
uint32_t getInterval();
/// Get the selected interval as text.
///
String getIntervalText();
private:
uint8_t _selectedValue;
};