配置信息传输

This commit is contained in:
wangxx1809 2024-06-27 10:56:50 +08:00
parent 02922e116f
commit f2f5f4adb4
40 changed files with 27187 additions and 389 deletions

View File

@ -493,13 +493,6 @@ void ConfigManager::SendCfgToClients() {
SendAlarmCfg(); SendAlarmCfg();
SendPowderCfg(); SendPowderCfg();
//int index = 0;
//auto item = m_ScannerControlCfgDao->m_ScannerControlCfgMap.begin();
//while (item != m_ScannerControlCfgDao->m_ScannerControlCfgMap.end()) {
// //item->second->SendToClients();
// ++item;
//}
m_MoldCfg->SendToClients(MOLDCFGPARAM); m_MoldCfg->SendToClients(MOLDCFGPARAM);
m_LoadCfg->SendToClients(LOADCFGPARAM); m_LoadCfg->SendToClients(LOADCFGPARAM);
m_ArmCfg->SendToClients(ARMCFGPARAM); m_ArmCfg->SendToClients(ARMCFGPARAM);
@ -532,10 +525,6 @@ void ConfigManager::CallFuncs(const ReadData& rd, const list<Item>& lst, ::strea
RedTestCfgStart(); break; RedTestCfgStart(); break;
case REDTESTCFGSTOP: case REDTESTCFGSTOP:
RedTestCfgStop(); break; RedTestCfgStop(); break;
//case FIXPOINTDAOADD:
// FixPointDaoAdd(lst); break;
//case FIXPOINTDAODEL:
// FixPointDaoDel(lst); break;
default: default:
break; break;
} }
@ -543,31 +532,53 @@ void ConfigManager::CallFuncs(const ReadData& rd, const list<Item>& lst, ::strea
} }
//void ConfigManager::FixPointDaoAdd(const list<Item>& lst) { void ConfigManager::ScanerCtrlCfgReq(const ReadData& rd, const list<Item>& lst, ::stream::ResponseAny** response) {
// int scannerIndex = -1;
// FixPointCfg* fpc = new FixPointCfg(); stream::ScannerCrtlCfgResp result;
// for (auto it = lst.begin(); it != lst.end(); ++it) { auto start = m_ScannerControlCfgDao->m_ScannerControlCfgMap.begin();
// if (it->nameKey == "index") scannerIndex = ConverType::TryToI(it->strValue); while(start != m_ScannerControlCfgDao->m_ScannerControlCfgMap.end()) {
// if (it->nameKey == "cno") fpc->m_Cno = ConverType::TryToI(it->strValue); ::stream::ScannerCrtlCfgData* sccfg = result.add_scannercfg();
// if (it->nameKey == "pointX") fpc->m_PointX = ConverType::TryToF(it->strValue); start->second->SetScannerCtrlCfg(sccfg);
// if (it->nameKey == "pointY") fpc->m_PointY = ConverType::TryToF(it->strValue);
// if (it->nameKey == "duration") fpc->m_Duration = (unsigned int)ConverType::TryToI(it->strValue); auto fpitem = start->second->m_FixPointWrapper.m_Cfgs.begin();
// } while (fpitem != start->second->m_FixPointWrapper.m_Cfgs.end()) {
// (*fpitem)->SetFixPointCfg(sccfg->add_fixpointdata());
// //if (GetFixPointDao()->Add(fpc)){ ++fpitem;
// // (*m_UIController.m_ScannerCtrl->GetScanners())[scannerIndex]->GetConfig()->m_FixPointWrapper.m_Cfgs->push_back(fpc); }
// //}
//} start->second->m_ScanCfgWrapper.m_ScanParamCfg.SetScanParam(sccfg->mutable_scanparamcfg());
// start->second->m_ScanCfgWrapper.m_HatchingParams.SetScanParam(sccfg->mutable_hatchingparams());
//void ConfigManager::FixPointDaoDel(const list<Item>& lst) { start->second->m_ScanCfgWrapper.m_BorderParams.SetScanParam(sccfg->mutable_borderparams());
// start->second->m_ScanCfgWrapper.m_SupportParams.SetScanParam(sccfg->mutable_supportparams());
//} start->second->m_ScanCfgWrapper.m_CorrectParamCfg.SetCorrectCfg(sccfg->mutable_correctparamcfg());
start->second->m_ScanCfgWrapper.m_ScanTestCfg.SetScanTestCfg(sccfg->mutable_scantestcfg());
start->second->m_ScanCfgWrapper.m_SkyWritingCfg.SetSkyWritingCfg(sccfg->mutable_skywritingcfg());
auto pcs = start->second->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.begin();
while (pcs != start->second->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.end()) {
(*pcs)->SetPowerComp(sccfg->add_powercompensate());
++pcs;
}
auto tpcs = start->second->m_ScanCfgWrapper.m_TimePowerCompensateCfg.m_TimePowerCompensates.begin();
while (tpcs != start->second->m_ScanCfgWrapper.m_TimePowerCompensateCfg.m_TimePowerCompensates.end()) {
(*tpcs)->SetTimePowerComp(sccfg->add_tpowercompensate());
++tpcs;
}
++start;
}
(*response)->mutable_data()->PackFrom(result);
}
void ConfigManager::SendAlarmCfg() { void ConfigManager::SendAlarmCfg() {
list<Item> lst; list<Item> lst;
auto start = m_AlarmCfgWrapper->m_StopAlarmCfgMap.begin(); auto start = m_AlarmCfgWrapper->m_StopAlarmCfgMap.begin();
while (start != m_AlarmCfgWrapper->m_StopAlarmCfgMap.end()) { while (start != m_AlarmCfgWrapper->m_StopAlarmCfgMap.end()) {
lst.emplace_back(Item{ start->first,"",UNKNOW,(*start).second->m_Content, (*start).second->m_IsEnable, lst.emplace_back(Item{ start->first,(*start).second->m_Content, (*start).second->m_IsEnable,
(*start).second->m_IsAlarm, (*start).second->m_IsShow }); (*start).second->m_IsAlarm, (*start).second->m_IsShow });
++start; ++start;
} }
@ -576,7 +587,7 @@ void ConfigManager::SendAlarmCfg() {
lst.clear(); lst.clear();
start = m_AlarmCfgWrapper->m_PauseAlarmCfgMap.begin(); start = m_AlarmCfgWrapper->m_PauseAlarmCfgMap.begin();
while (start != m_AlarmCfgWrapper->m_PauseAlarmCfgMap.end()) { while (start != m_AlarmCfgWrapper->m_PauseAlarmCfgMap.end()) {
lst.emplace_back(Item{ start->first,"",UNKNOW,(*start).second->m_Content, (*start).second->m_IsEnable, lst.emplace_back(Item{ start->first,(*start).second->m_Content, (*start).second->m_IsEnable,
(*start).second->m_IsAlarm, (*start).second->m_IsShow }); (*start).second->m_IsAlarm, (*start).second->m_IsShow });
++start; ++start;
} }
@ -585,7 +596,7 @@ void ConfigManager::SendAlarmCfg() {
lst.clear(); lst.clear();
start = m_AlarmCfgWrapper->m_WarnAlarmCfgMap.begin(); start = m_AlarmCfgWrapper->m_WarnAlarmCfgMap.begin();
while (start != m_AlarmCfgWrapper->m_WarnAlarmCfgMap.end()) { while (start != m_AlarmCfgWrapper->m_WarnAlarmCfgMap.end()) {
lst.emplace_back(Item{ start->first,"",UNKNOW,(*start).second->m_Content, (*start).second->m_IsEnable, lst.emplace_back(Item{ start->first,(*start).second->m_Content, (*start).second->m_IsEnable,
(*start).second->m_IsAlarm, (*start).second->m_IsShow }); (*start).second->m_IsAlarm, (*start).second->m_IsShow });
++start; ++start;
} }
@ -602,14 +613,14 @@ void ConfigManager::SendPowderCfg() {
m_ParamSetCfg.GetPowderCfg(vec); m_ParamSetCfg.GetPowderCfg(vec);
auto powderStart = vec.begin(); auto powderStart = vec.begin();
while (powderStart != vec.end()) { while (powderStart != vec.end()) {
lst.emplace_back(Item{ "","",UNKNOW,"", 0,0,0, lst.emplace_back(Item{powderStart->start_layer,powderStart->end_layer,powderStart->powder });
powderStart->start_layer,powderStart->end_layer,powderStart->powder });
++powderStart; ++powderStart;
} }
ClientWrapper::Instance()->PushAllClient(WriteData(POWDERSETPARAM, lst)); ClientWrapper::Instance()->PushAllClient(WriteData(POWDERSETPARAM, lst));
} }
void ConfigManager::UpdateCfg(const ReadData& rd) { void ConfigManager::UpdateCfg(const ReadData& rd) {
switch (rd.dataType) switch (rd.dataType)
@ -666,9 +677,9 @@ void ConfigManager::UpdateCommunicationCfg(const ReadData& rd) {
printf("not find this [%s] param\n", rd.nameKey.data()); printf("not find this [%s] param\n", rd.nameKey.data());
} }
} }
void ConfigManager::ControlRun(const list<Item>& its) { void ConfigManager::ControlRun(const list<Item>& its) {
bool enable = false; bool enable = false;
string code; string code;
@ -678,7 +689,6 @@ void ConfigManager::ControlRun(const list<Item>& its) {
if (item->nameKey == "code") code = item->strValue; if (item->nameKey == "code") code = item->strValue;
} }
CommunicationCfg* cCfg = nullptr; CommunicationCfg* cCfg = nullptr;
if (m_pCommunicationCfgDao->GetCommunicationCfg()->find(code) != m_pCommunicationCfgDao->GetCommunicationCfg()->end()) { if (m_pCommunicationCfgDao->GetCommunicationCfg()->find(code) != m_pCommunicationCfgDao->GetCommunicationCfg()->end()) {
cCfg = (*m_pCommunicationCfgDao->GetCommunicationCfg())[code]; cCfg = (*m_pCommunicationCfgDao->GetCommunicationCfg())[code];

View File

@ -106,7 +106,7 @@ public:
ParamSetCfg* GetParamSetCfg() { return &m_ParamSetCfg; } //已传 ParamSetCfg* GetParamSetCfg() { return &m_ParamSetCfg; } //已传
//map<int, LaserCfg*>* GetLaserCfgMap() { return &m_pLaserCfgDao->m_LaserCfgMap; } //map<int, LaserCfg*>* GetLaserCfgMap() { return &m_pLaserCfgDao->m_LaserCfgMap; }
//vector<LaserCfg*>* GetLaserCfgs() { return &m_pLaserCfgDao->m_LaserCfgs; } //vector<LaserCfg*>* GetLaserCfgs() { return &m_pLaserCfgDao->m_LaserCfgs; }
map<int,ScannerControlCfg*>* GetScannerControlCfg() { return &m_ScannerControlCfgDao->m_ScannerControlCfgMap; } // map<int,ScannerControlCfg*>* GetScannerControlCfg() { return &m_ScannerControlCfgDao->m_ScannerControlCfgMap; } // ScanerCtrlCfgReq发送
vector<ScannerControlCfg*>* GetScannerControlCfgs() { return &m_ScannerControlCfgDao->m_ScannerControlCfgs; } //不传 vector<ScannerControlCfg*>* GetScannerControlCfgs() { return &m_ScannerControlCfgDao->m_ScannerControlCfgs; } //不传
vector<ScannerControlCfg*>* GetMatchScannerControlCfg() { return &m_ScannerControlCfgDao->m_MatchCfg; } //添加2个函数 已传 vector<ScannerControlCfg*>* GetMatchScannerControlCfg() { return &m_ScannerControlCfgDao->m_MatchCfg; } //添加2个函数 已传
ScannerControlCfgDao* GetScannerControlCfgDao() { return m_ScannerControlCfgDao; } //不用 ScannerControlCfgDao* GetScannerControlCfgDao() { return m_ScannerControlCfgDao; } //不用
@ -137,6 +137,7 @@ public:
void SendCfgToClients(); void SendCfgToClients();
void UpdateCfg(const ReadData& rd); void UpdateCfg(const ReadData& rd);
void CallFuncs(const ReadData& rd, const list<Item>& lst = list<Item>(), ::stream::ResponseAny** response = nullptr); void CallFuncs(const ReadData& rd, const list<Item>& lst = list<Item>(), ::stream::ResponseAny** response = nullptr);
void ScanerCtrlCfgReq(const ReadData& rd, const list<Item>& lst, ::stream::ResponseAny** response); //
private: private:
ConfigManager(const ConfigManager&) {}; ConfigManager(const ConfigManager&) {};
ConfigManager& operator=(const ConfigManager&) {}; ConfigManager& operator=(const ConfigManager&) {};

View File

@ -1,4 +1,4 @@
#include "CorrectParamCfg.h" #include "CorrectParamCfg.h"
#include "ScanCfg.h" #include "ScanCfg.h"
@ -41,8 +41,8 @@ CorrectParamCfg::CorrectParamCfg()
m_FactorK=1824.0; m_FactorK=1824.0;
m_IsCorrectFile3D = true; m_IsCorrectFile3D = true;
//m_DownSkinStopTimes = 0; //m_DownSkinStopTimes = 0;
m_IsDynamicFocus = true; //是否动态聚焦 m_IsDynamicFocus = true; //是否动态聚焦
m_DefocusRatio = 10.0; //离焦比 m_DefocusRatio = 10.0; //离焦比
m_DefocusRatioMin = 0.0; m_DefocusRatioMin = 0.0;
m_DefocusRatioMax = 50.0; m_DefocusRatioMax = 50.0;
} }
@ -110,6 +110,40 @@ void CorrectParamCfg::GetUpdateSql(int cno,vector<string>& ups) {
ups.push_back(buffer); ups.push_back(buffer);
} }
void CorrectParamCfg::SetCorrectCfg(stream::CorrectParamCfg* cp) {
cp->set_xmeasuremin(m_xmeasure_min);
cp->set_xmeasuremax(m_xmeasure_max);
cp->set_ymeasuremin(m_ymeasure_min);
cp->set_ymeasuremax(m_ymeasure_max);
cp->set_xposfix(m_xposfix);
cp->set_yposfix(m_yposfix);
cp->set_scanangle(m_scan_angle);
cp->set_scananglemin(m_scan_angle_min);
cp->set_scananglemax(m_scan_angle_max);
cp->set_fixanglemax(m_fix_angle);
cp->set_fixanglemin(m_fix_angle_min);
cp->set_fixanglemax(m_fix_angle_max);
cp->set_xcorrect(m_xcorrect);
cp->set_ycorrect(m_ycorrect);
cp->set_xcorrectmin(m_xcorrect_min);
cp->set_xcorrectmax(m_xcorrect_max);
cp->set_ycorrectmin(m_ycorrect_min);
cp->set_ycorrectmax(m_ycorrect_max);
cp->set_realxoffset(m_realXOffset);
cp->set_realyoffset(m_realYOffset);
cp->set_factork(m_FactorK);
cp->set_iscorrectfile3d(m_IsCorrectFile3D);
cp->set_isdynamicfocus(m_IsDynamicFocus);
cp->set_defocusratio(m_DefocusRatio);
cp->set_defocusratiomin(m_DefocusRatioMin);
cp->set_defocusratiomax(m_DefocusRatioMax);
}
string CorrectParamCfg::CONFIG_NAME = "CorrectParamCfg"; string CorrectParamCfg::CONFIG_NAME = "CorrectParamCfg";
string CorrectParamCfg::FIELD_X_MEASURE_MIN = "XMeasureMin"; string CorrectParamCfg::FIELD_X_MEASURE_MIN = "XMeasureMin";
string CorrectParamCfg::FIELD_X_MEASURE_MAX = "XMeasureMax"; string CorrectParamCfg::FIELD_X_MEASURE_MAX = "XMeasureMax";

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <vector> #include <vector>
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
class CorrectParamCfg class CorrectParamCfg
@ -9,40 +10,42 @@ public:
CorrectParamCfg(); CorrectParamCfg();
~CorrectParamCfg(); ~CorrectParamCfg();
void GetUpdateSql(int cno,vector<string>& ups); void GetUpdateSql(int cno,vector<string>& ups);
void SetCorrectCfg(stream::CorrectParamCfg* cp);
public: public:
double m_xmeasure_min; //x可打印最小位置 double m_xmeasure_min; //x可打印最小位置
double m_xmeasure_max; //x可打印最大位置 double m_xmeasure_max; //x可打印最大位置
double m_ymeasure_min; //y可打印最小位置 double m_ymeasure_min; //y可打印最小位置
double m_ymeasure_max; //y可打印最大位置 double m_ymeasure_max; //y可打印最大位置
double m_xposfix; //x位置修正 double m_xposfix; //x位置修正
double m_yposfix; //y位置修正 double m_yposfix; //y位置修正
//double m_xoffset; //x位置偏移 不保存 //double m_xoffset; //x位置偏移 不保存
//double m_yoffset; //y位置偏移 不保存 //double m_yoffset; //y位置偏移 不保存
double m_scan_angle; //旋转角度 逆时针 double m_scan_angle; //旋转角度 逆时针
double m_scan_angle_min; double m_scan_angle_min;
double m_scan_angle_max; double m_scan_angle_max;
double m_fix_angle; //旋转角度 逆时针 double m_fix_angle; //旋转角度 逆时针
double m_fix_angle_min; double m_fix_angle_min;
double m_fix_angle_max; double m_fix_angle_max;
double m_xcorrect; //x尺寸修正 double m_xcorrect; //x尺寸修正
double m_ycorrect; //y尺寸修正 double m_ycorrect; //y尺寸修正
double m_xcorrect_min; double m_xcorrect_min;
double m_xcorrect_max; double m_xcorrect_max;
double m_ycorrect_min; double m_ycorrect_min;
double m_ycorrect_max; double m_ycorrect_max;
//double m_xscale; //x缩放比例 不保存 //double m_xscale; //x缩放比例 不保存
//double m_xscale_min; //double m_xscale_min;
//double m_xscale_max; //double m_xscale_max;
//double m_yscale; //y缩放比例 不保存 //double m_yscale; //y缩放比例 不保存
//double m_yscale_min; //double m_yscale_min;
//double m_yscale_max; //double m_yscale_max;
double m_realXOffset; double m_realXOffset;
double m_realYOffset; double m_realYOffset;
double m_FactorK; double m_FactorK;
bool m_IsCorrectFile3D; bool m_IsCorrectFile3D;
//unsigned int m_DownSkinStopTimes; //下表面停止次数 //unsigned int m_DownSkinStopTimes; //下表面停止次数
bool m_IsDynamicFocus; //是否动态聚焦 bool m_IsDynamicFocus; //是否动态聚焦
double m_DefocusRatio; //离焦比 double m_DefocusRatio; //离焦比
double m_DefocusRatioMin; double m_DefocusRatioMin;
double m_DefocusRatioMax; double m_DefocusRatioMax;

View File

@ -1,4 +1,4 @@
#include "FixPointCfg.h" #include "FixPointCfg.h"
@ -19,6 +19,14 @@ string FixPointCfg::GetUpdateSql()
return buffer; return buffer;
} }
void FixPointCfg::SetFixPointCfg(stream::FixPointData* fp) {
fp->set_cno(m_Cno);
fp->set_duration(m_Duration);
fp->set_id(m_Id);
fp->set_pointx(m_PointX);
fp->set_pointy(m_PointY);
}
const string FixPointCfg::TABLE_NAME="FixPoints"; const string FixPointCfg::TABLE_NAME="FixPoints";
const string FixPointCfg::FIELD_ID="Id"; const string FixPointCfg::FIELD_ID="Id";
const string FixPointCfg::FIELD_CNO = "Cno"; const string FixPointCfg::FIELD_CNO = "Cno";

