forked from KierPalin/MicroData
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdataViewSelect.ts
129 lines (113 loc) · 4.24 KB
/
dataViewSelect.ts
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
namespace microdata {
import Screen = user_interface_base.Screen
import CursorSceneWithPriorPage = user_interface_base.CursorSceneWithPriorPage
import CursorSceneEnum = user_interface_base.CursorSceneEnum
import Button = user_interface_base.Button
import ButtonStyles = user_interface_base.ButtonStyles
import AppInterface = user_interface_base.AppInterface
/**
* Choose between:
* Resetting Datalogger
* A tabular view of the recorded data
* A graph of the recorded data
*/
export class DataViewSelect extends CursorSceneWithPriorPage {
private resetDataLoggerBtn: Button
private dataViewBtn: Button
private graphViewBtn: Button
private dataloggerEmpty: boolean
constructor(app: AppInterface) {
super(app,
function () {
this.app.popScene();
this.app.pushScene(new Home(this.app))
})
}
/* override */ startup() {
super.startup()
// Includes the header:
this.dataloggerEmpty = datalogger.getNumberOfRows() <= 1
//---------
// Control:
//---------
// No data in log (first row are headers)
if (this.dataloggerEmpty) {
control.onEvent(
ControllerButtonEvent.Pressed,
controller.A.id,
() => {
this.app.popScene()
this.app.pushScene(new SensorSelect(this.app, CursorSceneEnum.RecordingConfigSelect))
}
)
}
const y = Screen.HEIGHT * 0.234 // y = 30 on an Arcade Shield of height 128 pixels
this.dataViewBtn = new Button({
parent: null,
style: ButtonStyles.Transparent,
icon: "largeDisk",
ariaId: "View Data",
x: -50,
y,
onClick: () => {
this.app.popScene()
this.app.pushScene(new TabularDataViewer(this.app, function () {this.app.popScene(); this.app.pushScene(new DataViewSelect(this.app))}))
},
})
this.graphViewBtn = new Button({
parent: null,
style: ButtonStyles.Transparent,
icon: "linear_graph_1",
ariaId: "View Graph",
x: 0,
y,
onClick: () => {
this.app.popScene()
this.app.pushScene(new GraphGenerator(this.app))
},
})
this.resetDataLoggerBtn = new Button({
parent: null,
style: ButtonStyles.Transparent,
icon: "largeSettingsGear",
ariaId: "Reset Datalogger",
x: 50,
y,
onClick: () => {
datalogger.deleteLog()
this.dataloggerEmpty = true
control.onEvent(
ControllerButtonEvent.Pressed,
controller.A.id,
() => {
this.app.popScene()
this.app.pushScene(new SensorSelect(this.app, CursorSceneEnum.RecordingConfigSelect))
}
)
},
})
this.navigator.addButtons([this.dataViewBtn, this.graphViewBtn, this.resetDataLoggerBtn])
}
draw() {
Screen.fillRect(
Screen.LEFT_EDGE,
Screen.TOP_EDGE,
Screen.WIDTH,
Screen.HEIGHT,
0xC
)
if (this.dataloggerEmpty) {
screen().printCenter("No data has been recorded", 5)
screen().printCenter("Press A to Record some!", Screen.HALF_HEIGHT)
return;
}
else {
screen().printCenter("Recorded Data Options", 5)
this.resetDataLoggerBtn.draw()
this.dataViewBtn.draw()
this.graphViewBtn.draw()
}
super.draw()
}
}
}