Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
eni.h File Reference
#include <cstdint>
#include <expected>
#include <nlohmann/json_fwd.hpp>
#include <optional>
#include <span>
#include <string>
#include <vector>
Include dependency graph for eni.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mm::etg::EniValidate
 The value a read init command must return before the master goes on (ENI Validate). More...
 
struct  mm::etg::EniEcatCmd
 One EtherCAT datagram the master sends at a transition (ENI ECatCmdType). More...
 
struct  mm::etg::EniCoeCmd
 One CoE transfer the master runs at a transition (ENI CoE/InitCmds/InitCmd). More...
 
struct  mm::etg::EniProcessDataWindow
 Where one device's process data sits in the master's image (ENI ProcessData/Send or ProcessData/Recv). More...
 
struct  mm::etg::EniSyncManager
 One Sync Manager of a device (ENI SyncManagerSettings). More...
 
struct  mm::etg::EniPdoEntry
 One object mapped into a PDO (ENI EntryType). More...
 
struct  mm::etg::EniPdo
 One process-data object of a device (ENI PdoType). More...
 
struct  mm::etg::EniProcessData
 A device's process-data description (ENI Slave/ProcessData). More...
 
struct  mm::etg::EniMailboxWindow
 One mailbox window of a device (ENI MailboxSendInfoType / MailboxRecvInfoType). More...
 
struct  mm::etg::EniMailbox
 A device's mailbox configuration (ENI Slave/Mailbox). More...
 
struct  mm::etg::EniSlaveInfo
 A device's identity (ENI Slave/Info). More...
 
struct  mm::etg::EniPreviousPort
 Where this device sits in the ring (ENI Slave/PreviousPort). More...
 
struct  mm::etg::EniDc
 A device's distributed-clock configuration (ENI Slave/DC). More...
 
struct  mm::etg::EniSlave
 One device on the bus (ENI Config/Slave). More...
 
struct  mm::etg::EniCyclicCmd
 One datagram of a cyclic frame (ENI Cyclic/Frame/Cmd). More...
 
struct  mm::etg::EniFrame
 One cyclic frame (ENI Cyclic/Frame). More...
 
struct  mm::etg::EniCyclic
 The cyclic task that exchanges process data (ENI Config/Cyclic). More...
 
struct  mm::etg::EniVariable
 One named value in the master's process image (ENI ProcessImage Variable). More...
 
struct  mm::etg::EniProcessImageArea
 One half of the master's process image (ENI ProcessImage/Inputs or /Outputs). More...
 
struct  mm::etg::EniProcessImage
 The master's process image (ENI Config/ProcessImage). More...
 
struct  mm::etg::EniMailboxStates
 The master's cyclic check of every mailbox on the bus (ENI Master/MailboxStates). More...
 
struct  mm::etg::EniEoe
 The virtual Ethernet switch the master runs for Ethernet over EtherCAT (ENI Master/EoE). More...
 
struct  mm::etg::EniMaster
 The master itself (ENI Config/Master). More...
 
struct  mm::etg::EniNetwork
 A complete network configuration (ENI EtherCATConfig/Config). More...
 

Namespaces

namespace  mm
 
namespace  mm::etg
 

Enumerations

enum class  mm::etg::EniTransition : std::uint8_t {
  mm::etg::II , mm::etg::IP , mm::etg::PP , mm::etg::PO ,
  mm::etg::PS , mm::etg::PI , mm::etg::SS , mm::etg::SP ,
  mm::etg::SO , mm::etg::SI , mm::etg::OS , mm::etg::OP ,
  mm::etg::OI , mm::etg::IB , mm::etg::BI
}
 EtherCAT Network Information (ENI) — the configuration a master replays to start a bus. More...
 
enum class  mm::etg::EniCmd : std::uint8_t {
  mm::etg::Nop = 0 , mm::etg::Aprd = 1 , mm::etg::Apwr = 2 , mm::etg::Aprw = 3 ,
  mm::etg::Fprd = 4 , mm::etg::Fpwr = 5 , mm::etg::Fprw = 6 , mm::etg::Brd = 7 ,
  mm::etg::Bwr = 8 , mm::etg::Brw = 9 , mm::etg::Lrd = 10 , mm::etg::Lwr = 11 ,
  mm::etg::Lrw = 12 , mm::etg::Armw = 13 , mm::etg::Frmw = 14
}
 EtherCAT command type of an init or cyclic command (ENI Cmd, ETG.2100 Table 21). More...
 
enum class  mm::etg::EniRequires : std::uint8_t { mm::etg::None , mm::etg::Frame , mm::etg::Cycle }
 Whether an init command needs a frame or a cycle of its own (ENI <Requires>). More...
 
enum class  mm::etg::EniState : std::uint8_t { mm::etg::Init , mm::etg::PreOp , mm::etg::SafeOp , mm::etg::Op }
 An AL state a cyclic command is sent in (ENI Cyclic/Frame/Cmd/State). More...
 
enum class  mm::etg::EniSyncManagerType : std::uint8_t { mm::etg::MailboxOut , mm::etg::MailboxIn , mm::etg::Outputs , mm::etg::Inputs }
 What a Sync Manager carries (ENI SyncManagerSettings/Type). More...
 
enum class  mm::etg::EniMailboxProtocol : std::uint8_t {
  mm::etg::Aoe , mm::etg::Eoe , mm::etg::Coe , mm::etg::Soe ,
  mm::etg::Foe , mm::etg::Voe
}
 A mailbox protocol a device supports (ENI Mailbox/Protocol). More...
 
enum class  mm::etg::EniCoeCommandSpecifier : std::uint8_t { mm::etg::Download = 1 , mm::etg::Upload = 2 }
 The CoE command specifier of a mailbox init command (ENI Ccs). More...
 
enum class  mm::etg::EniPort : std::uint8_t { mm::etg::A , mm::etg::B , mm::etg::C , mm::etg::D }
 A port of the device upstream of this one (ENI Slave/PreviousPort Port). More...
 

Functions

void mm::etg::to_json (nlohmann::json &j, const EniNetwork &network)
 Serialises a network as JSON, for a client that renders rather than replays it.
 
std::string mm::etg::eniPhysics (std::uint16_t physicalPort)
 Renders the ENI Physics string for a device from its SII physical-port word.
 
std::expected< std::string, std::string > mm::etg::writeEni (const EniNetwork &network)
 Renders a network as an ENI document.