Form_SystemSet.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Windows.Forms;
  7. using StandardLibrary;
  8. namespace MainForm
  9. {
  10. public delegate void SystemSetMessageHandler(LogType logType, string message);
  11. public partial class Form_SystemSet : Form
  12. {
  13. private string FilePath = AppDomain.CurrentDomain.BaseDirectory + "Config.ini";
  14. public event SystemSetMessageHandler MessageEvent;
  15. private string currentRole = "";
  16. #region 窗体事件
  17. public Form_SystemSet()
  18. {
  19. InitializeComponent();
  20. }
  21. private void Form_SystemSet_Load(object sender, EventArgs e)
  22. {
  23. //产品
  24. txtProject_code.Text = IniFile.INIGetStringValue(FilePath, "Product", "ProjectCode", ""); // 项⽬编码
  25. txtFactory_Code.Text = IniFile.INIGetStringValue(FilePath, "Product", "FactoryCode", ""); // ⼯⼚编码
  26. txtProcess_Section_Code.Text = IniFile.INIGetStringValue(FilePath, "Product", "ProcessSectionCode", ""); // ⼯段编码
  27. textBoxLineCode.Text = IniFile.INIGetStringValue(FilePath, "Product", "LineCode", ""); // 线体编码
  28. textBoxLineName.Text = IniFile.INIGetStringValue(FilePath, "Product", "LineName", ""); // 线体名称
  29. txtProgramName.Text = IniFile.INIGetStringValue(FilePath, "Product", "ProgramName", ""); // 程序名称
  30. // MES API配置
  31. textBoxServerHost.Text = IniFile.INIGetStringValue(FilePath, "MES", "ServerHost", GlobalContext.ConstServerHost);
  32. cbSendStationIn.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendStationIn", GlobalContext.ConstIsSendStationIn));
  33. cbSendProcessData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendProcessData", GlobalContext.ConstIsSendProcessData));
  34. cbSendCheckOneData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendCheckOneData", GlobalContext.ConstIsSendCheckOneData));
  35. cbSendWorkingData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendWorkingData", GlobalContext.ConstIsSendWorkingData));
  36. cbSendAlarmData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendAlarmData", GlobalContext.ConstIsSendAlarmData));
  37. chkIsUseMESRoute.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsUseMESRoute", "False")); // 启用MES边线(RouteCommunication.dll)
  38. // MQTT配置
  39. txtMqttIP.Text = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerHost", "127.0.0.1");
  40. numMqttPort.Text = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerPort", "0");
  41. chkMqttPassStation.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSendProcessData", "false")); // 上传过站数据
  42. chkMqttDeviceState.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttDeviceState", "false")); // 上传设备状态
  43. chkMqttFaultLog.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttFaultLog", "false")); // 上传故障⽇志
  44. chkMqttSensorData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSensorData", "false")); // 上传传感器数据
  45. chkMqttStationInputBegin.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttStationInputBegin", "false")); ; // 上传节拍⽇志
  46. chkMqttOperateLog.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttOperateLog", "false")); // 上传操作记录
  47. chkMqttEquiConfig.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttEquiConfig", "false")); // 上传装备配置
  48. chkMqttProcConfig.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttProcConfig", "false")); // 上传⼯艺配置
  49. // AGV配置
  50. chkIsUseAGV.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "AGV", "IsUseAGV", "false")); // 是否 启用AGV
  51. txtAGVHttpIP.Text = IniFile.INIGetStringValue(FilePath, "AGV", "AGVHttpHost", ""); // Http IP地址
  52. txtAGVMQTTIP.Text = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTHost", ""); // MQTT IP地址
  53. numAGVMQTTPort.Text = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTPort", ""); // MQTT端口
  54. // 机器IP配置
  55. bool boolS1 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC1", "false"));
  56. bool boolS2 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC2", "false"));
  57. bool boolS3 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC3", "false"));
  58. bool boolS4 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC4", "false"));
  59. bool boolS5 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC5", "false"));
  60. bool boolS6 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC6", "false"));
  61. bool boolS7 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC7", "false"));
  62. bool boolS8 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC8", "false"));
  63. bool boolS9 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC9", "false"));
  64. rdbS1.Checked = boolS1;
  65. rdbS2.Checked = boolS2;
  66. rdbS3.Checked = boolS3;
  67. rdbS4.Checked = boolS4;
  68. rdbS5.Checked = boolS5;
  69. rdbS6.Checked = boolS6;
  70. rdbS7.Checked = boolS7;
  71. rdbS8.Checked = boolS8;
  72. rdbS9.Checked = boolS9;
  73. txtPLCAddress1.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine1Address", GlobalContext.ConstMachine1Address);
  74. txtPLCAddress2.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine2Address", GlobalContext.ConstMachine2Address);
  75. txtPLCAddress3.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine3Address", GlobalContext.ConstMachine3Address);
  76. txtPLCAddress4.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine4Address", GlobalContext.ConstMachine4Address);
  77. txtPLCAddress5.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine5Address", GlobalContext.ConstMachine5Address);
  78. txtPLCAddress6.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine6Address", GlobalContext.ConstMachine6Address);
  79. txtPLCAddress7.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine7Address", GlobalContext.ConstMachine7Address);
  80. txtPLCAddress8.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine8Address", GlobalContext.ConstMachine8Address);
  81. txtPLCAddress9.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine9Address", GlobalContext.ConstMachine9Address);
  82. txtPCAddress.Text = IniFile.INIGetStringValue(FilePath, "Machine", "PcAddress", GlobalContext.ConstPcAddress);
  83. numPLCPort.Value = int.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "MachinePort", "0"));
  84. // 产品2
  85. if (boolS1)
  86. {
  87. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s1_work_station", "");
  88. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s1_device_code", "");
  89. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s1_station", "");
  90. }
  91. else if (boolS2)
  92. {
  93. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s2_work_station", "");
  94. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s2_device_code", "");
  95. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_station", "");
  96. }
  97. else if (boolS3)
  98. {
  99. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_work_station", "");
  100. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_device_code", "");
  101. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_station", "");
  102. }
  103. else if (boolS4)
  104. {
  105. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s4_work_station", "");
  106. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s4_device_code", "");
  107. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s4_station", "");
  108. }
  109. else if (boolS5)
  110. {
  111. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s5_work_station", "");
  112. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s5_device_code", "");
  113. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s5_station", "");
  114. }
  115. else if (boolS6)
  116. {
  117. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s6_work_station", "");
  118. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s6_device_code", "");
  119. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s6_station", "");
  120. }
  121. else if (boolS7)
  122. {
  123. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_work_station", "");
  124. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_device_code", "");
  125. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_station", "");
  126. }
  127. else if (boolS8)
  128. {
  129. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s8_work_station", "");
  130. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s8_device_code", "");
  131. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s8_station", "");
  132. }
  133. else if (boolS9)
  134. {
  135. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s9_work_station", "");
  136. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s9_device_code", "");
  137. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s9_station", "");
  138. }
  139. }
  140. #endregion 窗体事件
  141. /// <summary>
  142. /// 改变用户时更新页面
  143. /// </summary>
  144. /// <param name="user"></param>
  145. public void ForUserChangeToUpdate(User user)
  146. {
  147. currentRole = user.ToString();
  148. //switch (user.ToString())
  149. //{
  150. // case "Operator":
  151. // groupBox2.Enabled = false;
  152. // groupBox3.Enabled = false;
  153. // break;
  154. // case "Admin":
  155. // groupBox2.Enabled = true;
  156. // groupBox3.Enabled = false;
  157. // break;
  158. // case "SuperAdmin":
  159. // groupBox2.Enabled = true;
  160. // groupBox3.Enabled = true;
  161. // break;
  162. // default:
  163. // groupBox2.Enabled = true;
  164. // groupBox3.Enabled = true;
  165. // break;
  166. //}
  167. }
  168. /// <summary>
  169. /// 保存产线信息
  170. /// </summary>
  171. private void buttonConfirm_Click(object sender, EventArgs e)
  172. {
  173. try
  174. {
  175. IniFile.INIWriteValue(FilePath, "Product", "ProjectCode", txtProject_code.Text.Trim());
  176. IniFile.INIWriteValue(FilePath, "Product", "FactoryCode", txtFactory_Code.Text.Trim());
  177. IniFile.INIWriteValue(FilePath, "Product", "ProcessSectionCode", txtProcess_Section_Code.Text.Trim());
  178. IniFile.INIWriteValue(FilePath, "Product", "LineCode", textBoxLineCode.Text.Trim());
  179. IniFile.INIWriteValue(FilePath, "Product", "LineName", textBoxLineName.Text.Trim());
  180. IniFile.INIWriteValue(FilePath, "Product", "ProgramName", txtProgramName.Text.Trim());
  181. // 产品2
  182. if (rdbS1.Checked)
  183. {
  184. IniFile.INIWriteValue(FilePath, "Station", "s1_work_station", txtWorkStation.Text.Trim());
  185. IniFile.INIWriteValue(FilePath, "Station", "s1_device_code", txtDeviceCode.Text.Trim());
  186. IniFile.INIWriteValue(FilePath, "Station", "s1_station", txtStation.Text.Trim());
  187. }
  188. else if (rdbS2.Checked)
  189. {
  190. IniFile.INIWriteValue(FilePath, "Station", "s2_work_station", txtWorkStation.Text.Trim());
  191. IniFile.INIWriteValue(FilePath, "Station", "s2_device_code", txtDeviceCode.Text.Trim());
  192. IniFile.INIWriteValue(FilePath, "Station", "s2_station", txtStation.Text.Trim());
  193. }
  194. else if (rdbS3.Checked)
  195. {
  196. IniFile.INIWriteValue(FilePath, "Station", "s3_1_work_station", txtWorkStation.Text.Trim());
  197. IniFile.INIWriteValue(FilePath, "Station", "s3_1_device_code", txtDeviceCode.Text.Trim());
  198. IniFile.INIWriteValue(FilePath, "Station", "s3_1_station", txtStation.Text.Trim());
  199. IniFile.INIWriteValue(FilePath, "Station", "s3_2_work_station", txtWorkStation.Text.Trim());
  200. IniFile.INIWriteValue(FilePath, "Station", "s3_2_device_code", txtDeviceCode.Text.Trim());
  201. IniFile.INIWriteValue(FilePath, "Station", "s3_2_station", txtStation.Text.Trim());
  202. }
  203. else if (rdbS4.Checked)
  204. {
  205. IniFile.INIWriteValue(FilePath, "Station", "s4_work_station", txtWorkStation.Text.Trim());
  206. IniFile.INIWriteValue(FilePath, "Station", "s4_device_code", txtDeviceCode.Text.Trim());
  207. IniFile.INIWriteValue(FilePath, "Station", "s4_station", txtStation.Text.Trim());
  208. }
  209. else if (rdbS5.Checked)
  210. {
  211. IniFile.INIWriteValue(FilePath, "Station", "s5_work_station", txtWorkStation.Text.Trim());
  212. IniFile.INIWriteValue(FilePath, "Station", "s5_device_code", txtDeviceCode.Text.Trim());
  213. IniFile.INIWriteValue(FilePath, "Station", "s5_station", txtStation.Text.Trim());
  214. }
  215. else if (rdbS6.Checked)
  216. {
  217. IniFile.INIWriteValue(FilePath, "Station", "s6_work_station", txtWorkStation.Text.Trim());
  218. IniFile.INIWriteValue(FilePath, "Station", "s6_device_code", txtDeviceCode.Text.Trim());
  219. IniFile.INIWriteValue(FilePath, "Station", "s6_station", txtStation.Text.Trim());
  220. }
  221. else if (rdbS7.Checked)
  222. {
  223. IniFile.INIWriteValue(FilePath, "Station", "s7_1_work_station", txtWorkStation.Text.Trim());
  224. IniFile.INIWriteValue(FilePath, "Station", "s7_1_device_code", txtDeviceCode.Text.Trim());
  225. IniFile.INIWriteValue(FilePath, "Station", "s7_1_station", txtStation.Text.Trim());
  226. IniFile.INIWriteValue(FilePath, "Station", "s7_2_work_station", txtWorkStation.Text.Trim());
  227. IniFile.INIWriteValue(FilePath, "Station", "s7_2_device_code", txtDeviceCode.Text.Trim());
  228. IniFile.INIWriteValue(FilePath, "Station", "s7_2_station", txtStation.Text.Trim());
  229. }
  230. else if (rdbS8.Checked)
  231. {
  232. IniFile.INIWriteValue(FilePath, "Station", "s8_work_station", txtWorkStation.Text.Trim());
  233. IniFile.INIWriteValue(FilePath, "Station", "s8_device_code", txtDeviceCode.Text.Trim());
  234. IniFile.INIWriteValue(FilePath, "Station", "s8_station", txtStation.Text.Trim());
  235. }
  236. else if (rdbS9.Checked)
  237. {
  238. IniFile.INIWriteValue(FilePath, "Station", "s9_work_station", txtWorkStation.Text.Trim());
  239. IniFile.INIWriteValue(FilePath, "Station", "s9_device_code", txtDeviceCode.Text.Trim());
  240. IniFile.INIWriteValue(FilePath, "Station", "s9_station", txtStation.Text.Trim());
  241. }
  242. MessageBox.Show("参数保存成功!");
  243. GlobalContext.UpdateData();
  244. //记录修改日志
  245. List<string> productSetVlaue = new List<string>();
  246. productSetVlaue.Add(txtProject_code.Text.Trim());
  247. productSetVlaue.Add(txtFactory_Code.Text.Trim());
  248. productSetVlaue.Add(txtProcess_Section_Code.Text.Trim());
  249. productSetVlaue.Add(textBoxLineCode.Text.Trim());
  250. productSetVlaue.Add(textBoxLineName.Text.Trim());
  251. productSetVlaue.Add(txtProgramName.Text.Trim());
  252. productSetVlaue.Add(txtWorkStation.Text.Trim());
  253. productSetVlaue.Add(txtDeviceCode.Text.Trim());
  254. productSetVlaue.Add(txtStation.Text.Trim());
  255. String.Join(";", productSetVlaue);
  256. OnMessage(LogType.Info, currentRole + "修改系统值[产线信息]为[" + String.Join(";", productSetVlaue) + "]");
  257. }
  258. catch (Exception ex)
  259. {
  260. string str = ex.StackTrace;
  261. OnMessage(LogType.Info, "保存产线信息出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  262. }
  263. }
  264. /// <summary>
  265. /// 保存MES配置
  266. /// </summary>
  267. private void button2_Click(object sender, EventArgs e)
  268. {
  269. try
  270. {
  271. IniFile.INIWriteValue(FilePath, "MES", "ServerHost", IPAddress.Parse(textBoxServerHost.Text.Trim()).ToString());
  272. IniFile.INIWriteValue(FilePath, "MES", "IsSendStationIn", cbSendStationIn.Checked.ToString());
  273. IniFile.INIWriteValue(FilePath, "MES", "IsSendProcessData", cbSendProcessData.Checked.ToString());
  274. IniFile.INIWriteValue(FilePath, "MES", "IsSendCheckOneData", cbSendCheckOneData.Checked.ToString());
  275. IniFile.INIWriteValue(FilePath, "MES", "IsSendWorkingData", cbSendWorkingData.Checked.ToString());
  276. IniFile.INIWriteValue(FilePath, "MES", "IsSendAlarmData", cbSendAlarmData.Checked.ToString());
  277. IniFile.INIWriteValue(FilePath, "MES", "IsUseMESRoute", chkIsUseMESRoute.Checked.ToString()); // 启用MES边线(RouteCommunication.dll)
  278. MessageBox.Show("参数保存成功!");
  279. GlobalContext.UpdateData();
  280. //记录修改日志
  281. List<string> mesSetVlaue = new List<string>();
  282. mesSetVlaue.Add(textBoxServerHost.Text);
  283. mesSetVlaue.Add(cbSendStationIn.Checked.ToString());
  284. mesSetVlaue.Add(cbSendProcessData.Checked.ToString());
  285. mesSetVlaue.Add(cbSendCheckOneData.Checked.ToString());
  286. mesSetVlaue.Add(cbSendWorkingData.Checked.ToString());
  287. mesSetVlaue.Add(cbSendAlarmData.Checked.ToString());
  288. mesSetVlaue.Add(chkIsUseMESRoute.Checked.ToString()); // 启用MES边线(RouteCommunication.dll)
  289. String.Join(";", mesSetVlaue);
  290. OnMessage(LogType.Info, currentRole + "修改系统值[MES配置]为[" + String.Join(";", mesSetVlaue) + "]");
  291. }
  292. catch (Exception ex)
  293. {
  294. string str = ex.StackTrace;
  295. OnMessage(LogType.Info, "保存MES配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  296. }
  297. }
  298. /// <summary>
  299. /// 保存IOT配置
  300. /// </summary>
  301. private void btnIOTData_Click(object sender, EventArgs e)
  302. {
  303. try
  304. {
  305. IniFile.INIWriteValue(FilePath, "MQTT", "MQTTServerHost", IPAddress.Parse(txtMqttIP.Text.Trim()).ToString());
  306. IniFile.INIWriteValue(FilePath, "MQTT", "MQTTServerPort", numMqttPort.Value.ToString());
  307. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttSendProcessData", chkMqttPassStation.Checked.ToString()); // 上传过站数据
  308. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttDeviceState", chkMqttDeviceState.Checked.ToString()); // 上传设备状态
  309. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttFaultLog", chkMqttFaultLog.Checked.ToString()); // 上传故障⽇志
  310. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttSensorData", chkMqttSensorData.Checked.ToString()); // 上传传感器数据
  311. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttStationInputBegin", chkMqttStationInputBegin.Checked.ToString()); // 上传节拍⽇志
  312. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttOperateLog", chkMqttOperateLog.Checked.ToString()); // 上传操作记录
  313. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttEquiConfig", chkMqttEquiConfig.Checked.ToString()); // 上传装备配置
  314. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttProcConfig", chkMqttProcConfig.Checked.ToString()); // 上传⼯艺配置
  315. MessageBox.Show("参数保存成功!");
  316. GlobalContext.UpdateData();
  317. //记录修改日志
  318. List<string> mesSetVlaue = new List<string>();
  319. mesSetVlaue.Add(txtMqttIP.Text.Trim());
  320. mesSetVlaue.Add(numMqttPort.Value.ToString());
  321. mesSetVlaue.Add(chkMqttPassStation.Checked.ToString());
  322. mesSetVlaue.Add(chkMqttDeviceState.Checked.ToString());
  323. mesSetVlaue.Add(chkMqttFaultLog.Checked.ToString());
  324. mesSetVlaue.Add(chkMqttSensorData.Checked.ToString());
  325. mesSetVlaue.Add(chkMqttStationInputBegin.Checked.ToString());
  326. mesSetVlaue.Add(chkMqttOperateLog.Checked.ToString());
  327. mesSetVlaue.Add(chkMqttEquiConfig.Checked.ToString());
  328. mesSetVlaue.Add(chkMqttProcConfig.Checked.ToString());
  329. String.Join(";", mesSetVlaue);
  330. OnMessage(LogType.Info, currentRole + "修改系统值[IOT配置]为[" + String.Join(";", mesSetVlaue) + "]");
  331. }
  332. catch (Exception ex)
  333. {
  334. string str = ex.StackTrace;
  335. OnMessage(LogType.Info, "保存IOT配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  336. }
  337. }
  338. /// <summary>
  339. /// 保存AGV配置
  340. /// </summary>
  341. private void btnAGV_Click(object sender, EventArgs e)
  342. {
  343. try
  344. {
  345. IniFile.INIWriteValue(FilePath, "AGV", "IsUseAGV", chkIsUseAGV.Checked.ToString()); // 是否 启用AGV
  346. IniFile.INIWriteValue(FilePath, "AGV", "AGVHttpHost", IPAddress.Parse(txtAGVHttpIP.Text.Trim()).ToString()); // Http IP地址
  347. IniFile.INIWriteValue(FilePath, "AGV", "AGVMQTTHost", IPAddress.Parse(txtAGVMQTTIP.Text.Trim()).ToString()); // MQTT IP地址
  348. IniFile.INIWriteValue(FilePath, "AGV", "AGVMQTTPort", numAGVMQTTPort.Value.ToString()); // MQTT端口
  349. MessageBox.Show("参数保存成功!");
  350. GlobalContext.UpdateData();
  351. //记录修改日志
  352. List<string> mesSetVlaue = new List<string>();
  353. mesSetVlaue.Add(chkIsUseAGV.Checked.ToString());
  354. mesSetVlaue.Add(txtAGVHttpIP.Text.Trim());
  355. mesSetVlaue.Add(txtAGVMQTTIP.Text.Trim());
  356. mesSetVlaue.Add(numAGVMQTTPort.Text.Trim());
  357. String.Join(";", mesSetVlaue);
  358. OnMessage(LogType.Info, currentRole + "修改系统值[AGV配置]为[" + String.Join(";", mesSetVlaue) + "]");
  359. }
  360. catch (Exception ex)
  361. {
  362. string str = ex.StackTrace;
  363. OnMessage(LogType.Error, "保存AGV配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  364. }
  365. }
  366. /// <summary>
  367. /// 保存设备配置
  368. /// </summary>
  369. private void button3_Click(object sender, EventArgs e)
  370. {
  371. try
  372. {
  373. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC1", rdbS1.Checked.ToString());
  374. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC2", rdbS2.Checked.ToString());
  375. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC3", rdbS3.Checked.ToString());
  376. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC4", rdbS4.Checked.ToString());
  377. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC5", rdbS5.Checked.ToString());
  378. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC6", rdbS6.Checked.ToString());
  379. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC7", rdbS7.Checked.ToString());
  380. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC8", rdbS8.Checked.ToString());
  381. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC9", rdbS9.Checked.ToString());
  382. IniFile.INIWriteValue(FilePath, "Machine", "Machine1Address", IPAddress.Parse(txtPLCAddress1.Text.Trim()).ToString());
  383. IniFile.INIWriteValue(FilePath, "Machine", "Machine2Address", IPAddress.Parse(txtPLCAddress2.Text.Trim()).ToString());
  384. IniFile.INIWriteValue(FilePath, "Machine", "Machine3Address", IPAddress.Parse(txtPLCAddress3.Text.Trim()).ToString());
  385. IniFile.INIWriteValue(FilePath, "Machine", "Machine4Address", IPAddress.Parse(txtPLCAddress4.Text.Trim()).ToString());
  386. IniFile.INIWriteValue(FilePath, "Machine", "Machine5Address", IPAddress.Parse(txtPLCAddress5.Text.Trim()).ToString());
  387. IniFile.INIWriteValue(FilePath, "Machine", "Machine6Address", IPAddress.Parse(txtPLCAddress6.Text.Trim()).ToString());
  388. IniFile.INIWriteValue(FilePath, "Machine", "Machine7Address", IPAddress.Parse(txtPLCAddress7.Text.Trim()).ToString());
  389. IniFile.INIWriteValue(FilePath, "Machine", "Machine8Address", IPAddress.Parse(txtPLCAddress8.Text.Trim()).ToString());
  390. IniFile.INIWriteValue(FilePath, "Machine", "Machine9Address", IPAddress.Parse(txtPLCAddress9.Text.Trim()).ToString());
  391. IniFile.INIWriteValue(FilePath, "Machine", "PcAddress", IPAddress.Parse(txtPCAddress.Text.Trim()).ToString());
  392. IniFile.INIWriteValue(FilePath, "Machine", "MachinePort",numPLCPort.Value.ToString());
  393. MessageBox.Show("参数保存成功!");
  394. GlobalContext.UpdateData();
  395. //记录修改日志
  396. List<string> machineSetVlaue = new List<string>();
  397. machineSetVlaue.Add(rdbS1.Checked.ToString());
  398. machineSetVlaue.Add(rdbS2.Checked.ToString());
  399. machineSetVlaue.Add(rdbS3.Checked.ToString());
  400. machineSetVlaue.Add(rdbS4.Checked.ToString());
  401. machineSetVlaue.Add(rdbS5.Checked.ToString());
  402. machineSetVlaue.Add(rdbS6.Checked.ToString());
  403. machineSetVlaue.Add(rdbS7.Checked.ToString());
  404. machineSetVlaue.Add(rdbS8.Checked.ToString());
  405. machineSetVlaue.Add(rdbS9.Checked.ToString());
  406. machineSetVlaue.Add(txtPLCAddress1.Text.Trim());
  407. machineSetVlaue.Add(txtPLCAddress2.Text.Trim());
  408. machineSetVlaue.Add(txtPLCAddress3.Text.Trim());
  409. machineSetVlaue.Add(txtPLCAddress4.Text.Trim());
  410. machineSetVlaue.Add(txtPLCAddress5.Text.Trim());
  411. machineSetVlaue.Add(txtPLCAddress6.Text.Trim());
  412. machineSetVlaue.Add(txtPLCAddress7.Text.Trim());
  413. machineSetVlaue.Add(txtPLCAddress8.Text.Trim());
  414. machineSetVlaue.Add(txtPLCAddress9.Text.Trim());
  415. machineSetVlaue.Add(txtPCAddress.Text.Trim());
  416. machineSetVlaue.Add(numPLCPort.Value.ToString());
  417. String.Join(";", machineSetVlaue);
  418. OnMessage(LogType.Info, currentRole + "修改系统值[设备配置]为[" + String.Join(";", machineSetVlaue) + "]");
  419. }
  420. catch (Exception ex)
  421. {
  422. string str = ex.StackTrace;
  423. OnMessage(LogType.Error, "保存设备配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  424. }
  425. }
  426. /// <summary>
  427. /// 获取订单信息
  428. /// </summary>
  429. private void btnGetOrderInfo_Click(object sender, EventArgs e)
  430. {
  431. }
  432. //private void textBoxWC_KeyPress(object sender, KeyPressEventArgs e)
  433. //{
  434. // if (e.KeyChar == 13)
  435. // {
  436. // WorkOrderInfo workOrderInfo;
  437. // workOrderInfo = HttpUitls.GetWOData(textBoxWC.Text.Trim());
  438. // if (workOrderInfo != null)
  439. // {
  440. // textBoxWC.Text = workOrderInfo.sono;
  441. // textBoxBN.Text = workOrderInfo.splcode;
  442. // comboBoxProductModel.Text = workOrderInfo.prtno;
  443. // comboBoxKeyValue.Text = workOrderInfo.prodline;
  444. // }
  445. // else
  446. // {
  447. // textBoxWC.Text = string.Empty;
  448. // }
  449. // }
  450. //}
  451. /// <summary>
  452. /// 保存信息
  453. /// </summary>
  454. /// <param name="logType"></param>
  455. /// <param name="msg"></param>
  456. private void OnMessage(LogType logType, string msg)
  457. {
  458. MessageEvent?.Invoke(logType, msg);
  459. }
  460. }
  461. }