-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDashboardDataFormat.cpp
197 lines (168 loc) · 6.43 KB
/
DashboardDataFormat.cpp
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#include "DashboardDataFormat.h"
#include "Logger.h"
DashboardDataFormat::DashboardDataFormat(void)
: m_ds (DriverStation::GetInstance())
{
}
DashboardDataFormat::~DashboardDataFormat()
{
}
/**
* Pack data using the correct types and in the correct order to match the
* default "Dashboard Datatype" in the LabVIEW Dashboard project.
*/
void DashboardDataFormat::PackAndSend(void)
{
Dashboard &dashboardPacker = m_ds->GetHighPriorityDashboardPacker();
//UINT32 module;
//UINT32 channel;
// Pack identification handshake flag header thingy
// Useful for picking out where "our" data begins.
// See Mr. Meyer's Packet Buffer Inspector Utility Thingamajig.
dashboardPacker.AddU8('*');
dashboardPacker.AddU8('=');
dashboardPacker.AddU8('=');
dashboardPacker.AddU8('*');
// Pack the analog modules
// Don't pack them anymore. They're stupid.
// for (module = 0; module < kAnalogModules; module++)
// {
// dashboardPacker.AddCluster();
// for (channel = 0; channel < kAnalogChannels; channel++)
// {
// dashboardPacker.AddFloat(m_AnalogChannels[module][channel]);
// }
// dashboardPacker.FinalizeCluster();
// }
// // Pack the digital modules
// for (module = 0; module < kDigitalModules; module++)
// {
// dashboardPacker.AddCluster();
// dashboardPacker.AddU8(m_RelayFwd[module]);
// dashboardPacker.AddU8(m_RelayRev[module]);
// dashboardPacker.AddU16(m_DIOChannels[module]);
// dashboardPacker.AddU16(m_DIOChannelsOutputEnable[module]);
// dashboardPacker.AddCluster();
// for(channel = 0; channel < kPwmChannels; channel++)
// {
// dashboardPacker.AddU8(m_PWMChannels[module][channel]);
// }
// dashboardPacker.FinalizeCluster();
// dashboardPacker.FinalizeCluster();
// }
// Pack the solenoid module
// Elevator amps
// Lanuch amps
// Turret
// LEft drive
// Right drive
// Harvester
dashboardPacker.AddU8(m_SolenoidChannels);
// TODO Figure out if U32 and I32 are causing problems together
// TARGET DATA: irrelevant in 2010, comes through camera port --PJF
dashboardPacker.AddU32(100); //?
dashboardPacker.AddU32(101); //?
dashboardPacker.AddU32(102); //?
dashboardPacker.AddU32(103); //?
// PJF RED ALERT CODE: Add encoder data
dashboardPacker.AddI32(104); // Right 2 Position
dashboardPacker.AddI32(105); // Kick Wench Position
dashboardPacker.AddI32(106); // Follower Encoder Left
dashboardPacker.AddI32(107); // Follower Encoder Right
dashboardPacker.AddI32(108);// put cammera saturation here. <- no // ?
// launch encoder, elevator encoder, turret encoder, left voltage, right voltage
dashboardPacker.AddI32(109); // Left Drive Motor 2 Position
dashboardPacker.AddI32(110); // Left Drive Motor 1 Position
dashboardPacker.AddI32(111); //?
dashboardPacker.AddI16(112);//?
dashboardPacker.AddI16(113);//?
// ultrasonic
dashboardPacker.AddFloat(114);
// gyro angle, temp
dashboardPacker.AddFloat(115); // Gyro Rotation Angle
dashboardPacker.AddFloat(116); // Added by HAM 2/6/9 // Gyro Temperature Raw
// accel x,y,z
dashboardPacker.AddFloat(117); // Accel X
dashboardPacker.AddFloat(118); // Accel Y
dashboardPacker.AddFloat(119); // Accel Z
// Add target data
// Add color target code
/*
dashboardPacker.AddI32(m_PrimaryMinHue);
dashboardPacker.AddI32(m_PrimaryMinSat);
dashboardPacker.AddI32(m_PrimaryMinLum);
dashboardPacker.AddI32(m_PrimaryMaxHue);
dashboardPacker.AddI32(m_PrimaryMaxSat);
dashboardPacker.AddI32(m_PrimaryMaxLum);
dashboardPacker.AddI32(m_SecondaryMinHue);
dashboardPacker.AddI32(m_SecondaryMinSat);
dashboardPacker.AddI32(m_SecondaryMinLum);
dashboardPacker.AddI32(m_SecondaryMaxHue);
dashboardPacker.AddI32(m_SecondaryMaxSat);
dashboardPacker.AddI32(m_SecondaryMaxLum);
*/
dashboardPacker.AddU16(120); // joystick 1 buttons
dashboardPacker.AddU16(121); // joystick 2 buttons
dashboardPacker.AddU16(122); // joystick 3 buttons
dashboardPacker.AddU8('*');
dashboardPacker.AddU8('^');
dashboardPacker.AddFloat(123); // Right Drive Motor 1 Position
//dashboardPacker.AddFloat(42.54);
dashboardPacker.AddU8('^');
dashboardPacker.AddU8('*');
//dashboardPacker.AddFloat(); // Elevator amps
/*
float m_elevator_amps;
//dashboardPacker.AddFloat();// launch amps
float m_launch_amps;
//dashboardPacker.AddFloat();// turret amps
float m_turret_amps;
//dashboardPacker.AddFloat();// left drive amps
float m_left_drive_amps;
//dashboardPacker.AddFloat();// right drive amps
float m_right_drive_amps;
//dashboardPacker.AddFloat();// harvester amps
float m_harvester_amps;
*/
dashboardPacker.AddFloat(124); // Left Drive Motor 1 Current
dashboardPacker.AddFloat(125); // Left Drive Motor 2 Current
dashboardPacker.AddFloat(126);// Right Drive Motor 1 Current
dashboardPacker.AddFloat(127);// Right Drive Motor 2 Current
dashboardPacker.AddFloat(128);// Kick Wench Current
dashboardPacker.AddFloat(129);// Lift Extd Current
// float m_PWM_Elevator;
// float m_PWM_Launch;
// float m_PWM_Turret;
// float m_PWM_Left_Drive;
// float m_PWM_Right_Drive;
// float m_PWM_Harvester_Drive;
//
/*
dashboardPacker.AddFloat(FrontLeftSpeed); // motors, see comment above // Left Drive Motor 1 Speed
dashboardPacker.AddFloat(RearLeftSpeed); // Left Drive Motor 2 Speed
dashboardPacker.AddFloat(FrontRightSpeed); // Right Drive Motor 1 Speed
dashboardPacker.AddFloat(RearRightSpeed); // Right Drive Motor 2 Speed
dashboardPacker.AddFloat(134); // Kick Wench Speed
dashboardPacker.AddFloat(135); // Lift Extd Speed
*/
dashboardPacker.AddU8(136); // elevator homing flag?
//dashboardPacker.AddU8(78758);
dashboardPacker.AddU8(137); // elevator cycling flag?
dashboardPacker.AddU8(138); // elevator home switch?
// Output all of the joystick data, each one at a time.
for (int i = 0; i < 3; i++)
{
dashboardPacker.AddFloat(139); // Joystick X Axis
dashboardPacker.AddFloat(140); // Joystick Y Axis
dashboardPacker.AddFloat(141); // Joystick Z Axis
dashboardPacker.AddU32(142); // Joystick Buttons
}
dashboardPacker.AddU32(143); // operating mode ?
dashboardPacker.AddU32(144); // m service mode ?
dashboardPacker.AddU32(145); // autonomous program ?
dashboardPacker.AddI32(146); // Gyro Ultrasonic raw data
// dashboardPacker.AddI32(m_LeftFollowerWheel);
// dashboardPacker.AddI32(m_RightFollowerWheel);
// Flush the data to the driver station.
dashboardPacker.Finalize();
}