添加客户端类等
This commit is contained in:
parent
abb3d9959b
commit
8facf6ed53
@ -1,4 +1,5 @@
|
|||||||
#include "DataHandle.h"
|
#include "DataHandle.h"
|
||||||
|
#include "../config/ConfigManager.h"
|
||||||
|
|
||||||
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
|
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
|
||||||
DataHandle* p = (DataHandle*)pthis;
|
DataHandle* p = (DataHandle*)pthis;
|
||||||
@ -47,7 +48,7 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
|||||||
param.sysParamI->SetValue(atoi(val.c_str()));
|
param.sysParamI->SetValue(atoi(val.c_str()));
|
||||||
break;
|
break;
|
||||||
case iFLOAT:
|
case iFLOAT:
|
||||||
param.sysParamB->SetValue(atof(val.c_str()));
|
param.sysParamF->SetValue(atof(val.c_str()));
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
@ -57,6 +58,9 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
|||||||
case VERSIONRSP:
|
case VERSIONRSP:
|
||||||
m_version = msg.strValue;
|
m_version = msg.strValue;
|
||||||
break;
|
break;
|
||||||
|
case IOSIGNALRSP: //io信号返回
|
||||||
|
ConfigManager::Instance()->GetIoCfgWrapper()->Update(msg);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
default:break;
|
default:break;
|
||||||
|
@ -41,8 +41,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
string GetVersion()const {
|
string GetVersion()const {return m_version;}
|
||||||
return m_version;}
|
|
||||||
private:
|
private:
|
||||||
DataHandle();
|
DataHandle();
|
||||||
virtual ~DataHandle();
|
virtual ~DataHandle();
|
||||||
|
92
PrintC/DataManage/RWData.h
Normal file
92
PrintC/DataManage/RWData.h
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#pragma once
|
||||||
|
//#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
enum READTYPE {
|
||||||
|
ProcReadPLC0 = 0, //snap7 数据
|
||||||
|
ProcReadPLC1,
|
||||||
|
ProcReadPLC2,
|
||||||
|
ProcReadPLC3,
|
||||||
|
ProcReadPLC4,
|
||||||
|
ProcReadPLC5,
|
||||||
|
ProcReadPLC6,
|
||||||
|
ProcReadPLCData0 = 100,
|
||||||
|
ALARM, //报警
|
||||||
|
RESPOND, //回应
|
||||||
|
TIMEDATA, //定时数据
|
||||||
|
|
||||||
|
INITERRORINFOSRSP, //返回初始化错误信息
|
||||||
|
VERSIONRSP, //返回版本信息
|
||||||
|
IOSIGNALRSP, //io信号返回数据
|
||||||
|
};
|
||||||
|
|
||||||
|
enum DATATYPE {
|
||||||
|
iBOOL = 0,
|
||||||
|
iSHORT,
|
||||||
|
iUSHORT,
|
||||||
|
iINT,
|
||||||
|
iUINT,
|
||||||
|
iFLOAT
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ReadData {
|
||||||
|
READTYPE dataType;
|
||||||
|
bool result;
|
||||||
|
std::string nameKey; //参数key 空格隔开
|
||||||
|
std::string strValue; //value 空格隔开
|
||||||
|
DATATYPE valueType; //数据类型
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
enum WRITETYPE {
|
||||||
|
GET = 0,
|
||||||
|
SET,
|
||||||
|
LOAD, //载入
|
||||||
|
LOADOUT, //载出
|
||||||
|
SUPPLYAXLEAFTER, //供粉轴后移
|
||||||
|
SUPPLYAXLEFRONT, //供粉轴前移
|
||||||
|
SUPPLYAXLEAFTERCONTSTART, //供粉轴后移连续开始
|
||||||
|
SUPPLYAXLEAFTERCONTSTOP, //供粉轴后移连续停止
|
||||||
|
SUPPLYAXLEFRONTCONTSTART, //供粉轴前移连续开始
|
||||||
|
SUPPLYAXLEFRONTCONTSTOP, //供粉轴前移连续停止
|
||||||
|
PAVEAXLEFRONT, // 铺粉臂前移
|
||||||
|
PAVEAXLEFRONTCONTSTART, //铺粉臂前移连续
|
||||||
|
PAVEAXLEFRONTCONTSTOP, //铺粉臂前移连续
|
||||||
|
PAVEAXLEAFTER, //铺粉臂后移
|
||||||
|
PAVEAXLEAFTERCONTSTART, //铺粉臂后移连续开始
|
||||||
|
PAVEAXLEAFTERCONTSTOP, //铺粉臂后移连续停止
|
||||||
|
PAVEAXLECLEAR, //铺粉臂清零
|
||||||
|
PRINTAXLEUP, //成型缸上升
|
||||||
|
PRINTAXLEUPCONTSTART, //成型缸连续上升开始
|
||||||
|
PRINTAXLEUPCONTSTOP, //成型缸连续上升停止
|
||||||
|
PRINTAXLEDOWN, //成型缸下降
|
||||||
|
PRINTAXLEDOWNCONTSTART, //成型缸连续下降开始
|
||||||
|
PRINTAXLEDOWNCONTSTOP, //成型缸连续下降停止
|
||||||
|
PRINTAXLECLEAR, //成型缸清零
|
||||||
|
TRANSFERAXIELEFT, //移载轴左移
|
||||||
|
TRANSFERAXIELEFTCONTSTART, //移载轴连续左移开始
|
||||||
|
TRANSFERAXIELEFTCONTSTOP, //移载轴连续左移停止
|
||||||
|
TRANSFERAXIERIGHT, //移载轴右移
|
||||||
|
TRANSFERAXIERIGHTCONTSTART, //移载轴连续右移开始
|
||||||
|
TRANSFERAXIERIGHTCONTSTOP, //移载轴连续右移停止
|
||||||
|
TRANSFERAXIECLEAR, //移载轴清零
|
||||||
|
SCANERSTART, //开始扫描
|
||||||
|
SCANERSTOP, //停止扫描
|
||||||
|
STARTHEATINGSCANNERTEST, //开始振镜预热测试
|
||||||
|
STOPHEATINGSCANNERTEST, //停止振镜预热
|
||||||
|
INITERRORINFOSREQ, //初始化错误信息
|
||||||
|
VERSIONREQ, //获取版本信息
|
||||||
|
|
||||||
|
IOSIGNAL, //io 信号
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
struct WriteData {
|
||||||
|
WRITETYPE dataType;
|
||||||
|
std::string nameKey; //参数key
|
||||||
|
std::string strValue; //value
|
||||||
|
DATATYPE valueType;
|
||||||
|
};
|
@ -5,6 +5,7 @@
|
|||||||
#include <thread>
|
#include <thread>
|
||||||
#include <grpcpp/grpcpp.h>
|
#include <grpcpp/grpcpp.h>
|
||||||
#include "../protobuf/stream.grpc.pb.h"
|
#include "../protobuf/stream.grpc.pb.h"
|
||||||
|
#include "RWData.h"
|
||||||
|
|
||||||
using grpc::Channel;
|
using grpc::Channel;
|
||||||
using grpc::ClientContext;
|
using grpc::ClientContext;
|
||||||
@ -13,93 +14,6 @@ using stream::Stream;
|
|||||||
using stream::RequestInfo;
|
using stream::RequestInfo;
|
||||||
using stream::ResponseInfo;
|
using stream::ResponseInfo;
|
||||||
|
|
||||||
enum READTYPE {
|
|
||||||
ProcReadPLC0 = 0, //snap7 数据
|
|
||||||
ProcReadPLC1,
|
|
||||||
ProcReadPLC2,
|
|
||||||
ProcReadPLC3,
|
|
||||||
ProcReadPLC4,
|
|
||||||
ProcReadPLC5,
|
|
||||||
ProcReadPLC6,
|
|
||||||
ProcReadPLCData0 = 100,
|
|
||||||
ALARM, //报警
|
|
||||||
RESPOND, //回应
|
|
||||||
TIMEDATA, //定时数据
|
|
||||||
|
|
||||||
INITERRORINFOSRSP, //返回初始化错误信息
|
|
||||||
VERSIONRSP, //返回版本信息
|
|
||||||
};
|
|
||||||
|
|
||||||
enum DATATYPE {
|
|
||||||
iBOOL = 0,
|
|
||||||
iSHORT,
|
|
||||||
iUSHORT,
|
|
||||||
iINT,
|
|
||||||
iUINT,
|
|
||||||
iFLOAT
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ReadData {
|
|
||||||
READTYPE dataType;
|
|
||||||
bool result;
|
|
||||||
std::string nameKey; //参数key 空格隔开
|
|
||||||
std::string strValue; //value 空格隔开
|
|
||||||
DATATYPE valueType; //数据类型
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
enum WRITETYPE {
|
|
||||||
GET = 0,
|
|
||||||
SET,
|
|
||||||
LOAD, //载入
|
|
||||||
LOADOUT, //载出
|
|
||||||
SUPPLYAXLEAFTER, //供粉轴后移
|
|
||||||
SUPPLYAXLEFRONT, //供粉轴前移
|
|
||||||
SUPPLYAXLEAFTERCONTSTART, //供粉轴后移连续开始
|
|
||||||
SUPPLYAXLEAFTERCONTSTOP, //供粉轴后移连续停止
|
|
||||||
SUPPLYAXLEFRONTCONTSTART, //供粉轴前移连续开始
|
|
||||||
SUPPLYAXLEFRONTCONTSTOP, //供粉轴前移连续停止
|
|
||||||
PAVEAXLEFRONT, // 铺粉臂前移
|
|
||||||
PAVEAXLEFRONTCONTSTART, //铺粉臂前移连续
|
|
||||||
PAVEAXLEFRONTCONTSTOP, //铺粉臂前移连续
|
|
||||||
PAVEAXLEAFTER, //铺粉臂后移
|
|
||||||
PAVEAXLEAFTERCONTSTART, //铺粉臂后移连续开始
|
|
||||||
PAVEAXLEAFTERCONTSTOP, //铺粉臂后移连续停止
|
|
||||||
PAVEAXLECLEAR, //铺粉臂清零
|
|
||||||
PRINTAXLEUP, //成型缸上升
|
|
||||||
PRINTAXLEUPCONTSTART, //成型缸连续上升开始
|
|
||||||
PRINTAXLEUPCONTSTOP, //成型缸连续上升停止
|
|
||||||
PRINTAXLEDOWN, //成型缸下降
|
|
||||||
PRINTAXLEDOWNCONTSTART, //成型缸连续下降开始
|
|
||||||
PRINTAXLEDOWNCONTSTOP, //成型缸连续下降停止
|
|
||||||
PRINTAXLECLEAR, //成型缸清零
|
|
||||||
TRANSFERAXIELEFT, //移载轴左移
|
|
||||||
TRANSFERAXIELEFTCONTSTART, //移载轴连续左移开始
|
|
||||||
TRANSFERAXIELEFTCONTSTOP, //移载轴连续左移停止
|
|
||||||
TRANSFERAXIERIGHT, //移载轴右移
|
|
||||||
TRANSFERAXIERIGHTCONTSTART, //移载轴连续右移开始
|
|
||||||
TRANSFERAXIERIGHTCONTSTOP, //移载轴连续右移停止
|
|
||||||
TRANSFERAXIECLEAR, //移载轴清零
|
|
||||||
SCANERSTART, //开始扫描
|
|
||||||
SCANERSTOP, //停止扫描
|
|
||||||
STARTHEATINGSCANNERTEST, //开始振镜预热测试
|
|
||||||
STOPHEATINGSCANNERTEST, //停止振镜预热
|
|
||||||
INITERRORINFOSREQ, //初始化错误信息
|
|
||||||
VERSIONREQ, //获取版本信息
|
|
||||||
|
|
||||||
IOSIGNAL, //io 信号
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
struct WriteData {
|
|
||||||
WRITETYPE dataType;
|
|
||||||
std::string nameKey; //参数key
|
|
||||||
std::string strValue; //value
|
|
||||||
DATATYPE valueType;
|
|
||||||
};
|
|
||||||
|
|
||||||
class StreamClient {
|
class StreamClient {
|
||||||
typedef void (*DataCallBack)(void* pthis, const ReadData& msg);
|
typedef void (*DataCallBack)(void* pthis, const ReadData& msg);
|
||||||
|
@ -232,6 +232,7 @@
|
|||||||
<ClInclude Include="config\bean\SystemBase.h" />
|
<ClInclude Include="config\bean\SystemBase.h" />
|
||||||
<ClInclude Include="config\ConfigManager.h" />
|
<ClInclude Include="config\ConfigManager.h" />
|
||||||
<ClInclude Include="DataManage\DataHandle.h" />
|
<ClInclude Include="DataManage\DataHandle.h" />
|
||||||
|
<ClInclude Include="DataManage\RWData.h" />
|
||||||
<ClInclude Include="DataManage\StreamClient.h" />
|
<ClInclude Include="DataManage\StreamClient.h" />
|
||||||
<ClInclude Include="external\i18n\Entry.h" />
|
<ClInclude Include="external\i18n\Entry.h" />
|
||||||
<ClInclude Include="external\i18n\I18nDefine.h" />
|
<ClInclude Include="external\i18n\I18nDefine.h" />
|
||||||
|
@ -612,6 +612,9 @@
|
|||||||
<ClInclude Include="config\bean\BaseConfig.h">
|
<ClInclude Include="config\bean\BaseConfig.h">
|
||||||
<Filter>config\bean</Filter>
|
<Filter>config\bean</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="DataManage\RWData.h">
|
||||||
|
<Filter>DataManage</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="protobuf\stream.proto">
|
<None Include="protobuf\stream.proto">
|
||||||
|
@ -22,8 +22,8 @@ public:
|
|||||||
private:
|
private:
|
||||||
ConfigManager();
|
ConfigManager();
|
||||||
virtual ~ConfigManager();
|
virtual ~ConfigManager();
|
||||||
ConfigManager(const ConfigManager& cfg) {};
|
ConfigManager(const ConfigManager& cfg) = delete;
|
||||||
ConfigManager& operator= (const ConfigManager& cfg) {};
|
ConfigManager& operator= (const ConfigManager& cfg) = delete;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Machine* m_Machine;
|
Machine* m_Machine;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "../../DataManage/DataHandle.h"
|
#include "../../DataManage/DataHandle.h"
|
||||||
#include "../ConfigManager.h"
|
#include "../ConfigManager.h"
|
||||||
|
|
||||||
|
|
||||||
IOCfg::IOCfg()
|
IOCfg::IOCfg()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#include "RunCfg.h"
|
#include "RunCfg.h"
|
||||||
#include <condition_variable>
|
#include <condition_variable>
|
||||||
#include <shared_mutex>
|
#include <shared_mutex>
|
||||||
|
#include "../DataManage/RWData.h"
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -1760,6 +1762,24 @@ public:
|
|||||||
Unlock();
|
Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Update(const ReadData& rd) {
|
||||||
|
Lock();
|
||||||
|
std::istringstream issKey(rd.nameKey), issVal(rd.strValue);
|
||||||
|
string keyStr, valStr;
|
||||||
|
while (issKey >> keyStr && issVal >> valStr) {
|
||||||
|
size_t pos = valStr.find("_");
|
||||||
|
if (m_IOCfgMap.find(keyStr) != m_IOCfgMap.end() && pos != string::npos) {
|
||||||
|
DATATYPE valType = (DATATYPE)atoi(valStr.substr(pos + 1).c_str()); //值类型
|
||||||
|
if (valType != iBOOL) continue;
|
||||||
|
string val = valStr.substr(0, pos); //值
|
||||||
|
m_IOCfgMap[keyStr]->m_IsActive = atoi(val.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool IsSafeDoorClose() {
|
bool IsSafeDoorClose() {
|
||||||
bool rel = false;
|
bool rel = false;
|
||||||
Lock();
|
Lock();
|
||||||
|
@ -9,11 +9,7 @@
|
|||||||
#include "SystemInfo.h"
|
#include "SystemInfo.h"
|
||||||
#include "Logger.h"
|
#include "Logger.h"
|
||||||
#include "Toast.h"
|
#include "Toast.h"
|
||||||
#include <iostream>
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include "PLC/SysParam.h"
|
|
||||||
#include "Machine/Machine.h"
|
|
||||||
#include "Machine/HBD1000.h"
|
|
||||||
#include "LanguageManager.h"
|
#include "LanguageManager.h"
|
||||||
#include "ChartletManager.h"
|
#include "ChartletManager.h"
|
||||||
|
|
||||||
@ -31,17 +27,16 @@ SystemInfo* g_SystemInfo;
|
|||||||
|
|
||||||
class HBDSystem {
|
class HBDSystem {
|
||||||
public:
|
public:
|
||||||
HBDSystem():m_win(nullptr)
|
HBDSystem():m_win(nullptr), m_controller(nullptr){}
|
||||||
{}
|
|
||||||
|
|
||||||
~HBDSystem()
|
~HBDSystem(){
|
||||||
{
|
|
||||||
//ConfigManager::GetInstance()->SaveConfig();
|
//ConfigManager::GetInstance()->SaveConfig();
|
||||||
DELP(g_log);
|
DELP(g_log);
|
||||||
DELP(g_Toast);
|
DELP(g_Toast);
|
||||||
|
DELP(g_SystemInfo);
|
||||||
|
DELP(g_LngManager);
|
||||||
DELP(m_controller);
|
DELP(m_controller);
|
||||||
DELP(m_win);
|
DELP(m_win);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool init(){
|
bool init(){
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
#include "Controler.h"
|
#include "Controller.h"
|
||||||
|
|
||||||
Controler::Controler()
|
Controller::Controller()
|
||||||
: m_Machine(nullptr)
|
: m_Machine(nullptr)
|
||||||
, m_CoreCommunication(nullptr)
|
, m_CoreCommunication(nullptr)
|
||||||
, m_Axis(nullptr)
|
, m_Axis(nullptr)
|
||||||
, m_StateCtrlWrapper(nullptr)
|
, m_StateCtrlWrapper(nullptr)
|
||||||
, m_SysParamWrapper(nullptr)
|
, m_SysParamWrapper(nullptr)
|
||||||
, m_AxisRecordWrapper(nullptr)
|
, m_AxisRecordWrapper(nullptr)
|
||||||
, m_SignalStateWrapper(nullptr) {
|
, m_SignalStateWrapper(nullptr){
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Controler::~Controler() {
|
Controller::~Controller() {
|
||||||
DELP(m_CoreCommunication);
|
DELP(m_CoreCommunication);
|
||||||
DELP(m_Axis);
|
DELP(m_Axis);
|
||||||
DELP(m_StateCtrlWrapper);
|
DELP(m_StateCtrlWrapper);
|
||||||
@ -22,11 +22,9 @@ Controler::~Controler() {
|
|||||||
DELP(m_SignalStateWrapper);
|
DELP(m_SignalStateWrapper);
|
||||||
DELP(m_ComServer);
|
DELP(m_ComServer);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Controler::Init(){
|
void Controller::Init(){
|
||||||
m_CoreCommunication = new CoreCommunication();
|
m_CoreCommunication = new CoreCommunication();
|
||||||
m_CoreCommunication->SetIOCfgWrapper(ConfigManager::GetInstance()->GetIoCfgWrapper());
|
m_CoreCommunication->SetIOCfgWrapper(ConfigManager::GetInstance()->GetIoCfgWrapper());
|
||||||
m_CoreCommunication->SetSysParamWrapper(m_SysParamWrapper);
|
m_CoreCommunication->SetSysParamWrapper(m_SysParamWrapper);
|
||||||
@ -67,4 +65,6 @@ void Controler::Init(){
|
|||||||
//m_ScannerCtrl->SetRemoteClient(m_RemoteClient);
|
//m_ScannerCtrl->SetRemoteClient(m_RemoteClient);
|
||||||
|
|
||||||
//m_ScannerCtrl->SetMachineCtrl(m_MachineCtrl);
|
//m_ScannerCtrl->SetMachineCtrl(m_MachineCtrl);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -7,10 +7,10 @@
|
|||||||
#include "../Communication/ComServer.h"
|
#include "../Communication/ComServer.h"
|
||||||
#include "../remote/RemoteClient.h"
|
#include "../remote/RemoteClient.h"
|
||||||
|
|
||||||
class Controler {
|
class Controller {
|
||||||
public:
|
public:
|
||||||
Controler();
|
Controller();
|
||||||
~Controler();
|
~Controller();
|
||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
|
|
50
PrintS/DataManage/ClientInfo.cpp
Normal file
50
PrintS/DataManage/ClientInfo.cpp
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#include "ClientInfo.h"
|
||||||
|
|
||||||
|
//添加客户端
|
||||||
|
void ClientWrapper::AddClient(ClientInfo* clientInfo) {
|
||||||
|
bool isExist = false;
|
||||||
|
std::lock_guard<std::mutex> lck(m_mux);
|
||||||
|
for (auto client = m_clientList.begin(); client != m_clientList.end(); ++client) {
|
||||||
|
if (clientInfo == *client) {
|
||||||
|
isExist = true; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isExist) m_clientList.emplace_back(clientInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
//下线检测
|
||||||
|
void ClientWrapper::OfflineCheck() {
|
||||||
|
std::lock_guard<std::mutex> lck(m_mux);
|
||||||
|
auto client = m_clientList.begin();
|
||||||
|
while (client != m_clientList.end()) {
|
||||||
|
if (!(*client)->IsConnect()) {
|
||||||
|
printf("%s 下线了...\n", (*client)->m_clientAddr.c_str());
|
||||||
|
delete (*client);
|
||||||
|
client = m_clientList.erase(client);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
++client;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClientWrapper::Clear() {
|
||||||
|
std::lock_guard<std::mutex> lck(m_mux);
|
||||||
|
auto client = m_clientList.begin();
|
||||||
|
while (client != m_clientList.end()) {
|
||||||
|
if (*client) delete (*client);
|
||||||
|
++client;
|
||||||
|
}
|
||||||
|
m_clientList.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClientWrapper::PushAllClient(WriteData* wd) {
|
||||||
|
std::lock_guard<std::mutex> lck(m_mux);
|
||||||
|
auto client = m_clientList.begin();
|
||||||
|
while (client != m_clientList.end()) {
|
||||||
|
(*client)->PushMsg(wd);
|
||||||
|
++client;
|
||||||
|
}
|
||||||
|
}
|
@ -3,101 +3,13 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
#include "RWData.h"
|
||||||
|
|
||||||
#include "../protobuf/stream.grpc.pb.h"
|
#include "../protobuf/stream.grpc.pb.h"
|
||||||
|
|
||||||
using grpc::ServerContext;
|
using grpc::ServerContext;
|
||||||
|
|
||||||
|
|
||||||
enum READTYPE {
|
|
||||||
GET = 0,
|
|
||||||
SET,
|
|
||||||
LOAD, //载入
|
|
||||||
LOADOUT, //载出
|
|
||||||
SUPPLYAXLEAFTER, //供粉轴后移
|
|
||||||
SUPPLYAXLEFRONT, //供粉轴前移
|
|
||||||
SUPPLYAXLEAFTERCONTSTART, //供粉轴后移连续开始
|
|
||||||
SUPPLYAXLEAFTERCONTSTOP, //供粉轴后移连续停止
|
|
||||||
SUPPLYAXLEFRONTCONTSTART, //供粉轴前移连续开始
|
|
||||||
SUPPLYAXLEFRONTCONTSTOP, //供粉轴前移连续停止
|
|
||||||
PAVEAXLEFRONT, // 铺粉臂前移
|
|
||||||
PAVEAXLEFRONTCONTSTART, //铺粉臂前移连续
|
|
||||||
PAVEAXLEFRONTCONTSTOP, //铺粉臂前移连续
|
|
||||||
PAVEAXLEAFTER, //铺粉臂后移
|
|
||||||
PAVEAXLEAFTERCONTSTART, //铺粉臂后移连续开始
|
|
||||||
PAVEAXLEAFTERCONTSTOP, //铺粉臂后移连续停止
|
|
||||||
PAVEAXLECLEAR, //铺粉臂清零
|
|
||||||
PRINTAXLEUP, //成型缸上升
|
|
||||||
PRINTAXLEUPCONTSTART, //成型缸连续上升开始
|
|
||||||
PRINTAXLEUPCONTSTOP, //成型缸连续上升停止
|
|
||||||
PRINTAXLEDOWN, //成型缸下降
|
|
||||||
PRINTAXLEDOWNCONTSTART, //成型缸连续下降开始
|
|
||||||
PRINTAXLEDOWNCONTSTOP, //成型缸连续下降停止
|
|
||||||
PRINTAXLECLEAR, //成型缸清零
|
|
||||||
TRANSFERAXIELEFT, //移载轴左移
|
|
||||||
TRANSFERAXIELEFTCONTSTART, //移载轴连续左移开始
|
|
||||||
TRANSFERAXIELEFTCONTSTOP, //移载轴连续左移停止
|
|
||||||
TRANSFERAXIERIGHT, //移载轴右移
|
|
||||||
TRANSFERAXIERIGHTCONTSTART, //移载轴连续右移开始
|
|
||||||
TRANSFERAXIERIGHTCONTSTOP, //移载轴连续右移停止
|
|
||||||
TRANSFERAXIECLEAR, //移载轴清零
|
|
||||||
SCANERSTART, //开始扫描
|
|
||||||
SCANERSTOP, //停止扫描
|
|
||||||
STARTHEATINGSCANNERTEST, //开始振镜预热测试
|
|
||||||
STOPHEATINGSCANNERTEST, //停止振镜预热
|
|
||||||
INITERRORINFOSREQ, //初始化错误信息
|
|
||||||
VERSIONREQ, //获取版本信息
|
|
||||||
};
|
|
||||||
|
|
||||||
enum DATATYPE {
|
|
||||||
iBOOL = 0,
|
|
||||||
iSHORT,
|
|
||||||
iUSHORT,
|
|
||||||
iINT,
|
|
||||||
iUINT,
|
|
||||||
iFLOAT,
|
|
||||||
iSTRING,
|
|
||||||
|
|
||||||
iWORD,
|
|
||||||
};
|
|
||||||
|
|
||||||
class ClientInfo;
|
|
||||||
struct ReadData {
|
|
||||||
READTYPE dataType;
|
|
||||||
std::string nameKey; //参数key
|
|
||||||
std::string strValue; //value
|
|
||||||
DATATYPE valueType;
|
|
||||||
ClientInfo* clientPtr;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum WRITETYPE {
|
|
||||||
ProcReadPLC0=0, //snap7 数据
|
|
||||||
ProcReadPLC1,
|
|
||||||
ProcReadPLC2,
|
|
||||||
ProcReadPLC3,
|
|
||||||
ProcReadPLC4,
|
|
||||||
ProcReadPLC5,
|
|
||||||
ProcReadPLC6,
|
|
||||||
ProcReadPLCData0 = 100,
|
|
||||||
ALARM , //报警
|
|
||||||
RESPOND, //回应
|
|
||||||
TIMEDATA, //定时数据
|
|
||||||
|
|
||||||
INITERRORINFOSRSP, //返回初始化错误信息
|
|
||||||
VERSIONRSP, //返回版本信息
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct WriteData {
|
|
||||||
WRITETYPE dataType;
|
|
||||||
bool result;
|
|
||||||
std::string nameKey; //参数key
|
|
||||||
std::string strValue; //value
|
|
||||||
DATATYPE valueType; //数据类型
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ClientInfo {
|
class ClientInfo {
|
||||||
public:
|
public:
|
||||||
ClientInfo()
|
ClientInfo()
|
||||||
@ -132,7 +44,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetPushMsg(WriteData* msg) {
|
void PushMsg(WriteData* msg) {
|
||||||
std::lock_guard<std::mutex> lock(m_msgLock);
|
std::lock_guard<std::mutex> lock(m_msgLock);
|
||||||
m_msgList.push_back(msg);
|
m_msgList.push_back(msg);
|
||||||
}
|
}
|
||||||
@ -143,8 +55,33 @@ public:
|
|||||||
bool m_writeQuitFlag; //写线程退出标致
|
bool m_writeQuitFlag; //写线程退出标致
|
||||||
ServerContext* m_context; //上下文
|
ServerContext* m_context; //上下文
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::list<WriteData*> m_msgList; //信息缓存区
|
std::list<WriteData*> m_msgList; //信息缓存区
|
||||||
std::mutex m_msgLock; //信息锁
|
std::mutex m_msgLock; //信息锁
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class ClientWrapper {
|
||||||
|
public:
|
||||||
|
static ClientWrapper* Instance() {
|
||||||
|
static ClientWrapper* clientWrapper = new ClientWrapper();
|
||||||
|
return clientWrapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddClient(ClientInfo* clientInfo); //添加客户端
|
||||||
|
|
||||||
|
void OfflineCheck(); //下线检测
|
||||||
|
|
||||||
|
void Clear(); //清空客户端
|
||||||
|
|
||||||
|
void PushAllClient(WriteData* wd);
|
||||||
|
|
||||||
|
private:
|
||||||
|
ClientWrapper() {}
|
||||||
|
~ClientWrapper() {}
|
||||||
|
ClientWrapper(const ClientWrapper& clientWrapper) = delete;
|
||||||
|
ClientWrapper& operator= (const ClientWrapper& clientWrapper) = delete;
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::mutex m_mux;
|
||||||
|
std::list<ClientInfo*> m_clientList;
|
||||||
|
};
|
@ -12,7 +12,7 @@ DataHandle::DataHandle()
|
|||||||
: m_dataCallBack(nullptr)
|
: m_dataCallBack(nullptr)
|
||||||
, m_streamServer(nullptr)
|
, m_streamServer(nullptr)
|
||||||
, m_config(nullptr)
|
, m_config(nullptr)
|
||||||
, m_controler(nullptr)
|
, m_controller(nullptr)
|
||||||
, m_testFlag(false){
|
, m_testFlag(false){
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -24,7 +24,7 @@ DataHandle::~DataHandle() {
|
|||||||
if (m_testTd.joinable()) m_testTd.join();
|
if (m_testTd.joinable()) m_testTd.join();
|
||||||
|
|
||||||
DELP(m_streamServer);
|
DELP(m_streamServer);
|
||||||
DELP(m_controler);
|
DELP(m_controller);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,8 +38,6 @@ void DataHandle::Init() {
|
|||||||
|
|
||||||
m_config->Init();
|
m_config->Init();
|
||||||
|
|
||||||
//WriteData();
|
|
||||||
|
|
||||||
m_streamServer = new StreamServer(m_config->GetMachine());
|
m_streamServer = new StreamServer(m_config->GetMachine());
|
||||||
|
|
||||||
//测试线程
|
//测试线程
|
||||||
@ -53,7 +51,7 @@ void DataHandle::Init() {
|
|||||||
wd->result = true;
|
wd->result = true;
|
||||||
wd->valueType = iFLOAT;
|
wd->valueType = iFLOAT;
|
||||||
if (m_streamServer && m_streamServer->GetClient())
|
if (m_streamServer && m_streamServer->GetClient())
|
||||||
m_streamServer->GetClient()->SetPushMsg(wd);
|
m_streamServer->GetClient()->PushMsg(wd);
|
||||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -62,8 +60,8 @@ void DataHandle::Init() {
|
|||||||
m_streamServer->SetCallBackFunc(this, &DataHandle::DataCallBackProc);
|
m_streamServer->SetCallBackFunc(this, &DataHandle::DataCallBackProc);
|
||||||
m_streamServer->Init();
|
m_streamServer->Init();
|
||||||
|
|
||||||
m_controler = new Controler();
|
m_controller = new Controller();
|
||||||
m_controler->Init();
|
m_controller->Init();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,135 +87,135 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
|||||||
break;
|
break;
|
||||||
case SET: break;
|
case SET: break;
|
||||||
case LOAD:
|
case LOAD:
|
||||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||||
m_controler->m_Machine->LoadIn();
|
m_controller->m_Machine->LoadIn();
|
||||||
break; //载入
|
break; //载入
|
||||||
case LOADOUT:
|
case LOADOUT:
|
||||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||||
m_controler->m_Machine->LoadOut();
|
m_controller->m_Machine->LoadOut();
|
||||||
break; //载出
|
break; //载出
|
||||||
case SUPPLYAXLEAFTER: //供粉轴后移
|
case SUPPLYAXLEAFTER: //供粉轴后移
|
||||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK);
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK);
|
||||||
break;
|
break;
|
||||||
case SUPPLYAXLEFRONT: //供粉轴前移
|
case SUPPLYAXLEFRONT: //供粉轴前移
|
||||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT);
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT);
|
||||||
break;
|
break;
|
||||||
case SUPPLYAXLEAFTERCONTSTART: //供粉轴后移连续
|
case SUPPLYAXLEAFTERCONTSTART: //供粉轴后移连续
|
||||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK,true,true);
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK,true,true);
|
||||||
break;
|
break;
|
||||||
case SUPPLYAXLEAFTERCONTSTOP:
|
case SUPPLYAXLEAFTERCONTSTOP:
|
||||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
||||||
break; //供粉轴后移连续
|
break; //供粉轴后移连续
|
||||||
case SUPPLYAXLEFRONTCONTSTART: //供粉轴前移连续开始
|
case SUPPLYAXLEFRONTCONTSTART: //供粉轴前移连续开始
|
||||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, true);
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, true);
|
||||||
break;
|
break;
|
||||||
case SUPPLYAXLEFRONTCONTSTOP: //供粉轴前移连续结束
|
case SUPPLYAXLEFRONTCONTSTOP: //供粉轴前移连续结束
|
||||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, false);
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, false);
|
||||||
break;
|
break;
|
||||||
case PAVEAXLEFRONT: //铺粉臂前移
|
case PAVEAXLEFRONT: //铺粉臂前移
|
||||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT);
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT);
|
||||||
break;
|
break;
|
||||||
case PAVEAXLEFRONTCONTSTART: //铺粉臂前移连续
|
case PAVEAXLEFRONTCONTSTART: //铺粉臂前移连续
|
||||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,true);
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,true);
|
||||||
break;
|
break;
|
||||||
case PAVEAXLEFRONTCONTSTOP: //铺粉臂前移连续
|
case PAVEAXLEFRONTCONTSTOP: //铺粉臂前移连续
|
||||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,false);
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,false);
|
||||||
break;
|
break;
|
||||||
case PAVEAXLEAFTER: //铺粉臂后移
|
case PAVEAXLEAFTER: //铺粉臂后移
|
||||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK);
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK);
|
||||||
break;
|
break;
|
||||||
case PAVEAXLEAFTERCONTSTART: //铺粉臂后移连续开始
|
case PAVEAXLEAFTERCONTSTART: //铺粉臂后移连续开始
|
||||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, true);
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, true);
|
||||||
break;
|
break;
|
||||||
case PAVEAXLEAFTERCONTSTOP: //铺粉臂后移连续停止
|
case PAVEAXLEAFTERCONTSTOP: //铺粉臂后移连续停止
|
||||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
||||||
break;
|
break;
|
||||||
case PAVEAXLECLEAR:
|
case PAVEAXLECLEAR:
|
||||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::ZERO);
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||||
break; //铺粉臂清零
|
break; //铺粉臂清零
|
||||||
case PRINTAXLEUP:
|
case PRINTAXLEUP:
|
||||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP);
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP);
|
||||||
break; //成型缸上升
|
break; //成型缸上升
|
||||||
case PRINTAXLEUPCONTSTART: //成型缸连续上升开始
|
case PRINTAXLEUPCONTSTART: //成型缸连续上升开始
|
||||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, true);
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, true);
|
||||||
break;
|
break;
|
||||||
case PRINTAXLEUPCONTSTOP: //成型缸连续上升停止
|
case PRINTAXLEUPCONTSTOP: //成型缸连续上升停止
|
||||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, false);
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, false);
|
||||||
break;
|
break;
|
||||||
case PRINTAXLEDOWN:
|
case PRINTAXLEDOWN:
|
||||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN);
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN);
|
||||||
break; //成型缸下降
|
break; //成型缸下降
|
||||||
case PRINTAXLEDOWNCONTSTART:
|
case PRINTAXLEDOWNCONTSTART:
|
||||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN, true, true);
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN, true, true);
|
||||||
break; //成型缸连续下降开始
|
break; //成型缸连续下降开始
|
||||||
case PRINTAXLEDOWNCONTSTOP: //成型缸连续下降停止
|
case PRINTAXLEDOWNCONTSTOP: //成型缸连续下降停止
|
||||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN,true,false);
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN,true,false);
|
||||||
break;
|
break;
|
||||||
case PRINTAXLECLEAR: //成型缸清零
|
case PRINTAXLECLEAR: //成型缸清零
|
||||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::ZERO);
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||||
break;
|
break;
|
||||||
case TRANSFERAXIELEFT: //移栽轴左移
|
case TRANSFERAXIELEFT: //移栽轴左移
|
||||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT);
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT);
|
||||||
break;
|
break;
|
||||||
case TRANSFERAXIELEFTCONTSTART: //移栽轴连续左移开始
|
case TRANSFERAXIELEFTCONTSTART: //移栽轴连续左移开始
|
||||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true,true);
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true,true);
|
||||||
break;
|
break;
|
||||||
case TRANSFERAXIELEFTCONTSTOP: //移栽轴连续左移停止
|
case TRANSFERAXIELEFTCONTSTOP: //移栽轴连续左移停止
|
||||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true, false);
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true, false);
|
||||||
break;
|
break;
|
||||||
case TRANSFERAXIERIGHT: //移栽轴右移
|
case TRANSFERAXIERIGHT: //移栽轴右移
|
||||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT);
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT);
|
||||||
break;
|
break;
|
||||||
case TRANSFERAXIERIGHTCONTSTART: //移栽轴连续右移
|
case TRANSFERAXIERIGHTCONTSTART: //移栽轴连续右移
|
||||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT,true,true);
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT,true,true);
|
||||||
break;
|
break;
|
||||||
case TRANSFERAXIERIGHTCONTSTOP: //移栽轴连续右移
|
case TRANSFERAXIERIGHTCONTSTOP: //移栽轴连续右移
|
||||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT, true, false);
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT, true, false);
|
||||||
break;
|
break;
|
||||||
case TRANSFERAXIECLEAR: //移栽轴清零
|
case TRANSFERAXIECLEAR: //移栽轴清零
|
||||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::ZERO);
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||||
break;
|
break;
|
||||||
case SCANERSTART: //开始扫描
|
case SCANERSTART: //开始扫描
|
||||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||||
index = atoi(msg.strValue.c_str());
|
index = atoi(msg.strValue.c_str());
|
||||||
if (index >= (*scanners).size()) return;
|
if (index >= (*scanners).size()) return;
|
||||||
if ((*scanners)[index]) (*scanners)[index]->StartDebugTest();
|
if ((*scanners)[index]) (*scanners)[index]->StartDebugTest();
|
||||||
break;
|
break;
|
||||||
case SCANERSTOP: //停止扫描
|
case SCANERSTOP: //停止扫描
|
||||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||||
index = atoi(msg.strValue.c_str());
|
index = atoi(msg.strValue.c_str());
|
||||||
if (index >= (*scanners).size()) return;
|
if (index >= (*scanners).size()) return;
|
||||||
if ((*scanners)[index]) (*scanners)[index]->StopDebugTest();
|
if ((*scanners)[index]) (*scanners)[index]->StopDebugTest();
|
||||||
break;
|
break;
|
||||||
case STARTHEATINGSCANNERTEST: //开始振镜预热测试
|
case STARTHEATINGSCANNERTEST: //开始振镜预热测试
|
||||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||||
index = atoi(msg.strValue.c_str());
|
index = atoi(msg.strValue.c_str());
|
||||||
if (index >= (*scanners).size()) return;
|
if (index >= (*scanners).size()) return;
|
||||||
if((*scanners)[index]) (*scanners)[index]->StartHeatingScannerTest();
|
if((*scanners)[index]) (*scanners)[index]->StartHeatingScannerTest();
|
||||||
break;
|
break;
|
||||||
case STOPHEATINGSCANNERTEST: //停止振镜预热
|
case STOPHEATINGSCANNERTEST: //停止振镜预热
|
||||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||||
index = atoi(msg.strValue.c_str());
|
index = atoi(msg.strValue.c_str());
|
||||||
if (index >= (*scanners).size()) return;
|
if (index >= (*scanners).size()) return;
|
||||||
if ((*scanners)[index]) (*scanners)[index]->StopHeatingScannerTest();
|
if ((*scanners)[index]) (*scanners)[index]->StopHeatingScannerTest();
|
||||||
break;
|
break;
|
||||||
case INITERRORINFOSREQ: //初始化错误信息
|
case INITERRORINFOSREQ: //初始化错误信息
|
||||||
wd = new WriteData();
|
wd = new WriteData();
|
||||||
wd->strValue = m_controler->m_ScannerCtrl->GetInitErrorInfos();
|
wd->strValue = m_controller->m_ScannerCtrl->GetInitErrorInfos();
|
||||||
wd->dataType = INITERRORINFOSRSP;
|
wd->dataType = INITERRORINFOSRSP;
|
||||||
wd->valueType = iSTRING;
|
wd->valueType = iSTRING;
|
||||||
msg.clientPtr->SetPushMsg(wd);
|
msg.clientPtr->PushMsg(wd);
|
||||||
break;
|
break;
|
||||||
case VERSIONREQ: //获取版本信息
|
case VERSIONREQ: //获取版本信息
|
||||||
wd = new WriteData();
|
wd = new WriteData();
|
||||||
wd->strValue = g_SystemInfo->m_ProductVersion;
|
wd->strValue = g_SystemInfo->m_ProductVersion;
|
||||||
wd->dataType = VERSIONRSP;
|
wd->dataType = VERSIONRSP;
|
||||||
wd->valueType = iSTRING;
|
wd->valueType = iSTRING;
|
||||||
msg.clientPtr->SetPushMsg(wd);
|
msg.clientPtr->PushMsg(wd);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: break;
|
default: break;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include "StreamServer.h"
|
#include "StreamServer.h"
|
||||||
#include "../Config/ConfigManager.h"
|
#include "../Config/ConfigManager.h"
|
||||||
#include "../Controler/Controler.h"
|
#include "../Controller/Controller.h"
|
||||||
|
|
||||||
class DataHandle{
|
class DataHandle{
|
||||||
typedef void (*DataCallBack)(void* pthis, const ReadData& msg);
|
typedef void (*DataCallBack)(void* pthis, const ReadData& msg);
|
||||||
@ -21,7 +21,7 @@ private:
|
|||||||
std::thread m_testTd;
|
std::thread m_testTd;
|
||||||
|
|
||||||
ConfigManager* m_config;
|
ConfigManager* m_config;
|
||||||
Controler* m_controler;
|
Controller* m_controller;
|
||||||
bool m_testFlag; //测试线程
|
bool m_testFlag; //测试线程
|
||||||
|
|
||||||
void DataCallBackHandle(const ReadData& msg);
|
void DataCallBackHandle(const ReadData& msg);
|
||||||
|
94
PrintS/DataManage/RWData.h
Normal file
94
PrintS/DataManage/RWData.h
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
enum READTYPE {
|
||||||
|
GET = 0,
|
||||||
|
SET,
|
||||||
|
LOAD, //载入
|
||||||
|
LOADOUT, //载出
|
||||||
|
SUPPLYAXLEAFTER, //供粉轴后移
|
||||||
|
SUPPLYAXLEFRONT, //供粉轴前移
|
||||||
|
SUPPLYAXLEAFTERCONTSTART, //供粉轴后移连续开始
|
||||||
|
SUPPLYAXLEAFTERCONTSTOP, //供粉轴后移连续停止
|
||||||
|
SUPPLYAXLEFRONTCONTSTART, //供粉轴前移连续开始
|
||||||
|
SUPPLYAXLEFRONTCONTSTOP, //供粉轴前移连续停止
|
||||||
|
PAVEAXLEFRONT, // 铺粉臂前移
|
||||||
|
PAVEAXLEFRONTCONTSTART, //铺粉臂前移连续
|
||||||
|
PAVEAXLEFRONTCONTSTOP, //铺粉臂前移连续
|
||||||
|
PAVEAXLEAFTER, //铺粉臂后移
|
||||||
|
PAVEAXLEAFTERCONTSTART, //铺粉臂后移连续开始
|
||||||
|
PAVEAXLEAFTERCONTSTOP, //铺粉臂后移连续停止
|
||||||
|
PAVEAXLECLEAR, //铺粉臂清零
|
||||||
|
PRINTAXLEUP, //成型缸上升
|
||||||
|
PRINTAXLEUPCONTSTART, //成型缸连续上升开始
|
||||||
|
PRINTAXLEUPCONTSTOP, //成型缸连续上升停止
|
||||||
|
PRINTAXLEDOWN, //成型缸下降
|
||||||
|
PRINTAXLEDOWNCONTSTART, //成型缸连续下降开始
|
||||||
|
PRINTAXLEDOWNCONTSTOP, //成型缸连续下降停止
|
||||||
|
PRINTAXLECLEAR, //成型缸清零
|
||||||
|
TRANSFERAXIELEFT, //移载轴左移
|
||||||
|
TRANSFERAXIELEFTCONTSTART, //移载轴连续左移开始
|
||||||
|
TRANSFERAXIELEFTCONTSTOP, //移载轴连续左移停止
|
||||||
|
TRANSFERAXIERIGHT, //移载轴右移
|
||||||
|
TRANSFERAXIERIGHTCONTSTART, //移载轴连续右移开始
|
||||||
|
TRANSFERAXIERIGHTCONTSTOP, //移载轴连续右移停止
|
||||||
|
TRANSFERAXIECLEAR, //移载轴清零
|
||||||
|
SCANERSTART, //开始扫描
|
||||||
|
SCANERSTOP, //停止扫描
|
||||||
|
STARTHEATINGSCANNERTEST, //开始振镜预热测试
|
||||||
|
STOPHEATINGSCANNERTEST, //停止振镜预热
|
||||||
|
INITERRORINFOSREQ, //初始化错误信息
|
||||||
|
VERSIONREQ, //获取版本信息
|
||||||
|
};
|
||||||
|
|
||||||
|
enum DATATYPE {
|
||||||
|
iBOOL = 0,
|
||||||
|
iSHORT,
|
||||||
|
iUSHORT,
|
||||||
|
iINT,
|
||||||
|
iUINT,
|
||||||
|
iFLOAT,
|
||||||
|
iSTRING,
|
||||||
|
|
||||||
|
iWORD,
|
||||||
|
};
|
||||||
|
|
||||||
|
class ClientInfo;
|
||||||
|
struct ReadData {
|
||||||
|
READTYPE dataType;
|
||||||
|
std::string nameKey; //参数key
|
||||||
|
std::string strValue; //value
|
||||||
|
DATATYPE valueType;
|
||||||
|
ClientInfo* clientPtr;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum WRITETYPE {
|
||||||
|
ProcReadPLC0 = 0, //snap7 数据
|
||||||
|
ProcReadPLC1,
|
||||||
|
ProcReadPLC2,
|
||||||
|
ProcReadPLC3,
|
||||||
|
ProcReadPLC4,
|
||||||
|
ProcReadPLC5,
|
||||||
|
ProcReadPLC6,
|
||||||
|
ProcReadPLCData0 = 100,
|
||||||
|
ALARM, //报警
|
||||||
|
RESPOND, //回应
|
||||||
|
TIMEDATA, //定时数据
|
||||||
|
|
||||||
|
INITERRORINFOSRSP, //返回初始化错误信息
|
||||||
|
VERSIONRSP, //返回版本信息
|
||||||
|
SYSPARAMDATA, //
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct WriteData {
|
||||||
|
WRITETYPE dataType;
|
||||||
|
bool result;
|
||||||
|
std::string nameKey; //参数key
|
||||||
|
std::string strValue; //value
|
||||||
|
DATATYPE valueType; //数据类型
|
||||||
|
|
||||||
|
WriteData() {}
|
||||||
|
WriteData(WRITETYPE dt, const std::string& keyStr, const std::string& valStr)
|
||||||
|
: dataType(dt), nameKey(keyStr),strValue(valStr){}
|
||||||
|
};
|
@ -6,7 +6,6 @@ StreamServer::StreamServer(Machine* p)
|
|||||||
, m_dataCallBack(nullptr)
|
, m_dataCallBack(nullptr)
|
||||||
, m_machine(p)
|
, m_machine(p)
|
||||||
, m_handlePtr(nullptr){
|
, m_handlePtr(nullptr){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -27,11 +26,8 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
|
|||||||
cinfo->m_clientAddr = context->peer();
|
cinfo->m_clientAddr = context->peer();
|
||||||
cinfo->m_context = context;
|
cinfo->m_context = context;
|
||||||
|
|
||||||
{
|
ClientWrapper::Instance()->AddClient(cinfo);
|
||||||
std::lock_guard<std::mutex> lck(m_clientMutex);
|
|
||||||
m_clientList.emplace_back(cinfo);
|
|
||||||
m_machine->UpdateClients(m_clientList);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::thread read([this, &stream, cinfo] {
|
std::thread read([this, &stream, cinfo] {
|
||||||
RequestInfo request;
|
RequestInfo request;
|
||||||
@ -89,21 +85,7 @@ void StreamServer::Run() {
|
|||||||
if (!m_checkCloseTd.joinable()) {
|
if (!m_checkCloseTd.joinable()) {
|
||||||
m_checkCloseTd = std::thread([this] {
|
m_checkCloseTd = std::thread([this] {
|
||||||
while (!m_checkQuitFlag) {
|
while (!m_checkQuitFlag) {
|
||||||
{
|
ClientWrapper::Instance()->OfflineCheck();
|
||||||
std::lock_guard<std::mutex> lck(m_clientMutex);
|
|
||||||
bool ischange = false;
|
|
||||||
for (auto client = m_clientList.begin(); client != m_clientList.end();) {
|
|
||||||
if (!(*client)->IsConnect()) {
|
|
||||||
printf("%s 下线了...\n", (*client)->m_clientAddr.c_str());
|
|
||||||
delete (*client);
|
|
||||||
client = m_clientList.erase(client);
|
|
||||||
ischange = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
++client;
|
|
||||||
}
|
|
||||||
if (ischange) m_machine->UpdateClients(m_clientList);
|
|
||||||
}
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -75,10 +75,7 @@ void HBDSystem::GetVersion()
|
|||||||
lpTranslate[i].wCodePage);
|
lpTranslate[i].wCodePage);
|
||||||
void* lpBuffer = NULL;
|
void* lpBuffer = NULL;
|
||||||
unsigned int dwBytes = 0;
|
unsigned int dwBytes = 0;
|
||||||
VerQueryValue(InfoBuf,
|
VerQueryValue(InfoBuf,SubBlock,&lpBuffer,&dwBytes);
|
||||||
SubBlock,
|
|
||||||
&lpBuffer,
|
|
||||||
&dwBytes);
|
|
||||||
string strTemp = (char*)lpBuffer;
|
string strTemp = (char*)lpBuffer;
|
||||||
strVersion += strTemp;
|
strVersion += strTemp;
|
||||||
|
|
||||||
|
@ -13073,18 +13073,7 @@ void HBD1000::ProcReadPLCData(void* pobject, Command* pcommand)
|
|||||||
CoreCommunication* cc = (CoreCommunication*)machine->m_PLC;
|
CoreCommunication* cc = (CoreCommunication*)machine->m_PLC;
|
||||||
TS7DataItem pSysData = pdataItems[0];
|
TS7DataItem pSysData = pdataItems[0];
|
||||||
|
|
||||||
// for (int i = 0; i < itemcount; ++i) {
|
|
||||||
// WriteData* data = new WriteData();
|
|
||||||
// data->dataType = WRITETYPE(i + 100);
|
|
||||||
// data->strValue = (char*)pdataItems[i].pdata;
|
|
||||||
// data->result = true;
|
|
||||||
// for (auto& client : machine->m_clientUser) {
|
|
||||||
// client->SetPushMsg(data);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
std::unique_lock<std::shared_mutex> lock(cc->m_ValueMtx);
|
std::unique_lock<std::shared_mutex> lock(cc->m_ValueMtx);
|
||||||
if (pSysData.Result == 0) {
|
if (pSysData.Result == 0) {
|
||||||
unsigned char* arr = (unsigned char*)pSysData.pdata;
|
unsigned char* arr = (unsigned char*)pSysData.pdata;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -84,13 +84,13 @@ public:
|
|||||||
void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc);
|
void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc);
|
||||||
void InitPLCCommand(vector<S7Command*>& vecs);
|
void InitPLCCommand(vector<S7Command*>& vecs);
|
||||||
//void GetAlarmState(SignalState& signalState);
|
//void GetAlarmState(SignalState& signalState);
|
||||||
//bool CheckPrintMoldReady();
|
bool CheckPrintMoldReady();
|
||||||
private:
|
private:
|
||||||
static void CheckIO_V0(vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type);
|
static void CheckIO_V0(vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type);
|
||||||
static void ProcReadPLC(void* pobject, Command* pcommand);
|
static void ProcReadPLC(void* pobject, Command* pcommand);
|
||||||
static void ProcReadPLCData(void* pobject, Command* pcommand);
|
static void ProcReadPLCData(void* pobject, Command* pcommand);
|
||||||
void LoadInRun() {}
|
void LoadInRun();
|
||||||
void LoadOutRun() {}
|
void LoadOutRun();
|
||||||
bool IsLoadAxisCanMoveLeft();
|
bool IsLoadAxisCanMoveLeft();
|
||||||
string GetLoadAxisCanotMoveLeftInfo();
|
string GetLoadAxisCanotMoveLeftInfo();
|
||||||
bool IsLoadAxisCanMoveRight();
|
bool IsLoadAxisCanMoveRight();
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -128,10 +128,6 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateClients(const list<ClientInfo*>& clientList) {
|
|
||||||
m_clientUser = clientList;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void LoadAxisMove(AxisConfig::ActiveDirect adr, bool isContinue = false, bool isStart = false); //移栽轴运动
|
virtual void LoadAxisMove(AxisConfig::ActiveDirect adr, bool isContinue = false, bool isStart = false); //移栽轴运动
|
||||||
virtual void SupplyAxisMove(AxisConfig::ActiveDirect adr, bool isContinue = false, bool isStart = false); //供粉轴运动
|
virtual void SupplyAxisMove(AxisConfig::ActiveDirect adr, bool isContinue = false, bool isStart = false); //供粉轴运动
|
||||||
virtual void PrintAxisMove(AxisConfig::ActiveDirect adr, bool isContinue = false, bool isStart = false); //成型缸运动
|
virtual void PrintAxisMove(AxisConfig::ActiveDirect adr, bool isContinue = false, bool isStart = false); //成型缸运动
|
||||||
@ -256,8 +252,6 @@ protected:
|
|||||||
|
|
||||||
vector<string> m_AxisTabs;
|
vector<string> m_AxisTabs;
|
||||||
|
|
||||||
list<ClientInfo*> m_clientUser; //连接客户端
|
|
||||||
|
|
||||||
std::map<std::string, DValue > m_plcMp;
|
std::map<std::string, DValue > m_plcMp;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -7,9 +7,10 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
CoreCommunication::CoreCommunication()
|
CoreCommunication::CoreCommunication()
|
||||||
:m_Config(NULL)
|
: m_Config(NULL)
|
||||||
, m_ReadThread(INVALID_HANDLE_VALUE)
|
, m_ReadThread(INVALID_HANDLE_VALUE)
|
||||||
,m_WriteThread(INVALID_HANDLE_VALUE)
|
, m_WriteThread(INVALID_HANDLE_VALUE)
|
||||||
|
, m_sendTdExitFlag(false)
|
||||||
{
|
{
|
||||||
m_IsSmart = true;
|
m_IsSmart = true;
|
||||||
m_Invoker = new PLCInvoker();
|
m_Invoker = new PLCInvoker();
|
||||||
@ -23,6 +24,9 @@ CoreCommunication::~CoreCommunication()
|
|||||||
if (m_S7Client->Connected)m_S7Client->Disconnect();
|
if (m_S7Client->Connected)m_S7Client->Disconnect();
|
||||||
delete m_S7Client;
|
delete m_S7Client;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_sendTdExitFlag = true;
|
||||||
|
if (m_sendTd.joinable()) m_sendTd.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoreCommunication::Startup()
|
void CoreCommunication::Startup()
|
||||||
@ -32,6 +36,8 @@ void CoreCommunication::Startup()
|
|||||||
m_AssistRunFlag = true;
|
m_AssistRunFlag = true;
|
||||||
m_ReadThread = AtlCreateThread(ReadProc, this);
|
m_ReadThread = AtlCreateThread(ReadProc, this);
|
||||||
m_AssistThread = AtlCreateThread(AssistProc, this);
|
m_AssistThread = AtlCreateThread(AssistProc, this);
|
||||||
|
|
||||||
|
m_sendTd = std::thread([this] {SendProc(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoreCommunication::Shutdown()
|
void CoreCommunication::Shutdown()
|
||||||
@ -340,58 +346,58 @@ void CoreCommunication::AssistRun()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//void CoreCommunication::GetAlarmState(SignalState& signalState)
|
void CoreCommunication::GetAlarmState(SignalState& signalState)
|
||||||
//{
|
{
|
||||||
// std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
||||||
// ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState);
|
//ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState);
|
||||||
//}
|
}
|
||||||
|
|
||||||
//void CoreCommunication::GetEnvState(EnvState& envState)
|
void CoreCommunication::GetEnvState(EnvState& envState)
|
||||||
//{
|
{
|
||||||
// std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
||||||
// //ConfigManager::GetInstance()->GetMachine()->GetAlarmState(envState);
|
//ConfigManager::GetInstance()->GetMachine()->GetAlarmState(envState);
|
||||||
//
|
|
||||||
// envState.m_PrintOxygen1Analog=m_SysParamWrapper->m_PrintOxygen1->GetValue();
|
envState.m_PrintOxygen1Analog=m_SysParamWrapper->m_PrintOxygen1->GetValue();
|
||||||
// envState.m_PrintOxygen2Analog =m_SysParamWrapper->m_PrintOxygen2->GetValue();
|
envState.m_PrintOxygen2Analog =m_SysParamWrapper->m_PrintOxygen2->GetValue();
|
||||||
// envState.m_OutsideOxygenAnalog =m_SysParamWrapper->m_OutsideOxygen->GetValue();
|
envState.m_OutsideOxygenAnalog =m_SysParamWrapper->m_OutsideOxygen->GetValue();
|
||||||
//
|
|
||||||
// envState.m_HighPressureAnalog =m_SysParamWrapper->m_HighPressure->GetValue();
|
envState.m_HighPressureAnalog =m_SysParamWrapper->m_HighPressure->GetValue();
|
||||||
// envState.m_ProtectGasPressureAnalog =m_SysParamWrapper->m_ProtectGasPressure->GetValue();
|
envState.m_ProtectGasPressureAnalog =m_SysParamWrapper->m_ProtectGasPressure->GetValue();
|
||||||
// envState.m_PrintPressureAnalog =m_SysParamWrapper->m_PrintPressure->GetValue();
|
envState.m_PrintPressureAnalog =m_SysParamWrapper->m_PrintPressure->GetValue();
|
||||||
// envState.m_MoldMainCurrentPos=m_SysParamWrapper->m_MoldMainCurrentPos->GetValue(); //打印主轴当前位置_R
|
envState.m_MoldMainCurrentPos=m_SysParamWrapper->m_MoldMainCurrentPos->GetValue(); //打印主轴当前位置_R
|
||||||
// envState.m_MoldMainCurrentLoad=m_SysParamWrapper->m_MoldMainCurrentLoad->GetValue(); //打印主轴当前扭矩_R
|
envState.m_MoldMainCurrentLoad=m_SysParamWrapper->m_MoldMainCurrentLoad->GetValue(); //打印主轴当前扭矩_R
|
||||||
// envState.m_MoldSlaveCurrentPos=m_SysParamWrapper->m_MoldSlaveCurrentPos->GetValue(); //打印从轴当前位置_R
|
envState.m_MoldSlaveCurrentPos=m_SysParamWrapper->m_MoldSlaveCurrentPos->GetValue(); //打印从轴当前位置_R
|
||||||
// envState.m_MoldSlaveCurrentLoad=m_SysParamWrapper->m_MoldSlaveCurrentLoad->GetValue(); //打印从轴当前扭矩_R
|
envState.m_MoldSlaveCurrentLoad=m_SysParamWrapper->m_MoldSlaveCurrentLoad->GetValue(); //打印从轴当前扭矩_R
|
||||||
// envState.m_CleanMainCurrentPos=m_SysParamWrapper->m_CleanMainCurrentPos->GetValue(); //清粉主轴当前位置_R
|
envState.m_CleanMainCurrentPos=m_SysParamWrapper->m_CleanMainCurrentPos->GetValue(); //清粉主轴当前位置_R
|
||||||
// envState.m_CleanMainCurrentLoad=m_SysParamWrapper->m_CleanMainCurrentLoad->GetValue(); //清粉主轴当前扭矩_R
|
envState.m_CleanMainCurrentLoad=m_SysParamWrapper->m_CleanMainCurrentLoad->GetValue(); //清粉主轴当前扭矩_R
|
||||||
// envState.m_CleanSlaveCurrentPos=m_SysParamWrapper->m_CleanSlaveCurrentPos->GetValue(); //清粉从轴当前位置_R
|
envState.m_CleanSlaveCurrentPos=m_SysParamWrapper->m_CleanSlaveCurrentPos->GetValue(); //清粉从轴当前位置_R
|
||||||
// envState.m_CleanSlaveCurrentLoad=m_SysParamWrapper->m_CleanSlaveCurrentLoad->GetValue(); //清粉从轴当前扭矩_R
|
envState.m_CleanSlaveCurrentLoad=m_SysParamWrapper->m_CleanSlaveCurrentLoad->GetValue(); //清粉从轴当前扭矩_R
|
||||||
// envState.m_LoadAxisCurrentPos=m_SysParamWrapper->m_LoadAxisCurrentPos->GetValue(); //移载轴当前位置_R
|
envState.m_LoadAxisCurrentPos=m_SysParamWrapper->m_LoadAxisCurrentPos->GetValue(); //移载轴当前位置_R
|
||||||
// envState.m_LoadAxisCurrentLoad=m_SysParamWrapper->m_LoadAxisCurrentLoad->GetValue(); //移载轴当前扭矩_R
|
envState.m_LoadAxisCurrentLoad=m_SysParamWrapper->m_LoadAxisCurrentLoad->GetValue(); //移载轴当前扭矩_R
|
||||||
// envState.m_ArmCurrentPos=m_SysParamWrapper->m_ArmCurrentPos->GetValue(); //铺粉轴当前位置_R
|
envState.m_ArmCurrentPos=m_SysParamWrapper->m_ArmCurrentPos->GetValue(); //铺粉轴当前位置_R
|
||||||
// envState.m_ArmCurrentLoad=m_SysParamWrapper->m_ArmCurrentLoad->GetValue(); //铺粉轴当前扭矩_R
|
envState.m_ArmCurrentLoad=m_SysParamWrapper->m_ArmCurrentLoad->GetValue(); //铺粉轴当前扭矩_R
|
||||||
// envState.m_SupplyCurrentPos=m_SysParamWrapper->m_SupplyCurrentPos->GetValue(); //供粉转轴当前位置_R
|
envState.m_SupplyCurrentPos=m_SysParamWrapper->m_SupplyCurrentPos->GetValue(); //供粉转轴当前位置_R
|
||||||
// envState.m_SupplyCurrentLoad=m_SysParamWrapper->m_SupplyCurrentLoad->GetValue(); //供粉转轴当前扭矩_R
|
envState.m_SupplyCurrentLoad=m_SysParamWrapper->m_SupplyCurrentLoad->GetValue(); //供粉转轴当前扭矩_R
|
||||||
//
|
|
||||||
// envState.m_IsPrintCabinDoorClose = m_IOCfgWrapper->IsSafeDoorClose();
|
envState.m_IsPrintCabinDoorClose = m_IOCfgWrapper->IsSafeDoorClose();
|
||||||
//
|
|
||||||
// envState.m_PowderJarCabinPressureVoltage=m_SysParamWrapper->m_PowderJarCabinPressureVoltage->GetValue();
|
envState.m_PowderJarCabinPressureVoltage=m_SysParamWrapper->m_PowderJarCabinPressureVoltage->GetValue();
|
||||||
// envState.m_PowderJarCabinPressure=m_SysParamWrapper->m_PowderJarCabinPressureValue->GetValue();
|
envState.m_PowderJarCabinPressure=m_SysParamWrapper->m_PowderJarCabinPressureValue->GetValue();
|
||||||
// envState.m_PowderLevelLength = m_SysParamWrapper->m_PowderLevelLength->GetValue();
|
envState.m_PowderLevelLength = m_SysParamWrapper->m_PowderLevelLength->GetValue();
|
||||||
// envState.m_PowderLevelValue = m_SysParamWrapper->m_PowderLevelValue->GetValue();
|
envState.m_PowderLevelValue = m_SysParamWrapper->m_PowderLevelValue->GetValue();
|
||||||
//
|
|
||||||
// envState.m_LinearLayerPos = m_SysParamWrapper->m_LinearEncoderPerLayerRealValue->GetValue();
|
envState.m_LinearLayerPos = m_SysParamWrapper->m_LinearEncoderPerLayerRealValue->GetValue();
|
||||||
// envState.m_MoldTheoryDistance = m_SysParamWrapper->m_MoldTheoryDistance->GetValue();
|
envState.m_MoldTheoryDistance = m_SysParamWrapper->m_MoldTheoryDistance->GetValue();
|
||||||
// envState.m_LinearActDistance = m_SysParamWrapper->m_LinearActDistance->GetValue();
|
envState.m_LinearActDistance = m_SysParamWrapper->m_LinearActDistance->GetValue();
|
||||||
// envState.m_LinearActPulse = m_SysParamWrapper->m_LinearActPulse->GetValue();
|
envState.m_LinearActPulse = m_SysParamWrapper->m_LinearActPulse->GetValue();
|
||||||
// envState.m_LineEncPulseEqu = m_SysParamWrapper->m_LineEncPulseEqu->GetValue();
|
envState.m_LineEncPulseEqu = m_SysParamWrapper->m_LineEncPulseEqu->GetValue();
|
||||||
//
|
|
||||||
// envState.m_PrintCar1RealWeight = m_SysParamWrapper->m_PrintCar1RealWeight->GetValue();
|
envState.m_PrintCar1RealWeight = m_SysParamWrapper->m_PrintCar1RealWeight->GetValue();
|
||||||
// envState.m_PrintCar2RealWeight = m_SysParamWrapper->m_PrintCar2RealWeight->GetValue();
|
envState.m_PrintCar2RealWeight = m_SysParamWrapper->m_PrintCar2RealWeight->GetValue();
|
||||||
// envState.m_CleanCar1RealWeight = m_SysParamWrapper->m_CleanCar1RealWeight->GetValue();
|
envState.m_CleanCar1RealWeight = m_SysParamWrapper->m_CleanCar1RealWeight->GetValue();
|
||||||
// envState.m_CleanCar2RealWeight = m_SysParamWrapper->m_CleanCar2RealWeight->GetValue();
|
envState.m_CleanCar2RealWeight = m_SysParamWrapper->m_CleanCar2RealWeight->GetValue();
|
||||||
//
|
|
||||||
//}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*void CoreCommunication::AddCmd(Command* cmd)
|
/*void CoreCommunication::AddCmd(Command* cmd)
|
||||||
@ -402,3 +408,34 @@ void CoreCommunication::AssistRun()
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
void CoreCommunication::SendProc() {
|
||||||
|
int index = 0;
|
||||||
|
string keyStr, valStr;
|
||||||
|
while (!m_sendTdExitFlag) {
|
||||||
|
index = 0;
|
||||||
|
std::unique_lock<std::shared_mutex> lock(m_ValueMtx);
|
||||||
|
keyStr = valStr = "";
|
||||||
|
auto param = SysParam::m_sysParamMp.begin();
|
||||||
|
while (param != SysParam::m_sysParamMp.end()) {
|
||||||
|
keyStr += param->first;
|
||||||
|
valStr += param->second.GetValue();
|
||||||
|
++index;
|
||||||
|
if (index % 30 == 0) {
|
||||||
|
WriteData* wd = new WriteData();
|
||||||
|
ClientWrapper::Instance()->PushAllClient(new WriteData(SYSPARAMDATA, keyStr, valStr));
|
||||||
|
keyStr = valStr = "";
|
||||||
|
}
|
||||||
|
++param;
|
||||||
|
}
|
||||||
|
if (!keyStr.empty() && !valStr.empty()) {
|
||||||
|
ClientWrapper::Instance()->PushAllClient(new WriteData(SYSPARAMDATA, keyStr, valStr));
|
||||||
|
}
|
||||||
|
|
||||||
|
index = 0;
|
||||||
|
keyStr = valStr = "";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||||
|
}
|
||||||
|
}
|
@ -39,8 +39,8 @@ public:
|
|||||||
void SetSysParamWrapper(SysParamWrapper* param) { m_SysParamWrapper = param; }
|
void SetSysParamWrapper(SysParamWrapper* param) { m_SysParamWrapper = param; }
|
||||||
void SetPLCAxis(PLCAxis* axis) { m_Axis = axis; }
|
void SetPLCAxis(PLCAxis* axis) { m_Axis = axis; }
|
||||||
void SetAlarmStateWrapper(SignalStateWrapper* param) { m_AlarmStateWrapper = param; };
|
void SetAlarmStateWrapper(SignalStateWrapper* param) { m_AlarmStateWrapper = param; };
|
||||||
//void GetAlarmState(SignalState& alarmState);
|
void GetAlarmState(SignalState& alarmState);
|
||||||
//void GetEnvState(EnvState& envState);
|
void GetEnvState(EnvState& envState);
|
||||||
void SetAxisRecordWrapper(AxisRecordWrapper* record) { m_AxisrecordWrapper = record; }
|
void SetAxisRecordWrapper(AxisRecordWrapper* record) { m_AxisrecordWrapper = record; }
|
||||||
|
|
||||||
virtual bool IsServerConnected() {
|
virtual bool IsServerConnected() {
|
||||||
@ -68,6 +68,7 @@ private:
|
|||||||
Command* GetSendCycleCommand();
|
Command* GetSendCycleCommand();
|
||||||
void UpdateCycleCommands();
|
void UpdateCycleCommands();
|
||||||
|
|
||||||
|
void SendProc();
|
||||||
public:
|
public:
|
||||||
BaseStat m_BaseStat;
|
BaseStat m_BaseStat;
|
||||||
bool m_IsSmart;
|
bool m_IsSmart;
|
||||||
@ -98,6 +99,12 @@ private:
|
|||||||
AxisRecordWrapper* m_AxisrecordWrapper;
|
AxisRecordWrapper* m_AxisrecordWrapper;
|
||||||
|
|
||||||
PLCInvoker* m_Invoker;
|
PLCInvoker* m_Invoker;
|
||||||
|
|
||||||
|
|
||||||
|
bool m_sendTdExitFlag; //线程退出标记
|
||||||
|
std::thread m_sendTd; //定时发送客户端线程
|
||||||
|
|
||||||
|
|
||||||
static const unsigned int READ_INFO_ITEM_COUNT = 6;
|
static const unsigned int READ_INFO_ITEM_COUNT = 6;
|
||||||
static const unsigned int READ_DATA_ITEM_COUNT = 1;
|
static const unsigned int READ_DATA_ITEM_COUNT = 1;
|
||||||
};
|
};
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <condition_variable>
|
#include <condition_variable>
|
||||||
#include "Command/PLCReceiver.h"
|
#include "Command/PLCReceiver.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include "../DataManage/RWData.h"
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
struct DValue;
|
struct DValue;
|
||||||
@ -28,6 +29,7 @@ public:
|
|||||||
LeaveCriticalSection(&m_ValueCS);
|
LeaveCriticalSection(&m_ValueCS);
|
||||||
}
|
}
|
||||||
static std::map<std::string, DValue > m_sysParamMp; //记录
|
static std::map<std::string, DValue > m_sysParamMp; //记录
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int m_Addr;
|
int m_Addr;
|
||||||
int m_DBNumber;
|
int m_DBNumber;
|
||||||
@ -167,6 +169,15 @@ struct DValue {
|
|||||||
//printf("SysParamFloat init");
|
//printf("SysParamFloat init");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string GetValue() {
|
||||||
|
if (sysParamB) return std::to_string(sysParamB->GetValue())+"_"+to_string(DATATYPE::iBOOL);
|
||||||
|
if (sysParamW) return std::to_string(sysParamW->GetValue())+"_"+to_string(iSHORT);
|
||||||
|
if (sysParamI) return std::to_string(sysParamI->GetValue()) + "_" + to_string(iINT);
|
||||||
|
if (sysParamF) return std::to_string(sysParamF->GetValue()) + "_" + to_string(iFLOAT);
|
||||||
|
if (sysParamFU) return std::to_string(sysParamFU->GetValue()) + "_" + to_string(iFLOAT);
|
||||||
|
if (sysParamWU) return std::to_string(sysParamWU->GetValue()) + "_" + to_string(iSHORT);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
SysParamBool* sysParamB;
|
SysParamBool* sysParamB;
|
||||||
SysParamWord* sysParamW;
|
SysParamWord* sysParamW;
|
||||||
|
@ -137,7 +137,7 @@
|
|||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>./lib;./lib/absl</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>./lib;./lib/absl</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>libprotobuf.lib;libprotobuf-lite.lib;libprotoc.lib;address_sorting.lib;cares.lib;gpr.lib;crypto.lib;grpc++.lib;grpc++_alts.lib;grpc++_error_details.lib;grpc++_reflection.lib;grpc++_unsecure.lib;grpc.lib;grpcpp_channelz.lib;grpc_authorization_provider.lib;grpc_plugin_support.lib;grpc_unsecure.lib;upb.lib;upb_collections_lib.lib;upb_json_lib.lib;upb_textformat_lib.lib;utf8_range_lib.lib;re2.lib;ssl.lib;testing.lib;zlib.lib;zlibstatic.lib;absl_bad_any_cast_impl.lib;absl_bad_optional_access.lib;absl_bad_variant_access.lib;absl_base.lib;absl_city.lib;absl_civil_time.lib;absl_cord.lib;absl_cordz_functions.lib;absl_cordz_handle.lib;absl_cordz_info.lib;absl_cordz_sample_token.lib;absl_cord_internal.lib;absl_crc32c.lib;absl_crc_cord_state.lib;absl_crc_cpu_detect.lib;absl_crc_internal.lib;absl_debugging_internal.lib;absl_demangle_internal.lib;absl_die_if_null.lib;absl_examine_stack.lib;absl_exponential_biased.lib;absl_failure_signal_handler.lib;absl_flags.lib;absl_flags_commandlineflag.lib;absl_flags_commandlineflag_internal.lib;absl_flags_config.lib;absl_flags_internal.lib;absl_flags_marshalling.lib;absl_flags_parse.lib;absl_flags_private_handle_accessor.lib;absl_flags_program_name.lib;absl_flags_reflection.lib;absl_flags_usage.lib;absl_flags_usage_internal.lib;absl_graphcycles_internal.lib;absl_hash.lib;absl_hashtablez_sampler.lib;absl_int128.lib;absl_kernel_timeout_internal.lib;absl_leak_check.lib;absl_log_entry.lib;absl_log_flags.lib;absl_log_globals.lib;absl_log_initialize.lib;absl_log_internal_check_op.lib;absl_log_internal_conditions.lib;absl_log_internal_format.lib;absl_log_internal_globals.lib;absl_log_internal_log_sink_set.lib;absl_log_internal_message.lib;absl_log_internal_nullguard.lib;absl_log_internal_proto.lib;absl_log_severity.lib;absl_log_sink.lib;absl_low_level_hash.lib;absl_malloc_internal.lib;absl_periodic_sampler.lib;absl_random_distributions.lib;absl_random_internal_distribution_test_util.lib;absl_random_internal_platform.lib;absl_random_internal_pool_urbg.lib;absl_random_internal_randen.lib;absl_random_internal_randen_hwaes.lib;absl_random_internal_randen_hwaes_impl.lib;absl_random_internal_randen_slow.lib;absl_random_internal_seed_material.lib;absl_random_seed_gen_exception.lib;absl_random_seed_sequences.lib;absl_raw_hash_set.lib;absl_raw_logging_internal.lib;absl_scoped_set_env.lib;absl_spinlock_wait.lib;absl_stacktrace.lib;absl_status.lib;absl_statusor.lib;absl_strerror.lib;absl_strings.lib;absl_strings_internal.lib;absl_string_view.lib;absl_str_format_internal.lib;absl_symbolize.lib;absl_synchronization.lib;absl_throw_delegate.lib;absl_time.lib;absl_time_zone.lib;Ws2_32.lib;utf8_range.lib;utf8_validity.lib;opengl32.lib;sqlite3.lib;Rpcrt4.lib;ws2_32.lib;winmm.lib;dbghelp.lib;version.lib;gdiplus.lib;GxIAPICPPEx.lib;MVSDKmd.lib;jpeg-static.lib;turbojpeg-static.lib;RTC5DLLx64.lib;opencv_world455.lib;expat.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libprotobuf.lib;libprotobuf-lite.lib;libprotoc.lib;address_sorting.lib;cares.lib;gpr.lib;crypto.lib;grpc++.lib;grpc++_alts.lib;grpc++_error_details.lib;grpc++_reflection.lib;grpc++_unsecure.lib;grpc.lib;grpcpp_channelz.lib;grpc_authorization_provider.lib;grpc_plugin_support.lib;grpc_unsecure.lib;upb.lib;upb_collections_lib.lib;upb_json_lib.lib;upb_textformat_lib.lib;utf8_range_lib.lib;re2.lib;ssl.lib;testing.lib;zlib.lib;zlibstatic.lib;absl_bad_any_cast_impl.lib;absl_bad_optional_access.lib;absl_bad_variant_access.lib;absl_base.lib;absl_city.lib;absl_civil_time.lib;absl_cord.lib;absl_cordz_functions.lib;absl_cordz_handle.lib;absl_cordz_info.lib;absl_cordz_sample_token.lib;absl_cord_internal.lib;absl_crc32c.lib;absl_crc_cord_state.lib;absl_crc_cpu_detect.lib;absl_crc_internal.lib;absl_debugging_internal.lib;absl_demangle_internal.lib;absl_die_if_null.lib;absl_examine_stack.lib;absl_exponential_biased.lib;absl_failure_signal_handler.lib;absl_flags.lib;absl_flags_commandlineflag.lib;absl_flags_commandlineflag_internal.lib;absl_flags_config.lib;absl_flags_internal.lib;absl_flags_marshalling.lib;absl_flags_parse.lib;absl_flags_private_handle_accessor.lib;absl_flags_program_name.lib;absl_flags_reflection.lib;absl_flags_usage.lib;absl_flags_usage_internal.lib;absl_graphcycles_internal.lib;absl_hash.lib;absl_hashtablez_sampler.lib;absl_int128.lib;absl_kernel_timeout_internal.lib;absl_leak_check.lib;absl_log_entry.lib;absl_log_flags.lib;absl_log_globals.lib;absl_log_initialize.lib;absl_log_internal_check_op.lib;absl_log_internal_conditions.lib;absl_log_internal_format.lib;absl_log_internal_globals.lib;absl_log_internal_log_sink_set.lib;absl_log_internal_message.lib;absl_log_internal_nullguard.lib;absl_log_internal_proto.lib;absl_log_severity.lib;absl_log_sink.lib;absl_low_level_hash.lib;absl_malloc_internal.lib;absl_periodic_sampler.lib;absl_random_distributions.lib;absl_random_internal_distribution_test_util.lib;absl_random_internal_platform.lib;absl_random_internal_pool_urbg.lib;absl_random_internal_randen.lib;absl_random_internal_randen_hwaes.lib;absl_random_internal_randen_hwaes_impl.lib;absl_random_internal_randen_slow.lib;absl_random_internal_seed_material.lib;absl_random_seed_gen_exception.lib;absl_random_seed_sequences.lib;absl_raw_hash_set.lib;absl_raw_logging_internal.lib;absl_scoped_set_env.lib;absl_spinlock_wait.lib;absl_stacktrace.lib;absl_status.lib;absl_statusor.lib;absl_strerror.lib;absl_strings.lib;absl_strings_internal.lib;absl_string_view.lib;absl_str_format_internal.lib;absl_symbolize.lib;absl_synchronization.lib;absl_throw_delegate.lib;absl_time.lib;absl_time_zone.lib;Ws2_32.lib;utf8_range.lib;utf8_validity.lib;opengl32.lib;sqlite3.lib;Rpcrt4.lib;ws2_32.lib;winmm.lib;dbghelp.lib;version.lib;gdiplus.lib;GxIAPICPPEx.lib;MVSDKmd.lib;jpeg-static.lib;turbojpeg-static.lib;RTC5DLLx64.lib;opencv_world455.lib;expat.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<IgnoreSpecificDefaultLibraries>crypto.lib</IgnoreSpecificDefaultLibraries>
|
<IgnoreSpecificDefaultLibraries>crypto.lib</IgnoreSpecificDefaultLibraries>
|
||||||
@ -227,8 +227,8 @@
|
|||||||
<ClCompile Include="Config\dao\ScannerControlCfgDao.cpp" />
|
<ClCompile Include="Config\dao\ScannerControlCfgDao.cpp" />
|
||||||
<ClCompile Include="Config\dao\SystemBaseDao.cpp" />
|
<ClCompile Include="Config\dao\SystemBaseDao.cpp" />
|
||||||
<ClCompile Include="Config\dao\TimePowerCompensateDao.cpp" />
|
<ClCompile Include="Config\dao\TimePowerCompensateDao.cpp" />
|
||||||
<ClCompile Include="Controler\Controler.cpp" />
|
<ClCompile Include="Controller\Controller.cpp" />
|
||||||
<ClCompile Include="DataManage\ClientInfo.h" />
|
<ClCompile Include="DataManage\ClientInfo.cpp" />
|
||||||
<ClCompile Include="DataManage\DataHandle.cpp" />
|
<ClCompile Include="DataManage\DataHandle.cpp" />
|
||||||
<ClCompile Include="DataManage\StreamServer.cpp" />
|
<ClCompile Include="DataManage\StreamServer.cpp" />
|
||||||
<ClCompile Include="external\clipper\clipper.cpp" />
|
<ClCompile Include="external\clipper\clipper.cpp" />
|
||||||
@ -436,8 +436,10 @@
|
|||||||
<ClInclude Include="Config\dao\ScannerControlCfgDao.h" />
|
<ClInclude Include="Config\dao\ScannerControlCfgDao.h" />
|
||||||
<ClInclude Include="Config\dao\SystemBaseDao.h" />
|
<ClInclude Include="Config\dao\SystemBaseDao.h" />
|
||||||
<ClInclude Include="Config\dao\TimePowerCompensateDao.h" />
|
<ClInclude Include="Config\dao\TimePowerCompensateDao.h" />
|
||||||
<ClInclude Include="Controler\Controler.h" />
|
<ClInclude Include="Controller\Controller.h" />
|
||||||
|
<ClInclude Include="DataManage\ClientInfo.h" />
|
||||||
<ClInclude Include="DataManage\DataHandle.h" />
|
<ClInclude Include="DataManage\DataHandle.h" />
|
||||||
|
<ClInclude Include="DataManage\RWData.h" />
|
||||||
<ClInclude Include="DataManage\StreamServer.h" />
|
<ClInclude Include="DataManage\StreamServer.h" />
|
||||||
<ClInclude Include="external\clipper\clipper.hpp" />
|
<ClInclude Include="external\clipper\clipper.hpp" />
|
||||||
<ClInclude Include="external\expat\include\ascii.h" />
|
<ClInclude Include="external\expat\include\ascii.h" />
|
||||||
|
@ -77,9 +77,6 @@
|
|||||||
<Filter Include="external\QRCode">
|
<Filter Include="external\QRCode">
|
||||||
<UniqueIdentifier>{92e21183-dc80-46b5-ad1d-750bbe59eeca}</UniqueIdentifier>
|
<UniqueIdentifier>{92e21183-dc80-46b5-ad1d-750bbe59eeca}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Controler">
|
|
||||||
<UniqueIdentifier>{3144f523-bb18-4add-b886-c19f2f90c72a}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="ScannerCtrl">
|
<Filter Include="ScannerCtrl">
|
||||||
<UniqueIdentifier>{5b502dd4-fc0d-4177-89fa-babb40b7ab3c}</UniqueIdentifier>
|
<UniqueIdentifier>{5b502dd4-fc0d-4177-89fa-babb40b7ab3c}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
@ -128,6 +125,9 @@
|
|||||||
<Filter Include="external\NewFilter1">
|
<Filter Include="external\NewFilter1">
|
||||||
<UniqueIdentifier>{b3261719-dd99-4a4b-8621-cb665ae76036}</UniqueIdentifier>
|
<UniqueIdentifier>{b3261719-dd99-4a4b-8621-cb665ae76036}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Controller">
|
||||||
|
<UniqueIdentifier>{3144f523-bb18-4add-b886-c19f2f90c72a}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="main.cpp" />
|
<ClCompile Include="main.cpp" />
|
||||||
@ -518,15 +518,9 @@
|
|||||||
<ClCompile Include="external\QRCode\QrSegment.cpp">
|
<ClCompile Include="external\QRCode\QrSegment.cpp">
|
||||||
<Filter>external\QRCode</Filter>
|
<Filter>external\QRCode</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="DataManage\ClientInfo.h">
|
|
||||||
<Filter>DataManage</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Config\ConfigManager.cpp">
|
<ClCompile Include="Config\ConfigManager.cpp">
|
||||||
<Filter>Config</Filter>
|
<Filter>Config</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Controler\Controler.cpp">
|
|
||||||
<Filter>Controler</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="PLC\SysParam.cpp">
|
<ClCompile Include="PLC\SysParam.cpp">
|
||||||
<Filter>PLC</Filter>
|
<Filter>PLC</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@ -681,6 +675,12 @@
|
|||||||
<Filter>external\minizip</Filter>
|
<Filter>external\minizip</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="HBDSystem.cpp" />
|
<ClCompile Include="HBDSystem.cpp" />
|
||||||
|
<ClCompile Include="Controller\Controller.cpp">
|
||||||
|
<Filter>Controller</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="DataManage\ClientInfo.cpp">
|
||||||
|
<Filter>DataManage</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="protobuf\stream.proto">
|
<None Include="protobuf\stream.proto">
|
||||||
@ -1406,9 +1406,6 @@
|
|||||||
<ClInclude Include="Config\ConfigManager.h">
|
<ClInclude Include="Config\ConfigManager.h">
|
||||||
<Filter>Config</Filter>
|
<Filter>Config</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="Controler\Controler.h">
|
|
||||||
<Filter>Controler</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="PLC\SysParam.h">
|
<ClInclude Include="PLC\SysParam.h">
|
||||||
<Filter>PLC</Filter>
|
<Filter>PLC</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@ -1738,6 +1735,15 @@
|
|||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="resource1.h" />
|
<ClInclude Include="resource1.h" />
|
||||||
<ClInclude Include="HBDSystem.h" />
|
<ClInclude Include="HBDSystem.h" />
|
||||||
|
<ClInclude Include="DataManage\RWData.h">
|
||||||
|
<Filter>DataManage</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Controller\Controller.h">
|
||||||
|
<Filter>Controller</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="DataManage\ClientInfo.h">
|
||||||
|
<Filter>DataManage</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Text Include="说明.txt" />
|
<Text Include="说明.txt" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user