版博士V2.0程序
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

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