logo
  • Overview
  • Getting Started
  • Manual
  • Tutorials
  • License
  • Examples
  • Global Namespace
  • UgCS
  • namespace callback_internal
    • namespace callback_internal::Callback_forced_args_helper
  • namespace std
  • namespace ugcs
    • namespace ugcs::vsm
      • namespace ugcs::vsm::callback_internal
        • template struct ugcs::vsm::callback_internal::Callback_args_checker
        • template struct ugcs::vsm::callback_internal::Callback_args_checker<Callback, idx, Arg>
        • template struct ugcs::vsm::callback_internal::Callback_args_checker<Callback, 0>
        • template struct ugcs::vsm::callback_internal::Callback_args_checker<Callback, idx, Arg, Args…>
        • template class ugcs::vsm::callback_internal::Dummy_callback_helper
        • template class ugcs::vsm::callback_internal::Dummy_callback_helper<void, Args…>
      • namespace ugcs::vsm::internal
        • class ugcs::vsm::internal::Overlapped_io_controller
        • class ugcs::vsm::internal::Poll_io_controller
        • class ugcs::vsm::internal::Posix_file_handle
        • template class ugcs::vsm::internal::Shared_getter
        • template class ugcs::vsm::internal::Shared_getter<T, void>
        • template class ugcs::vsm::internal::Shared_getter<T, T>
        • template class ugcs::vsm::internal::Singleton_creator
        • template class ugcs::vsm::internal::Singleton_creator<T, typename std::enable_if<std::is_default_constructible<T>::value>::type>
        • class ugcs::vsm::internal::Windows_file_handle
      • namespace ugcs::vsm::java_internals
        • template struct ugcs::vsm::java_internals::MethodCallSelector
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jshort>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jint>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jlong>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jfloat>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jchar>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jboolean>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jbyte>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<void>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jobject>
        • template struct ugcs::vsm::java_internals::MethodCallSelector<jdouble>
        • template class ugcs::vsm::java_internals::Array<jobject>
        • template class ugcs::vsm::java_internals::Array
        • class ugcs::vsm::java_internals::ArrayBase
        • class ugcs::vsm::java_internals::ObjectArray
        • template class ugcs::vsm::java_internals::PrimitiveArray
      • namespace ugcs::vsm::mavlink
        • namespace ugcs::vsm::mavlink::internal
        • enum ugcs::vsm::mavlink::Field_type_id
        • template struct ugcs::vsm::mavlink::Field_default_value
        • template struct ugcs::vsm::mavlink::Field_default_value<T, typename std::enable_if<std::is_floating_point<T>::value>::type>
        • template struct ugcs::vsm::mavlink::Field_default_value<T, typename std::enable_if<std::is_integral<T>::value>::type>
        • template struct ugcs::vsm::mavlink::Payload_type_mapper
        • class ugcs::vsm::mavlink::Checksum
        • class ugcs::vsm::mavlink::Extension
        • template class ugcs::vsm::mavlink::Message
        • template class ugcs::vsm::mavlink::Payload
        • class ugcs::vsm::mavlink::Payload_base
        • template class ugcs::vsm::mavlink::Value
        • template class ugcs::vsm::mavlink::Value_array
        • template class ugcs::vsm::mavlink::Value_array<Char, size>
      • namespace ugcs::vsm::param_setter_internal
        • template class ugcs::vsm::param_setter_internal::Param_setter
      • namespace ugcs::vsm::sockets
      • enum ugcs::vsm::Io_result
      • enum ugcs::vsm::Run_as_service_result
      • struct ugcs::vsm::Altimeter_required_exception_dummy_struct
      • struct ugcs::vsm::Debug_assert_exception_dummy_struct
      • struct ugcs::vsm::Internal_error_exception_dummy_struct
      • struct ugcs::vsm::Invalid_op_exception_dummy_struct
      • struct ugcs::vsm::Invalid_param_exception_dummy_struct
      • struct ugcs::vsm::Nullptr_exception_dummy_struct
      • struct ugcs::vsm::System_exception_dummy_struct
      • struct ugcs::vsm::Ucs_info
      • class ugcs::vsm::Action
        • enum ugcs::vsm::Action::Type
        • struct ugcs::vsm::Action::Format_exception_dummy_struct
        • template struct ugcs::vsm::Action::Mapper<Action::Type::REPEAT_SERVO>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::POI>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::PAYLOAD_STEERING>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::PANORAMA>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::SET_HOME>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::TAKEOFF>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::SET_SERVO>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::TASK_ATTRIBUTES>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::VTOL_TRANSITION>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::MOVE>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::HEADING>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::CAMERA_CONTROL>
        • template struct ugcs::vsm::Action::Mapper
        • template struct ugcs::vsm::Action::Mapper<Action::Type::LANDING>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::CAMERA_SERIES_BY_DISTANCE>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::CAMERA_TRIGGER>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::CAMERA_SERIES_BY_TIME>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::CHANGE_SPEED>
        • template struct ugcs::vsm::Action::Mapper<Action::Type::WAIT>
      • class ugcs::vsm::Android_serial_processor
        • class ugcs::vsm::Android_serial_processor::Open_request
        • class ugcs::vsm::Android_serial_processor::Read_request
        • class ugcs::vsm::Android_serial_processor::Stream
        • class ugcs::vsm::Android_serial_processor::Stream_entry
        • class ugcs::vsm::Android_serial_processor::Write_request
      • template class ugcs::vsm::Bo_value
      • template class ugcs::vsm::Callback<Method, typename std::enable_if<callback_internal::Is_method_ptr<Method>()>::type, Class_ptr, Args…>
      • template class ugcs::vsm::Callback
      • template class ugcs::vsm::Callback_base
        • template class ugcs::vsm::Callback_base::Ptr
      • template class ugcs::vsm::Callback_forced_args
      • template class ugcs::vsm::Callback_proxy
        • class ugcs::vsm::Callback_proxy::Hasher
      • class ugcs::vsm::Camera_control_action
      • class ugcs::vsm::Camera_series_by_distance_action
      • class ugcs::vsm::Camera_series_by_time_action
      • class ugcs::vsm::Camera_trigger_action
      • class ugcs::vsm::Cartesian_tuple
      • class ugcs::vsm::Change_speed_action
      • class ugcs::vsm::Crc32
      • class ugcs::vsm::Cucs_processor
        • struct ugcs::vsm::Cucs_processor::Server_context
        • struct ugcs::vsm::Cucs_processor::Vehicle_context
      • template class ugcs::vsm::Derived_exception
      • class ugcs::vsm::Device
        • class ugcs::vsm::Device::Commit_scope
      • template class ugcs::vsm::Enum_set
      • class ugcs::vsm::Exception
        • struct ugcs::vsm::Exception::Va_args_overload
        • struct ugcs::vsm::Exception::Va_list_overload
      • class ugcs::vsm::File_processor
        • struct ugcs::vsm::File_processor::Already_exists_exception_dummy_struct
        • struct ugcs::vsm::File_processor::Exception_dummy_struct
        • struct ugcs::vsm::File_processor::Not_found_exception_dummy_struct
        • struct ugcs::vsm::File_processor::Permission_denied_exception_dummy_struct
        • class ugcs::vsm::File_processor::Native_controller
        • class ugcs::vsm::File_processor::Stream
      • class ugcs::vsm::Geodetic_tuple
      • class ugcs::vsm::Heading_action
      • class ugcs::vsm::Http_parser
        • struct ugcs::vsm::Http_parser::string_compare_ignore_case
      • class ugcs::vsm::Io_buffer
      • class ugcs::vsm::Io_request
      • class ugcs::vsm::Io_stream
        • enum ugcs::vsm::Io_stream::State
        • enum ugcs::vsm::Io_stream::Type
      • class ugcs::vsm::Java
        • class ugcs::vsm::Java::Env
      • class ugcs::vsm::Landing_action
      • class ugcs::vsm::Local_interface
      • class ugcs::vsm::Log
        • enum ugcs::vsm::Log::Level
        • struct ugcs::vsm::Log::Exception_dummy_struct
        • class ugcs::vsm::Log::Platform_logger
      • class ugcs::vsm::Mavlink_decoder
      • class ugcs::vsm::Mavlink_demuxer
        • struct ugcs::vsm::Mavlink_demuxer::Duplicate_handler_dummy_struct
        • template class ugcs::vsm::Mavlink_demuxer::Callback
        • class ugcs::vsm::Mavlink_demuxer::Callback_base
      • class ugcs::vsm::Mavlink_encoder
      • class ugcs::vsm::Mavlink_stream
      • class ugcs::vsm::Move_action
        • enum ugcs::vsm::Move_action::Turn_type
      • class ugcs::vsm::Operation_waiter
      • class ugcs::vsm::Panorama_action
      • template class ugcs::vsm::Param_exception
      • class ugcs::vsm::Payload_steering_action
      • class ugcs::vsm::Piped_request_waiter
      • class ugcs::vsm::Poi_action
      • template class ugcs::vsm::Position
      • class ugcs::vsm::Properties
        • struct ugcs::vsm::Properties::Exception_dummy_struct
        • struct ugcs::vsm::Properties::Not_convertible_exception_dummy_struct
        • struct ugcs::vsm::Properties::Not_found_exception_dummy_struct
        • struct ugcs::vsm::Properties::Parse_exception_dummy_struct
        • class ugcs::vsm::Properties::Iterator
        • class ugcs::vsm::Properties::Property
      • class ugcs::vsm::Property
        • enum ugcs::vsm::Property::Value_spec
        • enum ugcs::vsm::Property::Value_type
      • class ugcs::vsm::Property_list
      • class ugcs::vsm::Quaternion
      • class ugcs::vsm::Read_request
      • template class ugcs::vsm::Reference_guard
        • class ugcs::vsm::Reference_guard::Hasher
      • class ugcs::vsm::Repeat_servo_action
      • class ugcs::vsm::Request_container
        • enum ugcs::vsm::Request_container::Type
        • class ugcs::vsm::Request_container::Request
        • class ugcs::vsm::Request_container::Request_waiter
      • template class ugcs::vsm::Request_context
      • class ugcs::vsm::Request_temp_completion_context
      • class ugcs::vsm::Request_worker
      • class ugcs::vsm::Serial_processor
        • class ugcs::vsm::Serial_processor::Stream
      • class ugcs::vsm::Service_discovery_processor
      • class ugcs::vsm::Set_home_action
      • class ugcs::vsm::Set_servo_action
      • class ugcs::vsm::Shared_memory
        • enum ugcs::vsm::Shared_memory::Open_result
      • class ugcs::vsm::Shared_mutex_file
      • template class ugcs::vsm::Singleton
      • class ugcs::vsm::Socket_processor
        • class ugcs::vsm::Socket_processor::Stream
      • class ugcs::vsm::Subsystem
      • class ugcs::vsm::Takeoff_action
      • class ugcs::vsm::Task
      • class ugcs::vsm::Task_attributes_action
        • enum ugcs::vsm::Task_attributes_action::Emergency_action
      • class ugcs::vsm::Text_stream_filter
        • class ugcs::vsm::Text_stream_filter::Entry
      • class ugcs::vsm::Timer_processor
        • class ugcs::vsm::Timer_processor::Timer
      • class ugcs::vsm::Ucs_request
      • class ugcs::vsm::Vehicle
        • class ugcs::vsm::Vehicle::Command_map
        • class ugcs::vsm::Vehicle::Hasher
      • class ugcs::vsm::Vehicle_command
        • enum ugcs::vsm::Vehicle_command::Camera_power_state
        • enum ugcs::vsm::Vehicle_command::Camera_trigger_state
        • enum ugcs::vsm::Vehicle_command::Type
      • class ugcs::vsm::Vehicle_request
        • enum ugcs::vsm::Vehicle_request::Result
        • class ugcs::vsm::Vehicle_request::Handle
      • template class ugcs::vsm::Vehicle_request_spec<void>
      • template class ugcs::vsm::Vehicle_request_spec
        • class ugcs::vsm::Vehicle_request_spec::Handle
      • class ugcs::vsm::Vsm_command
      • class ugcs::vsm::Vtol_transition_action
        • enum ugcs::vsm::Vtol_transition_action::Mode
      • class ugcs::vsm::Wait_action
      • class ugcs::vsm::Wgs84_datum
      • class ugcs::vsm::Windows_wstring
        • struct ugcs::vsm::Windows_wstring::Conversion_failure_dummy_struct
      • class ugcs::vsm::Write_request
  • struct glob_t
  • class Adsb_vehicle
