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

A device or an assembly — the two are one shape (specification §3.2.2). More...

#include <hardware_description.h>

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

Public Member Functions

std::string buildDescriptor () const
 The buildDescriptor: id and version joined by a dash, e.g. "9501-01".
 

Public Attributes

std::string name
 Human-readable description of the hardware. Required.
 
std::string imageId
 Names the product's picture, e.g. "9501-xx". Optional.
 
std::string id
 firmwareId — identifies the hardware product, e.g. "9501".
 
std::string version
 firmwareVersion — revision of that product, e.g. "01".
 
std::string keyId
 Firmware encryption key burned to OTP, e.g. "4622". Device only.
 
std::string serialNumber
 Identifies this particular unit. Optional.
 
std::string macAddress
 MAC address of the Ethernet port. Device only, optional.
 
std::vector< HardwareComponentcomponents
 What this product is made of. Optional.
 

Detailed Description

A device or an assembly — the two are one shape (specification §3.2.2).

The specification introduces both as concepts rather than as one type with two roles, and lists their fields in a single table: they differ only in that keyId and macAddress are device-only. One struct for both is what that table describes, and it is what makes buildDescriptor a single function rather than two that must not drift apart.

"Product" is the specification's own word for what these describe — id "identifies the hardware product" — which is why it names the type that has to cover both.

Member Function Documentation

◆ buildDescriptor()

std::string mm::node::HardwareProduct::buildDescriptor ( ) const

The buildDescriptor: id and version joined by a dash, e.g. "9501-01".

Named for what the specification calls it in §3.3 (also written BUILD_DESCRIPTOR there), and deliberately not "versioned product id" or any of the other names this string has collected.

Member Data Documentation

◆ components

std::vector<HardwareComponent> mm::node::HardwareProduct::components

What this product is made of. Optional.

◆ id

std::string mm::node::HardwareProduct::id

firmwareId — identifies the hardware product, e.g. "9501".

◆ imageId

std::string mm::node::HardwareProduct::imageId

Names the product's picture, e.g. "9501-xx". Optional.

◆ keyId

std::string mm::node::HardwareProduct::keyId

Firmware encryption key burned to OTP, e.g. "4622". Device only.

◆ macAddress

std::string mm::node::HardwareProduct::macAddress

MAC address of the Ethernet port. Device only, optional.

◆ name

std::string mm::node::HardwareProduct::name

Human-readable description of the hardware. Required.

◆ serialNumber

std::string mm::node::HardwareProduct::serialNumber

Identifies this particular unit. Optional.

◆ version

std::string mm::node::HardwareProduct::version

firmwareVersion — revision of that product, e.g. "01".


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