kopia lustrzana https://github.com/cyoung/stratux
Merge remote-tracking branch 'cyoung/master' into peeps
commit
57a1bd9c7c
|
@ -13,9 +13,6 @@ Raspberry Pi 2 with the Edimax EW-7811Un Wi-Fi dongle is supported but not recom
|
||||||
|
|
||||||
Tested and works well with most common R820T and R820T2 RTL-SDR devices.
|
Tested and works well with most common R820T and R820T2 RTL-SDR devices.
|
||||||
|
|
||||||
Tested with and preliminary support added for [uAvionix pingEFB dual-link ADS-B receiver](http://www.uavionix.com/products/pingefb/).
|
|
||||||
|
|
||||||
|
|
||||||
Apps with stratux recognition/support:
|
Apps with stratux recognition/support:
|
||||||
* Seattle Avionics FlyQ EFB 2.1.1+.
|
* Seattle Avionics FlyQ EFB 2.1.1+.
|
||||||
* AvNav EFB 2.0.0+.
|
* AvNav EFB 2.0.0+.
|
||||||
|
@ -31,10 +28,15 @@ Tested weather/traffic displays:
|
||||||
* ForeFlight 7+ - weather, traffic. AHRS not functional.
|
* ForeFlight 7+ - weather, traffic. AHRS not functional.
|
||||||
* Avare
|
* Avare
|
||||||
|
|
||||||
|
Dangerzone builds (AHRS display):
|
||||||
|
* ForeFlight 7+ - weather, traffic, AHRS.
|
||||||
|
|
||||||
Questions? [See the FAQ](https://github.com/cyoung/stratux/wiki/FAQ)
|
Questions? [See the FAQ](https://github.com/cyoung/stratux/wiki/FAQ)
|
||||||
|
|
||||||
http://stratux.me/
|
http://stratux.me/
|
||||||
|
|
||||||
|
http://slack.stratux.me/
|
||||||
|
|
||||||
https://www.reddit.com/r/stratux
|
https://www.reddit.com/r/stratux
|
||||||
|
|
||||||
Jet tests (high gain antennas):
|
Jet tests (high gain antennas):
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
auto lo
|
auto lo
|
||||||
|
|
||||||
iface lo inet loopback
|
iface lo inet loopback
|
||||||
|
|
||||||
|
allow-hotplug eth0
|
||||||
iface eth0 inet dhcp
|
iface eth0 inet dhcp
|
||||||
|
|
||||||
allow-hotplug wlan0
|
allow-hotplug wlan0
|
||||||
|
|
|
@ -108,6 +108,65 @@ var maxSignalStrength int
|
||||||
var stratuxBuild string
|
var stratuxBuild string
|
||||||
var stratuxVersion string
|
var stratuxVersion string
|
||||||
|
|
||||||
|
var product_name_map = map[int]string{
|
||||||
|
0: "METAR",
|
||||||
|
1: "TAF",
|
||||||
|
2: "SIGMET",
|
||||||
|
3: "Conv SIGMET",
|
||||||
|
4: "AIRMET",
|
||||||
|
5: "PIREP",
|
||||||
|
6: "Severe Wx",
|
||||||
|
7: "Winds Aloft",
|
||||||
|
8: "NOTAM", //"NOTAM (Including TFRs) and Service Status";
|
||||||
|
9: "D-ATIS", //"Aerodrome and Airspace – D-ATIS";
|
||||||
|
10: "Terminal Wx", //"Aerodrome and Airspace - TWIP";
|
||||||
|
11: "AIRMET", //"Aerodrome and Airspace - AIRMET";
|
||||||
|
12: "SIGMET", //"Aerodrome and Airspace - SIGMET/Convective SIGMET";
|
||||||
|
13: "SUA", //"Aerodrome and Airspace - SUA Status";
|
||||||
|
20: "METAR", //"METAR and SPECI";
|
||||||
|
21: "TAF", //"TAF and Amended TAF";
|
||||||
|
22: "SIGMET", //"SIGMET";
|
||||||
|
23: "Conv SIGMET", //"Convective SIGMET";
|
||||||
|
24: "AIRMET", //"AIRMET";
|
||||||
|
25: "PIREP", //"PIREP";
|
||||||
|
26: "Severe Wx", //"AWW";
|
||||||
|
27: "Winds Aloft", //"Winds and Temperatures Aloft";
|
||||||
|
51: "NEXRAD", //"National NEXRAD, Type 0 - 4 level";
|
||||||
|
52: "NEXRAD", //"National NEXRAD, Type 1 - 8 level (quasi 6-level VIP)";
|
||||||
|
53: "NEXRAD", //"National NEXRAD, Type 2 - 8 level";
|
||||||
|
54: "NEXRAD", //"National NEXRAD, Type 3 - 16 level";
|
||||||
|
55: "NEXRAD", //"Regional NEXRAD, Type 0 - low dynamic range";
|
||||||
|
56: "NEXRAD", //"Regional NEXRAD, Type 1 - 8 level (quasi 6-level VIP)";
|
||||||
|
57: "NEXRAD", //"Regional NEXRAD, Type 2 - 8 level";
|
||||||
|
58: "NEXRAD", //"Regional NEXRAD, Type 3 - 16 level";
|
||||||
|
59: "NEXRAD", //"Individual NEXRAD, Type 0 - low dynamic range";
|
||||||
|
60: "NEXRAD", //"Individual NEXRAD, Type 1 - 8 level (quasi 6-level VIP)";
|
||||||
|
61: "NEXRAD", //"Individual NEXRAD, Type 2 - 8 level";
|
||||||
|
62: "NEXRAD", //"Individual NEXRAD, Type 3 - 16 level";
|
||||||
|
63: "NEXRAD Regional", //"Global Block Representation - Regional NEXRAD, Type 4 – 8 level";
|
||||||
|
64: "NEXRAD CONUS", //"Global Block Representation - CONUS NEXRAD, Type 4 - 8 level";
|
||||||
|
81: "Tops", //"Radar echo tops graphic, scheme 1: 16-level";
|
||||||
|
82: "Tops", //"Radar echo tops graphic, scheme 2: 8-level";
|
||||||
|
83: "Tops", //"Storm tops and velocity";
|
||||||
|
101: "Lightning", //"Lightning strike type 1 (pixel level)";
|
||||||
|
102: "Lightning", //"Lightning strike type 2 (grid element level)";
|
||||||
|
151: "Lightning", //"Point phenomena, vector format";
|
||||||
|
201: "Surface", //"Surface conditions/winter precipitation graphic";
|
||||||
|
202: "Surface", //"Surface weather systems";
|
||||||
|
254: "G-AIRMET", //"AIRMET, SIGMET: Bitmap encoding";
|
||||||
|
351: "Time", //"System Time";
|
||||||
|
352: "Status", //"Operational Status";
|
||||||
|
353: "Status", //"Ground Station Status";
|
||||||
|
401: "Imagery", //"Generic Raster Scan Data Product APDU Payload Format Type 1";
|
||||||
|
402: "Text",
|
||||||
|
403: "Vector Imagery", //"Generic Vector Data Product APDU Payload Format Type 1";
|
||||||
|
404: "Symbols",
|
||||||
|
405: "Text",
|
||||||
|
411: "Text", //"Generic Textual Data Product APDU Payload Format Type 1";
|
||||||
|
412: "Symbols", //"Generic Symbolic Product APDU Payload Format Type 1";
|
||||||
|
413: "Text", //"Generic Textual Data Product APDU Payload Format Type 2";
|
||||||
|
}
|
||||||
|
|
||||||
// CRC16 table generated to use to work with GDL90 messages.
|
// CRC16 table generated to use to work with GDL90 messages.
|
||||||
var Crc16Table [256]uint16
|
var Crc16Table [256]uint16
|
||||||
|
|
||||||
|
@ -972,65 +1031,6 @@ func parseInput(buf string) ([]byte, uint16) {
|
||||||
return frame, msgtype
|
return frame, msgtype
|
||||||
}
|
}
|
||||||
|
|
||||||
var product_name_map = map[int]string{
|
|
||||||
0: "METAR",
|
|
||||||
1: "TAF",
|
|
||||||
2: "SIGMET",
|
|
||||||
3: "Conv SIGMET",
|
|
||||||
4: "AIRMET",
|
|
||||||
5: "PIREP",
|
|
||||||
6: "Severe Wx",
|
|
||||||
7: "Winds Aloft",
|
|
||||||
8: "NOTAM", //"NOTAM (Including TFRs) and Service Status";
|
|
||||||
9: "D-ATIS", //"Aerodrome and Airspace – D-ATIS";
|
|
||||||
10: "Terminal Wx", //"Aerodrome and Airspace - TWIP";
|
|
||||||
11: "AIRMET", //"Aerodrome and Airspace - AIRMET";
|
|
||||||
12: "SIGMET", //"Aerodrome and Airspace - SIGMET/Convective SIGMET";
|
|
||||||
13: "SUA", //"Aerodrome and Airspace - SUA Status";
|
|
||||||
20: "METAR", //"METAR and SPECI";
|
|
||||||
21: "TAF", //"TAF and Amended TAF";
|
|
||||||
22: "SIGMET", //"SIGMET";
|
|
||||||
23: "Conv SIGMET", //"Convective SIGMET";
|
|
||||||
24: "AIRMET", //"AIRMET";
|
|
||||||
25: "PIREP", //"PIREP";
|
|
||||||
26: "Severe Wx", //"AWW";
|
|
||||||
27: "Winds Aloft", //"Winds and Temperatures Aloft";
|
|
||||||
51: "NEXRAD", //"National NEXRAD, Type 0 - 4 level";
|
|
||||||
52: "NEXRAD", //"National NEXRAD, Type 1 - 8 level (quasi 6-level VIP)";
|
|
||||||
53: "NEXRAD", //"National NEXRAD, Type 2 - 8 level";
|
|
||||||
54: "NEXRAD", //"National NEXRAD, Type 3 - 16 level";
|
|
||||||
55: "NEXRAD", //"Regional NEXRAD, Type 0 - low dynamic range";
|
|
||||||
56: "NEXRAD", //"Regional NEXRAD, Type 1 - 8 level (quasi 6-level VIP)";
|
|
||||||
57: "NEXRAD", //"Regional NEXRAD, Type 2 - 8 level";
|
|
||||||
58: "NEXRAD", //"Regional NEXRAD, Type 3 - 16 level";
|
|
||||||
59: "NEXRAD", //"Individual NEXRAD, Type 0 - low dynamic range";
|
|
||||||
60: "NEXRAD", //"Individual NEXRAD, Type 1 - 8 level (quasi 6-level VIP)";
|
|
||||||
61: "NEXRAD", //"Individual NEXRAD, Type 2 - 8 level";
|
|
||||||
62: "NEXRAD", //"Individual NEXRAD, Type 3 - 16 level";
|
|
||||||
63: "NEXRAD Regional", //"Global Block Representation - Regional NEXRAD, Type 4 – 8 level";
|
|
||||||
64: "NEXRAD CONUS", //"Global Block Representation - CONUS NEXRAD, Type 4 - 8 level";
|
|
||||||
81: "Tops", //"Radar echo tops graphic, scheme 1: 16-level";
|
|
||||||
82: "Tops", //"Radar echo tops graphic, scheme 2: 8-level";
|
|
||||||
83: "Tops", //"Storm tops and velocity";
|
|
||||||
101: "Lightning", //"Lightning strike type 1 (pixel level)";
|
|
||||||
102: "Lightning", //"Lightning strike type 2 (grid element level)";
|
|
||||||
151: "Lightning", //"Point phenomena, vector format";
|
|
||||||
201: "Surface", //"Surface conditions/winter precipitation graphic";
|
|
||||||
202: "Surface", //"Surface weather systems";
|
|
||||||
254: "G-AIRMET", //"AIRMET, SIGMET: Bitmap encoding";
|
|
||||||
351: "Time", //"System Time";
|
|
||||||
352: "Status", //"Operational Status";
|
|
||||||
353: "Status", //"Ground Station Status";
|
|
||||||
401: "Imagery", //"Generic Raster Scan Data Product APDU Payload Format Type 1";
|
|
||||||
402: "Text",
|
|
||||||
403: "Vector Imagery", //"Generic Vector Data Product APDU Payload Format Type 1";
|
|
||||||
404: "Symbols",
|
|
||||||
405: "Text",
|
|
||||||
411: "Text", //"Generic Textual Data Product APDU Payload Format Type 1";
|
|
||||||
412: "Symbols", //"Generic Symbolic Product APDU Payload Format Type 1";
|
|
||||||
413: "Text", //"Generic Textual Data Product APDU Payload Format Type 2";
|
|
||||||
}
|
|
||||||
|
|
||||||
func getProductNameFromId(product_id int) string {
|
func getProductNameFromId(product_id int) string {
|
||||||
name, present := product_name_map[product_id]
|
name, present := product_name_map[product_id]
|
||||||
if present {
|
if present {
|
||||||
|
@ -1045,27 +1045,27 @@ func getProductNameFromId(product_id int) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
type settings struct {
|
type settings struct {
|
||||||
UAT_Enabled bool
|
UAT_Enabled bool
|
||||||
ES_Enabled bool
|
ES_Enabled bool
|
||||||
Ping_Enabled bool
|
Ping_Enabled bool
|
||||||
GPS_Enabled bool
|
GPS_Enabled bool
|
||||||
BMP_Sensor_Enabled bool
|
BMP_Sensor_Enabled bool
|
||||||
IMU_Sensor_Enabled bool
|
IMU_Sensor_Enabled bool
|
||||||
NetworkOutputs []networkConnection
|
NetworkOutputs []networkConnection
|
||||||
SerialOutputs map[string]serialConnection
|
SerialOutputs map[string]serialConnection
|
||||||
DisplayTrafficSource bool
|
DisplayTrafficSource bool
|
||||||
DEBUG bool
|
DEBUG bool
|
||||||
ReplayLog bool
|
ReplayLog bool
|
||||||
AHRSLog bool
|
AHRSLog bool
|
||||||
IMUMapping [2]int // Map from aircraft axis to sensor axis: accelerometer
|
IMUMapping [2]int // Map from aircraft axis to sensor axis: accelerometer
|
||||||
SensorQuaternion [4]float64 // Quaternion mapping from sensor frame to aircraft frame
|
SensorQuaternion [4]float64 // Quaternion mapping from sensor frame to aircraft frame
|
||||||
C, D [3]float64 // IMU Accel, Gyro zero bias
|
C, D [3]float64 // IMU Accel, Gyro zero bias
|
||||||
PPM int
|
PPM int
|
||||||
OwnshipModeS string
|
OwnshipModeS string
|
||||||
WatchList string
|
WatchList string
|
||||||
DeveloperMode bool
|
DeveloperMode bool
|
||||||
GLimits string
|
GLimits string
|
||||||
StaticIps []string
|
StaticIps []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type status struct {
|
type status struct {
|
||||||
|
|
|
@ -91,7 +91,7 @@ Stratux makes available a webserver to retrieve statistics which may be useful t
|
||||||
|
|
||||||
* `http://192.168.10.1/getStatus` - device status and statistics. Example output (commented JSON):
|
* `http://192.168.10.1/getStatus` - device status and statistics. Example output (commented JSON):
|
||||||
|
|
||||||
```json
|
```javascript
|
||||||
{
|
{
|
||||||
"Version": "v0.5b1", // Software version.
|
"Version": "v0.5b1", // Software version.
|
||||||
"Devices": 0, // Number of radios connected.
|
"Devices": 0, // Number of radios connected.
|
||||||
|
|
Ładowanie…
Reference in New Issue