1024 lines
41 KiB
C++
1024 lines
41 KiB
C++
#include "PurifierClient.h"
|
|
//#include "S7Command.h"
|
|
#include "../global.h"
|
|
#include "../SystemInfo.h"
|
|
//#include "../PLC/SignalService.h"
|
|
#include "../utils/DataByte.h"
|
|
#include "../DataManage/DataHandle.h"
|
|
|
|
PurifierClient::PurifierClient(void* pconfig) :S7Client(pconfig)
|
|
{
|
|
m_RunCfg = ConfigManager::Instance()->GetRunCfg();
|
|
m_ExtCfg = ConfigManager::Instance()->GetExtCfg();
|
|
m_AlarmCfgWrapper = ConfigManager::Instance()->GetAlarmCfg();
|
|
}
|
|
|
|
|
|
PurifierClient::~PurifierClient()
|
|
{
|
|
Shutdown();
|
|
}
|
|
|
|
//void PurifierClient::InitCommand()
|
|
//{
|
|
// S7Command* pcommand = new S7Command(S7_COMMAND_READ_INFO, READ_ITEM_COUNT);
|
|
// TS7DataItem* items = pcommand->getDataItems();
|
|
// int itemFlag = 0;
|
|
// items[itemFlag].Area = S7AreaMK;
|
|
// items[itemFlag].WordLen = S7WLByte;
|
|
// items[itemFlag].Start = 0;
|
|
// items[itemFlag].Amount = 6;
|
|
// items[itemFlag].pdata = new unsigned char[6];
|
|
//
|
|
// //VD_中效过滤器压力实值
|
|
// itemFlag = 1;
|
|
// items[itemFlag].Area = S7AreaDB;
|
|
// items[itemFlag].WordLen = S7WLByte;
|
|
// items[itemFlag].DBNumber = 1;
|
|
// items[itemFlag].Start = 0;
|
|
// items[itemFlag].Amount = 206;
|
|
// items[itemFlag].pdata = new unsigned char[206];
|
|
//
|
|
// pcommand->m_Ref = this;
|
|
// pcommand->m_Fun = &PurifierClient::ProcReadInfoXT;
|
|
// pcommand->isNeedDel = false;
|
|
//
|
|
// S7Command* pcommand2 = new S7Command(S7_COMMAND_READ_INFO, READ_ITEM_COUNT2);
|
|
// TS7DataItem* items2 = pcommand2->getDataItems();
|
|
// //报警信息
|
|
// itemFlag = 0;
|
|
//
|
|
// //报警信息
|
|
// items2[itemFlag].Area = S7AreaDB;
|
|
// items2[itemFlag].WordLen = S7WLByte;
|
|
// items2[itemFlag].DBNumber = 1;
|
|
// items2[itemFlag].Start = 389;
|
|
// items2[itemFlag].Amount = 2;
|
|
// items2[itemFlag].pdata = new unsigned char[2];
|
|
//
|
|
// //最大风速
|
|
// itemFlag = 1;
|
|
// items2[itemFlag].Area = S7AreaDB;
|
|
// items2[itemFlag].WordLen = S7WLByte;
|
|
// items2[itemFlag].DBNumber = 1;
|
|
// items2[itemFlag].Start = 550;
|
|
// items2[itemFlag].Amount = 8;
|
|
// items2[itemFlag].pdata = new unsigned char[8];
|
|
//
|
|
// itemFlag = 2;
|
|
// items2[itemFlag].Area = S7AreaDB;
|
|
// items2[itemFlag].WordLen = S7WLByte;
|
|
// items2[itemFlag].DBNumber = 1;
|
|
// items2[itemFlag].Start = 594;
|
|
// items2[itemFlag].Amount = 1;
|
|
// items2[itemFlag].pdata = new unsigned char[1];
|
|
//
|
|
// itemFlag = 3;
|
|
// items2[itemFlag].Area = S7AreaDB;
|
|
// items2[itemFlag].WordLen = S7WLByte;
|
|
// items2[itemFlag].DBNumber = 1;
|
|
// items2[itemFlag].Start = 696;
|
|
// items2[itemFlag].Amount = 4;
|
|
// items2[itemFlag].pdata = new unsigned char[4];
|
|
//
|
|
// itemFlag = 4;
|
|
// items2[itemFlag].Area = S7AreaDB;
|
|
// items2[itemFlag].WordLen = S7WLByte;
|
|
// items2[itemFlag].DBNumber = 1;
|
|
// items2[itemFlag].Start = 812;
|
|
// items2[itemFlag].Amount = 4;
|
|
// items2[itemFlag].pdata = new unsigned char[4];
|
|
//
|
|
// itemFlag = 5;
|
|
// items2[itemFlag].Area = S7AreaDB;
|
|
// items2[itemFlag].WordLen = S7WLByte;
|
|
// items2[itemFlag].DBNumber = 1;
|
|
// items2[itemFlag].Start = 846;
|
|
// items2[itemFlag].Amount = 4;
|
|
// items2[itemFlag].pdata = new unsigned char[4];
|
|
// pcommand2->m_Ref = this;
|
|
// pcommand2->m_Fun = &PurifierClient::ProcReadInfoXT2;
|
|
// pcommand2->isNeedDel = false;
|
|
//
|
|
//
|
|
// //写测氧值
|
|
// S7Command* oxygenPressureCom = new S7Command(S7_COMMAND_WRITE,2);
|
|
// TS7DataItem* dataItem = oxygenPressureCom->getDataItems();
|
|
// dataItem[0].Area = S7AreaDB;
|
|
// dataItem[0].DBNumber = 1;
|
|
// dataItem[0].Start = 408;
|
|
// dataItem[0].WordLen = S7WLByte;
|
|
// dataItem[0].Amount = 4;
|
|
// unsigned char* poxygenfloat = new unsigned char[4];
|
|
// S7FLOATDATA foxygendata;
|
|
// //EnterCriticalSection(&g_SystemInfo->m_InfoCs);
|
|
// foxygendata.fValue = (g_SystemInfo->m_ComPrintOxygen1 > g_SystemInfo->m_ComPrintOxygen2 ? g_SystemInfo->m_ComPrintOxygen1 : g_SystemInfo->m_ComPrintOxygen2);
|
|
// //LeaveCriticalSection(&g_SystemInfo->m_InfoCs);
|
|
// poxygenfloat[0] = foxygendata.data[3];
|
|
// poxygenfloat[1] = foxygendata.data[2];
|
|
// poxygenfloat[2] = foxygendata.data[1];
|
|
// poxygenfloat[3] = foxygendata.data[0];
|
|
// dataItem[0].pdata = poxygenfloat;
|
|
// m_OxygenWriteValue = (unsigned char*)dataItem[0].pdata;
|
|
//
|
|
// dataItem[1].Area = S7AreaDB;
|
|
// dataItem[1].DBNumber = 1;
|
|
// dataItem[1].Start = 20;
|
|
// dataItem[1].WordLen = S7WLByte;
|
|
// dataItem[1].Amount = 4;
|
|
// unsigned char* pfloat = new unsigned char[4];
|
|
// S7FLOATDATA fPressure;
|
|
// EnterCriticalSection(&g_SystemInfo->m_InfoCs);
|
|
// fPressure.fValue = g_SystemInfo->m_EnvState.m_PrintPressureAnalog;
|
|
// LeaveCriticalSection(&g_SystemInfo->m_InfoCs);
|
|
// pfloat[0] = fPressure.data[3];
|
|
// pfloat[1] = fPressure.data[2];
|
|
// pfloat[2] = fPressure.data[1];
|
|
// pfloat[3] = fPressure.data[0];
|
|
// dataItem[1].pdata = pfloat;
|
|
// m_PressureWriteValue = (unsigned char*)dataItem[1].pdata;
|
|
//
|
|
// oxygenPressureCom->m_Ref = this;
|
|
// oxygenPressureCom->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
// oxygenPressureCom->isNeedDel = false;
|
|
// oxygenPressureCom->m_PreWrite = &PurifierClient::ProcSetOxygenValue;
|
|
//
|
|
// m_CycleCommands.push_back(pcommand);
|
|
// m_CycleCommands.push_back(pcommand2);
|
|
// m_CycleCommands.push_back(oxygenPressureCom);
|
|
//}
|
|
|
|
|
|
//void PurifierClient::ProcReadInfoXT(void *pobject, Command* pcommand)
|
|
//{
|
|
// S7Command* s7Command = (S7Command*)pcommand;
|
|
// TS7DataItem* pdataItems = s7Command->getDataItems();
|
|
// int itemcount = s7Command->getItemCount();
|
|
// if (pobject == NULL || itemcount != READ_ITEM_COUNT)return;
|
|
// PurifierClient* ppw = (PurifierClient*)pobject;
|
|
// TS7DataItem pCtrl = pdataItems[0];
|
|
// TS7DataItem pPresure = pdataItems[1];
|
|
//
|
|
// TS7DataItem pBoxClean = pdataItems[2];
|
|
// TS7DataItem pWind = pdataItems[3];
|
|
// TS7DataItem pFilterTime = pdataItems[4];
|
|
// TS7DataItem pAlarm = pdataItems[5];
|
|
// TS7DataItem pMaxWind = pdataItems[6];
|
|
// TS7DataItem pCoverWindOffset = pdataItems[7];
|
|
//
|
|
// EnterCriticalSection(&ppw->m_ValueCS);
|
|
// if (pCtrl.Result == 0) {
|
|
// unsigned char* arr = (unsigned char*)pCtrl.pdata;
|
|
// unsigned char mdata0 = arr[0];
|
|
// unsigned char mdata1 = arr[1];
|
|
// unsigned char mdata2 = arr[2];
|
|
// unsigned char mdata3 = arr[3];
|
|
// unsigned char mdata4 = arr[4];
|
|
// unsigned char mdata5 = arr[5];
|
|
// ppw->m_Stat.isPurifying->SetValue(((mdata5 & 0x1) > 0 ? true : false));
|
|
// ppw->m_Stat.isDedusting->SetValue(((mdata0 & 0x4) ? true : false));
|
|
// ppw->m_Stat.isBoxCleaning->SetValue(((mdata0 & 0x40) ? true : false));
|
|
// ppw->m_Stat.isBlowBack->SetValue(((mdata1 & 0x2) ? true : false));
|
|
// ppw->m_Stat.isFilterDiscarding->SetValue(((mdata1 & 0x10) ? true : false));
|
|
// ppw->m_Stat.isFilterCleaning->SetValue(((mdata1 & 0x80) ? true : false));
|
|
// ppw->m_Stat.isHopperCleaning->SetValue(((mdata2 & 0x20) ? true : false));
|
|
// }
|
|
// if (pPresure.Result == 0) {
|
|
// unsigned char* pchar = (unsigned char*)pPresure.pdata;
|
|
// ppw->m_Stat.midPressureValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
|
// ppw->m_Stat.midPressureDifValue->SetValue(FLOATDATA(false, &pchar[4]).fValue);
|
|
// ppw->m_Stat.midTemperatureValue->SetValue(FLOATDATA(false, &pchar[8]).fValue);
|
|
// ppw->m_Stat.highPressureDifValue->SetValue(FLOATDATA(false, &pchar[12]).fValue);
|
|
// ppw->m_Stat.anemometerActualValue->SetValue(FLOATDATA(false, &pchar[16]).fValue);
|
|
// ppw->m_Stat.printPressureValue->SetValue(FLOATDATA(false, &pchar[20]).fValue);
|
|
// ppw->m_Stat.boxPressureUpLimit->SetValue(FLOATDATA(false, &pchar[28]).fValue);
|
|
// ppw->m_Stat.boxPressureDownLimit->SetValue(FLOATDATA(false, &pchar[32]).fValue);
|
|
// ppw->m_Stat.filterOxygenValue->SetValue(FLOATDATA(false, &pchar[48]).fValue);
|
|
// ppw->m_Stat.printOxygenValue->SetValue(FLOATDATA(false, &pchar[60]).fValue);
|
|
// ppw->m_Stat.midPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[64]).fValue);
|
|
// ppw->m_Stat.highPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[68]).fValue);
|
|
// ppw->m_Stat.printOxygenUpSetValue->SetValue(FLOATDATA(false, &pchar[76]).fValue);
|
|
// ppw->m_RunCfg->m_WarnOxygen = ppw->m_Stat.printOxygenUpSetValue->GetValue();
|
|
//
|
|
// ppw->m_Stat.boxWashTime->SetValue(((pchar[110] & 0xff) << 8) + (pchar[111] & 0xff));
|
|
// ppw->m_Stat.filterWashTime->SetValue(((pchar[112] & 0xff) << 8) + (pchar[113] & 0xff));
|
|
// ppw->m_Stat.boxWashDelayTime->SetValue(((pchar[114] & 0xff) << 8) + (pchar[115] & 0xff));
|
|
// ppw->m_Stat.dedustingWashDelayTime->SetValue(((pchar[116] & 0xff) << 8) + (pchar[117] & 0xff));
|
|
// ppw->m_Stat.hopperCleanRemind->SetValue(((pchar[118] & 0xff) << 8) + (pchar[119] & 0xff));
|
|
//
|
|
// ppw->m_Stat.printCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[142]).fValue);
|
|
// ppw->m_Stat.windSetValue->SetValue(FLOATDATA(false, &pchar[146]).fValue);
|
|
// ppw->m_Stat.windActualValue->SetValue(FLOATDATA(false, &pchar[150]).fValue);
|
|
// ppw->m_Stat.filterCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[158]).fValue);
|
|
// ppw->m_Stat.midTempHighSetValue->SetValue(FLOATDATA(false, &pchar[166]).fValue);
|
|
// ppw->m_Stat.midTempUltraSetValue->SetValue(FLOATDATA(false, &pchar[170]).fValue);
|
|
// ppw->m_Stat.oxygenAlarmValue->SetValue(FLOATDATA(false, &pchar[190]).fValue);
|
|
//
|
|
// //ppw->m_RunCfg->SetOxygenAlarmValue(ppw->m_Stat.oxygenAlarmValue);
|
|
// //ppw->m_RunCfg->SetOxygenTargeValue(ppw->m_Stat.printCleanOxygenSetValue);
|
|
// ppw->m_RunCfg->m_AlarmOxygen = ppw->m_Stat.oxygenAlarmValue->GetValue();
|
|
// ppw->m_RunCfg->m_TargeOxygen = ppw->m_Stat.printCleanOxygenSetValue->GetValue() + 50;
|
|
//
|
|
//
|
|
// FanFit* al = ppw->m_ExtCfg->m_FanWindFit[ppw->m_ExtCfg->m_SelectedFanWindFit];
|
|
// al->alarmWind = (ppw->m_Stat.windSetValue->GetValue() > 10.0f) ? (ppw->m_Stat.windSetValue->GetValue() - 10.0f) : 0.0f;
|
|
//
|
|
// ppw->m_Stat.filterTotalUseTime->SetValue(((pchar[194] & 0xff) << 8) + (pchar[195] & 0xff));
|
|
// ppw->m_Stat.usedTimeFromlastBowBack->SetValue(((pchar[196] & 0xff) << 8) + (pchar[197] & 0xff));
|
|
// ppw->m_Stat.bowBackTimes->SetValue(((pchar[198] & 0xff) << 8) + (pchar[199] & 0xff));
|
|
// ppw->m_Stat.hopperTimeLastClean->SetValue(((pchar[204] & 0xff) << 8) + (pchar[205] & 0xff));
|
|
//
|
|
//
|
|
// if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm) {
|
|
// if (ppw->m_Stat.filterOxygenValue->GetValue() > ppw->m_RunCfg->m_FilterOxygenAlarmValue) {
|
|
// if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick > ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_CheckAlarmSetTick) {
|
|
// ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmInfo = to_string(ppw->m_Stat.filterOxygenValue->GetValue());
|
|
// SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, true);
|
|
// }
|
|
// else {
|
|
// ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick++;
|
|
// }
|
|
// }
|
|
// else {
|
|
// ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick = 0;
|
|
// SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, false);
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (pAlarm.Result == 0) {
|
|
// unsigned char* arr = (unsigned char*)pAlarm.pdata;
|
|
// unsigned char pdata1 = arr[0];
|
|
// unsigned char pdata2 = arr[1];
|
|
// ppw->m_Stat.midTempOverLimitAlarm->SetValue(((pdata1 & 0x1) > 0 ? true : false));
|
|
// ppw->m_Stat.midHighTempOverLimitAlarm->SetValue(((pdata1 & 0x2) > 0 ? true : false));
|
|
// ppw->m_Stat.hopperUseLongTimeAlarm->SetValue(((pdata1 & 0x4) > 0 ? true : false));
|
|
// ppw->m_Stat.highPressureLackValveAlarm->SetValue(((pdata1 & 0x8) > 0 ? true : false));
|
|
// ppw->m_Stat.inverterPowerBreak->SetValue(((pdata1 & 0x10) > 0 ? true : false));
|
|
// ppw->m_Stat.inverterAlarm->SetValue(((pdata1 & 0x20) > 0 ? true : false));
|
|
// ppw->m_Stat.innerfilterOpenAlarm->SetValue(((pdata1 & 0x40) > 0 ? true : false));
|
|
// ppw->m_Stat.inverterComException->SetValue(((pdata1 & 0x80) > 0 ? true : false));
|
|
// ppw->m_Stat.cycleInValveOpenAlarm->SetValue(((pdata2 & 0x1) > 0 ? true : false));
|
|
// ppw->m_Stat.cycleOutValueOpenAlarm->SetValue(((pdata2 & 0x2) > 0 ? true : false));
|
|
// ppw->m_Stat.midHighValveOpenAlarm->SetValue(((pdata2 & 0x4) > 0 ? true : false));
|
|
// ppw->m_Stat.innerFilterInValveException->SetValue(((pdata2 & 0x8) > 0 ? true : false));
|
|
// ppw->m_Stat.midUnionValveException->SetValue(((pdata2 & 0x10) > 0 ? true : false));
|
|
// ppw->m_Stat.innerFilterOutValveException->SetValue(((pdata2 & 0x20) > 0 ? true : false));
|
|
// ppw->m_Stat.midFilterBlockAlarm->SetValue(((pdata2 & 0x40) > 0 ? true : false));
|
|
// ppw->m_Stat.highFilterBlockAlarm->SetValue(((pdata2 & 0x80) > 0 ? true : false));
|
|
//
|
|
// if (ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm)
|
|
// SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm, ppw->m_Stat.midTempOverLimitAlarm);
|
|
// /*ppw->m_Stat.d1Alarm = ((pdata2 & 0x1)>0?true:false);
|
|
// ppw->m_Stat.d2Alarm = ((pdata2 & 0x2)>0 ? true : false);
|
|
// ppw->m_Stat.d3Alarm = ((pdata2 & 0x4)>0 ? true : false);
|
|
// ppw->m_Stat.b1Alarm = ((pdata2 & 0x8)>0 ? true : false);
|
|
// ppw->m_Stat.b2Alarm = ((pdata2 & 0x10)>0 ? true : false);
|
|
// ppw->m_Stat.b3Alarm = ((pdata2 & 0x20)>0 ? true : false);
|
|
// ppw->m_Stat.midBlockAlarm = ((pdata2 & 0x40)>0 ? true : false);
|
|
// ppw->m_Stat.highBlockAlarm = ((pdata2 & 0x80)>0 ? true : false);
|
|
// ppw->m_Stat.midHighTempAlarm = ((pdata1 & 0x1)>0 ? true : false);
|
|
// ppw->m_Stat.midUtralHighTempAlarm = ((pdata1 & 0x2)>0 ? true : false);
|
|
// ppw->m_Stat.highHighTempAlarm = ((pdata1 & 0x4)>0 ? true : false);
|
|
// // ppw->m_Stat.highUtralHighTempAlarm = ((pdata1 & 0x8)>0 ? true : false);
|
|
// ppw->m_Stat.freqConvBreakerAlarm = ((pdata1 & 0x10)>0 ? true : false);
|
|
// ppw->m_Stat.fanAlarm = ((pdata1 & 0x20)>0 ? true : false);*/
|
|
// }
|
|
//
|
|
// LeaveCriticalSection(&ppw->m_ValueCS);
|
|
//}
|
|
//
|
|
//
|
|
//void PurifierClient::ProcReadInfoXT2(void *pobject, Command* pcommand)
|
|
//{
|
|
// S7Command* s7Command = (S7Command*)pcommand;
|
|
// TS7DataItem* pdataItems = s7Command->getDataItems();
|
|
// int itemcount = s7Command->getItemCount();
|
|
// if (pobject == NULL || itemcount != READ_ITEM_COUNT2)return;
|
|
// PurifierClient* ppw = (PurifierClient*)pobject;
|
|
// TS7DataItem pAlarm = pdataItems[0];
|
|
// TS7DataItem pMaxWind = pdataItems[1];
|
|
// TS7DataItem pSignal = pdataItems[2];
|
|
// TS7DataItem pType = pdataItems[3];
|
|
// TS7DataItem pCoverWindOffset = pdataItems[4];
|
|
// TS7DataItem pFreq = pdataItems[5];
|
|
//
|
|
// EnterCriticalSection(&ppw->m_ValueCS);
|
|
// if (pAlarm.Result == 0) {
|
|
// unsigned char* arr = (unsigned char*)pAlarm.pdata;
|
|
// unsigned char pdata1 = arr[0];
|
|
// unsigned char pdata2 = arr[1];
|
|
// ppw->m_Stat.midTempOverLimitAlarm->SetValue(((pdata1 & 0x1) > 0 ? true : false));
|
|
// ppw->m_Stat.midHighTempOverLimitAlarm->SetValue(((pdata1 & 0x2) > 0 ? true : false));
|
|
// ppw->m_Stat.hopperUseLongTimeAlarm->SetValue(((pdata1 & 0x4) > 0 ? true : false));
|
|
// ppw->m_Stat.highPressureLackValveAlarm->SetValue(((pdata1 & 0x8) > 0 ? true : false));
|
|
// ppw->m_Stat.inverterPowerBreak->SetValue(((pdata1 & 0x10) > 0 ? true : false));
|
|
// ppw->m_Stat.inverterAlarm->SetValue(((pdata1 & 0x20) > 0 ? true : false));
|
|
// ppw->m_Stat.innerfilterOpenAlarm->SetValue(((pdata1 & 0x40) > 0 ? true : false));
|
|
// ppw->m_Stat.inverterComException->SetValue(((pdata1 & 0x80) > 0 ? true : false));
|
|
// ppw->m_Stat.cycleInValveOpenAlarm->SetValue(((pdata2 & 0x1) > 0 ? true : false));
|
|
// ppw->m_Stat.cycleOutValueOpenAlarm->SetValue(((pdata2 & 0x2) > 0 ? true : false));
|
|
// ppw->m_Stat.midHighValveOpenAlarm->SetValue(((pdata2 & 0x4) > 0 ? true : false));
|
|
// ppw->m_Stat.innerFilterInValveException->SetValue(((pdata2 & 0x8) > 0 ? true : false));
|
|
// ppw->m_Stat.midUnionValveException->SetValue(((pdata2 & 0x10) > 0 ? true : false));
|
|
// ppw->m_Stat.innerFilterOutValveException->SetValue(((pdata2 & 0x20) > 0 ? true : false));
|
|
// ppw->m_Stat.midFilterBlockAlarm->SetValue(((pdata2 & 0x40) > 0 ? true : false));
|
|
// ppw->m_Stat.highFilterBlockAlarm->SetValue(((pdata2 & 0x80) > 0 ? true : false));
|
|
// }
|
|
// if (pMaxWind.Result == 0) {
|
|
// unsigned char* pchar = (unsigned char*)pMaxWind.pdata;
|
|
// ppw->m_Stat.maxWindSetValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
|
// ppw->m_Stat.useArgon->SetValue((pchar[7] & 0x2) > 0 ? true : false);
|
|
// ppw->m_ExtCfg->m_SelectedFanWindFit = ppw->m_Stat.useArgon->GetValue() ? 1 : 0;
|
|
// ppw->m_Stat.isCoverWind->SetValue(((pchar[7] & 0x40) > 0 ? true : false));
|
|
// }
|
|
//
|
|
// if (pSignal.Result == 0)
|
|
// {
|
|
// unsigned char* pchar = (unsigned char*)pSignal.pdata;
|
|
// ppw->m_Stat.coverWindSlowFinish->SetValue(((pchar[0] & 0x40) > 0 ? true : false));
|
|
// ppw->m_Stat.coverWindResumeFinish->SetValue(((pchar[0] & 0x80) > 0 ? true : false));
|
|
// }
|
|
//
|
|
// if (pType.Result == 0) {
|
|
// unsigned char* pchar = (unsigned char*)pType.pdata;
|
|
// ppw->m_Stat.purifierType->SetValue(((pchar[0] & 0xff) << 8) + (pchar[1] & 0xff));
|
|
// ppw->m_Stat.keepAlive->SetValue(((pchar[2] & 0xff) << 8) + (pchar[3] & 0xff));
|
|
// }
|
|
//
|
|
// if (pCoverWindOffset.Result == 0) {
|
|
// unsigned char* pchar = (unsigned char*)pCoverWindOffset.pdata;
|
|
// ppw->m_Stat.coverWindSpeedOffset->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
|
// }
|
|
//
|
|
// if (pFreq.Result == 0) {
|
|
// unsigned char* pchar = (unsigned char*)pFreq.pdata;
|
|
// ppw->m_Stat.fanFreq->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
|
// }
|
|
//
|
|
// LeaveCriticalSection(&ppw->m_ValueCS);
|
|
//}
|
|
//
|
|
//
|
|
//void PurifierClient::ProcWriteValueXT(void *pobject, Command* pcommand)
|
|
//{
|
|
//
|
|
//}
|
|
//
|
|
//void PurifierClient::ProcSetOxygenValue(void *pobject, Command* pcommand)
|
|
//{
|
|
// if (pobject == NULL)return;
|
|
// PurifierClient* ppw = (PurifierClient*)pobject;
|
|
// S7FLOATDATA fdata;
|
|
// S7FLOATDATA fpressuredata;
|
|
// EnterCriticalSection(&g_SystemInfo->m_InfoCs);
|
|
// fdata.fValue = (g_SystemInfo->m_ComPrintOxygen1>g_SystemInfo->m_ComPrintOxygen2? g_SystemInfo->m_ComPrintOxygen1: g_SystemInfo->m_ComPrintOxygen2);
|
|
// fpressuredata.fValue = g_SystemInfo->m_EnvState.m_PrintPressureAnalog;
|
|
//
|
|
// LeaveCriticalSection(&g_SystemInfo->m_InfoCs);
|
|
//
|
|
//
|
|
// ppw->m_OxygenWriteValue[0] = fdata.data[3];
|
|
// ppw->m_OxygenWriteValue[1] = fdata.data[2];
|
|
// ppw->m_OxygenWriteValue[2] = fdata.data[1];
|
|
// ppw->m_OxygenWriteValue[3] = fdata.data[0];
|
|
//
|
|
// ppw->m_PressureWriteValue[0] = fpressuredata.data[3];
|
|
// ppw->m_PressureWriteValue[1] = fpressuredata.data[2];
|
|
// ppw->m_PressureWriteValue[2] = fpressuredata.data[1];
|
|
// ppw->m_PressureWriteValue[3] = fpressuredata.data[0];
|
|
//}
|
|
//
|
|
//void PurifierClient::SetMKBit(int dindex, unsigned int waittime)
|
|
//{
|
|
// EnterCriticalSection(&m_RtcCS);
|
|
// S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
// TS7DataItem* items = pcommand->getDataItems();
|
|
// items[0].Area = S7AreaMK;
|
|
// items[0].DBNumber = 1;
|
|
// items[0].Start = dindex;
|
|
// items[0].WordLen = S7WLBit;
|
|
// items[0].Amount = 1;
|
|
// bool* tempv = new bool[1];
|
|
// tempv[0] = false;
|
|
// items[0].pdata = tempv;
|
|
// pcommand->m_Ref = this;
|
|
// pcommand->m_waitTime = waittime;
|
|
// pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//
|
|
// S7Command* pcommand2 = new S7Command(S7_COMMAND_WRITE, 1);
|
|
// TS7DataItem* items2 = pcommand2->getDataItems();
|
|
// items2[0].Area = S7AreaMK;
|
|
// items2[0].DBNumber = 1;
|
|
// items2[0].Start = dindex;
|
|
// items2[0].WordLen = S7WLBit;
|
|
// items2[0].Amount = 1;
|
|
// bool* tempv2 = new bool[1];
|
|
// tempv2[0] = true;
|
|
// items2[0].pdata = tempv2;
|
|
// pcommand2->m_Ref = this;
|
|
//
|
|
// pcommand2->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
// m_RTCommands.push(pcommand2);
|
|
// m_RTCommands.push(pcommand);
|
|
// LeaveCriticalSection(&m_RtcCS);
|
|
//}
|
|
|
|
void PurifierClient::SetDedust(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetDedust", to_string(bvalue), iBOOL);
|
|
//if (g_isDebug) {
|
|
// m_Stat.isDedusting->SetValue(bvalue);
|
|
//}
|
|
//if (!IsServerConnected())return;
|
|
//if (bvalue)SetMKBit(10 * 8 + 0,500);
|
|
//else SetMKBit(10 * 8 + 1, 500);
|
|
|
|
}
|
|
|
|
void PurifierClient::SetBlowBack(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetBlowBack", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//if (bvalue)SetMKBit(10 * 8 + 2, 500);
|
|
//else SetMKBit(10 * 8 + 3, 500);
|
|
}
|
|
|
|
void PurifierClient::SetFilterDiscard(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetFilterDiscard", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
|
|
//if (bvalue)SetMKBit(10 * 8 + 4, 500);
|
|
//else SetMKBit(10 * 8 + 5, 500);
|
|
}
|
|
|
|
void PurifierClient::SetBoxClean(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetBoxClean", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//if (bvalue)SetMKBit(4, 500);
|
|
//else SetMKBit(5, 500);
|
|
}
|
|
|
|
void PurifierClient::SetFilterClean(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetFilterClean", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//if (bvalue)SetMKBit(10 * 8 + 6, 500);
|
|
//else SetMKBit(10 * 8 + 7, 500);
|
|
}
|
|
|
|
void PurifierClient::SetHopperClean(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetHopperClean", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//if (bvalue)SetMKBit(11 * 8 + 0, 500);
|
|
//else SetMKBit(11 * 8 + 1, 500);
|
|
}
|
|
|
|
void PurifierClient::SetPurify(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetPurify", to_string(bvalue), iBOOL);
|
|
//if (g_isDebug) {
|
|
// m_Stat.isPurifying->SetValue(bvalue);
|
|
//}
|
|
//if (!IsServerConnected())return;
|
|
//if (bvalue)SetMKBit(4 * 8 + 6, 3000);
|
|
//else SetMKBit(4 * 8 + 7, 3000);
|
|
|
|
}
|
|
|
|
void PurifierClient::ResetFilterTime()
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "ResetFilterTime", "", UNKNOW);
|
|
//if (!IsServerConnected())return;
|
|
//SetMKBit(4 * 8 , 500);
|
|
}
|
|
|
|
void PurifierClient::ClearHopperAlarm()
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "ClearHopperAlarm", "", UNKNOW);
|
|
//if (!IsServerConnected())return;
|
|
//SetMKBit(2 * 8, 500);
|
|
}
|
|
//
|
|
//void PurifierClient::SetDBFloat(int dindex, float fvalue) {
|
|
// EnterCriticalSection(&m_RtcCS);
|
|
// S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
// TS7DataItem* items = pcommand->getDataItems();
|
|
// items[0].Area = S7AreaDB;
|
|
// items[0].DBNumber = 1;
|
|
// items[0].Start = dindex;
|
|
// items[0].WordLen = S7WLByte;
|
|
// items[0].Amount = 4;
|
|
// unsigned char* pfloat = new unsigned char[4];
|
|
// S7FLOATDATA fdata;
|
|
// fdata.fValue = fvalue;
|
|
// pfloat[0] = fdata.data[3];
|
|
// pfloat[1] = fdata.data[2];
|
|
// pfloat[2] = fdata.data[1];
|
|
// pfloat[3] = fdata.data[0];
|
|
// items[0].pdata = pfloat;
|
|
// pcommand->m_Ref = this;
|
|
// pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
// m_RTCommands.push(pcommand);
|
|
// LeaveCriticalSection(&m_RtcCS);
|
|
//}
|
|
//
|
|
//void PurifierClient::SetBit(int dindex, bool v)
|
|
//{
|
|
// EnterCriticalSection(&m_RtcCS);
|
|
// S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
// TS7DataItem* items = pcommand->getDataItems();
|
|
// items[0].Area = S7AreaDB;
|
|
// items[0].DBNumber = 1;
|
|
// items[0].Start = dindex;
|
|
// items[0].WordLen = S7WLBit;
|
|
// items[0].Amount = 1;
|
|
// bool* tempv = new bool[1];
|
|
// tempv[0] = v;
|
|
// items[0].pdata = tempv;
|
|
// pcommand->m_Ref = this;
|
|
// pcommand->m_waitTime = 0;
|
|
// pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
// m_RTCommands.push(pcommand);
|
|
// LeaveCriticalSection(&m_RtcCS);
|
|
//}
|
|
//
|
|
//
|
|
void PurifierClient::SetBoxPressureUpLimit(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetBoxPressureUpLimit", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(28, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetBoxPressureDownLimit(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetBoxPressureDownLimit", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(32, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetMidPressureDifAlarmValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetMidPressureDifAlarmValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(64, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetHighPressureDifAlarmValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetHighPressureDifAlarmValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(68, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetPrintCleanOxygenSetValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetPrintCleanOxygenSetValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(142, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetWindValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetWindValue", to_string(fvalue), iFLOAT);
|
|
//if (g_isDebug)m_Stat.windActualValue->SetValue(fvalue);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(146, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetPrintOxygenDownSetValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetPrintOxygenDownSetValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(154, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetPrintOxygenUpSetValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetPrintOxygenUpSetValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(76, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetfilterCleanOxygenSetValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetfilterCleanOxygenSetValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(158, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetMidTempHighSetValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetMidTempHighSetValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(166, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetMidTempUltraSetValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetMidTempUltraSetValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(170, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetHighTempHighSetValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetHighTempHighSetValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(174, fvalue);
|
|
}
|
|
|
|
void PurifierClient::SetMaxWindValue(float fvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetMaxWindValue", to_string(fvalue), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(550, fvalue);
|
|
}
|
|
|
|
/*void PurifierClient::SetHighTempUltraSetValue(float fvalue)
|
|
{
|
|
SetDBFloat(178, fvalue);
|
|
}*/
|
|
|
|
void PurifierClient::SetHopperCleanRemind(unsigned short value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetHopperCleanRemind", to_string(value), iUSHORT);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 118;
|
|
//items[0].WordLen = S7WLByte;
|
|
//items[0].Amount = 2;
|
|
//unsigned char* pdata= new unsigned char[2];
|
|
//pdata[0] = (unsigned char)(value >> 8);
|
|
//pdata[1] = (unsigned char)value;
|
|
//items[0].pdata = pdata;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
|
|
void PurifierClient::SetBoxWashDelayTime(unsigned short value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetBoxWashDelayTime", to_string(value), iUSHORT);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 114;
|
|
//items[0].WordLen = S7WLByte;
|
|
//items[0].Amount = 2;
|
|
//unsigned char* pdata = new unsigned char[2];
|
|
//pdata[0] = (unsigned char)(value >> 8);
|
|
//pdata[1] = (unsigned char)value;
|
|
//items[0].pdata = pdata;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
|
|
void PurifierClient::SetDedustingWashDelayTime(unsigned short value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetDedustingWashDelayTime", to_string(value), iUSHORT);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 116;
|
|
//items[0].WordLen = S7WLByte;
|
|
//items[0].Amount = 2;
|
|
//unsigned char* pdata = new unsigned char[2];
|
|
//pdata[0] = (unsigned char)(value >> 8);
|
|
//pdata[1] = (unsigned char)value;
|
|
//items[0].pdata = pdata;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
|
|
void PurifierClient::GetStat(Purifierstat_XT& stat)
|
|
{
|
|
EnterCriticalSection(&m_ValueCS);
|
|
//memcpy_s(&stat, sizeof(Purifierstat_XT), &m_Stat, sizeof(Purifierstat_XT));
|
|
stat.baseStat = m_Stat.baseStat;
|
|
stat.isPurifying = m_Stat.isPurifying->GetValue();
|
|
stat.isDedusting = m_Stat.isDedusting->GetValue();
|
|
stat.isBoxCleaning = m_Stat.isBoxCleaning->GetValue();
|
|
stat.isBlowBack = m_Stat.isBlowBack->GetValue();
|
|
stat.isFilterDiscarding = m_Stat.isFilterDiscarding->GetValue();
|
|
stat.isFilterCleaning = m_Stat.isFilterCleaning->GetValue();
|
|
stat.isHopperCleaning = m_Stat.isHopperCleaning->GetValue();
|
|
|
|
stat.midPressureValue = m_Stat.midPressureValue->GetValue();
|
|
stat.midPressureDifValue = m_Stat.midPressureDifValue->GetValue();
|
|
stat.midTemperatureValue = m_Stat.midTemperatureValue->GetValue();
|
|
stat.highPressureDifValue = m_Stat.highPressureDifValue->GetValue();
|
|
stat.anemometerActualValue = m_Stat.anemometerActualValue->GetValue();
|
|
stat.printPressureValue = m_Stat.printPressureValue->GetValue();
|
|
stat.boxPressureUpLimit = m_Stat.boxPressureUpLimit->GetValue();
|
|
stat.boxPressureDownLimit = m_Stat.boxPressureDownLimit->GetValue();
|
|
stat.filterOxygenValue = m_Stat.filterOxygenValue->GetValue();
|
|
stat.printOxygenValue = m_Stat.printOxygenValue->GetValue();
|
|
stat.midPressureDifAlarmValue = m_Stat.midPressureDifAlarmValue->GetValue();
|
|
stat.highPressureDifAlarmValue = m_Stat.highPressureDifAlarmValue->GetValue();
|
|
|
|
stat.filterTotalUseTime = m_Stat.filterTotalUseTime->GetValue();
|
|
stat.usedTimeFromlastBowBack = m_Stat.usedTimeFromlastBowBack->GetValue();
|
|
stat.bowBackTimes = m_Stat.bowBackTimes->GetValue();
|
|
stat.hopperTimeLastClean = m_Stat.hopperTimeLastClean->GetValue();
|
|
|
|
stat.boxWashTime = m_Stat.boxWashTime->GetValue();
|
|
stat.filterWashTime = m_Stat.filterWashTime->GetValue();
|
|
stat.boxWashDelayTime = m_Stat.boxWashDelayTime->GetValue();
|
|
stat.dedustingWashDelayTime = m_Stat.dedustingWashDelayTime->GetValue();
|
|
stat.hopperCleanRemind = m_Stat.hopperCleanRemind->GetValue();
|
|
stat.printCleanOxygenSetValue = m_Stat.printCleanOxygenSetValue->GetValue();
|
|
stat.windSetValue = m_Stat.windSetValue->GetValue();
|
|
stat.windActualValue = m_Stat.windActualValue->GetValue();
|
|
stat.maxWindSetValue = m_Stat.maxWindSetValue->GetValue();
|
|
stat.useArgon = m_Stat.useArgon->GetValue();
|
|
stat.printOxygenUpSetValue = m_Stat.printOxygenUpSetValue->GetValue();
|
|
stat.oxygenAlarmValue = m_Stat.oxygenAlarmValue->GetValue();
|
|
stat.filterCleanOxygenSetValue = m_Stat.filterCleanOxygenSetValue->GetValue();
|
|
stat.midTempHighSetValue = m_Stat.midTempHighSetValue->GetValue();
|
|
stat.midTempUltraSetValue = m_Stat.midTempUltraSetValue->GetValue();
|
|
stat.pressureRangeUpLimit = m_Stat.pressureRangeUpLimit->GetValue();
|
|
stat.pressureRangeDownLimit = m_Stat.pressureRangeDownLimit->GetValue();
|
|
stat.fanFreq = m_Stat.fanFreq->GetValue();
|
|
stat.midTempOverLimitAlarm = m_Stat.midTempOverLimitAlarm->GetValue();
|
|
stat.midHighTempOverLimitAlarm = m_Stat.midHighTempOverLimitAlarm->GetValue();
|
|
stat.hopperUseLongTimeAlarm = m_Stat.hopperUseLongTimeAlarm->GetValue();
|
|
stat.highPressureLackValveAlarm = m_Stat.highPressureLackValveAlarm->GetValue();
|
|
stat.protectionTestFail = m_Stat.protectionTestFail->GetValue();
|
|
stat.inverterPowerBreak = m_Stat.inverterPowerBreak->GetValue();
|
|
stat.inverterAlarm = m_Stat.inverterAlarm->GetValue();
|
|
stat.whirlwindJarIsFull = m_Stat.whirlwindJarIsFull->GetValue();
|
|
stat.midInValveOpenAlarm = m_Stat.midInValveOpenAlarm->GetValue();
|
|
stat.midOutValveOpenAlarm = m_Stat.midOutValveOpenAlarm->GetValue();
|
|
stat.anemometerException = m_Stat.anemometerException->GetValue();
|
|
stat.oxygenSelfTestFail = m_Stat.oxygenSelfTestFail->GetValue();
|
|
stat.innerfilterOpenAlarm = m_Stat.innerfilterOpenAlarm->GetValue();
|
|
stat.inverterComException = m_Stat.inverterComException->GetValue();
|
|
stat.purifierSevereAbnormalExhaust = m_Stat.purifierSevereAbnormalExhaust->GetValue();
|
|
|
|
stat.cycleInValveOpenAlarm = m_Stat.cycleInValveOpenAlarm->GetValue();
|
|
stat.cycleOutValueOpenAlarm = m_Stat.cycleOutValueOpenAlarm->GetValue();
|
|
stat.midHighValveOpenAlarm = m_Stat.midHighValveOpenAlarm->GetValue();
|
|
stat.innerFilterInValveException = m_Stat.innerFilterInValveException->GetValue();
|
|
stat.midUnionValveException = m_Stat.midUnionValveException->GetValue();
|
|
stat.innerFilterOutValveException = m_Stat.innerFilterOutValveException->GetValue();
|
|
stat.midFilterBlockAlarm = m_Stat.midFilterBlockAlarm->GetValue();
|
|
stat.highFilterBlockAlarm = m_Stat.highFilterBlockAlarm->GetValue();
|
|
stat.highPressureLackAlarm = m_Stat.highPressureLackAlarm->GetValue();
|
|
stat.protectedPressureLackAlarm = m_Stat.protectedPressureLackAlarm->GetValue();
|
|
stat.midConnectException = m_Stat.midConnectException->GetValue();
|
|
stat.carbinDoorOpenException = m_Stat.carbinDoorOpenException->GetValue();
|
|
stat.busOutValveNotOpenAlarm = m_Stat.busOutValveNotOpenAlarm->GetValue();
|
|
|
|
stat.busOutValveNotCloseAlarm = m_Stat.busOutValveNotCloseAlarm->GetValue();
|
|
stat.busOutValveNotInPosAlarm = m_Stat.busOutValveNotInPosAlarm->GetValue();
|
|
stat.printOutValveNotOpenAlarm = m_Stat.printOutValveNotOpenAlarm->GetValue();
|
|
stat.printOutValveNotCloseAlarm = m_Stat.printOutValveNotCloseAlarm->GetValue();
|
|
stat.printOutValveNotInPosAlarm = m_Stat.printOutValveNotInPosAlarm->GetValue();
|
|
|
|
stat.inverterDonotWorkWhenDedust = m_Stat.inverterDonotWorkWhenDedust->GetValue();
|
|
stat.printOxygenExceptWhenDedust = m_Stat.printOxygenExceptWhenDedust->GetValue();
|
|
stat.tempExceptWhenDedust = m_Stat.tempExceptWhenDedust->GetValue();
|
|
stat.highPressureExceptWhenDedust = m_Stat.highPressureExceptWhenDedust->GetValue();
|
|
stat.windExceptWhenDedust = m_Stat.windExceptWhenDedust->GetValue();
|
|
|
|
stat.coverWindSpeedOffset = m_Stat.coverWindSpeedOffset->GetValue();
|
|
stat.isCoverWind = m_Stat.isCoverWind->GetValue();
|
|
stat.shieldMonitorPrintPressure = m_Stat.shieldMonitorPrintPressure->GetValue();
|
|
|
|
stat.coverWindSlowFinish = m_Stat.coverWindSlowFinish->GetValue();
|
|
stat.coverWindResumeFinish = m_Stat.coverWindResumeFinish->GetValue();
|
|
stat.purifierType = m_Stat.purifierType->GetValue();
|
|
stat.keepAlive = m_Stat.keepAlive->GetValue();
|
|
stat.protectionPressureEnable = m_Stat.protectionPressureEnable->GetValue();
|
|
|
|
stat.ProtectionPressureTestRelFail = m_Stat.ProtectionPressureTestRelFail->GetValue();
|
|
stat.oxygenSelfTestRelFail = m_Stat.oxygenSelfTestRelFail->GetValue();
|
|
stat.ProtectionPressuring = m_Stat.ProtectionPressuring->GetValue();
|
|
stat.ProtectionPressureSetTime = m_Stat.ProtectionPressureSetTime->GetValue();
|
|
stat.blowBackSetTimes = m_Stat.blowBackSetTimes->GetValue();
|
|
stat.blowBackBlowTime = m_Stat.blowBackBlowTime->GetValue();
|
|
|
|
memcpy_s(&stat.baseStat, sizeof(BaseStat), &m_BaseStat, sizeof(BaseStat));
|
|
LeaveCriticalSection(&m_ValueCS);
|
|
}
|
|
|
|
|
|
|
|
void PurifierClient::SetPressureRangeUpLimit(float value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetPressureRangeUpLimit", to_string(value), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(182, value);
|
|
}
|
|
|
|
void PurifierClient::SetPressureRangeDownLimit(float value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetPressureRangeDownLimit", to_string(value), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(186, value);
|
|
}
|
|
|
|
void PurifierClient::SetOxygenAlarmValue(float value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetOxygenAlarmValue", to_string(value), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(190, value);
|
|
}
|
|
|
|
void PurifierClient::SetUseArgon(bool buse)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetUseArgon", to_string(buse), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//SetBit(557 * 8 + 1, buse);
|
|
}
|
|
|
|
|
|
void PurifierClient::SetCoverWind(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetCoverWind", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 557 * 8 + 6;
|
|
//items[0].WordLen = S7WLBit;
|
|
//items[0].Amount = 1;
|
|
//bool* tempv = new bool[1];
|
|
//tempv[0] = bvalue;
|
|
//items[0].pdata = tempv;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_waitTime = 0;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
|
|
void PurifierClient::SetCoverWindOffset(float offset)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetCoverWindOffset", to_string(offset), iFLOAT);
|
|
//if (!IsServerConnected())return;
|
|
//SetDBFloat(812, offset);
|
|
}
|
|
|
|
void PurifierClient::SetShieldMonitorPrintPressure(bool bvalue) {
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetShieldMonitorPrintPressure", to_string(bvalue), iBOOL);
|
|
//if (g_isDebug)m_Stat.shieldMonitorPrintPressure->SetValue(bvalue);
|
|
//if (!IsServerConnected())return;
|
|
//SetBit(557 * 8, bvalue);
|
|
}
|
|
|
|
void PurifierClient::SetWindSlowFinishSignal(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetWindSlowFinishSignal", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 594 * 8 + 6;
|
|
//items[0].WordLen = S7WLBit;
|
|
//items[0].Amount = 1;
|
|
//bool* tempv = new bool[1];
|
|
//tempv[0] = bvalue;
|
|
//items[0].pdata = tempv;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_waitTime = 0;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
|
|
void PurifierClient::SetWindResumeFinishSignal(bool bvalue)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetWindResumeFinishSignal", to_string(bvalue), iBOOL);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 594 * 8 + 7;
|
|
//items[0].WordLen = S7WLBit;
|
|
//items[0].Amount = 1;
|
|
//bool* tempv = new bool[1];
|
|
//tempv[0] = bvalue;
|
|
//items[0].pdata = tempv;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_waitTime = 0;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
|
|
void PurifierClient::SetBlowBackBlowTime(unsigned short value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetBlowBackBlowTime", to_string(value), iUSHORT);
|
|
|
|
/*if (!IsServerConnected())return;
|
|
EnterCriticalSection(&m_RtcCS);
|
|
S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
TS7DataItem* items = pcommand->getDataItems();
|
|
items[0].Area = S7AreaDB;
|
|
items[0].DBNumber = 1;
|
|
items[0].Start = 430;
|
|
items[0].WordLen = S7WLByte;
|
|
items[0].Amount = 2;
|
|
unsigned char* pdata = new unsigned char[2];
|
|
pdata[0] = (unsigned char)(value >> 8);
|
|
pdata[1] = (unsigned char)value;
|
|
items[0].pdata = pdata;
|
|
pcommand->m_Ref = this;
|
|
pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
m_RTCommands.push(pcommand);
|
|
LeaveCriticalSection(&m_RtcCS);*/
|
|
}
|
|
|
|
void PurifierClient::SetBlowBackSetTimes(unsigned short value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetBlowBackSetTimes", to_string(value), iUSHORT);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 434;
|
|
//items[0].WordLen = S7WLByte;
|
|
//items[0].Amount = 2;
|
|
//unsigned char* pdata = new unsigned char[2];
|
|
|
|
//pdata[0] = (unsigned char)(value >> 8);
|
|
//pdata[1] = (unsigned char)value;
|
|
//items[0].pdata = pdata;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
void PurifierClient::SetProtectionPressureSetTime(unsigned short value)
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetProtectionPressureSetTime", to_string(value), iUSHORT);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 658;
|
|
//items[0].WordLen = S7WLByte;
|
|
//items[0].Amount = 2;
|
|
//unsigned char* pdata = new unsigned char[2];
|
|
//pdata[0] = (unsigned char)(value >> 8);
|
|
//pdata[1] = (unsigned char)value;
|
|
//items[0].pdata = pdata;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
}
|
|
|
|
void PurifierClient::SetUnLock()
|
|
{
|
|
DataHandle::Instance()->SetPushMsg(PURIFIERPARAMW, "SetUnLock", "", UNKNOW);
|
|
//if (!IsServerConnected())return;
|
|
//EnterCriticalSection(&m_RtcCS);
|
|
//S7Command* pcommand = new S7Command(S7_COMMAND_WRITE, 1);
|
|
//TS7DataItem* items = pcommand->getDataItems();
|
|
//items[0].Area = S7AreaDB;
|
|
//items[0].DBNumber = 1;
|
|
//items[0].Start = 660;
|
|
//items[0].WordLen = S7WLByte;
|
|
//items[0].Amount = 2;
|
|
//unsigned char* pdata = new unsigned char[2];
|
|
//pdata[0] = 0;
|
|
//pdata[1] = 0;
|
|
//items[0].pdata = pdata;
|
|
//pcommand->m_Ref = this;
|
|
//pcommand->m_Fun = &PurifierClient::ProcWriteValueXT;
|
|
//m_RTCommands.push(pcommand);
|
|
//LeaveCriticalSection(&m_RtcCS);
|
|
|
|
} |