View File

@ -1,8 +1,9 @@
#pragma once #pragma once
#include <windows.h> #include <windows.h>
#include <string> #include <string>
#include <vector> #include <vector>
#include <list> #include <list>
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
class FixPointCfg class FixPointCfg
@ -11,6 +12,7 @@ public:
FixPointCfg(); FixPointCfg();
~FixPointCfg(); ~FixPointCfg();
string GetUpdateSql(); string GetUpdateSql();
void SetFixPointCfg(stream::FixPointData* sp);
public: public:
int m_Id; int m_Id;
int m_Cno; int m_Cno;

View File

@ -1,4 +1,4 @@
#include "PowerCompensate.h" #include "PowerCompensate.h"
@ -33,6 +33,15 @@ void PowerCompensate::Generate(int cno,vector<string>& ins)
} }
} }
void PowerCompensate::SetPowerComp(stream::PowerCompensate* cp) {
cp->set_cno(m_cno);
cp->set_percent(m_percent);
cp->set_value(m_value);
cp->set_value_min(m_value_min);
cp->set_value_max(m_value_max);
}
const string PowerCompensate::TABLE_NAME="PowerCompensate"; const string PowerCompensate::TABLE_NAME="PowerCompensate";
const string PowerCompensate::FIELD_CNO = "cno"; const string PowerCompensate::FIELD_CNO = "cno";

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <vector> #include <vector>
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
class PowerCompensate class PowerCompensate
@ -9,6 +10,7 @@ public:
PowerCompensate(); PowerCompensate();
~PowerCompensate(); ~PowerCompensate();
static void Generate(int cno,vector<string>& ins); static void Generate(int cno,vector<string>& ins);
void SetPowerComp(stream::PowerCompensate* cp);
public: public:
int m_cno; int m_cno;
unsigned short m_percent; unsigned short m_percent;

View File

@ -1,4 +1,4 @@
#include "ScanParamCfg.h" #include "ScanParamCfg.h"
#include "ScanCfg.h" #include "ScanCfg.h"
#include "../../utils/StringHelper.h" #include "../../utils/StringHelper.h"
@ -92,6 +92,41 @@ void ScanParamCfg::GetUpdateSql(int cno,vector<string>& ups)
} }
void ScanParamCfg::SetScanParam(stream::ScanParamCfg* sp) {
sp->set_edgelevel(m_edge_level);
sp->set_edgelevelmin( m_edge_level_min);
sp->set_edgelevelmax( m_edge_level_max);
sp->set_jumpdelay( m_jump_delay);
sp->set_jumpdelaymin( m_jump_delay_min);
sp->set_jumpdelaymax( m_jump_delay_max);
sp->set_scandelay( m_scan_delay);
sp->set_scandelaymin( m_scan_delay_min);
sp->set_scandelaymax( m_scan_delay_max);
sp->set_polygondelay( m_polygon_delay);
sp->set_polygondelaymin( m_polygon_delay_min);
sp->set_polygondelaymax( m_polygon_delay_max);
sp->set_laseroffdelay( m_laseroff_delay);
sp->set_laseroffdelaymin( m_laseroff_delay_min);
sp->set_laseroffdelaymax( m_laseroff_delay_max);
sp->set_laserondelay( m_laseron_delay);
sp->set_laserondelaymin( m_laseron_delay_min);
sp->set_laserondelaymax( m_laseron_delay_max);
sp->set_minjumpdelay( m_min_jump_delay);
sp->set_minjumpdelaymin( m_min_jump_delay_min);
sp->set_minjumpdelaymax( m_min_jump_delay_max);
sp->set_jumplengthlimit( m_jump_length_limit);
sp->set_jumplengthlimitmin( m_jump_length_limit_min);
sp->set_jumplengthlimitmax( m_jump_length_limit_max);
sp->set_jumpspeed( m_jump_speed);
sp->set_jumpspeedmin( m_jump_speed_min);
sp->set_jumpspeedmax( m_jump_speed_max);
sp->set_markspeed( m_mark_speed);
sp->set_markspeedmin( m_mark_speed_min);
sp->set_markspeedmax( m_polygon_delay_max);
}
//string ScanParamCfg::CONFIG_NAME = "ScanParamCfg"; //string ScanParamCfg::CONFIG_NAME = "ScanParamCfg";
string ScanParamCfg::FIELD_EDGE_LEVEL = "EdgeLevel"; string ScanParamCfg::FIELD_EDGE_LEVEL = "EdgeLevel";
string ScanParamCfg::FIELD_EDGE_LEVEL_MIN = "EdgeLevelMin"; string ScanParamCfg::FIELD_EDGE_LEVEL_MIN = "EdgeLevelMin";

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <vector> #include <vector>
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
class ScanParamCfg class ScanParamCfg
{ {
@ -9,6 +10,7 @@ public:
~ScanParamCfg(); ~ScanParamCfg();
void GetUpdateSql(int cno,vector<string>& ups); void GetUpdateSql(int cno,vector<string>& ups);
void SetScanParam(stream::ScanParamCfg* sp);
public: public:
string CONFIG_NAME; string CONFIG_NAME;
static string FIELD_EDGE_LEVEL; static string FIELD_EDGE_LEVEL;

View File

@ -1,4 +1,4 @@
#include "ScanTestCfg.h" #include "ScanTestCfg.h"
#include "ScanCfg.h" #include "ScanCfg.h"
#include "../../utils/StringHelper.h" #include "../../utils/StringHelper.h"
@ -90,6 +90,35 @@ void ScanTestCfg::GetUpdateSql(int cno,vector<string>& ups)
} }
void ScanTestCfg::SetScanTestCfg(stream::ScanTestCfg* cp) {
cp->set_debugshape(m_debug_shape);
cp->set_shapesize(m_shape_size);
cp->set_shapesizemin(m_shape_size_min);
cp->set_shape_size_max(m_shape_size_max);
cp->set_laser_power(m_laser_power);
cp->set_laser_power_min(m_laser_power_min);
cp->set_laser_power_max(m_laser_power_max);
cp->set_defocus(m_defocus);
cp->set_defocus_min(m_defocus_min);
cp->set_defocus_max(m_defocus_max);
cp->set_is_cycle(m_is_cycle);
cp->set_cross_x(m_cross_x);
cp->set_cross_y(m_cross_y);
cp->set_z_distance(m_z_distance);
cp->set_isautoheatingscanner(m_IsAutoHeatingScanner);
cp->set_autoheatingscannerminutes(m_AutoHeatingScannerMinutes);
cp->set_autoheatingscannersize(m_AutoHeatingScannerSize);
cp->set_autoheatingscannerspeed(m_AutoHeatingScannerSpeed);
cp->set_mark_test_start_x(m_mark_test_start_x);
cp->set_mark_test_start_y(m_mark_test_start_y);
cp->set_mark_test_end_x(m_mark_test_end_x);
cp->set_mark_test_end_y(m_mark_test_end_y);
}
string ScanTestCfg::CONFIG_NAME="ScanTest"; string ScanTestCfg::CONFIG_NAME="ScanTest";
string ScanTestCfg::FIELD_DEBUG_SHAPE = "DebugShape"; string ScanTestCfg::FIELD_DEBUG_SHAPE = "DebugShape";
string ScanTestCfg::FIELD_SHAPE_SIZE = "ShapeSize"; string ScanTestCfg::FIELD_SHAPE_SIZE = "ShapeSize";

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <vector> #include <vector>
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
class ScanTestCfg class ScanTestCfg
@ -10,6 +11,7 @@ public:
~ScanTestCfg(); ~ScanTestCfg();
void GetUpdateSql(int cno,vector<string>& ups); void GetUpdateSql(int cno,vector<string>& ups);
void SetScanTestCfg(stream::ScanTestCfg* cp);
public: public:
int m_debug_shape; int m_debug_shape;
int m_shape_size; int m_shape_size;
@ -27,7 +29,7 @@ public:
double m_z_distance; double m_z_distance;
bool m_IsAutoHeatingScanner; //开启暂停开始时预热振镜 bool m_IsAutoHeatingScanner; //开启暂停开始时预热振镜
unsigned int m_AutoHeatingScannerMinutes; unsigned int m_AutoHeatingScannerMinutes;
unsigned int m_AutoHeatingScannerSize; unsigned int m_AutoHeatingScannerSize;
double m_AutoHeatingScannerSpeed; double m_AutoHeatingScannerSpeed;

View File

