blueye.sdk.utils - Blueye SDK

Skip to content

# Module blueye.sdk.utils

View Source

    import os

    import webbrowser

    from typing import Tuple

    import blueye.protocol as bp

    import proto

    from google.protobuf.any_pb2 import Any

    import blueye.sdk

    def open_local_documentation():

        """Open a pre-built local version of the SDK documentation

        Useful when you are connected to the drone wifi, and don't have access to the online version.

        """

        sdk_path = os.path.dirname(blueye.sdk.__file__)

        # The documentation is located next to the top-level package so we move up a couple of levels

        documentation_path = os.path.abspath(sdk_path + "/../../blueye.sdk_docs/index.html")

        webbrowser.open(documentation_path)

    def deserialize_any_to_message(msg: Any) -> Tuple[proto.message.MessageMeta, proto.message.Message]:

        """Deserialize a protobuf Any message to a concrete message type

        *Arguments*:

        * msg: The Any message to deserialize. Needs to be a message defined in the blueye.protocol

               package.

        *Returns*:

        * A tuple with the metatype and the deserialized message

        """

        payload_msg_name = msg.type_url.replace("type.googleapis.com/blueye.protocol.", "")

        payload_type = bp.__getattribute__(payload_msg_name)

        payload_msg_deserialized = payload_type.deserialize(msg.value)

        return (payload_type, payload_msg_deserialized)

## Functions

### deserialize_any_to_message

    def deserialize_any_to_message(
        msg: google.protobuf.any_pb2.Any
    ) -> Tuple[proto.message.MessageMeta, proto.message.Message]

Deserialize a protobuf Any message to a concrete message type

Arguments:

- msg: The Any message to deserialize. Needs to be a message defined in the blueye.protocol package.

Returns:

- A tuple with the metatype and the deserialized message

View Source

    def deserialize_any_to_message(msg: Any) -> Tuple[proto.message.MessageMeta, proto.message.Message]:

        """Deserialize a protobuf Any message to a concrete message type

        *Arguments*:

        * msg: The Any message to deserialize. Needs to be a message defined in the blueye.protocol

               package.

        *Returns*:

        * A tuple with the metatype and the deserialized message

        """

        payload_msg_name = msg.type_url.replace("type.googleapis.com/blueye.protocol.", "")

        payload_type = bp.__getattribute__(payload_msg_name)

        payload_msg_deserialized = payload_type.deserialize(msg.value)

        return (payload_type, payload_msg_deserialized)

### open_local_documentation

    def open_local_documentation(

    )

Open a pre-built local version of the SDK documentation

Useful when you are connected to the drone wifi, and don't have access to the online version.

View Source

    def open_local_documentation():

        """Open a pre-built local version of the SDK documentation

        Useful when you are connected to the drone wifi, and don't have access to the online version.

        """

        sdk_path = os.path.dirname(blueye.sdk.__file__)

        # The documentation is located next to the top-level package so we move up a couple of levels

        documentation_path = os.path.abspath(sdk_path + "/../../blueye.sdk_docs/index.html")

        webbrowser.open(documentation_path)