-
Notifications
You must be signed in to change notification settings - Fork 3
/
dataViewSelect.ts
118 lines (103 loc) · 3.81 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
namespace microcode {
/**
* 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: App) {
super(app, function () {app.popScene(); 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()
}
}
}