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