Motion Master 6.0.0-alpha.50
Next-generation motion control software
Loading...
Searching...
No Matches
process_image.h File Reference
#include <array>
#include <cstdint>
#include <expected>
#include <optional>
#include <span>
#include <string>
#include <type_traits>
#include <vector>
#include "comm/fieldbus_driver.h"
Include dependency graph for process_image.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mm::node::ProcessBuffer
 Fixed-capacity byte buffer for one direction of the process image. More...
 
struct  mm::node::ProcessImageEntry
 Locates one mapped object within the flat process image. More...
 
struct  mm::node::ProcessImage
 The whole bus's process-data layout, resolved to absolute positions. More...
 
struct  mm::node::ProcessImage::Location
 Where a mapped object sits in the image, and which direction it belongs to. More...
 

Namespaces

namespace  mm
 
namespace  mm::node
 

Functions

std::vector< uint8_t > mm::node::extractBits (std::span< const uint8_t > src, uint32_t bitOffset, uint16_t bitLength)
 Extracts bitLength bits at bitOffset from src into a fresh LSB-aligned little-endian byte vector (ceil(bitLength/8) bytes), as the SDO encoding would.
 
void mm::node::insertBits (std::span< uint8_t > dst, uint32_t bitOffset, uint16_t bitLength, std::span< const uint8_t > value)
 Inserts bitLength bits of value (LSB-first) into dst at bitOffset.
 
std::expected< ProcessImage, std::string > mm::node::buildProcessImage (const mm::comm::PdoLayout &layout, const std::vector< Device > &devices)
 Assembles a ProcessImage from the driver layout and per-device PDO mappings.