Mistake in MAVlink documentation

It seems that there’s a mistake in MAVlink SET_MODE message description (or complementary error in Mission Planner and Ardupilot implementation). Custom_mode and target_system are swapped.

How are they swapped? target_system says The system setting the mode, which I can see as being ambiguous but not wrong, and base_mode says The new base mode which is correct.

Sorry. custom_mode and target_system swapped.

I investigated a crash and decoded messages manually and found that actual custom_mode is transmitted in target_system field. Then I checked a code and found that it works this way. I’m about byte sequence in message payload

Packets are packed in size order. 32bit elements are packed before 8 bit. The description is not wrong you are inferring the order from the documentation which isn’t the truth.

As Bill said you are seeing the field reordering, read here: http://qgroundcontrol.org/mavlink/crc_extra_calculation

Thanks for explanation.