@ -3,8 +3,8 @@
ScannerControlCfg::ScannerControlCfg() ScannerControlCfg::ScannerControlCfg()
: /*m_Index(new IntData("Index")) /*: m_Index(new IntData("Index"))
,*/ m_SeqNo(new IntData("SeqNo")) , m_SeqNo(new IntData("SeqNo"))
, m_ControlNo(new IntData("ControlNo")) , m_ControlNo(new IntData("ControlNo"))
, m_SerialNo(new IntData("SerialNo")) , m_SerialNo(new IntData("SerialNo"))
, m_ControlType(new IntData("ControlType")) , m_ControlType(new IntData("ControlType"))
@ -12,7 +12,7 @@ ScannerControlCfg::ScannerControlCfg()
, m_CardIP(new StrData("CardIP")) , m_CardIP(new StrData("CardIP"))
, m_IsEnable(new BoolData("IsEnable")) , m_IsEnable(new BoolData("IsEnable"))
, m_HadAssign(new BoolData("HadAssign")) , m_HadAssign(new BoolData("HadAssign"))
, m_HadMatch(new BoolData("HadMatch")) , m_HadMatch(new BoolData("HadMatch"))*/
{ {
} }
@ -40,9 +40,9 @@ string ScannerControlCfg::GetUpdateSql()
string sql = "UPDATE %s SET %s=%d,%s=%d WHERE %s=%d"; string sql = "UPDATE %s SET %s=%d,%s=%d WHERE %s=%d";
sprintf_s(buffer, sizeof(buffer), "UPDATE %s SET %s=%d,%s=%d WHERE %s=%d", sprintf_s(buffer, sizeof(buffer), "UPDATE %s SET %s=%d,%s=%d WHERE %s=%d",
TABLE_NAME.c_str(), TABLE_NAME.c_str(),
FIELD_CONTROL_NO.c_str(), m_ControlNo->GetValue(), FIELD_CONTROL_NO.c_str(), m_ControlNo ,
FIELD_SERIAL_NO.c_str(), m_SerialNo->GetValue(), FIELD_SERIAL_NO.c_str(), m_SerialNo ,
FIELD_SEQ_NO.c_str(),m_SeqNo->GetValue()); FIELD_SEQ_NO.c_str(),m_SeqNo );
return buffer; return buffer;
} }
@ -58,6 +58,18 @@ ScanParamCfg* ScannerControlCfg::GetScanParamCfg(string str)
} }
} }
void ScannerControlCfg::SetScannerCtrlCfg(stream::ScannerCrtlCfgData* sccd) {
sccd->set_seqno(m_SeqNo);
sccd->set_controlno(m_ControlNo);
sccd->set_serialno(m_SerialNo);
sccd->set_controltype(m_ControlType);
sccd->set_cardname(m_CardName);
sccd->set_cardip(m_CardIP);
sccd->set_isenable(m_IsEnable);
sccd->set_hadassign(m_HadAssign);
sccd->set_hadmatch(m_HadMatch);
}
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

@ -6,6 +6,8 @@
#include "FixPointCfg.h" #include "FixPointCfg.h"
#include "IOCfg.h" #include "IOCfg.h"
#include "../Controller/Base.h" #include "../Controller/Base.h"
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
struct CardSerialPair { struct CardSerialPair {
@ -23,21 +25,22 @@ public:
string GetUpdateSql(); string GetUpdateSql();
void Init(); void Init();
ScanParamCfg* GetScanParamCfg(string str); ScanParamCfg* GetScanParamCfg(string str);
void SetScannerCtrlCfg(stream::ScannerCrtlCfgData* );
public: public:
//IntData* m_Index; //IntData* m_Index;
IntData* m_SeqNo; //编号 配合ConfigManager中的map int m_SeqNo; //编号 ConfigManager中的m_ScannerControlCfgMap的key
IntData* m_ControlNo; int m_ControlNo;
IntData* m_SerialNo; int m_SerialNo;
IntData* m_ControlType; int m_ControlType;
StrData* m_CardName; string m_CardName;
StrData* m_CardIP; string m_CardIP;
BoolData* m_IsEnable; //是否启动 bool m_IsEnable; //是否启动
BoolData* m_HadAssign; bool m_HadAssign;
BoolData* m_HadMatch; bool m_HadMatch;
ScanCfgWrapper m_ScanCfgWrapper; ScanCfgWrapper m_ScanCfgWrapper;
FixPointWrapper m_FixPointWrapper; FixPointWrapper m_FixPointWrapper; //添加一个函数,不传
IOCfg* m_LaserRed; //不传了 IOCfg* m_LaserRed; //不传了
IOCfg* m_LaserEnable; //不传了 IOCfg* m_LaserEnable; //不传了

View File

@ -1,4 +1,4 @@
#include "SkyWritingCfg.h" #include "SkyWritingCfg.h"
#include "ScanCfg.h" #include "ScanCfg.h"
@ -65,6 +65,28 @@ void SkyWritingCfg::GetUpdateSql(int cno,vector<string>& ups)
ups.push_back(buffer); ups.push_back(buffer);
} }
void SkyWritingCfg::SetSkyWritingCfg(stream::SkyWritingCfg * cp) {
cp->set_isenable(m_IsEnable);
cp->set_timelag(m_Timelag);
cp->set_timelagmin(m_TimelagMin);
cp->set_timelagmax(m_TimelagMax);
cp->set_laseronshift(m_LaserOnShift);
cp->set_laseronshiftmin(m_LaserOnShiftMin);
cp->set_laseronshiftmax(m_LaserOnShiftMax);
cp->set_nprev(m_Nprev);
cp->set_nprevmin(m_NprevMin);
cp->set_nprevmax(m_NprevMax);
cp->set_npost(m_Npost);
cp->set_npostmin(m_NpostMin);
cp->set_npostmax(m_NpostMax);
cp->set_mode(m_Mode);
cp->set_limite(m_Limite);
cp->set_limitemin(m_LimiteMin);
cp->set_limitemax(m_LimiteMax);
}
string SkyWritingCfg::CONFIG_NAME = "SkyWriting"; string SkyWritingCfg::CONFIG_NAME = "SkyWriting";
string SkyWritingCfg::FIELD_IS_ENABLE = "is_enable"; string SkyWritingCfg::FIELD_IS_ENABLE = "is_enable";
string SkyWritingCfg::FIELD_TIMELAG = "timelag"; string SkyWritingCfg::FIELD_TIMELAG = "timelag";

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <vector> #include <vector>
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
@ -10,7 +11,7 @@ public:
SkyWritingCfg(); SkyWritingCfg();
~SkyWritingCfg(); ~SkyWritingCfg();
void GetUpdateSql(int cno,vector<string>& ups); void GetUpdateSql(int cno,vector<string>& ups);
void SetSkyWritingCfg(stream::SkyWritingCfg* cp);
public: public:
bool m_IsEnable; bool m_IsEnable;
double m_Timelag; double m_Timelag;

View File

@ -1,4 +1,4 @@
#include "TimePowerCompensate.h" #include "TimePowerCompensate.h"
@ -13,6 +13,13 @@ TimePowerCompensate::~TimePowerCompensate()
} }
void TimePowerCompensate::SetTimePowerComp(stream::TimePowerCompensate* tpc) {
tpc->set_id(m_ID);
tpc->set_cno(m_Cno);
tpc->set_startminute(m_StartMinute);
tpc->set_endminute(m_EndMinute);
tpc->set_compensate(m_Compensate);
}
const string TimePowerCompensate::TABLE_NAME="TimePowerCompensate"; const string TimePowerCompensate::TABLE_NAME="TimePowerCompensate";
const string TimePowerCompensate::FIELD_ID="id"; const string TimePowerCompensate::FIELD_ID="id";

View File

@ -1,7 +1,8 @@
#pragma once #pragma once
#include <string> #include <string>
#include <windows.h> #include <windows.h>
#include <Vector> #include <Vector>
#include "../protobuf/stream.pb.h"
using namespace std; using namespace std;
class TimePowerCompensate class TimePowerCompensate
@ -9,7 +10,7 @@ class TimePowerCompensate
public: public:
TimePowerCompensate(); TimePowerCompensate();
~TimePowerCompensate(); ~TimePowerCompensate();
void SetTimePowerComp(stream::TimePowerCompensate* cp);
public: public:
int m_ID; int m_ID;
int m_Cno; int m_Cno;

View File

