10#include "SampleAppsHelper.h"
13#include "RTTasksHelpers.h"
22using namespace RSI::RapidCode::RealTimeTasks;
26 const std::string SAMPLE_APP_NAME =
"Real-Time Tasks: Random Walk";
33 const int NUM_AXES = 1;
34 const int TIMEOUT_MS = 5000;
43 std::unique_ptr<RTTaskManager> manager =
nullptr;
65 std::cout <<
"Creating task manager..." << std::endl;
70 RTTaskHelper::InitializeRTTaskObjects(manager);
76 std::cout <<
"Submitting task..." << std::endl;
80 std::unique_ptr<RTTask> task(manager->TaskSubmit(params));
83 task->ExecutionCountAbsoluteWait(50, 500);
86 std::cout <<
"Getting counter global tag..." << std::endl;
88 if (counter.Int64 <= 0)
92 std::cout <<
"Counter is not greater than 0. The task did not run correctly." << std::endl;
98 std::cout <<
"Counter: " << counter.Int64 << std::endl;
103 std::cout <<
"Average: " << average.
Double << std::endl;
113 catch (
const std::exception& e)
115 std::cerr << e.what() << std::endl;
118 if (manager !=
nullptr)
double CommandPositionGet()
Get the current command position.
void PositionSet(double position)
Set the Command and Actual positions.
Represents a single axis of motion control. This class provides an interface for commanding motion,...
Axis * AxisGet(int32_t axisNumber)
AxisGet returns a pointer to an Axis object and initializes its internals.
static MotionController * Create()
Initialize and start the RMP EtherCAT controller.
void Delete(void)
Delete the MotionController and all its objects.
Represents the RMP soft motion controller. This class provides an interface to general controller con...
void AmpEnableSet(bool enable)
Enable all amplifiers.
int32_t MotionDoneWait()
Waits for a move to complete.
static RTTaskManager * Create(const RTTaskManagerCreationParameters ¶meters)
Create a new RTTaskManager instance.
static void PrintFooter(std::string sampleAppName, int exitCode)
Print a message to indicate the sample app has finished and if it was successful or not.
static void CheckErrors(RapidCodeObject *rsiObject)
Checks for errors in the given RapidCodeObject and throws an exception if any non-warning errors are ...
static void PrintHeader(std::string sampleAppName)
Print a start message to indicate that the sample app has started.
static void Cleanup(MotionController *controller)
Cleanup the controller and restore the object counts to the original values.
static MotionController::CreationParameters GetCreationParameters()
Returns a MotionController::CreationParameters object with user-defined parameters.
static void SetupController(MotionController *controller, int numAxes=0)
Setup the controller with user defined axis counts and configuration.
CreationParameters for MotionController::Create.
RTTaskCreationParameters specifies all the information required to create and configure a real-time t...
static constexpr int32_t RepeatForever
Special value to indicate the task should repeat forever.
RTTaskManagerCreationParameters specifies all the information required to create and configure an RTT...
Union representing a generic RMP firmware value with multiple data types, stored in 64-bits.
double Double
Double precision (64-bit) floating-point.