Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
cia402_control.h
Go to the documentation of this file.
1#pragma once
2
3#include <chrono>
4#include <cstdint>
5#include <expected>
6#include <string>
7
8#include "node/cia402.h"
9#include "node/cia402_drive.h"
10#include "node/device_manager.h"
11
12namespace mm::node {
13
37
44std::expected<Cia402Status, std::string> cia402Status(DeviceManager& deviceManager,
45 uint16_t slavePosition);
46
74std::expected<Cia402Status, std::string> setCia402OperationMode(
75 DeviceManager& deviceManager, uint16_t slavePosition, int8_t mode,
76 std::chrono::milliseconds timeout = std::chrono::milliseconds(200));
77
91std::expected<Cia402Status, std::string> runCia402Command(
92 DeviceManager& deviceManager, uint16_t slavePosition, Cia402Command command,
93 std::chrono::milliseconds timeout = std::chrono::milliseconds(2000));
94
119std::expected<Cia402Status, std::string> transitionToCia402State(
120 DeviceManager& deviceManager, uint16_t slavePosition, cia402::State target,
121 std::chrono::milliseconds timeout = std::chrono::milliseconds(2000));
122
137std::expected<void, std::string> setCia402Target(DeviceManager& deviceManager,
138 uint16_t slavePosition, Cia402TargetKind kind,
139 int32_t setpoint);
140
141} // namespace mm::node
Pure CiA402 (CANopen drive profile, ETG.6010) vocabulary — object indices, control/status word bit la...
State
States of the CiA402 device control state machine (decoded from the statusword).
Definition cia402.h:139
Definition bus_health_source.h:7
std::expected< Cia402Status, std::string > setCia402OperationMode(DeviceManager &deviceManager, uint16_t slavePosition, int8_t mode, std::chrono::milliseconds timeout)
Requests an operation mode (0x6060) by its raw value, then reads back the snapshot.
Definition cia402_control.cc:38
Cia402Command
High-level state-machine actions a client can command (the named transitions a UI exposes as buttons)...
Definition cia402_drive.h:72
std::expected< Cia402Status, std::string > transitionToCia402State(DeviceManager &deviceManager, uint16_t slavePosition, cia402::State target, std::chrono::milliseconds timeout)
Brings a drive to target, walking whatever transitions that takes, then reads back the resulting snap...
Definition cia402_control.cc:79
std::expected< void, std::string > setCia402Target(DeviceManager &deviceManager, uint16_t slavePosition, Cia402TargetKind kind, int32_t setpoint)
Writes the one CiA402 cyclic setpoint that matches the active operation mode.
Definition cia402_control.cc:94
std::expected< Cia402Status, std::string > cia402Status(DeviceManager &deviceManager, uint16_t slavePosition)
Reads a device's CiA402 control snapshot (state, status/control words, active mode).
Definition cia402_control.cc:32
Cia402TargetKind
Which cyclic setpoint a target write addresses. Exactly one is active at a time — the one matching th...
Definition cia402_drive.h:81
std::expected< Cia402Status, std::string > runCia402Command(DeviceManager &deviceManager, uint16_t slavePosition, Cia402Command command, std::chrono::milliseconds timeout)
Runs a CiA402 state-machine command (enable / disable / quick stop / fault reset),...
Definition cia402_control.cc:50
std::chrono::milliseconds timeout
Definition somanet_procedures.cc:438