File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed
Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ from droneapi .lib import VehicleMode
2+ from pymavlink import mavutil
3+ import time
4+ import sys
5+ import os
6+
7+ def test_110 (local_connect ):
8+ api = local_connect ()
9+ v = api .get_vehicles ()[0 ]
10+
11+ # Change the vehicle into STABILIZE mode
12+ v .mode = VehicleMode ("STABILIZE" )
13+
14+ # NOTE wait crudely for ACK on mode update
15+ time .sleep (3 )
16+
17+ # Define example callback for mode
18+ allow_callback = True
19+ bad_call = [False ]
20+ def armed_callback (attribute ):
21+ if not allow_callback :
22+ bad_call [0 ] = True
23+
24+ # Only one of the same observer fn should be added.
25+ v .add_attribute_observer ('armed' , armed_callback )
26+ v .add_attribute_observer ('armed' , armed_callback )
27+ v .add_attribute_observer ('armed' , armed_callback )
28+ v .add_attribute_observer ('armed' , armed_callback )
29+ allow_callback = True
30+
31+ # Disarm and see update.
32+ v .armed = False
33+ v .flush ()
34+
35+ time .sleep (3 )
36+
37+ # Rmove (all) observers.
38+ v .remove_attribute_observer ('armed' , armed_callback )
39+ v .remove_attribute_observer ('armed' , armed_callback )
40+ allow_callback = False
41+
42+ # Re-arm and see update.
43+ v .armed = True
44+ v .flush ()
45+
46+ time .sleep (3 )
47+
48+ # Make sure no bad calls happened.
49+ assert not bad_call [0 ], "Callback should not have been called once removed."
You can’t perform that action at this time.
0 commit comments