kopia lustrzana https://github.com/cyoung/stratux
Merge pull request #490 from jamez70/UAT_Statistics
Added UAT statistics to the status pagepull/491/head
commit
f711e61a1f
|
@ -766,7 +766,20 @@ func registerADSBTextMessageReceived(msg string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var wm WeatherMessage
|
var wm WeatherMessage
|
||||||
|
|
||||||
|
if (x[0] == "METAR") || (x[0] == "SPECI") {
|
||||||
|
globalStatus.UAT_METAR_total++
|
||||||
|
}
|
||||||
|
if (x[0] == "TAF") || (x[0] == "TAF.AMD") {
|
||||||
|
globalStatus.UAT_TAF_total++
|
||||||
|
}
|
||||||
|
if x[0] == "WINDS" {
|
||||||
|
globalStatus.UAT_TAF_total++
|
||||||
|
}
|
||||||
|
if x[0] == "PIREP" {
|
||||||
|
globalStatus.UAT_PIREP_total++
|
||||||
|
}
|
||||||
|
|
||||||
wm.Type = x[0]
|
wm.Type = x[0]
|
||||||
wm.Location = x[1]
|
wm.Location = x[1]
|
||||||
wm.Time = x[2]
|
wm.Time = x[2]
|
||||||
|
@ -779,6 +792,29 @@ func registerADSBTextMessageReceived(msg string) {
|
||||||
weatherUpdate.Send(wmJSON)
|
weatherUpdate.Send(wmJSON)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UpdateUATStats(ProductID uint32) {
|
||||||
|
switch ProductID {
|
||||||
|
case 0,20:
|
||||||
|
globalStatus.UAT_METAR_total++
|
||||||
|
case 1,21:
|
||||||
|
globalStatus.UAT_TAF_total++
|
||||||
|
case 51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83:
|
||||||
|
globalStatus.UAT_NEXRAD_total++
|
||||||
|
// AIRMET and SIGMETS
|
||||||
|
case 2,3,4,6,11,12,22,23,24,26,254:
|
||||||
|
globalStatus.UAT_SIGMET_total++
|
||||||
|
case 5,25:
|
||||||
|
globalStatus.UAT_PIREP_total++
|
||||||
|
case 8:
|
||||||
|
globalStatus.UAT_NOTAM_total++
|
||||||
|
case 413:
|
||||||
|
// Do nothing in the case since text is recorded elsewhere
|
||||||
|
return
|
||||||
|
default:
|
||||||
|
globalStatus.UAT_OTHER_total++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func parseInput(buf string) ([]byte, uint16) {
|
func parseInput(buf string) ([]byte, uint16) {
|
||||||
//FIXME: We're ignoring all invalid format UAT messages (not sending to datalog).
|
//FIXME: We're ignoring all invalid format UAT messages (not sending to datalog).
|
||||||
x := strings.Split(buf, ";") // Discard everything after the first ';'.
|
x := strings.Split(buf, ";") // Discard everything after the first ';'.
|
||||||
|
@ -865,6 +901,7 @@ func parseInput(buf string) ([]byte, uint16) {
|
||||||
// Get all of the "product ids".
|
// Get all of the "product ids".
|
||||||
for _, f := range uatMsg.Frames {
|
for _, f := range uatMsg.Frames {
|
||||||
thisMsg.Products = append(thisMsg.Products, f.Product_id)
|
thisMsg.Products = append(thisMsg.Products, f.Product_id)
|
||||||
|
UpdateUATStats(f.Product_id)
|
||||||
}
|
}
|
||||||
// Get all of the text reports.
|
// Get all of the text reports.
|
||||||
textReports, _ := uatMsg.GetTextReports()
|
textReports, _ := uatMsg.GetTextReports()
|
||||||
|
@ -999,6 +1036,14 @@ type status struct {
|
||||||
NetworkDataMessagesSentNonqueueableLastSec uint64
|
NetworkDataMessagesSentNonqueueableLastSec uint64
|
||||||
NetworkDataBytesSentLastSec uint64
|
NetworkDataBytesSentLastSec uint64
|
||||||
NetworkDataBytesSentNonqueueableLastSec uint64
|
NetworkDataBytesSentNonqueueableLastSec uint64
|
||||||
|
UAT_METAR_total uint32
|
||||||
|
UAT_TAF_total uint32
|
||||||
|
UAT_NEXRAD_total uint32
|
||||||
|
UAT_SIGMET_total uint32
|
||||||
|
UAT_PIREP_total uint32
|
||||||
|
UAT_NOTAM_total uint32
|
||||||
|
UAT_OTHER_total uint32
|
||||||
|
|
||||||
Errors []string
|
Errors []string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,13 @@ function StatusCtrl($rootScope, $scope, $state, $http, $interval) {
|
||||||
$scope.GPS_solution = status.GPS_solution;
|
$scope.GPS_solution = status.GPS_solution;
|
||||||
$scope.GPS_position_accuracy = String(status.GPS_solution ? ", " + status.GPS_position_accuracy.toFixed(1) : "");
|
$scope.GPS_position_accuracy = String(status.GPS_solution ? ", " + status.GPS_position_accuracy.toFixed(1) : "");
|
||||||
$scope.RY835AI_connected = status.RY835AI_connected;
|
$scope.RY835AI_connected = status.RY835AI_connected;
|
||||||
|
$scope.UAT_METAR_total = status.UAT_METAR_total;
|
||||||
|
$scope.UAT_TAF_total = status.UAT_TAF_total;
|
||||||
|
$scope.UAT_NEXRAD_total = status.UAT_NEXRAD_total;
|
||||||
|
$scope.UAT_SIGMET_total = status.UAT_SIGMET_total;
|
||||||
|
$scope.UAT_PIREP_total = status.UAT_PIREP_total;
|
||||||
|
$scope.UAT_NOTAM_total = status.UAT_NOTAM_total;
|
||||||
|
$scope.UAT_OTHER_total = status.UAT_OTHER_total;
|
||||||
// Errors array.
|
// Errors array.
|
||||||
if (status.Errors.length > 0) {
|
if (status.Errors.length > 0) {
|
||||||
$scope.visible_errors = true;
|
$scope.visible_errors = true;
|
||||||
|
|
|
@ -89,7 +89,38 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row"><span class="col-xs-1"> </span></div>
|
<div class="row"><span class="col-xs-1"> </span></div>
|
||||||
<div class="separator"></div>
|
<div class="separator"></div>
|
||||||
|
<div class="row" ng-class="{'section_invisible': !visible_uat}">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<span><strong>UAT Statistics</strong></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row" ng-class="{'section_invisible': !visible_uat}">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<span align="center" class="col-xs-2">METARS</span>
|
||||||
|
<span align="center" class="col-xs-1">TAFS</span>
|
||||||
|
<span align="center" class="col-xs-2">NEXRAD</span>
|
||||||
|
<span align="center" class="col-xs-1">PIREP</span>
|
||||||
|
<span align="center" class="col-xs-2">SIGMET</span>
|
||||||
|
<span align="center" class="col-xs-2">NOTAMS</span>
|
||||||
|
<span align="center" class="col-xs-2">Other</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row" ng-class="{'section_invisible': !visible_uat}">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<span align="center" class="col-xs-2">{{UAT_METAR_total}}</span>
|
||||||
|
<span align="center" class="col-xs-1">{{UAT_TAF_total}}</span>
|
||||||
|
<span align="center" class="col-xs-2">{{UAT_NEXRAD_total}}</span>
|
||||||
|
<span align="center" class="col-xs-1">{{UAT_PIREP_total}}</span>
|
||||||
|
<span align="center" class="col-xs-2">{{UAT_SIGMET_total}}</span>
|
||||||
|
<span align="center" class="col-xs-2">{{UAT_NOTAM_total}}</span>
|
||||||
|
<span align="center" class="col-xs-2">{{UAT_OTHER_total}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="row" ng-class="{'section_invisible': !visible_uat}">
|
||||||
|
<div class="separator"></div>
|
||||||
|
<div class="row"><span class="col-xs-1"> </span></div>
|
||||||
|
<div class="separator"></div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-4 label_adj">
|
<div class="col-sm-4 label_adj">
|
||||||
<span class="col-xs-5"><strong>Uptime:</strong></span>
|
<span class="col-xs-5"><strong>Uptime:</strong></span>
|
||||||
|
|
Ładowanie…
Reference in New Issue