#ifndef _STRUCTURE #define _STRUCTURE #include "Input.h" #include "Output.h" #include "Motor.h" #define MAX_MODULE 32 #define MAX_MODULE_INPUT 11 // 16 #define MAX_MODULE_OUTPUT 15 #define MAX_MODULE_MOTOR 16 struct stModule { stModule() { nNoOfInput = 0; nNoOfOutput = 0; nNoOfMotor = 0; for (int i = 0; i < MAX_MOTOR_MODULE_ARRAY; i++) { Motor[i] = nullptr; } } bool HasMotors() { return nNoOfMotor > 0; } CString csName; CInputSetting Input[MAX_IO_MODULE_ARRAY]; int nNoOfInput; COutputSetting Output[MAX_IO_MODULE_ARRAY]; int nNoOfOutput; CMtrProfile *Motor[MAX_MOTOR_MODULE_ARRAY]; int nNoOfMotor; }; // input and output module data structure for Maintenance page struct stMaintIoModule { CString m_csModuleName; // store module name CString m_csIoName[MAX_IO_MODULE_ARRAY]; // MAX_MODULE_INPUT]; // store input name }; // Gary 21Dec10, V1.23.02 for multilanguage motor name and motor position name // for Maintenance page struct stMaintMotorModule { CString m_csModuleName; // store module name CString m_csMtrName[MAX_MOTOR]; // store motor name CStringArray m_csaMtrPos[MAX_MOTOR]; // store Motor Position Name }; // user change accordingly to suit the machine requirement struct stLotInfo { CString csLotStarted; CString csLotName; long lLotQty; CString csShiftID; CString csOperatorID; CString csLotStartTime; CString csRecipeName; CString csPackageName; }; struct stRecipeInfo { CString csRecipeName; CString csPackageName; }; struct stPackageInfo { CString csPackageName; int nPackageID; }; // Light Config typedef struct _LIGHT_CONFIG { int iRed; int iAmber; int iGreen; int iBuzzer; int iLightOnTime; int iLightOffTime; int iBuzzerOnTime; int iBuzzerOffTime; // ctor _LIGHT_CONFIG() { iRed = 1; iAmber = 1; iGreen = 1; iBuzzer = 0; iLightOnTime = 500; iLightOffTime = 500; iBuzzerOnTime = 500; iBuzzerOffTime = 500; }; } LIGHT_CONFIG; // #endif