Skip to content

Commit 0b01651

Browse files
committed
Support ADSB
1 parent a659b09 commit 0b01651

22 files changed

Lines changed: 221 additions & 1 deletion

_locales/en/messages.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3590,6 +3590,12 @@
35903590
"osdAlarmGFORCE_AXIS_MAX_HELP": {
35913591
"message": "The axes g force elements will start blinking when greater than this value"
35923592
},
3593+
"osdAlarmADSB_MAX_DISTANCE_WARNING": {
3594+
"message": "Distance in meters of ADSB aircraft that is displayed"
3595+
},
3596+
"osdAlarmADSB_MAX_DISTANCE_ALERT": {
3597+
"message": "Distance inside which ADSB data flashes for proximity warning"
3598+
},
35933599
"osd_current_alarm": {
35943600
"message": "Current (A)"
35953601
},
@@ -3629,6 +3635,12 @@
36293635
"osd_rssi_dbm_alarm": {
36303636
"message": "CRSF RSSI dBm Alarm"
36313637
},
3638+
"osd_adsb_distance_warning": {
3639+
"message": "ADSB distance warning"
3640+
},
3641+
"osd_adsb_distance_alert": {
3642+
"message": "ADSB distance alert"
3643+
},
36323644
"osd_rssi_dbm_alarm_HELP": {
36333645
"message": "RSSI indicator blinks below this value. Range: [-130,0]. Zero disables this alarm."
36343646
},

js/fc.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ var CONFIG,
2929
MOTOR_DATA,
3030
SERVO_DATA,
3131
GPS_DATA,
32+
ADSB_VEHICLES,
3233
MISSION_PLANNER,
3334
ANALOG,
3435
ARMING_CONFIG,
@@ -251,6 +252,12 @@ var FC = {
251252
packetCount: 0
252253
};
253254

255+
ADSB_VEHICLES = {
256+
vehiclesCount: 0,
257+
callsignLength: 0,
258+
vehicles: []
259+
};
260+
254261
MISSION_PLANNER = new WaypointCollection();
255262

256263
ANALOG = {

js/msp/MSPCodes.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,5 +245,7 @@ var MSPCodes = {
245245
MSP2_INAV_EZ_TUNE: 0x2070,
246246
MSP2_INAV_EZ_TUNE_SET: 0x2071,
247247

248-
MSP2_INAV_SELECT_MIXER_PROFILE: 0x2080
248+
MSP2_INAV_SELECT_MIXER_PROFILE: 0x2080,
249+
250+
MSP2_ADSB_VEHICLE_LIST: 0x2090,
249251
};

js/msp/MSPHelper.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,35 @@ var mspHelper = (function (gui) {
186186
GPS_DATA.eph = data.getUint16(16, true);
187187
GPS_DATA.epv = data.getUint16(18, true);
188188
break;
189+
case MSPCodes.MSP2_ADSB_VEHICLE_LIST:
190+
var byteOffsetCounter = 0;
191+
ADSB_VEHICLES.vehicles = [];
192+
ADSB_VEHICLES.vehiclesCount = data.getUint8(byteOffsetCounter++);
193+
ADSB_VEHICLES.callsignLength = data.getUint8(byteOffsetCounter++);
194+
195+
for(i = 0; i < ADSB_VEHICLES.vehiclesCount; i++){
196+
197+
var vehicle = {callSignByteArray: [], callsign: "", icao: 0, lat: 0, lon: 0, alt: 0, heading: 0, ttl: 0, tslc: 0, emitterType: 0};
198+
199+
for(ii = 0; ii < ADSB_VEHICLES.callsignLength; ii++){
200+
vehicle.callSignByteArray.push(data.getUint8(byteOffsetCounter++));
201+
}
202+
203+
vehicle.callsign = (String.fromCharCode(...vehicle.callSignByteArray)).replace(/[^\x20-\x7E]/g, '');
204+
vehicle.icao = data.getUint32(byteOffsetCounter, true); byteOffsetCounter += 4;
205+
vehicle.lat = data.getInt32(byteOffsetCounter, true); byteOffsetCounter += 4;
206+
vehicle.lon = data.getInt32(byteOffsetCounter, true); byteOffsetCounter += 4;
207+
vehicle.altCM = data.getInt32(byteOffsetCounter, true); byteOffsetCounter += 4;
208+
vehicle.headingDegrees = data.getUint16(byteOffsetCounter, true); byteOffsetCounter += 2;
209+
vehicle.tslc = data.getUint8(byteOffsetCounter++);
210+
vehicle.emitterType = data.getUint8(byteOffsetCounter++);
211+
vehicle.ttl = data.getUint8(byteOffsetCounter++);
212+
213+
ADSB_VEHICLES.vehicles.push(vehicle);
214+
}
215+
216+
break;
217+
189218
case MSPCodes.MSP_ATTITUDE:
190219
SENSOR_DATA.kinematics[0] = data.getInt16(0, true) / 10.0; // x
191220
SENSOR_DATA.kinematics[1] = data.getInt16(2, true) / 10.0; // y

resources/adsb/adsb_1.png

953 Bytes
Loading

resources/adsb/adsb_10.png

962 Bytes
Loading

resources/adsb/adsb_11.png

982 Bytes
Loading

resources/adsb/adsb_12.png

1.98 KB
Loading

resources/adsb/adsb_13.png

1.1 KB
Loading

resources/adsb/adsb_14.png

1.14 KB
Loading

0 commit comments

Comments
 (0)