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;
case REDTESTCFGSTOP:
RedTestCfgStop(); break;
case SCANERCTRLCFGREQ:
ScanerCtrlCfgReq(response);
printf("SCANERCTRLCFG responded...\n");
break;
default:
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;
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)
{
@ -655,12 +659,12 @@ void ConfigManager::UpdateCfg(const ReadData& rd) {
break;
case POWDERSET:
if (rd.handleType == TOTAL) {
m_ParamSetCfg.UpdatePowderCfg(rd);
m_ParamSetCfg.UpdatePowderCfg(rd,lst);
SendPowderCfg();
}
break;
case SCANERCTRLCFG:
m_ScannerControlCfgDao->m_ScannerControlCfgMap[ConverType::TryToI(rd.nameKey)]->Update(rd);
m_ScannerControlCfgDao->m_ScannerControlCfgMap[ConverType::TryToI(rd.nameKey)]->Update(rd, lst);
break;
default:
break;

View File

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

View File

@ -145,8 +145,8 @@ void CorrectParamCfg::SetCorrectCfg(stream::CorrectParamCfg* cp) {
}
void CorrectParamCfg::Update(const ReadData& rd){
for (auto start = rd.its.begin(); start != rd.its.end(); ++start) {
void CorrectParamCfg::Update(const ReadData& rd, const list<Item>& lst){
for (auto start = lst.begin(); start != lst.end(); ++start) {
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 == "ymeasure_min") m_ymeasure_min = ConverType::TryToD(start->strValue);

View File

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

View File

@ -171,7 +171,7 @@ void ParamSetCfg::GetUpdateSql(vector<string>& ups)
// 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);
if (ParamSetVec.empty()) return;
@ -182,7 +182,7 @@ void ParamSetCfg::UpdatePowderCfg(const ReadData& wd) { //全量更新层供
}
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);
ParamSetVec[0]->PowderSets.emplace_back(ppowder);
}

View File

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

View File

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

View File

@ -34,7 +34,7 @@ public:
PowerCompensateCfg();
~PowerCompensateCfg();
float CalcPowerCompensate(float power);
void Update(const ReadData& rd);
void Update(const ReadData& rd, const list<Item>& lst);
public:
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);
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);

View File

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

View File

@ -120,8 +120,8 @@ void ScanTestCfg::SetScanTestCfg(stream::ScanTestCfg* cp) {
}
void ScanTestCfg::Update(const ReadData& rd) {
for (auto start = rd.its.begin(); start != rd.its.end(); ++start) {
void ScanTestCfg::Update(const ReadData& rd, const list<Item>& lst) {
for (auto start = lst.begin(); start != lst.end(); ++start) {
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_min") m_shape_size_min = ConverType::TryToI(start->strValue);

View File

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

View File

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

View File

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

View File

@ -87,8 +87,8 @@ void SkyWritingCfg::SetSkyWritingCfg(stream::SkyWritingCfg * cp) {
cp->set_limitemax(m_LimiteMax);
}
void SkyWritingCfg::Update(const ReadData& rd) {
for (auto start = rd.its.begin(); start != rd.its.end(); ++start) {
void SkyWritingCfg::Update(const ReadData& rd,const list<Item>& lst) {
for (auto start = lst.begin(); start != lst.end(); ++start) {
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 == "TimelagMin") m_TimelagMin = ConverType::TryToI(start->strValue);

View File

@ -14,7 +14,7 @@ public:
void GetUpdateSql(int cno,vector<string>& ups);
void SetSkyWritingCfg(stream::SkyWritingCfg* cp);
void Update(const ReadData& rd);
void Update(const ReadData& rd, const list<Item>& lst);
public:
bool m_IsEnable;
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) {
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) {
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 POWDERSET:
case SCANERCTRLCFG:
ConfigManager::GetInstance()->UpdateCfg(msg);
ConfigManager::GetInstance()->UpdateCfg(msg, its);
break;
case JOBCONTROLLERFUNC:
m_controller->m_jobController.CallFuncs(msg,its); break;

View File

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

View File

@ -88,7 +88,6 @@ bool JobController::LoadJob(string filepath)
delete m_CurrentJob;
m_CurrentJob = NULL;
m_TempJob = NULL;
printf("m_CurrentJob:%p", m_CurrentJob);
}
m_LoadFlag = true;
LeaveCriticalSection(&m_cs);
@ -181,7 +180,6 @@ void JobController::RemoveJob(string job_titel)
delete m_CurrentJob;
m_CurrentJob = NULL;
m_TempJob = NULL;
printf("m_CurrentJob:%p", m_CurrentJob);
}
LeaveCriticalSection(&m_cs);
}
@ -193,7 +191,6 @@ void JobController::RemoveAllJob()
delete m_CurrentJob;
m_CurrentJob = NULL;
m_TempJob = NULL;
printf("m_CurrentJob:%p", m_CurrentJob);
}
LeaveCriticalSection(&m_cs);
}
@ -376,17 +373,22 @@ void JobController::LayerInfoReq(JCONTROLLERFUNC type, ::stream::ResponseAny** r
void JobController::MachineTypeReq(::stream::ResponseAny** response) {
stream::MachineType result;
for (auto it = m_CurrentJob->GetMetaData()->GetScanFields()->begin();
it != m_CurrentJob->GetMetaData()->GetScanFields()->end(); ++it) {
auto sf = result.add_sf();
sf->set_id((*it)->id);
sf->set_id((*it)->reference);
auto dim = sf->mutable_dimension();
dim->set_xmax((*it)->dimension->xmax);
dim->set_xmin((*it)->dimension->xmax);
dim->set_ymax((*it)->dimension->ymax);
dim->set_ymin((*it)->dimension->ymin);
if (m_CurrentJob && m_CurrentJob->GetMetaData()) {
result.set_isok(false);
for (auto it = m_CurrentJob->GetMetaData()->GetScanFields()->begin();
it != m_CurrentJob->GetMetaData()->GetScanFields()->end(); ++it) {
auto sf = result.add_sf();
sf->set_id((*it)->id);
sf->set_id((*it)->reference);
auto dim = sf->mutable_dimension();
dim->set_xmax((*it)->dimension->xmax);
dim->set_xmin((*it)->dimension->xmax);
dim->set_ymax((*it)->dimension->ymax);
dim->set_ymin((*it)->dimension->ymin);
}
}
else {
result.set_isok(false);
}
(*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{ "LoadInfo", GetLoadInfo(), iSTRING });
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.