终端一体化运控平台
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

App.xaml.cs 13 KiB

2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. using BPASmartClient.AGV.Feedback;
  2. using BPASmartClient.CustomResource.Pages.Enums;
  3. using BPASmartClient.CustomResource.Pages.Model;
  4. using BPASmartClient.CustomResource.Pages.View;
  5. using BPASmartClient.Helper;
  6. using BPASmartClient.HubHelper;
  7. using FryPot_DosingSystem.Control;
  8. using FryPot_DosingSystem.Model;
  9. using Newtonsoft.Json;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Collections.ObjectModel;
  13. using System.Configuration;
  14. using System.Data;
  15. using System.IO;
  16. using System.Linq;
  17. using System.Net.Sockets;
  18. using System.Threading.Tasks;
  19. using System.Windows;
  20. namespace FryPot_DosingSystem
  21. {
  22. /// <summary>
  23. /// Interaction logic for App.xaml
  24. /// </summary>
  25. public partial class App : Application
  26. {
  27. public static Window MainWindow;
  28. protected override async void OnStartup(StartupEventArgs e)
  29. {
  30. base.OnStartup(e);
  31. SystemHelper.GetInstance.CreateDesktopShortcut();
  32. MenuInite();
  33. LoginDataInite();
  34. MainView mv = new MainView();
  35. LoginView lv = new LoginView();
  36. var res = lv.ShowDialog();
  37. if (res != null && res == true)
  38. {
  39. mv.Show();
  40. MessageNotify.GetInstance.ShowUserLog("用户登录");
  41. try
  42. {
  43. await Task.Run(() => { DeviceOperate deviceOperate = DeviceOperate.GetInstance; });
  44. }
  45. catch (Exception)
  46. {
  47. MessageNotify.GetInstance.ShowRunLog("下位机PLC连接失败,请检查无误后重启上位机");
  48. }
  49. //开启实时PLC数据读取
  50. DosingLogicControl logigControl = DosingLogicControl.GetInstance;//开启逻辑控制任务程序
  51. AlarmHelper<AlarmInfo>.Init();//报警实时监控
  52. HubHelper.GetInstance.Connect("172.16.12.100", 8089);
  53. }
  54. else
  55. mv.Close();
  56. MainWindow = mv;
  57. //HubHelper.GetInstance.Report = new Action<object>((o) =>
  58. //{
  59. // var res = JsonConvert.DeserializeObject<AGVToUpSystem>(o.ToString());
  60. //});
  61. //HubHelper.GetInstance.Upstreamrequest = new Action<object>((o) =>
  62. //{
  63. // var res = JsonConvert.DeserializeObject<Upstreamrequest>(o.ToString());
  64. //});
  65. //本地服务连接
  66. }
  67. protected override void OnExit(ExitEventArgs e)
  68. {
  69. base.OnExit(e);
  70. Json<RecipeManage>.Save();
  71. MessageNotify.GetInstance.LogSave();
  72. }
  73. private void MenuInite()
  74. {
  75. // NfcServer.GetInstance.Init(); //NFC刷卡
  76. #region 配方管理菜单
  77. ObservableCollection<SubMenumodel> RecipeManage = new ObservableCollection<SubMenumodel>();
  78. RecipeManage.Add(new SubMenumodel()
  79. {
  80. SubMenuName = "配方管理",
  81. SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
  82. AssemblyName = "FryPot_DosingSystem",
  83. ToggleWindowPath = "View.RecipeManageView"
  84. });
  85. RecipeManage.Add(new SubMenumodel()
  86. {
  87. SubMenuName = "配方下发",
  88. SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
  89. AssemblyName = "FryPot_DosingSystem",
  90. ToggleWindowPath = "View.RecipesSendDown"
  91. });
  92. MenuManage.GetInstance.menuModels.Add(new MenuModel()
  93. {
  94. MainMenuIcon = "&#xe683;",
  95. MainMenuName = "配方管理",
  96. Alias = "Recipe Management",
  97. MainMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
  98. subMenumodels = RecipeManage,
  99. });
  100. #endregion
  101. #region 消息日志
  102. ObservableCollection<SubMenumodel> InfoLog = new ObservableCollection<SubMenumodel>();
  103. InfoLog.Add(new SubMenumodel()
  104. {
  105. SubMenuName = "操作日志",
  106. SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.观察员 },
  107. AssemblyName = "BPASmartClient.CustomResource",
  108. ToggleWindowPath = "Pages.View.UserLogView"
  109. });
  110. InfoLog.Add(new SubMenumodel()
  111. {
  112. SubMenuName = "运行日志",
  113. SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.观察员 },
  114. AssemblyName = "BPASmartClient.CustomResource",
  115. ToggleWindowPath = "Pages.View.RunLogView"
  116. });
  117. InfoLog.Add(new SubMenumodel()
  118. {
  119. SubMenuName = "报警记录",
  120. SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.观察员 },
  121. AssemblyName = "BPASmartClient.CustomResource",
  122. ToggleWindowPath = "Pages.View.AlarmView"
  123. });
  124. InfoLog.Add(new SubMenumodel()
  125. {
  126. SubMenuName = "炒锅历史状态",
  127. SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.观察员 },
  128. AssemblyName = "FryPot_DosingSystem",
  129. ToggleWindowPath = "View.SqliteDataView"
  130. });
  131. MenuManage.GetInstance.menuModels.Add(new MenuModel()
  132. {
  133. MainMenuIcon = "&#xe668;",
  134. MainMenuName = "消息日志",
  135. Alias = "Message Log",
  136. MainMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
  137. subMenumodels = InfoLog,
  138. });
  139. #endregion
  140. #region 参数设置
  141. ObservableCollection<SubMenumodel> ParamSet = new ObservableCollection<SubMenumodel>();
  142. ParamSet.Add(new SubMenumodel()
  143. {
  144. SubMenuName = "PLC通讯设置",
  145. SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
  146. AssemblyName = "FryPot_DosingSystem",
  147. ToggleWindowPath = "View.DeviceListVIew"
  148. });
  149. ParamSet.Add(new SubMenumodel()
  150. {
  151. SubMenuName = "PLC变量配置",
  152. SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
  153. AssemblyName = "BPASmartClient.CustomResource",
  154. ToggleWindowPath = "Pages.View.VariableConfigView"
  155. });
  156. MenuManage.GetInstance.menuModels.Add(new MenuModel()
  157. {
  158. MainMenuIcon = "&#xe603;",
  159. MainMenuName = "参数设置",
  160. Alias = "Parameters Set",
  161. MainMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
  162. subMenumodels = ParamSet,
  163. });
  164. #endregion
  165. #region 硬件设备监控
  166. ObservableCollection<SubMenumodel> DeviceMonitor = new ObservableCollection<SubMenumodel>();
  167. //DeviceMonitor.Add(new SubMenumodel()
  168. //{
  169. // SubMenuName = "PLC通讯设置",
  170. // SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
  171. // AssemblyName = "FryPot_DosingSystem",
  172. // ToggleWindowPath = "View.DeviceListVIew"
  173. //});
  174. //DeviceMonitor.Add(new SubMenumodel()
  175. //{
  176. // SubMenuName = "PLC变量配置",
  177. // SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
  178. // AssemblyName = "BPASmartClient.CustomResource",
  179. // ToggleWindowPath = "Pages.View.VariableConfigView"
  180. //});
  181. DeviceMonitor.Add(new SubMenumodel()
  182. {
  183. SubMenuName = "滚筒线运行状态",
  184. SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
  185. AssemblyName = "FryPot_DosingSystem",
  186. ToggleWindowPath = "View.HardWareStatusView"
  187. });
  188. DeviceMonitor.Add(new SubMenumodel()
  189. {
  190. SubMenuName = "炒锅状态数据监控",
  191. SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
  192. AssemblyName = "FryPot_DosingSystem",
  193. ToggleWindowPath = "View.FryPotMonitorView"
  194. });
  195. DeviceMonitor.Add(new SubMenumodel()
  196. {
  197. SubMenuName = "AGV视图",
  198. SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
  199. AssemblyName = "FryPot_DosingSystem",
  200. ToggleWindowPath = "View.AgvView"
  201. });
  202. MenuManage.GetInstance.menuModels.Add(new MenuModel()
  203. {
  204. MainMenuIcon = "&#xe603;",
  205. MainMenuName = "设备监控",
  206. Alias = "Device Monitor",
  207. MainMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
  208. subMenumodels = DeviceMonitor,
  209. });
  210. #endregion
  211. #region 用户管理
  212. ObservableCollection<SubMenumodel> UserManager = new ObservableCollection<SubMenumodel>();
  213. UserManager.Add(new SubMenumodel()
  214. {
  215. SubMenuName = "用户登录",
  216. SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员, Permission.观察员, Permission.操作员 },
  217. AssemblyName = "BPASmartClient.CustomResource",
  218. ToggleWindowPath = "Pages.View.SubPagLoginView"
  219. });
  220. UserManager.Add(new SubMenumodel()
  221. {
  222. SubMenuName = "密码修改",
  223. SubMenuPermission = new Permission[] { Permission.管理员 },
  224. AssemblyName = "BPASmartClient.CustomResource",
  225. ToggleWindowPath = "Pages.View.PasswordChangeView"
  226. });
  227. UserManager.Add(new SubMenumodel()
  228. {
  229. SubMenuName = "用户管理",
  230. SubMenuPermission = new Permission[] { Permission.管理员 },
  231. AssemblyName = "BPASmartClient.CustomResource",
  232. ToggleWindowPath = "Pages.View.UserManageView"
  233. });
  234. UserManager.Add(new SubMenumodel()
  235. {
  236. SubMenuName = "NFC登录设置",
  237. SubMenuPermission = new Permission[] { Permission.管理员 },
  238. AssemblyName = "BPASmartClient.CustomResource",
  239. ToggleWindowPath = "Pages.View.NfcSetView"
  240. });
  241. MenuManage.GetInstance.menuModels.Add(new MenuModel()
  242. {
  243. MainMenuIcon = "&#xe66d;",
  244. MainMenuName = "用户管理",
  245. Alias = "User Management",
  246. MainMenuPermission = new Permission[] { Permission.管理员, Permission.技术员, Permission.观察员, Permission.操作员 },
  247. subMenumodels = UserManager,
  248. });
  249. #endregion
  250. #region 调试界面
  251. ObservableCollection<SubMenumodel> DebugManage = new ObservableCollection<SubMenumodel>();
  252. DebugManage.Add(new SubMenumodel()
  253. {
  254. SubMenuName = "单一流程调试",
  255. SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
  256. AssemblyName = "FryPot_DosingSystem",
  257. ToggleWindowPath = "View.DebugView"
  258. });
  259. #endregion
  260. MenuManage.GetInstance.menuModels.Add(new MenuModel()
  261. {
  262. MainMenuIcon = "&#xe683;",
  263. MainMenuName = "调试界面",
  264. Alias = "Debug Management",
  265. MainMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
  266. subMenumodels = DebugManage,
  267. });
  268. }
  269. private void LoginDataInite()
  270. {
  271. //Config.GetInstance.Init();//用户数据初始化
  272. Json<RecipeManage>.Read();
  273. }
  274. }
  275. }