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

Go to the source code of this file.

Classes

struct  mm::comm::SiiInfo
 SII (Slave Information Interface) — the structured EEPROM image of an EtherCAT slave. More...
 
struct  mm::comm::SiiCategoryGeneral
 General device information (SII category 30 / 0x1E). More...
 
struct  mm::comm::SiiCategorySyncManagerElement
 One Sync-Manager default from SII category 41 (0x29). More...
 
struct  mm::comm::SiiCategoryPdoEntryElement
 One mapped object within a default PDO (SII categories 50/51). More...
 
struct  mm::comm::SiiCategoryPdoElement
 One default PDO (RxPDO category 51 / 0x33, or TxPDO category 50 / 0x32). More...
 
struct  mm::comm::SiiCategoryDistributedClockElement
 One distributed-clock setting from SII category 60 (0x3C). More...
 
struct  mm::comm::SiiCategorySection
 The decoded category section of an SII image. More...
 
struct  mm::comm::SlaveInformationInterface
 A fully parsed SII image: fixed header plus decoded categories. More...
 

Namespaces

namespace  mm
 
namespace  mm::comm
 

Enumerations

enum class  mm::comm::SiiCategoryType : uint16_t {
  mm::comm::Nop = 0 , mm::comm::DeviceSpecific = 1 , mm::comm::Strings = 10 , mm::comm::DataTypes = 20 ,
  mm::comm::General = 30 , mm::comm::Fmmu = 40 , mm::comm::SyncM = 41 , mm::comm::FmmuX = 42 ,
  mm::comm::SyncUnit = 43 , mm::comm::TxPdo = 50 , mm::comm::RxPdo = 51 , mm::comm::Dc = 60 ,
  mm::comm::Timeouts = 70 , mm::comm::Dictionary = 80 , mm::comm::Hardware = 90 , mm::comm::VendorInformation = 100 ,
  mm::comm::Images = 110 , mm::comm::VendorSpecific = 0x0800 , mm::comm::ApplicationSpecific = 0x2000 , mm::comm::End = 0xFFFF
}
 Recognised SII category type identifiers (ETG.2010 Table 5). More...
 

Functions

std::optional< SiiCategoryTypemm::comm::resolveSiiCategoryType (uint16_t value)
 Normalises a raw 16-bit category-type word into a SiiCategoryType.
 
std::expected< SlaveInformationInterface, std::string > mm::comm::parseSii (std::span< const uint8_t > buffer)
 Parses a raw SII EEPROM image into a SlaveInformationInterface.
 
void mm::comm::to_json (nlohmann::json &j, const SiiInfo &v)
 
void mm::comm::to_json (nlohmann::json &j, const SiiCategoryGeneral &v)
 
void mm::comm::to_json (nlohmann::json &j, const SiiCategorySyncManagerElement &v)
 
void mm::comm::to_json (nlohmann::json &j, const SiiCategoryPdoEntryElement &v)
 
void mm::comm::to_json (nlohmann::json &j, const SiiCategoryPdoElement &v)
 
void mm::comm::to_json (nlohmann::json &j, const SiiCategoryDistributedClockElement &v)
 
void mm::comm::to_json (nlohmann::json &j, const SiiCategorySection &v)
 
void mm::comm::to_json (nlohmann::json &j, const SlaveInformationInterface &v)