This commit is contained in:
wangxx1809 2024-07-05 15:51:30 +08:00
parent adf57577d1
commit a87a081fce
30 changed files with 62 additions and 61 deletions

View File

@ -525,6 +525,10 @@ void ConfigManager::CallFuncs(const ReadData& rd, const list<Item>& lst, ::strea
RedTestCfgStart(); break; RedTestCfgStart(); break;
case REDTESTCFGSTOP: case REDTESTCFGSTOP:
RedTestCfgStop(); break; RedTestCfgStop(); break;
case SCANERCTRLCFGREQ:
ScanerCtrlCfgReq(response);
printf("SCANERCTRLCFG responded...\n");
break;
default: default:
break; break;
} }
@ -532,7 +536,7 @@ void ConfigManager::CallFuncs(const ReadData& rd, const list<Item>& lst, ::strea
} }
void ConfigManager::ScanerCtrlCfgReq(const ReadData& rd, const list<Item>& lst, ::stream::ResponseAny** response) { void ConfigManager::ScanerCtrlCfgReq(::stream::ResponseAny** response) {
stream::ScannerCrtlCfgResp result; stream::ScannerCrtlCfgResp result;
auto start = m_ScannerControlCfgDao->m_ScannerControlCfgMap.begin(); auto start = m_ScannerControlCfgDao->m_ScannerControlCfgMap.begin();
@ -621,7 +625,7 @@ void ConfigManager::SendPowderCfg() {
} }
void ConfigManager::UpdateCfg(const ReadData& rd) { void ConfigManager::UpdateCfg(const ReadData& rd,const list<Item>& lst) {
switch (rd.dataType) switch (rd.dataType)
{ {
@ -655,12 +659,12 @@ void ConfigManager::UpdateCfg(const ReadData& rd) {
break; break;
case POWDERSET: case POWDERSET:
if (rd.handleType == TOTAL) { if (rd.handleType == TOTAL) {
m_ParamSetCfg.UpdatePowderCfg(rd); m_ParamSetCfg.UpdatePowderCfg(rd,lst);
SendPowderCfg(); SendPowderCfg();
} }
break; break;
case SCANERCTRLCFG: case SCANERCTRLCFG:
m_ScannerControlCfgDao->m_ScannerControlCfgMap[ConverType::TryToI(rd.nameKey)]->Update(rd); m_ScannerControlCfgDao->m_ScannerControlCfgMap[ConverType::TryToI(rd.nameKey)]->Update(rd, lst);
break; break;
default: default:
break; break;

View File

@ -48,8 +48,7 @@ enum ConfigFunc{
REDTESTCFGSTART, //红光测试配置开始 REDTESTCFGSTART, //红光测试配置开始
REDTESTCFGSTOP, //红光测试配置结束 REDTESTCFGSTOP, //红光测试配置结束
//FIXPOINTDAOADD, //FixPointDao add SCANERCTRLCFGREQ,
//FIXPOINTDAODEL, //FixPointDao del
}; };
@ -135,9 +134,9 @@ public:
void SavePreJobParamCfg() { m_PrepareJobCfgDao->Save(m_MachineCfg.m_MachineType->GetValue(), m_PrepareJobCfgs); } //不传 void SavePreJobParamCfg() { m_PrepareJobCfgDao->Save(m_MachineCfg.m_MachineType->GetValue(), m_PrepareJobCfgs); } //不传
void SendCfgToClients(); void SendCfgToClients();
void UpdateCfg(const ReadData& rd); void UpdateCfg(const ReadData& rd, const list<Item>& lst);
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); // void ScanerCtrlCfgReq(::stream::ResponseAny** response); //
private: private:
ConfigManager(const ConfigManager&) {}; ConfigManager(const ConfigManager&) {};
ConfigManager& operator=(const ConfigManager&) {}; ConfigManager& operator=(const ConfigManager&) {};

View File

@ -145,8 +145,8 @@ void CorrectParamCfg::SetCorrectCfg(stream::CorrectParamCfg* cp) {
} }
void CorrectParamCfg::Update(const ReadData& rd){ void CorrectParamCfg::Update(const ReadData& rd, const list<Item>& lst){
for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { for (auto start = lst.begin(); start != lst.end(); ++start) {
if (start->nameKey == "xmeasure_min") m_xmeasure_min = ConverType::TryToD(start->strValue); if (start->nameKey == "xmeasure_min") m_xmeasure_min = ConverType::TryToD(start->strValue);
else if (start->nameKey == "xmeasure_max") m_xmeasure_max = ConverType::TryToD(start->strValue); else if (start->nameKey == "xmeasure_max") m_xmeasure_max = ConverType::TryToD(start->strValue);
else if (start->nameKey == "ymeasure_min") m_ymeasure_min = ConverType::TryToD(start->strValue); else if (start->nameKey == "ymeasure_min") m_ymeasure_min = ConverType::TryToD(start->strValue);

View File

@ -13,7 +13,7 @@ public:
void GetUpdateSql(int cno,vector<string>& ups); void GetUpdateSql(int cno,vector<string>& ups);
void SetCorrectCfg(stream::CorrectParamCfg* cp); void SetCorrectCfg(stream::CorrectParamCfg* cp);
void Update(const ReadData& rd); void Update(const ReadData& rd, const list<Item>& lst);
public: public:
double m_xmeasure_min; //x可打印最小位置 double m_xmeasure_min; //x可打印最小位置
double m_xmeasure_max; //x可打印最大位置 double m_xmeasure_max; //x可打印最大位置

View File

@ -171,7 +171,7 @@ void ParamSetCfg::GetUpdateSql(vector<string>& ups)
// return true; // return true;
//} //}
void ParamSetCfg::UpdatePowderCfg(const ReadData& wd) { //全量更新层供粉量配置 void ParamSetCfg::UpdatePowderCfg(const ReadData& wd, const list<Item>& lst) { //全量更新层供粉量配置
std::unique_lock<std::shared_mutex> lck(m_sMtx); std::unique_lock<std::shared_mutex> lck(m_sMtx);
if (ParamSetVec.empty()) return; if (ParamSetVec.empty()) return;
@ -182,7 +182,7 @@ void ParamSetCfg::UpdatePowderCfg(const ReadData& wd) { //全量更新层供
} }
ParamSetVec[0]->PowderSets.clear(); ParamSetVec[0]->PowderSets.clear();
for (auto item = wd.its.begin(); item != wd.its.end(); ++item) { for (auto item = lst.begin(); item != lst.end(); ++item) {
PowderSet* ppowder = new PowderSet(item->start_layer, item->end_layer, item->powder); PowderSet* ppowder = new PowderSet(item->start_layer, item->end_layer, item->powder);
ParamSetVec[0]->PowderSets.emplace_back(ppowder); ParamSetVec[0]->PowderSets.emplace_back(ppowder);
} }

View File

@ -43,7 +43,7 @@ public:
//bool Delete(string name); //没用到 //bool Delete(string name); //没用到
void GetPowderCfg(vector<PowderSet>& powderVec); void GetPowderCfg(vector<PowderSet>& powderVec);
void UpdatePowderCfg(const ReadData& wd); void UpdatePowderCfg(const ReadData& wd,const list<Item>& lst);
public: public:
static const string TABLE_NAME; static const string TABLE_NAME;
static const string FIELD_ID; static const string FIELD_ID;

View File

@ -83,9 +83,9 @@ float PowerCompensateCfg::CalcPowerCompensate(float power)
return rel; return rel;
} }
void PowerCompensateCfg::Update(const ReadData& rd) { void PowerCompensateCfg::Update(const ReadData& rd, const list<Item>& lst) {
auto start = rd.its.begin(); auto start = lst.begin();
while (start != rd.its.end()) { while (start != lst.end()) {
int percent = ConverType::TryToI(start->nameKey); int percent = ConverType::TryToI(start->nameKey);
for (auto it = m_pcs.begin(); it != m_pcs.end(); ++it) { for (auto it = m_pcs.begin(); it != m_pcs.end(); ++it) {
if ((*it)->m_percent == percent) { if ((*it)->m_percent == percent) {
@ -96,7 +96,6 @@ void PowerCompensateCfg::Update(const ReadData& rd) {
++start; ++start;
} }
} }
bool PowerCompensateLess(const PowerCompensate * m1, const PowerCompensate * m2) { bool PowerCompensateLess(const PowerCompensate * m1, const PowerCompensate * m2) {

View File

@ -34,7 +34,7 @@ public:
PowerCompensateCfg(); PowerCompensateCfg();
~PowerCompensateCfg(); ~PowerCompensateCfg();
float CalcPowerCompensate(float power); float CalcPowerCompensate(float power);
void Update(const ReadData& rd); void Update(const ReadData& rd, const list<Item>& lst);
public: public:
vector<PowerCompensate*> m_pcs; vector<PowerCompensate*> m_pcs;
}; };

View File

@ -127,9 +127,9 @@ void ScanParamCfg::SetScanParam(stream::ScanParamCfg* sp) {
} }
void ScanParamCfg::Update(const ReadData& rd) { void ScanParamCfg::Update(const ReadData& rd,const list<Item>& lst) {
for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { for (auto start = lst.begin(); start != lst.end(); ++start) {
if (start->nameKey == "edge_level") m_edge_level = ConverType::TryToI(start->strValue); if (start->nameKey == "edge_level") m_edge_level = ConverType::TryToI(start->strValue);
else if (start->nameKey == "edge_level_min") m_edge_level_min = ConverType::TryToI(start->strValue); else if (start->nameKey == "edge_level_min") m_edge_level_min = ConverType::TryToI(start->strValue);
else if (start->nameKey == "edge_level_max") m_edge_level_max = ConverType::TryToI(start->strValue); else if (start->nameKey == "edge_level_max") m_edge_level_max = ConverType::TryToI(start->strValue);

View File

@ -13,7 +13,7 @@ public:
void GetUpdateSql(int cno,vector<string>& ups); void GetUpdateSql(int cno,vector<string>& ups);
void SetScanParam(stream::ScanParamCfg* sp); void SetScanParam(stream::ScanParamCfg* sp);
void Update(const ReadData& rd); void Update(const ReadData& rd, const list<Item>& lst);
public: public:
string CONFIG_NAME; string CONFIG_NAME;
static string FIELD_EDGE_LEVEL; static string FIELD_EDGE_LEVEL;

View File

@ -120,8 +120,8 @@ void ScanTestCfg::SetScanTestCfg(stream::ScanTestCfg* cp) {
} }
void ScanTestCfg::Update(const ReadData& rd) { void ScanTestCfg::Update(const ReadData& rd, const list<Item>& lst) {
for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { for (auto start = lst.begin(); start != lst.end(); ++start) {
if (start->nameKey == "debug_shape") m_debug_shape = ConverType::TryToI(start->strValue); if (start->nameKey == "debug_shape") m_debug_shape = ConverType::TryToI(start->strValue);
else if (start->nameKey == "shape_size") m_shape_size = ConverType::TryToI(start->strValue); else if (start->nameKey == "shape_size") m_shape_size = ConverType::TryToI(start->strValue);
else if (start->nameKey == "shape_size_min") m_shape_size_min = ConverType::TryToI(start->strValue); else if (start->nameKey == "shape_size_min") m_shape_size_min = ConverType::TryToI(start->strValue);

View File

@ -14,7 +14,7 @@ public:
void SetScanTestCfg(stream::ScanTestCfg* cp); void SetScanTestCfg(stream::ScanTestCfg* cp);
void Update(const ReadData& rd); void Update(const ReadData& rd, const list<Item>& lst);
public: public:
int m_debug_shape; int m_debug_shape;
int m_shape_size; int m_shape_size;

View File

@ -70,12 +70,12 @@ void ScannerControlCfg::SetScannerCtrlCfg(stream::ScannerCrtlCfgData* sccd) {
sccd->set_hadmatch(m_HadMatch); sccd->set_hadmatch(m_HadMatch);
} }
void ScannerControlCfg::Update(const ReadData& rd) { void ScannerControlCfg::Update(const ReadData& rd,const list<Item>& lst) {
SCCFGP type = (SCCFGP)ConverType::TryToI(rd.strValue); SCCFGP type = (SCCFGP)ConverType::TryToI(rd.strValue);
if (type == CTRLCFG) { if (type == CTRLCFG) {
auto start = rd.its.begin(); auto start = lst.begin();
while (start != rd.its.end()) { while (start != lst.end()) {
if (start->nameKey == "ControlNo") { if (start->nameKey == "ControlNo") {
m_ControlNo = ConverType::TryToI(start->strValue); m_ControlNo = ConverType::TryToI(start->strValue);
} }
@ -104,28 +104,28 @@ void ScannerControlCfg::Update(const ReadData& rd) {
} }
} }
else if (type == SCANPARAMCFG) { else if (type == SCANPARAMCFG) {
m_ScanCfgWrapper.m_ScanParamCfg.Update(rd); m_ScanCfgWrapper.m_ScanParamCfg.Update(rd,lst);
} }
else if (type == HATCHINGPARAMS) { else if (type == HATCHINGPARAMS) {
m_ScanCfgWrapper.m_HatchingParams.Update(rd); m_ScanCfgWrapper.m_HatchingParams.Update(rd, lst);
} }
else if (type == BORDERPARAMS) { else if (type == BORDERPARAMS) {
m_ScanCfgWrapper.m_BorderParams.Update(rd); m_ScanCfgWrapper.m_BorderParams.Update(rd, lst);
} }
else if (type == SUPPORTPARAMS) { else if (type == SUPPORTPARAMS) {
m_ScanCfgWrapper.m_SupportParams.Update(rd); m_ScanCfgWrapper.m_SupportParams.Update(rd, lst);
} }
else if (type == CORRECTPARAMCFG) { else if (type == CORRECTPARAMCFG) {
m_ScanCfgWrapper.m_CorrectParamCfg.Update(rd); m_ScanCfgWrapper.m_CorrectParamCfg.Update(rd, lst);
} }
else if (type == SCANTESTCFG) { else if (type == SCANTESTCFG) {
m_ScanCfgWrapper.m_ScanTestCfg.Update(rd); m_ScanCfgWrapper.m_ScanTestCfg.Update(rd, lst);
} }
else if (type == SKYWRITINGCFG) { else if (type == SKYWRITINGCFG) {
m_ScanCfgWrapper.m_SkyWritingCfg.Update(rd); m_ScanCfgWrapper.m_SkyWritingCfg.Update(rd, lst);
} }
else if (type == POWERCOMPENSATECFG) { else if (type == POWERCOMPENSATECFG) {
m_ScanCfgWrapper.m_PowerCompensateCfg.Update(rd); m_ScanCfgWrapper.m_PowerCompensateCfg.Update(rd, lst);
} }
//else if (type == TIMEPOWERCOMPENSATECFG) { //else if (type == TIMEPOWERCOMPENSATECFG) {
// m_ScanCfgWrapper.m_TimePowerCompensateCfg.Update(rd); // m_ScanCfgWrapper.m_TimePowerCompensateCfg.Update(rd);

View File

@ -41,7 +41,7 @@ public:
void SetScannerCtrlCfg(stream::ScannerCrtlCfgData* ); void SetScannerCtrlCfg(stream::ScannerCrtlCfgData* );
void Update(const ReadData& rd); void Update(const ReadData& rd, const list<Item>& lst);
public: public:
//IntData* m_Index; //IntData* m_Index;
int m_SeqNo; //编号 ConfigManager中的m_ScannerControlCfgMap的key int m_SeqNo; //编号 ConfigManager中的m_ScannerControlCfgMap的key

View File

@ -87,8 +87,8 @@ void SkyWritingCfg::SetSkyWritingCfg(stream::SkyWritingCfg * cp) {
cp->set_limitemax(m_LimiteMax); cp->set_limitemax(m_LimiteMax);
} }
void SkyWritingCfg::Update(const ReadData& rd) { void SkyWritingCfg::Update(const ReadData& rd,const list<Item>& lst) {
for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { for (auto start = lst.begin(); start != lst.end(); ++start) {
if (start->nameKey == "IsEnable") m_IsEnable =(bool) ConverType::TryToI(start->strValue); if (start->nameKey == "IsEnable") m_IsEnable =(bool) ConverType::TryToI(start->strValue);
else if (start->nameKey == "Timelag") m_Timelag = ConverType::TryToI(start->strValue); else if (start->nameKey == "Timelag") m_Timelag = ConverType::TryToI(start->strValue);
else if (start->nameKey == "TimelagMin") m_TimelagMin = ConverType::TryToI(start->strValue); else if (start->nameKey == "TimelagMin") m_TimelagMin = ConverType::TryToI(start->strValue);

View File

@ -14,7 +14,7 @@ public:
void GetUpdateSql(int cno,vector<string>& ups); void GetUpdateSql(int cno,vector<string>& ups);
void SetSkyWritingCfg(stream::SkyWritingCfg* cp); void SetSkyWritingCfg(stream::SkyWritingCfg* cp);
void Update(const ReadData& rd); void Update(const ReadData& rd, const list<Item>& lst);
public: public:
bool m_IsEnable; bool m_IsEnable;
double m_Timelag; double m_Timelag;

View File

@ -24,9 +24,6 @@ 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);
}
else if ((READTYPE)msg.dataType == DIRCTROYFUNC) { else if ((READTYPE)msg.dataType == DIRCTROYFUNC) {
p->m_controller->m_fileDialog.Request(msg,response); p->m_controller->m_fileDialog.Request(msg,response);
} }
@ -126,7 +123,7 @@ void DataHandle::DataCallBackHandle(const ReadData& msg, const std::list<Item>&
case ALARMCFG: case ALARMCFG:
case POWDERSET: case POWDERSET:
case SCANERCTRLCFG: case SCANERCTRLCFG:
ConfigManager::GetInstance()->UpdateCfg(msg); ConfigManager::GetInstance()->UpdateCfg(msg, its);
break; break;
case JOBCONTROLLERFUNC: case JOBCONTROLLERFUNC:
m_controller->m_jobController.CallFuncs(msg,its); break; m_controller->m_jobController.CallFuncs(msg,its); break;

View File

@ -120,7 +120,6 @@ enum WRITETYPE {
PAUSEALARMCFGPARAM, //AlarmCfgWrapper pause参数 PAUSEALARMCFGPARAM, //AlarmCfgWrapper pause参数
WARNALARMCFGPARAM, //AlarmCfgWrapper warn参数 WARNALARMCFGPARAM, //AlarmCfgWrapper warn参数
POWDERSETPARAM, //PowderSet 参数 POWDERSETPARAM, //PowderSet 参数
//SCANNERCONTROLCFGPARAM, //ScannerControlCfg 参数
MOLDCFGPARAM, MOLDCFGPARAM,
LOADCFGPARAM, LOADCFGPARAM,
@ -135,7 +134,7 @@ enum WRITETYPE {
XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端 XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端
CAMERAPARAM, //相机参数 CAMERAPARAM, //相机参数
JOBCONTROLLER, //JobController 参数 JOBCTRLPARAM, //JobController 参数
DEFAULT = 900, //默认值 DEFAULT = 900, //默认值
TEST = 1000, //test TEST = 1000, //test

View File

@ -88,7 +88,6 @@ bool JobController::LoadJob(string filepath)
delete m_CurrentJob; delete m_CurrentJob;
m_CurrentJob = NULL; m_CurrentJob = NULL;
m_TempJob = NULL; m_TempJob = NULL;
printf("m_CurrentJob:%p", m_CurrentJob);
} }
m_LoadFlag = true; m_LoadFlag = true;
LeaveCriticalSection(&m_cs); LeaveCriticalSection(&m_cs);
@ -181,7 +180,6 @@ void JobController::RemoveJob(string job_titel)
delete m_CurrentJob; delete m_CurrentJob;
m_CurrentJob = NULL; m_CurrentJob = NULL;
m_TempJob = NULL; m_TempJob = NULL;
printf("m_CurrentJob:%p", m_CurrentJob);
} }
LeaveCriticalSection(&m_cs); LeaveCriticalSection(&m_cs);
} }
@ -193,7 +191,6 @@ void JobController::RemoveAllJob()
delete m_CurrentJob; delete m_CurrentJob;
m_CurrentJob = NULL; m_CurrentJob = NULL;
m_TempJob = NULL; m_TempJob = NULL;
printf("m_CurrentJob:%p", m_CurrentJob);
} }
LeaveCriticalSection(&m_cs); LeaveCriticalSection(&m_cs);
} }
@ -376,17 +373,22 @@ void JobController::LayerInfoReq(JCONTROLLERFUNC type, ::stream::ResponseAny** r
void JobController::MachineTypeReq(::stream::ResponseAny** response) { void JobController::MachineTypeReq(::stream::ResponseAny** response) {
stream::MachineType result; stream::MachineType result;
if (m_CurrentJob && m_CurrentJob->GetMetaData()) {
for (auto it = m_CurrentJob->GetMetaData()->GetScanFields()->begin(); result.set_isok(false);
it != m_CurrentJob->GetMetaData()->GetScanFields()->end(); ++it) { for (auto it = m_CurrentJob->GetMetaData()->GetScanFields()->begin();
auto sf = result.add_sf(); it != m_CurrentJob->GetMetaData()->GetScanFields()->end(); ++it) {
sf->set_id((*it)->id); auto sf = result.add_sf();
sf->set_id((*it)->reference); sf->set_id((*it)->id);
auto dim = sf->mutable_dimension(); sf->set_id((*it)->reference);
dim->set_xmax((*it)->dimension->xmax); auto dim = sf->mutable_dimension();
dim->set_xmin((*it)->dimension->xmax); dim->set_xmax((*it)->dimension->xmax);
dim->set_ymax((*it)->dimension->ymax); dim->set_xmin((*it)->dimension->xmax);
dim->set_ymin((*it)->dimension->ymin); dim->set_ymax((*it)->dimension->ymax);
dim->set_ymin((*it)->dimension->ymin);
}
}
else {
result.set_isok(false);
} }
(*response)->mutable_data()->PackFrom(result); (*response)->mutable_data()->PackFrom(result);
} }
@ -438,7 +440,8 @@ void JobController::SendToClients() {
lst.emplace_back(Item{ "LoadProgress", to_string(GetLoadProgress()), iFLOAT }); lst.emplace_back(Item{ "LoadProgress", to_string(GetLoadProgress()), iFLOAT });
lst.emplace_back(Item{ "LoadInfo", GetLoadInfo(), iSTRING }); lst.emplace_back(Item{ "LoadInfo", GetLoadInfo(), iSTRING });
lst.emplace_back(Item{ "IsLoadFinished", to_string(IsLoadFinished()), iBOOL }); lst.emplace_back(Item{ "IsLoadFinished", to_string(IsLoadFinished()), iBOOL });
ClientWrapper::Instance()->PushAllClient(WriteData(JOBCONTROLLER, lst)); //printf("发送 LoadProgress:%f,LoadInfo:%s,IsLoadFinished:%d\n", GetLoadProgress(), GetLoadInfo().c_str(), IsLoadFinished());
ClientWrapper::Instance()->PushAllClient(WriteData(JOBCTRLPARAM, lst));
} }
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.