Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
mm::node::ProcessImageInfo Struct Reference

API-facing snapshot of the currently published process image and its runtime health. More...

#include <device_manager.h>

Collaboration diagram for mm::node::ProcessImageInfo:
[legend]

Public Attributes

bool configured = false
 Whether an image is currently published for exchange.
 
uint32_t outputBytes = 0
 Size of the output image (master→slave).
 
uint32_t inputBytes = 0
 Size of the input image (slave→master).
 
int expectedWkc = 0
 Working counter expected from the devices currently exchanging.
 
int lastWkc = 0
 Working counter from the most recent exchange (0 before any).
 
bool healthy = false
 
uint64_t shortWkcCycles = 0
 
uint64_t firstShortWkcUs = 0
 Epoch microseconds of the first such cycle (0 if none).
 
uint64_t lastShortWkcUs = 0
 Epoch microseconds of the most recent one (0 if none).
 
std::size_t generations = 0
 Number of process images retained since the last reset().
 
std::vector< ProcessImageObjectInfooutputs
 Output-mapped objects in image order.
 
std::vector< ProcessImageObjectInfoinputs
 Input-mapped objects in image order.
 

Detailed Description

API-facing snapshot of the currently published process image and its runtime health.

Built on the calling (non-RT) thread by DeviceManager::processImageInfo. When an image is live (configured true) the layout describes it. When no image is published (configured false) but generations were mapped since the last reset(), the byte sizes and object lists describe the most recent retained generation — the last-known layout — so a bus that has dropped out of SAFE-OP/OP remains inspectable; lastWkc then holds the final exchange value while expectedWkc reflects the now-idle bus. The lists are empty only before any image has ever been mapped.

Member Data Documentation

◆ configured

bool mm::node::ProcessImageInfo::configured = false

Whether an image is currently published for exchange.

◆ expectedWkc

int mm::node::ProcessImageInfo::expectedWkc = 0

Working counter expected from the devices currently exchanging.

◆ firstShortWkcUs

uint64_t mm::node::ProcessImageInfo::firstShortWkcUs = 0

Epoch microseconds of the first such cycle (0 if none).

◆ generations

std::size_t mm::node::ProcessImageInfo::generations = 0

Number of process images retained since the last reset().

◆ healthy

bool mm::node::ProcessImageInfo::healthy = false

Whether the last working counter meets the expected value.

◆ inputBytes

uint32_t mm::node::ProcessImageInfo::inputBytes = 0

Size of the input image (slave→master).

◆ inputs

std::vector<ProcessImageObjectInfo> mm::node::ProcessImageInfo::inputs

Input-mapped objects in image order.

◆ lastShortWkcUs

uint64_t mm::node::ProcessImageInfo::lastShortWkcUs = 0

Epoch microseconds of the most recent one (0 if none).

◆ lastWkc

int mm::node::ProcessImageInfo::lastWkc = 0

Working counter from the most recent exchange (0 before any).

◆ outputBytes

uint32_t mm::node::ProcessImageInfo::outputBytes = 0

Size of the output image (master→slave).

◆ outputs

std::vector<ProcessImageObjectInfo> mm::node::ProcessImageInfo::outputs

Output-mapped objects in image order.

◆ shortWkcCycles

uint64_t mm::node::ProcessImageInfo::shortWkcCycles = 0

Cycles that answered short since the bus came up. healthy is a sample and can miss a fault that already cleared; this cannot.


The documentation for this struct was generated from the following file: