Motion Master
Loading...
Searching...
No Matches
machine_procedure.h
Go to the documentation of this file.
1#pragma once
2
3#include <readerwriterqueue/readerwriterqueue.h>
4
5#include <optional>
6
7#include "motion-master.pb.h"
8
9class Cia402Drive;
11
13 public:
14 virtual std::optional<MotionMasterError> execute(
15 uint64_t pending_signals) = 0;
16
17 virtual ~MachineProcedure() = default;
18
19 motionmaster::MotionMasterMessage::Status *dequeue_status_message();
20
22 motionmaster::MotionMasterMessage::Status *message);
23
24 protected:
25 MachineProcedure(uint32_t device_address, Cia402Drive &cia402_drive);
26
29
30 private:
31 moodycamel::ReaderWriterQueue<motionmaster::MotionMasterMessage::Status *>
32 outgoing_status_message_queue_;
33};
Definition: cia402_drive.h:48
Definition: machine_procedure.h:12
Cia402Drive & cia402_drive_
Definition: machine_procedure.h:28
virtual std::optional< MotionMasterError > execute(uint64_t pending_signals)=0
uint32_t device_address_
Definition: machine_procedure.h:27
motionmaster::MotionMasterMessage::Status * dequeue_status_message()
Definition: machine_procedure.cc:8
void enqueue_status_message(motionmaster::MotionMasterMessage::Status *message)
Definition: machine_procedure.cc:17
virtual ~MachineProcedure()=default
Definition: motion_master_error.h:6