Merge branch 'ejordan376-master'

This commit is contained in:
Patrick Fairbank
2017-09-23 22:37:03 -07:00
5 changed files with 27 additions and 18 deletions

View File

@@ -34,6 +34,7 @@ type DriverStationConnection struct {
Enabled bool
Estop bool
DsLinked bool
RadioLinked bool
RobotLinked bool
BatteryVoltage float64
DsRobotTripTimeMs int
@@ -95,6 +96,7 @@ func (arena *Arena) listenForDsUdpPackets() {
dsConn.DsLinked = true
dsConn.lastPacketTime = time.Now()
dsConn.RadioLinked = data[3]&0x10 != 0
dsConn.RobotLinked = data[3]&0x20 != 0
if dsConn.RobotLinked {
dsConn.lastRobotLinkedTime = time.Now()
@@ -115,6 +117,7 @@ func (dsConn *DriverStationConnection) update(arena *Arena) error {
if time.Since(dsConn.lastPacketTime).Seconds() > driverStationUdpLinkTimeoutSec {
dsConn.DsLinked = false
dsConn.RadioLinked = false
dsConn.RobotLinked = false
dsConn.BatteryVoltage = 0
dsConn.MBpsToRobot = 0

View File

@@ -45,7 +45,7 @@ func NewTeamMatchLog(teamId int, match *model.Match) (*TeamMatchLog, error) {
// Adds a line to the log when a packet is received.
func (log *TeamMatchLog) LogDsPacket(matchTimeSec float64, packetType int, dsConn *DriverStationConnection) {
log.logger.Printf("%f,%d,%d,%s,%v,%v,%v,%v,%f,%d,%d", matchTimeSec, packetType, dsConn.TeamId,
dsConn.AllianceStation, dsConn.RobotLinked, dsConn.Auto, dsConn.Enabled, dsConn.Estop,
dsConn.AllianceStation, dsConn.RadioLinked, dsConn.RobotLinked, dsConn.Auto, dsConn.Enabled, dsConn.Estop,
dsConn.BatteryVoltage, dsConn.MissedPacketCount, dsConn.DsRobotTripTimeMs)
}

View File

@@ -46,7 +46,7 @@
.modal-large {
width: 60%;
}
.ds-status, .robot-status, .battery-status, .bypass-status, .bypass-status-fta, .trip-time, .packet-loss {
.ds-status, .radio-status, .robot-status, .battery-status, .bypass-status, .bypass-status-fta, .trip-time, .packet-loss {
background-color: #aaa;
color: #000;
border: 1px solid #999;

View File

@@ -20,6 +20,7 @@ var handleStatus = function(data) {
var dsConn = stationStatus.DsConn;
$("#status" + station + " .ds-status").attr("data-status-ok", dsConn.DsLinked);
$("#status" + station + " .ds-status").text(dsConn.MBpsToRobot.toFixed(1) + "/" + dsConn.MBpsFromRobot.toFixed(1));
$("#status" + station + " .radio-status").attr("data-status-ok", dsConn.RadioLinked);
$("#status" + station + " .robot-status").attr("data-status-ok", dsConn.RobotLinked);
if (stationStatus.DsConn.SecondsSinceLastRobotLink > 1 && stationStatus.DsConn.SecondsSinceLastRobotLink < 1000) {
$("#status" + station + " .robot-status").text(stationStatus.DsConn.SecondsSinceLastRobotLink.toFixed());
@@ -40,6 +41,8 @@ var handleStatus = function(data) {
} else {
$("#status" + station + " .ds-status").attr("data-status-ok", "");
$("#status" + station + " .ds-status").text("");
$("#status" + station + " .radio-status").attr("data-status-ok", "");
$("#status" + station + " .radio-status").text("");
$("#status" + station + " .robot-status").attr("data-status-ok", "");
$("#status" + station + " .robot-status").text("");
$("#status" + station + " .battery-status").attr("data-status-ok", "");

View File

@@ -9,11 +9,27 @@
<div class="row">
<div class="col-lg-12">
<div class="row text-center">
<div class="col-lg-6 well well-darkblue">
<div class="col-lg-6 well well-darkred">
<div class="row form-group">
<div class="col-xs-3">Red Teams</div>
<div class="col-xs-1" data-toggle="tooltip" title="Driver Station (Tx/Rx MB/s)">DS</div>
<div class="col-xs-1" data-toggle="tooltip" title="Radio Status">Rad</div>
<div class="col-xs-1" data-toggle="tooltip" title="Robot Status/Time Since Last Link">Rio</div>
<div class="col-xs-1" data-toggle="tooltip" title="Battery">Bat</div>
<div class="col-xs-1" data-toggle="tooltip" title="Bypassed/Disabled">Byp</div>
<div class="col-xs-2" data-toggle="tooltip" title="Average Trip Time">Trip Time</div>
<div class="col-xs-2" data-toggle="tooltip" title="Packet Loss">Lost Pack</div>
</div>
{{template "ftaTeam" dict "color" "R" "position" 1 "data" .}}
{{template "ftaTeam" dict "color" "R" "position" 2 "data" .}}
{{template "ftaTeam" dict "color" "R" "position" 3 "data" .}}
</div>
<div class="col-lg-6 well well-darkblue">
<div class="row form-group hidden-xs">
<div class="col-xs-3">Blue Teams</div>
<div class="col-xs-1" data-toggle="tooltip" title="Driver Station (Tx/Rx MB/s)">DS</div>
<div class="col-xs-1" data-toggle="tooltip" title="Robot Status/Time Since Last Link">R</div>
<div class="col-xs-1" data-toggle="tooltip" title="Radio Status">Rad</div>
<div class="col-xs-1" data-toggle="tooltip" title="Robot Status/Time Since Last Link">Rio</div>
<div class="col-xs-1" data-toggle="tooltip" title="Battery">Bat</div>
<div class="col-xs-1" data-toggle="tooltip" title="Bypassed/Disabled">Byp</div>
<div class="col-xs-2" data-toggle="tooltip" title="Average Trip Time">Trip Time</div>
@@ -23,20 +39,6 @@
{{template "ftaTeam" dict "color" "B" "position" 2 "data" .}}
{{template "ftaTeam" dict "color" "B" "position" 3 "data" .}}
</div>
<div class="col-lg-6 well well-darkred">
<div class="row form-group hidden-xs">
<div class="col-xs-3">Red Teams</div>
<div class="col-xs-1" data-toggle="tooltip" title="Driver Station (Tx/Rx MB/s)">DS</div>
<div class="col-xs-1" data-toggle="tooltip" title="Robot Status/Time Since Last Link">R</div>
<div class="col-xs-1" data-toggle="tooltip" title="Battery">Bat</div>
<div class="col-xs-1" data-toggle="tooltip" title="Bypassed/Disabled">Byp</div>
<div class="col-xs-2" data-toggle="tooltip" title="Average Trip Time">Trip Time</div>
<div class="col-xs-2" data-toggle="tooltip" title="Packet Loss">Lost Pack</div>
</div>
{{template "ftaTeam" dict "color" "R" "position" 3 "data" .}}
{{template "ftaTeam" dict "color" "R" "position" 2 "data" .}}
{{template "ftaTeam" dict "color" "R" "position" 1 "data" .}}
</div>
</div>
<br />
</div>
@@ -51,6 +53,7 @@
<div class="col-xs-1">{{.position}} </div>
<div class="col-xs-2"><div class="team"></div></div>
<div class="col-xs-1 col-no-padding"><div class="ds-status"></div></div>
<div class="col-xs-1 col-no-padding"><div class="radio-status"></div></div>
<div class="col-xs-1 col-no-padding"><div class="robot-status"></div></div>
<div class="col-xs-1 col-no-padding"><div class="battery-status"></div></div>
<div class="col-xs-1 col-no-padding"><div class="bypass-status-fta"></div></div>