From 5f63de78bc595fd16fe32272611ad62a3163ab57 Mon Sep 17 00:00:00 2001 From: "bob.pan" Date: Fri, 3 Dec 2021 11:50:26 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E5=9E=8B=E5=8F=B7?= =?UTF-8?q?=E5=90=8D=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD=202=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0ROI=E6=A0=87=E5=AE=9A=E5=9D=90=E6=A0=87?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD=203=E3=80=81=E6=A0=87?= =?UTF-8?q?=E5=AE=9A=E9=A1=B5=E9=9D=A2=E5=8F=82=E6=95=B0=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4=204=E3=80=81=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E7=AE=97=E6=B3=95=E5=A2=9E=E5=8A=A0=E5=9C=86=E5=BF=83?= =?UTF-8?q?=E5=81=8F=E7=A7=BB=E5=8F=82=E6=95=B0=E9=98=88=E5=80=BC=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=EF=BC=8C=E5=BC=80=E6=94=BE=E5=88=B0UI=E4=B8=8A?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3part/tadpole/include/tpBase/lpbengine.h | Bin 30768 -> 31052 bytes .../1_模型列表/A1/1_2_3_19_in.wsf | Bin 13454 -> 0 bytes .../1_模型列表/A1/1_2_3_20_in.wsf | Bin 1078 -> 0 bytes .../solutions/1_模型列表/A1/taskinfo.json | 783 ------------------ .../2_模型列表/A1/1_2_3_19_in.wsf | Bin 13454 -> 0 bytes .../2_模型列表/A1/1_2_3_20_in.wsf | Bin 1078 -> 0 bytes .../solutions/2_模型列表/A1/taskinfo.json | 763 ----------------- .../1_模型列表/123/1_7_3_19_in.wsf | Bin 16730 -> 0 bytes .../1_模型列表/123/1_7_3_20_in.wsf | Bin 1078 -> 0 bytes .../1_模型列表/123/taskinfo.json | 783 ------------------ .../1_模型列表/C3/1_4_3_18_in.wsf | Bin 9450 -> 0 bytes .../1_模型列表/C3/1_4_3_19_in.wsf | Bin 13454 -> 0 bytes .../1_模型列表/C3/1_4_3_20_in.wsf | Bin 1078 -> 0 bytes .../1_模型列表/C3/1_4_3_21_in.wsf | Bin 1078 -> 0 bytes .../1_模型列表/C3/1_4_3_22_in.wsf | Bin 1078 -> 0 bytes .../1_模型列表/C3/1_4_3_7_in.wsf | Bin 180854 -> 0 bytes .../solutions/1_模型列表/C3/taskinfo.json | 763 ----------------- runner17/solutions/1_模型列表/info.json | 15 - runner17/user/plcIndex.json | 30 - src/lpMain/IStation.h | 1 + src/lpMain/IWfCtrl.h | 2 + src/lpMain/Station.cpp | 13 +- src/lpMain/Station.h | 1 + src/lpMain/WfCtrl.cpp | 61 ++ src/lpMain/WfCtrl.h | 3 +- src/lpbdesigner/CDetectorUI.cpp | 4 +- src/lpbdesigner/DsgRoiDlg.cpp | 10 + src/lpbdesigner/DsgRoiDlg.h | 4 +- .../GeneratedFiles/Debug/moc_DsgRoiDlg.cpp | 163 ---- .../GeneratedFiles/Release/moc_DsgRoiDlg.cpp | 163 ---- src/lpbdesigner/GeneratedFiles/ui_RoiDlg.h | 294 ------- src/lpbdesigner/MainFrame.cpp | 32 +- src/lpbdesigner/QSetCenterDlg.cpp | 55 ++ src/lpbdesigner/QSetCenterDlg.h | 24 + src/lpbdesigner/QSetCenterDlg.ui | 76 ++ src/lpbdesigner/RoiDlg.ui | 84 +- src/lpbdesigner/RoiScene.cpp | 35 +- src/lpbdesigner/RoiScene.h | 1 - src/lpbengine/Solution.cpp | 16 + src/lpbengine/Solution.h | 1 + src/lpbengine/SolutionMgr.cpp | 12 +- src/lpbengine/SolutionMgr.h | 1 + src/lpbengine/Task.cpp | 18 + src/lpbengine/Task.h | 1 + tpvs17/lpMain/QModModeUI.cpp | 56 ++ tpvs17/lpMain/QModModeUI.h | 22 + tpvs17/lpMain/QModModeUI.ui | 118 +++ tpvs17/lpMain/QModelMangerUI.cpp | 40 +- tpvs17/lpMain/lpMain.vcxproj | 6 + tpvs17/lpMain/lpMain.vcxproj.filters | 9 + tpvs17/lpdesigner/lpdesigner.vcxproj | 28 + tpvs17/lpdesigner/lpdesigner.vcxproj.filters | 18 + tpvs17/valveDetector/algEg.cpp | 6 +- 53 files changed, 701 insertions(+), 3814 deletions(-) delete mode 100644 release/runner17_ValueDetect/solutions/1_模型列表/A1/1_2_3_19_in.wsf delete mode 100644 release/runner17_ValueDetect/solutions/1_模型列表/A1/1_2_3_20_in.wsf delete mode 100644 release/runner17_ValueDetect/solutions/1_模型列表/A1/taskinfo.json delete mode 100644 release/runner17_ValueDetect/solutions/2_模型列表/A1/1_2_3_19_in.wsf delete mode 100644 release/runner17_ValueDetect/solutions/2_模型列表/A1/1_2_3_20_in.wsf delete mode 100644 release/runner17_ValueDetect/solutions/2_模型列表/A1/taskinfo.json delete mode 100644 runner17/solutions/1_模型列表/123/1_7_3_19_in.wsf delete mode 100644 runner17/solutions/1_模型列表/123/1_7_3_20_in.wsf delete mode 100644 runner17/solutions/1_模型列表/123/taskinfo.json delete mode 100644 runner17/solutions/1_模型列表/C3/1_4_3_18_in.wsf delete mode 100644 runner17/solutions/1_模型列表/C3/1_4_3_19_in.wsf delete mode 100644 runner17/solutions/1_模型列表/C3/1_4_3_20_in.wsf delete mode 100644 runner17/solutions/1_模型列表/C3/1_4_3_21_in.wsf delete mode 100644 runner17/solutions/1_模型列表/C3/1_4_3_22_in.wsf delete mode 100644 runner17/solutions/1_模型列表/C3/1_4_3_7_in.wsf delete mode 100644 runner17/solutions/1_模型列表/C3/taskinfo.json delete mode 100644 runner17/solutions/1_模型列表/info.json delete mode 100644 runner17/user/plcIndex.json delete mode 100644 src/lpbdesigner/GeneratedFiles/Debug/moc_DsgRoiDlg.cpp delete mode 100644 src/lpbdesigner/GeneratedFiles/Release/moc_DsgRoiDlg.cpp delete mode 100644 src/lpbdesigner/GeneratedFiles/ui_RoiDlg.h create mode 100644 src/lpbdesigner/QSetCenterDlg.cpp create mode 100644 src/lpbdesigner/QSetCenterDlg.h create mode 100644 src/lpbdesigner/QSetCenterDlg.ui create mode 100644 tpvs17/lpMain/QModModeUI.cpp create mode 100644 tpvs17/lpMain/QModModeUI.h create mode 100644 tpvs17/lpMain/QModModeUI.ui diff --git a/3part/tadpole/include/tpBase/lpbengine.h b/3part/tadpole/include/tpBase/lpbengine.h index 767271a530c313fdd3cccf31ad9825bb4a5eb00f..eff4e28212747f22687e34d5c1343192e4643fbb 100644 GIT binary patch delta 127 zcmdn+f$_{I#tj!jCQs1g;`U|8XGmelWJqJEoLn2C$(qlQ!;msrzf^p(gBr`^c_AFE zc?_ux<&!Uln@;`^%(MAjh>OVN4;d`Hc?^jRxj-p5pyr&(jh@oH{vfRkeh_i65gUTp Tm_eEYowX+y05zLr{^0`vm(M89 delta 19 bcmX@}iE+aR#tj!jHphh~iEQ@E`o{+VXU_?U diff --git a/release/runner17_ValueDetect/solutions/1_模型列表/A1/1_2_3_19_in.wsf b/release/runner17_ValueDetect/solutions/1_模型列表/A1/1_2_3_19_in.wsf deleted file mode 100644 index d2d3199c673036d35244fe981b0f53cd3cd76581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13454 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 XY?CpQWJ%rpCh#kil;mvmtS0+EN(<<* diff --git a/release/runner17_ValueDetect/solutions/1_模型列表/A1/1_2_3_20_in.wsf b/release/runner17_ValueDetect/solutions/1_模型列表/A1/1_2_3_20_in.wsf deleted file mode 100644 index 68ff946edc26054cdc0c89de566d6dfc7dc05464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmZXHXH*CZ07h>~izZ5uhEP^0DNRKhG7CwzM2V&}RaQbt%M4|-gbEQwDl^I~$_g2k zLc2K6`}59u-;aCmXJ)G_#NYj6jeqkm1rYtu`+o`u2p}jZNUvVK5E2rickkW^3kxG6 zB7&%>C}Lt_h>MHUr%xaH_U(&=gane3l1NEOAuTP9jEoGjvaC@7$)sK}r}gBUz`FiJ{F3>h*6Wo2blR8&w^RYgrrjiEz_qOPvauwla( zK72SMMvOp1Ljz4sO-7C!$*57I7(IG4W5$eO?AWnrX=yQT+&IRMAJ2pd6VTSyMn^}7 zi4!NHtEIM8%*+gPb91In zoyxRn)3C6xVEXjwSXx?QWo3o6wKX<2Hq4kY16x~LX3m_+tXZ>|J$p8D=FDO4+_}t~ zHxD~IJM8W4nLmF%3l=P3;lhPDI5@Cq(IOlj9a+41F-}fSELpOIrAwExY}qoFFJI1z z6)RY|awV%)tzz}+)i^slvu4d2TwGjOyLK(>)~&4}$@7vA39`1ttX>+8#=O`GuZ^JDYo&G`HK6A%zUU|=9YK|uru2NMz!!j>&t z2n`J-EG&%h@Nl+n-O9FY+t|K+J3DslVCT-AL_|ceYu7F!BO}?pdpCRb>|yWTy+lPt z5gi@PzJ2?MiHTwV{{6(p#u677M|^xd2?+@#CMI&=zyS^(JjkI#hd6xrFh`CY;pow$ zBqb$r?AS4mA3x5C6DLScP9`NKg_9>wa_ZD6PM- z?AfzqWo2>h+&RvlKhK2=7s$@eCMPF{+}vC)UcAVqOP9EO`7(KVd0e@2g{xPulAoW? zwQJY7e*HQH1qBoq7INdp4Q}4NNl{S|w{G2{xVV^-k`hWwOSygfHh1pa;qKkL+`D&= z`}gnj;K2jR%F1~7@F9;LJ)*q4oQjGH9zTA}lP6Dj`t&K!o;~CF^XI&H@q)_AN~)@= zc=_@ruU@^Py1JU0ni^iee$AUVZ+QFmE$`mFh)YjJW;ll?$e*DO%PoJo(tK;+M z&wTmvg|A<~^6lF<>g(%iXlS6Zv61iJzthyzM00a9KYsk+=g*(~`t^&JmKIuDTWM=+ cqrJVIj*bpGJ3Hy>>Y}^5o1UH?e*gZ>AFQN*!~g&Q diff --git a/release/runner17_ValueDetect/solutions/1_模型列表/A1/taskinfo.json b/release/runner17_ValueDetect/solutions/1_模型列表/A1/taskinfo.json deleted file mode 100644 index 59b03b7..0000000 --- a/release/runner17_ValueDetect/solutions/1_模型列表/A1/taskinfo.json +++ /dev/null @@ -1,783 +0,0 @@ -{ - "algoArray": [ - { - "algo_OutParam_base_id": 3, - "algo_base_id": 2, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 1, - "algo_lib_name": "", - "algo_name": "圆心定位", - "algo_path": "caliCenter.dll", - "algo_roi_id": 423241480, - "outParamArray": [ - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "center", - "out_param_save": false, - "out_param_type": 6 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "centerRoi", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - } - ], - "paramArray": [ - { - "param_description": "圆心模板", - "param_id": 1, - "param_lock": false, - "param_name": "ROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1312.1961669921875, - "roi_item_value2": 954.859130859375, - "roi_item_value3": 212 - } - ] - ] - } - ] - }, - { - "algo_OutParam_base_id": 9, - "algo_base_id": 4, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 2, - "algo_lib_name": "", - "algo_name": "气门芯标定", - "algo_path": "caliValve.dll", - "algo_roi_id": 1, - "outParamArray": [ - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 14, - "out_param_name": "background", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 13, - "out_param_name": "backgroundThresh", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 15 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 9, - "out_param_name": "barNum", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 5 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 7, - "out_param_name": "barTemplate", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 11, - "out_param_name": "baseImage", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "center", - "out_param_save": false, - "out_param_type": 6 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 10, - "out_param_name": "flagCircle", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 0 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 16, - "out_param_name": "startDis", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 818.600830078125 - }, - { - "out_param_description": " ", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 15, - "out_param_name": "startOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 900 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "valveDis", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 600.9156494140625 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 5, - "out_param_name": "valveOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 3106 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 6, - "out_param_name": "valveTemplate", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 4, - "out_param_name": "valveWidth", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 45.5 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 12, - "out_param_name": "weightMat", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 8, - "out_param_name": "withinOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 459 - } - ], - "paramArray": [ - { - "param_description": "气门芯模板", - "param_id": 2, - "param_lock": false, - "param_name": "ROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1706.266357421875, - "roi_item_value2": 1410.7305908203125, - "roi_item_value3": 45.5 - } - ] - ] - }, - { - "param_description": "参考线模板", - "param_id": 4, - "param_lock": false, - "param_name": "StartROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1312.7010498046875, - "roi_item_value2": 136.87423706054688, - "roi_item_value3": 48.5 - } - ] - ] - }, - { - "param_description": "背景剪除阈值", - "param_id": 6, - "param_lock": false, - "param_name": "backgroundThresh", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 15 - }, - { - "param_description": "辐条数量", - "param_id": 9, - "param_lock": false, - "param_name": "barNum", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 5 - }, - { - "param_description": "辐条模板", - "param_id": 3, - "param_lock": false, - "param_name": "barROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1861.3594970703125, - "roi_item_value2": 1190.9151611328125, - "roi_item_value3": 67.5 - } - ] - ] - }, - { - "param_description": "轮毂中心坐标,绑定圆心定位", - "param_id": 1, - "param_lock": false, - "param_name": "center", - "param_show": false, - "param_src_algo_id": 1, - "param_src_param_id": 1, - "param_src_task_id": -1, - "param_type": 6, - "param_value_point_1": 1314.0406494140625, - "param_value_point_2": 955.4739379882812 - }, - { - "param_description": "无气门芯识别", - "param_id": 5, - "param_lock": false, - "param_name": "flagCircle", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "背景图启用,0关闭,1打开", - "param_id": 8, - "param_lock": false, - "param_name": "ibackground", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "型号判定,0关闭,1打开", - "param_id": 7, - "param_lock": false, - "param_name": "ifClasify", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - } - ] - }, - { - "algo_OutParam_base_id": 19, - "algo_base_id": 13, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 3, - "algo_lib_name": "", - "algo_name": "检测", - "algo_path": "valveDetector.dll", - "algo_roi_id": 1, - "outParamArray": [ - { - "out_param_description": "结果角度", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "angle", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 220.56674999999998 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 18, - "out_param_name": "centerPoint", - "out_param_save": false, - "out_param_type": 24 - }, - { - "out_param_description": "错误类型", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 4, - "out_param_name": "error", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 0 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 19, - "out_param_name": "imageName", - "out_param_save": false, - "out_param_type": 24 - }, - { - "out_param_description": "结果提示", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 5, - "out_param_name": "resultTip", - "out_param_save": false, - "out_param_type": 2, - "out_param_value": "/70" - }, - { - "out_param_description": "相似度得分", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "score", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 1 - } - ], - "paramArray": [ - { - "param_description": " ", - "param_file_path": "1_2_3_22_in.wsf", - "param_id": 22, - "param_lock": false, - "param_name": "background", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "背景差异性阈值", - "param_id": 1, - "param_lock": false, - "param_name": "backgroundThresh", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 15 - }, - { - "param_description": " ", - "param_id": 12, - "param_lock": true, - "param_name": "barNum", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 9, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 5 - }, - { - "param_description": "辐条得分值", - "param_id": 10, - "param_lock": false, - "param_name": "barScore", - "param_show": true, - "param_src_algo_id": 0, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 60 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_19_in.wsf", - "param_id": 19, - "param_lock": true, - "param_name": "barTemplate", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 7, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_21_in.wsf", - "param_id": 21, - "param_lock": false, - "param_name": "baseImage", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂型号匹配分值", - "param_id": 9, - "param_lock": false, - "param_name": "cMatchScore", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 0.2 - }, - { - "param_description": "轮毂中心坐标,绑定气门芯标定", - "param_id": 6, - "param_lock": true, - "param_name": "center", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 1, - "param_src_task_id": -1, - "param_type": 6, - "param_value_point_1": 1314.0406494140625, - "param_value_point_2": 955.4739379882812 - }, - { - "param_description": "是否开启中心定位,0关闭,1开启", - "param_id": 5, - "param_lock": false, - "param_name": "centerAlg", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 1 - }, - { - "param_description": "轮毂中心模板, 绑定圆定位", - "param_file_path": "1_2_3_7_in.wsf", - "param_id": 7, - "param_lock": true, - "param_name": "centerRoi", - "param_show": false, - "param_src_algo_id": 1, - "param_src_param_id": 3, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂区域框选", - "param_id": 8, - "param_lock": false, - "param_name": "cirlceArea", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9 - }, - { - "param_description": "0:无气门芯标识,绑定气门芯标定", - "param_id": 4, - "param_lock": false, - "param_name": "flagCircle", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "相似度评价阈值,在0~100之间", - "param_id": 2, - "param_lock": false, - "param_name": "scoreTh", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 70 - }, - { - "param_description": " ", - "param_id": 17, - "param_lock": true, - "param_name": "startDis", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 16, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 818.600830078125 - }, - { - "param_description": " ", - "param_id": 14, - "param_lock": true, - "param_name": "startOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 15, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 900 - }, - { - "param_description": " ", - "param_id": 16, - "param_lock": true, - "param_name": "valveDis", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 3, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 600.9156494140625 - }, - { - "param_description": " ", - "param_id": 13, - "param_lock": true, - "param_name": "valveOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 5, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 3106 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_18_in.wsf", - "param_id": 18, - "param_lock": true, - "param_name": "valveTemplate", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 6, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": " ", - "param_id": 15, - "param_lock": true, - "param_name": "valveWidth", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 4, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 45.5 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_20_in.wsf", - "param_id": 20, - "param_lock": false, - "param_name": "weightMat", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂类型,0摩伦,1汽轮", - "param_id": 3, - "param_lock": false, - "param_name": "wheelType", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": " ", - "param_id": 11, - "param_lock": true, - "param_name": "withinOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 8, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 459 - } - ] - } - ], - "property": [ - { - "prop_name": "a", - "prop_type": 2, - "prop_value": 11 - }, - { - "prop_name": "b", - "prop_type": 2, - "prop_value": 11 - }, - { - "prop_name": "model_cali", - "prop_type": 1, - "prop_value": true - }, - { - "prop_name": "model_plc", - "prop_type": 2, - "prop_value": 100 - }, - { - "prop_name": "model_time", - "prop_type": 10, - "prop_value": "" - } - ], - "task_algo_base_id": 3, - "task_algo_run_id": 3, - "task_base_id": 0, - "task_cameraID": 1, - "task_default_dir": "", - "task_description": "", - "task_group_param_id": -1, - "task_id": 2, - "task_name": "A1", - "task_run": true -} diff --git a/release/runner17_ValueDetect/solutions/2_模型列表/A1/1_2_3_19_in.wsf b/release/runner17_ValueDetect/solutions/2_模型列表/A1/1_2_3_19_in.wsf deleted file mode 100644 index d2d3199c673036d35244fe981b0f53cd3cd76581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13454 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 XY?CpQWJ%rpCh#kil;mvmtS0+EN(<<* diff --git a/release/runner17_ValueDetect/solutions/2_模型列表/A1/1_2_3_20_in.wsf b/release/runner17_ValueDetect/solutions/2_模型列表/A1/1_2_3_20_in.wsf deleted file mode 100644 index 68ff946edc26054cdc0c89de566d6dfc7dc05464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmZXHXH*CZ07h>~izZ5uhEP^0DNRKhG7CwzM2V&}RaQbt%M4|-gbEQwDl^I~$_g2k zLc2K6`}59u-;aCmXJ)G_#NYj6jeqkm1rYtu`+o`u2p}jZNUvVK5E2rickkW^3kxG6 zB7&%>C}Lt_h>MHUr%xaH_U(&=gane3l1NEOAuTP9jEoGjvaC@7$)sK}r}gBUz`FiJ{F3>h*6Wo2blR8&w^RYgrrjiEz_qOPvauwla( zK72SMMvOp1Ljz4sO-7C!$*57I7(IG4W5$eO?AWnrX=yQT+&IRMAJ2pd6VTSyMn^}7 zi4!NHtEIM8%*+gPb91In zoyxRn)3C6xVEXjwSXx?QWo3o6wKX<2Hq4kY16x~LX3m_+tXZ>|J$p8D=FDO4+_}t~ zHxD~IJM8W4nLmF%3l=P3;lhPDI5@Cq(IOlj9a+41F-}fSELpOIrAwExY}qoFFJI1z z6)RY|awV%)tzz}+)i^slvu4d2TwGjOyLK(>)~&4}$@7vA39`1ttX>+8#=O`GuZ^JDYo&G`HK6A%zUU|=9YK|uru2NMz!!j>&t z2n`J-EG&%h@Nl+n-O9FY+t|K+J3DslVCT-AL_|ceYu7F!BO}?pdpCRb>|yWTy+lPt z5gi@PzJ2?MiHTwV{{6(p#u677M|^xd2?+@#CMI&=zyS^(JjkI#hd6xrFh`CY;pow$ zBqb$r?AS4mA3x5C6DLScP9`NKg_9>wa_ZD6PM- z?AfzqWo2>h+&RvlKhK2=7s$@eCMPF{+}vC)UcAVqOP9EO`7(KVd0e@2g{xPulAoW? zwQJY7e*HQH1qBoq7INdp4Q}4NNl{S|w{G2{xVV^-k`hWwOSygfHh1pa;qKkL+`D&= z`}gnj;K2jR%F1~7@F9;LJ)*q4oQjGH9zTA}lP6Dj`t&K!o;~CF^XI&H@q)_AN~)@= zc=_@ruU@^Py1JU0ni^iee$AUVZ+QFmE$`mFh)YjJW;ll?$e*DO%PoJo(tK;+M z&wTmvg|A<~^6lF<>g(%iXlS6Zv61iJzthyzM00a9KYsk+=g*(~`t^&JmKIuDTWM=+ cqrJVIj*bpGJ3Hy>>Y}^5o1UH?e*gZ>AFQN*!~g&Q diff --git a/release/runner17_ValueDetect/solutions/2_模型列表/A1/taskinfo.json b/release/runner17_ValueDetect/solutions/2_模型列表/A1/taskinfo.json deleted file mode 100644 index e57179e..0000000 --- a/release/runner17_ValueDetect/solutions/2_模型列表/A1/taskinfo.json +++ /dev/null @@ -1,763 +0,0 @@ -{ - "algoArray": [ - { - "algo_OutParam_base_id": 3, - "algo_base_id": 2, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 1, - "algo_lib_name": "", - "algo_name": "圆心定位", - "algo_path": "caliCenter.dll", - "algo_roi_id": 423241480, - "outParamArray": [ - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "center", - "out_param_save": false, - "out_param_type": 6 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "centerRoi", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - } - ], - "paramArray": [ - { - "param_description": "圆心模板", - "param_id": 1, - "param_lock": false, - "param_name": "ROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1314.0406494140625, - "roi_item_value2": 955.4739379882812, - "roi_item_value3": 212 - } - ] - ] - } - ] - }, - { - "algo_OutParam_base_id": 9, - "algo_base_id": 4, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 2, - "algo_lib_name": "", - "algo_name": "气门芯标定", - "algo_path": "caliValve.dll", - "algo_roi_id": 1, - "outParamArray": [ - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 14, - "out_param_name": "background", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 13, - "out_param_name": "backgroundThresh", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 15 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 9, - "out_param_name": "barNum", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 5 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 7, - "out_param_name": "barTemplate", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 11, - "out_param_name": "baseImage", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "center", - "out_param_save": false, - "out_param_type": 6 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 10, - "out_param_name": "flagCircle", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 0 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 16, - "out_param_name": "startDis", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 818.600830078125 - }, - { - "out_param_description": " ", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 15, - "out_param_name": "startOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 900 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "valveDis", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 600.9156494140625 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 5, - "out_param_name": "valveOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 3106 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 6, - "out_param_name": "valveTemplate", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 4, - "out_param_name": "valveWidth", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 45.5 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 12, - "out_param_name": "weightMat", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 8, - "out_param_name": "withinOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 459 - } - ], - "paramArray": [ - { - "param_description": "气门芯模板", - "param_id": 2, - "param_lock": false, - "param_name": "ROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1706.266357421875, - "roi_item_value2": 1410.7305908203125, - "roi_item_value3": 45.5 - } - ] - ] - }, - { - "param_description": "参考线模板", - "param_id": 4, - "param_lock": false, - "param_name": "StartROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1312.7010498046875, - "roi_item_value2": 136.87423706054688, - "roi_item_value3": 48.5 - } - ] - ] - }, - { - "param_description": "背景剪除阈值", - "param_id": 6, - "param_lock": false, - "param_name": "backgroundThresh", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 15 - }, - { - "param_description": "辐条数量", - "param_id": 9, - "param_lock": false, - "param_name": "barNum", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 5 - }, - { - "param_description": "辐条模板", - "param_id": 3, - "param_lock": false, - "param_name": "barROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1861.3594970703125, - "roi_item_value2": 1190.9151611328125, - "roi_item_value3": 67.5 - } - ] - ] - }, - { - "param_description": "轮毂中心坐标,绑定圆心定位", - "param_id": 1, - "param_lock": false, - "param_name": "center", - "param_show": false, - "param_src_algo_id": 1, - "param_src_param_id": 1, - "param_src_task_id": -1, - "param_type": 6, - "param_value_point_1": 1314.0406494140625, - "param_value_point_2": 955.4739379882812 - }, - { - "param_description": "无气门芯识别", - "param_id": 5, - "param_lock": false, - "param_name": "flagCircle", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "背景图启用,0关闭,1打开", - "param_id": 8, - "param_lock": false, - "param_name": "ibackground", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "型号判定,0关闭,1打开", - "param_id": 7, - "param_lock": false, - "param_name": "ifClasify", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - } - ] - }, - { - "algo_OutParam_base_id": 17, - "algo_base_id": 13, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 3, - "algo_lib_name": "", - "algo_name": "检测", - "algo_path": "valveDetector.dll", - "algo_roi_id": 1, - "outParamArray": [ - { - "out_param_description": "结果角度", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "angle", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 220.56124999999997 - }, - { - "out_param_description": "错误类型", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 4, - "out_param_name": "error", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 0 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - }, - { - "out_param_description": "结果提示", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 5, - "out_param_name": "resultTip", - "out_param_save": false, - "out_param_type": 2, - "out_param_value": "/70" - }, - { - "out_param_description": "相似度得分", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "score", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 1 - } - ], - "paramArray": [ - { - "param_description": " ", - "param_file_path": "1_2_3_22_in.wsf", - "param_id": 22, - "param_lock": false, - "param_name": "background", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "背景差异性阈值", - "param_id": 1, - "param_lock": false, - "param_name": "backgroundThresh", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 15 - }, - { - "param_description": " ", - "param_id": 12, - "param_lock": true, - "param_name": "barNum", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 9, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 5 - }, - { - "param_description": "辐条得分值", - "param_id": 10, - "param_lock": false, - "param_name": "barScore", - "param_show": true, - "param_src_algo_id": 0, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 60 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_19_in.wsf", - "param_id": 19, - "param_lock": true, - "param_name": "barTemplate", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 7, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_21_in.wsf", - "param_id": 21, - "param_lock": false, - "param_name": "baseImage", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂型号匹配分值", - "param_id": 9, - "param_lock": false, - "param_name": "cMatchScore", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 0.2 - }, - { - "param_description": "轮毂中心坐标,绑定气门芯标定", - "param_id": 6, - "param_lock": true, - "param_name": "center", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 1, - "param_src_task_id": -1, - "param_type": 6, - "param_value_point_1": 1314.0406494140625, - "param_value_point_2": 955.4739379882812 - }, - { - "param_description": "是否开启中心定位,0关闭,1开启", - "param_id": 5, - "param_lock": false, - "param_name": "centerAlg", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 1 - }, - { - "param_description": "轮毂中心模板, 绑定圆定位", - "param_file_path": "1_2_3_7_in.wsf", - "param_id": 7, - "param_lock": true, - "param_name": "centerRoi", - "param_show": false, - "param_src_algo_id": 1, - "param_src_param_id": 3, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂区域框选", - "param_id": 8, - "param_lock": false, - "param_name": "cirlceArea", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9 - }, - { - "param_description": "0:无气门芯标识,绑定气门芯标定", - "param_id": 4, - "param_lock": false, - "param_name": "flagCircle", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "相似度评价阈值,在0~100之间", - "param_id": 2, - "param_lock": false, - "param_name": "scoreTh", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 70 - }, - { - "param_description": " ", - "param_id": 17, - "param_lock": true, - "param_name": "startDis", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 16, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 818.600830078125 - }, - { - "param_description": " ", - "param_id": 14, - "param_lock": true, - "param_name": "startOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 15, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 900 - }, - { - "param_description": " ", - "param_id": 16, - "param_lock": true, - "param_name": "valveDis", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 3, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 600.9156494140625 - }, - { - "param_description": " ", - "param_id": 13, - "param_lock": true, - "param_name": "valveOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 5, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 3106 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_18_in.wsf", - "param_id": 18, - "param_lock": true, - "param_name": "valveTemplate", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 6, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": " ", - "param_id": 15, - "param_lock": true, - "param_name": "valveWidth", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 4, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 45.5 - }, - { - "param_description": " ", - "param_file_path": "1_2_3_20_in.wsf", - "param_id": 20, - "param_lock": false, - "param_name": "weightMat", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂类型,0摩伦,1汽轮", - "param_id": 3, - "param_lock": false, - "param_name": "wheelType", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": " ", - "param_id": 11, - "param_lock": true, - "param_name": "withinOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 8, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 459 - } - ] - } - ], - "property": [ - { - "prop_name": "a", - "prop_type": 2, - "prop_value": 11 - }, - { - "prop_name": "b", - "prop_type": 2, - "prop_value": 11 - }, - { - "prop_name": "model_cali", - "prop_type": 1, - "prop_value": true - }, - { - "prop_name": "model_plc", - "prop_type": 2, - "prop_value": 100 - }, - { - "prop_name": "model_time", - "prop_type": 10, - "prop_value": "" - } - ], - "task_algo_base_id": 3, - "task_algo_run_id": 3, - "task_base_id": 0, - "task_cameraID": 1, - "task_default_dir": "", - "task_description": "", - "task_group_param_id": -1, - "task_id": 2, - "task_name": "A1", - "task_run": true -} diff --git a/runner17/solutions/1_模型列表/123/1_7_3_19_in.wsf b/runner17/solutions/1_模型列表/123/1_7_3_19_in.wsf deleted file mode 100644 index 42f9a9c16c9b8d1cdc31e25ce6a431554b520d53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16730 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 diff --git a/runner17/solutions/1_模型列表/123/1_7_3_20_in.wsf b/runner17/solutions/1_模型列表/123/1_7_3_20_in.wsf deleted file mode 100644 index 68ff946edc26054cdc0c89de566d6dfc7dc05464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmZXHXH*CZ07h>~izZ5uhEP^0DNRKhG7CwzM2V&}RaQbt%M4|-gbEQwDl^I~$_g2k zLc2K6`}59u-;aCmXJ)G_#NYj6jeqkm1rYtu`+o`u2p}jZNUvVK5E2rickkW^3kxG6 zB7&%>C}Lt_h>MHUr%xaH_U(&=gane3l1NEOAuTP9jEoGjvaC@7$)sK}r}gBUz`FiJ{F3>h*6Wo2blR8&w^RYgrrjiEz_qOPvauwla( zK72SMMvOp1Ljz4sO-7C!$*57I7(IG4W5$eO?AWnrX=yQT+&IRMAJ2pd6VTSyMn^}7 zi4!NHtEIM8%*+gPb91In zoyxRn)3C6xVEXjwSXx?QWo3o6wKX<2Hq4kY16x~LX3m_+tXZ>|J$p8D=FDO4+_}t~ zHxD~IJM8W4nLmF%3l=P3;lhPDI5@Cq(IOlj9a+41F-}fSELpOIrAwExY}qoFFJI1z z6)RY|awV%)tzz}+)i^slvu4d2TwGjOyLK(>)~&4}$@7vA39`1ttX>+8#=O`GuZ^JDYo&G`HK6A%zUU|=9YK|uru2NMz!!j>&t z2n`J-EG&%h@Nl+n-O9FY+t|K+J3DslVCT-AL_|ceYu7F!BO}?pdpCRb>|yWTy+lPt z5gi@PzJ2?MiHTwV{{6(p#u677M|^xd2?+@#CMI&=zyS^(JjkI#hd6xrFh`CY;pow$ zBqb$r?AS4mA3x5C6DLScP9`NKg_9>wa_ZD6PM- z?AfzqWo2>h+&RvlKhK2=7s$@eCMPF{+}vC)UcAVqOP9EO`7(KVd0e@2g{xPulAoW? zwQJY7e*HQH1qBoq7INdp4Q}4NNl{S|w{G2{xVV^-k`hWwOSygfHh1pa;qKkL+`D&= z`}gnj;K2jR%F1~7@F9;LJ)*q4oQjGH9zTA}lP6Dj`t&K!o;~CF^XI&H@q)_AN~)@= zc=_@ruU@^Py1JU0ni^iee$AUVZ+QFmE$`mFh)YjJW;ll?$e*DO%PoJo(tK;+M z&wTmvg|A<~^6lF<>g(%iXlS6Zv61iJzthyzM00a9KYsk+=g*(~`t^&JmKIuDTWM=+ cqrJVIj*bpGJ3Hy>>Y}^5o1UH?e*gZ>AFQN*!~g&Q diff --git a/runner17/solutions/1_模型列表/123/taskinfo.json b/runner17/solutions/1_模型列表/123/taskinfo.json deleted file mode 100644 index 5e01759..0000000 --- a/runner17/solutions/1_模型列表/123/taskinfo.json +++ /dev/null @@ -1,783 +0,0 @@ -{ - "algoArray": [ - { - "algo_OutParam_base_id": 3, - "algo_base_id": 2, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 1, - "algo_lib_name": "", - "algo_name": "圆心定位", - "algo_path": "caliCenter.dll", - "algo_roi_id": 423241480, - "outParamArray": [ - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "center", - "out_param_save": false, - "out_param_type": 6 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "centerRoi", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - } - ], - "paramArray": [ - { - "param_description": "圆心模板", - "param_id": 1, - "param_lock": false, - "param_name": "ROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 1316.4891357421875, - "roi_item_value2": 954.30029296875, - "roi_item_value3": 212 - } - ] - ] - } - ] - }, - { - "algo_OutParam_base_id": 9, - "algo_base_id": 4, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 2, - "algo_lib_name": "", - "algo_name": "气门芯标定", - "algo_path": "caliValve.dll", - "algo_roi_id": 1, - "outParamArray": [ - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 14, - "out_param_name": "background", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 13, - "out_param_name": "backgroundThresh", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 15 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 9, - "out_param_name": "barNum", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 5 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 7, - "out_param_name": "barTemplate", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 11, - "out_param_name": "baseImage", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "center", - "out_param_save": false, - "out_param_type": 6 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 10, - "out_param_name": "flagCircle", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 0 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 16, - "out_param_name": "startDis", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 610.9727172851562 - }, - { - "out_param_description": " ", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 15, - "out_param_name": "startOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 1844 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "valveDis", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 610.9514770507812 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 5, - "out_param_name": "valveOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 1842 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 6, - "out_param_name": "valveTemplate", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 4, - "out_param_name": "valveWidth", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 45.5 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 12, - "out_param_name": "weightMat", - "out_param_save": false, - "out_param_type": 10 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 8, - "out_param_name": "withinOffset", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 211 - } - ], - "paramArray": [ - { - "param_description": "气门芯模板", - "param_id": 2, - "param_lock": false, - "param_name": "ROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 707.203369140625, - "roi_item_value2": 999.3842163085938, - "roi_item_value3": 45.5 - } - ] - ] - }, - { - "param_description": "参考线模板", - "param_id": 4, - "param_lock": false, - "param_name": "StartROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 707.316162109375, - "roi_item_value2": 1001.1607055664062, - "roi_item_value3": 48.5 - } - ] - ] - }, - { - "param_description": "背景剪除阈值", - "param_id": 6, - "param_lock": false, - "param_name": "backgroundThresh", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 15 - }, - { - "param_description": "辐条数量", - "param_id": 9, - "param_lock": false, - "param_name": "barNum", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 5 - }, - { - "param_description": "辐条模板", - "param_id": 3, - "param_lock": false, - "param_name": "barROI", - "param_show": true, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9, - "param_value": [ - [ - { - "roi_item_type": 1, - "roi_item_value1": 737.2562866210938, - "roi_item_value2": 777.664306640625, - "roi_item_value3": 84.5 - } - ] - ] - }, - { - "param_description": "轮毂中心坐标,绑定圆心定位", - "param_id": 1, - "param_lock": false, - "param_name": "center", - "param_show": false, - "param_src_algo_id": 1, - "param_src_param_id": 1, - "param_src_task_id": -1, - "param_type": 6, - "param_value_point_1": 1316.4891357421875, - "param_value_point_2": 954.30029296875 - }, - { - "param_description": "无气门芯识别", - "param_id": 5, - "param_lock": false, - "param_name": "flagCircle", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "背景图启用,0关闭,1打开", - "param_id": 8, - "param_lock": false, - "param_name": "ibackground", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "型号判定,0关闭,1打开", - "param_id": 7, - "param_lock": false, - "param_name": "ifClasify", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - } - ] - }, - { - "algo_OutParam_base_id": 19, - "algo_base_id": 13, - "algo_description": "", - "algo_exec_enabled": true, - "algo_func_name": "", - "algo_id": 3, - "algo_lib_name": "", - "algo_name": "检测", - "algo_path": "valveDetector.dll", - "algo_roi_id": 1, - "outParamArray": [ - { - "out_param_description": "结果角度", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 3, - "out_param_name": "angle", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 223.6545 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 18, - "out_param_name": "centerPoint", - "out_param_save": false, - "out_param_type": 24 - }, - { - "out_param_description": "错误类型", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 4, - "out_param_name": "error", - "out_param_save": false, - "out_param_type": 0, - "out_param_value": 0 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 1, - "out_param_name": "image", - "out_param_save": false, - "out_param_type": 4 - }, - { - "out_param_description": "", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 19, - "out_param_name": "imageName", - "out_param_save": false, - "out_param_type": 24 - }, - { - "out_param_description": "结果提示", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 5, - "out_param_name": "resultTip", - "out_param_save": false, - "out_param_type": 2, - "out_param_value": "/70" - }, - { - "out_param_description": "相似度得分", - "out_param_dest_algo_id": -1, - "out_param_dest_param_id": -1, - "out_param_dest_task_id": -1, - "out_param_id": 2, - "out_param_name": "score", - "out_param_save": false, - "out_param_type": 3, - "out_param_value": 0.9590626955032349 - } - ], - "paramArray": [ - { - "param_description": " ", - "param_file_path": "1_7_3_22_in.wsf", - "param_id": 22, - "param_lock": false, - "param_name": "background", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "背景差异性阈值", - "param_id": 1, - "param_lock": false, - "param_name": "backgroundThresh", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 15 - }, - { - "param_description": " ", - "param_id": 12, - "param_lock": true, - "param_name": "barNum", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 9, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 5 - }, - { - "param_description": "辐条得分值", - "param_id": 10, - "param_lock": false, - "param_name": "barScore", - "param_show": true, - "param_src_algo_id": 0, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 60 - }, - { - "param_description": " ", - "param_file_path": "1_7_3_19_in.wsf", - "param_id": 19, - "param_lock": true, - "param_name": "barTemplate", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 7, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": " ", - "param_file_path": "1_7_3_21_in.wsf", - "param_id": 21, - "param_lock": false, - "param_name": "baseImage", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂型号匹配分值", - "param_id": 9, - "param_lock": false, - "param_name": "cMatchScore", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 0.2 - }, - { - "param_description": "轮毂中心坐标,绑定气门芯标定", - "param_id": 6, - "param_lock": true, - "param_name": "center", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 1, - "param_src_task_id": -1, - "param_type": 6, - "param_value_point_1": 1316.4891357421875, - "param_value_point_2": 954.30029296875 - }, - { - "param_description": "是否开启中心定位,0关闭,1开启", - "param_id": 5, - "param_lock": false, - "param_name": "centerAlg", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 1 - }, - { - "param_description": "轮毂中心模板, 绑定圆定位", - "param_file_path": "1_7_3_7_in.wsf", - "param_id": 7, - "param_lock": true, - "param_name": "centerRoi", - "param_show": false, - "param_src_algo_id": 1, - "param_src_param_id": 3, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂区域框选", - "param_id": 8, - "param_lock": false, - "param_name": "cirlceArea", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 9 - }, - { - "param_description": "0:无气门芯标识,绑定气门芯标定", - "param_id": 4, - "param_lock": false, - "param_name": "flagCircle", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": "相似度评价阈值,在0~100之间", - "param_id": 2, - "param_lock": false, - "param_name": "scoreTh", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 70 - }, - { - "param_description": " ", - "param_id": 17, - "param_lock": true, - "param_name": "startDis", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 16, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 610.9727172851562 - }, - { - "param_description": " ", - "param_id": 14, - "param_lock": true, - "param_name": "startOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 15, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 1844 - }, - { - "param_description": " ", - "param_id": 16, - "param_lock": true, - "param_name": "valveDis", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 3, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 610.9514770507812 - }, - { - "param_description": " ", - "param_id": 13, - "param_lock": true, - "param_name": "valveOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 5, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 1842 - }, - { - "param_description": " ", - "param_file_path": "1_7_3_18_in.wsf", - "param_id": 18, - "param_lock": true, - "param_name": "valveTemplate", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 6, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": " ", - "param_id": 15, - "param_lock": true, - "param_name": "valveWidth", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 4, - "param_src_task_id": -1, - "param_type": 3, - "param_value": 45.5 - }, - { - "param_description": " ", - "param_file_path": "1_7_3_20_in.wsf", - "param_id": 20, - "param_lock": false, - "param_name": "weightMat", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": -1, - "param_src_task_id": -1, - "param_type": 10 - }, - { - "param_description": "轮毂类型,0摩伦,1汽轮", - "param_id": 3, - "param_lock": false, - "param_name": "wheelType", - "param_show": false, - "param_src_algo_id": -1, - "param_src_param_id": 0, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 0 - }, - { - "param_description": " ", - "param_id": 11, - "param_lock": true, - "param_name": "withinOffset", - "param_show": false, - "param_src_algo_id": 2, - "param_src_param_id": 8, - "param_src_task_id": -1, - "param_type": 0, - "param_value": 211 - } - ] - } - ], - "property": [ - { - "prop_name": "a", - "prop_type": 2, - "prop_value": 11 - }, - { - "prop_name": "b", - "prop_type": 2, - "prop_value": 11 - }, - { - "prop_name": "model_cali", - "prop_type": 1, - "prop_value": true - }, - { - "prop_name": "model_plc", - "prop_type": 2, - "prop_value": 100 - }, - { - "prop_name": "model_time", - "prop_type": 10, - "prop_value": "" - } - ], - "task_algo_base_id": 3, - "task_algo_run_id": 3, - "task_base_id": 0, - "task_cameraID": 1, - "task_default_dir": "", - "task_description": "", - "task_group_param_id": -1, - "task_id": 7, - "task_name": "123", - "task_run": true -} diff --git a/runner17/solutions/1_模型列表/C3/1_4_3_18_in.wsf b/runner17/solutions/1_模型列表/C3/1_4_3_18_in.wsf deleted file mode 100644 index e6c3c357381699b1b72d3b564db94dbb58fd81cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9450 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 diff --git a/runner17/solutions/1_模型列表/C3/1_4_3_19_in.wsf b/runner17/solutions/1_模型列表/C3/1_4_3_19_in.wsf deleted file mode 100644 index d09ba46d6f8ab957f352e3e4ec8340a546d9a7c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13454 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 Wqx{@#9OfWcI6?$~ARrt_hW;N@q7#(> diff --git a/runner17/solutions/1_模型列表/C3/1_4_3_20_in.wsf b/runner17/solutions/1_模型列表/C3/1_4_3_20_in.wsf deleted file mode 100644 index 68ff946edc26054cdc0c89de566d6dfc7dc05464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmZXHXH*CZ07h>~izZ5uhEP^0DNRKhG7CwzM2V&}RaQbt%M4|-gbEQwDl^I~$_g2k zLc2K6`}59u-;aCmXJ)G_#NYj6jeqkm1rYtu`+o`u2p}jZNUvVK5E2rickkW^3kxG6 zB7&%>C}Lt_h>MHUr%xaH_U(&=gane3l1NEOAuTP9jEoGjvaC@7$)sK}r}gBUz`FiJ{F3>h*6Wo2blR8&w^RYgrrjiEz_qOPvauwla( zK72SMMvOp1Ljz4sO-7C!$*57I7(IG4W5$eO?AWnrX=yQT+&IRMAJ2pd6VTSyMn^}7 zi4!NHtEIM8%*+gPb91In zoyxRn)3C6xVEXjwSXx?QWo3o6wKX<2Hq4kY16x~LX3m_+tXZ>|J$p8D=FDO4+_}t~ zHxD~IJM8W4nLmF%3l=P3;lhPDI5@Cq(IOlj9a+41F-}fSELpOIrAwExY}qoFFJI1z z6)RY|awV%)tzz}+)i^slvu4d2TwGjOyLK(>)~&4}$@7vA39`1ttX>+8#=O`GuZ^JDYo&G`HK6A%zUU|=9YK|uru2NMz!!j>&t z2n`J-EG&%h@Nl+n-O9FY+t|K+J3DslVCT-AL_|ceYu7F!BO}?pdpCRb>|yWTy+lPt z5gi@PzJ2?MiHTwV{{6(p#u677M|^xd2?+@#CMI&=zyS^(JjkI#hd6xrFh`CY;pow$ zBqb$r?AS4mA3x5C6DLScP9`NKg_9>wa_ZD6PM- z?AfzqWo2>h+&RvlKhK2=7s$@eCMPF{+}vC)UcAVqOP9EO`7(KVd0e@2g{xPulAoW? zwQJY7e*HQH1qBoq7INdp4Q}4NNl{S|w{G2{xVV^-k`hWwOSygfHh1pa;qKkL+`D&= z`}gnj;K2jR%F1~7@F9;LJ)*q4oQjGH9zTA}lP6Dj`t&K!o;~CF^XI&H@q)_AN~)@= zc=_@ruU@^Py1JU0ni^iee$AUVZ+QFmE$`mFh)YjJW;ll?$e*DO%PoJo(tK;+M z&wTmvg|A<~^6lF<>g(%iXlS6Zv61iJzthyzM00a9KYsk+=g*(~`t^&JmKIuDTWM=+ cqrJVIj*bpGJ3Hy>>Y}^5o1UH?e*gZ>AFQN*!~g&Q diff --git a/runner17/solutions/1_模型列表/C3/1_4_3_21_in.wsf b/runner17/solutions/1_模型列表/C3/1_4_3_21_in.wsf deleted file mode 100644 index 68ff946edc26054cdc0c89de566d6dfc7dc05464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmZXHXH*CZ07h>~izZ5uhEP^0DNRKhG7CwzM2V&}RaQbt%M4|-gbEQwDl^I~$_g2k zLc2K6`}59u-;aCmXJ)G_#NYj6jeqkm1rYtu`+o`u2p}jZNUvVK5E2rickkW^3kxG6 zB7&%>C}Lt_h>MHUr%xaH_U(&=gane3l1NEOAuTP9jEoGjvaC@7$)sK}r}gBUz`FiJ{F3>h*6Wo2blR8&w^RYgrrjiEz_qOPvauwla( zK72SMMvOp1Ljz4sO-7C!$*57I7(IG4W5$eO?AWnrX=yQT+&IRMAJ2pd6VTSyMn^}7 zi4!NHtEIM8%*+gPb91In zoyxRn)3C6xVEXjwSXx?QWo3o6wKX<2Hq4kY16x~LX3m_+tXZ>|J$p8D=FDO4+_}t~ zHxD~IJM8W4nLmF%3l=P3;lhPDI5@Cq(IOlj9a+41F-}fSELpOIrAwExY}qoFFJI1z z6)RY|awV%)tzz}+)i^slvu4d2TwGjOyLK(>)~&4}$@7vA39`1ttX>+8#=O`GuZ^JDYo&G`HK6A%zUU|=9YK|uru2NMz!!j>&t z2n`J-EG&%h@Nl+n-O9FY+t|K+J3DslVCT-AL_|ceYu7F!BO}?pdpCRb>|yWTy+lPt z5gi@PzJ2?MiHTwV{{6(p#u677M|^xd2?+@#CMI&=zyS^(JjkI#hd6xrFh`CY;pow$ zBqb$r?AS4mA3x5C6DLScP9`NKg_9>wa_ZD6PM- z?AfzqWo2>h+&RvlKhK2=7s$@eCMPF{+}vC)UcAVqOP9EO`7(KVd0e@2g{xPulAoW? zwQJY7e*HQH1qBoq7INdp4Q}4NNl{S|w{G2{xVV^-k`hWwOSygfHh1pa;qKkL+`D&= z`}gnj;K2jR%F1~7@F9;LJ)*q4oQjGH9zTA}lP6Dj`t&K!o;~CF^XI&H@q)_AN~)@= zc=_@ruU@^Py1JU0ni^iee$AUVZ+QFmE$`mFh)YjJW;ll?$e*DO%PoJo(tK;+M z&wTmvg|A<~^6lF<>g(%iXlS6Zv61iJzthyzM00a9KYsk+=g*(~`t^&JmKIuDTWM=+ cqrJVIj*bpGJ3Hy>>Y}^5o1UH?e*gZ>AFQN*!~g&Q diff --git a/runner17/solutions/1_模型列表/C3/1_4_3_22_in.wsf b/runner17/solutions/1_模型列表/C3/1_4_3_22_in.wsf deleted file mode 100644 index 68ff946edc26054cdc0c89de566d6dfc7dc05464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmZXHXH*CZ07h>~izZ5uhEP^0DNRKhG7CwzM2V&}RaQbt%M4|-gbEQwDl^I~$_g2k zLc2K6`}59u-;aCmXJ)G_#NYj6jeqkm1rYtu`+o`u2p}jZNUvVK5E2rickkW^3kxG6 zB7&%>C}Lt_h>MHUr%xaH_U(&=gane3l1NEOAuTP9jEoGjvaC@7$)sK}r}gBUz`FiJ{F3>h*6Wo2blR8&w^RYgrrjiEz_qOPvauwla( zK72SMMvOp1Ljz4sO-7C!$*57I7(IG4W5$eO?AWnrX=yQT+&IRMAJ2pd6VTSyMn^}7 zi4!NHtEIM8%*+gPb91In zoyxRn)3C6xVEXjwSXx?QWo3o6wKX<2Hq4kY16x~LX3m_+tXZ>|J$p8D=FDO4+_}t~ zHxD~IJM8W4nLmF%3l=P3;lhPDI5@Cq(IOlj9a+41F-}fSELpOIrAwExY}qoFFJI1z z6)RY|awV%)tzz}+)i^slvu4d2TwGjOyLK(>)~&4}$@7vA39`1ttX>+8#=O`GuZ^JDYo&G`HK6A%zUU|=9YK|uru2NMz!!j>&t z2n`J-EG&%h@Nl+n-O9FY+t|K+J3DslVCT-AL_|ceYu7F!BO}?pdpCRb>|yWTy+lPt z5gi@PzJ2?MiHTwV{{6(p#u677M|^xd2?+@#CMI&=zyS^(JjkI#hd6xrFh`CY;pow$ zBqb$r?AS4mA3x5C6DLScP9`NKg_9>wa_ZD6PM- z?AfzqWo2>h+&RvlKhK2=7s$@eCMPF{+}vC)UcAVqOP9EO`7(KVd0e@2g{xPulAoW? zwQJY7e*HQH1qBoq7INdp4Q}4NNl{S|w{G2{xVV^-k`hWwOSygfHh1pa;qKkL+`D&= z`}gnj;K2jR%F1~7@F9;LJ)*q4oQjGH9zTA}lP6Dj`t&K!o;~CF^XI&H@q)_AN~)@= zc=_@ruU@^Py1JU0ni^iee$AUVZ+QFmE$`mFh)YjJW;ll?$e*DO%PoJo(tK;+M z&wTmvg|A<~^6lF<>g(%iXlS6Zv61iJzthyzM00a9KYsk+=g*(~`t^&JmKIuDTWM=+ cqrJVIj*bpGJ3Hy>>Y}^5o1UH?e*gZ>AFQN*!~g&Q diff --git a/runner17/solutions/1_模型列表/C3/1_4_3_7_in.wsf b/runner17/solutions/1_模型列表/C3/1_4_3_7_in.wsf deleted file mode 100644 index b4e37d8aa764e1e3c682a214b39071bae308f4b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180854 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 + } + return true; +} int Station::modelCount() { return m_models.size(); } diff --git a/src/lpMain/Station.h b/src/lpMain/Station.h index e34a102..223e766 100644 --- a/src/lpMain/Station.h +++ b/src/lpMain/Station.h @@ -39,6 +39,7 @@ public: virtual bool addModel(QString strModel); virtual bool delModel(QString strModel); + virtual bool modModel(QString strOld, QString strNew); virtual bool setView(QWidget *pWgt); virtual bool IStandard(QString strModel); virtual int IGetPLCIndex(QString strModel); diff --git a/src/lpMain/WfCtrl.cpp b/src/lpMain/WfCtrl.cpp index cb0cfb9..8a9acb5 100644 --- a/src/lpMain/WfCtrl.cpp +++ b/src/lpMain/WfCtrl.cpp @@ -236,6 +236,49 @@ bool CWfCtrl::ISelModel(QString nStation, QString strModel) return true; } +bool CWfCtrl::IModifyModel(QString nStation, QString strModelold, QString strModelnew) +{ + if (strModelold.isEmpty()) + return false; + IStation *pStation = IGetStationByKey(nStation); + if (!pStation) { + return false; + } + QString strNow = pStation->currentRunningModel(); + if (strNow == strModelold) { + return false; + } + + + if (m_pEngine) + { + IDetectorSolutionMgr* pMgr = m_pEngine->getSolutionMgr(); + if (pMgr) + { + QMap solutionMap = pMgr->GetAllSolutions(); + QMap::iterator it = solutionMap.find(nStation); + if (it != solutionMap.end()) + { + IDetectorSolution* pSolution = *it; + if (pSolution) { + pSolution->ModifyTask(strModelold, strModelnew); + pSolution->SaveTaskByName(""); + } + } + } + } + pStation->modModel(strModelold, strModelnew); + QMap>::iterator it = m_PLCIndexs.find(nStation); + if (it != m_PLCIndexs.end()) + { + int val = (*it).take(strModelold); + + (*it).insert(strModelnew,val); + } + writeIndexParam(); + return true; +} + QString CWfCtrl::IGetCurrentRuningModel(QString nIndex) { IStation *pStation = IGetStationByKey(nIndex); @@ -246,6 +289,24 @@ QString CWfCtrl::IGetCurrentRuningModel(QString nIndex) return strNow; } +QStringList CWfCtrl::IGetModelNames(QString nStation) +{ + if (m_pEngine) + { + IDetectorSolutionMgr* pMgr = m_pEngine->getSolutionMgr(); + if (pMgr) + { + QMap solutionMap = pMgr->GetAllSolutions(); + QMap::iterator it = solutionMap.find(nStation); + if (it != solutionMap.end()) + { + return (*it)->GetAllTaskNames(); + } + } + } + return QStringList(); +} + void CWfCtrl::writeIndexParam() { QString strPath = m_rootPath + "/user/plcIndex.json"; diff --git a/src/lpMain/WfCtrl.h b/src/lpMain/WfCtrl.h index c41e13b..6cd391e 100644 --- a/src/lpMain/WfCtrl.h +++ b/src/lpMain/WfCtrl.h @@ -27,8 +27,9 @@ public: virtual bool IDeleteModel(QString, QString); virtual bool ISaveModel(QString, QString); virtual bool ISelModel(QString, QString); + virtual bool IModifyModel(QString, QString, QString); virtual QString IGetCurrentRuningModel(QString); - + virtual QStringList IGetModelNames(QString nStation); void writeIndexParam(); void readIndexParam(); private: diff --git a/src/lpbdesigner/CDetectorUI.cpp b/src/lpbdesigner/CDetectorUI.cpp index d89965e..a8ea01a 100644 --- a/src/lpbdesigner/CDetectorUI.cpp +++ b/src/lpbdesigner/CDetectorUI.cpp @@ -42,8 +42,8 @@ bool CDetectorUI::ShowMainFrame(class QWidget* parent) m_pMainFrame->setWindowModality(Qt::ApplicationModal); m_pMainFrame->setAttribute(Qt::WA_ShowModal, true); - m_pMainFrame->show(); - //m_pMainFrame->showMaximized(); + //m_pMainFrame->show(); + m_pMainFrame->showMaximized(); return true; } diff --git a/src/lpbdesigner/DsgRoiDlg.cpp b/src/lpbdesigner/DsgRoiDlg.cpp index ec098a8..72bbbeb 100644 --- a/src/lpbdesigner/DsgRoiDlg.cpp +++ b/src/lpbdesigner/DsgRoiDlg.cpp @@ -2,6 +2,7 @@ #include "ui_RoiDlg.h" #include "colossusbase.h" #include "QPalette" +#include "QSetCenterDlg.h" #define WINDOWS_ICON ":/resource/app.png" @@ -45,6 +46,7 @@ CDsgRoiDlg::CDsgRoiDlg(QWidget *parent) : QDialog(parent), ui(new Ui::RoiDlg) connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(OnCancel())); connect(ui->pushButton_7, SIGNAL(clicked()), this, SLOT(OnCircle())); connect(ui->pushButton_8, SIGNAL(clicked()), this, SLOT(OnShowColorDlg())); + ui->pushButton_8->setAutoDefault(false); connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(OnShowTenFlag())); @@ -52,6 +54,7 @@ CDsgRoiDlg::CDsgRoiDlg(QWidget *parent) : QDialog(parent), ui(new Ui::RoiDlg) m_pRoiScene = new RoiScene(this); m_pRoiScene->SetGraphicsView(ui->graphicsView); m_pRoiScene->SetInfoLable(ui->label_pixel_info); + connect(m_pRoiScene, SIGNAL(sgResetItem(QPoint, QRect)), this, SLOT(onROIMove(QPoint, QRect))); connect(ui->m_pbUp, SIGNAL(clicked()), this, SLOT(OnMove())); connect(ui->m_pbLeft, SIGNAL(clicked()), this, SLOT(OnMove())); @@ -467,6 +470,7 @@ void CDsgRoiDlg::showEvent(QShowEvent *evt) return; m_pRoiScene->Initialize(m_tempRoiData); m_pRoiScene->DisableMenu(false); + ui->label_2->clear(); } void CDsgRoiDlg::OnZoomIn() @@ -495,3 +499,9 @@ void CDsgRoiDlg::changeEvent(QEvent *event) ui->retranslateUi(this); } } + +Q_SLOT void CDsgRoiDlg::onROIMove(QPoint pos, QRect rect) +{ + ui->label_2->setText(QString("center:[%1,%2]").arg(pos.x()).arg(pos.y())); +} + diff --git a/src/lpbdesigner/DsgRoiDlg.h b/src/lpbdesigner/DsgRoiDlg.h index 86ced8e..58bf23e 100644 --- a/src/lpbdesigner/DsgRoiDlg.h +++ b/src/lpbdesigner/DsgRoiDlg.h @@ -25,9 +25,11 @@ public: virtual void OnSetParam(IDetectorTask* pTask){} virtual void showEvent(QShowEvent *evt); Q_SLOT void onSliderChange(int value); + Q_SLOT void onROIMove(QPoint pos, QRect rect); protected: virtual void changeEvent(QEvent *event); -public slots : + +public slots: bool OnOk(); bool OnCancel(); void OnRectangle(); diff --git a/src/lpbdesigner/GeneratedFiles/Debug/moc_DsgRoiDlg.cpp b/src/lpbdesigner/GeneratedFiles/Debug/moc_DsgRoiDlg.cpp deleted file mode 100644 index fde77d7..0000000 --- a/src/lpbdesigner/GeneratedFiles/Debug/moc_DsgRoiDlg.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'DsgRoiDlg.h' -** -** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.4) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include "../../DsgRoiDlg.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'DsgRoiDlg.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 67 -#error "This file was generated using the moc from 5.9.4. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_CDsgRoiDlg_t { - QByteArrayData data[15]; - char stringdata0[147]; -}; -#define QT_MOC_LITERAL(idx, ofs, len) \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_CDsgRoiDlg_t, stringdata0) + ofs \ - - idx * sizeof(QByteArrayData)) \ - ) -static const qt_meta_stringdata_CDsgRoiDlg_t qt_meta_stringdata_CDsgRoiDlg = { - { -QT_MOC_LITERAL(0, 0, 10), // "CDsgRoiDlg" -QT_MOC_LITERAL(1, 11, 14), // "onSliderChange" -QT_MOC_LITERAL(2, 26, 0), // "" -QT_MOC_LITERAL(3, 27, 5), // "value" -QT_MOC_LITERAL(4, 33, 4), // "OnOk" -QT_MOC_LITERAL(5, 38, 8), // "OnCancel" -QT_MOC_LITERAL(6, 47, 11), // "OnRectangle" -QT_MOC_LITERAL(7, 59, 9), // "OnEllipse" -QT_MOC_LITERAL(8, 69, 8), // "OnCircle" -QT_MOC_LITERAL(9, 78, 14), // "OnShowColorDlg" -QT_MOC_LITERAL(10, 93, 6), // "OnMove" -QT_MOC_LITERAL(11, 100, 8), // "OnZoomIn" -QT_MOC_LITERAL(12, 109, 9), // "OnZoomOut" -QT_MOC_LITERAL(13, 119, 13), // "OnSelectImage" -QT_MOC_LITERAL(14, 133, 13) // "OnShowTenFlag" - - }, - "CDsgRoiDlg\0onSliderChange\0\0value\0OnOk\0" - "OnCancel\0OnRectangle\0OnEllipse\0OnCircle\0" - "OnShowColorDlg\0OnMove\0OnZoomIn\0OnZoomOut\0" - "OnSelectImage\0OnShowTenFlag" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_CDsgRoiDlg[] = { - - // content: - 7, // revision - 0, // classname - 0, 0, // classinfo - 12, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 0, // signalCount - - // slots: name, argc, parameters, tag, flags - 1, 1, 74, 2, 0x0a /* Public */, - 4, 0, 77, 2, 0x0a /* Public */, - 5, 0, 78, 2, 0x0a /* Public */, - 6, 0, 79, 2, 0x0a /* Public */, - 7, 0, 80, 2, 0x0a /* Public */, - 8, 0, 81, 2, 0x0a /* Public */, - 9, 0, 82, 2, 0x0a /* Public */, - 10, 0, 83, 2, 0x0a /* Public */, - 11, 0, 84, 2, 0x0a /* Public */, - 12, 0, 85, 2, 0x0a /* Public */, - 13, 0, 86, 2, 0x0a /* Public */, - 14, 0, 87, 2, 0x0a /* Public */, - - // slots: parameters - QMetaType::Void, QMetaType::Int, 3, - QMetaType::Bool, - QMetaType::Bool, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - - 0 // eod -}; - -void CDsgRoiDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - CDsgRoiDlg *_t = static_cast(_o); - Q_UNUSED(_t) - switch (_id) { - case 0: _t->onSliderChange((*reinterpret_cast< int(*)>(_a[1]))); break; - case 1: { bool _r = _t->OnOk(); - if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); } break; - case 2: { bool _r = _t->OnCancel(); - if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); } break; - case 3: _t->OnRectangle(); break; - case 4: _t->OnEllipse(); break; - case 5: _t->OnCircle(); break; - case 6: _t->OnShowColorDlg(); break; - case 7: _t->OnMove(); break; - case 8: _t->OnZoomIn(); break; - case 9: _t->OnZoomOut(); break; - case 10: _t->OnSelectImage(); break; - case 11: _t->OnShowTenFlag(); break; - default: ; - } - } -} - -const QMetaObject CDsgRoiDlg::staticMetaObject = { - { &QDialog::staticMetaObject, qt_meta_stringdata_CDsgRoiDlg.data, - qt_meta_data_CDsgRoiDlg, qt_static_metacall, nullptr, nullptr} -}; - - -const QMetaObject *CDsgRoiDlg::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *CDsgRoiDlg::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_CDsgRoiDlg.stringdata0)) - return static_cast(this); - return QDialog::qt_metacast(_clname); -} - -int CDsgRoiDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QDialog::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 12) - qt_static_metacall(this, _c, _id, _a); - _id -= 12; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 12) - *reinterpret_cast(_a[0]) = -1; - _id -= 12; - } - return _id; -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/src/lpbdesigner/GeneratedFiles/Release/moc_DsgRoiDlg.cpp b/src/lpbdesigner/GeneratedFiles/Release/moc_DsgRoiDlg.cpp deleted file mode 100644 index fde77d7..0000000 --- a/src/lpbdesigner/GeneratedFiles/Release/moc_DsgRoiDlg.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'DsgRoiDlg.h' -** -** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.4) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include "../../DsgRoiDlg.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'DsgRoiDlg.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 67 -#error "This file was generated using the moc from 5.9.4. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_CDsgRoiDlg_t { - QByteArrayData data[15]; - char stringdata0[147]; -}; -#define QT_MOC_LITERAL(idx, ofs, len) \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_CDsgRoiDlg_t, stringdata0) + ofs \ - - idx * sizeof(QByteArrayData)) \ - ) -static const qt_meta_stringdata_CDsgRoiDlg_t qt_meta_stringdata_CDsgRoiDlg = { - { -QT_MOC_LITERAL(0, 0, 10), // "CDsgRoiDlg" -QT_MOC_LITERAL(1, 11, 14), // "onSliderChange" -QT_MOC_LITERAL(2, 26, 0), // "" -QT_MOC_LITERAL(3, 27, 5), // "value" -QT_MOC_LITERAL(4, 33, 4), // "OnOk" -QT_MOC_LITERAL(5, 38, 8), // "OnCancel" -QT_MOC_LITERAL(6, 47, 11), // "OnRectangle" -QT_MOC_LITERAL(7, 59, 9), // "OnEllipse" -QT_MOC_LITERAL(8, 69, 8), // "OnCircle" -QT_MOC_LITERAL(9, 78, 14), // "OnShowColorDlg" -QT_MOC_LITERAL(10, 93, 6), // "OnMove" -QT_MOC_LITERAL(11, 100, 8), // "OnZoomIn" -QT_MOC_LITERAL(12, 109, 9), // "OnZoomOut" -QT_MOC_LITERAL(13, 119, 13), // "OnSelectImage" -QT_MOC_LITERAL(14, 133, 13) // "OnShowTenFlag" - - }, - "CDsgRoiDlg\0onSliderChange\0\0value\0OnOk\0" - "OnCancel\0OnRectangle\0OnEllipse\0OnCircle\0" - "OnShowColorDlg\0OnMove\0OnZoomIn\0OnZoomOut\0" - "OnSelectImage\0OnShowTenFlag" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_CDsgRoiDlg[] = { - - // content: - 7, // revision - 0, // classname - 0, 0, // classinfo - 12, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 0, // signalCount - - // slots: name, argc, parameters, tag, flags - 1, 1, 74, 2, 0x0a /* Public */, - 4, 0, 77, 2, 0x0a /* Public */, - 5, 0, 78, 2, 0x0a /* Public */, - 6, 0, 79, 2, 0x0a /* Public */, - 7, 0, 80, 2, 0x0a /* Public */, - 8, 0, 81, 2, 0x0a /* Public */, - 9, 0, 82, 2, 0x0a /* Public */, - 10, 0, 83, 2, 0x0a /* Public */, - 11, 0, 84, 2, 0x0a /* Public */, - 12, 0, 85, 2, 0x0a /* Public */, - 13, 0, 86, 2, 0x0a /* Public */, - 14, 0, 87, 2, 0x0a /* Public */, - - // slots: parameters - QMetaType::Void, QMetaType::Int, 3, - QMetaType::Bool, - QMetaType::Bool, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - - 0 // eod -}; - -void CDsgRoiDlg::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - CDsgRoiDlg *_t = static_cast(_o); - Q_UNUSED(_t) - switch (_id) { - case 0: _t->onSliderChange((*reinterpret_cast< int(*)>(_a[1]))); break; - case 1: { bool _r = _t->OnOk(); - if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); } break; - case 2: { bool _r = _t->OnCancel(); - if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); } break; - case 3: _t->OnRectangle(); break; - case 4: _t->OnEllipse(); break; - case 5: _t->OnCircle(); break; - case 6: _t->OnShowColorDlg(); break; - case 7: _t->OnMove(); break; - case 8: _t->OnZoomIn(); break; - case 9: _t->OnZoomOut(); break; - case 10: _t->OnSelectImage(); break; - case 11: _t->OnShowTenFlag(); break; - default: ; - } - } -} - -const QMetaObject CDsgRoiDlg::staticMetaObject = { - { &QDialog::staticMetaObject, qt_meta_stringdata_CDsgRoiDlg.data, - qt_meta_data_CDsgRoiDlg, qt_static_metacall, nullptr, nullptr} -}; - - -const QMetaObject *CDsgRoiDlg::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *CDsgRoiDlg::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_CDsgRoiDlg.stringdata0)) - return static_cast(this); - return QDialog::qt_metacast(_clname); -} - -int CDsgRoiDlg::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QDialog::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 12) - qt_static_metacall(this, _c, _id, _a); - _id -= 12; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 12) - *reinterpret_cast(_a[0]) = -1; - _id -= 12; - } - return _id; -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/src/lpbdesigner/GeneratedFiles/ui_RoiDlg.h b/src/lpbdesigner/GeneratedFiles/ui_RoiDlg.h deleted file mode 100644 index 4b63e5e..0000000 --- a/src/lpbdesigner/GeneratedFiles/ui_RoiDlg.h +++ /dev/null @@ -1,294 +0,0 @@ -/******************************************************************************** -** Form generated from reading UI file 'RoiDlg.ui' -** -** Created by: Qt User Interface Compiler version 5.9.4 -** -** WARNING! All changes made in this file will be lost when recompiling UI file! -********************************************************************************/ - -#ifndef UI_ROIDLG_H -#define UI_ROIDLG_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class Ui_RoiDlg -{ -public: - QGridLayout *gridLayout_3; - QGroupBox *groupBox; - QVBoxLayout *verticalLayout; - QLabel *label_pixel_info; - QGraphicsView *graphicsView; - QGroupBox *groupBox_2; - QGridLayout *gridLayout_2; - QHBoxLayout *horizontalLayout_2; - QLabel *label_Color; - QPushButton *pushButton_8; - QPushButton *pushButton_7; - QPushButton *pushButton_5; - QSpacerItem *verticalSpacer; - QHBoxLayout *horizontalLayout_3; - QLabel *label; - QSlider *horizontalSlider; - QGridLayout *gridLayout; - QSpacerItem *verticalSpacer_2; - QToolButton *m_pbUp; - QToolButton *m_pbDown; - QToolButton *m_pbRight; - QToolButton *m_pbLeft; - QToolButton *toolButton; - QHBoxLayout *horizontalLayout; - QSpacerItem *horizontalSpacer_5; - QPushButton *pushButton; - QPushButton *pushButton_2; - - void setupUi(QDialog *RoiDlg) - { - if (RoiDlg->objectName().isEmpty()) - RoiDlg->setObjectName(QStringLiteral("RoiDlg")); - RoiDlg->setWindowModality(Qt::ApplicationModal); - RoiDlg->resize(925, 623); - gridLayout_3 = new QGridLayout(RoiDlg); - gridLayout_3->setObjectName(QStringLiteral("gridLayout_3")); - groupBox = new QGroupBox(RoiDlg); - groupBox->setObjectName(QStringLiteral("groupBox")); - QFont font; - font.setPointSize(12); - groupBox->setFont(font); - verticalLayout = new QVBoxLayout(groupBox); - verticalLayout->setSpacing(2); - verticalLayout->setObjectName(QStringLiteral("verticalLayout")); - verticalLayout->setContentsMargins(6, 6, 6, 6); - label_pixel_info = new QLabel(groupBox); - label_pixel_info->setObjectName(QStringLiteral("label_pixel_info")); - label_pixel_info->setFont(font); - - verticalLayout->addWidget(label_pixel_info); - - graphicsView = new QGraphicsView(groupBox); - graphicsView->setObjectName(QStringLiteral("graphicsView")); - graphicsView->setFont(font); - graphicsView->setStyleSheet(QStringLiteral("background-color: rgb(212, 212, 212);")); - graphicsView->setTransformationAnchor(QGraphicsView::AnchorUnderMouse); - graphicsView->setResizeAnchor(QGraphicsView::AnchorUnderMouse); - - verticalLayout->addWidget(graphicsView); - - - gridLayout_3->addWidget(groupBox, 0, 0, 1, 1); - - groupBox_2 = new QGroupBox(RoiDlg); - groupBox_2->setObjectName(QStringLiteral("groupBox_2")); - groupBox_2->setMaximumSize(QSize(140, 16777215)); - groupBox_2->setFont(font); - gridLayout_2 = new QGridLayout(groupBox_2); - gridLayout_2->setObjectName(QStringLiteral("gridLayout_2")); - horizontalLayout_2 = new QHBoxLayout(); - horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); - label_Color = new QLabel(groupBox_2); - label_Color->setObjectName(QStringLiteral("label_Color")); - QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - sizePolicy.setHorizontalStretch(0); - sizePolicy.setVerticalStretch(0); - sizePolicy.setHeightForWidth(label_Color->sizePolicy().hasHeightForWidth()); - label_Color->setSizePolicy(sizePolicy); - - horizontalLayout_2->addWidget(label_Color); - - pushButton_8 = new QPushButton(groupBox_2); - pushButton_8->setObjectName(QStringLiteral("pushButton_8")); - pushButton_8->setMaximumSize(QSize(80, 16777215)); - pushButton_8->setFont(font); - - horizontalLayout_2->addWidget(pushButton_8); - - - gridLayout_2->addLayout(horizontalLayout_2, 0, 0, 1, 1); - - pushButton_7 = new QPushButton(groupBox_2); - pushButton_7->setObjectName(QStringLiteral("pushButton_7")); - pushButton_7->setMinimumSize(QSize(0, 30)); - pushButton_7->setMaximumSize(QSize(130, 16777215)); - pushButton_7->setFont(font); - - gridLayout_2->addWidget(pushButton_7, 1, 0, 1, 1); - - pushButton_5 = new QPushButton(groupBox_2); - pushButton_5->setObjectName(QStringLiteral("pushButton_5")); - pushButton_5->setMinimumSize(QSize(0, 30)); - pushButton_5->setFont(font); - - gridLayout_2->addWidget(pushButton_5, 2, 0, 1, 1); - - verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); - - gridLayout_2->addItem(verticalSpacer, 3, 0, 1, 1); - - horizontalLayout_3 = new QHBoxLayout(); - horizontalLayout_3->setObjectName(QStringLiteral("horizontalLayout_3")); - label = new QLabel(groupBox_2); - label->setObjectName(QStringLiteral("label")); - - horizontalLayout_3->addWidget(label); - - horizontalSlider = new QSlider(groupBox_2); - horizontalSlider->setObjectName(QStringLiteral("horizontalSlider")); - horizontalSlider->setMinimum(1); - horizontalSlider->setMaximum(10); - horizontalSlider->setPageStep(1); - horizontalSlider->setOrientation(Qt::Horizontal); - horizontalSlider->setInvertedAppearance(false); - horizontalSlider->setInvertedControls(false); - horizontalSlider->setTickPosition(QSlider::TicksAbove); - horizontalSlider->setTickInterval(1); - - horizontalLayout_3->addWidget(horizontalSlider); - - - gridLayout_2->addLayout(horizontalLayout_3, 4, 0, 1, 1); - - gridLayout = new QGridLayout(); - gridLayout->setSpacing(0); - gridLayout->setObjectName(QStringLiteral("gridLayout")); - gridLayout->setContentsMargins(-1, 5, -1, -1); - verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); - - gridLayout->addItem(verticalSpacer_2, 3, 1, 1, 1); - - m_pbUp = new QToolButton(groupBox_2); - m_pbUp->setObjectName(QStringLiteral("m_pbUp")); - QIcon icon; - icon.addFile(QStringLiteral(":/resource/caret-up.png"), QSize(), QIcon::Normal, QIcon::Off); - m_pbUp->setIcon(icon); - m_pbUp->setIconSize(QSize(32, 32)); - m_pbUp->setAutoRaise(true); - - gridLayout->addWidget(m_pbUp, 0, 1, 1, 1); - - m_pbDown = new QToolButton(groupBox_2); - m_pbDown->setObjectName(QStringLiteral("m_pbDown")); - QIcon icon1; - icon1.addFile(QStringLiteral(":/resource/caret-down.png"), QSize(), QIcon::Normal, QIcon::Off); - m_pbDown->setIcon(icon1); - m_pbDown->setIconSize(QSize(32, 32)); - m_pbDown->setAutoRaise(true); - - gridLayout->addWidget(m_pbDown, 2, 1, 1, 1); - - m_pbRight = new QToolButton(groupBox_2); - m_pbRight->setObjectName(QStringLiteral("m_pbRight")); - QIcon icon2; - icon2.addFile(QStringLiteral(":/resource/caret-right.png"), QSize(), QIcon::Normal, QIcon::Off); - m_pbRight->setIcon(icon2); - m_pbRight->setIconSize(QSize(32, 32)); - m_pbRight->setAutoRaise(true); - - gridLayout->addWidget(m_pbRight, 1, 2, 1, 1); - - m_pbLeft = new QToolButton(groupBox_2); - m_pbLeft->setObjectName(QStringLiteral("m_pbLeft")); - QIcon icon3; - icon3.addFile(QStringLiteral(":/resource/caret-left.png"), QSize(), QIcon::Normal, QIcon::Off); - m_pbLeft->setIcon(icon3); - m_pbLeft->setIconSize(QSize(32, 32)); - m_pbLeft->setAutoRaise(true); - - gridLayout->addWidget(m_pbLeft, 1, 0, 1, 1); - - toolButton = new QToolButton(groupBox_2); - toolButton->setObjectName(QStringLiteral("toolButton")); - toolButton->setEnabled(false); - QIcon icon4; - icon4.addFile(QStringLiteral(":/resource/btn-close.png"), QSize(), QIcon::Normal, QIcon::Off); - toolButton->setIcon(icon4); - toolButton->setIconSize(QSize(32, 32)); - toolButton->setCheckable(false); - toolButton->setAutoRepeat(false); - toolButton->setAutoExclusive(false); - toolButton->setPopupMode(QToolButton::DelayedPopup); - toolButton->setAutoRaise(true); - toolButton->setArrowType(Qt::NoArrow); - - gridLayout->addWidget(toolButton, 1, 1, 1, 1); - - - gridLayout_2->addLayout(gridLayout, 5, 0, 1, 1); - - - gridLayout_3->addWidget(groupBox_2, 0, 1, 1, 1); - - horizontalLayout = new QHBoxLayout(); - horizontalLayout->setObjectName(QStringLiteral("horizontalLayout")); - horizontalSpacer_5 = new QSpacerItem(649, 27, QSizePolicy::Expanding, QSizePolicy::Minimum); - - horizontalLayout->addItem(horizontalSpacer_5); - - pushButton = new QPushButton(RoiDlg); - pushButton->setObjectName(QStringLiteral("pushButton")); - pushButton->setMinimumSize(QSize(0, 30)); - pushButton->setFont(font); - - horizontalLayout->addWidget(pushButton); - - pushButton_2 = new QPushButton(RoiDlg); - pushButton_2->setObjectName(QStringLiteral("pushButton_2")); - pushButton_2->setMinimumSize(QSize(0, 30)); - pushButton_2->setFont(font); - - horizontalLayout->addWidget(pushButton_2); - - - gridLayout_3->addLayout(horizontalLayout, 1, 0, 1, 2); - - - retranslateUi(RoiDlg); - - QMetaObject::connectSlotsByName(RoiDlg); - } // setupUi - - void retranslateUi(QDialog *RoiDlg) - { - RoiDlg->setWindowTitle(QApplication::translate("RoiDlg", "ROI\346\243\200\346\265\213\345\214\272\345\237\237\351\205\215\347\275\256", Q_NULLPTR)); - groupBox->setTitle(QApplication::translate("RoiDlg", "\347\273\230\345\233\276\345\214\272\345\237\237\357\274\232", Q_NULLPTR)); - label_pixel_info->setText(QApplication::translate("RoiDlg", "Pixel info: ", Q_NULLPTR)); - groupBox_2->setTitle(QApplication::translate("RoiDlg", "\345\267\245\345\205\267", Q_NULLPTR)); - label_Color->setText(QString()); - pushButton_8->setText(QApplication::translate("RoiDlg", "\351\242\234\350\211\262", Q_NULLPTR)); - pushButton_7->setText(QApplication::translate("RoiDlg", "\345\234\206", Q_NULLPTR)); - pushButton_5->setText(QApplication::translate("RoiDlg", "\345\215\201\345\255\227\346\240\207\345\256\232\347\272\277", Q_NULLPTR)); - label->setText(QApplication::translate("RoiDlg", "\346\255\245\351\225\277", Q_NULLPTR)); - m_pbUp->setText(QApplication::translate("RoiDlg", "...", Q_NULLPTR)); - m_pbDown->setText(QApplication::translate("RoiDlg", "...", Q_NULLPTR)); - m_pbRight->setText(QApplication::translate("RoiDlg", "...", Q_NULLPTR)); - m_pbLeft->setText(QApplication::translate("RoiDlg", "...", Q_NULLPTR)); - toolButton->setText(QApplication::translate("RoiDlg", "...", Q_NULLPTR)); - pushButton->setText(QApplication::translate("RoiDlg", "\347\241\256\345\256\232", Q_NULLPTR)); - pushButton_2->setText(QApplication::translate("RoiDlg", "\345\217\226\346\266\210", Q_NULLPTR)); - } // retranslateUi - -}; - -namespace Ui { - class RoiDlg: public Ui_RoiDlg {}; -} // namespace Ui - -QT_END_NAMESPACE - -#endif // UI_ROIDLG_H diff --git a/src/lpbdesigner/MainFrame.cpp b/src/lpbdesigner/MainFrame.cpp index e1bdff4..e5190ce 100644 --- a/src/lpbdesigner/MainFrame.cpp +++ b/src/lpbdesigner/MainFrame.cpp @@ -2,6 +2,7 @@ #include "ui_MainFrame.h" #include "colossusbase.h" #include + #pragma execution_character_set("utf-8") #define WINDOWS_ICON ":/resource/app.png" QString showVariant(const AlgoParamType type, const QVariant &var) { @@ -151,6 +152,7 @@ CMainFrame::CMainFrame(QWidget *parent) m_plablStatus = new QLabel(this);//菜单栏提示信息 ui->statusBar->addWidget(m_plablStatus); _pSaveStatus = ui->label_SaveStatus; + } CMainFrame::~CMainFrame() @@ -242,6 +244,8 @@ bool CMainFrame::InitGraphView() ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableWidget->verticalHeader()->setHidden(true); + ui->tableWidget->horizontalHeader()->setSectionResizeMode(4, QHeaderView::Stretch); + ui->tableWidget->hideColumn(2); ui->tableWidget_2->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidget_2->setSelectionMode(QAbstractItemView::SingleSelection); @@ -251,8 +255,7 @@ bool CMainFrame::InitGraphView() ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Custom); ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Custom); ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Stretch); - ui->tableWidget->horizontalHeader()->setSectionResizeMode(4, QHeaderView::Stretch); - ui->tableWidget->hideColumn(2); + ui->tableWidget_2->hideColumn(2); ui->textEdit->setWordWrapMode(QTextOption::NoWrap); @@ -301,6 +304,7 @@ bool CMainFrame::InitGraphView() } } m_TaskChangeList.clear(); + if (!InitCurrentTask()) return true; return true; @@ -318,7 +322,9 @@ bool CMainFrame::InitCurrentTask() ui->textEdit->clear(); if (!InitCurrentNode()) + { return false; + } IDetectorTask* ptask = currentTask(); if (ptask) @@ -736,6 +742,12 @@ bool CMainFrame::OnSetAlgo() m_tParamMgrDlg.setWindowModality(Qt::ApplicationModal); m_tParamMgrDlg.setAttribute(Qt::WA_ShowModal, true); m_tParamMgrDlg.ShowParamMgrDlg(pAlgo); + + QString strName = m_pCurrentTask->GetTaskInfo()->strName; + if (!m_TaskChangeList.contains(strName)) + { + m_TaskChangeList.append(strName); + } } } return true; @@ -766,6 +778,12 @@ bool CMainFrame::OnSetOutParam() m_tParamMgrDlg.setWindowModality(Qt::ApplicationModal); m_tParamMgrDlg.setAttribute(Qt::WA_ShowModal, true); m_tParamMgrDlg.ShowParamMgrDlg(pAlgo); + + QString strName = m_pCurrentTask->GetTaskInfo()->strName; + if (!m_TaskChangeList.contains(strName)) + { + m_TaskChangeList.append(strName); + } } } return true; @@ -961,7 +979,9 @@ bool CMainFrame::OnSelectAlgo() item->setText(strText); return true; } + } + } return true; @@ -1176,7 +1196,7 @@ bool CMainFrame::OnEditParam() AlgoParamType type; PLP_ALGORITHM_PARAM pParam = NULL; pParam = m_pCurrentAlgo->GetParamByName(strParaName); - if (pParam) + if (pParam)//编辑算法参数 { if (!m_tParamDlg.InitGraphView()) return false; @@ -1186,13 +1206,15 @@ bool CMainFrame::OnEditParam() m_tParamDlg.setWindowModality(Qt::ApplicationModal); m_tParamDlg.setAttribute(Qt::WA_ShowModal, true); m_tParamDlg.ShowParamDlg(pParam); - if (_pOldTask) + if (_pOldTask)//编辑完成 输出信息 { QString st = _pOldTask->GetTaskInfo()->strName; if (!m_TaskChangeList.contains(st)) { m_TaskChangeList.append(st); } + //自动刷新算法参数栏 + OnInitCurrentAlgoParam(); } return true; } @@ -1506,7 +1528,7 @@ Q_SLOT void CMainFrame::onLoadImage() if (!currentTask()) return ; - QString strDefaultDirPath = m_pCurrentTask->GetTaskInfo()->strDirPath; + QString strDefaultDirPath;// = lpdesignerConfig::instance()->m_SaveImgDirPath + "/data/";// m_pCurrentTask->GetTaskInfo()->strDirPath; QStringList strFileNamesList = QFileDialog::getOpenFileNames(this, "open file", strDefaultDirPath, "Images (*.bmp *.png *.xpm *.jpg)"); if (strFileNamesList.size() <= 0) { diff --git a/src/lpbdesigner/QSetCenterDlg.cpp b/src/lpbdesigner/QSetCenterDlg.cpp new file mode 100644 index 0000000..5b73d29 --- /dev/null +++ b/src/lpbdesigner/QSetCenterDlg.cpp @@ -0,0 +1,55 @@ +#include "QSetCenterDlg.h" +#include "QMessageBox" +#pragma execution_character_set("utf-8") +QSetCenterDlg::QSetCenterDlg(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + +} + +QSetCenterDlg::~QSetCenterDlg() +{ + +} + +void QSetCenterDlg::setCenter(double x, double y) +{ + ui.lineEdit->setText(QString("%1").arg(x)); + ui.lineEdit_2->setText(QString("%1").arg(y)); +} + +void QSetCenterDlg::getCenter(double &x, double &y) +{ + x = ui.lineEdit->text().toDouble(); + y = ui.lineEdit_2->text().toDouble(); +} + +void QSetCenterDlg::setRange(QRect rect, QPointF imgSize) +{ + m_ItemRect = rect; + m_ImgSize = imgSize; +} + +Q_SLOT void QSetCenterDlg::onButtonClicked() +{ + QString strObj = sender()->objectName(); + if (strObj == "pushButton") + { + double x = ui.lineEdit->text().toDouble(); + double y = ui.lineEdit_2->text().toDouble(); + if ((x + m_ItemRect.width() / 2) > m_ImgSize.x() || (x - m_ItemRect.width() / 2) < 0 || (y - m_ItemRect.height() / 2) < 0 || (y + m_ItemRect.height() / 2) > m_ImgSize.y()) + { + QMessageBox::warning(this, QObject::tr(""), QObject::tr("õԲ굼ROIⷶΧϷã")); + return; + } + QDialog::accept(); + } + else if (strObj == "pushButton_2") + { + QDialog::reject(); + } +} diff --git a/src/lpbdesigner/QSetCenterDlg.h b/src/lpbdesigner/QSetCenterDlg.h new file mode 100644 index 0000000..4467018 --- /dev/null +++ b/src/lpbdesigner/QSetCenterDlg.h @@ -0,0 +1,24 @@ +#ifndef _QSETCENTERDLG_H_ +#define _QSETCENTERDLG_H_ + +#include +#include "ui_QSetCenterDlg.h" + +class QSetCenterDlg : public QDialog +{ + Q_OBJECT + +public: + QSetCenterDlg(QWidget *parent = Q_NULLPTR); + ~QSetCenterDlg(); + void setCenter(double x, double y); + void getCenter(double &x, double &y); + void setRange(QRect rect, QPointF imgSize); + Q_SLOT void onButtonClicked(); +private: + Ui::QSetCenterDlg ui; + QRect m_ItemRect; + QPointF m_ImgSize; +}; + +#endif diff --git a/src/lpbdesigner/QSetCenterDlg.ui b/src/lpbdesigner/QSetCenterDlg.ui new file mode 100644 index 0000000..36eac37 --- /dev/null +++ b/src/lpbdesigner/QSetCenterDlg.ui @@ -0,0 +1,76 @@ + + + QSetCenterDlg + + + + 0 + 0 + 209 + 100 + + + + + 12 + + + + 圆心坐标设置 + + + + QLayout::SetFixedSize + + + + + 圆心X坐标 + + + + + + + 0 + + + + + + + 圆心Y坐标 + + + + + + + 0 + + + + + + + + + 确定 + + + + + + + 取消 + + + + + + + + + + + diff --git a/src/lpbdesigner/RoiDlg.ui b/src/lpbdesigner/RoiDlg.ui index 50493b6..ee8230f 100644 --- a/src/lpbdesigner/RoiDlg.ui +++ b/src/lpbdesigner/RoiDlg.ui @@ -230,27 +230,17 @@ 0 - - - - Qt::Vertical - - - - 20 - 40 - + + + + false - - - - ... - :/resource/caret-up.png:/resource/caret-up.png + :/resource/btn-close.png:/resource/btn-close.png @@ -258,11 +248,39 @@ 32 + + false + + + false + + + false + + + QToolButton::DelayedPopup + true + + Qt::NoArrow + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -323,17 +341,14 @@ - - - - false - + + ... - :/resource/btn-close.png:/resource/btn-close.png + :/resource/caret-up.png:/resource/caret-up.png @@ -341,24 +356,9 @@ 32 - - false - - - false - - - false - - - QToolButton::DelayedPopup - true - - Qt::NoArrow - @@ -368,6 +368,18 @@ + + + + + 12 + + + + + + + diff --git a/src/lpbdesigner/RoiScene.cpp b/src/lpbdesigner/RoiScene.cpp index ca44b5c..ec9d9f7 100644 --- a/src/lpbdesigner/RoiScene.cpp +++ b/src/lpbdesigner/RoiScene.cpp @@ -4,6 +4,7 @@ #include "RoiItem.h" #include "QGraphicsSceneEvent" #include "colossusbase.h" +#include "QSetCenterDlg.h" #pragma execution_character_set("utf-8") RoiScene::RoiScene(QObject *parent) @@ -55,6 +56,7 @@ void RoiScene::mouseEvent(QGraphicsSceneMouseEvent *mouseEvent) bool RoiScene::Initialize(LP_DETECTOR_ROI_DATA roiData) { + if (pLineItem) { removeItem(pLineItem); @@ -300,6 +302,7 @@ void RoiScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) if (tool) tool->mouseMoveEvent(mouseEvent, this); QGraphicsScene::mouseMoveEvent(mouseEvent); + emit sgResetItem(maptoImgPos(item->scenePos()), item->boundingRect().toRect()); } else { @@ -327,7 +330,7 @@ void RoiScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) if (item != 0) { //m_pRoiDlg->ResetItem(maptoImgPos(mouseEvent->scenePos()), item->boundingRect().toRect()); - emit sgResetItem(maptoImgPos(mouseEvent->scenePos()), item->boundingRect().toRect()); + emit sgResetItem(maptoImgPos(item->scenePos()), item->boundingRect().toRect()); m_graphItemMapStruct[item].rectf = maptoImgNewPos(item); DrawTool::c_drawShape = selection; QGraphicsScene::mouseReleaseEvent(mouseEvent); @@ -343,8 +346,10 @@ void RoiScene::MoveSelectedItem(DirType type, int step) if (items.count() == 1) item = qgraphicsitem_cast(items.first()); + if (item != 0 && !item->GetCheckState()) { + //item->setPos(0, 0); switch (type) { case LEFT: @@ -534,7 +539,9 @@ void RoiScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) } } } - + menu.addSeparator(); + QAction *setCenter = menu.addAction(QObject::tr("设置圆心")); + setCenter->setObjectName("setCenter"); QAction *selectedAction = menu.exec(event->screenPos()); if (selectedAction == NULL) { @@ -717,6 +724,30 @@ void RoiScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) } updateLineItem(); } + else if (strObj == "setCenter") + { + if (ptmpItem) + { + QPointF s = maptoImgPos(ptmpItem->scenePos()); + QSetCenterDlg dlg((QWidget*)(this->parent())); + dlg.setCenter(s.x(),s.y()); + dlg.setRange(ptmpItem->boundingRect().toRect(), mImgPosOffSet * 2); + if (dlg.exec() == QDialog::Accepted) + { + double x = 0; + double y = 0; + dlg.getCenter(x, y); + QPointF itemPoint; + itemPoint.setX(x); + itemPoint.setY(y); + QPointF tt = itemPoint - mImgPosOffSet; + QPointF fff = maptoImgPos(tt); + ptmpItem->setPos(tt); + } + m_graphItemMapStruct[ptmpItem].rectf = maptoImgNewPos(ptmpItem); + } + + } QGraphicsScene::contextMenuEvent(event); menu.clear(); update(); diff --git a/src/lpbdesigner/RoiScene.h b/src/lpbdesigner/RoiScene.h index df934da..6f4ad2d 100644 --- a/src/lpbdesigner/RoiScene.h +++ b/src/lpbdesigner/RoiScene.h @@ -67,7 +67,6 @@ public: void updateTenItem(bool bFlag); int flag{ 0 }; bool bUseTenFlag{ false }; - signals: void sgResetItem(QPoint pos, QRect size); protected: diff --git a/src/lpbengine/Solution.cpp b/src/lpbengine/Solution.cpp index 584dc31..726b362 100644 --- a/src/lpbengine/Solution.cpp +++ b/src/lpbengine/Solution.cpp @@ -141,6 +141,19 @@ bool Solution::DeleteTask(QString strName) return false; } +bool Solution::ModifyTask(QString strOldName, QString strNewName) +{ + QMap::iterator its = m_TaskMapByName.find(strOldName); + if (its != m_TaskMapByName.end()) + { + (*its)->RenameFile(strOldName, strNewName); + IDetectorTask* pTask = m_TaskMapByName.take(strOldName); + m_TaskMapByName.insert(strNewName, pTask); + return true; + } + return false; +} + IDetectorTask* Solution::GetTaskByName(QString strName) { QMap::iterator its = m_TaskMapByName.find(strName); @@ -383,6 +396,9 @@ bool Solution::LoadFileEx(const QString& strPath) m_tasklist.append(taskName); QString strTaskPath = strPath + "/" + taskName; + QDir qDir(strTaskPath); + if (!qDir.exists()) + continue; LP_DETECTOR_TASK Task; Task.strName = taskName; CDetectorTask* pTask = (CDetectorTask*)AddTask(&Task, strTaskPath);//有隐藏bug diff --git a/src/lpbengine/Solution.h b/src/lpbengine/Solution.h index 8bac303..13b4316 100644 --- a/src/lpbengine/Solution.h +++ b/src/lpbengine/Solution.h @@ -11,6 +11,7 @@ public: virtual bool AddTaskByTemplate(QString strName); virtual IDetectorTask* AddTask(const PLP_DETECTOR_TASK pTask); virtual bool DeleteTask(QString strName); + virtual bool ModifyTask(QString strOldName, QString strNewName); virtual IDetectorTask* GetTaskByName(QString strName); virtual QStringList GetAllTaskNames(); virtual QMap GetAllTasks(); diff --git a/src/lpbengine/SolutionMgr.cpp b/src/lpbengine/SolutionMgr.cpp index 64c2d54..670e7bd 100644 --- a/src/lpbengine/SolutionMgr.cpp +++ b/src/lpbengine/SolutionMgr.cpp @@ -140,6 +140,7 @@ bool CDetectorSolutionMgr::SaveByNames(QStringList strNames) //加载配置文件 bool CDetectorSolutionMgr::Load() { + /*在应用程序的根目录下寻找solution文件夹,没有即创建*/ QString strExePath = QCoreApplication::applicationDirPath(); QString strSolutionDirPath = strExePath + LP_DETECTOR_BUSSINESS_CONFIG_SOLUTION_DIR; QDir solutionDir(strSolutionDirPath); @@ -149,7 +150,7 @@ bool CDetectorSolutionMgr::Load() } m_nRunSolutionID.clear(); - + /*遍历solution文件夹下的所有文件夹,每一个文件夹即是一个子solution*/ solutionDir.setFilter(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks); solutionDir.setSorting(QDir::Size | QDir::Reversed); QFileInfoList dirList = solutionDir.entryInfoList(); @@ -160,7 +161,8 @@ bool CDetectorSolutionMgr::Load() if (dirList.at(i).fileName() == "." || dirList.at(i).fileName() == "..") continue; - //加载解决方案文件夹 + //加载解决方案文件夹 判断子solution文件里使用包含info.json文件,有该文件表示solution有效,solution名和文件夹名一致 + /*如果需要修改solution的名字,需要手动在后台修改solution的文件夹名字即可*/ QString strSolutionFile = strSolutionDirPath + dirList.at(i).fileName(); QString path = strSolutionFile + "/info.json"; QFileInfo finfo(path); @@ -168,8 +170,8 @@ bool CDetectorSolutionMgr::Load() continue; LP_DETECTOR_SOLUTION solutionInfo; - solutionInfo.strName = dirList.at(i).fileName(); - + solutionInfo.strName = dirList.at(i).fileName();//设置solution名 + /*开始加载solution*/ Solution* pSolution = (Solution*)AddSolution(&solutionInfo); if (!pSolution->LoadFileEx(strSolutionFile)) {//有bug @@ -184,7 +186,7 @@ bool CDetectorSolutionMgr::Load() return true; } - +/*暂时弃用*/ bool CDetectorSolutionMgr::LoadByNames(QStringList strNames) { return true; diff --git a/src/lpbengine/SolutionMgr.h b/src/lpbengine/SolutionMgr.h index 24def1e..7b9716f 100644 --- a/src/lpbengine/SolutionMgr.h +++ b/src/lpbengine/SolutionMgr.h @@ -13,6 +13,7 @@ public: IDetectorSolution* GetSolutionByID(QString strName); int GetSolutionCount(); QMap GetAllSolutions(); + void CleanUp(); bool Initialize(IAlgorithmLibMgr* pAlgoLibMgr); diff --git a/src/lpbengine/Task.cpp b/src/lpbengine/Task.cpp index 190241d..0f3500b 100644 --- a/src/lpbengine/Task.cpp +++ b/src/lpbengine/Task.cpp @@ -24,6 +24,7 @@ static inline bool DelDiretory(const QString &dirPath) return qDir.rmdir(dirPath); } + CDetectorTask::CDetectorTask() { m_nID = LP_DETECTOR_INVALID_ID; @@ -488,6 +489,23 @@ bool CDetectorTask::RemoveFile() DelDiretory(m_taskPath); return true; } +/*对task重命名*/ +bool CDetectorTask::RenameFile(QString strOldName, QString strNewName) +{ + if (m_taskPath.isEmpty()) + return false; + QDir qDir(m_taskPath); + if (!qDir.exists()) + return false; + QString strOld = m_taskPath; + int pos = strOld.lastIndexOf(strOldName); + QString s = strOld.mid(0, pos); + m_taskPath = s + strNewName; + bool b = qDir.rename(strOld, m_taskPath); + strParamFilePath = m_taskPath + "/taskinfo.json"; + m_tTask.strName = strNewName; + return true; +} bool CDetectorTask::AppendOtherFile(QString strpath) { diff --git a/src/lpbengine/Task.h b/src/lpbengine/Task.h index 181dd17..7a6869f 100644 --- a/src/lpbengine/Task.h +++ b/src/lpbengine/Task.h @@ -57,6 +57,7 @@ public: virtual bool SaveFile(const QString& strPath); virtual bool LoadFile(const QString& strPath); virtual bool RemoveFile(); + virtual bool RenameFile(QString strOldName, QString strNewName); virtual bool AppendOtherFile(QString strpath); bool SerializeToJson(QJsonObject& jsonObject); diff --git a/tpvs17/lpMain/QModModeUI.cpp b/tpvs17/lpMain/QModModeUI.cpp new file mode 100644 index 0000000..a5ff1e0 --- /dev/null +++ b/tpvs17/lpMain/QModModeUI.cpp @@ -0,0 +1,56 @@ +#include "QModModeUI.h" +#include "QMessageBox" +#include "QIcon" +#pragma execution_character_set("utf-8") +QModModeUI::QModModeUI(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked())); + connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(onButtonClicked())); +} + +QModModeUI::~QModModeUI() +{ +} + +void QModModeUI::setModelName(QString strName, QStringList names) +{ + ui.lineEdit->setText(strName); + m_names = names; +} + +Q_SLOT void QModModeUI::onButtonClicked() +{ + QString strObj = sender()->objectName(); + if (strObj == "pushButton") + { + QString strName = getInputName(); + if (strName.isEmpty()) + { + QMessageBox msgWarning(QMessageBox::Warning, QObject::tr("󾯸"), strName + QObject::tr("ͺΪ"), QMessageBox::Yes); + msgWarning.setWindowIcon(QIcon(":/leaper/Resource/app.png")); + msgWarning.setButtonText(QMessageBox::Yes, QObject::tr("ȷ")); + msgWarning.exec(); + return; + } + if (m_names.contains(strName)) + { + QMessageBox msgWarning(QMessageBox::Warning, QObject::tr("󾯸"), strName + QObject::tr(" ظ,"), QMessageBox::Yes); + msgWarning.setWindowIcon(QIcon(":/leaper/Resource/app.png")); + msgWarning.setButtonText(QMessageBox::Yes, QObject::tr("ȷ")); + msgWarning.exec(); + return; + } + QDialog::accept(); + } + else if (strObj == "pushButton_2") + { + QDialog::reject(); + } +} + +QString QModModeUI::getInputName() +{ + return ui.lineEdit_2->text(); +} \ No newline at end of file diff --git a/tpvs17/lpMain/QModModeUI.h b/tpvs17/lpMain/QModModeUI.h new file mode 100644 index 0000000..99cc474 --- /dev/null +++ b/tpvs17/lpMain/QModModeUI.h @@ -0,0 +1,22 @@ +#ifndef _QMODMODEUI_H_ +#define _QMODMODEUI_H_ + +#include +#include "ui_QModModeUI.h" + +class QModModeUI : public QDialog +{ + Q_OBJECT + +public: + QModModeUI(QWidget *parent = Q_NULLPTR); + ~QModModeUI(); + void setModelName(QString strName, QStringList names); + Q_SLOT void onButtonClicked(); + QString getInputName(); +private: + Ui::QModModeUI ui; + QStringList m_names; +}; + +#endif diff --git a/tpvs17/lpMain/QModModeUI.ui b/tpvs17/lpMain/QModModeUI.ui new file mode 100644 index 0000000..103b095 --- /dev/null +++ b/tpvs17/lpMain/QModModeUI.ui @@ -0,0 +1,118 @@ + + + QModModeUI + + + + 0 + 0 + 303 + 169 + + + + 型号名修改 + + + + QLayout::SetFixedSize + + + + + + 0 + 35 + + + + + 12 + + + + true + + + + + + + + 0 + 35 + + + + + 12 + + + + + + + + + 12 + + + + 新型号名: + + + + + + + + 12 + + + + 旧型号名: + + + + + + + + 0 + 25 + + + + + 12 + + + + 确认 + + + + + + + + 0 + 25 + + + + + 12 + + + + 取消 + + + + + + + + + diff --git a/tpvs17/lpMain/QModelMangerUI.cpp b/tpvs17/lpMain/QModelMangerUI.cpp index ecd14fa..b24b1ea 100644 --- a/tpvs17/lpMain/QModelMangerUI.cpp +++ b/tpvs17/lpMain/QModelMangerUI.cpp @@ -8,6 +8,7 @@ #include "IStation.h" #include "IWfCtrl.h" #include "lpGlobalConfig.h" +#include "QModModeUI.h" #define LP_WF_PLC_MAX_INDEX 1000 #pragma execution_character_set("utf-8") QModelMangerUI::QModelMangerUI(QWidget *parent) @@ -22,7 +23,7 @@ QModelMangerUI::QModelMangerUI(QWidget *parent) //connect(m_srcImgView, SIGNAL(sgImageScale(qreal)), this, SLOT(onImageScale(qreal))); - ui.wf_model_mod_button->setVisible(false); + //ui.wf_model_mod_button->setVisible(false); connect(ui.wf_model_select_button, SIGNAL(clicked()), this, SLOT(onButtonClicked())); connect(ui.wf_model_add_button, SIGNAL(clicked()), this, SLOT(onButtonClicked())); connect(ui.wf_model_mod_button, SIGNAL(clicked()), this, SLOT(onButtonClicked())); @@ -116,6 +117,43 @@ Q_SLOT void QModelMangerUI::onButtonClicked() } else if ("wf_model_mod_button" == strObj) { + QString nStaionID = currentTab(); + IStation *pStation = m_pCtrl->IGetStationByKey(nStaionID); + if (pStation) { + QString strModel = pStation->currentSelectModel(); + if (!strModel.isEmpty()) { + QString strName = m_pCtrl->IGetCurrentRuningModel(currentTab()); + if (strModel == strName) + { + QMessageBox msgWarning(QMessageBox::Warning, QObject::tr("错误警告"), strModel + QObject::tr(" 正在使用,不能被修改"), QMessageBox::Yes); + msgWarning.setWindowIcon(QIcon(":/leaper/Resource/app.png")); + msgWarning.setButtonText(QMessageBox::Yes, QObject::tr("确认")); + msgWarning.exec(); + return; + } + + QModModeUI moddlg(this); + moddlg.setWindowIcon(QIcon(":/leaper/Resource/app.png")); + moddlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); + QStringList names = m_pCtrl->IGetModelNames(nStaionID); + moddlg.setModelName(strModel, names); + if (moddlg.exec() == QDialog::Accepted) + { + QString strName = moddlg.getInputName(); + + QString nStaionID = currentTab(); + bool bFlag = m_pCtrl->IModifyModel(nStaionID, strModel,strName); + if (bFlag) { + ui.mLblModelState->setText(tr("add %1 successful!").arg(strName)); + if (m_pCtrl) + m_pCtrl->ISaveModel(nStaionID, strName); + } + QTimer::singleShot(1000, [&]() { + ui.mLblModelState->setText(""); + }); + } + } + } } else if ("wf_model_delete_button" == strObj) { QString nStaionID = currentTab(); diff --git a/tpvs17/lpMain/lpMain.vcxproj b/tpvs17/lpMain/lpMain.vcxproj index c1a04cb..0604930 100644 --- a/tpvs17/lpMain/lpMain.vcxproj +++ b/tpvs17/lpMain/lpMain.vcxproj @@ -162,6 +162,7 @@ + @@ -183,10 +184,15 @@ + + + .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSql;.\GeneratedFiles\$(ConfigurationName);.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view;.\..\..\src\lpMain\cryptokey;.\..\..\3part\RsaCrypto\include;F:\ValueProject\newValve\3part\openssl-1.0.2n\vs13\include + .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSql;.\GeneratedFiles\$(ConfigurationName);.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view;.\..\..\src\lpMain\cryptokey;.\..\..\3part\RsaCrypto\include;F:\ValueProject\newValve\3part\openssl-1.0.2n\vs13\include + .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSql;.\GeneratedFiles\$(ConfigurationName);.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view;.\..\..\src\lpMain\cryptokey;.\..\..\3part\RsaCrypto\include;F:\ValueProject\newValve\3part\openssl-1.0.2n\vs13\include .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtSql;.\GeneratedFiles\$(ConfigurationName);.\..\..\3part\SerialPortTool\include;.\..\..\src\lpMain;.\..\..\src\lpMain\algela;.\..\..\src\lpMain\QDiskCleanThread;.\..\..\src\lpMain\sqliteDB;.\..\..\src\lpMain\UI;.\..\..\3part\opencv3.4.1\include;.\..\..\3part\opencv3.4.1\include\opencv;.\..\..\3part\opencv3.4.1\include\opencv2;.\..\..\3part\libzkq\include;.\..\..\3part\lpSyslog\inc;.\..\..\src\userCtrl;.\..\..\src\lpMain\CoreCtrl;.\..\..\3part\tadpole\include\tpBase;.\..\..\src\lpMain\view;.\..\..\src\lpMain\cryptokey;.\..\..\3part\RsaCrypto\include;F:\ValueProject\newValve\3part\openssl-1.0.2n\vs13\include diff --git a/tpvs17/lpMain/lpMain.vcxproj.filters b/tpvs17/lpMain/lpMain.vcxproj.filters index 372d560..40414a1 100644 --- a/tpvs17/lpMain/lpMain.vcxproj.filters +++ b/tpvs17/lpMain/lpMain.vcxproj.filters @@ -202,6 +202,9 @@ ImageStandardUI + + Source Files + @@ -330,6 +333,9 @@ ImageStandardUI + + Header Files + @@ -377,6 +383,9 @@ ImageStandardUI + + Form Files + diff --git a/tpvs17/lpdesigner/lpdesigner.vcxproj b/tpvs17/lpdesigner/lpdesigner.vcxproj index 18fe121..fceafe8 100644 --- a/tpvs17/lpdesigner/lpdesigner.vcxproj +++ b/tpvs17/lpdesigner/lpdesigner.vcxproj @@ -93,7 +93,18 @@ + + + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing %(Identity)... + .\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_CORE_LIB -DLPDESIGNER_LIB -D%(PreprocessorDefinitions) "-I." "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWebKit" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtWebkitWidgets" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\..\..\include\lpdesigner\algela" "-I.\..\..\include\lpdesigner" "-I.\..\..\src\lpbdesigner\GeneratedFiles" "-I.\..\..\src\ColossusBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\src\lpbdesigner" "-I.\..\..\3part\tadpole\include\tpBase" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing %(Identity)... + .\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DLPDESIGNER_LIB -D%(PreprocessorDefinitions) "-I." "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWebKit" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtWebkitWidgets" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\..\..\include\lpdesigner\algela" "-I.\..\..\include\lpdesigner" "-I.\..\..\src\lpbdesigner\GeneratedFiles" "-I.\..\..\src\ColossusBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\src\lpbdesigner" "-I.\..\..\3part\tadpole\include\tpBase" + @@ -187,6 +198,9 @@ true + + true + true @@ -214,12 +228,16 @@ true + + true + true + @@ -295,6 +313,16 @@ .\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs) "$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + $(QTDIR)\bin\uic.exe;%(AdditionalInputs) + Uic%27ing %(Identity)... + .\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs) + "$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)" + diff --git a/tpvs17/lpdesigner/lpdesigner.vcxproj.filters b/tpvs17/lpdesigner/lpdesigner.vcxproj.filters index 541458c..0e71f08 100644 --- a/tpvs17/lpdesigner/lpdesigner.vcxproj.filters +++ b/tpvs17/lpdesigner/lpdesigner.vcxproj.filters @@ -76,6 +76,9 @@ Header Files + + Generated Files + @@ -120,6 +123,12 @@ Form Files + + Header Files + + + Form Files + @@ -212,6 +221,15 @@ Source Files + + Source Files + + + Generated Files\Debug + + + Generated Files\Release + diff --git a/tpvs17/valveDetector/algEg.cpp b/tpvs17/valveDetector/algEg.cpp index 837b7ef..f9e3fe6 100644 --- a/tpvs17/valveDetector/algEg.cpp +++ b/tpvs17/valveDetector/algEg.cpp @@ -91,6 +91,7 @@ bool algEg::Exec(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm) // add original center paramInput.originalPoint = Point2f(pt.x(), pt.y()); paramInput.nCenterAlg = lpAlgorithm->GetParamValue("centerAlg", LP_INT).toInt(); + double centeroffset = lpAlgorithm->GetParamValue("centerOffset", LP_INT).toInt(); // add background paramInput.backGround = lpAlgorithm->GetParamValue("background", LP_MAT).value(); luffy_imageProc::createImage(paramInput.backGround, paramInput.backGround, luffy_imageProc::emCreateGray); @@ -109,7 +110,7 @@ bool algEg::Exec(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm) else { float dis = luffy_math::disofPoints(paramInput.originalPoint, paramInput.ptCenter); - if (dis > 25) + if (dis > centeroffset) { bExist = false; paramOutput.nErrorType += 8; @@ -219,7 +220,8 @@ bool algEg::Exec(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm) bool algEg::Init(IDetectorTask *lpTask, IDetectorAlgorithm* lpAlgorithm) { - + LP_ALGORITHM_PARAM param1_centeroffset("centerOffset", LP_INT, 25, QObject::tr("圆心偏差距离,单位像素")); + lpAlgorithm->AddParam(¶m1_centeroffset, 1); LP_ALGORITHM_PARAM param1_1("backgroundThresh", LP_INT, 15, QObject::tr("背景差异性阈值")); lpAlgorithm->AddParam(¶m1_1, 1);