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)