debugging guide lights - also fixed no shooter jags option. Works well on single target, not well on multiple targets
1 #include "DashboardDataFormat.h"
4 DashboardDataFormat::DashboardDataFormat(void)
6 analogModule1 = AnalogModule::GetInstance(1);
7 analogModule2 = AnalogModule::GetInstance(2);
8 digitalModule1 = DigitalModule::GetInstance(1);
9 digitalModule2 = DigitalModule::GetInstance(2);
12 DashboardDataFormat::~DashboardDataFormat()
16 void DashboardDataFormat::SendVisionData(
17 vector<ParticleAnalysisReport> *particles,
21 DriverStation::GetInstance()->GetHighPriorityDashboardPacker();
23 // Vision target Info.
25 dash.AddCluster(); //Begin: Target Info
29 // Loop through all particles, but stop after you send 4
31 for (unsigned i = 0; i < particles->size() && targetsSent < 4; i++)
33 ParticleAnalysisReport *p = &(particles->at(i));
34 float aspectRatio = p->boundingRect.width/
35 p->boundingRect.height;
37 if (aspectRatio >= MINIMUM_TARGET_ASPECT_RATIO &&
38 aspectRatio <= MAXIMUM_TARGET_ASPECT_RATIO)
41 dash.AddCluster(); // Begin: Target Rect
44 // The dashboard will select color based on this bool
46 dash.AddBoolean(i == currIdx);
47 dash.AddU16(p->boundingRect.left);
48 dash.AddU16(p->boundingRect.top);
49 dash.AddU16(p->boundingRect.left +
50 p->boundingRect.width);
51 dash.AddU16(p->boundingRect.top +
52 p->boundingRect.height);
54 dash.FinalizeCluster(); // End: Target Rect
59 // If we have less than 4 targets, we need to send null info for
62 while (targetsSent < 4)
65 dash.AddCluster(); // Begin: Target Rect
71 dash.AddBoolean(false);
73 dash.FinalizeCluster(); // End: Target Rect
76 dash.FinalizeCluster(); //End: Target Info
80 void DashboardDataFormat::SendIOPortData()
83 DriverStation::GetInstance()->GetLowPriorityDashboardPacker();
90 if (analogModule1 != NULL)
92 for (int i = 1; i <= 8; i++)
95 (float) analogModule1->GetAverageVoltage(i));
100 for (int i = 1; i <= 8; i++)
106 dash.FinalizeCluster();
109 if (analogModule2 != NULL)
111 for (int i = 1; i <= 8; i++)
114 (float) analogModule2->GetAverageVoltage(i));
119 for (int i = 1; i <= 8; i++)
125 dash.FinalizeCluster();
127 dash.FinalizeCluster();
133 if (digitalModule1 != NULL)
135 dash.AddU8(digitalModule1->GetRelayForward());
136 dash.AddU8(digitalModule1->GetRelayReverse());
137 dash.AddU16((short) digitalModule1->GetDIO());
138 dash.AddU16((short) digitalModule1->GetDIODirection());
141 for (int i = 1; i <= 10; i++)
144 (unsigned char) digitalModule1->GetPWM(
148 dash.FinalizeCluster();
158 for (int i = 1; i <= 10; i++)
161 dash.FinalizeCluster();
164 dash.FinalizeCluster();
168 if (digitalModule2 != NULL)
170 dash.AddU8(digitalModule2->GetRelayForward());
171 dash.AddU8(digitalModule2->GetRelayForward());
172 dash.AddU16((short) digitalModule2->GetDIO());
173 dash.AddU16(digitalModule2->GetDIODirection());
176 for (int i = 1; i <= 10; i++)
179 (unsigned char) digitalModule2->GetPWM(
183 dash.FinalizeCluster();
193 for (int i = 1; i <= 10; i++)
196 dash.FinalizeCluster();
199 dash.FinalizeCluster();
201 dash.FinalizeCluster();
203 // Can't read solenoids without an instance of the object
204 dash.AddU8((char) 0);
206 dash.FinalizeCluster();