31#ifndef DWFRAMEWORK_DWNODES_EGOMOTION_DWGLOBALEGOMOTIONNODE_DWGLOBALEGOMOTIONNODE_HPP_
32#define DWFRAMEWORK_DWNODES_EGOMOTION_DWGLOBALEGOMOTIONNODE_DWGLOBALEGOMOTIONNODE_HPP_
34#include <dw/egomotion/base/Egomotion.h>
35#include <dw/egomotion/global/GlobalEgomotion.h>
36#include <dw/egomotion/global/GlobalEgomotionSerialization.h>
37#include <dw/roadcast/base_types/RoadCastPacketTypes.hpp>
46#include <dwframework/dwnodes/common/GlobalEgomotionCommonTypes.hpp>
47#include <dwframework/dwnodes/common/channelpackets/EgomotionState.hpp>
48#include <dwframework/dwnodes/common/channelpackets/GPS.hpp>
49#include <dwframework/dwnodes/common/channelpackets/GlobalEgomotionCommonTypes.hpp>
94 DW_DESCRIBE_PORT(dwGlobalEgomotionResultPayload,
"GLOBAL_EGOMOTION_RESULT_PAYLOAD"_sv));
100 describePass(StringView{
"SETUP"}, DW_PROCESSOR_TYPE_CPU),
101 describePass(StringView{
"ADD_GPS"}, DW_PROCESSOR_TYPE_CPU),
102 describePass(StringView{
"ADD_RELATIVE_EGOMOTION"}, DW_PROCESSOR_TYPE_CPU),
103 describePass(StringView{
"SEND_STATE"}, DW_PROCESSOR_TYPE_CPU),
104 describePass(StringView{
"TEARDOWN"}, DW_PROCESSOR_TYPE_CPU));
111 const dwContextHandle_t ctx);
118 if (asyncResetNode !=
nullptr)
124 dw::core::Logger::Verbosity::DEBUG);
132 if (asyncResetNode !=
nullptr)
138 dw::core::Logger::Verbosity::DEBUG);
146 return describeConstructorArguments<dwGlobalEgomotionNodeInitParams, dwContextHandle_t>(
161 dwContextHandle_t)));
172 return DW_NOT_SUPPORTED;
#define DW_DESCRIBE_UNNAMED_PARAMETER_WITH_SEMANTIC(TYPE_NAME, SEMANTIC_TYPE_NAME, args...)
#define DW_DESCRIBE_UNNAMED_PARAMETER(TYPE_NAME, args...)
#define DW_DESCRIBE_PARAMETER(TYPE_NAME, args...)
#define DW_DESCRIBE_PORT(TYPE_NAME, args...)
static dwStatus guardWithReturn(TryBlock const &tryBlock, ::dw::core::Logger::Verbosity verbosity=::dw::core::Logger::Verbosity::ERROR)
std::unique_ptr< Node > m_impl
virtual dwStatus setAsyncReset()=0
Set the async reset flag.
virtual dwStatus executeAsyncReset()=0
Executes a reset if the async reset flag is set.
virtual dwStatus preShutdown()=0
actions to be taken before node shutdown
The interface to access parameter values identified by name and/or (semantic) type.
This node computes the global vehicle state and motion over time using signals from GPS and relative ...
static constexpr auto describeOutputPorts()
static constexpr auto describePasses()
static constexpr auto describeInputPorts()
dwGlobalEgomotionNode(const dwGlobalEgomotionNodeInitParams ¶ms, const dwContextHandle_t ctx)
dwStatus setAsyncReset() override
dwStatus executeAsyncReset() override
dwStatus preShutdown() override
static std::unique_ptr< dwGlobalEgomotionNode > create(ParameterProvider &provider)
static constexpr auto describeParameters()
const char * gpsSensorName
constexpr auto describeConstructorArgument(const Args &&... args) -> dw::core::Tuple< Args... >
constexpr auto describePassCollection(const Args &&... args) -> std::tuple< Args... >
constexpr auto describePortCollection(Args &&... args) -> dw::core::Tuple< Args... >
dwConstRigHandle_t rigHandle
constexpr PassDescriptorT< 0 > describePass(dw::core::StringView const &&name, dwProcessorType processorType)