配置信息传输修改

This commit is contained in:
wangxx1809 2024-06-27 14:39:53 +08:00
parent f2f5f4adb4
commit 38536b8739
15 changed files with 141 additions and 103 deletions

View File

@ -659,6 +659,9 @@ void ConfigManager::UpdateCfg(const ReadData& rd) {
SendPowderCfg(); SendPowderCfg();
} }
break; break;
case SCANERCTRLCFG:
m_ScannerControlCfgDao->m_ScannerControlCfgMap[ConverType::TryToI(rd.nameKey)]->Update(rd);
break;
default: default:
break; break;
} }

View File

@ -1,6 +1,6 @@
#include "PowerCompensate.h" #include "PowerCompensate.h"
#include "../DataManage/RWData.h"
#include "../utils/ConverType.hpp"
PowerCompensate::PowerCompensate() PowerCompensate::PowerCompensate()
{ {
@ -83,6 +83,22 @@ float PowerCompensateCfg::CalcPowerCompensate(float power)
return rel; return rel;
} }
void PowerCompensateCfg::Update(const ReadData& rd) {
auto start = rd.its.begin();
while (start != rd.its.end()) {
int percent = ConverType::TryToI(start->nameKey);
for (auto it = m_pcs.begin(); it != m_pcs.end(); ++it) {
if ((*it)->m_percent == percent) {
(*it)->m_value = ConverType::TryToF(start->strValue);
break;
}
}
++start;
}
}
bool PowerCompensateLess(const PowerCompensate * m1, const PowerCompensate * m2) { bool PowerCompensateLess(const PowerCompensate * m1, const PowerCompensate * m2) {
return m1->m_percent < m2->m_percent; return m1->m_percent < m2->m_percent;
} }

View File

@ -2,6 +2,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "../protobuf/stream.pb.h" #include "../protobuf/stream.pb.h"
#include "../DataManage/RWData.h"
using namespace std; using namespace std;
class PowerCompensate class PowerCompensate
@ -33,6 +34,7 @@ public:
PowerCompensateCfg(); PowerCompensateCfg();
~PowerCompensateCfg(); ~PowerCompensateCfg();
float CalcPowerCompensate(float power); float CalcPowerCompensate(float power);
void Update(const ReadData& rd);
public: public:
vector<PowerCompensate*> m_pcs; vector<PowerCompensate*> m_pcs;
}; };

View File

@ -1,5 +1,5 @@
#include "ScannerControlCfg.h" #include "ScannerControlCfg.h"
#include "../utils/ConverType.hpp"
ScannerControlCfg::ScannerControlCfg() ScannerControlCfg::ScannerControlCfg()
@ -70,6 +70,45 @@ void ScannerControlCfg::SetScannerCtrlCfg(stream::ScannerCrtlCfgData* sccd) {
sccd->set_hadmatch(m_HadMatch); sccd->set_hadmatch(m_HadMatch);
} }
void ScannerControlCfg::Update(const ReadData& rd) {
SCCFGP type = (SCCFGP)ConverType::TryToI(rd.strValue);
if (type == CTRLCFG) {
auto start = rd.its.begin();
while (start != rd.its.end()) {
if (start->nameKey == "ControlNo") {
m_ControlNo = ConverType::TryToI(start->strValue);
}
else if (start->nameKey == "SerialNo") {
m_SerialNo = ConverType::TryToI(start->strValue);
}
else if (start->nameKey == "ControlType") {
m_ControlType = ConverType::TryToI(start->strValue);
}
else if (start->nameKey == "CardName") {
m_CardName = start->strValue;
}
else if (start->nameKey == "CardIP") {
m_CardIP = start->strValue;
}
else if (start->nameKey == "IsEnable") {
m_IsEnable = (bool)ConverType::TryToI(start->strValue);
}
else if (start->nameKey == "HadAssign") {
m_HadAssign = (bool)ConverType::TryToI(start->strValue);
}
else if (start->nameKey == "HadMatch") {
m_HadMatch =(bool)ConverType::TryToI(start->strValue);
}
++start;
}
}
else if (type == POWERCOMPENSATECFG) {
m_ScanCfgWrapper.m_PowerCompensateCfg.Update(rd);
}
}
const string ScannerControlCfg::TABLE_NAME="ScannerControlCfg"; const string ScannerControlCfg::TABLE_NAME="ScannerControlCfg";
const string ScannerControlCfg::FIELD_SEQ_NO="SeqNo"; const string ScannerControlCfg::FIELD_SEQ_NO="SeqNo";
const string ScannerControlCfg::FIELD_CONTROL_NO="ControlNo"; const string ScannerControlCfg::FIELD_CONTROL_NO="ControlNo";

