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.
68 lines
1.5 KiB
C++
68 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "nlohmann/json.hpp"
|
|
|
|
#include "GeneralUtils.h"
|
|
|
|
namespace nsMMF
|
|
{
|
|
// !!! Do Not change the order to support MMF use case
|
|
using OutputStatus = struct _OutputStatus {
|
|
char PtName[80]{};
|
|
bool On{ false };
|
|
// Padding
|
|
bool Padding1{ false };
|
|
bool Padding2{ false };
|
|
bool Padding3{ false };
|
|
bool Padding4{ false };
|
|
bool Padding5{ false };
|
|
bool Padding6{ false };
|
|
bool Padding7{ false };
|
|
|
|
// Assignment operator overload
|
|
_OutputStatus& operator=(const _OutputStatus& rhs)
|
|
{
|
|
//
|
|
strcpy_s(PtName, rhs.PtName);
|
|
|
|
On = rhs.On;
|
|
//
|
|
Padding1 = rhs.Padding1;
|
|
Padding2 = rhs.Padding2;
|
|
Padding3 = rhs.Padding3;
|
|
Padding4 = rhs.Padding4;
|
|
Padding5 = rhs.Padding5;
|
|
Padding6 = rhs.Padding6;
|
|
Padding7 = rhs.Padding7;
|
|
//
|
|
return *this;
|
|
}
|
|
};
|
|
}
|
|
|
|
namespace nsMMF
|
|
{
|
|
using namespace nlohmann;
|
|
using namespace nsUtils;
|
|
|
|
void from_json(const json& j, OutputStatus& x);
|
|
void to_json(json& j, const OutputStatus& x);
|
|
|
|
|
|
inline void from_json(const json& j, OutputStatus& x)
|
|
{
|
|
std::string name = j.at("PtName").get<std::string>();
|
|
strcpy_s(x.PtName, name.c_str());
|
|
|
|
getValue(j, "On", x.On);
|
|
}
|
|
|
|
inline void to_json(json& j, const OutputStatus& x)
|
|
{
|
|
j = nlohmann::json{
|
|
{ "PtName", x.PtName },
|
|
{ "On", x.On }
|
|
};
|
|
}
|
|
|
|
} |