Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
esi.cc File Reference
#include "etg/esi.h"
#include <algorithm>
#include <cctype>
#include <cstddef>
#include <format>
#include <fstream>
#include <limits>
#include <nlohmann/json.hpp>
#include <pugixml.hpp>
#include <sstream>
#include <string>
#include <utility>
#include <vector>
#include "core/util.h"
Include dependency graph for esi.cc:

Namespaces

namespace  mm
 
namespace  mm::etg
 

Functions

std::string_view mm::etg::esiText (const std::vector< Text > &texts, uint32_t lcId=kDefaultLcId)
 Picks the lcId text from texts, else the unlocalised/default one, else the first.
 
std::expected< EsiFile, std::string > mm::etg::parseEsi (std::string_view xml)
 Parses an ESI XML document.
 
std::expected< EsiFile, std::string > mm::etg::parseEsiFile (const std::filesystem::path &path)
 Reads path and parses it with parseEsi.
 
const EsiDevicemm::etg::findEsiDevice (const EsiFile &file, std::string_view type)
 Finds the device whose <Type> text equals type (case-sensitive).
 
const EsiDevicemm::etg::findEsiDeviceByProductCode (const EsiFile &file, uint32_t productCode, std::optional< uint32_t > revisionNo=std::nullopt)
 Finds the device with product code productCode, optionally pinned to a revision.
 
const EsiModulemm::etg::findEsiModule (const EsiFile &file, uint32_t moduleIdent)
 Finds the module with the given ModuleIdent.
 
std::vector< uint32_t > mm::etg::esiSlotModuleIdents (const EsiDevice &device)
 Returns every ModuleIdent referenced by any of device's slots, in slot order.
 
void mm::etg::to_json (nlohmann::json &j, const Text &v)
 Serialises the model to JSON. Keys are lowerCamelCase mirrors of the member names; absent optionals are omitted rather than emitted as null.
 
void mm::etg::to_json (nlohmann::json &j, const Property &v)
 
void mm::etg::to_json (nlohmann::json &j, const Access &v)
 
void mm::etg::to_json (nlohmann::json &j, const MailboxCoe &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiObject::Flags &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiDataType::SubItem::Flags &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiObject::Info::SubItem &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiObject::Info &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiObject &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiDataType::SubItem &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiDataType::ArrayInfo &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiDataType::EnumInfo &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiDataType &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiDictionary &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiProfile &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiPdo::Entry &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiPdo &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiSlots::Slot &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiSlots::ModulePdoGroup &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiSlots &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiDevice &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiModule &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiFile::Vendor &v)
 
void mm::etg::to_json (nlohmann::json &j, const EsiFile &v)