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.

117 lines
2.4 KiB
C++

#pragma once
#include "Input.h"
#include "Output.h"
#include "Motor.h"
#include "nlohmann\json.hpp"
constexpr auto MAX_MODULE = 32;
constexpr auto MAX_MODULE_INPUT = 11;
constexpr auto MAX_MODULE_OUTPUT = 15;
constexpr auto MAX_MODULE_MOTOR = 16;
using stNetAddress = struct _stNetAddress
{
std::string strIpAddress{ "127.0.0.1" };
int nPort{ 400 };
};
//
using stComSetting = struct _stComSetting
{
std::string strCommPort{ "COM1" };
long lBaudRate{ 9600 };
std::string strParity{ "None" };
int nDataBits{ 8 };
double dStopBits{ 1.0 };
std::string strFlowCtrl{};
};
using stModule = struct _stModule
{
_stModule()
{
for (auto& mtr : Motor) {
mtr = nullptr;
}
}
_stModule(const std::string& _strName) : strName(_strName)
{
}
bool HasMotors()
{
return Motor.size() > 0;
}
std::string strName;
std::vector<CInputSetting> Input;
std::vector<COutputSetting> Output;
std::vector<std::unique_ptr<CMtrProfile>> Motor{};
};
// input and output module data structure for Maintenance page
struct stMaintIoModule
{
std::string m_strModuleName; // store module name
std::vector<std::string> m_strIoName; // MAX_MODULE_INPUT]; // store input name
};
// for multilanguage motor name and motor position name
// for Maintenance page
struct stMaintMotorModule
{
std::string m_strModuleName; // store module name
std::string m_strMtrName[MAX_MOTOR]; // store motor name
std::vector<std::string> m_vecMtrPos[MAX_MOTOR]; // store Motor Position Name
};
// user change accordingly to suit the machine requirement
struct stLotInfo
{
std::string strLotStarted;
std::string strLotName;
long lLotQty;
std::string strShiftID;
std::string strOperatorID;
std::string strLotStartTime;
std::string strRecipeName;
std::string strPackageName;
};
struct stRecipeInfo
{
std::string strRecipeName;
std::string strPackageName;
};
struct stPackageInfo
{
std::string strPackageName;
int nPackageID;
};
// Light Config
using LIGHT_CONFIG = struct _LIGHT_CONFIG {
int iMcState{ 0 };
int iRed{ 1 };
int iAmber{ 1 };
int iGreen{ 1 };
int iBlue{ 0 };
int iWhite{ 0 };
int iBuzzer{ 0 };
int iLightOnTime{ 500 };
int iLightOffTime{ 500 };
int iBuzzerOnTime{ 500 };
int iBuzzerOffTime{ 500 };
NLOHMANN_DEFINE_TYPE_INTRUSIVE(_LIGHT_CONFIG, iMcState, iRed, iAmber, iGreen, iBlue, iWhite, iBuzzer, iLightOnTime, iLightOffTime, iBuzzerOnTime, iBuzzerOffTime)
};