#include <iostream>
#include <chrono>
#include <thread>
#include <onboardapi/api/CoordinateFrame.hpp>
std::cout << "Received ReportCoordinateFrameSettings" << std::endl;
}
};
std::cout << "Received NotifyCoordinateTransformation" << std::endl;
}
};
int main() {
std::cout << "Start Application ..." << std::endl;
const int domainId = 1;
const std::string serviceName = "TheCoolServiceName";
try {
CallbacksFromClients callbacksFromClients;
CallbacksFromService callbacksFromService;
while (true) {
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
} catch (std::exception& e) {
std::cerr << "Exception: " << e.what() << std::endl;
}
return 0;
}
new oo-api
Definition: CoordinateFrame.hpp:251
static std::enable_if< std::is_same< T, int >::value &&std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type create(T domain, std::string serviceName, IClientDerived &callbacks)
Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected),...
Definition: CoordinateFrame.hpp:1068
Definition: CoordinateFrame.hpp:71
virtual void ReportCoordinateTransformations(std::string const &KeyId, M_Common::CoordinateTransformationListType const &TransformationList, bool IsRemoved)
Definition: CoordinateFrame.cpp:156
virtual void ReportLinearVelocities(std::string const &KeyId, M_Common::LinearVelocityListType const &LinearVelocityList, bool IsRemoved)
Definition: CoordinateFrame.cpp:207
virtual void ReportAttitudes(std::string const &KeyId, M_Common::AttitudeListType const &AttitudeList, bool IsRemoved)
Definition: CoordinateFrame.cpp:190
virtual void ReportCoordinateFrameSettings(M_CoordinateFrame::CoordinateFrameSettingsType const &Settings)
Definition: CoordinateFrame.cpp:126
virtual void ReportCoordinateFrameStatus(M_CoordinateFrame::CoordinateFrameStatusType const &Status, bool IsRemoved)
Definition: CoordinateFrame.cpp:139
virtual void ReportPositions(std::string const &KeyId, M_Common::PositionListType const &PositionList, bool IsRemoved)
Definition: CoordinateFrame.cpp:173
virtual void ReportAngularAccelerations(std::string const &KeyId, M_Common::AngularAccelerationListType const &AngularAccelerationList, bool IsRemoved)
Definition: CoordinateFrame.cpp:258
virtual void ReportLinearAccelerations(std::string const &KeyId, M_Common::LinearAccelerationListType const &LinearAccelerationList, bool IsRemoved)
Definition: CoordinateFrame.cpp:241
virtual void ReportAngularVelocities(std::string const &KeyId, M_Common::AngularVelocityListType const &AngularVelocityList, bool IsRemoved)
Definition: CoordinateFrame.cpp:224
Definition: CoordinateFrame.hpp:53
virtual void NotifyAngularVelocity(std::string const &KeyId, M_Common::AngularVelocityType const &AngularVelocity)
Definition: CoordinateFrame.cpp:110
virtual void NotifyPosition(std::string const &KeyId, M_Common::PositionType const &Position)
Definition: CoordinateFrame.cpp:71
virtual void NotifyAttitude(std::string const &KeyId, M_Common::AttitudeType const &Attitude)
Definition: CoordinateFrame.cpp:84
virtual void NotifyLinearVelocity(std::string const &KeyId, M_Common::LinearVelocityType const &LinearVelocity)
Definition: CoordinateFrame.cpp:97
virtual void NotifyCoordinateTransformation(std::string const &KeyId, M_Common::CoordinateTransformationType const &Transformation)
Definition: CoordinateFrame.cpp:58
new oo-api
Definition: CoordinateFrame.hpp:65
static std::enable_if< std::is_same< T, int >::value &&std::is_same< IServiceDerived, std::vector< ddkit::callback::Base * > >::value, Service >::type create(T domain, std::string serviceName, IServiceDerived &callbacks)
Create dds-readers + writers. remove on Service leaving scope (overridden methods are auto-detected),...
Definition: CoordinateFrame.hpp:639
std::vector< M_Common::AngularVelocityType > AngularVelocityListType
List of AngularVelocityType.
Definition: Common.hpp:2728
std::vector< M_Common::AttitudeType > AttitudeListType
List of AttitudeType.
Definition: Common.hpp:2292
std::vector< M_Common::CoordinateTransformationType > CoordinateTransformationListType
List of CoordinateTransformationType.
Definition: Common.hpp:3063
std::vector< M_Common::LinearVelocityType > LinearVelocityListType
List of LinearVelocityType.
Definition: Common.hpp:2601
std::vector< M_Common::PositionType > PositionListType
List of PositionType.
Definition: Common.hpp:2158
std::vector< M_Common::LinearAccelerationType > LinearAccelerationListType
List of LinearAccelerationType.
Definition: Common.hpp:2856
std::vector< M_Common::AngularAccelerationType > AngularAccelerationListType
List of AngualarAccelerationType.
Definition: Common.hpp:2983
Contains angular velocity.
Definition: Common.hpp:2660
Definition: Common.hpp:2219
Definition: Common.hpp:2518
Definition: Common.hpp:2080
Contains the settings of the coordinate frame service.
Definition: CoordinateFrame.hpp:134
Contains coordinate frame status data.
Definition: CoordinateFrame.hpp:205
The following code provides a complete implementation example on how the lambda callbacks are used.
#include <iostream>
#include <chrono>
#include <thread>
#include <onboardapi/api/CoordinateFrame.hpp>
int main() {
std::cout << "Start Application ..." << std::endl;
const int domainId = 1;
const std::string serviceName = "TheCoolServiceName";
try {
std::vector<ddkit::callback::Base*> callbacks = {
std::cout << "Received NotifyCoordinateTransformation" << std::endl;
}
),
std::cout << "Received NotifyPosition" << std::endl;
}
)
};
while (true) {
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
} catch (std::exception& e) {
std::cerr << "Exception: " << e.what() << std::endl;
}
return 0;
}
#include <iostream>
#include <vector>
#include <ddkit/utils/optional.hpp>
int main() {
std::vector<int> vec = {8};
ddkit::utils::types::Optional<int> opt(vec);
std::cout << opt.value() << std::endl;
opt.set(3);
std::cout << std::boolalpha << opt << std::endl;
opt.reset();
std::cout << std::boolalpha << opt << std::endl;
std::cout << opt.value_or(0) << std::endl;
opt = 9;
std::cout << std::boolalpha << opt << std::endl;
std::cout << opt.value() << std::endl;
return 0;
}
#include "ddkit/utils/Exceptions.hpp"
int main() {
ddkit::utils::exceptions::GlobalHandler::registerHandler<std::exception>([](std::exception& exception){
ddkit::log::error() << "Uncaught exception" << typeid(exception).name() << "derived from std::exception:" << exception.what();
});
ddkit::utils::exceptions::GlobalHandler::registerHandler([](std::exception_ptr){
ddkit::log::error() << "std::terminate triggered, uncaught exception occured!";
});
throw std::logic_error("I'm an example");
return 0;
}
The following code demonstrates the use of it. Notice, that it has to be used inside the callback function!