Mapper feature

command messageolympe.messages.mapper.grab(buttons, axes, _timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Grab

Grabbed buttons are sent to the app and are not handled by the mapper

Parameters:
  • buttons (u32) – Buttons to grab/ungrab (bitfield)
  • axes (u32) – Axes to grab/ungrab (bitfield)
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: The mapper will send a grab_state() command

Expectations: grab_state(buttons=self.buttons, axes=self.axes, _policy='wait')

event messageolympe.messages.mapper.grab_state(buttons=None, axes=None, buttons_state=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Grab_state

Grabbed buttons are sent to the app and are not handled by the mapper

Parameters:
  • buttons (u32) – Grabbed buttons (bitfield)
  • axes (u32) – Grabbed axes (bitfield)
  • buttons_state (u32) – For grabbed buttons only. State of the button when the grab starts (bitfield)
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered by a grab() command

event messageolympe.messages.mapper.grab_button_event(button=None, event=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Grab_button_event

The state of a grabbed button changes

Parameters:
  • button (u32) – Button id
  • event (olympe.enums.mapper.button_event) –
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered when a grabbed button is pressed/released

event messageolympe.messages.mapper.grab_axis_event(axis=None, value=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Grab_axis_event

The state of a grabbed axis changes

Parameters:
  • axis (u32) – Axis id
  • value (i8) – Value in range [-100; 100].
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered when the value of a grabbed axis changes

command messageolympe.messages.mapper.map_button_action(product, action, buttons, _timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Map_button_action

An action can only be mapped to one button set. Each action can be mapped to different buttons for different products.

Parameters:
  • product (u16) – Product (see libARDiscovery for list)
  • action (olympe.enums.mapper.button_action) –
  • buttons (u32) – Buttons combination mapped to the action (bitfield). Set 0 (no button) to unmap an action
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: The mapper will send button_mapping_item() and axis_mapping_item() according to the request.

Expectations: button_mapping_item(_policy='wait') & axis_mapping_item(_policy='wait')

command messageolympe.messages.mapper.map_axis_action(product, action, axis, buttons, _timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Map_axis_action

An action can only be mapped to one axis/button set. Each action can be mapped to different axes/buttons for different products.

Parameters:
  • product (u16) – Product (see libARDiscovery for list)
  • action (olympe.enums.mapper.axis_action) –
  • axis (i32) – The axis number on which the action will be mapped. Set a negative value to unmap the action.
  • buttons (u32) – Buttons combination mapped to the action (bitfield). Can be zero if no buttons are required.
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: The mapper will send button_mapping_item() and axis_mapping_item() according to the request.

Expectations: button_mapping_item(product=self.product, action=self.action, buttons=self.buttons, _policy='wait') & axis_mapping_item(product=self.product, action=self.action, buttons=self.buttons, _policy='wait')

event messageolympe.messages.mapper.button_mapping_item(uid=None, product=None, action=None, buttons=None, list_flags=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Button_mapping_item

The resulting map describes all active button mappings of the mapper. Each action can only be mapped once per product.

Parameters:
  • uid (u32) – Unique ID of the mapping.
  • product (u16) – Product (see libARDiscovery for list)
  • action (olympe.enums.mapper.button_action) –
  • buttons (u32) – Buttons combination mapped to the action (bitfield).
  • list_flags (BitfieldOf(olympe.enums.mapper.list_flags, u8)) –
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered by a map_button_action() or a map_axis_action() command

event messageolympe.messages.mapper.axis_mapping_item(uid=None, product=None, action=None, axis=None, buttons=None, list_flags=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Axis_mapping_item

The resulting map describes all active axis mappings of the mapper. Each action can only be mapped once per product.

Parameters:
  • uid (u32) – Unique ID of the mapping.
  • product (u16) – Product (see libARDiscovery for list)
  • action (olympe.enums.mapper.axis_action) –
  • axis (i32) – The axis number on which the action is mapped.
  • buttons (u32) – Buttons combination mapped to the action (bitfield).
  • list_flags (BitfieldOf(olympe.enums.mapper.list_flags, u8)) –
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered by a map_button_action() or a map_axis_action() command

event messageolympe.messages.mapper.application_axis_event(action=None, value=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Application_axis_event

This event signals the controller application when an application specific axis_event is triggered. Application specific actions are typically used for UI interaction which does not involves the drone.

Parameters:
  • action (olympe.enums.mapper.axis_action) –
  • value (i8) – The current value of the axis.
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered when any axis action set to application_action is triggered.

event messageolympe.messages.mapper.application_button_event(action=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Application_button_event

This event signals the controller application when an application specific button_event is triggered. Application specific actions are typically used for UI interaction which does not involves the drone.

Parameters:
  • action (olympe.enums.mapper.button_action) –
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered when any button action set to application_action is triggered.

command messageolympe.messages.mapper.reset_mapping(product, _timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Reset_mapping

Resets the mappings, axis exponential parameters, and axis inversion for the given product. If the product is given as 0 (zero), the all products are reset.

Parameters:
  • product (u16) – The product to reset, or 0 to reset all products.
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: The mapper will send button_mapping_item(), axis_mapping_item(), expo_map_item() and inverted_map_item() according to the request.

command messageolympe.messages.mapper.set_expo(product, axis, expo, _timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Set_expo

By default, each axis can have a different expo value. For some products/mappings configuration, the expo values of two axes belonging to the same physical joystick can be locked to the same value. In this case, setting the value for one axis will automatically change both values.

Parameters:
  • product (u16) – Product (see libARDiscovery for list). Set to 0 to apply to all products
  • axis (i32) – Axis number. Set to -1 to apply to all axes.
  • expo (olympe.enums.mapper.expo_type) –
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: The mapper will send expo_map_item()

Expectations: expo_map_item(_policy='wait')

event messageolympe.messages.mapper.expo_map_item(uid=None, product=None, axis=None, expo=None, list_flags=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Expo_map_item

By default, each axis can have a different expo value. For some products/mappings configuration, the expo values of two axes belonging to the same physical joystick can be locked to the same value. In this case, setting the value for one axis will automatically change both values.

Parameters:
  • uid (u32) – Unique ID (for MAP_ITEM type)
  • product (u16) – Product (see libARDiscovery for list)
  • axis (i32) – Axis number
  • expo (olympe.enums.mapper.expo_type) –
  • list_flags (BitfieldOf(olympe.enums.mapper.list_flags, u8)) –
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered by a set_expo() command

command messageolympe.messages.mapper.set_inverted(product, axis, inverted, _timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Set_inverted

Axis inversion has no effect on grabbed axes, nor on virtual buttons that might be generated from axes.

Parameters:
  • product (u16) – Product (see libARDiscovery for list). Set to 0 to apply to all products
  • axis (i32) – Axis number
  • inverted (u8) – 0 : Axis not inverted. 1 : Axis inverted
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: The mapper will send inverted_map_item()

Expectations: inverted_map_item(_policy='wait')

event messageolympe.messages.mapper.inverted_map_item(uid=None, product=None, axis=None, inverted=None, list_flags=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Inverted_map_item

Axis inversion has no effect on grabbed axes, nor on virtual buttons that might be generated from axes.

Parameters:
  • uid (u32) – Unique ID (for MAP_ITEM type)
  • product (u16) – Product (see libARDiscovery for list)
  • axis (i32) – Axis number
  • inverted (u8) – 0 : Axis not inverted. 1 : Axis inverted
  • list_flags (BitfieldOf(olympe.enums.mapper.list_flags, u8)) –
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered by a set_inverted() command

event messageolympe.messages.mapper.active_product(product=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Active_product

This event notifies the application about the currently active product, thus allowing the application to diplay and edit the current mapping without having to guess from other sources.

Parameters:
  • product (u16) – Product (see libARDiscovery for list)
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered when the active product changes

command messageolympe.messages.mapper.enter_volatile_mapping(_timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Enter_volatile_mapping

All mappings in this mode will disappear when exit will be called or when device is unplugged.

Parameters:
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: Event volatile_mapping_state()

Expectations: volatile_mapping_state(active=1, _policy='wait')

command messageolympe.messages.mapper.exit_volatile_mapping(_timeout=10, _no_expect=False, _float_tol=(1e-07, 1e-09))

Mapper.Exit_volatile_mapping

Destroy volatile mapping. Any current action is canceled, for example PCMD will become null even if PCMD axis are pushed, the user has to release the axis to recover PCMD control.

Parameters:
  • _timeout (int) – command message timeout (defaults to 10)
  • _no_expect (bool) – if True for,do not expect the usual command expectation (defaults to False)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Result: Event volatile_mapping_state()

Expectations: volatile_mapping_state(active=0, _policy='wait')

event messageolympe.messages.mapper.volatile_mapping_state(active=None, _policy='check_wait', _float_tol=(1e-07, 1e-09))

Mapper.Volatile_mapping_state

Volatile mapping state

Parameters:
  • active (u8) – 0 : Volatile mapping is not active. 1 : Volatile mapping is active.
  • _policy (olympe.arsdkng.expectations.ExpectPolicy) – specify how to check the expectation. Possible values are ‘check’, ‘wait’ and ‘check_wait’ (defaults to ‘check_wait’)
  • _float_tol (tuple) – specify the float comparison tolerance, a 2-tuple containing a relative tolerance float value and an absolute tolerate float value (default to (1e-07, 1e-09)). See python 3 stdlib math.isclose documentation for more information

Triggered During connection, by enter_volatile_mapping() and exit_volatile_mapping()

enumolympe.enums.mapper.button_action

The action (mapped on a button)

app_0:Action handled by the application (0)
app_1:Action handled by the application (1)
app_2:Action handled by the application (2)
app_3:Action handled by the application (3)
app_4:Action handled by the application (4)
app_5:Action handled by the application (5)
app_6:Action handled by the application (6)
app_7:Action handled by the application (7)
app_8:Action handled by the application (8)
app_9:Action handled by the application (9)
app_10:Action handled by the application (10)
app_11:Action handled by the application (11)
app_12:Action handled by the application (12)
app_13:Action handled by the application (13)
app_14:Action handled by the application (14)
app_15:Action handled by the application (15)
return_home:Return to home (16)
takeoff_land:Take off or land (17)
video_record:Start/stop video record (18)
take_picture:Take a picture (19)
camera_exposition_inc:
 Increment camera exposition (20)
camera_exposition_dec:
 Decrement camera exposition (21)
flip_left:Flip left (22)
flip_right:Flip right (23)
flip_front:Flip front (24)
flip_back:Flip back (25)
emergency:Emergency motors shutdown (26)
center_camera:Reset camera to its default position (27)
cycle_hud:Cycle between different hud configurations on HDMI (Skycontroller 1 only) (28)
camera_auto:In picture mode: take a picture In record mode: start/stop record (29)
enumolympe.enums.mapper.axis_action

The action (mapped on an axis)

app_0:Action handled by the application (0)
app_1:Action handled by the application (1)
app_2:Action handled by the application (2)
app_3:Action handled by the application (3)
app_4:Action handled by the application (4)
app_5:Action handled by the application (5)
app_6:Action handled by the application (6)
app_7:Action handled by the application (7)
app_8:Action handled by the application (8)
app_9:Action handled by the application (9)
app_10:Action handled by the application (10)
app_11:Action handled by the application (11)
app_12:Action handled by the application (12)
app_13:Action handled by the application (13)
app_14:Action handled by the application (14)
app_15:Action handled by the application (15)
roll:roll (16)
pitch:pitch (17)
yaw:yaw (18)
gaz:gaz (19)
camera_pan:camera pan (20)
camera_tilt:camera tilt (21)
camera_zoom:camera zoom (22)
enumolympe.enums.mapper.button_event

Button event

release:button released (0)
press:button pressed (1)
enumolympe.enums.mapper.expo_type

Expo type

linear:No expo applied, axis is linear (0)
expo_0:Light exponential curve (1)
expo_1:Medium exponential curve (2)
expo_2:Heavy exponential curve (3)
expo_4:Maximum exponential curve (4)
enumolympe.enums.mapper.list_flags

Arsdk built-in “list_flags” enum that is used to in “LIST_ITEM” event messages

First: Arsdk built-in “list_flags” enum that is used to in “LIST_ITEM” event messages (0)
Last: Arsdk built-in “list_flags” enum that is used to in “LIST_ITEM” event messages (1)
Empty: Arsdk built-in “list_flags” enum that is used to in “LIST_ITEM” event messages (2)
Remove: Arsdk built-in “list_flags” enum that is used to in “LIST_ITEM” event messages (3)