版博士V2.0程序
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

1469 行
62 KiB

  1. using CCWin.SkinClass;
  2. using MaiMuControl.SysStatusMgr.UserMgr;
  3. using Models;
  4. using Newtonsoft.Json;
  5. using Newtonsoft.Json.Linq;
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Generic;
  9. using System.Drawing;
  10. using System.IO;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Forms;
  15. using ToolKits.Ini;
  16. using ToolKits.mAPI;
  17. using ToolKits.PLC;
  18. namespace MaiMuAOI.SysCtrl
  19. {
  20. #region 参数类型
  21. /// <summary>
  22. /// 图片保存参数
  23. /// </summary>
  24. [Serializable]
  25. public class ImageSaveParam
  26. {
  27. /// <summary>
  28. /// 保存路径
  29. /// </summary>
  30. public string SavePath { get; set; }
  31. /// <summary>
  32. /// 自动保存
  33. /// </summary>
  34. public bool AutoSave { get; set; }
  35. /// <summary>
  36. /// 自动删除
  37. /// </summary>
  38. public bool AutoDelete { get; set; }
  39. /// <summary>
  40. /// 自动删除日期
  41. /// </summary>
  42. public double AutoDeleteDays { get; set; }
  43. public ImageSaveParam() {
  44. SavePath = "D:\\AllImageSave";
  45. AutoSave = true;
  46. AutoDelete = true;
  47. AutoDeleteDays = 3;
  48. }
  49. public ImageSaveParam(string path)
  50. {
  51. SavePath = path;
  52. AutoSave = true;
  53. AutoDelete = true;
  54. AutoDeleteDays = 3;
  55. }
  56. }
  57. /// <summary>
  58. /// 镜头对应Z轴高度
  59. /// </summary>
  60. [Serializable]
  61. public class LensAxisZ
  62. {
  63. public double Z_0_58X { get; set; }
  64. //public double Z_0_6X { get; set; }
  65. public double Z_1_0X { get; set; }
  66. public double Z_1_5X { get; set; }
  67. public double Z_2_0X { get; set; }
  68. public double Z_2_5X { get; set; }
  69. public double Z_3_0X { get; set; }
  70. public double Z_3_5X { get; set; }
  71. public double Z_4_0X { get; set; }
  72. public double Z_4_5X { get; set; }
  73. public double Z_5_0X { get; set; }
  74. public double Z_5_5X { get; set; }
  75. public double Z_6_0X { get; set; }
  76. public double Z_6_5X { get; set; }
  77. public double Z_7_0X { get; set; }
  78. public double Z_7_5X { get; set; }
  79. public LensAxisZ()
  80. {
  81. Z_0_58X = 0;
  82. //Z_0_6X = 0;
  83. Z_1_0X = 0;
  84. Z_1_5X = 0;
  85. Z_2_0X = 0;
  86. Z_2_5X = 0;
  87. Z_3_0X = 0;
  88. Z_3_5X = 0;
  89. Z_4_0X = 0;
  90. Z_4_5X = 0;
  91. Z_5_0X = 0;
  92. Z_5_5X = 0;
  93. Z_6_0X = 0;
  94. Z_6_5X = 0;
  95. Z_7_0X = 0;
  96. Z_7_5X = 0;
  97. }
  98. }
  99. [Serializable]
  100. public class SysConfigParams
  101. {
  102. #region 缺陷图
  103. /// <summary>
  104. /// 保存所有图片
  105. /// </summary>
  106. public bool SaveAllImg { get; set; }
  107. /// <summary>
  108. /// 缺陷大图
  109. /// </summary>
  110. public ImageSaveParam DefectBigImag { get; set; }
  111. /// <summary>
  112. /// 缺陷小图
  113. /// </summary>
  114. public ImageSaveParam DefectSmallImag { get; set; }
  115. /// <summary>
  116. /// 修复台 缺陷图
  117. /// </summary>
  118. public ImageSaveParam DefectRepairImag { get; set; }
  119. /// <summary>
  120. /// 对比大图
  121. /// </summary>
  122. public ImageSaveParam SizeBigImag { get; set; }
  123. /// <summary>
  124. /// 对比未通过
  125. /// </summary>
  126. public ImageSaveParam SizeNGImag { get; set; }
  127. /// <summary>
  128. /// 修复台 对比图
  129. /// </summary>
  130. public ImageSaveParam SizeRepairImag { get; set; }
  131. /// <summary>
  132. /// 缺陷原始小图
  133. /// </summary>
  134. public ImageSaveParam DefectSrcSmallImag { get; set; }
  135. public double Defect_SrcSmall_Thres { get; set; }
  136. #endregion
  137. #region 功能
  138. /// <summary>
  139. /// mark报警暂停
  140. /// </summary>
  141. public bool OpenMarkErrorStop { get; set; }
  142. /// <summary>
  143. /// 开启蜂鸣器
  144. /// </summary>
  145. public bool OpenBuzzer { get; set; }
  146. /// <summary>
  147. /// 开启门磁
  148. /// </summary>
  149. public bool OpenDoor { get; set; }
  150. /// <summary>
  151. /// 开启http日志
  152. /// </summary>
  153. public bool OpenHttpLog { get; set; }
  154. /// <summary>
  155. /// 开启软件开启自动回原
  156. /// </summary>
  157. public bool OpenAutoGoHome { get; set; }
  158. /// <summary>
  159. /// 启用缺陷分布功能
  160. /// </summary>
  161. public bool OpenFlawDistribution { get; set; }
  162. /// <summary>
  163. /// 启用X轴校准 2023-12-20
  164. /// </summary>
  165. public bool OpenAxisXCalibration { get; set; }
  166. /// <summary>
  167. /// 产品有无信号关闭
  168. /// </summary>
  169. public bool OpenPdtIsHave { get; set; }
  170. /// <summary>
  171. /// 开启查看功能
  172. /// </summary>
  173. public bool OpenDefectSanp { get; set; }
  174. /// <summary>
  175. /// 开启单边目数计算
  176. /// </summary>
  177. public bool OpenAsideDefect{ get; set; }
  178. /// <summary>
  179. /// 开启工单确认
  180. /// </summary>
  181. public bool OpenOredrCheck { get; set; }
  182. /// <summary>
  183. /// 开启工单数量确认
  184. /// </summary>
  185. public bool OpenOredrCntCheck { get; set; }
  186. #endregion
  187. #region 硬件传感器通信
  188. /// <summary>
  189. /// 光源串口
  190. /// </summary>
  191. //public LightParams LightCfg { get; set; }
  192. public string LightCom { get; set; }
  193. /// <summary>
  194. /// 光源波特率
  195. /// </summary>
  196. public int LightComBaud { get; set; }
  197. /// <summary>
  198. /// 张力传感器串口
  199. /// </summary>
  200. public string TensionCom { get; set; }
  201. /// <summary>
  202. /// 张力传感器波特率
  203. /// </summary>
  204. public int TensionComBaud { get; set; }
  205. /// <summary>
  206. /// 张力偏移值
  207. /// </summary>
  208. public double Tension_Offset = 0;
  209. /// <summary>
  210. /// 镜头电机串口
  211. /// </summary>
  212. public string LensMotorCom { get; set; }
  213. /// <summary>
  214. /// 镜头电机波特率
  215. /// </summary>
  216. public int LensMotorComBaud { get; set; }
  217. /// <summary>
  218. /// 厚度传感器IP
  219. /// </summary>
  220. public string ThicknessIP { get; set; }
  221. /// <summary>
  222. /// 厚度传感器port
  223. /// </summary>
  224. public int ThicknessPort { get; set; }
  225. /// <summary>
  226. /// 测厚安全值
  227. /// </summary>
  228. public double ThicknessSafeValue { get; set; }
  229. /// <summary>
  230. /// 测厚偏移值
  231. /// </summary>
  232. public double Thickness_Offset = 0;
  233. #endregion
  234. #region IO/电机/相机
  235. /// <summary>
  236. /// IO驱动名称
  237. /// </summary>
  238. //public IOParams IOCfg { get; set; }
  239. public string IODevName { get; set; }
  240. /// <summary>
  241. /// IO配置文件路径
  242. /// </summary>
  243. public string IOCfgPath { get; set; }
  244. /// <summary>
  245. /// 电机配置文件路径
  246. /// </summary>
  247. public string MotionCfgPath { get; set; }
  248. /// <summary>
  249. /// 前部相机名称
  250. /// </summary>
  251. public string FrontCamName { get; set; }
  252. /// <summary>
  253. /// 前部相机配置文件路径
  254. /// </summary>
  255. public string FrontCamCfgPath { get; set; }
  256. /// <summary>
  257. /// 后部相机名称
  258. /// </summary>
  259. public string BackCamName { get; set; }
  260. /// <summary>
  261. /// 后部相机配置文件路径
  262. /// </summary>
  263. public string BackCamCfgPath { get; set; }
  264. #endregion
  265. #region 禁用
  266. public bool DisableX1 { get; set; }
  267. public bool DisableX2 { get; set; }
  268. public bool DisableY { get; set; }
  269. public bool DisableZ { get; set; }
  270. public bool DisableFrontCam { get; set; }
  271. public bool DisableBackCam { get; set; }
  272. public bool DisableLight { get; set; }
  273. public bool DisableTensor { get; set; }
  274. public bool DisableThickness { get; set; }
  275. public bool DisableLensMotor { get; set; }
  276. #endregion
  277. #region 系统
  278. public string ImageProcessPath { get; set; }
  279. public string ImageProcessDataPath { get; set; }
  280. public string AIModelPath { get; set; }
  281. public string ProductPath { get; set; }
  282. public string HttpServerIP { get; set; }
  283. public int HttpServerPort { get; set; }
  284. public string LogPath { get; set; }
  285. public bool AutoDeleteLog { get; set; }
  286. public double AutoDeleteLogData { get; set; }
  287. /// <summary>
  288. /// 调试:主界面显示复位按钮
  289. /// </summary>
  290. public bool ShowResetBtn { get; set; }
  291. /// <summary>
  292. /// 调试:主界面显示蜂鸣器控制
  293. /// </summary>
  294. public bool ShowBuzz { get; set; }
  295. /// <summary>
  296. /// 调试:主界面显示门磁报警控制
  297. /// </summary>
  298. public bool ShowDoorAlm { get; set; }
  299. /// <summary>
  300. /// 调试:显示分布
  301. /// </summary>
  302. public bool ShowDistribution { get; set; }
  303. /// <summary>
  304. /// 调试:显示尺寸检测禁用和启用
  305. /// </summary>
  306. public bool ShowSizeBtn { get; set; }
  307. /// <summary>
  308. /// 调试:显示缺陷检测禁用和启用
  309. /// </summary>
  310. public bool ShowDefectBtn { get; set; }
  311. /// <summary>
  312. /// 后部相机视野X
  313. /// </summary>
  314. public double DefectCamViewX { get; set; }
  315. /// <summary>
  316. /// 后部相机视野Y
  317. /// </summary>
  318. public double DefectCamViewY { get; set; }
  319. #endregion
  320. #region Http/MES
  321. /// <summary>
  322. /// 开启http上传
  323. /// </summary>
  324. public bool EnableHttp { get; set; }
  325. /// <summary>
  326. /// 上传Http地址
  327. /// </summary>
  328. public string HttpUrl { get; set; }
  329. /// <summary>
  330. /// 上传Json模板路径
  331. /// </summary>
  332. public string HttpTempPath { get; set; }
  333. /// <summary>
  334. /// 返回值Key
  335. /// </summary>
  336. public string HttpReturnKey{ get; set; }
  337. /// <summary>
  338. /// 返回成功value
  339. /// </summary>
  340. public string HttpReturnValue { get; set; }
  341. #endregion
  342. #region MQTT本地云/产品服务器
  343. /// <summary>
  344. /// 开启局域网云端
  345. /// </summary>
  346. public bool OpenCloud { get; set; }
  347. public string CloudThisName { get; set; }
  348. public string CloudServerIP { get; set; }
  349. public int CloudServerPort { get; set; }
  350. public string CloudUser { get; set; }
  351. public string CloudPassword { get; set; }
  352. /// <summary>
  353. /// 开启产品转发
  354. /// </summary>
  355. public bool OpenPdtServer { get; set; }
  356. public string PdtServerIP { get; set; }
  357. public int PdtServerPort { get; set; }
  358. /// <summary>
  359. /// 是否作为服务器还是客户端
  360. /// </summary>
  361. public bool IsPdtServer { get; set; }
  362. #endregion
  363. #region 聚焦
  364. /// <summary>
  365. /// 聚焦对应Z轴位置
  366. /// </summary>
  367. public LensAxisZ LensAxisZPos { get; set; }
  368. #endregion
  369. #region 缺陷分割
  370. //缺陷配置
  371. public Size Defect_CutSize { get; set; }
  372. public Size Defect_ReSize { get; set; }
  373. public float Defect_Thresholds { get; set; }
  374. #endregion
  375. #region BarTender
  376. /// <summary>
  377. /// 开启标签打印
  378. /// </summary>
  379. public bool EnableLabelPrint { get; set; }
  380. /// <summary>
  381. /// 打印机名称
  382. /// </summary>
  383. public string LabelPrinterName { get; set; }
  384. /// <summary>
  385. /// 打印模板路径
  386. /// </summary>
  387. public string LabelTempPath { get; set; }
  388. /// <summary>
  389. /// 打印信息
  390. /// </summary>
  391. public Dictionary<string, string> LabelData { get; set; }
  392. #endregion
  393. #region Excel
  394. /// <summary>
  395. /// 开启Excel打印
  396. /// </summary>
  397. public bool EnableExcelPrint { get; set; }
  398. /// <summary>
  399. /// 打印机名称
  400. /// </summary>
  401. public string ExcelPrinterName { get; set; }
  402. /// <summary>
  403. /// 打印模板路径
  404. /// </summary>
  405. public string ExcelTempPath { get; set; }
  406. /// <summary>
  407. /// 打印信息
  408. /// </summary>
  409. public Dictionary<string, string> ExcelData { get; set; }
  410. #endregion
  411. #region 老流程PT线宽补偿
  412. public double Pt_offset { get; set; }
  413. public double Line_offset { get; set; }
  414. public double wgjk_offset { get; set; }
  415. #endregion
  416. #region 左上角比例调整
  417. public double X_per{ get; set; }
  418. public double Y_per { get; set; }
  419. #endregion
  420. #region 缺陷查看
  421. public int LightCH { get; set; }
  422. public int LightLut { get; set; }
  423. public int CamExposureTime { get; set; }
  424. #endregion
  425. public SysConfigParams()
  426. {
  427. DefectBigImag = new ImageSaveParam("D:\\AllImageSave\\DefectBigImag");
  428. DefectSmallImag = new ImageSaveParam("D:\\AllImageSave\\DefectSmallImag");
  429. DefectRepairImag = new ImageSaveParam("D:\\AllImageSave\\DefectRepairImag");
  430. SizeBigImag = new ImageSaveParam("D:\\AllImageSave\\SizeBigImag");
  431. SizeNGImag = new ImageSaveParam("D:\\AllImageSave\\SizeNGImag");
  432. SizeRepairImag = new ImageSaveParam("D:\\AllImageSave\\SizeRepairImag");
  433. DefectSrcSmallImag = new ImageSaveParam("D:\\Image\\缺陷原始小图");
  434. OpenMarkErrorStop = true;
  435. OpenBuzzer = true;
  436. OpenDoor = true;
  437. OpenHttpLog = false;
  438. OpenPdtIsHave = true;
  439. OpenDefectSanp = false;
  440. OpenAsideDefect = true;
  441. OpenOredrCheck = false;
  442. OpenOredrCntCheck = false;
  443. //LightCfg = new LightParams();
  444. //IOCfg = new IOParams();
  445. IODevName = "";
  446. IOCfgPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\IOCard_default.xml"); ;
  447. LightCom = "";
  448. LightComBaud = 9600;
  449. LensMotorCom = "";
  450. LensMotorComBaud = 9600;
  451. TensionCom = "";
  452. TensionComBaud = 2400;
  453. ThicknessIP = "192.168.3.35";
  454. ThicknessPort = 8888;
  455. ThicknessSafeValue = 10;
  456. FrontCamCfgPath = "";
  457. BackCamCfgPath = "";
  458. MotionCfgPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\Axis_default.cfg"); ;
  459. SaveAllImg = false;
  460. DisableX1 = false;
  461. DisableX2 = false;
  462. DisableY = false;
  463. DisableZ = false;
  464. DisableFrontCam = false;
  465. DisableBackCam = false;
  466. DisableLight = false;
  467. DisableLensMotor = false;
  468. DisableTensor = false;
  469. DisableThickness = false;
  470. ImageProcessPath = "C:\\Users\\user\\AppData\\Local\\Programs\\MVTec\\HALCON-21.05-Progress\\procedures\\general";
  471. ImageProcessDataPath = "C:\\Users\\PC\\AppData\\Local\\Programs\\MVTec\\HALCON-21.05-Progress\\procedures\\User_Data\\HomMat2D1M2CCDpose";
  472. AIModelPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\onnxFiles");
  473. ProductPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\Project");
  474. HttpServerIP = "127.0.0.1";
  475. HttpServerPort = 18082;
  476. LogPath = Path.Combine(Directory.GetCurrentDirectory(), "LogFiles");
  477. AutoDeleteLog = false;
  478. AutoDeleteLogData = 0;
  479. ShowResetBtn = true;
  480. ShowBuzz = false;
  481. ShowDoorAlm = false;
  482. ShowDistribution = false;
  483. ShowSizeBtn = false;
  484. ShowDefectBtn = false;
  485. DefectCamViewX = 35.5;
  486. DefectCamViewY = 26.5;
  487. EnableHttp = false;
  488. HttpUrl = "";
  489. HttpTempPath = "";
  490. HttpReturnKey = "";
  491. HttpReturnValue = "";
  492. LensAxisZPos = new LensAxisZ();
  493. //缺陷配置
  494. Defect_CutSize = new Size(592, 532);
  495. Defect_ReSize = new Size(224, 224);
  496. Defect_Thresholds = 0.4f;
  497. EnableLabelPrint = false;
  498. LabelPrinterName = "";
  499. LabelTempPath = "";
  500. LabelData = new Dictionary<string, string>();
  501. EnableExcelPrint = false;
  502. ExcelPrinterName = "";
  503. ExcelTempPath = "";
  504. ExcelData = new Dictionary<string, string>();
  505. OpenCloud = false;
  506. CloudThisName = "Test";
  507. CloudServerIP = "127.0.0.1";
  508. CloudServerPort = 1883;
  509. CloudUser = "";
  510. CloudPassword = "";
  511. OpenPdtServer = false;
  512. PdtServerIP = "127.0.0.1";
  513. PdtServerPort = 10573;
  514. IsPdtServer = true;
  515. Pt_offset = 0;
  516. Line_offset = 0;
  517. wgjk_offset = 0;
  518. X_per = 0.1;
  519. Y_per = 0.1;
  520. LightCH = 2;
  521. LightLut = 255;
  522. CamExposureTime = 8000;
  523. }
  524. }
  525. #endregion
  526. /// <summary>
  527. /// 设备参数
  528. /// </summary>
  529. public class ConfMgr
  530. {
  531. #region 实例化
  532. /// <summary>
  533. /// 实例
  534. /// </summary>
  535. private static ConfMgr _instance;
  536. private static readonly object _lock = new object();
  537. public static ConfMgr Instance
  538. {
  539. get
  540. {
  541. if (_instance == null)
  542. {
  543. lock (_lock)
  544. {
  545. if (_instance == null)
  546. {
  547. _instance = new ConfMgr();
  548. }
  549. }
  550. }
  551. return _instance;
  552. }
  553. }
  554. #endregion
  555. #region 私有字段
  556. private readonly string _rootPath;
  557. private readonly string _configFile;
  558. private readonly string _projectDir;
  559. private readonly string _pointsPath;
  560. private readonly string _markPicPath;
  561. #endregion
  562. private ConfMgr()
  563. {
  564. _rootPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles");
  565. _configFile = Path.Combine(_rootPath, "SysParamsConfig.ini");
  566. _devConfigPath = Path.Combine(_rootPath, "DevParamsConfig.ini");
  567. _projectDir = Path.Combine(_rootPath, "Project");
  568. _pointsPath = Path.Combine(_rootPath, "PointsConfig.ini");
  569. _markPicPath = Path.Combine(_rootPath, "MarkPic");
  570. _specificationPath = Path.Combine(_rootPath, "版博士软件操作说明.docx");
  571. DBConStr = "server = localhost; Database = ProductionDB; Uid = root; Pwd = " + ConteolUserDB.GetSqlDBCode() + "; AllowLoadLocalInfile = true;";
  572. }
  573. #region 公开字段
  574. //DB
  575. //有些服务器防火墙有问题需要加上 min pool size=1 避免认为是恶意请求
  576. //如果用到bulkCopy需要加: AllowLoadLocalInfile=true
  577. //public static string dbMysqlCon = "server=localhost;Database=ProductionDB;Uid=root;Pwd=123456;";
  578. public string DBConStr = "server=localhost;Database=ProductionDB;Uid=root;Pwd=123456; AllowLoadLocalInfile=true";
  579. /// <summary>
  580. /// 系统配置参数
  581. /// </summary>
  582. public SysConfigParams SysConfigParams { get; set; }
  583. private string _devConfigPath;
  584. /// <summary>
  585. /// 获取驱动配制文件路径
  586. /// </summary>
  587. public string DevConfigPath { get { return _devConfigPath; } }
  588. //public string ProjectDir { get { return _projectDir; } }
  589. public string ProjectDir { get { return SysConfigParams.ProductPath; } }
  590. public string MarkPicPath { get { return _markPicPath; } }
  591. /// <summary>
  592. /// 说明书路径
  593. /// </summary>
  594. public string SpecificationPath { get { return _specificationPath; } }
  595. private string _specificationPath;
  596. /// <summary>
  597. /// 上料位X1
  598. /// </summary>
  599. public double LoadPoint_X1 { get; set; }
  600. /// <summary>
  601. /// 上料位X2
  602. /// </summary>
  603. public double LoadPoint_X2 { get; set; }
  604. /// <summary>
  605. /// 上料位Y
  606. /// </summary>
  607. public double LoadPoint_Y { get; set; }
  608. /// <summary>
  609. /// 上料位Z
  610. /// </summary>
  611. public double LoadPoint_Z { get; set; }
  612. /// <summary>
  613. /// 测厚气缸到位等待时间
  614. /// </summary>
  615. public int HeightDoWait { get; set; }
  616. /// <summary>
  617. /// 加紧气缸到位等待时间
  618. /// </summary>
  619. public int ProductDoWait { get; set; }
  620. #endregion
  621. #region 公开文件操作
  622. #region 点位配置
  623. public void WritePointsAndTime(double x1, double x2, double y, double z, int ht, int pt)
  624. {
  625. //XmlHelper.Serialize<SysConfParams>(_configFile, sysConfParams);
  626. IniHelper iniHelper = new IniHelper(_pointsPath);
  627. iniHelper.WriteDouble("LoadPoint", "X1", x1);
  628. iniHelper.WriteDouble("LoadPoint", "X2", x2);
  629. iniHelper.WriteDouble("LoadPoint", "Y", y);
  630. iniHelper.WriteDouble("LoadPoint", "Z", z);
  631. iniHelper.WriteInteger("WaitTime", "HeightDoWait", ht);
  632. iniHelper.WriteInteger("WaitTime", "ProductDoWait", pt);
  633. LoadPoint_X1 = x1;
  634. LoadPoint_X2 = x2;
  635. LoadPoint_Y = y;
  636. LoadPoint_Z = z;
  637. HeightDoWait = ht;
  638. ProductDoWait = pt;
  639. }
  640. public void ReadPointsAndTime()
  641. {
  642. IniHelper iniHelper = new IniHelper(_pointsPath);
  643. double dValue = 0;
  644. int iValue = 0;
  645. iniHelper.ReadDouble("LoadPoint", "X1", out dValue);
  646. LoadPoint_X1 = dValue;
  647. iniHelper.ReadDouble("LoadPoint", "X2", out dValue);
  648. LoadPoint_X2 = dValue;
  649. iniHelper.ReadDouble("LoadPoint", "Y", out dValue);
  650. LoadPoint_Y = dValue;
  651. iniHelper.ReadDouble("LoadPoint", "Z", out dValue);
  652. LoadPoint_Z = dValue;
  653. iniHelper.ReadInteger("WaitTime", "HeightDoWait", out iValue);
  654. HeightDoWait = iValue;
  655. iniHelper.ReadInteger("WaitTime", "ProductDoWait", out iValue);
  656. ProductDoWait = iValue;
  657. }
  658. #endregion
  659. #region 系统配置参数
  660. /// <summary>
  661. /// 写入ini
  662. /// </summary>
  663. /// <param name="SocketParams"></param>
  664. public void WriteSysConfParams(SysConfigParams SysParams)
  665. {
  666. //XmlHelper.Serialize<SysConfParams>(_configFile, sysConfParams);
  667. IniHelper iniHelper = new IniHelper(_configFile);
  668. iniHelper.WriteBool("SaveAllImg", "SaveAllImg", SysParams.SaveAllImg);
  669. iniHelper.WriteString("DefectBigImag", "SavePath", SysParams.DefectBigImag.SavePath);
  670. iniHelper.WriteBool("DefectBigImag", "AutoSave", SysParams.DefectBigImag.AutoSave);
  671. iniHelper.WriteBool("DefectBigImag", "AutoDelete", SysParams.DefectBigImag.AutoDelete);
  672. iniHelper.WriteDouble("DefectBigImag", "AutoDeleteDays", SysParams.DefectBigImag.AutoDeleteDays);
  673. iniHelper.WriteString("DefectSmallImag", "SavePath", SysParams.DefectSmallImag.SavePath);
  674. iniHelper.WriteBool("DefectSmallImag", "AutoSave", SysParams.DefectSmallImag.AutoSave);
  675. iniHelper.WriteBool("DefectSmallImag", "AutoDelete", SysParams.DefectSmallImag.AutoDelete);
  676. iniHelper.WriteDouble("DefectSmallImag", "AutoDeleteDays", SysParams.DefectSmallImag.AutoDeleteDays);
  677. iniHelper.WriteString("DefectRepairImag", "SavePath", SysParams.DefectRepairImag.SavePath);
  678. iniHelper.WriteBool("DefectRepairImag", "AutoSave", SysParams.DefectRepairImag.AutoSave);
  679. iniHelper.WriteBool("DefectRepairImag", "AutoDelete", SysParams.DefectRepairImag.AutoDelete);
  680. iniHelper.WriteDouble("DefectRepairImag", "AutoDeleteDays", SysParams.DefectRepairImag.AutoDeleteDays);
  681. iniHelper.WriteString("SizeBigImag", "SavePath", SysParams.SizeBigImag.SavePath);
  682. iniHelper.WriteBool("SizeBigImag", "AutoSave", SysParams.SizeBigImag.AutoSave);
  683. iniHelper.WriteBool("SizeBigImag", "AutoDelete", SysParams.SizeBigImag.AutoDelete);
  684. iniHelper.WriteDouble("SizeBigImag", "AutoDeleteDays", SysParams.SizeBigImag.AutoDeleteDays);
  685. iniHelper.WriteString("SizeNGImag", "SavePath", SysParams.SizeNGImag.SavePath);
  686. iniHelper.WriteBool("SizeNGImag", "AutoSave", SysParams.SizeNGImag.AutoSave);
  687. iniHelper.WriteBool("SizeNGImag", "AutoDelete", SysParams.SizeNGImag.AutoDelete);
  688. iniHelper.WriteDouble("SizeNGImag", "AutoDeleteDays", SysParams.SizeNGImag.AutoDeleteDays);
  689. iniHelper.WriteString("SizeRepairImag", "SavePath", SysParams.SizeRepairImag.SavePath);
  690. iniHelper.WriteBool("SizeRepairImag", "AutoSave", SysParams.SizeRepairImag.AutoSave);
  691. iniHelper.WriteBool("SizeRepairImag", "AutoDelete", SysParams.SizeRepairImag.AutoDelete);
  692. iniHelper.WriteDouble("SizeRepairImag", "AutoDeleteDays", SysParams.SizeRepairImag.AutoDeleteDays);
  693. iniHelper.WriteDouble("DefectSrcSmallImag", "Defect_SrcSmall_Thres", SysParams.Defect_SrcSmall_Thres);
  694. iniHelper.WriteString("DefectSrcSmallImag", "SavePath", SysParams.DefectSrcSmallImag.SavePath);
  695. iniHelper.WriteBool("DefectSrcSmallImag", "AutoSave", SysParams.DefectSrcSmallImag.AutoSave);
  696. iniHelper.WriteBool("DefectSrcSmallImag", "AutoDelete", SysParams.DefectSrcSmallImag.AutoDelete);
  697. iniHelper.WriteDouble("DefectSrcSmallImag", "AutoDeleteDays", SysParams.DefectSrcSmallImag.AutoDeleteDays);
  698. iniHelper.WriteString("Log", "SavePath", SysParams.LogPath);
  699. iniHelper.WriteBool("Log", "AutoDelete", SysParams.AutoDeleteLog);
  700. iniHelper.WriteDouble("Log", "AutoDeleteDays", SysParams.AutoDeleteLogData);
  701. iniHelper.WriteBool("SysFunction", "OpenMarkErrorStop", SysParams.OpenMarkErrorStop);
  702. iniHelper.WriteBool("SysFunction", "OpenBuzzer", SysParams.OpenBuzzer);
  703. iniHelper.WriteBool("SysFunction", "OpenDoor", SysParams.OpenDoor);
  704. iniHelper.WriteBool("SysFunction", "OpenHttpLog", SysParams.OpenHttpLog);
  705. iniHelper.WriteBool("SysFunction", "OpenAutoGoHome", SysParams.OpenAutoGoHome);
  706. iniHelper.WriteBool("SysFunction", "OpenFlawDistribution", SysParams.OpenFlawDistribution);
  707. iniHelper.WriteBool("SysFunction", "OpenAxisXCalibration", SysParams.OpenAxisXCalibration);
  708. iniHelper.WriteBool("SysFunction", "OpenPdtIsHave", SysParams.OpenPdtIsHave);
  709. iniHelper.WriteBool("SysFunction", "OpenDefectSanp", SysParams.OpenDefectSanp);
  710. iniHelper.WriteBool("SysFunction", "OpenAsideDefect", SysParams.OpenAsideDefect);
  711. iniHelper.WriteBool("SysFunction", "OpenOredrCheck", SysParams.OpenOredrCheck);
  712. iniHelper.WriteBool("SysFunction", "OpenOredrCntCheck", SysParams.OpenOredrCntCheck);
  713. iniHelper.WriteString("Dev", "LightCom", SysParams.LightCom);
  714. iniHelper.WriteInteger("Dev", "LightComBaud", SysParams.LightComBaud);
  715. iniHelper.WriteString("Dev", "TensionCom", SysParams.TensionCom);
  716. iniHelper.WriteInteger("Dev", "TensionComBaud", SysParams.TensionComBaud);
  717. iniHelper.WriteDouble("Dev", "Tension_Offset", SysParams.Tension_Offset);
  718. iniHelper.WriteString("Dev", "LensMotorCom", SysParams.LensMotorCom);
  719. iniHelper.WriteInteger("Dev", "LensMotorComBaud", SysParams.LensMotorComBaud);
  720. iniHelper.WriteString("Dev", "ThicknessIP", SysParams.ThicknessIP);
  721. iniHelper.WriteInteger("Dev", "ThicknessPort", SysParams.ThicknessPort);
  722. iniHelper.WriteDouble("Dev", "ThicknessSafeValue", SysParams.ThicknessSafeValue);
  723. iniHelper.WriteDouble("Dev", "Thickness_Offset", SysParams.Thickness_Offset);
  724. iniHelper.WriteString("Dev", "IODevName", SysParams.IODevName);
  725. iniHelper.WriteString("Dev", "IOCfgPath", SysParams.IOCfgPath);
  726. iniHelper.WriteString("Dev", "MotionCfgPath", SysParams.MotionCfgPath);
  727. iniHelper.WriteString("Dev", "FrontCamName", SysParams.FrontCamName);
  728. iniHelper.WriteString("Dev", "FrontCamCfgPath", SysParams.FrontCamCfgPath);
  729. iniHelper.WriteString("Dev", "BackCamName", SysParams.BackCamName);
  730. iniHelper.WriteString("Dev", "BackCamCfgPath", SysParams.BackCamCfgPath);
  731. iniHelper.WriteBool("Disable", "DisableX1", SysParams.DisableX1);
  732. iniHelper.WriteBool("Disable", "DisableX2", SysParams.DisableX2);
  733. iniHelper.WriteBool("Disable", "DisableY", SysParams.DisableY);
  734. iniHelper.WriteBool("Disable", "DisableZ", SysParams.DisableZ);
  735. iniHelper.WriteBool("Disable", "DisableFrontCam", SysParams.DisableFrontCam);
  736. iniHelper.WriteBool("Disable", "DisableBackCam", SysParams.DisableBackCam);
  737. iniHelper.WriteBool("Disable", "DisableLight", SysParams.DisableLight);
  738. iniHelper.WriteBool("Disable", "DisableThickness", SysParams.DisableThickness);
  739. iniHelper.WriteBool("Disable", "DisableTensor", SysParams.DisableTensor);
  740. iniHelper.WriteBool("Disable", "DisableLensMotor", SysParams.DisableLensMotor);
  741. iniHelper.WriteString("Sys", "ImageProcessPath", SysParams.ImageProcessPath);
  742. iniHelper.WriteString("Sys", "ImageProcessDataPath", SysParams.ImageProcessDataPath);
  743. iniHelper.WriteString("Sys", "AIModelPath", SysParams.AIModelPath);
  744. iniHelper.WriteString("Sys", "ProductPath", SysParams.ProductPath);
  745. iniHelper.WriteString("Sys", "HttpServerIP", SysParams.HttpServerIP);
  746. iniHelper.WriteInteger("Sys", "HttpServerPort", SysParams.HttpServerPort);
  747. iniHelper.WriteBool("ShowMainWin", "ShowResetBtn", SysParams.ShowResetBtn);
  748. iniHelper.WriteBool("ShowMainWin", "ShowBuzz", SysParams.ShowBuzz);
  749. iniHelper.WriteBool("ShowMainWin", "ShowDoorAlm", SysParams.ShowDoorAlm);
  750. iniHelper.WriteBool("ShowMainWin", "ShowDistribution", SysParams.ShowDistribution);
  751. iniHelper.WriteBool("ShowMainWin", "ShowSizeBtn", SysParams.ShowSizeBtn);
  752. iniHelper.WriteBool("ShowMainWin", "ShowDefectBtn", SysParams.ShowDefectBtn);
  753. iniHelper.WriteDouble("CamView", "DefectCamViewX", SysParams.DefectCamViewX);
  754. iniHelper.WriteDouble("CamView", "DefectCamViewY", SysParams.DefectCamViewY);
  755. iniHelper.WriteBool("CloudAndMES", "EnableHttp", SysParams.EnableHttp);
  756. iniHelper.WriteString("CloudAndMES", "HttpUrl", SysParams.HttpUrl);
  757. iniHelper.WriteString("CloudAndMES", "HttpTempPath", SysParams.HttpTempPath);
  758. iniHelper.WriteString("CloudAndMES", "HttpReturnKey", SysParams.HttpReturnKey);
  759. iniHelper.WriteString("CloudAndMES", "HttpReturnValue", SysParams.HttpReturnValue);
  760. iniHelper.WriteBool("CloudAndMES", "OpenCloud", SysParams.OpenCloud);
  761. iniHelper.WriteString("CloudAndMES", "CloudThisName", SysParams.CloudThisName);
  762. iniHelper.WriteString("CloudAndMES", "CloudServerIP", SysParams.CloudServerIP);
  763. iniHelper.WriteInteger("CloudAndMES", "CloudServerPort", SysParams.CloudServerPort);
  764. iniHelper.WriteString("CloudAndMES", "CloudUser", SysParams.CloudUser);
  765. iniHelper.WriteString("CloudAndMES", "CloudPassword", SysParams.CloudPassword);
  766. iniHelper.WriteBool("CloudAndMES", "OpenPdtServer", SysParams.OpenPdtServer);
  767. iniHelper.WriteString("CloudAndMES", "PdtServerIP", SysParams.PdtServerIP);
  768. iniHelper.WriteInteger("CloudAndMES", "PdtServerPort", SysParams.PdtServerPort);
  769. iniHelper.WriteBool("CloudAndMES", "IsPdtServer", SysParams.IsPdtServer);
  770. iniHelper.WriteDouble("LensZ", "Z_0_58X", SysParams.LensAxisZPos.Z_0_58X);
  771. //iniHelper.WriteDouble("LensZ", "Z_0_6X", SysParams.LensAxisZPos.Z_0_6X);
  772. iniHelper.WriteDouble("LensZ", "Z_1_0X", SysParams.LensAxisZPos.Z_1_0X);
  773. iniHelper.WriteDouble("LensZ", "Z_1_5X", SysParams.LensAxisZPos.Z_1_5X);
  774. iniHelper.WriteDouble("LensZ", "Z_2_0X", SysParams.LensAxisZPos.Z_2_0X);
  775. iniHelper.WriteDouble("LensZ", "Z_2_5X", SysParams.LensAxisZPos.Z_2_5X);
  776. iniHelper.WriteDouble("LensZ", "Z_3_0X", SysParams.LensAxisZPos.Z_3_0X);
  777. iniHelper.WriteDouble("LensZ", "Z_3_5X", SysParams.LensAxisZPos.Z_3_5X);
  778. iniHelper.WriteDouble("LensZ", "Z_4_0X", SysParams.LensAxisZPos.Z_4_0X);
  779. iniHelper.WriteDouble("LensZ", "Z_4_5X", SysParams.LensAxisZPos.Z_4_5X);
  780. iniHelper.WriteDouble("LensZ", "Z_5_0X", SysParams.LensAxisZPos.Z_5_0X);
  781. iniHelper.WriteDouble("LensZ", "Z_5_5X", SysParams.LensAxisZPos.Z_5_5X);
  782. iniHelper.WriteDouble("LensZ", "Z_6_0X", SysParams.LensAxisZPos.Z_6_0X);
  783. iniHelper.WriteDouble("LensZ", "Z_6_5X", SysParams.LensAxisZPos.Z_6_5X);
  784. iniHelper.WriteDouble("LensZ", "Z_7_0X", SysParams.LensAxisZPos.Z_7_0X);
  785. iniHelper.WriteDouble("LensZ", "Z_7_5X", SysParams.LensAxisZPos.Z_7_5X);
  786. iniHelper.WriteBool("LabelPrint", "EnableLabelPrint", SysParams.EnableLabelPrint);
  787. iniHelper.WriteString("LabelPrint", "LabelPrinterName", SysParams.LabelPrinterName);
  788. iniHelper.WriteString("LabelPrint", "LabelTempPath", SysParams.LabelTempPath);
  789. iniHelper.WriteString("LabelPrint", "LabelData", JsonConvert.SerializeObject(SysParams.LabelData));
  790. iniHelper.WriteBool("ExcelPrint", "EnableExcelPrint", SysParams.EnableExcelPrint);
  791. iniHelper.WriteString("ExcelPrint", "ExcelPrinterName", SysParams.ExcelPrinterName);
  792. iniHelper.WriteString("ExcelPrint", "ExcelTempPath", SysParams.ExcelTempPath);
  793. iniHelper.WriteString("ExcelPrint", "ExcelData", JsonConvert.SerializeObject(SysParams.ExcelData));
  794. iniHelper.WriteDouble("Offset", "Pt_offset", SysParams.Pt_offset);
  795. iniHelper.WriteDouble("Offset", "Line_offset", SysParams.Line_offset);
  796. iniHelper.WriteDouble("Offset", "wgjk_offset", SysParams.wgjk_offset);
  797. iniHelper.WriteDouble("Offset", "X_per", SysParams.X_per);
  798. iniHelper.WriteDouble("Offset", "Y_per", SysParams.Y_per);
  799. iniHelper.WriteInteger("DefectSnap", "LightCH", SysParams.LightCH);
  800. iniHelper.WriteInteger("DefectSnap", "LightLut", SysParams.LightLut);
  801. iniHelper.WriteInteger("DefectSnap", "CamExposureTime", SysParams.CamExposureTime);
  802. SysConfigParams = SysParams;
  803. }
  804. /// <summary>
  805. /// 读取ini
  806. /// </summary>
  807. /// <returns></returns>
  808. public SysConfigParams ReadSysConfParams()
  809. {
  810. //return XmlHelper.Deserialize<SysConfParams>(_configFile);
  811. SysConfigParams sysParams = new SysConfigParams();
  812. IniHelper iniHelper = new IniHelper(_configFile);
  813. string sValue = "";
  814. int iValue = 0;
  815. double dValue = 0;
  816. bool bValue = false;
  817. iniHelper.ReadBool("SaveAllImg", "SaveAllImg", out bValue);
  818. sysParams.SaveAllImg = bValue;
  819. iniHelper.ReadDouble("DefectSrcSmallImag", "Defect_SrcSmall_Thres", out dValue);
  820. sysParams.Defect_SrcSmall_Thres = dValue;
  821. iniHelper.ReadString("DefectSrcSmallImag", "SavePath", out sValue);
  822. sysParams.DefectSrcSmallImag.SavePath = sValue.Replace("\0", "");
  823. iniHelper.ReadBool("DefectSrcSmallImag", "AutoSave", out bValue);
  824. sysParams.DefectSrcSmallImag.AutoSave = bValue;
  825. iniHelper.ReadBool("DefectSrcSmallImag", "AutoDelete", out bValue);
  826. sysParams.DefectSrcSmallImag.AutoDelete = bValue;
  827. iniHelper.ReadDouble("DefectSrcSmallImag", "AutoDeleteDays", out dValue);
  828. sysParams.DefectSrcSmallImag.AutoDeleteDays = dValue;
  829. iniHelper.ReadString("DefectBigImag", "SavePath", out sValue);
  830. sysParams.DefectBigImag.SavePath = sValue.Replace("\0", "");
  831. iniHelper.ReadBool("DefectBigImag", "AutoSave", out bValue);
  832. sysParams.DefectBigImag.AutoSave = bValue;
  833. iniHelper.ReadBool("DefectBigImag", "AutoDelete", out bValue);
  834. sysParams.DefectBigImag.AutoDelete = bValue;
  835. iniHelper.ReadDouble("DefectBigImag", "AutoDeleteDays", out dValue);
  836. sysParams.DefectBigImag.AutoDeleteDays = dValue;
  837. iniHelper.ReadString("DefectSmallImag", "SavePath", out sValue);
  838. sysParams.DefectSmallImag.SavePath = sValue.Replace("\0", "");
  839. iniHelper.ReadBool("DefectSmallImag", "AutoSave", out bValue);
  840. sysParams.DefectSmallImag.AutoSave = bValue;
  841. iniHelper.ReadBool("DefectSmallImag", "AutoDelete", out bValue);
  842. sysParams.DefectSmallImag.AutoDelete = bValue;
  843. iniHelper.ReadDouble("DefectSmallImag", "AutoDeleteDays", out dValue);
  844. sysParams.DefectSmallImag.AutoDeleteDays = dValue;
  845. iniHelper.ReadString("DefectRepairImag", "SavePath", out sValue);
  846. sysParams.DefectRepairImag.SavePath = sValue.Replace("\0", "");
  847. iniHelper.ReadBool("DefectRepairImag", "AutoSave", out bValue);
  848. sysParams.DefectRepairImag.AutoSave = bValue;
  849. iniHelper.ReadBool("DefectRepairImag", "AutoDelete", out bValue);
  850. sysParams.DefectRepairImag.AutoDelete = bValue;
  851. iniHelper.ReadDouble("DefectRepairImag", "AutoDeleteDays", out dValue);
  852. sysParams.DefectRepairImag.AutoDeleteDays = dValue;
  853. iniHelper.ReadString("SizeBigImag", "SavePath", out sValue);
  854. sysParams.SizeBigImag.SavePath = sValue.Replace("\0", "");
  855. iniHelper.ReadBool("SizeBigImag", "AutoSave", out bValue);
  856. sysParams.SizeBigImag.AutoSave = bValue;
  857. iniHelper.ReadBool("SizeBigImag", "AutoDelete", out bValue);
  858. sysParams.SizeBigImag.AutoDelete = bValue;
  859. iniHelper.ReadDouble("SizeBigImag", "AutoDeleteDays", out dValue);
  860. sysParams.SizeBigImag.AutoDeleteDays = dValue;
  861. iniHelper.ReadString("SizeNGImag", "SavePath", out sValue);
  862. sysParams.SizeNGImag.SavePath = sValue.Replace("\0", "");
  863. iniHelper.ReadBool("SizeNGImag", "AutoSave", out bValue);
  864. sysParams.SizeNGImag.AutoSave = bValue;
  865. iniHelper.ReadBool("SizeNGImag", "AutoDelete", out bValue);
  866. sysParams.SizeNGImag.AutoDelete = bValue;
  867. iniHelper.ReadDouble("SizeNGImag", "AutoDeleteDays", out dValue);
  868. sysParams.SizeNGImag.AutoDeleteDays = dValue;
  869. iniHelper.ReadString("SizeRepairImag", "SavePath", out sValue);
  870. sysParams.SizeRepairImag.SavePath = sValue.Replace("\0", "");
  871. iniHelper.ReadBool("SizeRepairImag", "AutoSave", out bValue);
  872. sysParams.SizeRepairImag.AutoSave = bValue;
  873. iniHelper.ReadBool("SizeRepairImag", "AutoDelete", out bValue);
  874. sysParams.SizeRepairImag.AutoDelete = bValue;
  875. iniHelper.ReadDouble("SizeRepairImag", "AutoDeleteDays", out dValue);
  876. sysParams.SizeRepairImag.AutoDeleteDays = dValue;
  877. iniHelper.ReadString("Log", "SavePath", out sValue);
  878. sysParams.LogPath = sValue.Replace("\0", "");
  879. iniHelper.ReadBool("Log", "AutoDelete", out bValue);
  880. sysParams.AutoDeleteLog = bValue;
  881. iniHelper.ReadDouble("Log", "AutoDeleteDays", out dValue);
  882. sysParams.AutoDeleteLogData = dValue;
  883. iniHelper.ReadBool("SysFunction", "OpenMarkErrorStop", out bValue);
  884. sysParams.OpenMarkErrorStop = bValue;
  885. iniHelper.ReadBool("SysFunction", "OpenBuzzer", out bValue);
  886. sysParams.OpenBuzzer = bValue;
  887. iniHelper.ReadBool("SysFunction", "OpenDoor", out bValue);
  888. sysParams.OpenDoor = bValue;
  889. iniHelper.ReadBool("SysFunction", "OpenHttpLog", out bValue);
  890. sysParams.OpenHttpLog = bValue;
  891. iniHelper.ReadBool("SysFunction", "OpenAutoGoHome", out bValue);
  892. sysParams.OpenAutoGoHome = bValue;
  893. iniHelper.ReadBool("SysFunction", "OpenFlawDistribution", out bValue);
  894. sysParams.OpenFlawDistribution = bValue;
  895. iniHelper.ReadBool("SysFunction", "OpenAxisXCalibration", out bValue);
  896. sysParams.OpenAxisXCalibration = bValue;
  897. iniHelper.ReadBool("SysFunction", "OpenPdtIsHave", out bValue);
  898. sysParams.OpenPdtIsHave = bValue;
  899. iniHelper.ReadBool("SysFunction", "OpenDefectSanp", out bValue);
  900. sysParams.OpenDefectSanp = bValue;
  901. iniHelper.ReadBool("SysFunction", "OpenAsideDefect", out bValue);
  902. sysParams.OpenAsideDefect = bValue;
  903. iniHelper.ReadBool("SysFunction", "OpenOredrCheck", out bValue);
  904. sysParams.OpenOredrCheck = bValue;
  905. iniHelper.ReadBool("SysFunction", "OpenOredrCntCheck", out bValue);
  906. sysParams.OpenOredrCntCheck = bValue;
  907. iniHelper.ReadString("Dev", "LightCom", out sValue);
  908. sysParams.LightCom = sValue.Replace("\0", "");
  909. iniHelper.ReadInteger("Dev", "LightComBaud", out iValue);
  910. sysParams.LightComBaud = iValue;
  911. iniHelper.ReadString("Dev", "TensionCom", out sValue);
  912. sysParams.TensionCom = sValue.Replace("\0", "");
  913. iniHelper.ReadInteger("Dev", "TensionComBaud", out iValue);
  914. sysParams.TensionComBaud = iValue;
  915. iniHelper.ReadDouble("Dev", "Tension_Offset", out dValue);
  916. sysParams.Tension_Offset = dValue;
  917. iniHelper.ReadString("Dev", "LensMotorCom", out sValue);
  918. sysParams.LensMotorCom = sValue.Replace("\0", "");
  919. iniHelper.ReadInteger("Dev", "LensMotorComBaud", out iValue);
  920. sysParams.LensMotorComBaud = iValue;
  921. iniHelper.ReadString("Dev", "ThicknessIP", out sValue);
  922. sysParams.ThicknessIP = sValue.Replace("\0", "");
  923. iniHelper.ReadInteger("Dev", "ThicknessPort", out iValue);
  924. sysParams.ThicknessPort = iValue;
  925. iniHelper.ReadDouble("Dev", "ThicknessSafeValue", out dValue);
  926. sysParams.ThicknessSafeValue = dValue;
  927. iniHelper.ReadDouble("Dev", "Thickness_Offset", out dValue);
  928. sysParams.Thickness_Offset = dValue;
  929. iniHelper.ReadString("Dev", "IODevName", out sValue);
  930. sysParams.IODevName = sValue.Replace("\0", "");
  931. iniHelper.ReadString("Dev", "IOCfgPath", out sValue);
  932. sysParams.IOCfgPath = sValue.Replace("\0", "");
  933. iniHelper.ReadString("Dev", "FrontCamName", out sValue);
  934. sysParams.FrontCamName = sValue.Replace("\0", "");
  935. iniHelper.ReadString("Dev", "FrontCamCfgPath", out sValue);
  936. sysParams.FrontCamCfgPath = sValue.Replace("\0", "");
  937. iniHelper.ReadString("Dev", "BackCamName", out sValue);
  938. sysParams.BackCamName = sValue.Replace("\0", "");
  939. iniHelper.ReadString("Dev", "BackCamCfgPath", out sValue);
  940. sysParams.BackCamCfgPath = sValue.Replace("\0", "");
  941. iniHelper.ReadString("Dev", "MotionCfgPath", out sValue);
  942. sysParams.MotionCfgPath = sValue.Replace("\0", "");
  943. iniHelper.ReadBool("Disable", "DisableX1", out bValue);
  944. sysParams.DisableX1 = bValue;
  945. iniHelper.ReadBool("Disable", "DisableX2", out bValue);
  946. sysParams.DisableX2 = bValue;
  947. iniHelper.ReadBool("Disable", "DisableY", out bValue);
  948. sysParams.DisableY = bValue;
  949. iniHelper.ReadBool("Disable", "DisableZ", out bValue);
  950. sysParams.DisableZ = bValue;
  951. iniHelper.ReadBool("Disable", "DisableFrontCam", out bValue);
  952. sysParams.DisableFrontCam = bValue;
  953. iniHelper.ReadBool("Disable", "DisableBackCam", out bValue);
  954. sysParams.DisableBackCam = bValue;
  955. iniHelper.ReadBool("Disable", "DisableLight", out bValue);
  956. sysParams.DisableLight = bValue;
  957. iniHelper.ReadBool("Disable", "DisableTensor", out bValue);
  958. sysParams.DisableTensor = bValue;
  959. iniHelper.ReadBool("Disable", "DisableThickness", out bValue);
  960. sysParams.DisableThickness = bValue;
  961. iniHelper.ReadBool("Disable", "DisableLensMotor", out bValue);
  962. sysParams.DisableLensMotor = bValue;
  963. iniHelper.ReadString("Sys", "ImageProcessPath", out sValue);
  964. sysParams.ImageProcessPath = sValue.Replace("\0", "");
  965. iniHelper.ReadString("Sys", "ImageProcessDataPath", out sValue);
  966. sysParams.ImageProcessDataPath = sValue.Replace("\0", "");
  967. iniHelper.ReadString("Sys", "AIModelPath", out sValue);
  968. sysParams.AIModelPath = sValue.Replace("\0", "");
  969. iniHelper.ReadString("Sys", "ProductPath", out sValue);
  970. sysParams.ProductPath = sValue.Replace("\0", "");
  971. iniHelper.ReadString("Sys", "HttpServerIP", out sValue);
  972. sysParams.HttpServerIP = sValue.Replace("\0", "");
  973. iniHelper.ReadInteger("Sys", "HttpServerPort", out iValue);
  974. sysParams.HttpServerPort = iValue;
  975. iniHelper.ReadBool("ShowMainWin", "ShowResetBtn", out bValue);
  976. sysParams.ShowResetBtn = bValue;
  977. iniHelper.ReadBool("ShowMainWin", "ShowBuzz", out bValue);
  978. sysParams.ShowBuzz = bValue;
  979. iniHelper.ReadBool("ShowMainWin", "ShowDoorAlm", out bValue);
  980. sysParams.ShowDoorAlm = bValue;
  981. iniHelper.ReadBool("ShowMainWin", "ShowDistribution", out bValue);
  982. sysParams.ShowDistribution = bValue;
  983. iniHelper.ReadBool("ShowMainWin", "ShowSizeBtn", out bValue);
  984. sysParams.ShowSizeBtn = bValue;
  985. iniHelper.ReadBool("ShowMainWin", "ShowDefectBtn", out bValue);
  986. sysParams.ShowDefectBtn = bValue;
  987. iniHelper.ReadDouble("CamView", "DefectCamViewX", out dValue);
  988. sysParams.DefectCamViewX = dValue;
  989. iniHelper.ReadDouble("CamView", "DefectCamViewY", out dValue);
  990. sysParams.DefectCamViewY = dValue;
  991. iniHelper.ReadBool("CloudAndMES", "EnableHttp", out bValue);
  992. sysParams.EnableHttp = bValue;
  993. iniHelper.ReadString("CloudAndMES", "HttpUrl", out sValue);
  994. sysParams.HttpUrl = sValue;
  995. iniHelper.ReadString("CloudAndMES", "HttpTempPath", out sValue);
  996. sysParams.HttpTempPath = sValue;
  997. iniHelper.ReadString("CloudAndMES", "HttpReturnKey", out sValue);
  998. sysParams.HttpReturnKey = sValue;
  999. iniHelper.ReadString("CloudAndMES", "HttpReturnValue", out sValue);
  1000. sysParams.HttpReturnValue = sValue;
  1001. iniHelper.ReadBool("CloudAndMES", "OpenCloud", out bValue);
  1002. sysParams.OpenCloud = bValue;
  1003. iniHelper.ReadString("CloudAndMES", "CloudThisName", out sValue);
  1004. sysParams.CloudThisName = sValue.Replace("\0", string.Empty);
  1005. iniHelper.ReadString("CloudAndMES", "CloudServerIP", out sValue);
  1006. sysParams.CloudServerIP = sValue;
  1007. iniHelper.ReadInteger("CloudAndMES", "CloudServerPort", out iValue);
  1008. sysParams.CloudServerPort = iValue;
  1009. iniHelper.ReadString("CloudAndMES", "CloudUser", out sValue);
  1010. sysParams.CloudUser = sValue;
  1011. iniHelper.ReadString("CloudAndMES", "CloudPassword", out sValue);
  1012. sysParams.CloudPassword = sValue;
  1013. iniHelper.ReadBool("CloudAndMES", "OpenPdtServer", out bValue);
  1014. sysParams.OpenPdtServer = bValue;
  1015. iniHelper.ReadString("CloudAndMES", "PdtServerIP", out sValue);
  1016. sysParams.PdtServerIP = sValue;
  1017. iniHelper.ReadInteger("CloudAndMES", "PdtServerPort", out iValue);
  1018. sysParams.PdtServerPort = iValue;
  1019. iniHelper.ReadBool("CloudAndMES", "IsPdtServer", out bValue);
  1020. sysParams.IsPdtServer = bValue;
  1021. iniHelper.ReadDouble("LensZ", "Z_0_58X", out dValue);
  1022. sysParams.LensAxisZPos.Z_0_58X = dValue;
  1023. //iniHelper.ReadDouble("LensZ", "Z_0_6X", out dValue);
  1024. //sysParams.LensAxisZPos.Z_0_6X = dValue;
  1025. iniHelper.ReadDouble("LensZ", "Z_1_0X", out dValue);
  1026. sysParams.LensAxisZPos.Z_1_0X = dValue;
  1027. iniHelper.ReadDouble("LensZ", "Z_1_5X", out dValue);
  1028. sysParams.LensAxisZPos.Z_1_5X = dValue;
  1029. iniHelper.ReadDouble("LensZ", "Z_2_0X", out dValue);
  1030. sysParams.LensAxisZPos.Z_2_0X = dValue;
  1031. iniHelper.ReadDouble("LensZ", "Z_2_5X", out dValue);
  1032. sysParams.LensAxisZPos.Z_2_5X = dValue;
  1033. iniHelper.ReadDouble("LensZ", "Z_3_0X", out dValue);
  1034. sysParams.LensAxisZPos.Z_3_0X = dValue;
  1035. iniHelper.ReadDouble("LensZ", "Z_3_5X", out dValue);
  1036. sysParams.LensAxisZPos.Z_3_5X = dValue;
  1037. iniHelper.ReadDouble("LensZ", "Z_4_0X", out dValue);
  1038. sysParams.LensAxisZPos.Z_4_0X = dValue;
  1039. iniHelper.ReadDouble("LensZ", "Z_4_5X", out dValue);
  1040. sysParams.LensAxisZPos.Z_4_5X = dValue;
  1041. iniHelper.ReadDouble("LensZ", "Z_5_0X", out dValue);
  1042. sysParams.LensAxisZPos.Z_5_0X = dValue;
  1043. iniHelper.ReadDouble("LensZ", "Z_5_5X", out dValue);
  1044. sysParams.LensAxisZPos.Z_5_5X = dValue;
  1045. iniHelper.ReadDouble("LensZ", "Z_6_0X", out dValue);
  1046. sysParams.LensAxisZPos.Z_6_0X = dValue;
  1047. iniHelper.ReadDouble("LensZ", "Z_6_5X", out dValue);
  1048. sysParams.LensAxisZPos.Z_6_5X = dValue;
  1049. iniHelper.ReadDouble("LensZ", "Z_7_0X", out dValue);
  1050. sysParams.LensAxisZPos.Z_7_0X = dValue;
  1051. iniHelper.ReadDouble("LensZ", "Z_7_5X", out dValue);
  1052. sysParams.LensAxisZPos.Z_7_5X = dValue;
  1053. iniHelper.ReadBool("LabelPrint", "EnableLabelPrint", out bValue);
  1054. sysParams.EnableLabelPrint = bValue;
  1055. iniHelper.ReadString("LabelPrint", "LabelPrinterName", out sValue);
  1056. sysParams.LabelPrinterName = sValue;
  1057. iniHelper.ReadString("LabelPrint", "LabelTempPath", out sValue);
  1058. sysParams.LabelTempPath = sValue;
  1059. iniHelper.ReadString("LabelPrint", "LabelData", out sValue);
  1060. if (string.IsNullOrEmpty(sValue))
  1061. sysParams.LabelData = new Dictionary<string, string>();
  1062. else
  1063. sysParams.LabelData = JsonConvert.DeserializeObject<Dictionary<string, string>>(sValue);
  1064. iniHelper.ReadBool("ExcelPrint", "EnableExcelPrint", out bValue);
  1065. sysParams.EnableExcelPrint = bValue;
  1066. iniHelper.ReadString("ExcelPrint", "ExcelPrinterName", out sValue);
  1067. sysParams.ExcelPrinterName = sValue;
  1068. iniHelper.ReadString("ExcelPrint", "ExcelTempPath", out sValue);
  1069. sysParams.ExcelTempPath = sValue;
  1070. iniHelper.ReadString("ExcelPrint", "ExcelData", out sValue);
  1071. if (string.IsNullOrEmpty(sValue))
  1072. sysParams.ExcelData = new Dictionary<string, string>();
  1073. else
  1074. sysParams.ExcelData = JsonConvert.DeserializeObject<Dictionary<string, string>>(sValue);
  1075. iniHelper.ReadDouble("Offset", "Pt_offset", out dValue);
  1076. sysParams.Pt_offset = dValue;
  1077. iniHelper.ReadDouble("Offset", "Line_offset", out dValue);
  1078. sysParams.Line_offset = dValue;
  1079. iniHelper.ReadDouble("Offset", "wgjk_offset", out dValue);
  1080. sysParams.wgjk_offset = dValue;
  1081. iniHelper.ReadDouble("Offset", "X_per", out dValue);
  1082. if (dValue > 1)
  1083. sysParams.X_per = 0.9;
  1084. else if (dValue <= 0)
  1085. sysParams.X_per = 0.1;
  1086. else
  1087. sysParams.X_per = dValue;
  1088. iniHelper.ReadDouble("Offset", "Y_per", out dValue);
  1089. if (dValue > 1)
  1090. sysParams.Y_per = 0.9;
  1091. else if (dValue <= 0)
  1092. sysParams.Y_per = 0.1;
  1093. else
  1094. sysParams.Y_per = dValue;
  1095. iniHelper.ReadInteger("DefectSnap", "LightCH", out iValue);
  1096. sysParams.LightCH = iValue;
  1097. iniHelper.ReadInteger("DefectSnap", "LightLut", out iValue);
  1098. sysParams.LightLut = iValue;
  1099. iniHelper.ReadInteger("DefectSnap", "CamExposureTime", out iValue);
  1100. sysParams.CamExposureTime = iValue;
  1101. SysConfigParams = sysParams;
  1102. return sysParams;
  1103. }
  1104. /// <summary>
  1105. /// 写入系统默认配置
  1106. /// </summary>
  1107. public void WriteDefaultSystemConfig()
  1108. {
  1109. SysConfigParams = new SysConfigParams();
  1110. WriteSysConfParams(SysConfigParams);
  1111. }
  1112. /// <summary>
  1113. /// 加载系统配置
  1114. /// </summary>
  1115. /// <returns></returns>
  1116. public bool LoadSystemConfig()
  1117. {
  1118. bool ret = false;
  1119. if (!Directory.Exists(_rootPath))
  1120. {
  1121. Directory.CreateDirectory(_rootPath);
  1122. }
  1123. if (!Directory.Exists(_projectDir))
  1124. {
  1125. Directory.CreateDirectory(_projectDir);
  1126. }
  1127. if (File.Exists(_pointsPath))
  1128. {
  1129. ReadPointsAndTime();
  1130. }
  1131. else
  1132. {
  1133. // write default value
  1134. WritePointsAndTime(0, 0, 0, 0, 1000, 1000);
  1135. ret = true;
  1136. }
  1137. if (File.Exists(_configFile))
  1138. {
  1139. SysConfigParams = ReadSysConfParams();
  1140. if (null != SysConfigParams)
  1141. {
  1142. ret = true;
  1143. }
  1144. }
  1145. else
  1146. {
  1147. // write default value
  1148. WriteDefaultSystemConfig();
  1149. ret = true;
  1150. }
  1151. return ret;
  1152. }
  1153. #endregion
  1154. #region 文件选择
  1155. /// <summary>
  1156. /// 选择目录
  1157. /// </summary>
  1158. /// <returns></returns>
  1159. public static string SelectFolder(string defaultPath = "")
  1160. {
  1161. FolderBrowserDialog dlg = new FolderBrowserDialog();
  1162. dlg.SelectedPath = (defaultPath != "" ? defaultPath : Path.GetFullPath("."));
  1163. if (dlg.ShowDialog() == DialogResult.OK)
  1164. return dlg.SelectedPath;
  1165. return "";
  1166. }
  1167. /// <summary>
  1168. /// 选择文件
  1169. /// </summary>
  1170. /// <param name="filter">如 图像文件|*.jpg|图像文件|*.png|所有文件|*.*</param>
  1171. /// <returns></returns>
  1172. public static string SelectFile(string filter = "所有文件|*.*", string defaultPath = "")
  1173. {
  1174. OpenFileDialog fie = new OpenFileDialog();
  1175. fie.Title = "选择文件";
  1176. //fie.InitialDirectory = (defaultPath != "" ? defaultPath : Path.GetFullPath("."));
  1177. fie.Filter = filter; //设置文件类型
  1178. if (fie.ShowDialog() == DialogResult.OK)
  1179. return fie.FileName;
  1180. return "";
  1181. }
  1182. /// <summary>
  1183. /// 删除指定目录下文件
  1184. /// </summary>
  1185. /// <param name="defaultPath"></param>
  1186. /// <param name="fileExtend"></param>
  1187. /// <returns></returns>
  1188. public static bool DelFilesInFolder(string FolderPath, string fileExtend = "*")
  1189. {
  1190. if (!Directory.Exists(FolderPath))
  1191. return false;
  1192. string[] files = Directory.GetFiles(FolderPath, fileExtend, SearchOption.TopDirectoryOnly);
  1193. foreach (string file in files)
  1194. API.DeleteFile(file);
  1195. return true;
  1196. }
  1197. /// <summary>
  1198. /// 另存为
  1199. /// </summary>
  1200. /// <param name="defaultFileName">默认文件名</param>
  1201. /// <param name="filter">如 图像文件|*.jpg|图像文件|*.png|所有文件|*.*</param>
  1202. /// <returns></returns>
  1203. public static string SaveAsFile(string defaultFileName, string filter = "所有文件|*.*")
  1204. {
  1205. SaveFileDialog s = new SaveFileDialog();
  1206. s.Title = "保存文件";
  1207. s.Filter = filter; //"图像文件|*.jpg|图像文件|*.png|所有文件|*.*";
  1208. //s.DefaultExt = "图像文件|*.jpg"; //默认扩展名
  1209. //s.InitialDirectory = @"C:\Users\Administrator\Desktop"; //保存的初始目录
  1210. s.FileName = defaultFileName;//默认文件名
  1211. if (s.ShowDialog() == DialogResult.OK)
  1212. return s.FileName;
  1213. return "";
  1214. }
  1215. #endregion
  1216. #region json操作
  1217. public static void addKey(JObject obj, string key, JToken value)
  1218. {
  1219. if (obj.ContainsKey(key))
  1220. obj[key] = value;
  1221. else
  1222. obj.Add(key, value);
  1223. }
  1224. #endregion
  1225. #region enum名称
  1226. public static ArrayList GetArrayList<T>()
  1227. {
  1228. ArrayList list = new ArrayList();
  1229. Type type = typeof(T);
  1230. //list.Add(new DictionaryEntry("start", "启动按钮"));
  1231. foreach (int value in Enum.GetValues(type))
  1232. {
  1233. string strName = Enum.GetName(type, value);//获取名称
  1234. list.Add(new DictionaryEntry(value, strName));
  1235. }
  1236. return list;
  1237. }
  1238. #endregion
  1239. #region 生产数据记录
  1240. public bool SetDailyOutputAdd(out int tDailyOutput)
  1241. {
  1242. bool ret = true;
  1243. try
  1244. {
  1245. //读取数据
  1246. string tempFile = Path.Combine(_rootPath, "DailyOutput.ini");
  1247. IniHelper iniHelper = new IniHelper(tempFile);
  1248. int iValue = 0;
  1249. iniHelper.ReadInteger("TempData", "DailyOutput", out iValue);
  1250. tDailyOutput = iValue;
  1251. iniHelper.ReadInteger("TempData", "Date", out iValue);
  1252. int dateNum = iValue;
  1253. int nowDateNum = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
  1254. if (dateNum == nowDateNum)
  1255. {
  1256. //同一天,生产数量+1
  1257. tDailyOutput++;
  1258. }
  1259. else if(dateNum < nowDateNum)
  1260. {
  1261. //昨天数据,为1
  1262. tDailyOutput = 1;
  1263. }
  1264. //重新记录
  1265. iniHelper.WriteInteger("TempData", "DailyOutput", tDailyOutput);
  1266. iniHelper.WriteInteger("TempData", "Date", nowDateNum);
  1267. }
  1268. catch (Exception ex)
  1269. {
  1270. tDailyOutput = 0;
  1271. ret = false;
  1272. string tempFile = Path.Combine(_rootPath, "DailyOutput.ini");
  1273. IniHelper iniHelper = new IniHelper(tempFile);
  1274. int nowDateNum = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
  1275. //重新记录
  1276. iniHelper.WriteInteger("TempData", "DailyOutput", tDailyOutput);
  1277. iniHelper.WriteInteger("TempData", "Date", nowDateNum);
  1278. }
  1279. return ret;
  1280. }
  1281. public bool GetDailyOutput(out int tDailyOutput)
  1282. {
  1283. bool ret = true;
  1284. try
  1285. {
  1286. //读取数据
  1287. string tempFile = Path.Combine(_rootPath, "DailyOutput.ini");
  1288. IniHelper iniHelper = new IniHelper(tempFile);
  1289. int iValue = 0;
  1290. iniHelper.ReadInteger("TempData", "DailyOutput", out iValue);
  1291. tDailyOutput = iValue;
  1292. iniHelper.ReadInteger("TempData", "Date", out iValue);
  1293. int dateNum = iValue;
  1294. int nowDateNum = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
  1295. if (dateNum == nowDateNum)
  1296. {
  1297. //同一天,生产数量+1
  1298. //tDailyOutput++;
  1299. }
  1300. else if (dateNum < nowDateNum)
  1301. {
  1302. //昨天数据,为1
  1303. tDailyOutput = 0;
  1304. }
  1305. }
  1306. catch (Exception ex)
  1307. {
  1308. tDailyOutput = 0;
  1309. ret = false;
  1310. }
  1311. return ret;
  1312. }
  1313. #endregion
  1314. #endregion
  1315. }
  1316. }