224 lines
5.4 KiB
C++
224 lines
5.4 KiB
C++
#include "SystemInfo.h"
|
|
#include <vector>
|
|
#include "config/ConfigManager.h"
|
|
|
|
|
|
SystemInfo::SystemInfo()
|
|
{
|
|
InitializeCriticalSection(&m_MStatueCS);
|
|
InitializeCriticalSection(&m_InfoCs);
|
|
m_TestOutputState = 65535;
|
|
m_TestInputState = 65535;
|
|
m_TestExtout1State = 65535;
|
|
m_TestExtin1State = 65535;
|
|
m_WindValue = 0.0f;
|
|
m_PlatformTemp = 0.0f;
|
|
m_PlatformTempSettingValue = 0.0f;
|
|
m_PrintRemainTime = 0;
|
|
m_PauseRemainTime = 0;
|
|
m_MoldMainPos = 0.0f;
|
|
m_MoldSlavePos = 0.0f;
|
|
m_ArmPos = 0.0f;
|
|
m_IsDedustingStopAlarm = false;
|
|
m_IsOxygenSensorConnect = false;
|
|
m_IsHeatingConnect = false;
|
|
//m_LinearEncoderPos = 0.0f;
|
|
m_PowderQtyPos = 0.0f;
|
|
m_FanFrequency = 0.0f;
|
|
m_PrintAirEvacuationNeedOpen = false;
|
|
m_PurifierCtrlPrintAirEvacuation = false;
|
|
m_PrintTemp = 0.0f;
|
|
m_PrintHumidity = 0.0f;
|
|
m_WaterTemp = 0.0f;
|
|
m_PipeWaterTemp = 0.0f;
|
|
//m_PowderJarCabinPressureVoltage=0.0f;
|
|
//m_PowderJarCabinPressure=0.0f;
|
|
}
|
|
|
|
SystemInfo::~SystemInfo()
|
|
{
|
|
DeleteCriticalSection(&m_MStatueCS);
|
|
DeleteCriticalSection(&m_InfoCs);
|
|
}
|
|
|
|
void SystemInfo::SetDedustingStopAlarm(bool bvalue)
|
|
{
|
|
LockInfo();
|
|
m_IsDedustingStopAlarm = bvalue;
|
|
UnlockInfo();
|
|
}
|
|
|
|
bool SystemInfo::IsDedustingStopAlarm()
|
|
{
|
|
bool rel = false;
|
|
LockInfo();
|
|
rel = m_IsDedustingStopAlarm;
|
|
UnlockInfo();
|
|
return rel;
|
|
}
|
|
|
|
|
|
void SystemInfo::LockInfo()
|
|
{
|
|
EnterCriticalSection(&m_InfoCs);
|
|
}
|
|
|
|
void SystemInfo::UnlockInfo()
|
|
{
|
|
LeaveCriticalSection(&m_InfoCs);
|
|
}
|
|
|
|
float SystemInfo::GetPowderQty()
|
|
{
|
|
float value = 0.0f;
|
|
LockInfo();
|
|
value = m_PowderQtyPos;
|
|
UnlockInfo();
|
|
return value;
|
|
}
|
|
|
|
|
|
|
|
void SystemInfo::GetEnvInfo(EnvInfo& envInfo)
|
|
{
|
|
LockInfo();
|
|
envInfo.m_OxygenRealTimeValue1 = m_ComPrintOxygen1;
|
|
envInfo.m_OxygenRealTimeValue2 = m_ComPrintOxygen2;
|
|
envInfo.m_WindValue = m_WindValue;
|
|
envInfo.m_AnaWindValue = m_WindValue;
|
|
envInfo.m_InnerTemp = m_PrintTemp;
|
|
envInfo.m_PlatformTemp = m_PlatformTemp;
|
|
envInfo.m_PlatformTempSettingValue = m_PlatformTempSettingValue;
|
|
envInfo.m_MoldPos = m_MoldMainPos;
|
|
envInfo.m_ArmPos = m_ArmPos;
|
|
envInfo.m_PowderPos = 0.0f;
|
|
envInfo.m_FanFrequency = m_FanFrequency;
|
|
envInfo.m_IsDedustingStopAlarm = m_IsDedustingStopAlarm;
|
|
envInfo.jobCostMil = m_StateBean.jobCostMil;
|
|
envInfo.remainMil = m_StateBean.remainMil;
|
|
envInfo.realCostSeconds = m_StateBean.realCostSeconds;
|
|
envInfo.m_IsOxygenSensorConnect = m_IsOxygenSensorConnect;
|
|
envInfo.m_IsHeatingConnect = m_IsHeatingConnect;
|
|
envInfo.m_RemainPowder = m_RemainPowder;
|
|
envInfo.m_PipeWaterTemp = m_PipeWaterTemp;
|
|
envInfo.m_EnvState = m_EnvState;
|
|
UnlockInfo();
|
|
}
|
|
|
|
|
|
#if 0
|
|
void SystemInfo::SetTestOutput(int index, bool flag)
|
|
{
|
|
IOCfgWrapper* ioCfgWrapper = ConfigManager::GetInstance()->GetIoCfgWrapper();
|
|
if (!ioCfgWrapper)return;
|
|
vector<IOCfg*>* cfgs = &ioCfgWrapper->m_OutputCfgs;
|
|
for (size_t i = 0; i < cfgs->size(); ++i) {
|
|
IOCfg* cfg = (*cfgs)[i];
|
|
if (cfg->m_index == index) {
|
|
if (cfg->m_isLowEffective) {
|
|
if (flag) {
|
|
m_TestOutputState = m_TestOutputState&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
else {
|
|
m_TestOutputState = m_TestOutputState | (1 << (cfg->m_index - 1));
|
|
}
|
|
}
|
|
else {
|
|
if (flag) {
|
|
m_TestOutputState = m_TestOutputState | (1 << (cfg->m_index - 1));
|
|
}
|
|
else {
|
|
m_TestOutputState = m_TestOutputState&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void SystemInfo::SetTestInput(int index, bool flag)
|
|
{
|
|
IOCfgWrapper* ioCfgWrapper = ConfigManager::GetInstance()->GetIoCfgWrapper();
|
|
vector<IOCfg*>* cfgs = &ioCfgWrapper->m_InputCfgs;
|
|
for (size_t i = 0; i < cfgs->size(); ++i) {
|
|
IOCfg* cfg = (*cfgs)[i];
|
|
if (cfg->m_index == index) {
|
|
if (cfg->m_isLowEffective) {
|
|
if (flag) {
|
|
m_TestInputState = m_TestInputState&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
else {
|
|
m_TestInputState = m_TestInputState | (1 << (cfg->m_index - 1));
|
|
}
|
|
}
|
|
else {
|
|
if (flag) {
|
|
m_TestInputState = m_TestInputState | (1 << (cfg->m_index - 1));
|
|
}
|
|
else {
|
|
m_TestInputState = m_TestInputState&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void SystemInfo::SetTestExtOut1(int index, bool flag)
|
|
{
|
|
IOCfgWrapper* ioCfgWrapper = ConfigManager::GetInstance()->GetIoCfgWrapper();
|
|
vector<IOCfg*>* cfgs = &ioCfgWrapper->m_Extout1Cfgs;
|
|
for (size_t i = 0; i < cfgs->size(); ++i) {
|
|
IOCfg* cfg = (*cfgs)[i];
|
|
if (cfg->m_index == index) {
|
|
if (cfg->m_isLowEffective) {
|
|
if (flag) {
|
|
m_TestExtout1State = m_TestExtout1State&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
else {
|
|
m_TestExtout1State = m_TestExtout1State | (1 << (cfg->m_index - 1));
|
|
}
|
|
}
|
|
else {
|
|
if (flag) {
|
|
m_TestExtout1State = m_TestExtout1State | (1 << (cfg->m_index - 1));
|
|
}
|
|
else {
|
|
m_TestExtout1State = m_TestExtout1State&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void SystemInfo::SetTestExtIn1(int index, bool flag)
|
|
{
|
|
IOCfgWrapper* ioCfgWrapper = ConfigManager::GetInstance()->GetIoCfgWrapper();
|
|
vector<IOCfg*>* cfgs = &ioCfgWrapper->m_Extin1Cfgs;
|
|
for (size_t i = 0; i < cfgs->size(); ++i) {
|
|
IOCfg* cfg = (*cfgs)[i];
|
|
if (cfg->m_index == index) {
|
|
if (cfg->m_isLowEffective) {
|
|
if (flag) {
|
|
m_TestExtin1State = m_TestExtin1State&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
else {
|
|
m_TestExtin1State = m_TestExtin1State | (1 << (cfg->m_index - 1));
|
|
}
|
|
}
|
|
else {
|
|
if (flag) {
|
|
m_TestExtin1State = m_TestExtin1State | (1 << (cfg->m_index - 1));
|
|
}
|
|
else {
|
|
m_TestExtin1State = m_TestExtin1State&(~(1 << (cfg->m_index - 1)));
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
#endif
|