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

A SOMANET firmware package filename, broken into the five fields the naming convention defines (Hardware description specification §3.4.2). More...

#include <firmware_package.h>

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

Public Member Functions

std::optional< std::string > buildDescriptor () const
 The buildDescriptorfirmwareId and firmwareVersion joined, e.g. "8500-04".
 

Public Attributes

std::string description
 Always "package" for a firmware bundle.
 
std::string hardwareName
 Human-readable hardware name, e.g. "SOMANET-Circulo-7".
 
std::string fullFirmwareDescriptor
 The hardware this is built for, e.g. "8500-04-2332".
 
std::string softwareName
 Firmware or software name, e.g. "motion-drive".
 
std::string softwareVersion
 Its version including the leading 'v', e.g. "v5.6.10".
 
Decoded full firmware descriptor

Present only when fullFirmwareDescriptor follows the numeric <firmwareId>-<firmwareVersion>[-<keyId>[-<fieldbusProtocol>]] convention. The specification explicitly allows a descriptor that does not — its own example Branded-Drive-Elite carries MyProduct-v25-key3-ecat — so these are an optional bonus for display, never something the install or a compatibility check depends on: matching is done on the whole descriptor string.

Kept as text rather than numbers so a descriptor survives being decoded and shown: a firmwareVersion of "04" keeps its leading zero, and a keyId of "A" (which real packages carry) stays "A" rather than becoming a failed number.

std::optional< std::string > firmwareId
 e.g. "8500".
 
std::optional< std::string > firmwareVersion
 Hardware revision, e.g. "04".
 
std::optional< std::string > keyId
 Firmware encryption key id, e.g. "2332".
 
std::optional< std::string > fieldbusProtocol
 Hexadecimal character; "1" = EtherCAT.
 

Detailed Description

A SOMANET firmware package filename, broken into the five fields the naming convention defines (Hardware description specification §3.4.2).

The grammar is package_<hardware-name>_<fullFirmwareDescriptor>_<software-name>_v<version>.zip — five underscore-separated fields, dashes standing in for spaces within a field. For example package_SOMANET-Circulo-7_8500-04-2332_motion-drive_v5.6.10.zip.

Member Function Documentation

◆ buildDescriptor()

std::optional< std::string > mm::node::FirmwarePackageName::buildDescriptor ( ) const

The buildDescriptorfirmwareId and firmwareVersion joined, e.g. "8500-04".

Nothing when the descriptor is not the numeric kind. Useful for saying how a package missed: a matching build descriptor with a different key means right hardware, wrong encryption key.

Member Data Documentation

◆ description

std::string mm::node::FirmwarePackageName::description

Always "package" for a firmware bundle.

◆ fieldbusProtocol

std::optional<std::string> mm::node::FirmwarePackageName::fieldbusProtocol

Hexadecimal character; "1" = EtherCAT.

◆ firmwareId

std::optional<std::string> mm::node::FirmwarePackageName::firmwareId

e.g. "8500".

◆ firmwareVersion

std::optional<std::string> mm::node::FirmwarePackageName::firmwareVersion

Hardware revision, e.g. "04".

◆ fullFirmwareDescriptor

std::string mm::node::FirmwarePackageName::fullFirmwareDescriptor

The hardware this is built for, e.g. "8500-04-2332".

◆ hardwareName

std::string mm::node::FirmwarePackageName::hardwareName

Human-readable hardware name, e.g. "SOMANET-Circulo-7".

◆ keyId

std::optional<std::string> mm::node::FirmwarePackageName::keyId

Firmware encryption key id, e.g. "2332".

◆ softwareName

std::string mm::node::FirmwarePackageName::softwareName

Firmware or software name, e.g. "motion-drive".

◆ softwareVersion

std::string mm::node::FirmwarePackageName::softwareVersion

Its version including the leading 'v', e.g. "v5.6.10".


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