|
83 | 83 | #include "config/config_eeprom.h"
|
84 | 84 | #include "config/feature.h"
|
85 | 85 |
|
| 86 | +#include "io/adsb.h" |
86 | 87 | #include "io/asyncfatfs/asyncfatfs.h"
|
87 | 88 | #include "io/flashfs.h"
|
88 | 89 | #include "io/gps.h"
|
@@ -948,6 +949,33 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
|
948 | 949 | sbufWriteU16(dst, gpsSol.epv);
|
949 | 950 | break;
|
950 | 951 | #endif
|
| 952 | + case MSP2_ADSB_VEHICLE_LIST: |
| 953 | +#ifdef USE_ADSB |
| 954 | + sbufWriteU8(dst, MAX_ADSB_VEHICLES); |
| 955 | + sbufWriteU8(dst, ADSB_CALL_SIGN_MAX_LENGTH); |
| 956 | + |
| 957 | + for(uint8_t i = 0; i < MAX_ADSB_VEHICLES; i++){ |
| 958 | + |
| 959 | + adsbVehicle_t *adsbVehicle = findVehicle(i); |
| 960 | + |
| 961 | + for(uint8_t ii = 0; ii < ADSB_CALL_SIGN_MAX_LENGTH; ii++){ |
| 962 | + sbufWriteU8(dst, adsbVehicle->vehicleValues.callsign[ii]); |
| 963 | + } |
| 964 | + |
| 965 | + sbufWriteU32(dst, adsbVehicle->vehicleValues.icao); |
| 966 | + sbufWriteU32(dst, adsbVehicle->vehicleValues.lat); |
| 967 | + sbufWriteU32(dst, adsbVehicle->vehicleValues.lon); |
| 968 | + sbufWriteU32(dst, adsbVehicle->vehicleValues.alt); |
| 969 | + sbufWriteU16(dst, (uint16_t)CENTIDEGREES_TO_DEGREES(adsbVehicle->vehicleValues.heading)); |
| 970 | + sbufWriteU8(dst, adsbVehicle->vehicleValues.tslc); |
| 971 | + sbufWriteU8(dst, adsbVehicle->vehicleValues.emitterType); |
| 972 | + sbufWriteU8(dst, adsbVehicle->ttl); |
| 973 | + } |
| 974 | +#else |
| 975 | + sbufWriteU8(dst, 0); |
| 976 | + sbufWriteU8(dst, 0); |
| 977 | +#endif |
| 978 | + break; |
951 | 979 | case MSP_DEBUG:
|
952 | 980 | // output some useful QA statistics
|
953 | 981 | // debug[x] = ((hse_value / 1000000) * 1000) + (SystemCoreClock / 1000000); // XX0YY [crystal clock : core clock]
|
@@ -1518,6 +1546,13 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
|
1518 | 1546 | #else
|
1519 | 1547 | sbufWriteU16(dst, 0);
|
1520 | 1548 | sbufWriteU16(dst, 0);
|
| 1549 | +#endif |
| 1550 | +#ifdef USE_ADSB |
| 1551 | + sbufWriteU16(dst, osdConfig()->adsb_distance_warning); |
| 1552 | + sbufWriteU16(dst, osdConfig()->adsb_distance_alert); |
| 1553 | +#else |
| 1554 | + sbufWriteU16(dst, 0); |
| 1555 | + sbufWriteU16(dst, 0); |
1521 | 1556 | #endif
|
1522 | 1557 | break;
|
1523 | 1558 |
|
|
0 commit comments