On this page
  • Overview
  • Detailed Documentation
    • Typedefs
    • Construction
    • Methods

class ugcs::vsm::Mavlink_decoder¶

Overview¶

Decodes Mavlink 1.0 messages from byte stream. More…

#include <mavlink_decoder.h>

class Mavlink_decoder
{
public:
    // typedefs

    typedef Callback_proxy<void, Io_buffer::Ptr, mavlink::MESSAGE_ID_TYPE, uint8_t, uint8_t, uint32_t> Handler;
    typedef Callback_proxy<void, Io_buffer::Ptr> Raw_data_handler;

    // construction

    Mavlink_decoder();
    Mavlink_decoder(const Mavlink_decoder&);

    // methods

    template <class __Callable, typename... __Args>
    __DEFINE_CALLBACK_BUILDER_BODY(
        Make_decoder_handler,
        (Io_buffer::Ptr, mavlink::MESSAGE_ID_TYPE, uint8_t, uint8_t, uint32_t),
        (nullptr, mavlink::MESSAGE_ID::DEBUG_VALUE, mavlink::SYSTEM_ID_NONE, 0, 0)
        );

    typename __Args __DEFINE_CALLBACK_BUILDER_BODY(Make_raw_data_handler, (Io_buffer::Ptr), (nullptr));
    void Disable();
    void Register_handler(Handler handler);
    void Register_raw_data_handler(Raw_data_handler handler);
    void Decode(Io_buffer::Ptr buffer);
    size_t Get_next_read_size() const;
    const Mavlink_decoder::Stats Get_stats(int system_id);
    const Mavlink_decoder::Stats Get_common_stats();
};