View File

@ -16,7 +16,20 @@ struct CardSerialPair {
string cardIP; string cardIP;
}; };
class ScannerControlCfg: public Base enum SCCFGP {
CTRLCFG= 0,
SCANPARAMCFG,
HATCHINGPARAMS,
BORDERPARAMS,
SUPPORTPARAMS,
CORRECTPARAMCFG,
SCANTESTCFG,
SKYWRITINGCFG,
POWERCOMPENSATECFG,
TIMEPOWERCOMPENSATECFG,
};
class ScannerControlCfg
{ {
public: public:
ScannerControlCfg(); ScannerControlCfg();
@ -27,6 +40,8 @@ public:
ScanParamCfg* GetScanParamCfg(string str); ScanParamCfg* GetScanParamCfg(string str);
void SetScannerCtrlCfg(stream::ScannerCrtlCfgData* ); void SetScannerCtrlCfg(stream::ScannerCrtlCfgData* );
void Update(const ReadData& rd);
public: public:
//IntData* m_Index; //IntData* m_Index;
int m_SeqNo; //编号 ConfigManager中的m_ScannerControlCfgMap的key int m_SeqNo; //编号 ConfigManager中的m_ScannerControlCfgMap的key

View File

@ -124,6 +124,7 @@ void DataHandle::DataCallBackHandle(const ReadData& msg, const std::list<Item>&
case COMMUNICATIONCFG: case COMMUNICATIONCFG:
case ALARMCFG: case ALARMCFG:
case POWDERSET: case POWDERSET:
case SCANERCTRLCFG:
ConfigManager::GetInstance()->UpdateCfg(msg); ConfigManager::GetInstance()->UpdateCfg(msg);
break; break;
case REQUEST: case REQUEST:

View File

@ -160,22 +160,6 @@ struct Item {
int end_layer; int end_layer;
float powder; float powder;
Item(int start_layer,int end_layer,float powder) :start_layer(start_layer), end_layer(end_layer), powder(powder){} Item(int start_layer,int end_layer,float powder) :start_layer(start_layer), end_layer(end_layer), powder(powder){}
//
int seqNo; //ScannerControlCfg使用
int controlNo;
int serialNo;
int controlType;
std::string cardName;
std::string cardIP;
//bool isEnable; //是否启动
bool hadAssign;
bool hadMatch;
Item(int seqNo, int controlNo, int serialNo, int controlType,const std::string& cardName,const std::string& cardIP, bool isEnable, bool hadAssign, bool hadMatch)
:seqNo(seqNo), controlNo(controlNo), serialNo(serialNo), controlType(controlType),
cardName(cardName), cardIP(cardIP), isEnable(isEnable), hadAssign(hadAssign), hadMatch(hadMatch) {
}
}; };
class ClientInfo; class ClientInfo;

View File

@ -75,14 +75,6 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
temp.end_layer = it.endlayer(); temp.end_layer = it.endlayer();
temp.powder = it.powder(); temp.powder = it.powder();
temp.seqNo = it.seqno();
temp.controlNo = it.controlno();
temp.serialNo = it.serialno();
temp.controlType = it.controltype();
temp.cardName = it.cardname();
temp.cardIP = it.cardip();
temp.hadAssign = it.hadassign();
temp.hadMatch = it.hadmatch();
paramLst.emplace_back(std::move(temp)); //直接加到readData.its上面后续的请求无法收到不知道为啥 paramLst.emplace_back(std::move(temp)); //直接加到readData.its上面后续的请求无法收到不知道为啥
} }
@ -119,16 +111,6 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
paramInfo->set_startlayer(wd->start_layer); paramInfo->set_startlayer(wd->start_layer);
paramInfo->set_endlayer(wd->end_layer); paramInfo->set_endlayer(wd->end_layer);
paramInfo->set_powder(wd->powder); paramInfo->set_powder(wd->powder);
paramInfo->set_seqno(wd->seqNo);
paramInfo->set_controlno(wd->controlNo);
paramInfo->set_serialno(wd->serialNo);
paramInfo->set_controltype(wd->controlType);
paramInfo->set_cardname(wd->cardName);
paramInfo->set_cardip(wd->cardIP);
paramInfo->set_isenable(wd->isEnable);
paramInfo->set_hadassign(wd->hadAssign);
paramInfo->set_hadmatch(wd->hadMatch);
} }
stream->Write(response); stream->Write(response);
} }

