-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdashboard.py
More file actions
66 lines (54 loc) · 2.29 KB
/
dashboard.py
File metadata and controls
66 lines (54 loc) · 2.29 KB
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
import wpilib
from AutoSequencerV2.autoSequencer import AutoSequencer
from dashboardWidgets.autoChooser import AutoChooser
from dashboardWidgets.swerveState import SwerveState
from dashboardWidgets.reefIndicator import ReefIndicator
from dashboardWidgets.icon import Icon
from dashboardWidgets.text import Text
from utils.faults import FaultWrangler
from utils.signalLogging import addLog
from webserver.webserver import Webserver
class Dashboard:
def __init__(self):
webServer = Webserver()
webServer.addDashboardWidget(ReefIndicator(15, 15, "/SmartDashboard/reefGoalPosIdx"))
webServer.addDashboardWidget(Icon(45, 45, "/SmartDashboard/isRedIconState", "#FF0000", "allianceRed"))
webServer.addDashboardWidget(Icon(55, 45, "/SmartDashboard/isBlueIconState", "#0000FF", "allianceBlue"))
webServer.addDashboardWidget(Icon(65, 45, "/SmartDashboard/PE Vision Targets Seen", "#00FF00", "vision"))
webServer.addDashboardWidget(Text(50, 75, "/SmartDashboard/faultDescription"))
webServer.addDashboardWidget(SwerveState(85, 15))
webServer.addDashboardWidget(
AutoChooser(
50,
10,
AutoSequencer().getDelayModeNTTableName(),
AutoSequencer().getDelayModeList(),
)
)
webServer.addDashboardWidget(
AutoChooser(
50,
20,
AutoSequencer().getMainModeNTTableName(),
AutoSequencer().getMainModeList(),
)
)
# Add logging for things that don't come from anywhere else
addLog("isRedIconState",
lambda: (
Icon.kON if wpilib.DriverStation.getAlliance() == wpilib.DriverStation.Alliance.kRed
else Icon.kOFF)
)
addLog("isBlueIconState",
lambda: (
Icon.kON if wpilib.DriverStation.getAlliance() == wpilib.DriverStation.Alliance.kBlue
else Icon.kOFF)
)
addLog("faultIconState",
lambda: (Icon.kBLINK_FAST if FaultWrangler().hasActiveFaults() else Icon.kOFF)
)
# Test Only.
# TODO: Real data
addLog("reefGoalPosIdx",
lambda: 2
)