You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
C++
63 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "nlohmann/json.hpp"
|
|
|
|
#include "DllDefines.h"
|
|
|
|
constexpr char* PATH_SUBPOSITIONS = "d:/machine/interprocess/runtime/subpositions/";
|
|
|
|
using stSubPosition = struct _stSubPosition
|
|
{
|
|
|
|
std::string SubPositionName;
|
|
double PositionValue;
|
|
int PositionIndex;
|
|
|
|
NLOHMANN_DEFINE_TYPE_INTRUSIVE(_stSubPosition,
|
|
SubPositionName,
|
|
PositionValue,
|
|
PositionIndex)
|
|
};
|
|
|
|
using stPosition = struct _stPosition
|
|
{
|
|
|
|
std::string PositionName;
|
|
std::vector<stSubPosition> MotorSubPositions;
|
|
|
|
NLOHMANN_DEFINE_TYPE_INTRUSIVE(_stPosition,
|
|
PositionName,
|
|
MotorSubPositions)
|
|
};
|
|
|
|
using stMotor = struct _stMotor
|
|
{
|
|
|
|
std::string MotorName;
|
|
std::vector<stPosition> MotorPositions;
|
|
|
|
NLOHMANN_DEFINE_TYPE_INTRUSIVE(_stMotor, MotorName, MotorPositions)
|
|
};
|
|
|
|
using stRuntimeMotorSubPosition = struct _stRuntimeMotorSubPoistion
|
|
{
|
|
|
|
std::string ModuleName;
|
|
std::vector<stMotor> Motors;
|
|
|
|
NLOHMANN_DEFINE_TYPE_INTRUSIVE(_stRuntimeMotorSubPoistion, ModuleName, Motors)
|
|
};
|
|
|
|
class MCCTRDLLCLASS CMotorSubPositionParser
|
|
{
|
|
public:
|
|
bool Deserialize(const std::string& strFileName, stRuntimeMotorSubPosition& myOption);
|
|
bool Serialize(const std::string& strFilename, const stRuntimeMotorSubPosition& _myOption);
|
|
|
|
bool Deserialize(const std::string& strFileName, std::vector<stRuntimeMotorSubPosition>& myOption);
|
|
bool Serialize(const std::string& strFilename, const std::vector<stRuntimeMotorSubPosition>& _myOption);
|
|
};
|