Motion Master 6.0.0-alpha.50
Next-generation motion control software
Loading...
Searching...
No Matches
fieldbus_driver.h File Reference
#include <array>
#include <chrono>
#include <cstddef>
#include <cstdint>
#include <expected>
#include <functional>
#include <mutex>
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <vector>
Include dependency graph for fieldbus_driver.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mm::comm::SlaveInfo
 Immutable identity fields read from a slave's EEPROM during configuration. More...
 
struct  mm::comm::OdEntry
 Schema of a single object dictionary entry uploaded from a slave. More...
 
struct  mm::comm::SlaveIo
 One slave's input and output windows within the process-data images. More...
 
struct  mm::comm::PdoLayout
 Layout of the process-data images, produced by configureProcessData. More...
 
struct  mm::comm::SyncManagerConfig
 One Sync Manager's configuration as programmed on a slave's ESC. More...
 
struct  mm::comm::FmmuConfig
 One FMMU's configuration as programmed on a slave's ESC. More...
 
struct  mm::comm::MailboxConfig
 Mailbox configuration for a slave (the CoE/FoE/EoE/SoE transport windows). More...
 
struct  mm::comm::DcConfig
 Distributed-clock configuration for a slave. More...
 
struct  mm::comm::SlaveConfig
 Static ESC configuration snapshot for one slave, captured by configureProcessData. More...
 
struct  mm::comm::PortDiagnostics
 Per-port link state and error counters decoded from a slave's ESC. More...
 
struct  mm::comm::SlaveDiagnostics
 Decoded health diagnostics for one slave, read live from its ESC registers. More...
 
struct  mm::comm::DcSyncDiagnostics
 Live distributed-clock synchronisation status for one slave, read from its ESC. More...
 
struct  mm::comm::ProcessDataWatchdogConfig
 Process-data (sync-manager) watchdog configuration of one slave. More...
 
class  mm::comm::FieldbusDriver
 Abstract interface for an EtherCAT fieldbus driver. More...
 
struct  mm::comm::FieldbusDriver::SlaveStateRaw
 One slave's AL Status and AL Status Code registers — the "where" and the "why". More...
 

Namespaces

namespace  mm
 
namespace  mm::comm
 

Enumerations

enum class  mm::comm::EtherCatState : uint16_t {
  mm::comm::Init = 0x01 , mm::comm::PreOp = 0x02 , mm::comm::Boot = 0x03 , mm::comm::SafeOp = 0x04 ,
  mm::comm::Op = 0x08
}
 EtherCAT Application Layer state values. More...
 

Functions

EtherCatState mm::comm::alState (uint16_t alStatus)
 Extracts the AL state (bits 3:0) from a raw AL Status register value (0x0130).
 
bool mm::comm::alHasError (uint16_t alStatus)
 Returns whether the AL Status error indicator (bit 4 of register 0x0130) is set.
 
std::string_view mm::comm::toString (EtherCatState state)
 Human-readable name of an AL state, for log and error messages.
 
int mm::comm::workingCounterContribution (EtherCatState state, bool hasOutputs, bool hasInputs)
 Working-counter contribution of one slave for a given AL state and PDO presence.
 

Variables

constexpr std::size_t mm::comm::kMaxProcessImageBytes = 32768
 Maximum size in bytes of the combined process-data image (all outputs + all inputs).