Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
firmware_package.cc File Reference
#include "node/firmware_package.h"
#include <zip.h>
#include <algorithm>
#include <cctype>
#include <cstddef>
#include <expected>
#include <format>
#include <memory>
#include <nlohmann/json.hpp>
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
Include dependency graph for firmware_package.cc:

Namespaces

namespace  mm
 
namespace  mm::node
 

Functions

std::expected< FirmwarePackageName, std::string > mm::node::parseFirmwarePackageName (std::string_view filename)
 Decodes filename as a SOMANET firmware package name.
 
std::expected< FirmwarePackage, std::string > mm::node::openFirmwarePackage (std::span< const uint8_t > zip, std::span< const std::string > skipFiles)
 Reads a firmware package zip held in memory, dropping the entries named in skipFiles.
 
void mm::node::to_json (nlohmann::json &j, const FirmwarePackageName &name)
 Serialises a decoded package name — the body of GET /api/firmware-package-name.
 
FullFirmwareDescriptors mm::node::fullFirmwareDescriptors (const HardwareDescription &description, const IntegroVariant *variant)
 Assembles the descriptors description accepts, appending variant's fieldbus character when there is one.
 
std::string_view mm::node::toString (FirmwareMatch match)
 What a match is called, for a message or a JSON body: "none", "assembly", "device".
 
FirmwareCompatibility mm::node::checkFirmwareCompatibility (const HardwareDescription &description, const FirmwarePackageName &packageName, const IntegroVariant *variant=nullptr)
 Decides whether packageName belongs on the hardware description describes.
 
std::expected< FirmwareCompatibility, std::string > mm::node::checkFirmwareCompatibility (std::string_view hardwareDescriptionContent, std::string_view packageFilename, const IntegroVariant *variant=nullptr)
 Parses both inputs, then decides — the whole check from a file's text and a filename.
 
void mm::node::to_json (nlohmann::json &j, const FullFirmwareDescriptors &descriptors)
 Serialises the descriptors and a verdict.
 
void mm::node::to_json (nlohmann::json &j, const FirmwareCompatibility &compatibility)