TauLabs / TauLabs

taulabs.org
Other
456 stars 392 forks source link

Cannot force update of multi-instance object #973

Open kubark42 opened 11 years ago

kubark42 commented 11 years ago

When the flight controller has instances that are not registered in GCS, there is no way to force the update.

Steps to reproduce:

1) Set waypoint metadata to throttled. 2) Create several waypoints. 3) Upload via path planner gadget 4) Restart GCS 5) Click Request and/or Save buttons in UAVO browser 6) Observe that the number of instances stays at the previous value.

I have created a UAVO on the FC to ensure that the instances are being properly made. The FC has registered the extra instances, but GCS is not fetching them.

Changing the update mode to periodic instantly fetches all the instances.

Expected behavior: UAVOBrowser Request and Save buttons should fetch all instances.

peabody124 commented 11 years ago

What happens if the fc changes the object while connected via USB?

Also can you check the UAV talk spec - specifically the obj-req message if it has an instance field?

kubark42 commented 11 years ago

This was connected over USB.

Requesting all instances is supported in the code: https://github.com/TauLabs/TauLabs/blob/next/ground/gcs/src/plugins/uavtalk/uavtalk.cpp#L768. ALL_INSTANCES is 0xFFFF and this case is handled on the flight side.

I poked around a bit with the UDPMirror and Wireshark. While I saw many other messages, I did not see any 0x3C 0x21 messages. This is odd, since ihttps://github.com/TauLabs/TauLabs/blob/next/ground/gcs/src/plugins/uavtalk/uavtalk.cpp#L816 should be generating them.