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

Go to the source code of this file.

Classes

struct  mm::etg::EsiEnumOption
 One label/value pair of an enumerated entry. More...
 
struct  mm::etg::EsiEntrySource
 Which dictionary an entry came from. More...
 
struct  mm::etg::EsiEntry
 One (index, subindex) row of a device's fully expanded object dictionary. More...
 
struct  mm::etg::EsiEntryOptions
 Knobs for buildDeviceEntries. More...
 
struct  mm::etg::EsiEntryTable
 A device's flat dictionary, plus everything questionable found while building it. More...
 

Namespaces

namespace  mm
 
namespace  mm::etg
 

Enumerations

enum class  mm::etg::EsiCollisionPolicy : uint8_t { mm::etg::LastWins , mm::etg::FirstWins , mm::etg::Error }
 What to do when two dictionaries declare the same (index, subindex). More...
 

Functions

std::expected< EsiEntryTable, std::string > mm::etg::buildDeviceEntries (const EsiFile &file, const EsiDevice &device, const EsiEntryOptions &options={})
 Expands a device into a flat, slot-merged vector of object-dictionary entries.
 
void mm::etg::to_json (nlohmann::json &j, const EsiEnumOption &v)
 Serialises an entry to JSON. Raw byte vectors are emitted as uppercase hexBinary strings, the same spelling the ESI itself uses; absent optionals are omitted.
 
void mm::etg::to_json (nlohmann::json &j, const EsiEntrySource &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiEntry &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiEntryTable &v)