版博士V2.0程序
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

ConfMgr.cs 47 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122
  1. using MaiMuControl.SysStatusMgr.UserMgr;
  2. using Models;
  3. using Newtonsoft.Json;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using System.Drawing;
  9. using System.IO;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Windows.Forms;
  14. using ToolKits.Ini;
  15. using ToolKits.mAPI;
  16. using ToolKits.PLC;
  17. namespace MaiMuAOI.SysCtrl
  18. {
  19. #region 参数类型
  20. /// <summary>
  21. /// 图片保存参数
  22. /// </summary>
  23. [Serializable]
  24. public class ImageSaveParam
  25. {
  26. /// <summary>
  27. /// 保存路径
  28. /// </summary>
  29. public string SavePath { get; set; }
  30. /// <summary>
  31. /// 自动保存
  32. /// </summary>
  33. public bool AutoSave { get; set; }
  34. /// <summary>
  35. /// 自动删除
  36. /// </summary>
  37. public bool AutoDelete { get; set; }
  38. /// <summary>
  39. /// 自动删除日期
  40. /// </summary>
  41. public double AutoDeleteDays { get; set; }
  42. public ImageSaveParam() {
  43. SavePath = "D:\\AllImageSave";
  44. AutoSave = true;
  45. AutoDelete = true;
  46. AutoDeleteDays = 3;
  47. }
  48. public ImageSaveParam(string path)
  49. {
  50. SavePath = path;
  51. AutoSave = true;
  52. AutoDelete = true;
  53. AutoDeleteDays = 3;
  54. }
  55. }
  56. /// <summary>
  57. /// 镜头对应Z轴高度
  58. /// </summary>
  59. [Serializable]
  60. public class LensAxisZ
  61. {
  62. public double Z_0_58X { get; set; }
  63. //public double Z_0_6X { get; set; }
  64. public double Z_1_0X { get; set; }
  65. public double Z_1_5X { get; set; }
  66. public double Z_2_0X { get; set; }
  67. public double Z_2_5X { get; set; }
  68. public double Z_3_0X { get; set; }
  69. public double Z_3_5X { get; set; }
  70. public double Z_4_0X { get; set; }
  71. public double Z_4_5X { get; set; }
  72. public double Z_5_0X { get; set; }
  73. public double Z_5_5X { get; set; }
  74. public double Z_6_0X { get; set; }
  75. public double Z_6_5X { get; set; }
  76. public double Z_7_0X { get; set; }
  77. public double Z_7_5X { get; set; }
  78. public LensAxisZ()
  79. {
  80. Z_0_58X = 0;
  81. //Z_0_6X = 0;
  82. Z_1_0X = 0;
  83. Z_1_5X = 0;
  84. Z_2_0X = 0;
  85. Z_2_5X = 0;
  86. Z_3_0X = 0;
  87. Z_3_5X = 0;
  88. Z_4_0X = 0;
  89. Z_4_5X = 0;
  90. Z_5_0X = 0;
  91. Z_5_5X = 0;
  92. Z_6_0X = 0;
  93. Z_6_5X = 0;
  94. Z_7_0X = 0;
  95. Z_7_5X = 0;
  96. }
  97. }
  98. [Serializable]
  99. public class SysConfigParams
  100. {
  101. #region 缺陷图
  102. /// <summary>
  103. /// 保存所有图片
  104. /// </summary>
  105. public bool SaveAllImg { get; set; }
  106. /// <summary>
  107. /// 缺陷大图
  108. /// </summary>
  109. public ImageSaveParam DefectBigImag { get; set; }
  110. /// <summary>
  111. /// 缺陷小图
  112. /// </summary>
  113. public ImageSaveParam DefectSmallImag { get; set; }
  114. /// <summary>
  115. /// 修复台 缺陷图
  116. /// </summary>
  117. public ImageSaveParam DefectRepairImag { get; set; }
  118. /// <summary>
  119. /// 对比大图
  120. /// </summary>
  121. public ImageSaveParam SizeBigImag { get; set; }
  122. /// <summary>
  123. /// 对比未通过
  124. /// </summary>
  125. public ImageSaveParam SizeNGImag { get; set; }
  126. /// <summary>
  127. /// 修复台 对比图
  128. /// </summary>
  129. public ImageSaveParam SizeRepairImag { get; set; }
  130. #endregion
  131. #region 功能
  132. /// <summary>
  133. /// mark报警暂停
  134. /// </summary>
  135. public bool OpenMarkErrorStop { get; set; }
  136. /// <summary>
  137. /// 开启蜂鸣器
  138. /// </summary>
  139. public bool OpenBuzzer { get; set; }
  140. /// <summary>
  141. /// 开启门磁
  142. /// </summary>
  143. public bool OpenDoor { get; set; }
  144. /// <summary>
  145. /// 开启http日志
  146. /// </summary>
  147. public bool OpenHttpLog { get; set; }
  148. /// <summary>
  149. /// 开启软件开启自动回原
  150. /// </summary>
  151. public bool OpenAutoGoHome { get; set; }
  152. /// <summary>
  153. /// 启用缺陷分布功能
  154. /// </summary>
  155. public bool OpenFlawDistribution { get; set; }
  156. /// <summary>
  157. /// 启用X轴校准 2023-12-20
  158. /// </summary>
  159. public bool OpenAxisXCalibration { get; set; }
  160. #endregion
  161. #region 硬件传感器通信
  162. /// <summary>
  163. /// 光源串口
  164. /// </summary>
  165. //public LightParams LightCfg { get; set; }
  166. public string LightCom { get; set; }
  167. /// <summary>
  168. /// 光源波特率
  169. /// </summary>
  170. public int LightComBaud { get; set; }
  171. /// <summary>
  172. /// 张力传感器串口
  173. /// </summary>
  174. public string TensionCom { get; set; }
  175. /// <summary>
  176. /// 张力传感器波特率
  177. /// </summary>
  178. public int TensionComBaud { get; set; }
  179. /// <summary>
  180. /// 张力偏移值
  181. /// </summary>
  182. public double Tension_Offset = 0;
  183. /// <summary>
  184. /// 镜头电机串口
  185. /// </summary>
  186. public string LensMotorCom { get; set; }
  187. /// <summary>
  188. /// 镜头电机波特率
  189. /// </summary>
  190. public int LensMotorComBaud { get; set; }
  191. /// <summary>
  192. /// 厚度传感器IP
  193. /// </summary>
  194. public string ThicknessIP { get; set; }
  195. /// <summary>
  196. /// 厚度传感器port
  197. /// </summary>
  198. public int ThicknessPort { get; set; }
  199. /// <summary>
  200. /// 测厚安全值
  201. /// </summary>
  202. public double ThicknessSafeValue { get; set; }
  203. #endregion
  204. #region IO/电机/相机
  205. /// <summary>
  206. /// IO驱动名称
  207. /// </summary>
  208. //public IOParams IOCfg { get; set; }
  209. public string IODevName { get; set; }
  210. /// <summary>
  211. /// IO配置文件路径
  212. /// </summary>
  213. public string IOCfgPath { get; set; }
  214. /// <summary>
  215. /// 电机配置文件路径
  216. /// </summary>
  217. public string MotionCfgPath { get; set; }
  218. /// <summary>
  219. /// 前部相机名称
  220. /// </summary>
  221. public string FrontCamName { get; set; }
  222. /// <summary>
  223. /// 前部相机配置文件路径
  224. /// </summary>
  225. public string FrontCamCfgPath { get; set; }
  226. /// <summary>
  227. /// 后部相机名称
  228. /// </summary>
  229. public string BackCamName { get; set; }
  230. /// <summary>
  231. /// 后部相机配置文件路径
  232. /// </summary>
  233. public string BackCamCfgPath { get; set; }
  234. #endregion
  235. #region 禁用
  236. public bool DisableX1 { get; set; }
  237. public bool DisableX2 { get; set; }
  238. public bool DisableY { get; set; }
  239. public bool DisableZ { get; set; }
  240. public bool DisableFrontCam { get; set; }
  241. public bool DisableBackCam { get; set; }
  242. public bool DisableLight { get; set; }
  243. public bool DisableTensor { get; set; }
  244. public bool DisableThickness { get; set; }
  245. public bool DisableLensMotor { get; set; }
  246. #endregion
  247. #region 系统
  248. public string ImageProcessPath { get; set; }
  249. public string AIModelPath { get; set; }
  250. public string HttpServerIP { get; set; }
  251. public int HttpServerPort { get; set; }
  252. public string LogPath { get; set; }
  253. public bool AutoDeleteLog { get; set; }
  254. public double AutoDeleteLogData { get; set; }
  255. /// <summary>
  256. /// 调试:主界面显示复位按钮
  257. /// </summary>
  258. public bool ShowResetBtn { get; set; }
  259. /// <summary>
  260. /// 调试:主界面显示蜂鸣器控制
  261. /// </summary>
  262. public bool ShowBuzz { get; set; }
  263. /// <summary>
  264. /// 调试:主界面显示门磁报警控制
  265. /// </summary>
  266. public bool ShowDoorAlm { get; set; }
  267. /// <summary>
  268. /// 后部相机视野X
  269. /// </summary>
  270. public double DefectCamViewX { get; set; }
  271. /// <summary>
  272. /// 后部相机视野Y
  273. /// </summary>
  274. public double DefectCamViewY { get; set; }
  275. #endregion
  276. #region Http
  277. /// <summary>
  278. /// 开启http上传
  279. /// </summary>
  280. public bool EnableHttp { get; set; }
  281. /// <summary>
  282. /// 上传Http地址
  283. /// </summary>
  284. public string HttpUrl { get; set; }
  285. /// <summary>
  286. /// 上传Json模板路径
  287. /// </summary>
  288. public string HttpTempPath { get; set; }
  289. /// <summary>
  290. /// 返回值Key
  291. /// </summary>
  292. public string HttpReturnKey{ get; set; }
  293. /// <summary>
  294. /// 返回成功value
  295. /// </summary>
  296. public string HttpReturnValue { get; set; }
  297. #endregion
  298. #region 聚焦
  299. /// <summary>
  300. /// 聚焦对应Z轴位置
  301. /// </summary>
  302. public LensAxisZ LensAxisZPos { get; set; }
  303. #endregion
  304. #region 缺陷分割
  305. //缺陷配置
  306. public Size Defect_CutSize { get; set; }
  307. public Size Defect_ReSize { get; set; }
  308. public float Defect_Thresholds { get; set; }
  309. #endregion
  310. #region BarTender
  311. /// <summary>
  312. /// 开启标签打印
  313. /// </summary>
  314. public bool EnableLabelPrint { get; set; }
  315. /// <summary>
  316. /// 打印机名称
  317. /// </summary>
  318. public string LabelPrinterName { get; set; }
  319. /// <summary>
  320. /// 打印模板路径
  321. /// </summary>
  322. public string LabelTempPath { get; set; }
  323. /// <summary>
  324. /// 打印信息
  325. /// </summary>
  326. public Dictionary<string, string> LabelData { get; set; }
  327. #endregion
  328. #region Excel
  329. /// <summary>
  330. /// 开启Excel打印
  331. /// </summary>
  332. public bool EnableExcelPrint { get; set; }
  333. /// <summary>
  334. /// 打印机名称
  335. /// </summary>
  336. public string ExcelPrinterName { get; set; }
  337. /// <summary>
  338. /// 打印模板路径
  339. /// </summary>
  340. public string ExcelTempPath { get; set; }
  341. /// <summary>
  342. /// 打印信息
  343. /// </summary>
  344. public Dictionary<string, string> ExcelData { get; set; }
  345. #endregion
  346. public SysConfigParams()
  347. {
  348. DefectBigImag = new ImageSaveParam("D:\\AllImageSave\\DefectBigImag");
  349. DefectSmallImag = new ImageSaveParam("D:\\AllImageSave\\DefectSmallImag");
  350. DefectRepairImag = new ImageSaveParam("D:\\AllImageSave\\DefectRepairImag");
  351. SizeBigImag = new ImageSaveParam("D:\\AllImageSave\\SizeBigImag");
  352. SizeNGImag = new ImageSaveParam("D:\\AllImageSave\\SizeNGImag");
  353. SizeRepairImag = new ImageSaveParam("D:\\AllImageSave\\SizeRepairImag");
  354. OpenMarkErrorStop = true;
  355. OpenBuzzer = true;
  356. OpenDoor = true;
  357. OpenHttpLog = false;
  358. //LightCfg = new LightParams();
  359. //IOCfg = new IOParams();
  360. IODevName = "";
  361. IOCfgPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\IOCard_default.xml"); ;
  362. LightCom = "";
  363. LightComBaud = 9600;
  364. LensMotorCom = "";
  365. LensMotorComBaud = 9600;
  366. TensionCom = "";
  367. TensionComBaud = 2400;
  368. ThicknessIP = "192.168.3.35";
  369. ThicknessPort = 8888;
  370. ThicknessSafeValue = 10;
  371. FrontCamCfgPath = "";
  372. BackCamCfgPath = "";
  373. MotionCfgPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\Axis_default.cfg"); ;
  374. SaveAllImg = false;
  375. DisableX1 = false;
  376. DisableX2 = false;
  377. DisableY = false;
  378. DisableZ = false;
  379. DisableFrontCam = false;
  380. DisableBackCam = false;
  381. DisableLight = false;
  382. DisableLensMotor = false;
  383. DisableTensor = false;
  384. DisableThickness = false;
  385. ImageProcessPath = "";
  386. AIModelPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\onnxFiles");
  387. HttpServerIP = "127.0.0.1";
  388. HttpServerPort = 18082;
  389. LogPath = Path.Combine(Directory.GetCurrentDirectory(), "LogFiles");
  390. AutoDeleteLog = false;
  391. AutoDeleteLogData = 0;
  392. ShowResetBtn = true;
  393. ShowBuzz = false;
  394. ShowDoorAlm = false;
  395. DefectCamViewX = 30;
  396. DefectCamViewY = 30;
  397. EnableHttp = false;
  398. HttpUrl = "";
  399. HttpTempPath = "";
  400. HttpReturnKey = "";
  401. HttpReturnValue = "";
  402. LensAxisZPos = new LensAxisZ();
  403. //缺陷配置
  404. Defect_CutSize = new Size(592, 532);
  405. Defect_ReSize = new Size(224, 224);
  406. Defect_Thresholds = 0.4f;
  407. EnableLabelPrint = false;
  408. LabelPrinterName = "";
  409. LabelTempPath = "";
  410. LabelData = new Dictionary<string, string>();
  411. EnableExcelPrint = false;
  412. ExcelPrinterName = "";
  413. ExcelTempPath = "";
  414. ExcelData = new Dictionary<string, string>();
  415. }
  416. }
  417. #endregion
  418. /// <summary>
  419. /// 设备参数
  420. /// </summary>
  421. public class ConfMgr
  422. {
  423. #region 实例化
  424. /// <summary>
  425. /// 实例
  426. /// </summary>
  427. private static ConfMgr _instance;
  428. private static readonly object _lock = new object();
  429. public static ConfMgr Instance
  430. {
  431. get
  432. {
  433. if (_instance == null)
  434. {
  435. lock (_lock)
  436. {
  437. if (_instance == null)
  438. {
  439. _instance = new ConfMgr();
  440. }
  441. }
  442. }
  443. return _instance;
  444. }
  445. }
  446. #endregion
  447. #region 私有字段
  448. private readonly string _rootPath;
  449. private readonly string _configFile;
  450. private readonly string _projectDir;
  451. private readonly string _pointsPath;
  452. private readonly string _markPicPath;
  453. #endregion
  454. private ConfMgr()
  455. {
  456. _rootPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles");
  457. _configFile = Path.Combine(_rootPath, "SysParamsConfig.ini");
  458. _devConfigPath = Path.Combine(_rootPath, "DevParamsConfig.ini");
  459. _projectDir = Path.Combine(_rootPath, "Project");
  460. _pointsPath = Path.Combine(_rootPath, "PointsConfig.ini");
  461. _markPicPath = Path.Combine(_rootPath, "MarkPic");
  462. DBConStr = "server = localhost; Database = ProductionDB; Uid = root; Pwd = " + ConteolUserDB.GetSqlDBCode() + "; AllowLoadLocalInfile = true;";
  463. }
  464. #region 公开字段
  465. //DB
  466. //有些服务器防火墙有问题需要加上 min pool size=1 避免认为是恶意请求
  467. //如果用到bulkCopy需要加: AllowLoadLocalInfile=true
  468. //public static string dbMysqlCon = "server=localhost;Database=ProductionDB;Uid=root;Pwd=123456;";
  469. public string DBConStr = "server=localhost;Database=ProductionDB;Uid=root;Pwd=123456; AllowLoadLocalInfile=true";
  470. /// <summary>
  471. /// 系统配置参数
  472. /// </summary>
  473. public SysConfigParams SysConfigParams { get; set; }
  474. private string _devConfigPath;
  475. /// <summary>
  476. /// 获取驱动配制文件路径
  477. /// </summary>
  478. public string DevConfigPath { get { return _devConfigPath; } }
  479. public string ProjectDir { get { return _projectDir; } }
  480. public string MarkPicPath { get { return _markPicPath; } }
  481. /// <summary>
  482. /// 上料位X1
  483. /// </summary>
  484. public double LoadPoint_X1 { get; set; }
  485. /// <summary>
  486. /// 上料位X2
  487. /// </summary>
  488. public double LoadPoint_X2 { get; set; }
  489. /// <summary>
  490. /// 上料位Y
  491. /// </summary>
  492. public double LoadPoint_Y { get; set; }
  493. /// <summary>
  494. /// 上料位Z
  495. /// </summary>
  496. public double LoadPoint_Z { get; set; }
  497. /// <summary>
  498. /// 测厚气缸到位等待时间
  499. /// </summary>
  500. public int HeightDoWait { get; set; }
  501. /// <summary>
  502. /// 加紧气缸到位等待时间
  503. /// </summary>
  504. public int ProductDoWait { get; set; }
  505. #endregion
  506. #region 公开文件操作
  507. #region 点位配置
  508. public void WritePointsAndTime(double x1, double x2, double y, double z, int ht, int pt)
  509. {
  510. //XmlHelper.Serialize<SysConfParams>(_configFile, sysConfParams);
  511. IniHelper iniHelper = new IniHelper(_pointsPath);
  512. iniHelper.WriteDouble("LoadPoint", "X1", x1);
  513. iniHelper.WriteDouble("LoadPoint", "X2", x2);
  514. iniHelper.WriteDouble("LoadPoint", "Y", y);
  515. iniHelper.WriteDouble("LoadPoint", "Z", z);
  516. iniHelper.WriteInteger("WaitTime", "HeightDoWait", ht);
  517. iniHelper.WriteInteger("WaitTime", "ProductDoWait", pt);
  518. LoadPoint_X1 = x1;
  519. LoadPoint_X2 = x2;
  520. LoadPoint_Y = y;
  521. LoadPoint_Z = z;
  522. HeightDoWait = ht;
  523. ProductDoWait = pt;
  524. }
  525. public void ReadPointsAndTime()
  526. {
  527. IniHelper iniHelper = new IniHelper(_pointsPath);
  528. double dValue = 0;
  529. int iValue = 0;
  530. iniHelper.ReadDouble("LoadPoint", "X1", out dValue);
  531. LoadPoint_X1 = dValue;
  532. iniHelper.ReadDouble("LoadPoint", "X2", out dValue);
  533. LoadPoint_X2 = dValue;
  534. iniHelper.ReadDouble("LoadPoint", "Y", out dValue);
  535. LoadPoint_Y = dValue;
  536. iniHelper.ReadDouble("LoadPoint", "Z", out dValue);
  537. LoadPoint_Z = dValue;
  538. iniHelper.ReadInteger("WaitTime", "HeightDoWait", out iValue);
  539. HeightDoWait = iValue;
  540. iniHelper.ReadInteger("WaitTime", "ProductDoWait", out iValue);
  541. ProductDoWait = iValue;
  542. }
  543. #endregion
  544. #region 系统配置参数
  545. /// <summary>
  546. /// 写入ini
  547. /// </summary>
  548. /// <param name="SocketParams"></param>
  549. public void WriteSysConfParams(SysConfigParams SysParams)
  550. {
  551. //XmlHelper.Serialize<SysConfParams>(_configFile, sysConfParams);
  552. IniHelper iniHelper = new IniHelper(_configFile);
  553. iniHelper.WriteBool("SaveAllImg", "SaveAllImg", SysParams.SaveAllImg);
  554. iniHelper.WriteString("DefectBigImag", "SavePath", SysParams.DefectBigImag.SavePath);
  555. iniHelper.WriteBool("DefectBigImag", "AutoSave", SysParams.DefectBigImag.AutoSave);
  556. iniHelper.WriteBool("DefectBigImag", "AutoDelete", SysParams.DefectBigImag.AutoDelete);
  557. iniHelper.WriteDouble("DefectBigImag", "AutoDeleteDays", SysParams.DefectBigImag.AutoDeleteDays);
  558. iniHelper.WriteString("DefectSmallImag", "SavePath", SysParams.DefectSmallImag.SavePath);
  559. iniHelper.WriteBool("DefectSmallImag", "AutoSave", SysParams.DefectSmallImag.AutoSave);
  560. iniHelper.WriteBool("DefectSmallImag", "AutoDelete", SysParams.DefectSmallImag.AutoDelete);
  561. iniHelper.WriteDouble("DefectSmallImag", "AutoDeleteDays", SysParams.DefectSmallImag.AutoDeleteDays);
  562. iniHelper.WriteString("DefectRepairImag", "SavePath", SysParams.DefectRepairImag.SavePath);
  563. iniHelper.WriteBool("DefectRepairImag", "AutoSave", SysParams.DefectRepairImag.AutoSave);
  564. iniHelper.WriteBool("DefectRepairImag", "AutoDelete", SysParams.DefectRepairImag.AutoDelete);
  565. iniHelper.WriteDouble("DefectRepairImag", "AutoDeleteDays", SysParams.DefectRepairImag.AutoDeleteDays);
  566. iniHelper.WriteString("SizeBigImag", "SavePath", SysParams.SizeBigImag.SavePath);
  567. iniHelper.WriteBool("SizeBigImag", "AutoSave", SysParams.SizeBigImag.AutoSave);
  568. iniHelper.WriteBool("SizeBigImag", "AutoDelete", SysParams.SizeBigImag.AutoDelete);
  569. iniHelper.WriteDouble("SizeBigImag", "AutoDeleteDays", SysParams.SizeBigImag.AutoDeleteDays);
  570. iniHelper.WriteString("SizeNGImag", "SavePath", SysParams.SizeNGImag.SavePath);
  571. iniHelper.WriteBool("SizeNGImag", "AutoSave", SysParams.SizeNGImag.AutoSave);
  572. iniHelper.WriteBool("SizeNGImag", "AutoDelete", SysParams.SizeNGImag.AutoDelete);
  573. iniHelper.WriteDouble("SizeNGImag", "AutoDeleteDays", SysParams.SizeNGImag.AutoDeleteDays);
  574. iniHelper.WriteString("SizeRepairImag", "SavePath", SysParams.SizeRepairImag.SavePath);
  575. iniHelper.WriteBool("SizeRepairImag", "AutoSave", SysParams.SizeRepairImag.AutoSave);
  576. iniHelper.WriteBool("SizeRepairImag", "AutoDelete", SysParams.SizeRepairImag.AutoDelete);
  577. iniHelper.WriteDouble("SizeRepairImag", "AutoDeleteDays", SysParams.SizeRepairImag.AutoDeleteDays);
  578. iniHelper.WriteString("Log", "SavePath", SysParams.LogPath);
  579. iniHelper.WriteBool("Log", "AutoDelete", SysParams.AutoDeleteLog);
  580. iniHelper.WriteDouble("Log", "AutoDeleteDays", SysParams.AutoDeleteLogData);
  581. iniHelper.WriteBool("SysFunction", "OpenMarkErrorStop", SysParams.OpenMarkErrorStop);
  582. iniHelper.WriteBool("SysFunction", "OpenBuzzer", SysParams.OpenBuzzer);
  583. iniHelper.WriteBool("SysFunction", "OpenDoor", SysParams.OpenDoor);
  584. iniHelper.WriteBool("SysFunction", "OpenHttpLog", SysParams.OpenHttpLog);
  585. iniHelper.WriteBool("SysFunction", "OpenAutoGoHome", SysParams.OpenAutoGoHome);
  586. iniHelper.WriteBool("SysFunction", "OpenFlawDistribution", SysParams.OpenFlawDistribution);
  587. iniHelper.WriteBool("SysFunction", "OpenAxisXCalibration", SysParams.OpenAxisXCalibration);
  588. iniHelper.WriteString("Dev", "LightCom", SysParams.LightCom);
  589. iniHelper.WriteInteger("Dev", "LightComBaud", SysParams.LightComBaud);
  590. iniHelper.WriteString("Dev", "TensionCom", SysParams.TensionCom);
  591. iniHelper.WriteInteger("Dev", "TensionComBaud", SysParams.TensionComBaud);
  592. iniHelper.WriteDouble("Dev", "Tension_Offset", SysParams.Tension_Offset);
  593. iniHelper.WriteString("Dev", "LensMotorCom", SysParams.LensMotorCom);
  594. iniHelper.WriteInteger("Dev", "LensMotorComBaud", SysParams.LensMotorComBaud);
  595. iniHelper.WriteString("Dev", "ThicknessIP", SysParams.ThicknessIP);
  596. iniHelper.WriteInteger("Dev", "ThicknessPort", SysParams.ThicknessPort);
  597. iniHelper.WriteDouble("Dev", "ThicknessSafeValue", SysParams.ThicknessSafeValue);
  598. iniHelper.WriteString("Dev", "IODevName", SysParams.IODevName);
  599. iniHelper.WriteString("Dev", "IOCfgPath", SysParams.IOCfgPath);
  600. iniHelper.WriteString("Dev", "MotionCfgPath", SysParams.MotionCfgPath);
  601. iniHelper.WriteString("Dev", "FrontCamName", SysParams.FrontCamName);
  602. iniHelper.WriteString("Dev", "FrontCamCfgPath", SysParams.FrontCamCfgPath);
  603. iniHelper.WriteString("Dev", "BackCamName", SysParams.BackCamName);
  604. iniHelper.WriteString("Dev", "BackCamCfgPath", SysParams.BackCamCfgPath);
  605. iniHelper.WriteBool("Disable", "DisableX1", SysParams.DisableX1);
  606. iniHelper.WriteBool("Disable", "DisableX2", SysParams.DisableX2);
  607. iniHelper.WriteBool("Disable", "DisableY", SysParams.DisableY);
  608. iniHelper.WriteBool("Disable", "DisableZ", SysParams.DisableZ);
  609. iniHelper.WriteBool("Disable", "DisableFrontCam", SysParams.DisableFrontCam);
  610. iniHelper.WriteBool("Disable", "DisableBackCam", SysParams.DisableBackCam);
  611. iniHelper.WriteBool("Disable", "DisableLight", SysParams.DisableLight);
  612. iniHelper.WriteBool("Disable", "DisableThickness", SysParams.DisableThickness);
  613. iniHelper.WriteBool("Disable", "DisableTensor", SysParams.DisableTensor);
  614. iniHelper.WriteBool("Disable", "DisableLensMotor", SysParams.DisableLensMotor);
  615. iniHelper.WriteString("Sys", "ImageProcessPath", SysParams.ImageProcessPath);
  616. iniHelper.WriteString("Sys", "AIModelPath", SysParams.AIModelPath);
  617. iniHelper.WriteString("Sys", "HttpServerIP", SysParams.HttpServerIP);
  618. iniHelper.WriteInteger("Sys", "HttpServerPort", SysParams.HttpServerPort);
  619. iniHelper.WriteBool("ShowMainWin", "ShowResetBtn", SysParams.ShowResetBtn);
  620. iniHelper.WriteBool("ShowMainWin", "ShowBuzz", SysParams.ShowBuzz);
  621. iniHelper.WriteBool("ShowMainWin", "ShowDoorAlm", SysParams.ShowDoorAlm);
  622. iniHelper.WriteDouble("CamView", "DefectCamViewX", SysParams.DefectCamViewX);
  623. iniHelper.WriteDouble("CamView", "DefectCamViewY", SysParams.DefectCamViewY);
  624. iniHelper.WriteBool("CloudAndMES", "EnableHttp", SysParams.EnableHttp);
  625. iniHelper.WriteString("CloudAndMES", "HttpUrl", SysParams.HttpUrl);
  626. iniHelper.WriteString("CloudAndMES", "HttpTempPath", SysParams.HttpTempPath);
  627. iniHelper.WriteString("CloudAndMES", "HttpReturnKey", SysParams.HttpReturnKey);
  628. iniHelper.WriteString("CloudAndMES", "HttpReturnValue", SysParams.HttpReturnValue);
  629. iniHelper.WriteDouble("LensZ", "Z_0_58X", SysParams.LensAxisZPos.Z_0_58X);
  630. //iniHelper.WriteDouble("LensZ", "Z_0_6X", SysParams.LensAxisZPos.Z_0_6X);
  631. iniHelper.WriteDouble("LensZ", "Z_1_0X", SysParams.LensAxisZPos.Z_1_0X);
  632. iniHelper.WriteDouble("LensZ", "Z_1_5X", SysParams.LensAxisZPos.Z_1_5X);
  633. iniHelper.WriteDouble("LensZ", "Z_2_0X", SysParams.LensAxisZPos.Z_2_0X);
  634. iniHelper.WriteDouble("LensZ", "Z_2_5X", SysParams.LensAxisZPos.Z_2_5X);
  635. iniHelper.WriteDouble("LensZ", "Z_3_0X", SysParams.LensAxisZPos.Z_3_0X);
  636. iniHelper.WriteDouble("LensZ", "Z_3_5X", SysParams.LensAxisZPos.Z_3_5X);
  637. iniHelper.WriteDouble("LensZ", "Z_4_0X", SysParams.LensAxisZPos.Z_4_0X);
  638. iniHelper.WriteDouble("LensZ", "Z_4_5X", SysParams.LensAxisZPos.Z_4_5X);
  639. iniHelper.WriteDouble("LensZ", "Z_5_0X", SysParams.LensAxisZPos.Z_5_0X);
  640. iniHelper.WriteDouble("LensZ", "Z_5_5X", SysParams.LensAxisZPos.Z_5_5X);
  641. iniHelper.WriteDouble("LensZ", "Z_6_0X", SysParams.LensAxisZPos.Z_6_0X);
  642. iniHelper.WriteDouble("LensZ", "Z_6_5X", SysParams.LensAxisZPos.Z_6_5X);
  643. iniHelper.WriteDouble("LensZ", "Z_7_0X", SysParams.LensAxisZPos.Z_7_0X);
  644. iniHelper.WriteDouble("LensZ", "Z_7_5X", SysParams.LensAxisZPos.Z_7_5X);
  645. iniHelper.WriteBool("LabelPrint", "EnableLabelPrint", SysParams.EnableLabelPrint);
  646. iniHelper.WriteString("LabelPrint", "LabelPrinterName", SysParams.LabelPrinterName);
  647. iniHelper.WriteString("LabelPrint", "LabelTempPath", SysParams.LabelTempPath);
  648. iniHelper.WriteString("LabelPrint", "LabelData", JsonConvert.SerializeObject(SysParams.LabelData));
  649. iniHelper.WriteBool("ExcelPrint", "EnableExcelPrint", SysParams.EnableExcelPrint);
  650. iniHelper.WriteString("ExcelPrint", "ExcelPrinterName", SysParams.ExcelPrinterName);
  651. iniHelper.WriteString("ExcelPrint", "ExcelTempPath", SysParams.ExcelTempPath);
  652. iniHelper.WriteString("ExcelPrint", "ExcelData", JsonConvert.SerializeObject(SysParams.ExcelData));
  653. SysConfigParams = SysParams;
  654. }
  655. /// <summary>
  656. /// 读取ini
  657. /// </summary>
  658. /// <returns></returns>
  659. public SysConfigParams ReadSysConfParams()
  660. {
  661. //return XmlHelper.Deserialize<SysConfParams>(_configFile);
  662. SysConfigParams sysParams = new SysConfigParams();
  663. IniHelper iniHelper = new IniHelper(_configFile);
  664. string sValue = "";
  665. int iValue = 0;
  666. double dValue = 0;
  667. bool bValue = false;
  668. iniHelper.ReadBool("SaveAllImg", "SaveAllImg", out bValue);
  669. sysParams.SaveAllImg = bValue;
  670. iniHelper.ReadString("DefectBigImag", "SavePath", out sValue);
  671. sysParams.DefectBigImag.SavePath = sValue.Replace("\0", "");
  672. iniHelper.ReadBool("DefectBigImag", "AutoSave", out bValue);
  673. sysParams.DefectBigImag.AutoSave = bValue;
  674. iniHelper.ReadBool("DefectBigImag", "AutoDelete", out bValue);
  675. sysParams.DefectBigImag.AutoDelete = bValue;
  676. iniHelper.ReadDouble("DefectBigImag", "AutoDeleteDays", out dValue);
  677. sysParams.DefectBigImag.AutoDeleteDays = dValue;
  678. iniHelper.ReadString("DefectSmallImag", "SavePath", out sValue);
  679. sysParams.DefectSmallImag.SavePath = sValue.Replace("\0", "");
  680. iniHelper.ReadBool("DefectSmallImag", "AutoSave", out bValue);
  681. sysParams.DefectSmallImag.AutoSave = bValue;
  682. iniHelper.ReadBool("DefectSmallImag", "AutoDelete", out bValue);
  683. sysParams.DefectSmallImag.AutoDelete = bValue;
  684. iniHelper.ReadDouble("DefectSmallImag", "AutoDeleteDays", out dValue);
  685. sysParams.DefectSmallImag.AutoDeleteDays = dValue;
  686. iniHelper.ReadString("DefectRepairImag", "SavePath", out sValue);
  687. sysParams.DefectRepairImag.SavePath = sValue.Replace("\0", "");
  688. iniHelper.ReadBool("DefectRepairImag", "AutoSave", out bValue);
  689. sysParams.DefectRepairImag.AutoSave = bValue;
  690. iniHelper.ReadBool("DefectRepairImag", "AutoDelete", out bValue);
  691. sysParams.DefectRepairImag.AutoDelete = bValue;
  692. iniHelper.ReadDouble("DefectRepairImag", "AutoDeleteDays", out dValue);
  693. sysParams.DefectRepairImag.AutoDeleteDays = dValue;
  694. iniHelper.ReadString("SizeBigImag", "SavePath", out sValue);
  695. sysParams.SizeBigImag.SavePath = sValue.Replace("\0", "");
  696. iniHelper.ReadBool("SizeBigImag", "AutoSave", out bValue);
  697. sysParams.SizeBigImag.AutoSave = bValue;
  698. iniHelper.ReadBool("SizeBigImag", "AutoDelete", out bValue);
  699. sysParams.SizeBigImag.AutoDelete = bValue;
  700. iniHelper.ReadDouble("SizeBigImag", "AutoDeleteDays", out dValue);
  701. sysParams.SizeBigImag.AutoDeleteDays = dValue;
  702. iniHelper.ReadString("SizeNGImag", "SavePath", out sValue);
  703. sysParams.SizeNGImag.SavePath = sValue.Replace("\0", "");
  704. iniHelper.ReadBool("SizeNGImag", "AutoSave", out bValue);
  705. sysParams.SizeNGImag.AutoSave = bValue;
  706. iniHelper.ReadBool("SizeNGImag", "AutoDelete", out bValue);
  707. sysParams.SizeNGImag.AutoDelete = bValue;
  708. iniHelper.ReadDouble("SizeNGImag", "AutoDeleteDays", out dValue);
  709. sysParams.SizeNGImag.AutoDeleteDays = dValue;
  710. iniHelper.ReadString("SizeRepairImag", "SavePath", out sValue);
  711. sysParams.SizeRepairImag.SavePath = sValue.Replace("\0", "");
  712. iniHelper.ReadBool("SizeRepairImag", "AutoSave", out bValue);
  713. sysParams.SizeRepairImag.AutoSave = bValue;
  714. iniHelper.ReadBool("SizeRepairImag", "AutoDelete", out bValue);
  715. sysParams.SizeRepairImag.AutoDelete = bValue;
  716. iniHelper.ReadDouble("SizeRepairImag", "AutoDeleteDays", out dValue);
  717. sysParams.SizeRepairImag.AutoDeleteDays = dValue;
  718. iniHelper.ReadString("Log", "SavePath", out sValue);
  719. sysParams.LogPath = sValue.Replace("\0", "");
  720. iniHelper.ReadBool("Log", "AutoDelete", out bValue);
  721. sysParams.AutoDeleteLog = bValue;
  722. iniHelper.ReadDouble("Log", "AutoDeleteDays", out dValue);
  723. sysParams.AutoDeleteLogData = dValue;
  724. iniHelper.ReadBool("SysFunction", "OpenMarkErrorStop", out bValue);
  725. sysParams.OpenMarkErrorStop = bValue;
  726. iniHelper.ReadBool("SysFunction", "OpenBuzzer", out bValue);
  727. sysParams.OpenBuzzer = bValue;
  728. iniHelper.ReadBool("SysFunction", "OpenDoor", out bValue);
  729. sysParams.OpenDoor = bValue;
  730. iniHelper.ReadBool("SysFunction", "OpenHttpLog", out bValue);
  731. sysParams.OpenHttpLog = bValue;
  732. iniHelper.ReadBool("SysFunction", "OpenAutoGoHome", out bValue);
  733. sysParams.OpenAutoGoHome = bValue;
  734. iniHelper.ReadBool("SysFunction", "OpenFlawDistribution", out bValue);
  735. sysParams.OpenFlawDistribution = bValue;
  736. iniHelper.ReadBool("SysFunction", "OpenAxisXCalibration", out bValue);
  737. sysParams.OpenAxisXCalibration = bValue;
  738. iniHelper.ReadString("Dev", "LightCom", out sValue);
  739. sysParams.LightCom = sValue.Replace("\0", "");
  740. iniHelper.ReadInteger("Dev", "LightComBaud", out iValue);
  741. sysParams.LightComBaud = iValue;
  742. iniHelper.ReadString("Dev", "TensionCom", out sValue);
  743. sysParams.TensionCom = sValue.Replace("\0", "");
  744. iniHelper.ReadInteger("Dev", "TensionComBaud", out iValue);
  745. sysParams.TensionComBaud = iValue;
  746. iniHelper.ReadDouble("Dev", "Tension_Offset", out dValue);
  747. sysParams.Tension_Offset = dValue;
  748. iniHelper.ReadString("Dev", "LensMotorCom", out sValue);
  749. sysParams.LensMotorCom = sValue.Replace("\0", "");
  750. iniHelper.ReadInteger("Dev", "LensMotorComBaud", out iValue);
  751. sysParams.LensMotorComBaud = iValue;
  752. iniHelper.ReadString("Dev", "ThicknessIP", out sValue);
  753. sysParams.ThicknessIP = sValue.Replace("\0", "");
  754. iniHelper.ReadInteger("Dev", "ThicknessPort", out iValue);
  755. sysParams.ThicknessPort = iValue;
  756. iniHelper.ReadDouble("Dev", "ThicknessSafeValue", out dValue);
  757. sysParams.ThicknessSafeValue = dValue;
  758. iniHelper.ReadString("Dev", "IODevName", out sValue);
  759. sysParams.IODevName = sValue.Replace("\0", "");
  760. iniHelper.ReadString("Dev", "IOCfgPath", out sValue);
  761. sysParams.IOCfgPath = sValue.Replace("\0", "");
  762. iniHelper.ReadString("Dev", "FrontCamName", out sValue);
  763. sysParams.FrontCamName = sValue.Replace("\0", "");
  764. iniHelper.ReadString("Dev", "FrontCamCfgPath", out sValue);
  765. sysParams.FrontCamCfgPath = sValue.Replace("\0", "");
  766. iniHelper.ReadString("Dev", "BackCamName", out sValue);
  767. sysParams.BackCamName = sValue.Replace("\0", "");
  768. iniHelper.ReadString("Dev", "BackCamCfgPath", out sValue);
  769. sysParams.BackCamCfgPath = sValue.Replace("\0", "");
  770. iniHelper.ReadString("Dev", "MotionCfgPath", out sValue);
  771. sysParams.MotionCfgPath = sValue.Replace("\0", "");
  772. iniHelper.ReadBool("Disable", "DisableX1", out bValue);
  773. sysParams.DisableX1 = bValue;
  774. iniHelper.ReadBool("Disable", "DisableX2", out bValue);
  775. sysParams.DisableX2 = bValue;
  776. iniHelper.ReadBool("Disable", "DisableY", out bValue);
  777. sysParams.DisableY = bValue;
  778. iniHelper.ReadBool("Disable", "DisableZ", out bValue);
  779. sysParams.DisableZ = bValue;
  780. iniHelper.ReadBool("Disable", "DisableFrontCam", out bValue);
  781. sysParams.DisableFrontCam = bValue;
  782. iniHelper.ReadBool("Disable", "DisableBackCam", out bValue);
  783. sysParams.DisableBackCam = bValue;
  784. iniHelper.ReadBool("Disable", "DisableLight", out bValue);
  785. sysParams.DisableLight = bValue;
  786. iniHelper.ReadBool("Disable", "DisableTensor", out bValue);
  787. sysParams.DisableTensor = bValue;
  788. iniHelper.ReadBool("Disable", "DisableThickness", out bValue);
  789. sysParams.DisableThickness = bValue;
  790. iniHelper.ReadBool("Disable", "DisableLensMotor", out bValue);
  791. sysParams.DisableLensMotor = bValue;
  792. iniHelper.ReadString("Sys", "ImageProcessPath", out sValue);
  793. sysParams.ImageProcessPath = sValue.Replace("\0", "");
  794. iniHelper.ReadString("Sys", "AIModelPath", out sValue);
  795. sysParams.AIModelPath = sValue.Replace("\0", "");
  796. iniHelper.ReadString("Sys", "HttpServerIP", out sValue);
  797. sysParams.HttpServerIP = sValue.Replace("\0", "");
  798. iniHelper.ReadInteger("Sys", "HttpServerPort", out iValue);
  799. sysParams.HttpServerPort = iValue;
  800. iniHelper.ReadBool("ShowMainWin", "ShowResetBtn", out bValue);
  801. sysParams.ShowResetBtn = bValue;
  802. iniHelper.ReadBool("ShowMainWin", "ShowBuzz", out bValue);
  803. sysParams.ShowBuzz = bValue;
  804. iniHelper.ReadBool("ShowMainWin", "ShowDoorAlm", out bValue);
  805. sysParams.ShowDoorAlm = bValue;
  806. iniHelper.ReadDouble("CamView", "DefectCamViewX", out dValue);
  807. sysParams.DefectCamViewX = dValue;
  808. iniHelper.ReadDouble("CamView", "DefectCamViewY", out dValue);
  809. sysParams.DefectCamViewY = dValue;
  810. iniHelper.ReadBool("CloudAndMES", "EnableHttp", out bValue);
  811. sysParams.EnableHttp = bValue;
  812. iniHelper.ReadString("CloudAndMES", "HttpUrl", out sValue);
  813. sysParams.HttpUrl = sValue;
  814. iniHelper.ReadString("CloudAndMES", "HttpTempPath", out sValue);
  815. sysParams.HttpTempPath = sValue;
  816. iniHelper.ReadString("CloudAndMES", "HttpReturnKey", out sValue);
  817. sysParams.HttpReturnKey = sValue;
  818. iniHelper.ReadString("CloudAndMES", "HttpReturnValue", out sValue);
  819. sysParams.HttpReturnValue = sValue;
  820. iniHelper.ReadDouble("LensZ", "Z_0_58X", out dValue);
  821. sysParams.LensAxisZPos.Z_0_58X = dValue;
  822. //iniHelper.ReadDouble("LensZ", "Z_0_6X", out dValue);
  823. //sysParams.LensAxisZPos.Z_0_6X = dValue;
  824. iniHelper.ReadDouble("LensZ", "Z_1_0X", out dValue);
  825. sysParams.LensAxisZPos.Z_1_0X = dValue;
  826. iniHelper.ReadDouble("LensZ", "Z_1_5X", out dValue);
  827. sysParams.LensAxisZPos.Z_1_5X = dValue;
  828. iniHelper.ReadDouble("LensZ", "Z_2_0X", out dValue);
  829. sysParams.LensAxisZPos.Z_2_0X = dValue;
  830. iniHelper.ReadDouble("LensZ", "Z_2_5X", out dValue);
  831. sysParams.LensAxisZPos.Z_2_5X = dValue;
  832. iniHelper.ReadDouble("LensZ", "Z_3_0X", out dValue);
  833. sysParams.LensAxisZPos.Z_3_0X = dValue;
  834. iniHelper.ReadDouble("LensZ", "Z_3_5X", out dValue);
  835. sysParams.LensAxisZPos.Z_3_5X = dValue;
  836. iniHelper.ReadDouble("LensZ", "Z_4_0X", out dValue);
  837. sysParams.LensAxisZPos.Z_4_0X = dValue;
  838. iniHelper.ReadDouble("LensZ", "Z_4_5X", out dValue);
  839. sysParams.LensAxisZPos.Z_4_5X = dValue;
  840. iniHelper.ReadDouble("LensZ", "Z_5_0X", out dValue);
  841. sysParams.LensAxisZPos.Z_5_0X = dValue;
  842. iniHelper.ReadDouble("LensZ", "Z_5_5X", out dValue);
  843. sysParams.LensAxisZPos.Z_5_5X = dValue;
  844. iniHelper.ReadDouble("LensZ", "Z_6_0X", out dValue);
  845. sysParams.LensAxisZPos.Z_6_0X = dValue;
  846. iniHelper.ReadDouble("LensZ", "Z_6_5X", out dValue);
  847. sysParams.LensAxisZPos.Z_6_5X = dValue;
  848. iniHelper.ReadDouble("LensZ", "Z_7_0X", out dValue);
  849. sysParams.LensAxisZPos.Z_7_0X = dValue;
  850. iniHelper.ReadDouble("LensZ", "Z_7_5X", out dValue);
  851. sysParams.LensAxisZPos.Z_7_5X = dValue;
  852. iniHelper.ReadBool("LabelPrint", "EnableLabelPrint", out bValue);
  853. sysParams.EnableLabelPrint = bValue;
  854. iniHelper.ReadString("LabelPrint", "LabelPrinterName", out sValue);
  855. sysParams.LabelPrinterName = sValue;
  856. iniHelper.ReadString("LabelPrint", "LabelTempPath", out sValue);
  857. sysParams.LabelTempPath = sValue;
  858. iniHelper.ReadString("LabelPrint", "LabelData", out sValue);
  859. if (string.IsNullOrEmpty(sValue))
  860. sysParams.LabelData = new Dictionary<string, string>();
  861. else
  862. sysParams.LabelData = JsonConvert.DeserializeObject<Dictionary<string, string>>(sValue);
  863. iniHelper.ReadBool("ExcelPrint", "EnableExcelPrint", out bValue);
  864. sysParams.EnableExcelPrint = bValue;
  865. iniHelper.ReadString("ExcelPrint", "ExcelPrinterName", out sValue);
  866. sysParams.ExcelPrinterName = sValue;
  867. iniHelper.ReadString("ExcelPrint", "ExcelTempPath", out sValue);
  868. sysParams.ExcelTempPath = sValue;
  869. iniHelper.ReadString("ExcelPrint", "ExcelData", out sValue);
  870. if (string.IsNullOrEmpty(sValue))
  871. sysParams.ExcelData = new Dictionary<string, string>();
  872. else
  873. sysParams.ExcelData = JsonConvert.DeserializeObject<Dictionary<string, string>>(sValue);
  874. SysConfigParams = sysParams;
  875. return sysParams;
  876. }
  877. /// <summary>
  878. /// 写入系统默认配置
  879. /// </summary>
  880. public void WriteDefaultSystemConfig()
  881. {
  882. SysConfigParams = new SysConfigParams();
  883. WriteSysConfParams(SysConfigParams);
  884. }
  885. /// <summary>
  886. /// 加载系统配置
  887. /// </summary>
  888. /// <returns></returns>
  889. public bool LoadSystemConfig()
  890. {
  891. bool ret = false;
  892. if (!Directory.Exists(_rootPath))
  893. {
  894. Directory.CreateDirectory(_rootPath);
  895. }
  896. if (!Directory.Exists(_projectDir))
  897. {
  898. Directory.CreateDirectory(_projectDir);
  899. }
  900. if (File.Exists(_pointsPath))
  901. {
  902. ReadPointsAndTime();
  903. }
  904. else
  905. {
  906. // write default value
  907. WritePointsAndTime(0, 0, 0, 0, 1000, 1000);
  908. ret = true;
  909. }
  910. if (File.Exists(_configFile))
  911. {
  912. SysConfigParams = ReadSysConfParams();
  913. if (null != SysConfigParams)
  914. {
  915. ret = true;
  916. }
  917. }
  918. else
  919. {
  920. // write default value
  921. WriteDefaultSystemConfig();
  922. ret = true;
  923. }
  924. return ret;
  925. }
  926. #endregion
  927. #region 文件选择
  928. /// <summary>
  929. /// 选择目录
  930. /// </summary>
  931. /// <returns></returns>
  932. public static string SelectFolder(string defaultPath = "")
  933. {
  934. FolderBrowserDialog dlg = new FolderBrowserDialog();
  935. dlg.SelectedPath = (defaultPath != "" ? defaultPath : Path.GetFullPath("."));
  936. if (dlg.ShowDialog() == DialogResult.OK)
  937. return dlg.SelectedPath;
  938. return "";
  939. }
  940. /// <summary>
  941. /// 选择文件
  942. /// </summary>
  943. /// <param name="filter">如 图像文件|*.jpg|图像文件|*.png|所有文件|*.*</param>
  944. /// <returns></returns>
  945. public static string SelectFile(string filter = "所有文件|*.*", string defaultPath = "")
  946. {
  947. OpenFileDialog fie = new OpenFileDialog();
  948. fie.Title = "选择文件";
  949. //fie.InitialDirectory = (defaultPath != "" ? defaultPath : Path.GetFullPath("."));
  950. fie.Filter = filter; //设置文件类型
  951. if (fie.ShowDialog() == DialogResult.OK)
  952. return fie.FileName;
  953. return "";
  954. }
  955. /// <summary>
  956. /// 删除指定目录下文件
  957. /// </summary>
  958. /// <param name="defaultPath"></param>
  959. /// <param name="fileExtend"></param>
  960. /// <returns></returns>
  961. public static bool DelFilesInFolder(string FolderPath, string fileExtend = "*")
  962. {
  963. if (!Directory.Exists(FolderPath))
  964. return false;
  965. string[] files = Directory.GetFiles(FolderPath, fileExtend, SearchOption.TopDirectoryOnly);
  966. foreach (string file in files)
  967. API.DeleteFile(file);
  968. return true;
  969. }
  970. /// <summary>
  971. /// 另存为
  972. /// </summary>
  973. /// <param name="defaultFileName">默认文件名</param>
  974. /// <param name="filter">如 图像文件|*.jpg|图像文件|*.png|所有文件|*.*</param>
  975. /// <returns></returns>
  976. public static string SaveAsFile(string defaultFileName, string filter = "所有文件|*.*")
  977. {
  978. SaveFileDialog s = new SaveFileDialog();
  979. s.Title = "保存文件";
  980. s.Filter = filter; //"图像文件|*.jpg|图像文件|*.png|所有文件|*.*";
  981. //s.DefaultExt = "图像文件|*.jpg"; //默认扩展名
  982. //s.InitialDirectory = @"C:\Users\Administrator\Desktop"; //保存的初始目录
  983. s.FileName = defaultFileName;//默认文件名
  984. if (s.ShowDialog() == DialogResult.OK)
  985. return s.FileName;
  986. return "";
  987. }
  988. #endregion
  989. #region json操作
  990. public static void addKey(JObject obj, string key, JToken value)
  991. {
  992. if (obj.ContainsKey(key))
  993. obj[key] = value;
  994. else
  995. obj.Add(key, value);
  996. }
  997. #endregion
  998. #region enum名称
  999. public static ArrayList GetArrayList<T>()
  1000. {
  1001. ArrayList list = new ArrayList();
  1002. Type type = typeof(T);
  1003. //list.Add(new DictionaryEntry("start", "启动按钮"));
  1004. foreach (int value in Enum.GetValues(type))
  1005. {
  1006. string strName = Enum.GetName(type, value);//获取名称
  1007. list.Add(new DictionaryEntry(value, strName));
  1008. }
  1009. return list;
  1010. }
  1011. #endregion
  1012. #endregion
  1013. }
  1014. }