Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
operation_modes.h File Reference

What operation modes a drive has, and which of them it says it supports. More...

#include <cstdint>
#include <expected>
#include <nlohmann/json_fwd.hpp>
#include <optional>
#include <string>
#include <vector>
#include "node/device.h"
#include "node/device_manager.h"
Include dependency graph for operation_modes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mm::node::OperationModeInfo
 One operation mode of one device. More...
 
struct  mm::node::OperationModes
 Every operation mode of one device, with what the drive says about each. More...
 

Namespaces

namespace  mm
 
namespace  mm::node
 

Enumerations

enum class  mm::node::OperationModeKind : uint8_t { mm::node::kStandard , mm::node::kManufacturer }
 Where a mode is defined, which is also how much can be said about it. More...
 

Functions

void mm::node::to_json (nlohmann::json &j, const OperationModes &modes)
 
std::expected< OperationModes, std::string > mm::node::deviceOperationModes (Device &device)
 Builds the operation-mode table for device.
 
std::expected< OperationModes, std::string > mm::node::operationModes (DeviceManager &deviceManager, uint16_t slavePosition)
 Borrow-and-delegate wrapper over deviceOperationModes, for a caller holding a bus position rather than a device (the HTTP layer).
 

Detailed Description

What operation modes a drive has, and which of them it says it supports.

Sits outward of Device and names both profiles, the way procedure_catalogue does: the standard half is CiA402 vocabulary read against the drive's own capability field, the manufacturer half is the vendor's, and joining them is neither one's business. Nothing in cia402.h or somanet_drive.h knows this file exists.

Why an endpoint at all: 0x6061 answers with a number, and a negative one names a mode no standard table can decode — a drive sitting in -2 reads as "Unknown" to anything that only knows CiA402. This is the table that turns the number into a mode.