Binary file not shown.

View File

@ -49,14 +49,6 @@ message ParamInfo{
int32 endLayer = 9; int32 endLayer = 9;
float powder = 10; float powder = 10;
int32 seqNo = 11; //ScannerControlCfg使用
int32 controlNo = 12;
int32 serialNo = 13;
int32 controlType = 14;
bytes cardName = 15;
bytes cardIP = 16;
bool hadAssign = 17;
bool hadMatch = 18; //isEnable公用
} }
message RequestInfo { // message RequestInfo { //

View File

@ -77,7 +77,8 @@ void DataHandle::PushMsg(const WriteData& wd) {
} }
void DataHandle::PrintValue(const ReadData& msg){ void DataHandle::PrintValue(const ReadData& msg){
if (m_printIndex == msg.dataType) { if (m_printIndex != msg.dataType) return;
auto it = msg.its.begin(); auto it = msg.its.begin();
while (it != msg.its.end()) { while (it != msg.its.end()) {
it->nameKey; it->nameKey;
@ -90,11 +91,6 @@ void DataHandle::PrintValue(const ReadData& msg){
printf("接收:dataType:%d,startLayer:%d,endLayer:%d,powder:%.2f\n", printf("接收:dataType:%d,startLayer:%d,endLayer:%d,powder:%.2f\n",
msg.dataType,it->start_layer, it->end_layer, it->powder); msg.dataType,it->start_layer, it->end_layer, it->powder);
} }
//else if (msg.dataType == SCANNERCONTROLCFGPARAM) {
// printf("接收:dataType:%d,seqNo:%d,controlNo:%d,serialNo:%d,controlType:%d,cardName:%s,cardIP:%s,isEnable:%d,hadAssign:%d,hadMatch:%d\n",
// msg.dataType, it->seqNo, it->controlNo, it->serialNo, it->controlType,
// it->cardName.data(), it->cardIP.data(),it->isEnable, it->hadAssign,it->hadMatch);
//}
else { else {
printf("接收:dataType:%d,nameKey:%*s, strvalue:%*s, valueType:%s\n", printf("接收:dataType:%d,nameKey:%*s, strvalue:%*s, valueType:%s\n",
msg.dataType, 33, it->nameKey.data(), 13, it->strValue.data(), valueType.data()); msg.dataType, 33, it->nameKey.data(), 13, it->strValue.data(), valueType.data());
@ -116,7 +112,7 @@ void DataHandle::PrintValue(const ReadData& msg){
else { else {
m_printIndex = -1; m_printIndex = -1;
} }
}
} }
void DataHandle::DataCallBackHandle(const ReadData& msg) { void DataHandle::DataCallBackHandle(const ReadData& msg) {
@ -239,14 +235,14 @@ int DataHandle::Request(int index) {
else if (userInput.empty()) { else if (userInput.empty()) {
continue; continue;
} }
else if (userInput == "h") { else if (userInput == "h") { //打印用法
ParamReadUsage(); ParamReadUsage();
} }
else if (userInput.find("push") != string::npos) { else if (userInput.find("push") != string::npos) { //更新数据到服务器
UpdateParamToService(userInput); UpdateParamToService(userInput);
} }
else { else { //接收指定的参数
ParamRequest(ConverType::TryToI(userInput)); ReceiveParam(ConverType::TryToI(userInput));
} }
} }
break; break;
@ -268,7 +264,7 @@ void DataHandle::AllTest() {
} }
void DataHandle::ParamRequest(int index) { void DataHandle::ReceiveParam(int index) {
if (index == VERSIONRSP) { if (index == VERSIONRSP) {
PushMsg(VERSIONREQ); //获取版本信息 PushMsg(VERSIONREQ); //获取版本信息
} }
@ -413,6 +409,13 @@ void DataHandle::UpdateParamToService(const string& input) {
PushMsg(writeData); PushMsg(writeData);
break; break;
case SCANERCTRLCFGPARAM: case SCANERCTRLCFGPARAM:
writeData = WriteData{ SCANERCTRLCFG, "1", to_string(SCCFGP::CTRLCFG), UNKNOW,UPDATE };
writeData.items.emplace_back(Item{ "CardIP","127.0.0.1",iSTRING});
PushMsg(writeData);
writeData = WriteData{ SCANERCTRLCFG, "1",to_string(SCCFGP::POWERCOMPENSATECFG), UNKNOW,UPDATE };
writeData.items.emplace_back(Item{ "10","1.323",iFLOAT });
PushMsg(writeData);
break; break;
case ELECFGPARAM: case ELECFGPARAM:
break; break;

View File

@ -24,7 +24,7 @@ public:
string GetVersion()const {return m_version;} string GetVersion()const {return m_version;}
void ParamRequest(int index); void ReceiveParam(int index);
int Request(int index); int Request(int index);
void AllTest(); void AllTest();
void AxisMoveTest(); //轴运动测试 void AxisMoveTest(); //轴运动测试

View File

@ -112,4 +112,17 @@ enum ConfigFunc {
}; };
enum SCCFGP {
CTRLCFG = 0,
SCANPARAMCFG,
HATCHINGPARAMS,
BORDERPARAMS,
SUPPORTPARAMS,
CORRECTPARAMCFG,
SCANTESTCFG,
SKYWRITINGCFG,
POWERCOMPENSATECFG,
TIMEPOWERCOMPENSATECFG,
};
#define OUTPUTNAME(x) #x #define OUTPUTNAME(x) #x

View File

@ -93,7 +93,6 @@ enum DATATYPE {
struct Item { struct Item {
std::string nameKey; //参数key std::string nameKey; //参数key
std::string strValue; //value std::string strValue; //value
//bool isOutPut; //是否只读 false:只读
DATATYPE valueType; //数据类型 DATATYPE valueType; //数据类型
std::string content; //alarmcfgwrapper使用 std::string content; //alarmcfgwrapper使用
@ -105,16 +104,6 @@ struct Item {
int start_layer; int start_layer;
int end_layer; int end_layer;
float powder; float powder;
int seqNo; //ScannerControlCfg使用
int controlNo;
int serialNo;
int controlType;
std::string cardName;
std::string cardIP;
//bool isEnable; //是否启动
bool hadAssign;
bool hadMatch;
}; };
struct ReadData { struct ReadData {

View File

@ -74,8 +74,7 @@ void StreamClient::AllStream() {
for (const ::stream::ParamInfo& it : readInfo.item()) { for (const ::stream::ParamInfo& it : readInfo.item()) {
readData.its.emplace_back(Item{ it.namekey(),it.strvalue(),(DATATYPE)it.valuetype() readData.its.emplace_back(Item{ it.namekey(),it.strvalue(),(DATATYPE)it.valuetype()
,it.context(),it.isenable(),it.isalarm(),it.isshow() ,it.context(),it.isenable(),it.isalarm(),it.isshow()
,it.startlayer(),it.endlayer(),it.powder(),it.seqno(),it.controlno(),it.serialno() ,it.startlayer(),it.endlayer(),it.powder()});
,it.controltype(),it.cardname(),it.cardip(),it.hadassign(),it.hadmatch()});
//printf("接收到服务端消息dataType:%d,nameKey:%s, strvalue:%s,valueType:%d\n", //printf("接收到服务端消息dataType:%d,nameKey:%s, strvalue:%s,valueType:%d\n",
// readData.dataType, it.namekey().data(), it.strvalue().c_str(), it.valuetype()); // readData.dataType, it.namekey().data(), it.strvalue().c_str(), it.valuetype());
} }