ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.71k stars 17.17k forks source link

ADSB Ping heartbeat is not consumed so misconfiguration cannot be detected #4633

Open rmackay9 opened 8 years ago

rmackay9 commented 8 years ago

We do not consume any heartbeats from the uAvionix ADSB Ping sensor which means that we cannot detect a misconfiguration (i.e. incorrect baud rate). As it is, a misconfiguration will just appear as if there are no planes nearby.

We should consume the heartbeat and then if we are not receiving a heartbeat but the user has set the ADSB_ENABLE parameter to 1 we should report an sensor health in the SYS_STATUS message and trigger a pre-arm check.

magicrub commented 8 years ago

@jwuavionix would be a good person to talk to about this. I agree that adding a heartbeat is the way to go.

rmackay9 commented 4 years ago

I discussed this with @meee1 today and it seems that the Ping sensor is indeed sending a heartbeat now so we can technically implement this change now.

Pedals2Paddles commented 4 years ago

Do all ping sensors send a heartbeat? And have they always been sending it? Or were there older unis that don't have a heartbeat?

WickedShell commented 4 years ago

You get heartbeats from the hardware that is integrated into the Cube carrier boards, you do not get heartbeats from the standalone PingRx (at least the one I bought direct from them a month ago doesn't do it)

Pedals2Paddles commented 4 years ago

I was afraid of that. I don't get heartbeats from my PingRX (3 years old) either. So looks like a new parameter such as ADSB_HEARTBEAT will be needed to consume it selectively.

rmackay9 commented 4 years ago

we could probably re-use the ADSB_ENABLE parameter, do our regular trick of changing it to an ADSB_TYPE parameter.

Pedals2Paddles commented 4 years ago

That's even better. I happen to have an ADS-B carrier on a copter now, so perhaps I'll take a stab at this one at some point.

Pedals2Paddles commented 4 years ago

Attempting here but so far, no joy. https://github.com/ArduPilot/ardupilot/pull/13443