Detailed Documentation¶

Decodes Mavlink 1.0 messages from byte stream.

Typedefs¶

typedef Callback_proxy<void, Io_buffer::Ptr, mavlink::MESSAGE_ID_TYPE, uint8_t, uint8_t, uint32_t> Handler

Handler type of the received Mavlink message.

Arguments are:

  • Payload buffer

  • Message id

  • Sending system id

  • Sending component id

typedef Callback_proxy<void, Io_buffer::Ptr> Raw_data_handler

Handler for the raw data going through the decoder.

Construction¶

Mavlink_decoder()

Default constructor.

Mavlink_decoder(const Mavlink_decoder&)

Delete copy constructor.

Methods¶

template <class __Callable, typename... __Args>
__DEFINE_CALLBACK_BUILDER_BODY(
    Make_decoder_handler,
    (Io_buffer::Ptr, mavlink::MESSAGE_ID_TYPE, uint8_t, uint8_t, uint32_t),
    (nullptr, mavlink::MESSAGE_ID::DEBUG_VALUE, mavlink::SYSTEM_ID_NONE, 0, 0)
    )

Convenience builder for Mavlink decoder handlers.

Convenience builder for raw data handlers.

typename __Args __DEFINE_CALLBACK_BUILDER_BODY(
    Make_raw_data_handler,
    (Io_buffer::Ptr),
    (nullptr)
    )

Decoder statistics.

void Disable()

Should be called prior to intention to delete the instance.

void Register_handler(Handler handler)

Register handler for successfully decoded Mavlink messages.

void Decode(Io_buffer::Ptr buffer)

Decode buffer from the wire.

size_t Get_next_read_size() const

Get the exact number of bytes which should be read by underlying I/O subsystem and fed to the decoder.

Returns:

Exact number of bytes to be read by next read operation.

const Mavlink_decoder::Stats Get_stats(int system_id)

Get read-only access to statistics.

Supports multiple system_ids on one connection.

Parameters:

system_id

system id to get statistics for. Use mavlink::SYSTEM_ID_ANY to get total for all system_ids.

Returns:

Readonly reference to the Stats structure for given system_id.

const Mavlink_decoder::Stats Get_common_stats()

Get read-only access to common statistics.

previous

class ugcs::vsm::Log::Platform_logger

next

class ugcs::vsm::Mavlink_demuxer

© Copyright 2020, SPH Engineering.

Created using Sphinx 4.3.2.