革博士V2程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

352 lines
17 KiB

  1. using GeBoShi.SysCtrl;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.IO.Ports;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. namespace GeBoShi.UI.SysSet
  13. {
  14. public partial class SysSetFrm : Form
  15. {
  16. public SysSetFrm()
  17. {
  18. InitializeComponent();
  19. UIStyle.SetUIStyle(this);
  20. this.uiTitel1.FatherForm = this;
  21. }
  22. private void tsbtnExit_Click(object sender, EventArgs e)
  23. {
  24. this.Close();
  25. }
  26. private void tsbtnSave_Click(object sender, EventArgs e)
  27. {
  28. try
  29. {
  30. GetParamsSave();
  31. MessageBox.Show("保存成功,修改硬件参数之后需重启生效!", "保存成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
  32. }
  33. catch (Exception ex)
  34. {
  35. MessageBox.Show(ex.Message, "保存出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
  36. }
  37. }
  38. private void SysSetFrm_Load(object sender, EventArgs e)
  39. {
  40. skinTabControl1.SelectedIndex = 0;
  41. var comNameList = SerialPort.GetPortNames().ToList();
  42. comNameList.ForEach(comName =>
  43. {
  44. this.cobLightPortNum.Items.Add(comName);
  45. this.cbJimiqiCom.Items.Add(comName);
  46. });
  47. //显示所有打印机
  48. if (SysMgr.Instance.PrintControl != null)
  49. {
  50. List<string> list = SysMgr.Instance.PrintControl.GetPrintersName();
  51. foreach (string printer in list)
  52. {
  53. cboPrinters.Items.Add(printer);
  54. cboPrinters2.Items.Add(printer);
  55. }
  56. }
  57. RefeshParams();
  58. }
  59. #region 界面刷新&保存
  60. private void RefeshParams()
  61. {
  62. chkBuzzer.Checked = ConfMgr.Instance.SysConfigParams.OpenBuzzer;
  63. //chkDoorSensor.Checked = ConfMgr.Instance.SysConfigParams.OpenDoor;
  64. cbIODev.Checked = ConfMgr.Instance.SysConfigParams.OpenIO;
  65. cbPLC.Checked = ConfMgr.Instance.SysConfigParams.OpenPLC;
  66. cbJimiqi.Checked = ConfMgr.Instance.SysConfigParams.OpenLengthCount;
  67. cbAutorun.Checked = ConfMgr.Instance.SysConfigParams.OpenAutoRun;
  68. cbJMStop.Checked = ConfMgr.Instance.SysConfigParams.OpenLengthCountStop;
  69. //cbAIEdge.Checked = ConfMgr.Instance.SysConfigParams.OpenAIEdge;
  70. cbEmgStop.Checked = ConfMgr.Instance.SysConfigParams.OpenEMGStop;
  71. cbOpenDB.Checked = ConfMgr.Instance.SysConfigParams.OpenDB;
  72. cobLightPortNum.Text = ConfMgr.Instance.SysConfigParams.LightCom;
  73. numLightBaud.Value = ConfMgr.Instance.SysConfigParams.LightComBaud;
  74. cbJimiqiCom.Text = ConfMgr.Instance.SysConfigParams.LengthCounterCom;
  75. numJimiqiBaud.Value = ConfMgr.Instance.SysConfigParams.LengthCounterComBaud;
  76. tbIODevNum.Text = ConfMgr.Instance.SysConfigParams.IODevName;
  77. tbIOCfgPath.Text = ConfMgr.Instance.SysConfigParams.IOCfgPath;
  78. tbPLCIP.Text = ConfMgr.Instance.SysConfigParams.PLC_IP;
  79. tbCamCfgPath.Text = ConfMgr.Instance.SysConfigParams.CamPath_1;
  80. tbCamCfgPath2.Text = ConfMgr.Instance.SysConfigParams.CamPath_2;
  81. numCamIndex.Value = ConfMgr.Instance.SysConfigParams.CamIndex_1;
  82. numCamIndex2.Value = ConfMgr.Instance.SysConfigParams.CamIndex_2;
  83. numCamDev.Value = ConfMgr.Instance.SysConfigParams.CamDev_1;
  84. numCamDev2.Value = ConfMgr.Instance.SysConfigParams.CamDev_2;
  85. chkSave1.Checked = ConfMgr.Instance.SysConfigParams.DefectSrcImag.AutoSave;
  86. tbDefectPath.Text = ConfMgr.Instance.SysConfigParams.DefectSrcImag.SavePath;
  87. chkDefect_Path_AutoClear.Checked = ConfMgr.Instance.SysConfigParams.DefectSrcImag.AutoDelete;
  88. numDefect_Path_AutoClear.Value = (decimal)ConfMgr.Instance.SysConfigParams.DefectSrcImag.AutoDeleteDays;
  89. chkSave2.Checked = ConfMgr.Instance.SysConfigParams.DefectSmallImag.AutoSave;
  90. tbDefectSmallPath.Text = ConfMgr.Instance.SysConfigParams.DefectSmallImag.SavePath;
  91. chkDefect_Small_Path_AutoClear.Checked = ConfMgr.Instance.SysConfigParams.DefectSmallImag.AutoDelete;
  92. numDefect_Small_Path_AutoClear.Value = (decimal)ConfMgr.Instance.SysConfigParams.DefectSmallImag.AutoDeleteDays;
  93. chkSave3.Checked = ConfMgr.Instance.SysConfigParams.DefectSplicImag.AutoSave;
  94. tbDefectCompressSavePath.Text = ConfMgr.Instance.SysConfigParams.DefectSplicImag.SavePath;
  95. chkDefect_Compress_SavePath_AutoClear.Checked = ConfMgr.Instance.SysConfigParams.DefectSplicImag.AutoDelete;
  96. numDefect_Compress_SavePath_AutoClear.Value = (decimal)ConfMgr.Instance.SysConfigParams.DefectSplicImag.AutoDeleteDays;
  97. chkSave4.Checked = ConfMgr.Instance.SysConfigParams.CamImag.AutoSave;
  98. tbCamIamgePath.Text = ConfMgr.Instance.SysConfigParams.CamImag.SavePath;
  99. cbAutoDel.Checked = ConfMgr.Instance.SysConfigParams.CamImag.AutoDelete;
  100. numCamimageAutoDelDay.Value = (decimal)ConfMgr.Instance.SysConfigParams.CamImag.AutoDeleteDays;
  101. tbModelPath.Text = ConfMgr.Instance.SysConfigParams.AIModelPath;
  102. tbPdtPath.Text = ConfMgr.Instance.ProjectDir;
  103. tbLogPath.Text = ConfMgr.Instance.SysConfigParams.LogPath;
  104. ckbAutoClear.Checked = ConfMgr.Instance.SysConfigParams.AutoDeleteLog;
  105. numLogDays.Value = (decimal)ConfMgr.Instance.SysConfigParams.AutoDeleteLogData;
  106. cbResetBtn.Checked = ConfMgr.Instance.SysConfigParams.ShowResetBtn;
  107. cbBuzzShow.Checked = ConfMgr.Instance.SysConfigParams.ShowBuzz;
  108. cbDoorAlm.Checked = ConfMgr.Instance.SysConfigParams.ShowDoorAlm;
  109. numViewX.Value = (decimal)ConfMgr.Instance.SysConfigParams.Cm2px_x;
  110. numViewY.Value = (decimal)ConfMgr.Instance.SysConfigParams.Cm2px_y;
  111. numMid.Value = (decimal)ConfMgr.Instance.SysConfigParams.MidCoin;
  112. numKW.Value = (decimal)ConfMgr.Instance.SysConfigParams.HolePx;
  113. numL.Value = (decimal)ConfMgr.Instance.SysConfigParams.LCrop;
  114. numR.Value = (decimal)ConfMgr.Instance.SysConfigParams.RCrop;
  115. /////////////Print////////////////
  116. this.cbOpenBarTenderPrint.Checked = ConfMgr.Instance.SysConfigParams.EnableLabelPrint;
  117. this.cboPrinters.SelectedItem = ConfMgr.Instance.SysConfigParams.LabelPrinterName;
  118. this.cbOpenExcelPrint.Checked = ConfMgr.Instance.SysConfigParams.EnableExcelPrint;
  119. this.cboPrinters2.SelectedItem = ConfMgr.Instance.SysConfigParams.ExcelPrinterName;
  120. ////////////////////////////////
  121. ////////////////本地云端////////////////
  122. cbOpenCloud.Checked = ConfMgr.Instance.SysConfigParams.OpenCloud;
  123. tbCloudName.Text = ConfMgr.Instance.SysConfigParams.CloudThisName;
  124. tbCloudIP.Text = ConfMgr.Instance.SysConfigParams.CloudServerIP;
  125. numCloudPort.Value = (decimal)ConfMgr.Instance.SysConfigParams.CloudServerPort;
  126. tbCloudUser.Text = ConfMgr.Instance.SysConfigParams.CloudUser;
  127. tbCloudPassword.Text = ConfMgr.Instance.SysConfigParams.CloudPassword;
  128. ////////////////////////////////////////
  129. ///
  130. //this.cbMX1.Checked = ConfMgr.Instance.SysConfigParams.Cam1_flipX;
  131. //this.cbMY1.Checked = ConfMgr.Instance.SysConfigParams.Cam1_flipY;
  132. //this.cbMX2.Checked = ConfMgr.Instance.SysConfigParams.Cam2_flipX;
  133. //this.cbMY2.Checked = ConfMgr.Instance.SysConfigParams.Cam2_flipY;
  134. this.numStopDis.Value = (decimal)ConfMgr.Instance.SysConfigParams.StopLookDis;
  135. this.numStopDecTime.Value = (decimal)ConfMgr.Instance.SysConfigParams.StopDecTime;
  136. this.numStopPicCnt.Value = ConfMgr.Instance.SysConfigParams.StopImageCnt;
  137. this.numDBdis.Value = (decimal)ConfMgr.Instance.SysConfigParams.CamToDBDis;
  138. }
  139. private void GetParamsSave()
  140. {
  141. SysConfigParams configParams = new SysConfigParams();
  142. configParams = ConfMgr.Instance.SysConfigParams;
  143. configParams.OpenBuzzer = chkBuzzer.Checked;
  144. //configParams.OpenDoor = chkDoorSensor.Checked;
  145. configParams.OpenIO = cbIODev.Checked;
  146. configParams.OpenPLC = cbPLC.Checked;
  147. configParams.OpenLengthCount = cbJimiqi.Checked;
  148. configParams.OpenAutoRun = cbAutorun.Checked;
  149. configParams.OpenLengthCountStop = cbJMStop.Checked;
  150. //configParams.OpenAIEdge = cbAIEdge.Checked;
  151. configParams.OpenDB = cbOpenDB.Checked;
  152. configParams.OpenEMGStop = cbEmgStop.Checked;
  153. configParams.LightCom = cobLightPortNum.Text;
  154. configParams.LightComBaud = (int)numLightBaud.Value;
  155. configParams.LengthCounterCom = cbJimiqiCom.Text;
  156. configParams.LengthCounterComBaud = (int)numJimiqiBaud.Value;
  157. configParams.IODevName = tbIODevNum.Text;
  158. configParams.IOCfgPath = tbIOCfgPath.Text;
  159. configParams.PLC_IP = tbPLCIP.Text;
  160. configParams.PLC_Rack = 0;
  161. configParams.PLC_Solt = 1;
  162. configParams.CamPath_1 = tbCamCfgPath.Text;
  163. configParams.CamPath_2 = tbCamCfgPath2.Text;
  164. configParams.CamIndex_1 = (int)numCamIndex.Value;
  165. configParams.CamIndex_2 = (int)numCamIndex2.Value;
  166. configParams.CamDev_1 = (int)numCamDev.Value;
  167. configParams.CamDev_2 = (int)numCamDev2.Value;
  168. configParams.DefectSrcImag.AutoSave = chkSave1.Checked;
  169. configParams.DefectSrcImag.SavePath = tbDefectPath.Text;
  170. configParams.DefectSrcImag.AutoDelete = chkDefect_Path_AutoClear.Checked;
  171. configParams.DefectSrcImag.AutoDeleteDays = (double)numDefect_Path_AutoClear.Value;
  172. configParams.DefectSmallImag.AutoSave = chkSave2.Checked;
  173. configParams.DefectSmallImag.SavePath = tbDefectSmallPath.Text;
  174. configParams.DefectSmallImag.AutoDelete = chkDefect_Small_Path_AutoClear.Checked;
  175. configParams.DefectSmallImag.AutoDeleteDays = (double)numDefect_Small_Path_AutoClear.Value;
  176. configParams.DefectSplicImag.AutoSave = chkSave3.Checked;
  177. configParams.DefectSplicImag.SavePath = tbDefectCompressSavePath.Text;
  178. configParams.DefectSplicImag.AutoDelete = chkDefect_Compress_SavePath_AutoClear.Checked;
  179. configParams.DefectSplicImag.AutoDeleteDays = (double)numDefect_Compress_SavePath_AutoClear.Value;
  180. configParams.CamImag.AutoSave = chkSave4.Checked;
  181. configParams.CamImag.SavePath = tbCamIamgePath.Text;
  182. configParams.CamImag.AutoDelete = cbAutoDel.Checked;
  183. configParams.CamImag.AutoDeleteDays = (double)numCamimageAutoDelDay.Value;
  184. configParams.AIModelPath = tbModelPath.Text;
  185. configParams.ProductPath = tbPdtPath.Text;
  186. configParams.LogPath = tbLogPath.Text;
  187. configParams.AutoDeleteLog = ckbAutoClear.Checked;
  188. configParams.AutoDeleteLogData = (double)numLogDays.Value;
  189. configParams.ShowResetBtn = cbResetBtn.Checked;
  190. configParams.ShowBuzz = cbBuzzShow.Checked;
  191. configParams.ShowDoorAlm = cbDoorAlm.Checked;
  192. configParams.Cm2px_x = (int)numViewX.Value;
  193. configParams.Cm2px_y = (int)numViewY.Value;
  194. configParams.MidCoin = (int)numMid.Value;
  195. configParams.HolePx = (int)numKW.Value;
  196. configParams.LCrop = (int)numL.Value;
  197. configParams.RCrop = (int)numR.Value;
  198. ////////////////////Print//////////////////////////
  199. configParams.EnableLabelPrint = this.cbOpenBarTenderPrint.Checked;
  200. if (this.cboPrinters.SelectedItem != null)
  201. configParams.LabelPrinterName = this.cboPrinters.SelectedItem.ToString();
  202. configParams.EnableExcelPrint = this.cbOpenExcelPrint.Checked;
  203. if (this.cboPrinters2.SelectedItem != null)
  204. configParams.ExcelPrinterName = this.cboPrinters2.SelectedItem.ToString();
  205. /////////////////////////////////////////////////
  206. ///////本地云端////////////////////////////
  207. configParams.OpenCloud = this.cbOpenCloud.Checked;
  208. configParams.CloudThisName = this.tbCloudName.Text;
  209. configParams.CloudServerIP = this.tbCloudIP.Text;
  210. configParams.CloudServerPort = (int)this.numCloudPort.Value;
  211. configParams.CloudUser = this.tbCloudUser.Text;
  212. configParams.CloudPassword = this.tbCloudPassword.Text;
  213. ///////////////////////////////////////////
  214. ///
  215. //configParams.Cam1_flipX = this.cbMX1.Checked;
  216. //configParams.Cam1_flipY = this.cbMY1.Checked;
  217. //configParams.Cam2_flipX = this.cbMX2.Checked;
  218. //configParams.Cam2_flipY = this.cbMY2.Checked;
  219. configParams.StopLookDis = (double)this.numStopDis.Value;
  220. configParams.StopDecTime = (double)this.numStopDecTime.Value;
  221. configParams.StopImageCnt = (int)this.numStopPicCnt.Value;
  222. configParams.CamToDBDis = (double)this.numDBdis.Value;
  223. ConfMgr.Instance.WriteSysConfParams(configParams);
  224. }
  225. #endregion
  226. private void tbPath_Click(object sender, EventArgs e)
  227. {
  228. TextBox tb = (TextBox)sender;
  229. string path = ConfMgr.SelectFolder(Application.StartupPath);
  230. if (!string.IsNullOrWhiteSpace(path))
  231. {
  232. tb.Text = path;
  233. }
  234. }
  235. private void btnClearPathClick(object sender, EventArgs e)
  236. {
  237. PictureBox pb = (PictureBox)sender;
  238. string path = "";
  239. if (pb.Name == btnClearDefect_Compress_SavePath.Name)
  240. this.tbDefectCompressSavePath.Text = path;
  241. else if (pb.Name == btnClearDefect_Path.Name)
  242. this.tbDefectPath.Text = path;
  243. else if (pb.Name == btnClearDefect_Small_Path.Name)
  244. this.tbDefectSmallPath.Text = path;
  245. else if (pb.Name == btnClearCamImagePath.Name)
  246. this.btnClearCamImagePath.Text = path;
  247. }
  248. private void tbPathFile_Click(object sender, EventArgs e)
  249. {
  250. TextBox tb = (TextBox)sender;
  251. string path = ConfMgr.SelectFile("所有文件|*.*", Application.StartupPath);
  252. if (!string.IsNullOrWhiteSpace(path))
  253. {
  254. if (tb.Name == tbIOCfgPath.Name)
  255. this.tbIOCfgPath.Text = path;
  256. else if (tb.Name == tbCamCfgPath.Name)
  257. this.tbCamCfgPath.Text = path;
  258. else if (tb.Name == tbCamCfgPath2.Name)
  259. this.tbCamCfgPath2.Text = path;
  260. }
  261. }
  262. private void tsbtnDataSave_Click(object sender, EventArgs e)
  263. {
  264. try
  265. {
  266. string lsPath = ConfMgr.SelectFolder();
  267. if (string.IsNullOrWhiteSpace(lsPath))
  268. return;
  269. //lsPath += "\\DB" + DateTime.Now.ToString("yyyyMMddHHmm") + ".bak";
  270. lsPath += "\\backup_" + DateTime.Now.ToString("yyyyMMddHHmm") + ".sql";
  271. Service.InitDB.BackupDataBase(lsPath);
  272. MessageBox.Show("备份成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
  273. }
  274. catch (Exception ex)
  275. {
  276. MessageBox.Show(ex.Message, "失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
  277. }
  278. }
  279. private void tsbtnDatImport_Click(object sender, EventArgs e)
  280. {
  281. try
  282. {
  283. string dbPath = ConfMgr.SelectFile();
  284. if (string.IsNullOrWhiteSpace(dbPath))
  285. return;
  286. if (MessageBox.Show($"是否导入{dbPath}?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
  287. {
  288. bool rel = Service.InitDB.RestoreDB(dbPath);
  289. if (rel)
  290. {
  291. MessageBox.Show("导入成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
  292. }
  293. else
  294. MessageBox.Show("导入失败!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
  295. }
  296. }
  297. catch (Exception ex)
  298. {
  299. MessageBox.Show(ex.Message, "失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
  300. }
  301. }
  302. }
  303. }