@ -54,10 +54,10 @@ void ScannerControlCfgDao::Save()
ScannerControlCfg* pcfg = m_MatchCfg[i]; ScannerControlCfg* pcfg = m_MatchCfg[i];
if (pcfg == NULL)continue; if (pcfg == NULL)continue;
m_pDB->exec(pcfg->GetUpdateSql()); m_pDB->exec(pcfg->GetUpdateSql());
m_ScanCfgDao->Save(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper); m_ScanCfgDao->Save(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper);
m_PowerCompensateDao->Save(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg); m_PowerCompensateDao->Save(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg);
m_TimePowerCompensateDao->Save(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg); m_TimePowerCompensateDao->Save(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg);
m_FixPointDao->Save(pcfg->m_SeqNo->GetValue(), pcfg->m_FixPointWrapper); m_FixPointDao->Save(pcfg->m_SeqNo , pcfg->m_FixPointWrapper);
} }
} }
@ -68,22 +68,22 @@ void ScannerControlCfgDao::FindCfg() {
{ {
ScannerControlCfg* cfg = m_ScannerControlCfgs[i]; ScannerControlCfg* cfg = m_ScannerControlCfgs[i];
//machine->InitScanParamBeforeFind(&cfg->m_ScanCfgWrapper); //machine->InitScanParamBeforeFind(&cfg->m_ScanCfgWrapper);
m_ScanCfgDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_ScanCfgWrapper); m_ScanCfgDao->Find(cfg->m_SeqNo , cfg->m_ScanCfgWrapper);
m_PowerCompensateDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_ScanCfgWrapper.m_PowerCompensateCfg); m_PowerCompensateDao->Find(cfg->m_SeqNo , cfg->m_ScanCfgWrapper.m_PowerCompensateCfg);
if (cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.empty()) { if (cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.empty()) {
for (int pcIndex = 5; pcIndex <= 100; pcIndex += 5) { for (int pcIndex = 5; pcIndex <= 100; pcIndex += 5) {
PowerCompensate* pc = new PowerCompensate(); PowerCompensate* pc = new PowerCompensate();
pc->m_cno = cfg->m_SeqNo->GetValue(); pc->m_cno = cfg->m_SeqNo ;
pc->m_percent = pcIndex; pc->m_percent = pcIndex;
pc->m_value = 1.0f; pc->m_value = 1.0f;
pc->m_value_min = 0.0f; pc->m_value_min = 0.0f;
pc->m_value_max = 3.0f; pc->m_value_max = 3.0f;
cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.push_back(pc); cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.push_back(pc);
m_PowerCompensateDao->Add(cfg->m_SeqNo->GetValue(), pc); m_PowerCompensateDao->Add(cfg->m_SeqNo , pc);
} }
} }
m_TimePowerCompensateDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg); m_TimePowerCompensateDao->Find(cfg->m_SeqNo , cfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg);
m_FixPointDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_FixPointWrapper); m_FixPointDao->Find(cfg->m_SeqNo , cfg->m_FixPointWrapper);
} }
} }
@ -95,15 +95,15 @@ void ScannerControlCfgDao::FindMain()
SQLite::Statement query(*m_pDB, buffer); SQLite::Statement query(*m_pDB, buffer);
while (query.executeStep()) { while (query.executeStep()) {
ScannerControlCfg* cfg = new ScannerControlCfg(); ScannerControlCfg* cfg = new ScannerControlCfg();
cfg->m_SeqNo ->SetValue(query.getColumn(ScannerControlCfg::FIELD_SEQ_NO.c_str()).getInt()); cfg->m_SeqNo=query.getColumn(ScannerControlCfg::FIELD_SEQ_NO.c_str()).getInt();
cfg->m_ControlNo->SetValue(query.getColumn(ScannerControlCfg::FIELD_CONTROL_NO.c_str()).getInt()); cfg->m_ControlNo =query.getColumn(ScannerControlCfg::FIELD_CONTROL_NO.c_str()).getInt();
cfg->m_SerialNo->SetValue(query.getColumn(ScannerControlCfg::FIELD_SERIAL_NO.c_str()).getInt()); cfg->m_SerialNo =query.getColumn(ScannerControlCfg::FIELD_SERIAL_NO.c_str()).getInt();
cfg->m_ControlType->SetValue(query.getColumn(ScannerControlCfg::FIELD_CONTROL_TYPE.c_str()).getInt()); cfg->m_ControlType =query.getColumn(ScannerControlCfg::FIELD_CONTROL_TYPE.c_str()).getInt();
cfg->m_CardName->SetValue(query.getColumn(ScannerControlCfg::FIELD_CARD_NAME.c_str()).getString()); cfg->m_CardName =query.getColumn(ScannerControlCfg::FIELD_CARD_NAME.c_str()).getString();
cfg->m_CardIP->SetValue(query.getColumn(ScannerControlCfg::FIELD_CARD_IP.c_str()).getString()); cfg->m_CardIP =query.getColumn(ScannerControlCfg::FIELD_CARD_IP.c_str()).getString();
cfg->m_IsEnable->SetValue(query.getColumn(ScannerControlCfg::FIELD_IS_ENABLE.c_str()).getInt() > 0 ? true : false); cfg->m_IsEnable =query.getColumn(ScannerControlCfg::FIELD_IS_ENABLE.c_str()).getInt() > 0 ? true : false;
m_ScannerControlCfgs.push_back(cfg); m_ScannerControlCfgs.push_back(cfg);
m_ScannerControlCfgMap[cfg->m_SeqNo->GetValue()] = cfg; m_ScannerControlCfgMap[cfg->m_SeqNo ] = cfg;
} }
} }
@ -113,9 +113,9 @@ void ScannerControlCfgDao::Export(stringstream& ss)
ScannerControlCfg* pcfg = m_MatchCfg[i]; ScannerControlCfg* pcfg = m_MatchCfg[i];
if (pcfg == NULL)continue; if (pcfg == NULL)continue;
ss << pcfg->GetUpdateSql() << "\n"; ss << pcfg->GetUpdateSql() << "\n";
m_ScanCfgDao->Export(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper, ss); m_ScanCfgDao->Export(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper, ss);
m_PowerCompensateDao->Export(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg, ss); m_PowerCompensateDao->Export(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg, ss);
m_TimePowerCompensateDao->Export(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg, ss); m_TimePowerCompensateDao->Export(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg, ss);
} }
} }
@ -123,7 +123,7 @@ void ScannerControlCfgDao::ExportAllPC(stringstream& ss)
{ {
for (size_t i = 0; i < m_MatchCfg.size(); ++i) { for (size_t i = 0; i < m_MatchCfg.size(); ++i) {
ScannerControlCfg* pcfg = m_MatchCfg[i]; ScannerControlCfg* pcfg = m_MatchCfg[i];
m_PowerCompensateDao->Export(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg, ss); m_PowerCompensateDao->Export(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg, ss);
} }
} }
@ -140,7 +140,7 @@ void ScannerControlCfgDao::ImportAllPc(std::string &sql)
for (size_t i = 0; i < m_ScannerControlCfgs.size(); ++i) { for (size_t i = 0; i < m_ScannerControlCfgs.size(); ++i) {
ScannerControlCfg* pcfg = m_ScannerControlCfgMap[i]; ScannerControlCfg* pcfg = m_ScannerControlCfgMap[i];
m_PowerCompensateDao->Find(pcfg->m_SeqNo->GetValue(), pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg); m_PowerCompensateDao->Find(pcfg->m_SeqNo , pcfg->m_ScanCfgWrapper.m_PowerCompensateCfg);
} }
} }
@ -157,7 +157,7 @@ void ScannerControlCfgDao::Add(ScannerControlCfg* cfg)
ScannerControlCfg::FIELD_CARD_NAME.c_str(), ScannerControlCfg::FIELD_CARD_NAME.c_str(),
ScannerControlCfg::FIELD_CARD_IP.c_str(), ScannerControlCfg::FIELD_CARD_IP.c_str(),
ScannerControlCfg::FIELD_IS_ENABLE.c_str(), ScannerControlCfg::FIELD_IS_ENABLE.c_str(),
cfg->m_SeqNo->GetValue(), cfg->m_ControlNo->GetValue(), cfg->m_SerialNo->GetValue(), cfg->m_ControlType->GetValue(), cfg->m_CardName->GetValueStr().c_str(), "", cfg->m_IsEnable->GetValue() ? 1 : 0); cfg->m_SeqNo , cfg->m_ControlNo , cfg->m_SerialNo , cfg->m_ControlType , cfg->m_CardName.c_str(), "", cfg->m_IsEnable ? 1 : 0);
m_pDB->exec(buffer); m_pDB->exec(buffer);
} }
@ -168,7 +168,7 @@ void ScannerControlCfgDao::Delete(int seq)
m_pDB->exec(buffer); m_pDB->exec(buffer);
for (vector<ScannerControlCfg*>::iterator it = m_ScannerControlCfgs.begin(); it != m_ScannerControlCfgs.end();) { for (vector<ScannerControlCfg*>::iterator it = m_ScannerControlCfgs.begin(); it != m_ScannerControlCfgs.end();) {
if ((*it)->m_SeqNo->GetValue() == seq) if ((*it)->m_SeqNo == seq)
{ {
it = m_ScannerControlCfgs.erase(it); it = m_ScannerControlCfgs.erase(it);
break; break;
@ -179,7 +179,7 @@ void ScannerControlCfgDao::Delete(int seq)
} }
for (vector<ScannerControlCfg*>::iterator it = m_MatchCfg.begin(); it != m_MatchCfg.end();) { for (vector<ScannerControlCfg*>::iterator it = m_MatchCfg.begin(); it != m_MatchCfg.end();) {
if ((*it)->m_SeqNo->GetValue() == seq) if ((*it)->m_SeqNo == seq)
{ {
it = m_MatchCfg.erase(it); it = m_MatchCfg.erase(it);
break; break;
@ -204,20 +204,20 @@ void ScannerControlCfgDao::Delete(int seq)
void ScannerControlCfgDao::Maintain(ScannerControlCfg* cfg) void ScannerControlCfgDao::Maintain(ScannerControlCfg* cfg)
{ {
m_ScanCfgDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_ScanCfgWrapper); m_ScanCfgDao->Find(cfg->m_SeqNo , cfg->m_ScanCfgWrapper);
m_PowerCompensateDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_ScanCfgWrapper.m_PowerCompensateCfg); m_PowerCompensateDao->Find(cfg->m_SeqNo , cfg->m_ScanCfgWrapper.m_PowerCompensateCfg);
if (cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.empty()) { if (cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.empty()) {
for (int pcIndex = 5; pcIndex <= 100; pcIndex += 5) { for (int pcIndex = 5; pcIndex <= 100; pcIndex += 5) {
PowerCompensate* pc = new PowerCompensate(); PowerCompensate* pc = new PowerCompensate();
pc->m_cno = cfg->m_SeqNo->GetValue(); pc->m_cno = cfg->m_SeqNo ;
pc->m_percent = pcIndex; pc->m_percent = pcIndex;
pc->m_value = 1.0f; pc->m_value = 1.0f;
pc->m_value_min = 0.0f; pc->m_value_min = 0.0f;
pc->m_value_max = 3.0f; pc->m_value_max = 3.0f;
cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.push_back(pc); cfg->m_ScanCfgWrapper.m_PowerCompensateCfg.m_pcs.push_back(pc);
m_PowerCompensateDao->Add(cfg->m_SeqNo->GetValue(), pc); m_PowerCompensateDao->Add(cfg->m_SeqNo , pc);
} }
} }
m_TimePowerCompensateDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg); m_TimePowerCompensateDao->Find(cfg->m_SeqNo , cfg->m_ScanCfgWrapper.m_TimePowerCompensateCfg);
m_FixPointDao->Find(cfg->m_SeqNo->GetValue(), cfg->m_FixPointWrapper); m_FixPointDao->Find(cfg->m_SeqNo , cfg->m_FixPointWrapper);
} }

View File

@ -29,6 +29,9 @@ void DataHandle::FuncDataCallBackProc(void* pthis,const ReadData& msg, const lis
else if ((READTYPE)msg.dataType == CONFIGFUNC) { else if ((READTYPE)msg.dataType == CONFIGFUNC) {
p->m_config->CallFuncs(msg, lst, response); p->m_config->CallFuncs(msg, lst, response);
} }
else if ((READTYPE)msg.dataType == SCANERCTRLCFG) {
p->m_config->ScanerCtrlCfgReq(msg, lst, response);
}
} }

View File

@ -35,6 +35,7 @@ enum READTYPE {
COMMUNICATIONCFG, COMMUNICATIONCFG,
ALARMCFG, ALARMCFG,
POWDERSET, POWDERSET,
SCANERCTRLCFG,
LOADPARAM, //装载参数 LOADPARAM, //装载参数
@ -118,6 +119,7 @@ enum WRITETYPE {
PAUSEALARMCFGPARAM, //AlarmCfgWrapper pause参数 PAUSEALARMCFGPARAM, //AlarmCfgWrapper pause参数
WARNALARMCFGPARAM, //AlarmCfgWrapper warn参数 WARNALARMCFGPARAM, //AlarmCfgWrapper warn参数
POWDERSETPARAM, //PowderSet 参数 POWDERSETPARAM, //PowderSet 参数
//SCANNERCONTROLCFGPARAM, //ScannerControlCfg 参数
MOLDCFGPARAM, MOLDCFGPARAM,
LOADCFGPARAM, LOADCFGPARAM,
@ -138,31 +140,42 @@ enum WRITETYPE {
}; };
struct Item { struct Item {
Item() {}
std::string nameKey; //参数key std::string nameKey; //参数key
std::string strValue; //value std::string strValue; //value
DATATYPE valueType; //数据类型 DATATYPE valueType; //数据类型
Item(const std::string& nameKey,const std::string& strValue, DATATYPE valueType)
:nameKey(nameKey), strValue(strValue), valueType(valueType) {}
std::string content; //alarmcfgwrapper使用 std::string content; //alarmcfgwrapper使用
bool isEnable; bool isEnable;
bool isAlarm; bool isAlarm;
bool isShow; bool isShow;
Item(const std::string& nameKey, const std::string& content, bool isEnable, bool isAlarm, bool isShow)
:nameKey(nameKey), content(content), isEnable(isEnable), isAlarm(isAlarm), isShow(isShow){}
//层供粉量配置使用 struct PowderSet //层供粉量配置使用 struct PowderSet
int start_layer; int start_layer;
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){}
// //
//IntData* m_Index; //编号 配合ConfigManager中的map int seqNo; //ScannerControlCfg使用
//IntData* m_SeqNo; int controlNo;
//IntData* m_ControlNo; int serialNo;
//IntData* m_SerialNo; int controlType;
//IntData* m_ControlType; std::string cardName;
//StrData* m_CardName; std::string cardIP;
//StrData* m_CardIP; //bool isEnable; //是否启动
//BoolData* m_IsEnable; //是否启动 bool hadAssign;
//BoolData* m_HadAssign; bool hadMatch;
//BoolData* m_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

@ -64,8 +64,26 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter<
//函数参数 //函数参数
std::list<Item> paramLst; // std::list<Item> paramLst; //
for (const ::stream::ParamInfo it : request.item()) { for (const ::stream::ParamInfo it : request.item()) {
paramLst.emplace_back(Item{ it.namekey(),it.strvalue() ,(DATATYPE)it.valuetype() Item temp{ it.namekey(),it.strvalue() ,(DATATYPE)it.valuetype() };
,it.context(),it.isenable(),it.isalarm(),it.isshow(),it.startlayer(),it.endlayer(),it.powder()}); //直接加到readData.its上面后续的请求无法收到不知道为啥
temp.content = it.context();
temp.isEnable = it.isenable();
temp.isAlarm = it.isalarm();
temp.isShow = it.isshow();
temp.start_layer = it.startlayer();
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上面后续的请求无法收到不知道为啥
} }
printf("客户端消息dataType:%d,nameKey:%s, strValue:%s,valueType:%d,lst:%zd\n", printf("客户端消息dataType:%d,nameKey:%s, strValue:%s,valueType:%d,lst:%zd\n",
@ -101,6 +119,16 @@ 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);
} }

View File

@ -76,8 +76,8 @@ bool RTC5Scanner::Init()
// m_SeqBit[i] = true; // m_SeqBit[i] = true;
//} //}
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
if ((m_ScannerControlCfg->m_SeqNo->GetValue() % 2) != 0) { if ((m_ScannerControlCfg->m_SeqNo % 2) != 0) {
m_IsLeftScan = true; m_IsLeftScan = true;
} }
else { else {
@ -104,7 +104,7 @@ bool RTC5Scanner::Init()
return false; return false;
} }
char buffer[512]; char buffer[512];
sprintf_s(buffer, sizeof(buffer), "%sSLM%d.ct5", g_AppPath.c_str(), m_ScannerControlCfg->m_SeqNo->GetValue()); sprintf_s(buffer, sizeof(buffer), "%sSLM%d.ct5", g_AppPath.c_str(), m_ScannerControlCfg->m_SeqNo );
string crtPath = string(buffer); string crtPath = string(buffer);
uint32_t dim = m_CorrectParamCfg->m_IsCorrectFile3D ? 3 : 2; uint32_t dim = m_CorrectParamCfg->m_IsCorrectFile3D ? 3 : 2;
error = n_load_correction_file(controlNo, crtPath.c_str(), 1, dim); error = n_load_correction_file(controlNo, crtPath.c_str(), 1, dim);
@ -195,7 +195,7 @@ void RTC5Scanner::LoadList(unsigned int listid, bool wait)
{ {
if (wait) { if (wait) {
while (!n_load_list(m_ScannerControlCfg->m_ControlNo->GetValue(), listid, 0)) { while (!n_load_list(m_ScannerControlCfg->m_ControlNo , listid, 0)) {
Sleep(20); Sleep(20);
if (BaseCtrl::IsStop()) { if (BaseCtrl::IsStop()) {
break; break;
@ -203,28 +203,28 @@ void RTC5Scanner::LoadList(unsigned int listid, bool wait)
} }
} }
else { else {
n_load_list(m_ScannerControlCfg->m_ControlNo->GetValue(), listid, 0); n_load_list(m_ScannerControlCfg->m_ControlNo , listid, 0);
} }
} }
void RTC5Scanner::EndList() void RTC5Scanner::EndList()
{ {
n_set_end_of_list(m_ScannerControlCfg->m_ControlNo->GetValue()); n_set_end_of_list(m_ScannerControlCfg->m_ControlNo );
} }
void RTC5Scanner::AutoChangeList() { void RTC5Scanner::AutoChangeList() {
n_auto_change(m_ScannerControlCfg->m_ControlNo->GetValue()); n_auto_change(m_ScannerControlCfg->m_ControlNo );
} }
void RTC5Scanner::ListExecute(unsigned int listid, bool wait) void RTC5Scanner::ListExecute(unsigned int listid, bool wait)
{ {
n_execute_list(m_ScannerControlCfg->m_ControlNo->GetValue(), listid); n_execute_list(m_ScannerControlCfg->m_ControlNo , listid);
unsigned int Busy(0), Pos(0); unsigned int Busy(0), Pos(0);
if (wait) { if (wait) {
do do
{ {
Sleep(10); Sleep(10);
n_get_status(m_ScannerControlCfg->m_ControlNo->GetValue(), Busy, Pos); n_get_status(m_ScannerControlCfg->m_ControlNo , Busy, Pos);
if (BaseCtrl::IsStop()) { if (BaseCtrl::IsStop()) {
break; break;
} }
@ -248,8 +248,8 @@ void RTC5Scanner::AddVector(double startx, double starty, double endx, double en
long lstarty = lround(bity1); long lstarty = lround(bity1);
long lendx = lround(bitx2); long lendx = lround(bitx2);
long lendy = lround(bity2); long lendy = lround(bity2);
n_jump_abs(m_ScannerControlCfg->m_ControlNo->GetValue(), lstartx, lstarty); n_jump_abs(m_ScannerControlCfg->m_ControlNo , lstartx, lstarty);
n_mark_abs(m_ScannerControlCfg->m_ControlNo->GetValue(), lendx, lendy); n_mark_abs(m_ScannerControlCfg->m_ControlNo , lendx, lendy);
} }
@ -264,7 +264,7 @@ void RTC5Scanner::JumpAbs(double x, double y)
long lx = lround(bitx1); long lx = lround(bitx1);
long ly = lround(bity1); long ly = lround(bity1);
n_jump_abs(m_ScannerControlCfg->m_ControlNo->GetValue(), lx, ly); n_jump_abs(m_ScannerControlCfg->m_ControlNo , lx, ly);
} }
void RTC5Scanner::MarkAbs(double x, double y) void RTC5Scanner::MarkAbs(double x, double y)
@ -278,7 +278,7 @@ void RTC5Scanner::MarkAbs(double x, double y)
long lx = lround(bitx1); long lx = lround(bitx1);
long ly = lround(bity1); long ly = lround(bity1);
n_mark_abs(m_ScannerControlCfg->m_ControlNo->GetValue(), lx, ly); n_mark_abs(m_ScannerControlCfg->m_ControlNo , lx, ly);
} }
@ -288,7 +288,7 @@ void RTC5Scanner::WaitListFree()
do do
{ {
Sleep(5); Sleep(5);
n_get_status(m_ScannerControlCfg->m_ControlNo->GetValue(), Busy, Pos); n_get_status(m_ScannerControlCfg->m_ControlNo , Busy, Pos);
if (BaseCtrl::IsStop()) { if (BaseCtrl::IsStop()) {
break; break;
} }
@ -300,7 +300,7 @@ void RTC5Scanner::ScanDebug()
{ {
SetAutoUpdateScanInfo(false); SetAutoUpdateScanInfo(false);
Sleep(200); Sleep(200);
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
unsigned int power = (unsigned int)(4095.0*m_PowerCompensateCfg->CalcPowerCompensate((float)m_ScanTestCfg->m_laser_power) / 100.0); unsigned int power = (unsigned int)(4095.0*m_PowerCompensateCfg->CalcPowerCompensate((float)m_ScanTestCfg->m_laser_power) / 100.0);
if (power > 4095)power = 4095; if (power > 4095)power = 4095;
double markspeed = m_kfactor*m_ScanParamCfg->m_mark_speed / 1000.0; double markspeed = m_kfactor*m_ScanParamCfg->m_mark_speed / 1000.0;
@ -326,7 +326,7 @@ void RTC5Scanner::ScanDebug()
void RTC5Scanner::ScanTestProc() { void RTC5Scanner::ScanTestProc() {
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
int shapeSize = m_ScanTestCfg->m_shape_size; int shapeSize = m_ScanTestCfg->m_shape_size;
switch (m_ScanTestCfg->m_debug_shape) { switch (m_ScanTestCfg->m_debug_shape) {
case Cross: { case Cross: {
@ -472,7 +472,7 @@ void RTC5Scanner::UpdateScanParamByCfg(ScanParamCfg* cfg)
unsigned int minJumpDelay = cfg->m_min_jump_delay / 10; unsigned int minJumpDelay = cfg->m_min_jump_delay / 10;
double jumpspeed = m_kfactor* cfg->m_jump_speed / 1000.0; double jumpspeed = m_kfactor* cfg->m_jump_speed / 1000.0;
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
n_set_scanner_delays(controlNo, jumpDelay, markDelay, polygonDelay); n_set_scanner_delays(controlNo, jumpDelay, markDelay, polygonDelay);
n_set_laser_delays(controlNo, laserOnDealy, laserOffDelay); n_set_laser_delays(controlNo, laserOnDealy, laserOffDelay);
n_set_delay_mode_list(controlNo, 1, 1, edgeLevel, minJumpDelay, (unsigned int)(cfg->m_jump_length_limit*m_kfactor)); n_set_delay_mode_list(controlNo, 1, 1, edgeLevel, minJumpDelay, (unsigned int)(cfg->m_jump_length_limit*m_kfactor));
@ -495,7 +495,7 @@ void RTC5Scanner::UpdateSetting()
unsigned int minJumpDelay = m_ScanParamCfg->m_min_jump_delay / 10; unsigned int minJumpDelay = m_ScanParamCfg->m_min_jump_delay / 10;
unsigned int power = 4095.0* m_PowerCompensateCfg->CalcPowerCompensate((float)m_ScanTestCfg->m_laser_power) / 100.0; unsigned int power = 4095.0* m_PowerCompensateCfg->CalcPowerCompensate((float)m_ScanTestCfg->m_laser_power) / 100.0;
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
double markspeed = m_kfactor*m_ScanParamCfg->m_mark_speed / 1000.0; double markspeed = m_kfactor*m_ScanParamCfg->m_mark_speed / 1000.0;
double jumpspeed = m_kfactor*m_ScanParamCfg->m_jump_speed / 1000.0; double jumpspeed = m_kfactor*m_ScanParamCfg->m_jump_speed / 1000.0;
n_write_da_x(controlNo, 1, power); //设置功率 n_write_da_x(controlNo, 1, power); //设置功率
@ -515,19 +515,19 @@ void RTC5Scanner::UpdateSetting()
void RTC5Scanner::SetScanSpeed(double fvalue) void RTC5Scanner::SetScanSpeed(double fvalue)
{ {
double speed = fvalue / 1000.0*m_kfactor; double speed = fvalue / 1000.0*m_kfactor;
n_set_mark_speed(m_ScannerControlCfg->m_ControlNo->GetValue(), speed); n_set_mark_speed(m_ScannerControlCfg->m_ControlNo , speed);
} }
void RTC5Scanner::SetPower(double watt) void RTC5Scanner::SetPower(double watt)
{ {
unsigned int power = 4095.0*watt / 100; unsigned int power = 4095.0*watt / 100;
if (power > 4095)power = 4095; if (power > 4095)power = 4095;
n_write_da_1_list(m_ScannerControlCfg->m_ControlNo->GetValue(), power); n_write_da_1_list(m_ScannerControlCfg->m_ControlNo , power);
} }
bool RTC5Scanner::StopWork() { bool RTC5Scanner::StopWork() {
n_stop_execution(m_ScannerControlCfg->m_ControlNo->GetValue()); n_stop_execution(m_ScannerControlCfg->m_ControlNo );
return true; return true;
} }
@ -548,7 +548,7 @@ void RTC5Scanner::UpdateSkyWriting(bool islist)
long laserOnShift = 0; long laserOnShift = 0;
unsigned int nprev = 0; unsigned int nprev = 0;
unsigned int npost = 0; unsigned int npost = 0;
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
switch (m_SkyWritingCfg->m_Mode) switch (m_SkyWritingCfg->m_Mode)
{ {
case 1: case 1:
@ -599,21 +599,21 @@ void RTC5Scanner::SetSkyWritingEnable(bool benable, bool islist)
UpdateSkyWriting(islist); UpdateSkyWriting(islist);
} }
else { else {
if (islist) n_set_sky_writing_mode_list(m_ScannerControlCfg->m_ControlNo->GetValue(), 0); if (islist) n_set_sky_writing_mode_list(m_ScannerControlCfg->m_ControlNo , 0);
else n_set_sky_writing_mode(m_ScannerControlCfg->m_ControlNo->GetValue(), 0); else n_set_sky_writing_mode(m_ScannerControlCfg->m_ControlNo , 0);
} }
} }
void RTC5Scanner::SetDefocus(float value) void RTC5Scanner::SetDefocus(float value)
{ {
long ds = value*m_zfactor; long ds = value*m_zfactor;
n_set_defocus_list(m_ScannerControlCfg->m_ControlNo->GetValue(), ds); n_set_defocus_list(m_ScannerControlCfg->m_ControlNo , ds);
} }
void RTC5Scanner::ListNop() { void RTC5Scanner::ListNop() {
n_list_nop(m_ScannerControlCfg->m_ControlNo->GetValue()); n_list_nop(m_ScannerControlCfg->m_ControlNo );
} }
@ -622,29 +622,29 @@ void RTC5Scanner::CheckAlarm()
{ {
if (!m_MachineCfg->m_IsIntelli->GetValue())return; if (!m_MachineCfg->m_IsIntelli->GetValue())return;
n_control_command(m_ScannerControlCfg->m_ControlNo->GetValue(), 1, 1, CurrentOperationStateLowAddr); n_control_command(m_ScannerControlCfg->m_ControlNo , 1, 1, CurrentOperationStateLowAddr);
Sleep(2); Sleep(2);
int xlowstate = n_get_value(m_ScannerControlCfg->m_ControlNo->GetValue(), 1); int xlowstate = n_get_value(m_ScannerControlCfg->m_ControlNo , 1);
bool IsInternalVoltagesNormalX = (xlowstate & 0x20000) ? true : false; bool IsInternalVoltagesNormalX = (xlowstate & 0x20000) ? true : false;
bool IsCriticalErrorX = (xlowstate & 0x2000) ? false : true; bool IsCriticalErrorX = (xlowstate & 0x2000) ? false : true;
bool IsScannerAndServoBoradTempNormalX = (xlowstate & 0x8000) ? true : false; bool IsScannerAndServoBoradTempNormalX = (xlowstate & 0x8000) ? true : false;
n_control_command(m_ScannerControlCfg->m_ControlNo->GetValue(), 1, 2, CurrentOperationStateLowAddr); n_control_command(m_ScannerControlCfg->m_ControlNo , 1, 2, CurrentOperationStateLowAddr);
Sleep(2); Sleep(2);
int ylowstate = n_get_value(m_ScannerControlCfg->m_ControlNo->GetValue(), 2); int ylowstate = n_get_value(m_ScannerControlCfg->m_ControlNo , 2);
bool IsInternalVoltagesNormalY = (ylowstate & 0x20000) ? true : false; bool IsInternalVoltagesNormalY = (ylowstate & 0x20000) ? true : false;
bool IsCriticalErrorY = (ylowstate & 0x2000) ? false : true; bool IsCriticalErrorY = (ylowstate & 0x2000) ? false : true;
bool IsScannerAndServoBoradTempNormalY = (ylowstate & 0x8000) ? true : false; bool IsScannerAndServoBoradTempNormalY = (ylowstate & 0x8000) ? true : false;
n_control_command(m_ScannerControlCfg->m_ControlNo->GetValue(), 1, 1, StopEventCode); n_control_command(m_ScannerControlCfg->m_ControlNo , 1, 1, StopEventCode);
Sleep(2); Sleep(2);
int xstopeven = n_get_value(m_ScannerControlCfg->m_ControlNo->GetValue(), 1); int xstopeven = n_get_value(m_ScannerControlCfg->m_ControlNo , 1);
n_control_command(m_ScannerControlCfg->m_ControlNo->GetValue(), 1, 2, StopEventCode); n_control_command(m_ScannerControlCfg->m_ControlNo , 1, 2, StopEventCode);
Sleep(2); Sleep(2);
int ystopeven = n_get_value(m_ScannerControlCfg->m_ControlNo->GetValue(), 2); int ystopeven = n_get_value(m_ScannerControlCfg->m_ControlNo , 2);
int seqNo = m_ScannerControlCfg->m_SeqNo->GetValue(); int seqNo = m_ScannerControlCfg->m_SeqNo ;
bool isAlarm = false; bool isAlarm = false;
stringstream ss; stringstream ss;
char buffer[256]; char buffer[256];
@ -716,7 +716,7 @@ void RTC5Scanner::UpdateScannerInfo()
{ {
if (!m_MachineCfg->m_IsIntelli->GetValue())return; if (!m_MachineCfg->m_IsIntelli->GetValue())return;
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
n_control_command(controlNo, 1, 1, ActualPositionAddr); n_control_command(controlNo, 1, 1, ActualPositionAddr);
Sleep(2); Sleep(2);
long xap = n_get_value(controlNo, 1); long xap = n_get_value(controlNo, 1);
@ -989,7 +989,7 @@ void RTC5Scanner::HeatingScannerRun()
sqlength, -sqlength, sqlength, -sqlength,
-sqlength, -sqlength -sqlength, -sqlength
}; };
int controlNo = m_ScannerControlCfg->m_ControlNo->GetValue(); int controlNo = m_ScannerControlCfg->m_ControlNo ;
double markspeed = m_kfactor* m_ScannerControlCfg->m_ScanCfgWrapper.m_ScanTestCfg.m_AutoHeatingScannerSpeed / 1000.0; double markspeed = m_kfactor* m_ScannerControlCfg->m_ScanCfgWrapper.m_ScanTestCfg.m_AutoHeatingScannerSpeed / 1000.0;
int sqsize = (sizeof(square) / sizeof(polygon)); int sqsize = (sizeof(square) / sizeof(polygon));
n_set_start_list(controlNo, 1); n_set_start_list(controlNo, 1);
@ -1027,5 +1027,5 @@ void RTC5Scanner::HeatingScannerRun()
void RTC5Scanner::ResetDefocus() void RTC5Scanner::ResetDefocus()
{ {
n_set_defocus(m_ScannerControlCfg->m_ControlNo->GetValue(), 0); n_set_defocus(m_ScannerControlCfg->m_ControlNo , 0);
} }

View File

@ -166,7 +166,7 @@ bool Scanner::BeginWork()
DWORD WINAPI Scanner::ScanProc(Scanner* _this) DWORD WINAPI Scanner::ScanProc(Scanner* _this)
{ {
if (_this) { if (_this) {
int seqNo = _this->m_ScannerControlCfg->m_SeqNo->GetValue(); int seqNo = _this->m_ScannerControlCfg->m_SeqNo ;
if (_this->m_MachineCfg->IsDataSeqStragegy()) if (_this->m_MachineCfg->IsDataSeqStragegy())
{ {
EnterCriticalSection(&m_SeqCS); EnterCriticalSection(&m_SeqCS);
@ -243,7 +243,7 @@ void Scanner::Clean()
EnterCriticalSection(&m_SeqCS); EnterCriticalSection(&m_SeqCS);
if (m_ScannerControlCfg){ if (m_ScannerControlCfg){
int seqNo = m_ScannerControlCfg->m_SeqNo->GetValue(); int seqNo = m_ScannerControlCfg->m_SeqNo ;
m_SeqDataUnFinishBit[seqNo] = false; m_SeqDataUnFinishBit[seqNo] = false;
m_SupportSeqDataUnFinishBit[seqNo] = false; m_SupportSeqDataUnFinishBit[seqNo] = false;
} }
@ -320,7 +320,7 @@ void Scanner::Scan(void)
SetSkyWritingEnable(isSkyWritingEnable, true); SetSkyWritingEnable(isSkyWritingEnable, true);
SetScanSpeed(laserSpeed); SetScanSpeed(laserSpeed);
int seqNo = m_ScannerControlCfg->m_SeqNo->GetValue(); int seqNo = m_ScannerControlCfg->m_SeqNo ;
g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserSpeed = laserSpeed; g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserSpeed = laserSpeed;
SetPower(laserPower); SetPower(laserPower);
g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserPower = paramSet->laser_set->laser_power; g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserPower = paramSet->laser_set->laser_power;
@ -480,7 +480,7 @@ void Scanner::ScanSeqV2() {
if (BaseCtrl::IsStop())return; if (BaseCtrl::IsStop())return;
EnterCriticalSection(&m_SeqCS); EnterCriticalSection(&m_SeqCS);
m_SupportSeqDataUnFinishBit[m_ScannerControlCfg->m_SeqNo->GetValue()] = false; m_SupportSeqDataUnFinishBit[m_ScannerControlCfg->m_SeqNo ] = false;
LeaveCriticalSection(&m_SeqCS); LeaveCriticalSection(&m_SeqCS);
while (true && (!BaseCtrl::IsStop())) { while (true && (!BaseCtrl::IsStop())) {
@ -640,7 +640,7 @@ void Scanner::ScanSeqV2() {
} }
else { else {
EnterCriticalSection(&m_SeqCS); EnterCriticalSection(&m_SeqCS);
m_SeqDataUnFinishBit[m_ScannerControlCfg->m_SeqNo->GetValue()] = false; m_SeqDataUnFinishBit[m_ScannerControlCfg->m_SeqNo ] = false;
int sb = m_SeqDataUnFinishBit.to_ulong(); int sb = m_SeqDataUnFinishBit.to_ulong();
if (sb == 0) { if (sb == 0) {
Printdbi = m_ZeroSeq.front(); Printdbi = m_ZeroSeq.front();
@ -680,13 +680,13 @@ void Scanner::ScanSeqV2() {
SetSkyWritingEnable(isSkyWritingEnable, true); SetSkyWritingEnable(isSkyWritingEnable, true);
SetScanSpeed(laserSpeed); SetScanSpeed(laserSpeed);
g_SystemInfo->m_StateBean.laserParams[m_ScannerControlCfg->m_SeqNo->GetValue() - 1]->laserSpeed = laserSpeed; g_SystemInfo->m_StateBean.laserParams[m_ScannerControlCfg->m_SeqNo - 1]->laserSpeed = laserSpeed;
SetPower(laserPower); SetPower(laserPower);
g_SystemInfo->m_StateBean.laserParams[m_ScannerControlCfg->m_SeqNo->GetValue() - 1]->laserPower = paramSet->laser_set->laser_power; g_SystemInfo->m_StateBean.laserParams[m_ScannerControlCfg->m_SeqNo - 1]->laserPower = paramSet->laser_set->laser_power;
if (m_CorrectParamCfg->m_IsDynamicFocus) { if (m_CorrectParamCfg->m_IsDynamicFocus) {
SetDefocus(ds); SetDefocus(ds);
g_SystemInfo->m_StateBean.laserParams[m_ScannerControlCfg->m_SeqNo->GetValue() - 1]->laserDefocus = ds; g_SystemInfo->m_StateBean.laserParams[m_ScannerControlCfg->m_SeqNo - 1]->laserDefocus = ds;
} }
EndList(); EndList();
ListExecute(1, nodebug); ListExecute(1, nodebug);
@ -853,7 +853,7 @@ void Scanner::ScanMass() {
} }
if (BaseCtrl::IsStop())return; if (BaseCtrl::IsStop())return;
int seqNo = m_ScannerControlCfg->m_SeqNo->GetValue(); int seqNo = m_ScannerControlCfg->m_SeqNo ;
EnterCriticalSection(&m_SeqCS); EnterCriticalSection(&m_SeqCS);
m_SupportSeqDataUnFinishBit[seqNo] = false; m_SupportSeqDataUnFinishBit[seqNo] = false;
LeaveCriticalSection(&m_SeqCS); LeaveCriticalSection(&m_SeqCS);
@ -1005,7 +1005,7 @@ void Scanner::ScanDataBlock(DataBlockInfo* Printdbi)
SetSkyWritingEnable(isSkyWritingEnable, true); SetSkyWritingEnable(isSkyWritingEnable, true);
SetScanSpeed(laserSpeed); SetScanSpeed(laserSpeed);
int seqNo = m_ScannerControlCfg->m_SeqNo->GetValue(); int seqNo = m_ScannerControlCfg->m_SeqNo ;
g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserSpeed = laserSpeed; g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserSpeed = laserSpeed;
SetPower(laserPower); SetPower(laserPower);
g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserPower = paramSet->laser_set->laser_power; g_SystemInfo->m_StateBean.laserParams[seqNo - 1]->laserPower = paramSet->laser_set->laser_power;

View File

@ -88,7 +88,7 @@ bool ScannerCtrl::Init() {
for (map<int, ScannerControlCfg*>::iterator scc = scannerControlCfgsMap->begin(); scc != scannerControlCfgsMap->end(); scc++) for (map<int, ScannerControlCfg*>::iterator scc = scannerControlCfgsMap->begin(); scc != scannerControlCfgsMap->end(); scc++)
{ {
ScannerControlCfg* cfg = scc->second; ScannerControlCfg* cfg = scc->second;
if (cfg->m_SerialNo->GetValue() == s->second) if (cfg->m_SerialNo == s->second)
{ {
find = true; find = true;
break; break;
@ -97,19 +97,19 @@ bool ScannerCtrl::Init() {
if (!find && flag < difSize) if (!find && flag < difSize)
{ {
ScannerControlCfg* cfg = new ScannerControlCfg(); ScannerControlCfg* cfg = new ScannerControlCfg();
cfg->m_SeqNo->SetValue(scannerControlCfgsMap->size() + 1); cfg->m_SeqNo=scannerControlCfgsMap->size() + 1;
cfg->m_CardName->SetValue("Laser" + to_string(cfg->m_SeqNo->GetValue())); cfg->m_CardName="Laser" + to_string(cfg->m_SeqNo);
cfg->m_ControlNo->SetValue(s->first); cfg->m_ControlNo = s->first;
cfg->m_ControlType->SetValue(m_MachineCfg->m_ScanControl->GetValue()); cfg->m_ControlType = m_MachineCfg->m_ScanControl->GetValue();
cfg->m_SerialNo->SetValue(s->second); cfg->m_SerialNo = s->second;
cfg->m_HadMatch->SetValue(false); cfg->m_HadMatch = false;
cfg->m_IsEnable->SetValue(true); cfg->m_IsEnable = true;
cfg->Init(); cfg->Init();
//m_Machine->InitScanParamBeforeFind(&cfg->m_ScanCfgWrapper); //m_Machine->InitScanParamBeforeFind(&cfg->m_ScanCfgWrapper);
ConfigManager::GetInstance()->GetScannerControlCfgDao()->Add(cfg); ConfigManager::GetInstance()->GetScannerControlCfgDao()->Add(cfg);
ConfigManager::GetInstance()->GetScannerControlCfgDao()->Maintain(cfg); ConfigManager::GetInstance()->GetScannerControlCfgDao()->Maintain(cfg);
ConfigManager::GetInstance()->GetScannerControlCfgs()->push_back(cfg); ConfigManager::GetInstance()->GetScannerControlCfgs()->push_back(cfg);
(*scannerControlCfgsMap)[cfg->m_SeqNo->GetValue()] = cfg; (*scannerControlCfgsMap)[cfg->m_SeqNo ] = cfg;
flag++; flag++;
} }
} }
@ -125,7 +125,7 @@ bool ScannerCtrl::Init() {
int index = 0; int index = 0;
for (map<int, ScannerControlCfg*>::iterator sit = scannerControlCfgsMap->begin(); sit != scannerControlCfgsMap->end(); sit++) { for (map<int, ScannerControlCfg*>::iterator sit = scannerControlCfgsMap->begin(); sit != scannerControlCfgsMap->end(); sit++) {
ScannerControlCfg* cfg = sit->second; ScannerControlCfg* cfg = sit->second;
int seqNo = cfg->m_SeqNo->GetValue(); int seqNo = cfg->m_SeqNo ;
if (m_IOCfgWrapper->m_LaserIOMap.find(seqNo) != m_IOCfgWrapper->m_LaserIOMap.end()) { if (m_IOCfgWrapper->m_LaserIOMap.find(seqNo) != m_IOCfgWrapper->m_LaserIOMap.end()) {
cfg->m_LaserRed = m_IOCfgWrapper->m_LaserIOMap[seqNo]->m_LaserRed; cfg->m_LaserRed = m_IOCfgWrapper->m_LaserIOMap[seqNo]->m_LaserRed;
cfg->m_LaserStart = m_IOCfgWrapper->m_LaserIOMap[seqNo]->m_LaserStart; cfg->m_LaserStart = m_IOCfgWrapper->m_LaserIOMap[seqNo]->m_LaserStart;
@ -778,7 +778,7 @@ void ScannerCtrl::DispatchDataBlock()
for (size_t scanIndex = 0; scanIndex < m_scan.size(); ++scanIndex) { for (size_t scanIndex = 0; scanIndex < m_scan.size(); ++scanIndex) {
Scanner* scanner = m_scan[scanIndex]; Scanner* scanner = m_scan[scanIndex];
scanner->m_JobStartTime = job->m_FirstStartTime; scanner->m_JobStartTime = job->m_FirstStartTime;
scanMap[scanner->GetConfig()->m_SeqNo->GetValue()] = scanner; scanMap[scanner->GetConfig()->m_SeqNo ] = scanner;
} }
m_DownSkinStopFlag = 1; m_DownSkinStopFlag = 1;
@ -1258,7 +1258,7 @@ void ScannerCtrl::DispatchDataBlock()
sstatus->m_ScanServoTempX = sxy.m_X.m_ServoBoardTemp; sstatus->m_ScanServoTempX = sxy.m_X.m_ServoBoardTemp;
sstatus->m_ScanTempY = sxy.m_Y.m_GalvanometerScannerTemp; sstatus->m_ScanTempY = sxy.m_Y.m_GalvanometerScannerTemp;
sstatus->m_ScanServoTempY = sxy.m_Y.m_ServoBoardTemp; sstatus->m_ScanServoTempY = sxy.m_Y.m_ServoBoardTemp;
sstatus->m_ScanId = m_scan[scanIndex]->GetConfig()->m_SeqNo->GetValue(); sstatus->m_ScanId = m_scan[scanIndex]->GetConfig()->m_SeqNo;
sstatus->m_JobId = jobBean->m_Id; sstatus->m_JobId = jobBean->m_Id;
sstatus->m_LayerIndex = layerindex; sstatus->m_LayerIndex = layerindex;
sstatus->m_ActualPositionX = sxy.m_X.m_ActualPosition; sstatus->m_ActualPositionX = sxy.m_X.m_ActualPosition;
@ -1275,7 +1275,7 @@ void ScannerCtrl::DispatchDataBlock()
if (m_scan[scanIndex]->GetConfig()->m_ScanCfgWrapper.m_CorrectParamCfg.m_IsDynamicFocus) { if (m_scan[scanIndex]->GetConfig()->m_ScanCfgWrapper.m_CorrectParamCfg.m_IsDynamicFocus) {
FocusStatus* fs = new FocusStatus(); FocusStatus* fs = new FocusStatus();
fs->m_ScanId = m_scan[scanIndex]->GetConfig()->m_SeqNo->GetValue(); fs->m_ScanId = m_scan[scanIndex]->GetConfig()->m_SeqNo ;
fs->m_JobId = jobBean->m_Id; fs->m_JobId = jobBean->m_Id;
fs->m_LayerIndex = layerindex; fs->m_LayerIndex = layerindex;
time(&fs->m_InsertTime); time(&fs->m_InsertTime);
@ -1399,7 +1399,7 @@ void ScannerCtrl::DispatchTestDataBlock()
for (size_t scanIndex = 0; scanIndex < m_scan.size(); ++scanIndex) { for (size_t scanIndex = 0; scanIndex < m_scan.size(); ++scanIndex) {
Scanner* scanner = m_scan[scanIndex]; Scanner* scanner = m_scan[scanIndex];
scanMap[scanner->GetConfig()->m_SeqNo->GetValue()] = scanner; scanMap[scanner->GetConfig()->m_SeqNo ] = scanner;
m_scan[scanIndex]->Clean(); m_scan[scanIndex]->Clean();
} }
for (size_t i = 0; i < m_scan.size(); i++) for (size_t i = 0; i < m_scan.size(); i++)
@ -1574,7 +1574,7 @@ void ScannerCtrl::DispatchModelDataBlock(int partId, string scanType, float powe
map<int, Scanner*> scanMap; map<int, Scanner*> scanMap;
for (size_t scanIndex = 0; scanIndex < m_scan.size(); ++scanIndex) { for (size_t scanIndex = 0; scanIndex < m_scan.size(); ++scanIndex) {
Scanner* scanner = m_scan[scanIndex]; Scanner* scanner = m_scan[scanIndex];
scanMap[scanner->GetConfig()->m_SeqNo->GetValue()] = scanner; scanMap[scanner->GetConfig()->m_SeqNo ] = scanner;
m_scan[scanIndex]->Clean(); m_scan[scanIndex]->Clean();
} }
@ -1812,7 +1812,7 @@ void ScannerCtrl::RemoveScanner(int seq)
{ {
for (vector<Scanner*>::iterator it = m_scan.begin(); it != m_scan.end();) { for (vector<Scanner*>::iterator it = m_scan.begin(); it != m_scan.end();) {
Scanner* s = (*it); Scanner* s = (*it);
if (s->GetConfig()->m_SeqNo->GetValue() == seq) if (s->GetConfig()->m_SeqNo == seq)
{ {
delete s; delete s;
it = m_scan.erase(it); it = m_scan.erase(it);
@ -2017,7 +2017,7 @@ void ScannerCtrl::SendToClients() {
auto iter = Scanner::m_CurrentSerio.begin(); auto iter = Scanner::m_CurrentSerio.begin();
while (iter != Scanner::m_CurrentSerio.end()) { while (iter != Scanner::m_CurrentSerio.end()) {
lst.emplace_back(Item{ to_string(iter->first), to_string(iter->second), iUINT }); lst.emplace_back(Item(to_string(iter->first), to_string(iter->second), iUINT ));
++iter; ++iter;
} }

View File

@ -959,7 +959,7 @@ void Calibration::GraftRun()
float mminy = rt.y; float mminy = rt.y;
float mmaxy = rt.y + rt.height; float mmaxy = rt.y + rt.height;
if (mminx >lminx && lmaxx>mmaxx && mminy >lminy && lmaxy > mmaxy) { if (mminx >lminx && lmaxx>mmaxx && mminy >lminy && lmaxy > mmaxy) {
matchLaser = (*cfgs)[lindex]->m_SeqNo->GetValue(); matchLaser = (*cfgs)[lindex]->m_SeqNo ;
break; break;
} }
} }
@ -976,7 +976,7 @@ void Calibration::GraftRun()
float mminy = rt2.y; float mminy = rt2.y;
float mmaxy = rt2.y + rt2.height; float mmaxy = rt2.y + rt2.height;
if (mminx > lminx && lmaxx > mmaxx && mminy > lminy && lmaxy > mmaxy) { if (mminx > lminx && lmaxx > mmaxx && mminy > lminy && lmaxy > mmaxy) {
dataLaser = (*cfgs)[lindex]->m_SeqNo->GetValue(); dataLaser = (*cfgs)[lindex]->m_SeqNo ;
break; break;
} }
} }

View File

@ -121,9 +121,9 @@ int H3DFileProcessor::Process(string jobfile)
if ((sf->dimension->xmin >= cfg_xmin) && (sf->dimension->xmax <= cfg_xmax) && (sf->dimension->ymin >= cfg_ymin) && (sf->dimension->ymax <= cfg_ymax)) { if ((sf->dimension->xmin >= cfg_xmin) && (sf->dimension->xmax <= cfg_xmax) && (sf->dimension->ymin >= cfg_ymin) && (sf->dimension->ymax <= cfg_ymax)) {
canSelectIndexs.push(laserIndex); canSelectIndexs.push(laserIndex);
if (!hasSelected[cfg->m_SeqNo->GetValue()]) { if (!hasSelected[cfg->m_SeqNo ]) {
metadata->m_FieldRefScanLaser[sf->id] = cfg; metadata->m_FieldRefScanLaser[sf->id] = cfg;
hasSelected[cfg->m_SeqNo->GetValue()] = 1; hasSelected[cfg->m_SeqNo ] = 1;
hasfind = true; hasfind = true;
break; break;
} }
@ -278,7 +278,7 @@ int H3DFileProcessor::Process(string jobfile)
} }
if (laserCfg) { if (laserCfg) {
db->cno = laserCfg->m_SeqNo->GetValue(); db->cno = laserCfg->m_SeqNo ;
} }
} }
else { else {

View File

@ -796,7 +796,7 @@ void XMLCALL JobMetaData::EndElement(void* userData, const XML_Char* name)
} }
if (laserCfg) { if (laserCfg) {
job->parseAssist.lastDataBlock->cno = laserCfg->m_SeqNo->GetValue(); job->parseAssist.lastDataBlock->cno = laserCfg->m_SeqNo ;
} }
} }
} }
@ -1033,9 +1033,9 @@ void XMLCALL JobMetaData::EndElement(void* userData, const XML_Char* name)
if ((sf->dimension->xmin >= cfg_xmin) && (sf->dimension->xmax <= cfg_xmax) && (sf->dimension->ymin >= cfg_ymin) && (sf->dimension->ymax <= cfg_ymax)) { if ((sf->dimension->xmin >= cfg_xmin) && (sf->dimension->xmax <= cfg_xmax) && (sf->dimension->ymin >= cfg_ymin) && (sf->dimension->ymax <= cfg_ymax)) {
canSelectIndexs.push(laserIndex); canSelectIndexs.push(laserIndex);
if (!hasSelected[cfg->m_SeqNo->GetValue()]) { if (!hasSelected[cfg->m_SeqNo ]) {
job->m_FieldRefScanLaser[sf->id] = cfg; job->m_FieldRefScanLaser[sf->id] = cfg;
hasSelected[cfg->m_SeqNo->GetValue()] = 1; hasSelected[cfg->m_SeqNo ] = 1;
hasfind = true; hasfind = true;
break; break;
} }

View File

@ -458,7 +458,7 @@ void MetaData::ReCalcEvaTime()
sum = markMil + jumpMil + hatching + jumpdelay + markdelay + 20.0 + flag; sum = markMil + jumpMil + hatching + jumpdelay + markdelay + 20.0 + flag;
datablock->scanTime = sum; datablock->scanTime = sum;
// milsec += sum; // milsec += sum;
layer->estimateTimeMap[laserCfg->m_SeqNo->GetValue()] += sum; layer->estimateTimeMap[laserCfg->m_SeqNo ] += sum;
} }
double max = 0.0; double max = 0.0;
for (map<int, double>::iterator it = layer->estimateTimeMap.begin(); it != layer->estimateTimeMap.end(); it++) { for (map<int, double>::iterator it = layer->estimateTimeMap.begin(); it != layer->estimateTimeMap.end(); it++) {

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -48,6 +48,15 @@ message ParamInfo{
int32 startLayer = 8; //使 struct PowderSet int32 startLayer = 8; //使 struct PowderSet
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 { //
@ -135,9 +144,174 @@ message ComResponce{
bytes data = 1; bytes data = 1;
} }
//ScannerCrtlCfg结构体
message ScannerCrtlCfgResp{
repeated ScannerCrtlCfgData scannerCfg = 1;
}
message ScannerCrtlCfgData{
int32 seqNo = 1;
repeated FixPointData fixPointData = 2;
ScanParamCfg scanParamCfg = 3;
ScanParamCfg hatchingParams = 4;
ScanParamCfg borderParams = 5;
ScanParamCfg supportParams = 6;
CorrectParamCfg correctParamCfg = 7;
ScanTestCfg scanTestCfg = 8;
SkyWritingCfg skyWritingCfg = 9;
repeated PowerCompensate powerCompensate = 10;
repeated TimePowerCompensate tPowerCompensate = 11;
int32 controlNo = 12;
int32 serialNo = 13;
int32 controlType = 14;
bytes cardName = 15;
bytes cardIP = 16;
bool isEnable = 17; //
bool hadAssign = 18;
bool hadMatch = 19;
}
message FixPointData{
int32 id = 1;
int32 cno = 2;
float pointX = 3;
float pointY = 4;
uint32 duration = 5;
}
message ScanParamCfg{
int32 edgeLevel = 1;
int32 edgeLevelMin = 2;
int32 edgeLevelMax = 3;
uint32 jumpDelay = 4;
uint32 jumpDelayMin = 5;
uint32 jumpDelayMax = 6;
uint32 scanDelay = 7;
uint32 scanDelayMin = 8;
uint32 scanDelayMax = 9;
uint32 polygonDelay = 10;
uint32 polygonDelayMin = 11;
uint32 polygonDelayMax = 12;
int64 laseroffDelay = 13;
int64 laseroffDelayMin = 14;
int64 laseroffDelayMax = 15;
int64 laseronDelay = 16;
int64 laseronDelayMin = 17;
int64 laseronDelayMax = 18;
uint32 minJumpDelay = 19;
uint32 minJumpDelayMin = 20;
uint32 minJumpDelayMax = 21;
uint32 jumpLengthLimit = 22;
uint32 jumpLengthLimitMin = 23;
uint32 jumpLengthLimitMax = 24;
double jumpSpeed = 25;
double jumpSpeedMin = 26;
double jumpSpeedMax = 27;
double markSpeed = 28;
double markSpeedMin = 29;
double markSpeedMax = 30;
}
message CorrectParamCfg{
double xmeasureMin = 1; //x可打印最小位置
double xmeasureMax = 2; //x可打印最大位置
double ymeasureMin = 3; //y可打印最小位置
double ymeasureMax = 4; //y可打印最大位置
double xposfix = 5; //x位置修正
double yposfix = 6; //y位置修正
double scanAngle = 7; //
double scanAngleMin = 8;
double scanAngleMax = 9;
double fixAngle = 10; //
double fixAngleMin = 11;
double fixAngleMax = 12;
double xcorrect = 13; //x尺寸修正
double ycorrect = 14; //y尺寸修正
double xcorrectMin = 15;
double xcorrectMax = 16;
double ycorrectMin = 17;
double ycorrectMax = 18;
double realXOffset = 19;
double realYOffset = 20;
double factorK = 21;
bool isCorrectFile3D = 22;
bool isDynamicFocus = 23; //
double defocusRatio = 24; //
double defocusRatioMin = 25;
double defocusRatioMax = 26;
}
message ScanTestCfg{
int32 debugShape = 1;
int32 shapeSize = 2;
int32 shapeSizeMin = 3;
int32 shape_size_max = 4;
int32 laser_power = 5;
int32 laser_power_min = 6;
int32 laser_power_max = 7;
double defocus = 8;
double defocus_min = 9;
double defocus_max = 10;
bool is_cycle = 11;
double cross_x = 12;
double cross_y = 13;
double z_distance = 14;
bool isAutoHeatingScanner = 15; //
uint32 autoHeatingScannerMinutes = 16;
uint32 autoHeatingScannerSize = 17;
double autoHeatingScannerSpeed = 18;
double mark_test_start_x = 19;
double mark_test_start_y = 20;
double mark_test_end_x = 21;
double mark_test_end_y = 22;
}
message SkyWritingCfg{
bool isEnable = 1;
double timelag = 2;
double timelagMin = 3;
double timelagMax = 4;
int64 laserOnShift = 5;
int64 laserOnShiftMin = 6;
int64 laserOnShiftMax = 7;
uint32 nprev = 8;
uint32 nprevMin =9;
uint32 nprevMax = 10;
uint32 npost = 11;
uint32 npostMin = 12;
uint32 npostMax = 13;
int32 mode = 14;
double limite = 15;
double limiteMin = 16;
double limiteMax = 17;
}
message PowerCompensate{
int32 cno = 1;
int32 percent = 2;
float value = 3;
float value_min = 4;
float value_max = 5;
}
message TimePowerCompensate{
int32 id = 1;
int32 cno = 2;
uint32 startMinute = 3;
uint32 endMinute = 4;
float compensate = 5;
}
service Stream { service Stream {
rpc Simple(RequestInfo) returns (ResponseAny) {} // rpc Simple(RequestInfo) returns (ResponseAny) {} //
rpc ServerStream (RequestInfo) returns (stream ResponseInfo) {} // rpc ServerStream (RequestInfo) returns (stream ResponseInfo) {} //
rpc ClientStream (stream RequestInfo) returns (ResponseInfo) {} // rpc ClientStream (stream RequestInfo) returns (ResponseInfo) {} //
rpc AllStream (stream RequestInfo) returns (stream ResponseInfo) {} // rpc AllStream (stream RequestInfo) returns (stream ResponseInfo) {} //
} }

View File

@ -90,6 +90,11 @@ 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());
@ -185,18 +190,21 @@ void DataHandle::ParamReadUsage() {
printf(" 37: " COLOR_YELLOW "print pausealarm cfg param data...\n" COLOR_RESET); printf(" 37: " COLOR_YELLOW "print pausealarm cfg param data...\n" COLOR_RESET);
printf(" 38: " COLOR_YELLOW "print warnalarm cfg param data...\n" COLOR_RESET); printf(" 38: " COLOR_YELLOW "print warnalarm cfg param data...\n" COLOR_RESET);
printf(" 39: " COLOR_YELLOW "print powder cfg param data...\n" COLOR_RESET); printf(" 39: " COLOR_YELLOW "print powder cfg param data...\n" COLOR_RESET);
printf(" 40: " COLOR_YELLOW "print powder cfg param data...\n" COLOR_RESET);
printf(" 41: " COLOR_YELLOW "print scaner ctrl cfg param data...\n" COLOR_RESET);
printf(" 42: " COLOR_YELLOW "print moldcfg param data...\n" COLOR_RESET);
printf(" 43: " COLOR_YELLOW "print loadcfg param data...\n" COLOR_RESET);
printf(" 44: " COLOR_YELLOW "print armcfgparam data...\n" COLOR_RESET);
printf(" 45: " COLOR_YELLOW "print supplycfgparam data...\n" COLOR_RESET);
printf(" 46: " COLOR_YELLOW "print cleancfgparam data...\n" COLOR_RESET);
printf(" 47: " COLOR_YELLOW "print elecfgparam data...\n" COLOR_RESET);
printf(" 48: " COLOR_YELLOW "print loadparamrsp data...\n" COLOR_RESET);
printf(" 49: " COLOR_YELLOW "print scan ctrl state data...\n" COLOR_RESET);
printf(" 50: " COLOR_YELLOW "print scan ctrl Param data...\n" COLOR_RESET);
printf(" 51: " COLOR_YELLOW "print xy scan state data...\n" COLOR_RESET);
printf(" 52: " COLOR_YELLOW "print camera param data...\n" COLOR_RESET);
printf(" 40: " COLOR_YELLOW "print moldcfg param data...\n" COLOR_RESET);
printf(" 41: " COLOR_YELLOW "print loadcfg param data...\n" COLOR_RESET);
printf(" 42: " COLOR_YELLOW "print armcfgparam data...\n" COLOR_RESET);
printf(" 43: " COLOR_YELLOW "print supplycfgparam data...\n" COLOR_RESET);
printf(" 44: " COLOR_YELLOW "print cleancfgparam data...\n" COLOR_RESET);
printf(" 45: " COLOR_YELLOW "print elecfgparam data...\n" COLOR_RESET);
printf(" 46: " COLOR_YELLOW "print loadparamrsp data...\n" COLOR_RESET);
printf(" 47: " COLOR_YELLOW "print scan ctrl state data...\n" COLOR_RESET);
printf(" 48: " COLOR_YELLOW "print scan ctrl Param data...\n" COLOR_RESET);
printf(" 49: " COLOR_YELLOW "print xy scan state data...\n" COLOR_RESET);
printf(" 50: " COLOR_YELLOW "print camera param data...\n" COLOR_RESET);
} }
int DataHandle::Request(int index) { int DataHandle::Request(int index) {
@ -235,7 +243,7 @@ int DataHandle::Request(int index) {
ParamReadUsage(); ParamReadUsage();
} }
else if (userInput.find("push") != string::npos) { else if (userInput.find("push") != string::npos) {
UpdateParam(userInput); UpdateParamToService(userInput);
} }
else { else {
ParamRequest(ConverType::TryToI(userInput)); ParamRequest(ConverType::TryToI(userInput));
@ -264,6 +272,18 @@ void DataHandle::ParamRequest(int index) {
if (index == VERSIONRSP) { if (index == VERSIONRSP) {
PushMsg(VERSIONREQ); //获取版本信息 PushMsg(VERSIONREQ); //获取版本信息
} }
if (index == SCANERCTRLCFGPARAM) {
::stream::ResponseAny resp;
stream::ScannerCrtlCfgResp result;
WriteData wdata{ SCANERCTRLCFG };
m_streamClient->Request(wdata, &resp);
if (resp.data().Is<stream::ScannerCrtlCfgResp>()) {
resp.data().UnpackTo(&result);
PrintScanerCfg(result);
}
index = -1;
}
else if (index >= PARAMLIMITCFGPARAM && index <= ELECFGPARAM) { else if (index >= PARAMLIMITCFGPARAM && index <= ELECFGPARAM) {
PushMsg(REQUEST); PushMsg(REQUEST);
} }
@ -289,8 +309,62 @@ void DataHandle::ParamRequest(int index) {
} }
void DataHandle::PrintScanerCfg(const stream::ScannerCrtlCfgResp& result) {
result.scannercfg().size();
for (auto& rsp : result.scannercfg()) {
printf("seqNo:%d\n",rsp.seqno());
printf("controlno:%d,serialno:%d,controlType:%d,cardname:%s,cardip:%s,isenable:%d,hadassign:%d,hadmatch:%d\n",
rsp.controlno(), rsp.serialno(), rsp.controltype(), rsp.cardname().data(), rsp.cardip().data(), rsp.isenable(), rsp.hadassign(), rsp.hadmatch());
for (auto& fp : rsp.fixpointdata()) {
printf("(pixpoint)id:%d,cno:%d,pointx:%f,pointy:%f,duration:%d\n"
, fp.id(), fp.cno(), fp.pointx(), fp.pointy(), fp.duration());
}
//打印部分内容
auto& spc = rsp.scanparamcfg();
printf("(scanparamcfg)edgelevel:%d,edgelevelmin:%d,edgelevelmax:%d,jumpDelay:%u\n",
spc.edgelevel(), spc.edgelevelmin(), spc.edgelevelmax(), spc.jumpdelay());
auto& hp = rsp.hatchingparams();
printf("(hatchingparams)edgelevel:%d,edgelevelmin:%d,edgelevelmax:%d,jumpDelay:%u\n",
hp.edgelevel(), hp.edgelevelmin(), hp.edgelevelmax(), hp.jumpdelay());
auto& bp = rsp.borderparams();
printf("(borderParams)edgelevel:%d,edgelevelmin:%d,edgelevelmax:%d,jumpDelay:%u\n",
hp.edgelevel(), hp.edgelevelmin(), hp.edgelevelmax(), hp.jumpdelay());
auto& sp = rsp.supportparams();
printf("(supportparams)edgelevel:%d,edgelevelmin:%d,edgelevelmax:%d,jumpDelay:%u\n",
sp.edgelevel(), sp.edgelevelmin(), sp.edgelevelmax(), sp.jumpdelay());
auto& cpc = rsp.correctparamcfg();
printf("(correctparamcfg)xmeasuremin:%.3f,xmeasuremax:%.3f,ymeasuremin:%.3f,ymeasuremax:%.3f\n",
cpc.xmeasuremin(), cpc.xmeasuremax(), cpc.ymeasuremin(), cpc.ymeasuremax());
auto& stc = rsp.scantestcfg();
printf("(scantestcfg)debugshape:%d,shapesize:%d,shapesizemin:%d,shape_size_max:%d\n",
stc.debugshape(), stc.shapesize(), stc.shapesizemin(), stc.shape_size_max());
auto& swc = rsp.skywritingcfg();
printf("(skywritingcfg)debugshape:%d,shapesize:%.3f,shapesizemin:%.3f,shape_size_max:%.3f\n",
swc.isenable(), swc.timelag(), swc.timelagmin(), swc.timelagmax());
for (auto& pc : rsp.powercompensate()) {
printf("(powercompensate)cno:%d,percent:%d,value:%.3f,value_min:%.3f,value_max:%.3f\n",
pc.cno(), pc.percent(), pc.value(), pc.value_min(),pc.value_max());
}
for (auto& tpc : rsp.tpowercompensate()) {
printf("(tpowercompensate)cno:%d,id:%d,value:%u,value_min:%u,value_max:%.3f\n",
tpc.cno(), tpc.id(), tpc.startminute(), tpc.endminute(), tpc.compensate());
}
}
}
//选择一个参数更新到服务 //选择一个参数更新到服务
void DataHandle::UpdateParam(const string& input) { void DataHandle::UpdateParamToService(const string& input) {
WriteData writeData; WriteData writeData;
int index = ConverType::TryToI(input.substr(5)); int index = ConverType::TryToI(input.substr(5));
switch (index) { switch (index) {
@ -338,6 +412,8 @@ void DataHandle::UpdateParam(const string& input) {
writeData.items.emplace_back(Item{"","",UNKNOW,"",0,0,0,1,100,2}); writeData.items.emplace_back(Item{"","",UNKNOW,"",0,0,0,1,100,2});
PushMsg(writeData); PushMsg(writeData);
break; break;
case SCANERCTRLCFGPARAM:
break;
case ELECFGPARAM: case ELECFGPARAM:
break; break;
case LOADPARAMRSP: case LOADPARAMRSP:

View File

@ -34,7 +34,7 @@ public:
void PurifierTest(); //净化器功能测试 void PurifierTest(); //净化器功能测试
void ConfigTest(); //配置功能测试 void ConfigTest(); //配置功能测试
void UpdateParam(const string& input); void UpdateParamToService(const string& input);
void Usage(); void Usage();
void ParamReadUsage(); void ParamReadUsage();
@ -44,7 +44,7 @@ public:
private: private:
void DataCallBackHandle(const ReadData& msg); void DataCallBackHandle(const ReadData& msg);
void PrintValue(const ReadData& msg); void PrintValue(const ReadData& msg);
void PrintScanerCfg(const stream::ScannerCrtlCfgResp& result); //打印config的特殊配置
private: private:
DataCallBack m_dataCallBack; DataCallBack m_dataCallBack;
StreamClient* m_streamClient; StreamClient* m_streamClient;

View File

@ -51,6 +51,8 @@ enum READTYPE {
PAUSEALARMCFGPARAM, //AlarmCfgWrapper pause参数 PAUSEALARMCFGPARAM, //AlarmCfgWrapper pause参数
WARNALARMCFGPARAM, //AlarmCfgWrapper warn参数 WARNALARMCFGPARAM, //AlarmCfgWrapper warn参数
POWDERSETPARAM, //PowderSet 参数 POWDERSETPARAM, //PowderSet 参数
SCANNERCONTROLCFGPARAM, //ScannerControlCfg 参数
SCANERCTRLCFGPARAM, //scanerctrlcfg 参数
MOLDCFGPARAM, MOLDCFGPARAM,
LOADCFGPARAM, LOADCFGPARAM,
@ -103,6 +105,16 @@ 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 {
@ -145,6 +157,7 @@ enum WRITETYPE {
COMMUNICATIONCFG, COMMUNICATIONCFG,
ALARMCFG, ALARMCFG,
POWDERSET, POWDERSET,
SCANERCTRLCFG,
LOADPARAM, //装载参数 LOADPARAM, //装载参数
SCANCTRLFUNC, //振镜控制函数 SCANCTRLFUNC, //振镜控制函数

View File

@ -71,11 +71,11 @@ void StreamClient::AllStream() {
while (!m_readQuitFlag && stream->Read(&readInfo)) { while (!m_readQuitFlag && stream->Read(&readInfo)) {
ReadData readData; ReadData readData;
readData.dataType = (READTYPE)readInfo.datatype(); readData.dataType = (READTYPE)readInfo.datatype();
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.startlayer(),it.endlayer(),it.powder(),it.seqno(),it.controlno(),it.serialno()
,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());
} }
@ -110,7 +110,6 @@ void StreamClient::AllStream() {
} }
stream->Write(request); stream->Write(request);
//printf("write code:%d\n", ret);
} }
else { else {
std::this_thread::sleep_for(std::chrono::milliseconds(100)); std::this_thread::sleep_for(std::chrono::milliseconds(100));

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -37,7 +37,7 @@ enum DATAHANDLE {
message ParamInfo{ message ParamInfo{
bytes nameKey = 1; //key bytes nameKey = 1; //key
bytes strValue = 2; //value bytes strValue = 2; //value
TYPE valueType = 3; // TYPE valueType = 3; //
bytes context = 4; //alarmcfg 使 bytes context = 4; //alarmcfg 使
@ -48,6 +48,15 @@ message ParamInfo{
int32 startLayer = 8; //使 struct PowderSet int32 startLayer = 8; //使 struct PowderSet
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 { //
@ -135,6 +144,168 @@ message ComResponce{
bytes data = 1; bytes data = 1;
} }
//ScannerCrtlCfg结构体
message ScannerCrtlCfgResp{
repeated ScannerCrtlCfgData scannerCfg = 1;
}
message ScannerCrtlCfgData{
int32 seqNo = 1;
repeated FixPointData fixPointData = 2;
ScanParamCfg scanParamCfg = 3;
ScanParamCfg hatchingParams = 4;
ScanParamCfg borderParams = 5;
ScanParamCfg supportParams = 6;
CorrectParamCfg correctParamCfg = 7;
ScanTestCfg scanTestCfg = 8;
SkyWritingCfg skyWritingCfg = 9;
repeated PowerCompensate powerCompensate = 10;
repeated TimePowerCompensate tPowerCompensate = 11;
int32 controlNo = 12;
int32 serialNo = 13;
int32 controlType = 14;
bytes cardName = 15;
bytes cardIP = 16;
bool isEnable = 17; //
bool hadAssign = 18;
bool hadMatch = 19;
}
message FixPointData{
int32 id = 1;
int32 cno = 2;
float pointX = 3;
float pointY = 4;
uint32 duration = 5;
}
message ScanParamCfg{
int32 edgeLevel = 1;
int32 edgeLevelMin = 2;
int32 edgeLevelMax = 3;
uint32 jumpDelay = 4;
uint32 jumpDelayMin = 5;
uint32 jumpDelayMax = 6;
uint32 scanDelay = 7;
uint32 scanDelayMin = 8;
uint32 scanDelayMax = 9;
uint32 polygonDelay = 10;
uint32 polygonDelayMin = 11;
uint32 polygonDelayMax = 12;
int64 laseroffDelay = 13;
int64 laseroffDelayMin = 14;
int64 laseroffDelayMax = 15;
int64 laseronDelay = 16;
int64 laseronDelayMin = 17;
int64 laseronDelayMax = 18;
uint32 minJumpDelay = 19;
uint32 minJumpDelayMin = 20;
uint32 minJumpDelayMax = 21;
uint32 jumpLengthLimit = 22;
uint32 jumpLengthLimitMin = 23;
uint32 jumpLengthLimitMax = 24;
double jumpSpeed = 25;
double jumpSpeedMin = 26;
double jumpSpeedMax = 27;
double markSpeed = 28;
double markSpeedMin = 29;
double markSpeedMax = 30;
}
message CorrectParamCfg{
double xmeasureMin = 1; //x可打印最小位置
double xmeasureMax = 2; //x可打印最大位置
double ymeasureMin = 3; //y可打印最小位置
double ymeasureMax = 4; //y可打印最大位置
double xposfix = 5; //x位置修正
double yposfix = 6; //y位置修正
double scanAngle = 7; //
double scanAngleMin = 8;
double scanAngleMax = 9;
double fixAngle = 10; //
double fixAngleMin = 11;
double fixAngleMax = 12;
double xcorrect = 13; //x尺寸修正
double ycorrect = 14; //y尺寸修正
double xcorrectMin = 15;
double xcorrectMax = 16;
double ycorrectMin = 17;
double ycorrectMax = 18;
double realXOffset = 19;
double realYOffset = 20;
double factorK = 21;
bool isCorrectFile3D = 22;
bool isDynamicFocus = 23; //
double defocusRatio = 24; //
double defocusRatioMin = 25;
double defocusRatioMax = 26;
}
message ScanTestCfg{
int32 debugShape = 1;
int32 shapeSize = 2;
int32 shapeSizeMin = 3;
int32 shape_size_max = 4;
int32 laser_power = 5;
int32 laser_power_min = 6;
int32 laser_power_max = 7;
double defocus = 8;
double defocus_min = 9;
double defocus_max = 10;
bool is_cycle = 11;
double cross_x = 12;
double cross_y = 13;
double z_distance = 14;
bool isAutoHeatingScanner = 15; //
uint32 autoHeatingScannerMinutes = 16;
uint32 autoHeatingScannerSize = 17;
double autoHeatingScannerSpeed = 18;
double mark_test_start_x = 19;
double mark_test_start_y = 20;
double mark_test_end_x = 21;
double mark_test_end_y = 22;
}
message SkyWritingCfg{
bool isEnable = 1;
double timelag = 2;
double timelagMin = 3;
double timelagMax = 4;
int64 laserOnShift = 5;
int64 laserOnShiftMin = 6;
int64 laserOnShiftMax = 7;
uint32 nprev = 8;
uint32 nprevMin =9;
uint32 nprevMax = 10;
uint32 npost = 11;
uint32 npostMin = 12;
uint32 npostMax = 13;
int32 mode = 14;
double limite = 15;
double limiteMin = 16;
double limiteMax = 17;
}
message PowerCompensate{
int32 cno = 1;
int32 percent = 2;
float value = 3;
float value_min = 4;
float value_max = 5;
}
message TimePowerCompensate{
int32 id = 1;
int32 cno = 2;
uint32 startMinute = 3;
uint32 endMinute = 4;
float compensate = 5;
}
service Stream { service Stream {
rpc Simple(RequestInfo) returns (ResponseAny) {} // rpc Simple(RequestInfo) returns (ResponseAny) {} //
rpc ServerStream (RequestInfo) returns (stream ResponseInfo) {} // rpc ServerStream (RequestInfo) returns (stream ResponseInfo) {} //