配置信息传输修改
This commit is contained in:
parent
f2f5f4adb4
commit
38536b8739
@ -659,6 +659,9 @@ void ConfigManager::UpdateCfg(const ReadData& rd) {
|
||||
SendPowderCfg();
|
||||
}
|
||||
break;
|
||||
case SCANERCTRLCFG:
|
||||
m_ScannerControlCfgDao->m_ScannerControlCfgMap[ConverType::TryToI(rd.nameKey)]->Update(rd);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "PowerCompensate.h"
|
||||
|
||||
|
||||
#include "../DataManage/RWData.h"
|
||||
#include "../utils/ConverType.hpp"
|
||||
|
||||
PowerCompensate::PowerCompensate()
|
||||
{
|
||||
@ -83,6 +83,22 @@ float PowerCompensateCfg::CalcPowerCompensate(float power)
|
||||
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) {
|
||||
return m1->m_percent < m2->m_percent;
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "../protobuf/stream.pb.h"
|
||||
#include "../DataManage/RWData.h"
|
||||
|
||||
using namespace std;
|
||||
class PowerCompensate
|
||||
@ -33,6 +34,7 @@ public:
|
||||
PowerCompensateCfg();
|
||||
~PowerCompensateCfg();
|
||||
float CalcPowerCompensate(float power);
|
||||
void Update(const ReadData& rd);
|
||||
public:
|
||||
vector<PowerCompensate*> m_pcs;
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "ScannerControlCfg.h"
|
||||
|
||||
#include "../utils/ConverType.hpp"
|
||||
|
||||
|
||||
ScannerControlCfg::ScannerControlCfg()
|
||||
@ -70,6 +70,45 @@ void ScannerControlCfg::SetScannerCtrlCfg(stream::ScannerCrtlCfgData* sccd) {
|
||||
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::FIELD_SEQ_NO="SeqNo";
|
||||
const string ScannerControlCfg::FIELD_CONTROL_NO="ControlNo";
|
||||
|
@ -16,7 +16,20 @@ struct CardSerialPair {
|
||||
string cardIP;
|
||||
};
|
||||
|
||||
class ScannerControlCfg: public Base
|
||||
enum SCCFGP {
|
||||
CTRLCFG= 0,
|
||||
SCANPARAMCFG,
|
||||
HATCHINGPARAMS,
|
||||
BORDERPARAMS,
|
||||
SUPPORTPARAMS,
|
||||
CORRECTPARAMCFG,
|
||||
SCANTESTCFG,
|
||||
SKYWRITINGCFG,
|
||||
POWERCOMPENSATECFG,
|
||||
TIMEPOWERCOMPENSATECFG,
|
||||
};
|
||||
|
||||
class ScannerControlCfg
|
||||
{
|
||||
public:
|
||||
ScannerControlCfg();
|
||||
@ -27,6 +40,8 @@ public:
|
||||
ScanParamCfg* GetScanParamCfg(string str);
|
||||
|
||||
void SetScannerCtrlCfg(stream::ScannerCrtlCfgData* );
|
||||
|
||||
void Update(const ReadData& rd);
|
||||
public:
|
||||
//IntData* m_Index;
|
||||
int m_SeqNo; //编号 ConfigManager中的m_ScannerControlCfgMap的key
|
||||
|
@ -124,6 +124,7 @@ void DataHandle::DataCallBackHandle(const ReadData& msg, const std::list<Item>&
|
||||
case COMMUNICATIONCFG:
|
||||
case ALARMCFG:
|
||||
case POWDERSET:
|
||||
case SCANERCTRLCFG:
|
||||
ConfigManager::GetInstance()->UpdateCfg(msg);
|
||||
break;
|
||||
case REQUEST:
|
||||
|
@ -160,22 +160,6 @@ struct Item {
|
||||
int end_layer;
|
||||
float 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;
|
||||
|
@ -75,14 +75,6 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
|
||||
temp.end_layer = it.endlayer();
|
||||
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上面,后续的请求无法收到,不知道为啥
|
||||
}
|
||||
|
||||
@ -119,16 +111,6 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
|
||||
paramInfo->set_startlayer(wd->start_layer);
|
||||
paramInfo->set_endlayer(wd->end_layer);
|
||||
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);
|
||||
}
|
||||
|
Binary file not shown.
@ -49,14 +49,6 @@ message ParamInfo{
|
||||
int32 endLayer = 9;
|
||||
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 { //读
|
||||
|
@ -77,7 +77,8 @@ void DataHandle::PushMsg(const WriteData& wd) {
|
||||
}
|
||||
|
||||
void DataHandle::PrintValue(const ReadData& msg){
|
||||
if (m_printIndex == msg.dataType) {
|
||||
if (m_printIndex != msg.dataType) return;
|
||||
|
||||
auto it = msg.its.begin();
|
||||
while (it != msg.its.end()) {
|
||||
it->nameKey;
|
||||
@ -90,11 +91,6 @@ void DataHandle::PrintValue(const ReadData& msg){
|
||||
printf("接收:dataType:%d,startLayer:%d,endLayer:%d,powder:%.2f\n",
|
||||
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 {
|
||||
printf("接收:dataType:%d,nameKey:%*s, strvalue:%*s, valueType:%s\n",
|
||||
msg.dataType, 33, it->nameKey.data(), 13, it->strValue.data(), valueType.data());
|
||||
@ -116,7 +112,7 @@ void DataHandle::PrintValue(const ReadData& msg){
|
||||
else {
|
||||
m_printIndex = -1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
||||
@ -239,14 +235,14 @@ int DataHandle::Request(int index) {
|
||||
else if (userInput.empty()) {
|
||||
continue;
|
||||
}
|
||||
else if (userInput == "h") {
|
||||
else if (userInput == "h") { //打印用法
|
||||
ParamReadUsage();
|
||||
}
|
||||
else if (userInput.find("push") != string::npos) {
|
||||
else if (userInput.find("push") != string::npos) { //更新数据到服务器
|
||||
UpdateParamToService(userInput);
|
||||
}
|
||||
else {
|
||||
ParamRequest(ConverType::TryToI(userInput));
|
||||
else { //接收指定的参数
|
||||
ReceiveParam(ConverType::TryToI(userInput));
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -268,7 +264,7 @@ void DataHandle::AllTest() {
|
||||
}
|
||||
|
||||
|
||||
void DataHandle::ParamRequest(int index) {
|
||||
void DataHandle::ReceiveParam(int index) {
|
||||
if (index == VERSIONRSP) {
|
||||
PushMsg(VERSIONREQ); //获取版本信息
|
||||
}
|
||||
@ -413,6 +409,13 @@ void DataHandle::UpdateParamToService(const string& input) {
|
||||
PushMsg(writeData);
|
||||
break;
|
||||
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;
|
||||
case ELECFGPARAM:
|
||||
break;
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
|
||||
string GetVersion()const {return m_version;}
|
||||
|
||||
void ParamRequest(int index);
|
||||
void ReceiveParam(int index);
|
||||
int Request(int index);
|
||||
void AllTest();
|
||||
void AxisMoveTest(); //轴运动测试
|
||||
|
@ -112,4 +112,17 @@ enum ConfigFunc {
|
||||
};
|
||||
|
||||
|
||||
enum SCCFGP {
|
||||
CTRLCFG = 0,
|
||||
SCANPARAMCFG,
|
||||
HATCHINGPARAMS,
|
||||
BORDERPARAMS,
|
||||
SUPPORTPARAMS,
|
||||
CORRECTPARAMCFG,
|
||||
SCANTESTCFG,
|
||||
SKYWRITINGCFG,
|
||||
POWERCOMPENSATECFG,
|
||||
TIMEPOWERCOMPENSATECFG,
|
||||
};
|
||||
|
||||
#define OUTPUTNAME(x) #x
|
@ -93,7 +93,6 @@ enum DATATYPE {
|
||||
struct Item {
|
||||
std::string nameKey; //参数key
|
||||
std::string strValue; //value
|
||||
//bool isOutPut; //是否只读 false:只读
|
||||
DATATYPE valueType; //数据类型
|
||||
|
||||
std::string content; //alarmcfgwrapper使用
|
||||
@ -105,16 +104,6 @@ struct Item {
|
||||
int start_layer;
|
||||
int end_layer;
|
||||
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 {
|
||||
|
@ -74,8 +74,7 @@ void StreamClient::AllStream() {
|
||||
for (const ::stream::ParamInfo& it : readInfo.item()) {
|
||||
readData.its.emplace_back(Item{ it.namekey(),it.strvalue(),(DATATYPE)it.valuetype()
|
||||
,it.context(),it.isenable(),it.isalarm(),it.isshow()
|
||||
,it.startlayer(),it.endlayer(),it.powder(),it.seqno(),it.controlno(),it.serialno()
|
||||
,it.controltype(),it.cardname(),it.cardip(),it.hadassign(),it.hadmatch()});
|
||||
,it.startlayer(),it.endlayer(),it.powder()});
|
||||
//printf("接收到服务端消息:dataType:%d,nameKey:%s, strvalue:%s,valueType:%d\n",
|
||||
// readData.dataType, it.namekey().data(), it.strvalue().c_str(), it.valuetype());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user