Motion Master 6.0.0-alpha.50
Next-generation motion control software
Loading...
Searching...
No Matches
device_manager.h File Reference
#include <atomic>
#include <chrono>
#include <cstdint>
#include <expected>
#include <iosfwd>
#include <memory>
#include <nlohmann/json_fwd.hpp>
#include <optional>
#include <shared_mutex>
#include <span>
#include <string>
#include <vector>
#include "comm/fieldbus_driver.h"
#include "node/device.h"
#include "node/parameter_cache.h"
#include "node/process_data_ring.h"
#include "node/process_image.h"
Include dependency graph for device_manager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mm::node::DeviceStateInfo
 Current AL state snapshot for a single device. More...
 
struct  mm::node::ProcessImageObjectInfo
 One mapped object in the published process image, with its name resolved. More...
 
struct  mm::node::ProcessImageInfo
 API-facing snapshot of the currently published process image and its runtime health. More...
 
struct  mm::node::OutputStageRequest
 One object to stage into the output process image, as parsed from a batch write request. More...
 
struct  mm::node::OutputStageResult
 Per-object outcome of a batch output stage. More...
 
struct  mm::node::SlaveConfigInfo
 A slave's static ESC configuration plus its resolved device name. More...
 
struct  mm::node::DeviceDiagnosticsInfo
 A slave's live ESC health diagnostics plus its resolved device name. More...
 
struct  mm::node::DcSyncInfo
 A slave's live distributed-clock sync status plus its resolved device name. More...
 
struct  mm::node::DeviceManagerConfig
 Runtime tuning passed to DeviceManager::init. Every field has a sensible default, so a caller can pass {} (or omit it) and override only what it cares about; new knobs can be added here without changing the init signature. More...
 
class  mm::node::DeviceManager
 Owns the fieldbus driver and node collection, and drives PDO exchange. More...
 
struct  mm::node::DeviceManager::PdoSampleSpec
 Everything needed to decode one PDO object from a raw process-image snapshot: which image it lives in, where, and how wide / what type. More...
 

Namespaces

namespace  mm
 
namespace  mm::node
 

Functions

void mm::node::to_json (nlohmann::json &j, const DeviceStateInfo &info)
 Serialises a DeviceStateInfo to JSON.
 
void mm::node::to_json (nlohmann::json &j, const ProcessImageObjectInfo &obj)
 Serialises a ProcessImageObjectInfo to JSON.
 
void mm::node::to_json (nlohmann::json &j, const ProcessImageInfo &info)
 Serialises a ProcessImageInfo to JSON.
 
void mm::node::to_json (nlohmann::json &j, const OutputStageResult &result)
 Serialises an OutputStageResult to JSON.
 
void mm::node::to_json (nlohmann::json &j, const SlaveConfigInfo &info)
 Serialises a SlaveConfigInfo (and its nested SM/FMMU/mailbox/DC) to JSON.
 
void mm::node::to_json (nlohmann::json &j, const DeviceDiagnosticsInfo &info)
 Serialises a DeviceDiagnosticsInfo (and its nested per-port counters) to JSON.
 
void mm::node::to_json (nlohmann::json &j, const DcSyncInfo &info)
 Serialises a DcSyncInfo to JSON.
 
void mm::node::to_json (nlohmann::json &j, const DeviceManager &dm)
 Serialises all devices in a DeviceManager to a JSON array.