添加客户端类等
This commit is contained in:
parent
abb3d9959b
commit
8facf6ed53
@ -1,4 +1,5 @@
|
||||
#include "DataHandle.h"
|
||||
#include "../config/ConfigManager.h"
|
||||
|
||||
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
|
||||
DataHandle* p = (DataHandle*)pthis;
|
||||
@ -47,7 +48,7 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
||||
param.sysParamI->SetValue(atoi(val.c_str()));
|
||||
break;
|
||||
case iFLOAT:
|
||||
param.sysParamB->SetValue(atof(val.c_str()));
|
||||
param.sysParamF->SetValue(atof(val.c_str()));
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
@ -57,6 +58,9 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
||||
case VERSIONRSP:
|
||||
m_version = msg.strValue;
|
||||
break;
|
||||
case IOSIGNALRSP: //io信号返回
|
||||
ConfigManager::Instance()->GetIoCfgWrapper()->Update(msg);
|
||||
break;
|
||||
|
||||
|
||||
default:break;
|
||||
|
@ -41,8 +41,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
string GetVersion()const {
|
||||
return m_version;}
|
||||
string GetVersion()const {return m_version;}
|
||||
private:
|
||||
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 <grpcpp/grpcpp.h>
|
||||
#include "../protobuf/stream.grpc.pb.h"
|
||||
#include "RWData.h"
|
||||
|
||||
using grpc::Channel;
|
||||
using grpc::ClientContext;
|
||||
@ -13,93 +14,6 @@ using stream::Stream;
|
||||
using stream::RequestInfo;
|
||||
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 {
|
||||
typedef void (*DataCallBack)(void* pthis, const ReadData& msg);
|
||||
|
@ -232,6 +232,7 @@
|
||||
<ClInclude Include="config\bean\SystemBase.h" />
|
||||
<ClInclude Include="config\ConfigManager.h" />
|
||||
<ClInclude Include="DataManage\DataHandle.h" />
|
||||
<ClInclude Include="DataManage\RWData.h" />
|
||||
<ClInclude Include="DataManage\StreamClient.h" />
|
||||
<ClInclude Include="external\i18n\Entry.h" />
|
||||
<ClInclude Include="external\i18n\I18nDefine.h" />
|
||||
|
@ -612,6 +612,9 @@
|
||||
<ClInclude Include="config\bean\BaseConfig.h">
|
||||
<Filter>config\bean</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DataManage\RWData.h">
|
||||
<Filter>DataManage</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="protobuf\stream.proto">
|
||||
|
@ -22,8 +22,8 @@ public:
|
||||
private:
|
||||
ConfigManager();
|
||||
virtual ~ConfigManager();
|
||||
ConfigManager(const ConfigManager& cfg) {};
|
||||
ConfigManager& operator= (const ConfigManager& cfg) {};
|
||||
ConfigManager(const ConfigManager& cfg) = delete;
|
||||
ConfigManager& operator= (const ConfigManager& cfg) = delete;
|
||||
|
||||
private:
|
||||
Machine* m_Machine;
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "../../DataManage/DataHandle.h"
|
||||
#include "../ConfigManager.h"
|
||||
|
||||
|
||||
IOCfg::IOCfg()
|
||||
{
|
||||
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include "RunCfg.h"
|
||||
#include <condition_variable>
|
||||
#include <shared_mutex>
|
||||
#include "../DataManage/RWData.h"
|
||||
#include <sstream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -1760,6 +1762,24 @@ public:
|
||||
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 rel = false;
|
||||
Lock();
|
||||
|
@ -9,11 +9,7 @@
|
||||
#include "SystemInfo.h"
|
||||
#include "Logger.h"
|
||||
#include "Toast.h"
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include "PLC/SysParam.h"
|
||||
#include "Machine/Machine.h"
|
||||
#include "Machine/HBD1000.h"
|
||||
#include "LanguageManager.h"
|
||||
#include "ChartletManager.h"
|
||||
|
||||
@ -31,17 +27,16 @@ SystemInfo* g_SystemInfo;
|
||||
|
||||
class HBDSystem {
|
||||
public:
|
||||
HBDSystem():m_win(nullptr)
|
||||
{}
|
||||
HBDSystem():m_win(nullptr), m_controller(nullptr){}
|
||||
|
||||
~HBDSystem()
|
||||
{
|
||||
~HBDSystem(){
|
||||
//ConfigManager::GetInstance()->SaveConfig();
|
||||
DELP(g_log);
|
||||
DELP(g_Toast);
|
||||
DELP(g_SystemInfo);
|
||||
DELP(g_LngManager);
|
||||
DELP(m_controller);
|
||||
DELP(m_win);
|
||||
|
||||
}
|
||||
|
||||
bool init(){
|
||||
|
@ -1,19 +1,19 @@
|
||||
#include "Controler.h"
|
||||
#include "Controller.h"
|
||||
|
||||
Controler::Controler()
|
||||
Controller::Controller()
|
||||
: m_Machine(nullptr)
|
||||
, m_CoreCommunication(nullptr)
|
||||
, m_Axis(nullptr)
|
||||
, m_StateCtrlWrapper(nullptr)
|
||||
, m_SysParamWrapper(nullptr)
|
||||
, m_AxisRecordWrapper(nullptr)
|
||||
, m_SignalStateWrapper(nullptr) {
|
||||
, m_SignalStateWrapper(nullptr){
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Controler::~Controler() {
|
||||
Controller::~Controller() {
|
||||
DELP(m_CoreCommunication);
|
||||
DELP(m_Axis);
|
||||
DELP(m_StateCtrlWrapper);
|
||||
@ -22,11 +22,9 @@ Controler::~Controler() {
|
||||
DELP(m_SignalStateWrapper);
|
||||
DELP(m_ComServer);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Controler::Init(){
|
||||
void Controller::Init(){
|
||||
m_CoreCommunication = new CoreCommunication();
|
||||
m_CoreCommunication->SetIOCfgWrapper(ConfigManager::GetInstance()->GetIoCfgWrapper());
|
||||
m_CoreCommunication->SetSysParamWrapper(m_SysParamWrapper);
|
||||
@ -67,4 +65,6 @@ void Controler::Init(){
|
||||
//m_ScannerCtrl->SetRemoteClient(m_RemoteClient);
|
||||
|
||||
//m_ScannerCtrl->SetMachineCtrl(m_MachineCtrl);
|
||||
|
||||
|
||||
}
|
@ -7,10 +7,10 @@
|
||||
#include "../Communication/ComServer.h"
|
||||
#include "../remote/RemoteClient.h"
|
||||
|
||||
class Controler {
|
||||
class Controller {
|
||||
public:
|
||||
Controler();
|
||||
~Controler();
|
||||
Controller();
|
||||
~Controller();
|
||||
|
||||
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 <thread>
|
||||
#include <list>
|
||||
#include "RWData.h"
|
||||
|
||||
#include "../protobuf/stream.grpc.pb.h"
|
||||
|
||||
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 {
|
||||
public:
|
||||
ClientInfo()
|
||||
@ -132,7 +44,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void SetPushMsg(WriteData* msg) {
|
||||
void PushMsg(WriteData* msg) {
|
||||
std::lock_guard<std::mutex> lock(m_msgLock);
|
||||
m_msgList.push_back(msg);
|
||||
}
|
||||
@ -143,8 +55,33 @@ public:
|
||||
bool m_writeQuitFlag; //写线程退出标致
|
||||
ServerContext* m_context; //上下文
|
||||
|
||||
|
||||
private:
|
||||
std::list<WriteData*> m_msgList; //信息缓存区
|
||||
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_streamServer(nullptr)
|
||||
, m_config(nullptr)
|
||||
, m_controler(nullptr)
|
||||
, m_controller(nullptr)
|
||||
, m_testFlag(false){
|
||||
|
||||
}
|
||||
@ -24,7 +24,7 @@ DataHandle::~DataHandle() {
|
||||
if (m_testTd.joinable()) m_testTd.join();
|
||||
|
||||
DELP(m_streamServer);
|
||||
DELP(m_controler);
|
||||
DELP(m_controller);
|
||||
|
||||
}
|
||||
|
||||
@ -38,8 +38,6 @@ void DataHandle::Init() {
|
||||
|
||||
m_config->Init();
|
||||
|
||||
//WriteData();
|
||||
|
||||
m_streamServer = new StreamServer(m_config->GetMachine());
|
||||
|
||||
//测试线程
|
||||
@ -53,7 +51,7 @@ void DataHandle::Init() {
|
||||
wd->result = true;
|
||||
wd->valueType = iFLOAT;
|
||||
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));
|
||||
}
|
||||
});
|
||||
@ -62,8 +60,8 @@ void DataHandle::Init() {
|
||||
m_streamServer->SetCallBackFunc(this, &DataHandle::DataCallBackProc);
|
||||
m_streamServer->Init();
|
||||
|
||||
m_controler = new Controler();
|
||||
m_controler->Init();
|
||||
m_controller = new Controller();
|
||||
m_controller->Init();
|
||||
|
||||
}
|
||||
|
||||
@ -89,135 +87,135 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
||||
break;
|
||||
case SET: break;
|
||||
case LOAD:
|
||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controler->m_Machine->LoadIn();
|
||||
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controller->m_Machine->LoadIn();
|
||||
break; //载入
|
||||
case LOADOUT:
|
||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controler->m_Machine->LoadOut();
|
||||
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controller->m_Machine->LoadOut();
|
||||
break; //载出
|
||||
case SUPPLYAXLEAFTER: //供粉轴后移
|
||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK);
|
||||
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK);
|
||||
break;
|
||||
case SUPPLYAXLEFRONT: //供粉轴前移
|
||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT);
|
||||
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT);
|
||||
break;
|
||||
case SUPPLYAXLEAFTERCONTSTART: //供粉轴后移连续
|
||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK,true,true);
|
||||
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK,true,true);
|
||||
break;
|
||||
case SUPPLYAXLEAFTERCONTSTOP:
|
||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
||||
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
||||
break; //供粉轴后移连续
|
||||
case SUPPLYAXLEFRONTCONTSTART: //供粉轴前移连续开始
|
||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, true);
|
||||
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, true);
|
||||
break;
|
||||
case SUPPLYAXLEFRONTCONTSTOP: //供粉轴前移连续结束
|
||||
m_controler->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, false);
|
||||
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, false);
|
||||
break;
|
||||
case PAVEAXLEFRONT: //铺粉臂前移
|
||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT);
|
||||
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT);
|
||||
break;
|
||||
case PAVEAXLEFRONTCONTSTART: //铺粉臂前移连续
|
||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,true);
|
||||
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,true);
|
||||
break;
|
||||
case PAVEAXLEFRONTCONTSTOP: //铺粉臂前移连续
|
||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,false);
|
||||
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,false);
|
||||
break;
|
||||
case PAVEAXLEAFTER: //铺粉臂后移
|
||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK);
|
||||
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK);
|
||||
break;
|
||||
case PAVEAXLEAFTERCONTSTART: //铺粉臂后移连续开始
|
||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, true);
|
||||
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, true);
|
||||
break;
|
||||
case PAVEAXLEAFTERCONTSTOP: //铺粉臂后移连续停止
|
||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
||||
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
||||
break;
|
||||
case PAVEAXLECLEAR:
|
||||
m_controler->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||
break; //铺粉臂清零
|
||||
case PRINTAXLEUP:
|
||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP);
|
||||
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP);
|
||||
break; //成型缸上升
|
||||
case PRINTAXLEUPCONTSTART: //成型缸连续上升开始
|
||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, true);
|
||||
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, true);
|
||||
break;
|
||||
case PRINTAXLEUPCONTSTOP: //成型缸连续上升停止
|
||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, false);
|
||||
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, false);
|
||||
break;
|
||||
case PRINTAXLEDOWN:
|
||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN);
|
||||
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN);
|
||||
break; //成型缸下降
|
||||
case PRINTAXLEDOWNCONTSTART:
|
||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN, true, true);
|
||||
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN, true, true);
|
||||
break; //成型缸连续下降开始
|
||||
case PRINTAXLEDOWNCONTSTOP: //成型缸连续下降停止
|
||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN,true,false);
|
||||
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN,true,false);
|
||||
break;
|
||||
case PRINTAXLECLEAR: //成型缸清零
|
||||
m_controler->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||
break;
|
||||
case TRANSFERAXIELEFT: //移栽轴左移
|
||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT);
|
||||
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT);
|
||||
break;
|
||||
case TRANSFERAXIELEFTCONTSTART: //移栽轴连续左移开始
|
||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true,true);
|
||||
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true,true);
|
||||
break;
|
||||
case TRANSFERAXIELEFTCONTSTOP: //移栽轴连续左移停止
|
||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true, false);
|
||||
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true, false);
|
||||
break;
|
||||
case TRANSFERAXIERIGHT: //移栽轴右移
|
||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT);
|
||||
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT);
|
||||
break;
|
||||
case TRANSFERAXIERIGHTCONTSTART: //移栽轴连续右移
|
||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT,true,true);
|
||||
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT,true,true);
|
||||
break;
|
||||
case TRANSFERAXIERIGHTCONTSTOP: //移栽轴连续右移
|
||||
if (!m_controler->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT, true, false);
|
||||
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
||||
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT, true, false);
|
||||
break;
|
||||
case TRANSFERAXIECLEAR: //移栽轴清零
|
||||
m_controler->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::ZERO);
|
||||
break;
|
||||
case SCANERSTART: //开始扫描
|
||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
||||
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||
index = atoi(msg.strValue.c_str());
|
||||
if (index >= (*scanners).size()) return;
|
||||
if ((*scanners)[index]) (*scanners)[index]->StartDebugTest();
|
||||
break;
|
||||
case SCANERSTOP: //停止扫描
|
||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
||||
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||
index = atoi(msg.strValue.c_str());
|
||||
if (index >= (*scanners).size()) return;
|
||||
if ((*scanners)[index]) (*scanners)[index]->StopDebugTest();
|
||||
break;
|
||||
case STARTHEATINGSCANNERTEST: //开始振镜预热测试
|
||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
||||
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||
index = atoi(msg.strValue.c_str());
|
||||
if (index >= (*scanners).size()) return;
|
||||
if((*scanners)[index]) (*scanners)[index]->StartHeatingScannerTest();
|
||||
break;
|
||||
case STOPHEATINGSCANNERTEST: //停止振镜预热
|
||||
scanners = m_controler->m_ScannerCtrl->GetScanners();
|
||||
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
||||
index = atoi(msg.strValue.c_str());
|
||||
if (index >= (*scanners).size()) return;
|
||||
if ((*scanners)[index]) (*scanners)[index]->StopHeatingScannerTest();
|
||||
break;
|
||||
case INITERRORINFOSREQ: //初始化错误信息
|
||||
wd = new WriteData();
|
||||
wd->strValue = m_controler->m_ScannerCtrl->GetInitErrorInfos();
|
||||
wd->strValue = m_controller->m_ScannerCtrl->GetInitErrorInfos();
|
||||
wd->dataType = INITERRORINFOSRSP;
|
||||
wd->valueType = iSTRING;
|
||||
msg.clientPtr->SetPushMsg(wd);
|
||||
msg.clientPtr->PushMsg(wd);
|
||||
break;
|
||||
case VERSIONREQ: //获取版本信息
|
||||
wd = new WriteData();
|
||||
wd->strValue = g_SystemInfo->m_ProductVersion;
|
||||
wd->dataType = VERSIONRSP;
|
||||
wd->valueType = iSTRING;
|
||||
msg.clientPtr->SetPushMsg(wd);
|
||||
msg.clientPtr->PushMsg(wd);
|
||||
break;
|
||||
|
||||
default: break;
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include <string>
|
||||
#include "StreamServer.h"
|
||||
#include "../Config/ConfigManager.h"
|
||||
#include "../Controler/Controler.h"
|
||||
#include "../Controller/Controller.h"
|
||||
|
||||
class DataHandle{
|
||||
typedef void (*DataCallBack)(void* pthis, const ReadData& msg);
|
||||
@ -21,7 +21,7 @@ private:
|
||||
std::thread m_testTd;
|
||||
|
||||
ConfigManager* m_config;
|
||||
Controler* m_controler;
|
||||
Controller* m_controller;
|
||||
bool m_testFlag; //测试线程
|
||||
|
||||
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_machine(p)
|
||||
, m_handlePtr(nullptr){
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -27,11 +26,8 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
|
||||
cinfo->m_clientAddr = context->peer();
|
||||
cinfo->m_context = context;
|
||||
|
||||
{
|
||||
std::lock_guard<std::mutex> lck(m_clientMutex);
|
||||
m_clientList.emplace_back(cinfo);
|
||||
m_machine->UpdateClients(m_clientList);
|
||||
}
|
||||
ClientWrapper::Instance()->AddClient(cinfo);
|
||||
|
||||
|
||||
std::thread read([this, &stream, cinfo] {
|
||||
RequestInfo request;
|
||||
@ -89,21 +85,7 @@ void StreamServer::Run() {
|
||||
if (!m_checkCloseTd.joinable()) {
|
||||
m_checkCloseTd = std::thread([this] {
|
||||
while (!m_checkQuitFlag) {
|
||||
{
|
||||
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);
|
||||
}
|
||||
ClientWrapper::Instance()->OfflineCheck();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||
}
|
||||
});
|
||||
|
@ -75,10 +75,7 @@ void HBDSystem::GetVersion()
|
||||
lpTranslate[i].wCodePage);
|
||||
void* lpBuffer = NULL;
|
||||
unsigned int dwBytes = 0;
|
||||
VerQueryValue(InfoBuf,
|
||||
SubBlock,
|
||||
&lpBuffer,
|
||||
&dwBytes);
|
||||
VerQueryValue(InfoBuf,SubBlock,&lpBuffer,&dwBytes);
|
||||
string strTemp = (char*)lpBuffer;
|
||||
strVersion += strTemp;
|
||||
|
||||
|
@ -13073,18 +13073,7 @@ void HBD1000::ProcReadPLCData(void* pobject, Command* pcommand)
|
||||
CoreCommunication* cc = (CoreCommunication*)machine->m_PLC;
|
||||
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);
|
||||
if (pSysData.Result == 0) {
|
||||
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 InitPLCCommand(vector<S7Command*>& vecs);
|
||||
//void GetAlarmState(SignalState& signalState);
|
||||
//bool CheckPrintMoldReady();
|
||||
bool CheckPrintMoldReady();
|
||||
private:
|
||||
static void CheckIO_V0(vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type);
|
||||
static void ProcReadPLC(void* pobject, Command* pcommand);
|
||||
static void ProcReadPLCData(void* pobject, Command* pcommand);
|
||||
void LoadInRun() {}
|
||||
void LoadOutRun() {}
|
||||
void LoadInRun();
|
||||
void LoadOutRun();
|
||||
bool IsLoadAxisCanMoveLeft();
|
||||
string GetLoadAxisCanotMoveLeftInfo();
|
||||
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;
|
||||
}
|
||||
|
||||
void UpdateClients(const list<ClientInfo*>& clientList) {
|
||||
m_clientUser = clientList;
|
||||
}
|
||||
|
||||
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 PrintAxisMove(AxisConfig::ActiveDirect adr, bool isContinue = false, bool isStart = false); //成型缸运动
|
||||
@ -256,8 +252,6 @@ protected:
|
||||
|
||||
vector<string> m_AxisTabs;
|
||||
|
||||
list<ClientInfo*> m_clientUser; //连接客户端
|
||||
|
||||
std::map<std::string, DValue > m_plcMp;
|
||||
|
||||
};
|
||||
|
@ -7,9 +7,10 @@
|
||||
#include <map>
|
||||
|
||||
CoreCommunication::CoreCommunication()
|
||||
:m_Config(NULL)
|
||||
: m_Config(NULL)
|
||||
, m_ReadThread(INVALID_HANDLE_VALUE)
|
||||
,m_WriteThread(INVALID_HANDLE_VALUE)
|
||||
, m_WriteThread(INVALID_HANDLE_VALUE)
|
||||
, m_sendTdExitFlag(false)
|
||||
{
|
||||
m_IsSmart = true;
|
||||
m_Invoker = new PLCInvoker();
|
||||
@ -23,6 +24,9 @@ CoreCommunication::~CoreCommunication()
|
||||
if (m_S7Client->Connected)m_S7Client->Disconnect();
|
||||
delete m_S7Client;
|
||||
}
|
||||
|
||||
m_sendTdExitFlag = true;
|
||||
if (m_sendTd.joinable()) m_sendTd.join();
|
||||
}
|
||||
|
||||
void CoreCommunication::Startup()
|
||||
@ -32,6 +36,8 @@ void CoreCommunication::Startup()
|
||||
m_AssistRunFlag = true;
|
||||
m_ReadThread = AtlCreateThread(ReadProc, this);
|
||||
m_AssistThread = AtlCreateThread(AssistProc, this);
|
||||
|
||||
m_sendTd = std::thread([this] {SendProc(); });
|
||||
}
|
||||
|
||||
void CoreCommunication::Shutdown()
|
||||
@ -340,58 +346,58 @@ void CoreCommunication::AssistRun()
|
||||
}
|
||||
}
|
||||
|
||||
//void CoreCommunication::GetAlarmState(SignalState& signalState)
|
||||
//{
|
||||
// std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
||||
// ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState);
|
||||
//}
|
||||
void CoreCommunication::GetAlarmState(SignalState& signalState)
|
||||
{
|
||||
std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
||||
//ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState);
|
||||
}
|
||||
|
||||
//void CoreCommunication::GetEnvState(EnvState& envState)
|
||||
//{
|
||||
// std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
||||
// //ConfigManager::GetInstance()->GetMachine()->GetAlarmState(envState);
|
||||
//
|
||||
// envState.m_PrintOxygen1Analog=m_SysParamWrapper->m_PrintOxygen1->GetValue();
|
||||
// envState.m_PrintOxygen2Analog =m_SysParamWrapper->m_PrintOxygen2->GetValue();
|
||||
// envState.m_OutsideOxygenAnalog =m_SysParamWrapper->m_OutsideOxygen->GetValue();
|
||||
//
|
||||
// envState.m_HighPressureAnalog =m_SysParamWrapper->m_HighPressure->GetValue();
|
||||
// envState.m_ProtectGasPressureAnalog =m_SysParamWrapper->m_ProtectGasPressure->GetValue();
|
||||
// envState.m_PrintPressureAnalog =m_SysParamWrapper->m_PrintPressure->GetValue();
|
||||
// envState.m_MoldMainCurrentPos=m_SysParamWrapper->m_MoldMainCurrentPos->GetValue(); //打印主轴当前位置_R
|
||||
// envState.m_MoldMainCurrentLoad=m_SysParamWrapper->m_MoldMainCurrentLoad->GetValue(); //打印主轴当前扭矩_R
|
||||
// envState.m_MoldSlaveCurrentPos=m_SysParamWrapper->m_MoldSlaveCurrentPos->GetValue(); //打印从轴当前位置_R
|
||||
// envState.m_MoldSlaveCurrentLoad=m_SysParamWrapper->m_MoldSlaveCurrentLoad->GetValue(); //打印从轴当前扭矩_R
|
||||
// envState.m_CleanMainCurrentPos=m_SysParamWrapper->m_CleanMainCurrentPos->GetValue(); //清粉主轴当前位置_R
|
||||
// envState.m_CleanMainCurrentLoad=m_SysParamWrapper->m_CleanMainCurrentLoad->GetValue(); //清粉主轴当前扭矩_R
|
||||
// envState.m_CleanSlaveCurrentPos=m_SysParamWrapper->m_CleanSlaveCurrentPos->GetValue(); //清粉从轴当前位置_R
|
||||
// envState.m_CleanSlaveCurrentLoad=m_SysParamWrapper->m_CleanSlaveCurrentLoad->GetValue(); //清粉从轴当前扭矩_R
|
||||
// envState.m_LoadAxisCurrentPos=m_SysParamWrapper->m_LoadAxisCurrentPos->GetValue(); //移载轴当前位置_R
|
||||
// envState.m_LoadAxisCurrentLoad=m_SysParamWrapper->m_LoadAxisCurrentLoad->GetValue(); //移载轴当前扭矩_R
|
||||
// envState.m_ArmCurrentPos=m_SysParamWrapper->m_ArmCurrentPos->GetValue(); //铺粉轴当前位置_R
|
||||
// envState.m_ArmCurrentLoad=m_SysParamWrapper->m_ArmCurrentLoad->GetValue(); //铺粉轴当前扭矩_R
|
||||
// envState.m_SupplyCurrentPos=m_SysParamWrapper->m_SupplyCurrentPos->GetValue(); //供粉转轴当前位置_R
|
||||
// envState.m_SupplyCurrentLoad=m_SysParamWrapper->m_SupplyCurrentLoad->GetValue(); //供粉转轴当前扭矩_R
|
||||
//
|
||||
// envState.m_IsPrintCabinDoorClose = m_IOCfgWrapper->IsSafeDoorClose();
|
||||
//
|
||||
// envState.m_PowderJarCabinPressureVoltage=m_SysParamWrapper->m_PowderJarCabinPressureVoltage->GetValue();
|
||||
// envState.m_PowderJarCabinPressure=m_SysParamWrapper->m_PowderJarCabinPressureValue->GetValue();
|
||||
// envState.m_PowderLevelLength = m_SysParamWrapper->m_PowderLevelLength->GetValue();
|
||||
// envState.m_PowderLevelValue = m_SysParamWrapper->m_PowderLevelValue->GetValue();
|
||||
//
|
||||
// envState.m_LinearLayerPos = m_SysParamWrapper->m_LinearEncoderPerLayerRealValue->GetValue();
|
||||
// envState.m_MoldTheoryDistance = m_SysParamWrapper->m_MoldTheoryDistance->GetValue();
|
||||
// envState.m_LinearActDistance = m_SysParamWrapper->m_LinearActDistance->GetValue();
|
||||
// envState.m_LinearActPulse = m_SysParamWrapper->m_LinearActPulse->GetValue();
|
||||
// envState.m_LineEncPulseEqu = m_SysParamWrapper->m_LineEncPulseEqu->GetValue();
|
||||
//
|
||||
// envState.m_PrintCar1RealWeight = m_SysParamWrapper->m_PrintCar1RealWeight->GetValue();
|
||||
// envState.m_PrintCar2RealWeight = m_SysParamWrapper->m_PrintCar2RealWeight->GetValue();
|
||||
// envState.m_CleanCar1RealWeight = m_SysParamWrapper->m_CleanCar1RealWeight->GetValue();
|
||||
// envState.m_CleanCar2RealWeight = m_SysParamWrapper->m_CleanCar2RealWeight->GetValue();
|
||||
//
|
||||
//}
|
||||
void CoreCommunication::GetEnvState(EnvState& envState)
|
||||
{
|
||||
std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
|
||||
//ConfigManager::GetInstance()->GetMachine()->GetAlarmState(envState);
|
||||
|
||||
envState.m_PrintOxygen1Analog=m_SysParamWrapper->m_PrintOxygen1->GetValue();
|
||||
envState.m_PrintOxygen2Analog =m_SysParamWrapper->m_PrintOxygen2->GetValue();
|
||||
envState.m_OutsideOxygenAnalog =m_SysParamWrapper->m_OutsideOxygen->GetValue();
|
||||
|
||||
envState.m_HighPressureAnalog =m_SysParamWrapper->m_HighPressure->GetValue();
|
||||
envState.m_ProtectGasPressureAnalog =m_SysParamWrapper->m_ProtectGasPressure->GetValue();
|
||||
envState.m_PrintPressureAnalog =m_SysParamWrapper->m_PrintPressure->GetValue();
|
||||
envState.m_MoldMainCurrentPos=m_SysParamWrapper->m_MoldMainCurrentPos->GetValue(); //打印主轴当前位置_R
|
||||
envState.m_MoldMainCurrentLoad=m_SysParamWrapper->m_MoldMainCurrentLoad->GetValue(); //打印主轴当前扭矩_R
|
||||
envState.m_MoldSlaveCurrentPos=m_SysParamWrapper->m_MoldSlaveCurrentPos->GetValue(); //打印从轴当前位置_R
|
||||
envState.m_MoldSlaveCurrentLoad=m_SysParamWrapper->m_MoldSlaveCurrentLoad->GetValue(); //打印从轴当前扭矩_R
|
||||
envState.m_CleanMainCurrentPos=m_SysParamWrapper->m_CleanMainCurrentPos->GetValue(); //清粉主轴当前位置_R
|
||||
envState.m_CleanMainCurrentLoad=m_SysParamWrapper->m_CleanMainCurrentLoad->GetValue(); //清粉主轴当前扭矩_R
|
||||
envState.m_CleanSlaveCurrentPos=m_SysParamWrapper->m_CleanSlaveCurrentPos->GetValue(); //清粉从轴当前位置_R
|
||||
envState.m_CleanSlaveCurrentLoad=m_SysParamWrapper->m_CleanSlaveCurrentLoad->GetValue(); //清粉从轴当前扭矩_R
|
||||
envState.m_LoadAxisCurrentPos=m_SysParamWrapper->m_LoadAxisCurrentPos->GetValue(); //移载轴当前位置_R
|
||||
envState.m_LoadAxisCurrentLoad=m_SysParamWrapper->m_LoadAxisCurrentLoad->GetValue(); //移载轴当前扭矩_R
|
||||
envState.m_ArmCurrentPos=m_SysParamWrapper->m_ArmCurrentPos->GetValue(); //铺粉轴当前位置_R
|
||||
envState.m_ArmCurrentLoad=m_SysParamWrapper->m_ArmCurrentLoad->GetValue(); //铺粉轴当前扭矩_R
|
||||
envState.m_SupplyCurrentPos=m_SysParamWrapper->m_SupplyCurrentPos->GetValue(); //供粉转轴当前位置_R
|
||||
envState.m_SupplyCurrentLoad=m_SysParamWrapper->m_SupplyCurrentLoad->GetValue(); //供粉转轴当前扭矩_R
|
||||
|
||||
envState.m_IsPrintCabinDoorClose = m_IOCfgWrapper->IsSafeDoorClose();
|
||||
|
||||
envState.m_PowderJarCabinPressureVoltage=m_SysParamWrapper->m_PowderJarCabinPressureVoltage->GetValue();
|
||||
envState.m_PowderJarCabinPressure=m_SysParamWrapper->m_PowderJarCabinPressureValue->GetValue();
|
||||
envState.m_PowderLevelLength = m_SysParamWrapper->m_PowderLevelLength->GetValue();
|
||||
envState.m_PowderLevelValue = m_SysParamWrapper->m_PowderLevelValue->GetValue();
|
||||
|
||||
envState.m_LinearLayerPos = m_SysParamWrapper->m_LinearEncoderPerLayerRealValue->GetValue();
|
||||
envState.m_MoldTheoryDistance = m_SysParamWrapper->m_MoldTheoryDistance->GetValue();
|
||||
envState.m_LinearActDistance = m_SysParamWrapper->m_LinearActDistance->GetValue();
|
||||
envState.m_LinearActPulse = m_SysParamWrapper->m_LinearActPulse->GetValue();
|
||||
envState.m_LineEncPulseEqu = m_SysParamWrapper->m_LineEncPulseEqu->GetValue();
|
||||
|
||||
envState.m_PrintCar1RealWeight = m_SysParamWrapper->m_PrintCar1RealWeight->GetValue();
|
||||
envState.m_PrintCar2RealWeight = m_SysParamWrapper->m_PrintCar2RealWeight->GetValue();
|
||||
envState.m_CleanCar1RealWeight = m_SysParamWrapper->m_CleanCar1RealWeight->GetValue();
|
||||
envState.m_CleanCar2RealWeight = m_SysParamWrapper->m_CleanCar2RealWeight->GetValue();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*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 SetPLCAxis(PLCAxis* axis) { m_Axis = axis; }
|
||||
void SetAlarmStateWrapper(SignalStateWrapper* param) { m_AlarmStateWrapper = param; };
|
||||
//void GetAlarmState(SignalState& alarmState);
|
||||
//void GetEnvState(EnvState& envState);
|
||||
void GetAlarmState(SignalState& alarmState);
|
||||
void GetEnvState(EnvState& envState);
|
||||
void SetAxisRecordWrapper(AxisRecordWrapper* record) { m_AxisrecordWrapper = record; }
|
||||
|
||||
virtual bool IsServerConnected() {
|
||||
@ -68,6 +68,7 @@ private:
|
||||
Command* GetSendCycleCommand();
|
||||
void UpdateCycleCommands();
|
||||
|
||||
void SendProc();
|
||||
public:
|
||||
BaseStat m_BaseStat;
|
||||
bool m_IsSmart;
|
||||
@ -98,6 +99,12 @@ private:
|
||||
AxisRecordWrapper* m_AxisrecordWrapper;
|
||||
|
||||
PLCInvoker* m_Invoker;
|
||||
|
||||
|
||||
bool m_sendTdExitFlag; //线程退出标记
|
||||
std::thread m_sendTd; //定时发送客户端线程
|
||||
|
||||
|
||||
static const unsigned int READ_INFO_ITEM_COUNT = 6;
|
||||
static const unsigned int READ_DATA_ITEM_COUNT = 1;
|
||||
};
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <condition_variable>
|
||||
#include "Command/PLCReceiver.h"
|
||||
#include <map>
|
||||
#include "../DataManage/RWData.h"
|
||||
using namespace std;
|
||||
|
||||
struct DValue;
|
||||
@ -28,6 +29,7 @@ public:
|
||||
LeaveCriticalSection(&m_ValueCS);
|
||||
}
|
||||
static std::map<std::string, DValue > m_sysParamMp; //记录
|
||||
|
||||
protected:
|
||||
int m_Addr;
|
||||
int m_DBNumber;
|
||||
@ -167,6 +169,15 @@ struct DValue {
|
||||
//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;
|
||||
SysParamWord* sysParamW;
|
||||
|
@ -137,7 +137,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<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>
|
||||
<IgnoreSpecificDefaultLibraries>crypto.lib</IgnoreSpecificDefaultLibraries>
|
||||
@ -227,8 +227,8 @@
|
||||
<ClCompile Include="Config\dao\ScannerControlCfgDao.cpp" />
|
||||
<ClCompile Include="Config\dao\SystemBaseDao.cpp" />
|
||||
<ClCompile Include="Config\dao\TimePowerCompensateDao.cpp" />
|
||||
<ClCompile Include="Controler\Controler.cpp" />
|
||||
<ClCompile Include="DataManage\ClientInfo.h" />
|
||||
<ClCompile Include="Controller\Controller.cpp" />
|
||||
<ClCompile Include="DataManage\ClientInfo.cpp" />
|
||||
<ClCompile Include="DataManage\DataHandle.cpp" />
|
||||
<ClCompile Include="DataManage\StreamServer.cpp" />
|
||||
<ClCompile Include="external\clipper\clipper.cpp" />
|
||||
@ -436,8 +436,10 @@
|
||||
<ClInclude Include="Config\dao\ScannerControlCfgDao.h" />
|
||||
<ClInclude Include="Config\dao\SystemBaseDao.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\RWData.h" />
|
||||
<ClInclude Include="DataManage\StreamServer.h" />
|
||||
<ClInclude Include="external\clipper\clipper.hpp" />
|
||||
<ClInclude Include="external\expat\include\ascii.h" />
|
||||
|
@ -77,9 +77,6 @@
|
||||
<Filter Include="external\QRCode">
|
||||
<UniqueIdentifier>{92e21183-dc80-46b5-ad1d-750bbe59eeca}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Controler">
|
||||
<UniqueIdentifier>{3144f523-bb18-4add-b886-c19f2f90c72a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ScannerCtrl">
|
||||
<UniqueIdentifier>{5b502dd4-fc0d-4177-89fa-babb40b7ab3c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@ -128,6 +125,9 @@
|
||||
<Filter Include="external\NewFilter1">
|
||||
<UniqueIdentifier>{b3261719-dd99-4a4b-8621-cb665ae76036}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Controller">
|
||||
<UniqueIdentifier>{3144f523-bb18-4add-b886-c19f2f90c72a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main.cpp" />
|
||||
@ -518,15 +518,9 @@
|
||||
<ClCompile Include="external\QRCode\QrSegment.cpp">
|
||||
<Filter>external\QRCode</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DataManage\ClientInfo.h">
|
||||
<Filter>DataManage</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Config\ConfigManager.cpp">
|
||||
<Filter>Config</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Controler\Controler.cpp">
|
||||
<Filter>Controler</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PLC\SysParam.cpp">
|
||||
<Filter>PLC</Filter>
|
||||
</ClCompile>
|
||||
@ -681,6 +675,12 @@
|
||||
<Filter>external\minizip</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="HBDSystem.cpp" />
|
||||
<ClCompile Include="Controller\Controller.cpp">
|
||||
<Filter>Controller</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DataManage\ClientInfo.cpp">
|
||||
<Filter>DataManage</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="protobuf\stream.proto">
|
||||
@ -1406,9 +1406,6 @@
|
||||
<ClInclude Include="Config\ConfigManager.h">
|
||||
<Filter>Config</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Controler\Controler.h">
|
||||
<Filter>Controler</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="PLC\SysParam.h">
|
||||
<Filter>PLC</Filter>
|
||||
</ClInclude>
|
||||
@ -1738,6 +1735,15 @@
|
||||
</ClInclude>
|
||||
<ClInclude Include="resource1.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>
|
||||
<Text Include="说明.txt" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user