5#include <nlohmann/json.hpp>
108 std::vector<SiiCategoryPdoEntryElement>
entries;
130 std::vector<SiiCategoryPdoElement>
rxPdos;
131 std::vector<SiiCategoryPdoElement>
txPdos;
190std::expected<SlaveInformationInterface, std::string>
parseSii(std::span<const uint8_t> buffer);
192void to_json(nlohmann::json& j,
const SiiInfo& v);
193void to_json(nlohmann::json& j,
const SiiCategoryGeneral& v);
194void to_json(nlohmann::json& j,
const SiiCategorySyncManagerElement& v);
195void to_json(nlohmann::json& j,
const SiiCategoryPdoEntryElement& v);
196void to_json(nlohmann::json& j,
const SiiCategoryPdoElement& v);
197void to_json(nlohmann::json& j,
const SiiCategoryDistributedClockElement& v);
198void to_json(nlohmann::json& j,
const SiiCategorySection& v);
199void to_json(nlohmann::json& j,
const SlaveInformationInterface& v);
Definition al_status_codes.cc:5
void to_json(nlohmann::json &j, const AlStatusCode &c)
Serialises an AlStatusCode to JSON.
Definition al_status_codes.cc:7
std::optional< SiiCategoryType > resolveSiiCategoryType(uint16_t value)
Normalises a raw 16-bit category-type word into a SiiCategoryType.
Definition sii.cc:194
std::expected< SlaveInformationInterface, std::string > parseSii(std::span< const uint8_t > buffer)
Parses a raw SII EEPROM image into a SlaveInformationInterface.
Definition sii.cc:235
SiiCategoryType
Recognised SII category type identifiers (ETG.2010 Table 5).
Definition sii.h:149
One distributed-clock setting from SII category 60 (0x3C).
Definition sii.h:113
uint32_t shiftTime0
SYNC0 shift time (ns).
Definition sii.h:115
uint32_t cycleTime0
SYNC0 cycle time (ns).
Definition sii.h:114
int16_t sync1CycleFactor
SYNC1 cycle factor.
Definition sii.h:117
uint32_t shiftTime1
SYNC1 shift time (ns).
Definition sii.h:116
uint16_t assignActivate
DC assign/activate register value.
Definition sii.h:118
uint8_t descIdx
STRINGS index of the description.
Definition sii.h:121
int16_t sync0CycleFactor
SYNC0 cycle factor.
Definition sii.h:119
uint8_t nameIdx
STRINGS index of the name.
Definition sii.h:120
General device information (SII category 30 / 0x1E).
Definition sii.h:63
uint8_t nameIdx
STRINGS index of the device name.
Definition sii.h:67
int16_t currentOnEBus
E-Bus current consumption (mA); negative = feed-in.
Definition sii.h:75
uint8_t foeDetails
FoE capability flags.
Definition sii.h:69
uint16_t physicalPort
Physical-port configuration (per-port nibbles).
Definition sii.h:76
uint8_t ds402Channels
DS402 channel count.
Definition sii.h:72
uint16_t physicalMemoryAddress
Physical-memory address (16-bit word, ETG.2010 Table 7).
Definition sii.h:77
uint8_t soeChannels
SoE channel count.
Definition sii.h:71
uint8_t imgIdx
STRINGS index of the image name.
Definition sii.h:65
uint8_t groupIdx
STRINGS index of the group name.
Definition sii.h:64
uint8_t flags
General device flags.
Definition sii.h:74
uint8_t orderIdx
STRINGS index of the order number.
Definition sii.h:66
uint8_t coeDetails
CoE capability flags.
Definition sii.h:68
uint8_t eoeDetails
EoE capability flags.
Definition sii.h:70
uint8_t sysmanClass
Sync-manager class.
Definition sii.h:73
One default PDO (RxPDO category 51 / 0x33, or TxPDO category 50 / 0x32).
Definition sii.h:101
uint8_t nEntry
Declared number of mapped entries.
Definition sii.h:103
uint8_t synchronization
Synchronisation type.
Definition sii.h:105
uint8_t syncM
Assigned Sync Manager.
Definition sii.h:104
std::vector< SiiCategoryPdoEntryElement > entries
Definition sii.h:108
uint16_t pdoIndex
PDO object index (0x16xx / 0x1Axx).
Definition sii.h:102
uint16_t flags
PDO flags.
Definition sii.h:107
uint8_t nameIdx
STRINGS index of the PDO name.
Definition sii.h:106
One mapped object within a default PDO (SII categories 50/51).
Definition sii.h:91
uint8_t dataType
ETG.1020 data-type code.
Definition sii.h:95
uint8_t entryNameIdx
STRINGS index of the entry name.
Definition sii.h:94
uint16_t flags
Entry flags.
Definition sii.h:97
uint8_t bitLen
Entry bit length.
Definition sii.h:96
uint16_t entryIndex
Object dictionary index.
Definition sii.h:92
uint8_t subindex
Object dictionary subindex.
Definition sii.h:93
The decoded category section of an SII image.
Definition sii.h:125
std::vector< SiiCategoryDistributedClockElement > distributedClocks
DC (category 60).
Definition sii.h:132
std::vector< uint8_t > fmmus
FMMU defaults (category 40).
Definition sii.h:128
std::vector< SiiCategoryPdoElement > txPdos
Default TxPDOs (category 50).
Definition sii.h:131
std::vector< SiiCategorySyncManagerElement > syncManagers
SYNC_M defaults (category 41).
Definition sii.h:129
std::vector< SiiCategoryPdoElement > rxPdos
Default RxPDOs (category 51).
Definition sii.h:130
std::vector< std::string > strings
STRINGS table (category 10).
Definition sii.h:126
SiiCategoryGeneral general
GENERAL (category 30).
Definition sii.h:127
One Sync-Manager default from SII category 41 (0x29).
Definition sii.h:81
uint8_t syncManagerType
1=MbxOut, 2=MbxIn, 3=Outputs, 4=Inputs.
Definition sii.h:87
uint8_t enableSyncManager
Non-zero when enabled.
Definition sii.h:86
uint8_t controlRegister
SM control register value.
Definition sii.h:84
uint16_t physicalStartAddress
Start address in ESC DPRAM.
Definition sii.h:82
uint8_t statusRegister
SM status register value.
Definition sii.h:85
uint16_t length
Window length in bytes.
Definition sii.h:83
SII (Slave Information Interface) — the structured EEPROM image of an EtherCAT slave.
Definition sii.h:38
uint16_t standardSendMailboxOffset
Definition sii.h:55
uint16_t standardSendMailboxSize
Definition sii.h:56
uint16_t pdiConfiguration
Definition sii.h:40
uint16_t mailboxProtocol
Definition sii.h:57
uint16_t syncImpulseLen
Definition sii.h:41
uint16_t standardReceiveMailboxOffset
Definition sii.h:53
uint32_t revisionNumber
Definition sii.h:47
uint16_t configuredStationAlias
Definition sii.h:43
uint16_t bootstrapReceiveMailboxSize
Definition sii.h:50
uint32_t serialNumber
Definition sii.h:48
uint16_t pdiConfiguration2
Definition sii.h:42
uint16_t bootstrapSendMailboxSize
Definition sii.h:52
uint16_t size
Definition sii.h:58
uint16_t checksum
Definition sii.h:44
uint16_t pdiControl
Definition sii.h:39
uint16_t bootstrapReceiveMailboxOffset
Definition sii.h:49
uint16_t version
Definition sii.h:59
uint16_t standardReceiveMailboxSize
Definition sii.h:54
uint32_t productCode
Definition sii.h:46
uint16_t bootstrapSendMailboxOffset
Definition sii.h:51
uint32_t vendorId
Definition sii.h:45