AlarmConditionEditViewModel.cs 70 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744
  1. using Aitex.Core.RT.SCCore;
  2. using Caliburn.Micro;
  3. using Caliburn.Micro.Core;
  4. using MECF.Framework.Common.DataCenter;
  5. using MECF.Framework.Common.OperationCenter;
  6. using MECF.Framework.Common.RecipeCenter;
  7. using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
  8. using MECF.Framework.UI.Client.CenterViews.Dialogs;
  9. using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
  10. using MECF.Framework.UI.Client.ClientBase;
  11. using OpenSEMI.ClientBase;
  12. using System;
  13. using System.Collections.Generic;
  14. using System.Collections.ObjectModel;
  15. using System.IO;
  16. using System.Linq;
  17. using System.Text;
  18. using System.Windows;
  19. //using System.Windows.Forms;
  20. using System.Windows.Controls;
  21. using FurnaceUI.Client;
  22. using FurnaceUI.Models;
  23. using FurnaceUI.Views.Editors;
  24. using Aitex.Core.Util;
  25. using Aitex.Core.Common.DeviceData;
  26. using MECF.Framework.UI.Client.CenterViews.Parameter;
  27. using MECF.Framework.Common.ParameterCenter;
  28. using OpenSEMI.Ctrlib.Controls;
  29. using MECF.Framework.UI.Client.CenterViews.Editors.Sequence;
  30. using MECF.Framework.Common.Utilities;
  31. using MECF.Framework.Common.Jobs;
  32. namespace FurnaceUI.Views.Parameter
  33. {
  34. public class AlarmConditionEditViewModel : FurnaceUIViewModelBase
  35. {
  36. private UIElement _parent;
  37. public void SetParent(UIElement parent)
  38. {
  39. _parent = parent;
  40. }
  41. [Subscription("Scheduler.ControlJobList")]
  42. public List<ControlJobInfo> ControlJobs
  43. {
  44. get;
  45. set;
  46. }
  47. [Subscription("Scheduler.SecondPj")]
  48. public List<ProcessJobInfo> SecondPjList
  49. {
  50. get;
  51. set;
  52. }
  53. [Subscription("PM1.Status")]
  54. public string PM1EntityStatus { get; set; }
  55. private string _newPM1EntityStatus;
  56. public string NewPM1EntityStatus
  57. {
  58. get { return _newPM1EntityStatus; }
  59. set { _newPM1EntityStatus = value; NotifyOfPropertyChange("NewPM1EntityStatus"); }
  60. }
  61. public string RecipeType { get; set; }
  62. private readonly ParameterProvider _parameterProvider = new ParameterProvider();
  63. private Dictionary<string, ObservableCollection<ParameterTemplateColumnBase>> ParameterTemplate;
  64. public AlarmConditionParameterData CurrentParameter { get; set; } = new AlarmConditionParameterData();
  65. private ParameterFormatBuilder _columnBuilder = new ParameterFormatBuilder();
  66. private AlarmConditionTable _selectedParameterStep;
  67. public AlarmConditionTable SelectedParameterStep
  68. {
  69. get => _selectedParameterStep;
  70. set
  71. {
  72. if (value != null)
  73. {
  74. _selectedParameterStep = value;
  75. NotifyOfPropertyChange("SelectedParameterStep");
  76. }
  77. else
  78. {
  79. _selectedParameterStep = null;
  80. NotifyOfPropertyChange("SelectedParameterStep");
  81. }
  82. }
  83. }
  84. private AlarmConditionTable _copyParameterStep;
  85. public AlarmConditionTable CopyParameterStep
  86. {
  87. get => _copyParameterStep;
  88. set
  89. {
  90. _copyParameterStep = value;
  91. NotifyOfPropertyChange(nameof(CopyParameterStep));
  92. }
  93. }
  94. private bool _isCopyEnabled = false;
  95. public bool IsCopyEnabled
  96. {
  97. get => _isCopyEnabled;
  98. set
  99. {
  100. _isCopyEnabled = value;
  101. NotifyOfPropertyChange("IsCopyEnabled");
  102. }
  103. }
  104. private bool _prevStepOverwriteIsEnabled;
  105. public bool PrevStepOverwriteIsEnabled
  106. {
  107. get => _prevStepOverwriteIsEnabled;
  108. set
  109. {
  110. _prevStepOverwriteIsEnabled = value;
  111. NotifyOfPropertyChange("PrevStepOverwriteIsEnabled");
  112. }
  113. }
  114. private bool _prevStepInsertIsEnabled;
  115. public bool PrevStepInsertIsEnabled
  116. {
  117. get => _prevStepInsertIsEnabled;
  118. set
  119. {
  120. _prevStepInsertIsEnabled = value;
  121. NotifyOfPropertyChange("PrevStepInsertIsEnabled");
  122. }
  123. }
  124. private bool _prevStepItemIsEnabled;
  125. public bool PrevStepItemIsEnabled
  126. {
  127. get => _prevStepItemIsEnabled;
  128. set
  129. {
  130. _prevStepItemIsEnabled = value;
  131. NotifyOfPropertyChange("PrevStepItemIsEnabled");
  132. }
  133. }
  134. private bool _currStepDeleteIsEnabled;
  135. public bool CurrStepDeleteIsEnabled
  136. {
  137. get => _currStepDeleteIsEnabled;
  138. set
  139. {
  140. _currStepDeleteIsEnabled = value;
  141. NotifyOfPropertyChange("CurrStepDeleteIsEnabled");
  142. }
  143. }
  144. private bool _multStepsDeleteIsEnabled;
  145. public bool MultStepsDeleteIsEnabled
  146. {
  147. get => _multStepsDeleteIsEnabled;
  148. set
  149. {
  150. _multStepsDeleteIsEnabled = value;
  151. NotifyOfPropertyChange("MultStepsDeleteIsEnabled");
  152. }
  153. }
  154. private bool _settingButtonEnable;
  155. public bool SettingButtonEnable
  156. {
  157. get => _settingButtonEnable;
  158. set
  159. {
  160. _settingButtonEnable = value;
  161. NotifyOfPropertyChange("SettingButtonEnable");
  162. }
  163. }
  164. private string _eventSetting;
  165. public string EventSetting
  166. {
  167. get => _eventSetting;
  168. set
  169. {
  170. _eventSetting = value;
  171. NotifyOfPropertyChange("EventSetting");
  172. }
  173. }
  174. public bool IsEnable => CGlobal.ParameterEditViewEnable;//是否是View模式
  175. private bool _isEnableEdit = true;
  176. public bool IsEnableEdit
  177. {
  178. get => _isEnableEdit;
  179. set
  180. {
  181. _isEnableEdit = value;
  182. NotifyOfPropertyChange(nameof(IsEnableEdit));
  183. }
  184. }
  185. public string EditRecipeStepName { get; set; }
  186. public ObservableCollection<AlarmConditionHeaterTemp> CurrentHeaterTempList { get; set; } = new ObservableCollection<AlarmConditionHeaterTemp>();
  187. public ObservableCollection<AlarmConditionBoatTemp> CurrentBoatTempList { get; set; } = new ObservableCollection<AlarmConditionBoatTemp>();
  188. public ObservableCollection<AlarmConditionMFCDeviation> CurrentMFCDeviationList { get; set; } = new ObservableCollection<AlarmConditionMFCDeviation>();
  189. public ObservableCollection<AlarmConditionMFCOther> CurrentMFCOtherList { get; set; } = new ObservableCollection<AlarmConditionMFCOther>();
  190. public ObservableCollection<AlarmConditionPress> CurrentPressList { get; set; } = new ObservableCollection<AlarmConditionPress>();
  191. public ObservableCollection<AlarmConditionAUX> CurrentAUXList { get; set; } = new ObservableCollection<AlarmConditionAUX>();
  192. public ObservableCollection<AlarmConditionHWILK> CurrentHWILKList { get; set; } = new ObservableCollection<AlarmConditionHWILK>();
  193. public ObservableCollection<AlarmConditionHardSoft> CurrentHardSoftList { get; set; } = new ObservableCollection<AlarmConditionHardSoft>();
  194. public ObservableCollection<AlarmConditionDataBase> CurrentContDownList { get; set; } = new ObservableCollection<AlarmConditionDataBase>();
  195. public ObservableCollection<AlarmConditionLanLineDown> CurrentDeviceNetLineDownList { get; set; } = new ObservableCollection<AlarmConditionLanLineDown>();
  196. public ObservableCollection<AlarmConditionSensor> CurrentSensorList { get; set; } = new ObservableCollection<AlarmConditionSensor>();
  197. public ObservableCollection<AlarmConditionOther> CurrentOtherList { get; set; } = new ObservableCollection<AlarmConditionOther>();
  198. public string TempStringType = "Heater";
  199. public string MFCStringType = "Flow";
  200. public string RdoStringType = "Temp";
  201. public string ReturnString = "1:";
  202. public string _selectTableString = "";
  203. public void SetCmdIsEnabled()
  204. {
  205. if (CurrentParameter.Steps == null || CurrentParameter.Steps.Count == 0)
  206. {
  207. SelectedStepName = "";
  208. SelectedParameterStep = null;
  209. PrevStepOverwriteIsEnabled = false;
  210. PrevStepInsertIsEnabled = false;
  211. PrevStepItemIsEnabled = false;
  212. CurrStepDeleteIsEnabled = false;
  213. MultStepsDeleteIsEnabled = false;
  214. SettingButtonEnable = false;
  215. }
  216. }
  217. public int SelectedStepNo { get; set; }
  218. private string _selectedStepName;
  219. public string SelectedStepName
  220. {
  221. get
  222. {
  223. return _selectedStepName;
  224. }
  225. set
  226. {
  227. _selectedStepName = value;
  228. NotifyOfPropertyChange("SelectedStepName");
  229. }
  230. }
  231. private List<ConfigNode> _ConfigNodes = new List<ConfigNode>();
  232. public List<ConfigNode> ConfigNodes
  233. {
  234. get { return _ConfigNodes; }
  235. set { _ConfigNodes = value; NotifyOfPropertyChange(nameof(ConfigNodes)); }
  236. }
  237. public string ParameterType { get; set; }
  238. private Visibility _tempVisibility = Visibility.Visible;
  239. public Visibility TempVisibility
  240. {
  241. get => _tempVisibility;
  242. set
  243. {
  244. _tempVisibility = value;
  245. NotifyOfPropertyChange(nameof(TempVisibility));
  246. }
  247. }
  248. private Visibility _mFCVisibility = Visibility.Hidden;
  249. public Visibility MFCVisibility
  250. {
  251. get => _mFCVisibility;
  252. set
  253. {
  254. _mFCVisibility = value;
  255. NotifyOfPropertyChange(nameof(MFCVisibility));
  256. }
  257. }
  258. private Visibility _pressVisibility = Visibility.Hidden;
  259. public Visibility PressVisibility
  260. {
  261. get => _pressVisibility;
  262. set
  263. {
  264. _pressVisibility = value;
  265. NotifyOfPropertyChange(nameof(PressVisibility));
  266. }
  267. }
  268. private Visibility _aUXVisibility = Visibility.Hidden;
  269. public Visibility AUXVisibility
  270. {
  271. get => _aUXVisibility;
  272. set
  273. {
  274. _aUXVisibility = value;
  275. NotifyOfPropertyChange(nameof(AUXVisibility));
  276. }
  277. }
  278. private Visibility _hWILKVisibility = Visibility.Hidden;
  279. public Visibility HWILKVisibility
  280. {
  281. get => _hWILKVisibility;
  282. set
  283. {
  284. _hWILKVisibility = value;
  285. NotifyOfPropertyChange(nameof(HWILKVisibility));
  286. }
  287. }
  288. private Visibility _hardSoftVisibility = Visibility.Hidden;
  289. public Visibility HardSoftVisibility
  290. {
  291. get => _hardSoftVisibility;
  292. set
  293. {
  294. _hardSoftVisibility = value;
  295. NotifyOfPropertyChange(nameof(HardSoftVisibility));
  296. }
  297. }
  298. private Visibility _contDownVisibility = Visibility.Hidden;
  299. public Visibility ContDownVisibility
  300. {
  301. get => _contDownVisibility;
  302. set
  303. {
  304. _contDownVisibility = value;
  305. NotifyOfPropertyChange(nameof(ContDownVisibility));
  306. }
  307. }
  308. private Visibility _sensorVisibility = Visibility.Hidden;
  309. public Visibility SensorVisibility
  310. {
  311. get => _sensorVisibility;
  312. set
  313. {
  314. _sensorVisibility = value;
  315. NotifyOfPropertyChange(nameof(SensorVisibility));
  316. }
  317. }
  318. private Visibility _otherVisibility = Visibility.Hidden;
  319. public Visibility OtherVisibility
  320. {
  321. get => _otherVisibility;
  322. set
  323. {
  324. _otherVisibility = value;
  325. NotifyOfPropertyChange(nameof(OtherVisibility));
  326. }
  327. }
  328. private Visibility _tempMainHeaterVisibility = Visibility.Visible;
  329. public Visibility TempMainHeaterVisibility
  330. {
  331. get => _tempMainHeaterVisibility;
  332. set
  333. {
  334. _tempMainHeaterVisibility = value;
  335. NotifyOfPropertyChange(nameof(TempMainHeaterVisibility));
  336. }
  337. }
  338. private Visibility _tempBoatVisibility = Visibility.Hidden;
  339. public Visibility TempBoatVisibility
  340. {
  341. get => _tempBoatVisibility;
  342. set
  343. {
  344. _tempBoatVisibility = value;
  345. NotifyOfPropertyChange(nameof(TempBoatVisibility));
  346. }
  347. }
  348. private string SelectCommandName { get; set; }
  349. public string ResultParameterStr { get; set; }
  350. public AlarmConditionEditViewModel(string strPrefixPath, string strRecipeName, string permission = "")
  351. {
  352. _parameterProvider.GetParameterFormatXml(strPrefixPath);
  353. ParameterTemplate = _parameterProvider.GetGroupParameterTemplate();
  354. _columnBuilder.Build(strPrefixPath);
  355. CurrentParameter.PrefixPath = strPrefixPath;
  356. CurrentParameter.Name = strRecipeName;
  357. CurrentParameter.Permission = permission;
  358. }
  359. protected override void OnViewLoaded(object view)
  360. {
  361. base.OnViewLoaded(view);
  362. }
  363. protected override void OnActivate()
  364. {
  365. base.OnActivate();
  366. //InvokeClient.Instance.Service.DoOperation($"PM1.SetSensorRecipeOK", "");
  367. }
  368. protected override void OnDeactivate(bool close)
  369. {
  370. base.OnDeactivate(close);
  371. //InvokeClient.Instance.Service.DoOperation($"PM1.SetSensorPROCManualOK", "");
  372. }
  373. protected override void OnInitialize()
  374. {
  375. base.OnInitialize();
  376. // GetHeaderConfig();
  377. LoadData();
  378. LoadViewData();
  379. SetCmdIsEnabled();
  380. if (SelectedParameterStep.AUXList != null && SelectedParameterStep.AUXList.Count > 0)
  381. {
  382. string aUXUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.AUXAlarmCondtionUnit");
  383. if (aUXUnit != null)
  384. {
  385. SelectedParameterStep.AUXList.ToList().ForEach(s =>
  386. {
  387. s.AlertTempData.Unit = aUXUnit;
  388. s.AlarmTempData.Unit = aUXUnit;
  389. });
  390. }
  391. var scList = QueryDataClient.Instance.Service.GetConfigItemList();
  392. var auxList = scList.Where(a => a.Path.StartsWith("PM1.RecipeEditParameter.AUX.")).ToList();
  393. auxList = auxList.Where(a => a.PathName.EndsWith("Display")).ToList();
  394. for (int i = 0; i < SelectedParameterStep.AUXList.Count; i++)
  395. {
  396. if (i < auxList.Count)
  397. {
  398. SelectedParameterStep.AUXList[i].AUXName = (string)auxList[i].Value;
  399. }
  400. }
  401. }
  402. }
  403. private void LoadData()
  404. {
  405. var recipeContent = _parameterProvider.LoadParameter(CurrentParameter.PrefixPath, CurrentParameter.Name);
  406. if (string.IsNullOrEmpty(recipeContent))
  407. {
  408. if (!string.IsNullOrEmpty(RecipeType) && RecipeType.ToLower() == "process")
  409. {
  410. System.Windows.MessageBox.Show($"{CurrentParameter.PrefixPath}\\{CurrentParameter.Name} is empty, please confirm the file is valid.");
  411. }
  412. return;
  413. }
  414. CurrentParameter.TableNumber = _columnBuilder.TableNumber;
  415. CurrentParameter.ChamberType = _columnBuilder.ChamberType;
  416. CurrentParameter.InitData(CurrentParameter.PrefixPath, CurrentParameter.Name, recipeContent, "");
  417. }
  418. private void LoadViewData()
  419. {
  420. if (CurrentParameter.Steps != null && CurrentParameter.Steps.Count > 0)
  421. {
  422. SelectedStepName = CurrentParameter.Steps[0].Name;
  423. SelectedStepNo = CurrentParameter.Steps[0].StepNo;
  424. SelectTable(CurrentParameter.Steps[0]);
  425. }
  426. }
  427. private void RecipeGasPanelSettingViewModel_ChangedStepEvent(Step step)
  428. {
  429. SelectTable(step);
  430. }
  431. private void StepListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
  432. {
  433. var obj = sender;
  434. var eV = e;
  435. }
  436. public void SelectTable(object step)
  437. {
  438. if (step != null && step is AlarmConditionTable step1)
  439. {
  440. var SelectedStep = this.CurrentParameter.Steps.Where(x => x.StepNo == step1.StepNo).FirstOrDefault();
  441. SelectedStep.IsChecked = true;
  442. SelectedStepNo = step1.StepNo;
  443. string strName = step1.Name.Trim();
  444. SelectedStepName = strName;
  445. SelectedParameterStep = (AlarmConditionTable)SelectedStep;
  446. RdoCmdSelectTypeChecked(RdoStringType);
  447. //SelectedParameterStep = new TempPIDTable(CurrentParameter, SelectedStepNo);
  448. }
  449. SetCmdIsEnabled();
  450. }
  451. public void SelectTableChecked(object step)
  452. {
  453. RdoCmdSelectTableChecked(step);
  454. }
  455. public void RdoCmdSelectTableChecked(object step)
  456. {
  457. if (step != null && step is AlarmConditionTable step1)
  458. {
  459. var alarmConditionView = ((AlarmConditionEditView)((Window)GetView()).Content);
  460. alarmConditionView.StepListView.SelectedItem = step;
  461. SelectTable(step);
  462. }
  463. }
  464. public void StepListViewSelectionChanged(object sender, EventArgs e)
  465. {
  466. var temp = (ListView)sender;
  467. var step1 = ((ParameterTable)temp.SelectedItem);
  468. if (step1 != null)
  469. {
  470. step1.IsChecked = true;
  471. var SelectedStep = this.CurrentParameter.Steps.Where(x => x.StepNo == step1.StepNo).FirstOrDefault();
  472. SelectedStep.IsChecked = true;
  473. SelectedStepNo = step1.StepNo;
  474. string strName = step1.Name.Trim();
  475. SelectedStepName = strName;
  476. SelectedParameterStep = (AlarmConditionTable)SelectedStep;
  477. RdoCmdSelectTypeChecked(RdoStringType);
  478. //SelectedParameterStep = new TempPIDTable(CurrentParameter, SelectedStepNo);
  479. }
  480. SetCmdIsEnabled();
  481. }
  482. //public void SetValue(object sender, string isFullKeyboard = "")
  483. //{
  484. // string value = ((TextBox)sender).Text;
  485. // if (!string.IsNullOrEmpty(isFullKeyboard))
  486. // {
  487. // FullKeyboard fullKeyboard1 = new FullKeyboard("", value);
  488. // if ((bool)fullKeyboard1.ShowDialog())
  489. // {
  490. // ((TextBox)sender).Text = fullKeyboard1.ValueString;
  491. // }
  492. // }
  493. // else
  494. // {
  495. // NumberKeyboard fullKeyboard = new NumberKeyboard("", value);
  496. // if ((bool)fullKeyboard.ShowDialog())
  497. // {
  498. // ((TextBox)sender).Text = fullKeyboard.ValueString;
  499. // }
  500. // }
  501. //}
  502. public void StepEdit(string stepEditCmd)
  503. {
  504. var windowManager = IoC.Get<IWindowManager>();
  505. switch (stepEditCmd)
  506. {
  507. case "Append":
  508. CurrentParameter.Steps.Add(CurrentParameter.CreateStep());
  509. int TempSelectIndex = 0;
  510. SelectTable(CurrentParameter.Steps[TempSelectIndex]);
  511. break;
  512. case "InsertCopy":
  513. InsertCopyStep();
  514. break;
  515. case "OverWrite"://任何步骤的内容都可以覆盖到选定的步骤中
  516. OverWriteStep();
  517. break;
  518. case "PrevStepOverwrite"://用上一步的内容覆盖所选步骤
  519. PrevStepOverwriteStep();
  520. break;
  521. case "PrevStepInsert"://在选定步骤之前,插入带有前一步内容的新步骤。
  522. InsertPrevStep();
  523. break;
  524. case "PrevStepItem":
  525. break;
  526. case "MultStepsDelete":
  527. break;
  528. default:
  529. break;
  530. }
  531. }
  532. private void OverWriteStep()
  533. {
  534. var windowManager = IoC.Get<IWindowManager>();
  535. if (CurrentParameter == null) return;
  536. }
  537. private void PrevStepOverwriteStep()
  538. {
  539. int index = -1;
  540. index = SelectedParameterStep.StepNo;
  541. if (index > 1)
  542. {
  543. CurrentParameter.CloneStep(CurrentParameter.Steps.Where(x => x.StepNo == SelectedParameterStep.StepNo).FirstOrDefault(), CurrentParameter.Steps.Where(x => x.StepNo == SelectedParameterStep.StepNo - 1).FirstOrDefault());
  544. }
  545. }
  546. public void InsertPrevStep()
  547. {
  548. }
  549. public void InsertCopyStep()
  550. {
  551. var windowManager = IoC.Get<IWindowManager>();
  552. if (CurrentParameter == null) return;
  553. }
  554. public void SetHeaterTempIsCheck(string cmdType, object obj)
  555. {
  556. if (obj != null && obj is AlarmConditionHeaterTemp)
  557. {
  558. var tempHeater = (AlarmConditionHeaterTemp)obj;
  559. switch (cmdType)
  560. {
  561. case "Alert":
  562. tempHeater.AlertTempData.IsCheck = !tempHeater.AlertTempData.IsCheck;
  563. break;
  564. case "Alarm":
  565. tempHeater.AlarmTempData.IsCheck = !tempHeater.AlarmTempData.IsCheck;
  566. break;
  567. default:
  568. break;
  569. }
  570. }
  571. }
  572. public void SetTempBoatIsCheck(object obj)
  573. {
  574. if (obj != null && obj is AlarmConditionBoatTemp)
  575. {
  576. var boatTemp = (AlarmConditionBoatTemp)obj;
  577. boatTemp.IsCheck = !boatTemp.IsCheck;
  578. }
  579. }
  580. public void SetMFCIsCheck(string cmdType, object obj)
  581. {
  582. if (obj != null)
  583. if (obj is AlarmConditionMFCFlowDeviation)
  584. {
  585. var flowDeviation = (AlarmConditionMFCFlowDeviation)obj;
  586. switch (cmdType)
  587. {
  588. case "Alert":
  589. flowDeviation.AlertTempData.IsCheck = !flowDeviation.AlertTempData.IsCheck;
  590. break;
  591. case "Alarm":
  592. flowDeviation.AlarmTempData.IsCheck = !flowDeviation.AlarmTempData.IsCheck;
  593. break;
  594. default:
  595. break;
  596. }
  597. }
  598. else if (obj is AlarmConditionMFCOther)
  599. {
  600. var mFCOther = (AlarmConditionMFCOther)obj;
  601. //switch (cmdType)
  602. //{
  603. // case "Alert":
  604. // mFCOther.AlertTempData.IsCheck = !mFCOther.AlertTempData.IsCheck;
  605. // break;
  606. // case "Alarm":
  607. // mFCOther.AlarmTempData.IsCheck = !mFCOther.AlarmTempData.IsCheck;
  608. // break;
  609. // default:
  610. // break;
  611. //}
  612. }
  613. }
  614. public void SetPressIsCheck(string cmdType, object obj)
  615. {
  616. if (obj != null && obj is AlarmConditionPress)
  617. {
  618. var tempHeater = (AlarmConditionPress)obj;
  619. switch (cmdType)
  620. {
  621. case "Alert":
  622. tempHeater.AlertTempData.IsCheck = !tempHeater.AlertTempData.IsCheck;
  623. break;
  624. case "Alarm":
  625. tempHeater.AlarmTempData.IsCheck = !tempHeater.AlarmTempData.IsCheck;
  626. break;
  627. default:
  628. break;
  629. }
  630. }
  631. }
  632. public void SetAUXIsCheck(string cmdType, object obj)
  633. {
  634. if (obj != null && obj is AlarmConditionAUX)
  635. {
  636. var tempHeater = (AlarmConditionAUX)obj;
  637. switch (cmdType)
  638. {
  639. case "Alert":
  640. tempHeater.AlertTempData.IsCheck = !tempHeater.AlertTempData.IsCheck;
  641. break;
  642. case "Alarm":
  643. tempHeater.AlarmTempData.IsCheck = !tempHeater.AlarmTempData.IsCheck;
  644. break;
  645. default:
  646. break;
  647. }
  648. }
  649. }
  650. public void SetHWILKIsCheck(object obj)
  651. {
  652. if (obj != null && obj is AlarmConditionHWILK)
  653. {
  654. var hWILK = (AlarmConditionHWILK)obj;
  655. hWILK.IsCheck = !hWILK.IsCheck;
  656. }
  657. }
  658. public void SetHardSoftIsCheck(object obj)
  659. {
  660. if (obj != null)
  661. if (obj is AlarmConditionValveILK)
  662. {
  663. var valveILK = (AlarmConditionValveILK)obj;
  664. valveILK.IsCheck = !valveILK.IsCheck;
  665. }
  666. else if (obj is AlarmConditionTempControler)
  667. {
  668. var tempControler = (AlarmConditionTempControler)obj;
  669. tempControler.IsCheck = !tempControler.IsCheck;
  670. }
  671. else if (obj is AlarmConditionAPCControler)
  672. {
  673. var aPCControler = (AlarmConditionAPCControler)obj;
  674. aPCControler.IsCheck = !aPCControler.IsCheck;
  675. }
  676. else if (obj is AlarmConditionTransferError)
  677. {
  678. var transferError = (AlarmConditionTransferError)obj;
  679. transferError.IsCheck = !transferError.IsCheck;
  680. }
  681. else if (obj is AlarmConditionCLNAlarm)
  682. {
  683. var alarmConditionCLNError = (AlarmConditionCLNAlarm)obj;
  684. alarmConditionCLNError.IsCheck = !alarmConditionCLNError.IsCheck;
  685. }
  686. }
  687. public void SetContDownIsCheck(object obj)
  688. {
  689. if (obj != null)
  690. {
  691. if (obj is AlarmConditionSerialLineDown)
  692. {
  693. var serialLineDown = (AlarmConditionSerialLineDown)obj;
  694. serialLineDown.IsCheck = !serialLineDown.IsCheck;
  695. }
  696. else if (obj is AlarmConditionLanLineDown)
  697. {
  698. var lanLineDown = (AlarmConditionLanLineDown)obj;
  699. lanLineDown.IsCheck = !lanLineDown.IsCheck;
  700. }
  701. else if (obj is AlarmConditionDeviceNetLineDown)
  702. {
  703. var deviceNetLineDown = (AlarmConditionDeviceNetLineDown)obj;
  704. deviceNetLineDown.IsCheck = !deviceNetLineDown.IsCheck;
  705. }
  706. }
  707. }
  708. public void SetSensorIsCheck(string cmdType, object obj)
  709. {
  710. if (obj != null && obj is AlarmConditionSensor)
  711. {
  712. var sensor = (AlarmConditionSensor)obj;
  713. switch (cmdType)
  714. {
  715. case "Alert":
  716. sensor.AlertTempData.IsCheck = !sensor.AlertTempData.IsCheck;
  717. break;
  718. case "Alarm":
  719. sensor.AlarmTempData.IsCheck = !sensor.AlarmTempData.IsCheck;
  720. break;
  721. default:
  722. break;
  723. }
  724. }
  725. }
  726. public void SetOtherIsCheck(object obj)
  727. {
  728. if (obj != null && obj is AlarmConditionOther)
  729. {
  730. var other = (AlarmConditionOther)obj;
  731. other.IsCheck = !other.IsCheck;
  732. }
  733. }
  734. //public void TempSetClick(object sender)
  735. //{
  736. // string stSetValue = ShowNumberKeyboard(sender as Button, "");
  737. //}
  738. //public void RampSetClick(object sender)
  739. //{
  740. // string strSetRamp = ShowNumberKeyboard(sender as Button, "");
  741. //}
  742. //private string ShowNumberKeyboard(Control control, string defaultValue)
  743. //{
  744. // NumberKeyboard numberKeyboard = new NumberKeyboard("", defaultValue);
  745. // var point = control.PointFromScreen(new Point(0, 0));
  746. // double wx = SystemParameters.WorkArea.Width;
  747. // double hy = SystemParameters.WorkArea.Height;
  748. // if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < hy)
  749. // {
  750. // numberKeyboard.Top = -point.Y + control.ActualHeight + 5;
  751. // }
  752. // else
  753. // {
  754. // numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5;
  755. // }
  756. // if (-point.X + numberKeyboard.Width < wx)
  757. // {
  758. // numberKeyboard.Left = -point.X;
  759. // }
  760. // else
  761. // {
  762. // numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth);
  763. // }
  764. // if ((bool)numberKeyboard.ShowDialog())
  765. // return numberKeyboard.ValueString;
  766. // else
  767. // return "Cancel";
  768. //}
  769. public void TempTextClick(string type, object sender)
  770. {
  771. var windowManager = IoC.Get<IWindowManager>();
  772. switch (type)
  773. {
  774. case "Mode":
  775. RecipeTempModeViewModel recipeTempModeViewModel = new RecipeTempModeViewModel();
  776. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(recipeTempModeViewModel, null, "Temp Mode");
  777. break;
  778. case "Correct":
  779. TempOffsetTableViewModel tempOffsetTableViewModel = new TempOffsetTableViewModel();
  780. break;
  781. case "PID":
  782. TempOffsetTableViewModel tempOffsetTableViewModel1 = new TempOffsetTableViewModel();
  783. break;
  784. default:
  785. break;
  786. }
  787. }
  788. public void TempTextChanged(string type, object sender, object item)
  789. {
  790. if (!string.IsNullOrEmpty(type) && item != null && sender != null)
  791. {
  792. TempSetData tempData = (TempSetData)item;
  793. string value = ((TextBox)sender).Text;
  794. int stepNo = SelectedParameterStep.StepNo;
  795. var step = CurrentParameter.Steps.Where(x => x.StepNo == stepNo).FirstOrDefault();
  796. }
  797. }
  798. public void ParameterEdit(object cmdName, object value)
  799. {
  800. var windowManager = IoC.Get<IWindowManager>();
  801. switch ((string)cmdName)
  802. {
  803. case "RecipeName":
  804. break;
  805. case "StepName":
  806. break;
  807. default:
  808. break;
  809. }
  810. }
  811. private RecipeProvider _recipeProvider = new RecipeProvider();
  812. public void SelectCommandType(string cmdType)
  813. {
  814. switch (cmdType)
  815. {
  816. default:
  817. break;
  818. }
  819. }
  820. public void SelectedParameterCommand(string cmdType, string name, object obj)
  821. {
  822. if (obj is TextBox)
  823. {
  824. var txtEx = (TextBox)obj;
  825. ParameterCommandViewModel parameterCommandViewModel = new ParameterCommandViewModel();
  826. var windowManager = IoC.Get<IWindowManager>();
  827. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  828. if ((bool)rtn)
  829. {
  830. var step = SelectedParameterStep.HeaterTempList.Where(x => x.ZoneName == name).FirstOrDefault();
  831. switch (cmdType)
  832. {
  833. case "Alert":
  834. step.AlertTempData.ErrorCommand = parameterCommandViewModel.SelectCommand;
  835. break;
  836. case "Alarm":
  837. step.AlarmTempData.ErrorCommand = parameterCommandViewModel.SelectCommand;
  838. break;
  839. default:
  840. break;
  841. }
  842. }
  843. }
  844. }
  845. public void SelectedAlarmErrorParameterCommand(string cmdType, string name, object obj)
  846. {
  847. if (obj is TextBox)
  848. {
  849. var txtEx = (TextBox)obj;
  850. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  851. parameterCommandViewModel.SelectCommand = txtEx.Text;
  852. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  853. var windowManager = IoC.Get<IWindowManager>();
  854. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  855. if ((bool)rtn)
  856. {
  857. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  858. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  859. var step = SelectedParameterStep.HeaterTempList.Where(x => x.ZoneName == name).FirstOrDefault();
  860. switch (cmdType)
  861. {
  862. case "Alert":
  863. step.AlertTempData.ErrorCommand = SelectCommandName;
  864. break;
  865. case "Alarm":
  866. step.AlarmTempData.ErrorCommand = SelectCommandName;
  867. break;
  868. default:
  869. break;
  870. }
  871. }
  872. }
  873. }
  874. public void SelectedMFCFlowCommand(string cmdType, string name, object obj)
  875. {
  876. if (obj is TextBox)
  877. {
  878. var txtEx = (TextBox)obj;
  879. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  880. parameterCommandViewModel.SelectCommand = txtEx.Text;
  881. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  882. var windowManager = IoC.Get<IWindowManager>();
  883. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  884. if ((bool)rtn)
  885. {
  886. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  887. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  888. var mFCFlowDeviation = SelectedParameterStep.MFCFlowDeviationList.Where(x => x.MFCName == name).FirstOrDefault();
  889. switch (cmdType)
  890. {
  891. case "Alert":
  892. mFCFlowDeviation.AlertTempData.ErrorCommand = SelectCommandName;
  893. break;
  894. case "Alarm":
  895. mFCFlowDeviation.AlarmTempData.ErrorCommand = SelectCommandName;
  896. break;
  897. default:
  898. break;
  899. }
  900. }
  901. }
  902. }
  903. public void SelectedPressCommand(string cmdType, string name, object obj)
  904. {
  905. if (obj is TextBox)
  906. {
  907. var txtEx = (TextBox)obj;
  908. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  909. parameterCommandViewModel.SelectCommand = txtEx.Text;
  910. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  911. var windowManager = IoC.Get<IWindowManager>();
  912. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  913. if ((bool)rtn)
  914. {
  915. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  916. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  917. var press = SelectedParameterStep.PressList.Where(x => x.PressKindName == name).FirstOrDefault();
  918. switch (cmdType)
  919. {
  920. case "Alert":
  921. press.AlertTempData.ErrorCommand = SelectCommandName;
  922. break;
  923. case "Alarm":
  924. press.AlarmTempData.ErrorCommand = SelectCommandName;
  925. break;
  926. default:
  927. break;
  928. }
  929. }
  930. }
  931. }
  932. public void SelectedAUXCommand(string cmdType, string name, object obj)
  933. {
  934. if (obj is TextBox)
  935. {
  936. var txtEx = (TextBox)obj;
  937. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  938. parameterCommandViewModel.SelectCommand = txtEx.Text;
  939. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  940. var windowManager = IoC.Get<IWindowManager>();
  941. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  942. if ((bool)rtn)
  943. {
  944. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  945. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  946. var aux = SelectedParameterStep.AUXList.Where(x => x.AUXName == name).FirstOrDefault();
  947. switch (cmdType)
  948. {
  949. case "Alert":
  950. aux.AlertTempData.ErrorCommand = SelectCommandName;
  951. break;
  952. case "Alarm":
  953. aux.AlarmTempData.ErrorCommand = SelectCommandName;
  954. break;
  955. default:
  956. break;
  957. }
  958. }
  959. }
  960. }
  961. public void SelectedHWILKCommand(object obj, object txtObj)
  962. {
  963. var txtEx = (TextBox)txtObj;
  964. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  965. parameterCommandViewModel.SelectCommand = txtEx.Text;
  966. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  967. var windowManager = IoC.Get<IWindowManager>();
  968. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  969. if ((bool)rtn)
  970. {
  971. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  972. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  973. if (obj is AlarmConditionHWILK)
  974. {
  975. ((AlarmConditionHWILK)obj).ErrorCommand = SelectCommandName;
  976. }
  977. }
  978. }
  979. public void SelectedHardSoftCommand(object obj, object txtObj)
  980. {
  981. var txtEx = (TextBox)txtObj;
  982. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  983. parameterCommandViewModel.SelectCommand = txtEx.Text;
  984. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  985. var windowManager = IoC.Get<IWindowManager>();
  986. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  987. if ((bool)rtn)
  988. {
  989. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  990. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  991. if (obj is AlarmConditionValveILK)
  992. {
  993. ((AlarmConditionValveILK)obj).ErrorCommand = SelectCommandName;
  994. }
  995. else if (obj is AlarmConditionTempControler)
  996. {
  997. ((AlarmConditionTempControler)obj).ErrorCommand = SelectCommandName;
  998. }
  999. else if (obj is AlarmConditionAPCControler)
  1000. {
  1001. ((AlarmConditionAPCControler)obj).ErrorCommand = SelectCommandName;
  1002. }
  1003. else if (obj is AlarmConditionCLNAlarm)
  1004. {
  1005. ((AlarmConditionCLNAlarm)obj).ErrorCommand = SelectCommandName;
  1006. }
  1007. else if (obj is AlarmConditionTransferError)
  1008. {
  1009. ((AlarmConditionTransferError)obj).ErrorCommand = SelectCommandName;
  1010. }
  1011. }
  1012. }
  1013. public void SelectedContDownCommand(object obj, object txtObj)
  1014. {
  1015. var txtEx = (TextBox)txtObj;
  1016. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  1017. parameterCommandViewModel.SelectCommand = txtEx.Text;
  1018. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  1019. var windowManager = IoC.Get<IWindowManager>();
  1020. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  1021. if ((bool)rtn)
  1022. {
  1023. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  1024. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  1025. if (obj is AlarmConditionSerialLineDown)
  1026. {
  1027. ((AlarmConditionSerialLineDown)obj).ErrorCommand = SelectCommandName;
  1028. }
  1029. else if (obj is AlarmConditionLanLineDown)
  1030. {
  1031. ((AlarmConditionLanLineDown)obj).ErrorCommand = SelectCommandName;
  1032. }
  1033. else if (obj is AlarmConditionDeviceNetLineDown)
  1034. {
  1035. ((AlarmConditionDeviceNetLineDown)obj).ErrorCommand = SelectCommandName;
  1036. }
  1037. }
  1038. }
  1039. public void SelectedSensorCommand(string cmdType, string name, object obj)
  1040. {
  1041. if (obj is TextBox)
  1042. {
  1043. var txtEx = (TextBox)obj;
  1044. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  1045. parameterCommandViewModel.SelectCommand = txtEx.Text;
  1046. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  1047. var windowManager = IoC.Get<IWindowManager>();
  1048. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  1049. if ((bool)rtn)
  1050. {
  1051. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  1052. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  1053. var sensor = SelectedParameterStep.SensorList.FirstOrDefault(x => x.SensorName == name);
  1054. switch (cmdType)
  1055. {
  1056. case "Alert":
  1057. sensor.AlertTempData.ErrorCommand = SelectCommandName;
  1058. break;
  1059. case "Alarm":
  1060. sensor.AlarmTempData.ErrorCommand = SelectCommandName;
  1061. break;
  1062. default:
  1063. break;
  1064. }
  1065. }
  1066. }
  1067. }
  1068. public void SelectedOtherCommand(object obj, object txtObj)
  1069. {
  1070. var txtEx = (TextBox)txtObj;
  1071. AlarmErrorCommandViewModel parameterCommandViewModel = new AlarmErrorCommandViewModel();
  1072. parameterCommandViewModel.SelectCommand = txtEx.Text;
  1073. parameterCommandViewModel.ResultParameterStr = ResultParameterStr;
  1074. var windowManager = IoC.Get<IWindowManager>();
  1075. var rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(parameterCommandViewModel, null, "Command");
  1076. if ((bool)rtn)
  1077. {
  1078. ResultParameterStr = parameterCommandViewModel.ResultParameterStr;
  1079. SelectCommandName = ResultParameterStr != null ? $"{parameterCommandViewModel.SelectCommand} {ResultParameterStr}" : parameterCommandViewModel.SelectCommand;
  1080. if (obj is AlarmConditionOther)
  1081. {
  1082. ((AlarmConditionOther)obj).ErrorCommand = SelectCommandName;
  1083. }
  1084. }
  1085. }
  1086. public void ParameterSave()
  1087. {
  1088. var SelectedStep = this.CurrentParameter.Steps.Where(x => x.StepNo == SelectedStepNo).FirstOrDefault();
  1089. //RecipePermissionSelectViewModel dialog = new RecipePermissionSelectViewModel("Save recipe and permission", CurrentRecipe.RecipePermission);
  1090. //WindowManager wm = new WindowManager();
  1091. //bool? dialogReturn = wm.ShowDialog(dialog);
  1092. //if (!dialogReturn.HasValue || !dialogReturn.Value)
  1093. // return;
  1094. if (IsEnableEdit)
  1095. {
  1096. List<string> names = new List<string>();
  1097. string filmFormula = string.Empty;
  1098. ParameterTable step = CurrentParameter.Steps.Where(x => x.StepNo == SelectedParameterStep.StepNo).FirstOrDefault();
  1099. this.CurrentParameter.Revisor = BaseApp.Instance.UserContext.LoginName;
  1100. this.CurrentParameter.ReviseTime = DateTime.Now;
  1101. this.CurrentParameter.Level = this.LevelDisplay;
  1102. //this.CurrentRecipe.RecipePermission = dialog.RecipePermission;
  1103. // APC PressureUnit
  1104. if (CurrentParameter != null)
  1105. {
  1106. string aUXUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.AUXAlarmCondtionUnit");
  1107. if (aUXUnit != null)
  1108. {
  1109. CurrentParameter.Steps.ToList().ForEach(x => ((AlarmConditionTable)x).AUXList.ToList().ForEach(s =>
  1110. {
  1111. s.AlertTempData.Unit = aUXUnit;
  1112. s.AlarmTempData.Unit = aUXUnit;
  1113. }));
  1114. }
  1115. string mFCUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.MFCAlarmCondtionUnit");
  1116. if (mFCUnit != null)
  1117. {
  1118. CurrentParameter.Steps.ToList().ForEach(x => ((AlarmConditionTable)x).MFCFlowDeviationList.ToList().ForEach(s =>
  1119. {
  1120. s.AlertTempData.Unit = aUXUnit;
  1121. s.AlarmTempData.Unit = aUXUnit;
  1122. }));
  1123. }
  1124. string pressUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.APC.PressureUnit");
  1125. string angleUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.APC.AngleAlarmCondtionUnit");
  1126. if (!string.IsNullOrEmpty(pressUnit) && !string.IsNullOrEmpty(angleUnit))
  1127. {
  1128. CurrentParameter.Steps.ToList().ForEach(x => ((AlarmConditionTable)x).PressList.ToList().ForEach(s =>
  1129. {
  1130. if (s.PressKindName == "APC Angle")
  1131. {
  1132. s.AlertTempData.Unit = angleUnit;
  1133. s.AlarmTempData.Unit = angleUnit;
  1134. }
  1135. else
  1136. {
  1137. s.AlertTempData.Unit = pressUnit;
  1138. s.AlarmTempData.Unit = pressUnit;
  1139. }
  1140. }));
  1141. }
  1142. }
  1143. var result = this._parameterProvider.SaveParameter(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentParameter.GetXmlString());
  1144. if (result)
  1145. ((Window)GetView()).Close();
  1146. }
  1147. else
  1148. {
  1149. if (SelectedStepNo > 0)
  1150. {
  1151. if (string.IsNullOrEmpty(CurrentParameter.Name))
  1152. {
  1153. ReturnString = $"{SelectedStepNo}:";
  1154. }
  1155. else
  1156. {
  1157. ReturnString = $"{SelectedStepNo}:{SelectedStepName}";
  1158. }
  1159. }
  1160. this.TryClose(true);
  1161. }
  1162. }
  1163. public void ParameterDownload()
  1164. {
  1165. if (NewPM1EntityStatus.ToLower() != "idle")
  1166. {
  1167. DialogBox.ShowDialog(DialogButton.Yes, DialogType.INFO, " The device is not in the idle state!");
  1168. return;
  1169. }
  1170. var step = CurrentParameter.Steps.FirstOrDefault(x => x.IsChecked);
  1171. InvokeClient.Instance.Service.DoOperation($"PM1.SetAlarmConditionParameter", $"{CurrentParameter.Name}", step.StepNo);
  1172. }
  1173. public void ParameterUnload()
  1174. {
  1175. }
  1176. public void ParameterCopy()
  1177. {
  1178. if (SelectedParameterStep != null)
  1179. {
  1180. CopyParameterStep = (AlarmConditionTable)CloneUtil.CloneObject(SelectedParameterStep);
  1181. IsCopyEnabled = true;
  1182. }
  1183. }
  1184. public void ParameterPaste()
  1185. {
  1186. var tempStepNo = SelectedParameterStep.StepNo;
  1187. var getStep = CurrentParameter.Steps.ToList().FirstOrDefault(x => x.StepNo == SelectedParameterStep.StepNo);
  1188. getStep = (ParameterTable)CloneUtil.CloneObject(CopyParameterStep);
  1189. getStep.StepNo = tempStepNo;
  1190. var instIndex = 0;
  1191. if (SelectedParameterStep.StepNo > 0) instIndex = SelectedParameterStep.StepNo - 1;
  1192. CurrentParameter.Steps.RemoveAt(instIndex);
  1193. CurrentParameter.Steps.Insert(instIndex, getStep);
  1194. SelectedParameterStep = (AlarmConditionTable)getStep;
  1195. RdoCmdSelectTypeChecked(RdoStringType);
  1196. SetCmdIsEnabled();
  1197. }
  1198. public void ParameterCancel()
  1199. {
  1200. if (DialogBox.ShowDialog(DialogButton.Yes | DialogButton.No, DialogType.CONFIRM, " You confirm that you want to unsave the recipe and exit the interface?") == DialogButton.No)
  1201. return;
  1202. ((Window)GetView()).Close();
  1203. }
  1204. protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
  1205. {
  1206. base.InvokeAfterUpdateProperty(data);
  1207. if (CurrentParameter.Steps != null && CurrentParameter.Steps.Count > 0 && CheckValueChange(data))
  1208. {
  1209. //SelectStep(CurrentRecipe.Steps[EditRecipeStepNo]);
  1210. }
  1211. oldresult = data;
  1212. SetTubeStatus();
  1213. }
  1214. private void SetTubeStatus()
  1215. {
  1216. if (SecondPjList != null && SecondPjList.Count > 0 && SecondPjList.FirstOrDefault() != null && ControlJobs != null && ControlJobs.Count > 0)
  1217. {
  1218. var secondPj = SecondPjList.FirstOrDefault();
  1219. var actualPjName = ControlJobs.FirstOrDefault().ProcessJobNameList.FirstOrDefault();
  1220. if (secondPj.Name.Equals(actualPjName) && (int)secondPj.ProcessingState <= (int)EnumProcessingState.Processing)
  1221. {
  1222. NewPM1EntityStatus = "Process";
  1223. }
  1224. else
  1225. {
  1226. NewPM1EntityStatus = PM1EntityStatus;
  1227. }
  1228. }
  1229. else
  1230. {
  1231. NewPM1EntityStatus = PM1EntityStatus;
  1232. }
  1233. }
  1234. Dictionary<string, object> oldresult;
  1235. private bool CheckValueChange(Dictionary<string, object> result)
  1236. {
  1237. Dictionary<string, object> temp = result;
  1238. if (oldresult == null)
  1239. {
  1240. oldresult = result;
  1241. return true;
  1242. }
  1243. else
  1244. {
  1245. List<string> strkeys = new List<string>();
  1246. foreach (var key in result.Keys)
  1247. {
  1248. if (_subscribedKeys.Contains(key) && oldresult.ContainsKey(key) && result.ContainsKey(key))
  1249. {
  1250. if (result[key].GetType() == typeof(AITValveData) && ((AITValveData)oldresult[key]).VirtualFeedback != ((AITValveData)result[key]).VirtualFeedback)
  1251. {
  1252. return true;
  1253. }
  1254. else if (result[key].GetType() == typeof(AITMfcData) && ((AITMfcData)oldresult[key]).VirtualSetPoint != ((AITMfcData)result[key]).VirtualSetPoint)
  1255. {
  1256. return true;
  1257. }
  1258. else if (result[key].GetType() == typeof(bool) && (bool)oldresult[key] != (bool)result[key])
  1259. {
  1260. return true;
  1261. }
  1262. }
  1263. }
  1264. }
  1265. return false;
  1266. }
  1267. public void RdoCmdSelectTypeChecked(string cmd)
  1268. {
  1269. RdoStringType = cmd;
  1270. switch (cmd)
  1271. {
  1272. case "Temp":
  1273. SetShowGrid(AlarmConditionCmdType.Temp);
  1274. break;
  1275. case "MFC":
  1276. SetShowGrid(AlarmConditionCmdType.MFC);
  1277. break;
  1278. case "Press":
  1279. SetShowGrid(AlarmConditionCmdType.Press);
  1280. break;
  1281. case "AUX":
  1282. SetShowGrid(AlarmConditionCmdType.AUX);
  1283. break;
  1284. case "HWILK":
  1285. SetShowGrid(AlarmConditionCmdType.HWILK);
  1286. break;
  1287. case "HardSoft":
  1288. SetShowGrid(AlarmConditionCmdType.HardSoft);
  1289. break;
  1290. case "ContDown":
  1291. SetShowGrid(AlarmConditionCmdType.ContDown);
  1292. break;
  1293. case "Sensor":
  1294. SetShowGrid(AlarmConditionCmdType.Sensor);
  1295. break;
  1296. case "Other":
  1297. SetShowGrid(AlarmConditionCmdType.Other);
  1298. break;
  1299. default:
  1300. break;
  1301. }
  1302. }
  1303. public void RdoCmdSelectTempChecked(string cmd)
  1304. {
  1305. TempStringType = cmd;
  1306. switch (cmd)
  1307. {
  1308. case "Heater":
  1309. TempMainHeaterVisibility = Visibility.Visible;
  1310. CurrentHeaterTempList.Clear();
  1311. _selectedParameterStep.HeaterTempList.ToList().ForEach(x => CurrentHeaterTempList.Add(x));
  1312. TempBoatVisibility = Visibility.Hidden;
  1313. break;
  1314. case "Boat":
  1315. TempMainHeaterVisibility = Visibility.Hidden;
  1316. TempBoatVisibility = Visibility.Visible;
  1317. CurrentBoatTempList.Clear();
  1318. _selectedParameterStep.BoatTempList.ToList().ForEach(x => CurrentBoatTempList.Add(x));
  1319. break;
  1320. default:
  1321. break;
  1322. }
  1323. }
  1324. public void RdoCmdSelectMFCChecked(string cmd)
  1325. {
  1326. var alarmConditionView = ((AlarmConditionEditView)((Window)GetView()).Content);
  1327. MFCStringType = cmd;
  1328. if (SelectedParameterStep == null) return;
  1329. switch (cmd)
  1330. {
  1331. case "Flow":
  1332. CurrentMFCDeviationList.Clear();
  1333. string mFCUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.MFCAlarmCondtionUnit");
  1334. if (mFCUnit != null)
  1335. {
  1336. SelectedParameterStep.MFCFlowDeviationList.ToList().ForEach(s =>
  1337. {
  1338. s.AlertTempData.Unit = mFCUnit;
  1339. s.AlarmTempData.Unit = mFCUnit;
  1340. });
  1341. }
  1342. SelectedParameterStep.MFCFlowDeviationList.ToList().ForEach(x => CurrentMFCDeviationList.Add(x));
  1343. break;
  1344. case "Other":
  1345. CurrentMFCDeviationList.Clear();
  1346. SelectedParameterStep.MFCOtherList.ToList().ForEach(x => CurrentMFCDeviationList.Add(x));
  1347. break;
  1348. default:
  1349. break;
  1350. }
  1351. }
  1352. public void RdoCmdSelectHardSoftChecked(string cmd)
  1353. {
  1354. var alarmConditionView = ((AlarmConditionEditView)((Window)GetView()).Content);
  1355. if (SelectedParameterStep == null) return;
  1356. switch (cmd)
  1357. {
  1358. case "Valve":
  1359. CurrentHardSoftList.Clear();
  1360. SelectedParameterStep.ValveIlkList.ToList().ForEach(x => CurrentHardSoftList.Add(x));
  1361. break;
  1362. case "Temp":
  1363. CurrentHardSoftList.Clear();
  1364. SelectedParameterStep.TempControlerList.ToList().ForEach(x => CurrentHardSoftList.Add(x));
  1365. break;
  1366. case "APC":
  1367. CurrentHardSoftList.Clear();
  1368. SelectedParameterStep.APCControlerList.ToList().ForEach(x => CurrentHardSoftList.Add(x));
  1369. break;
  1370. case "Transfer":
  1371. CurrentHardSoftList.Clear();
  1372. SelectedParameterStep.TransferErrorList.ToList().ForEach(x => CurrentHardSoftList.Add(x));
  1373. break;
  1374. case "CLNAlarm":
  1375. CurrentHardSoftList.Clear();
  1376. SelectedParameterStep.CLNAlarmList.ToList().ForEach(x => CurrentHardSoftList.Add(x));
  1377. break;
  1378. default:
  1379. break;
  1380. }
  1381. }
  1382. public void RdoCmdSelectContDownChecked(string cmd)
  1383. {
  1384. var alarmConditionView = ((AlarmConditionEditView)((Window)GetView()).Content);
  1385. if (SelectedParameterStep == null) return;
  1386. switch (cmd)
  1387. {
  1388. case "SerialLineDown":
  1389. CurrentContDownList.Clear();
  1390. SelectedParameterStep.SerialLineDownList.ToList().ForEach(x => CurrentContDownList.Add(x));
  1391. break;
  1392. case "LanLineDown":
  1393. CurrentContDownList.Clear();
  1394. SelectedParameterStep.LanLineDownList.ToList().ForEach(x => CurrentContDownList.Add(x));
  1395. break;
  1396. //case "DeviceNetLineDown":
  1397. // alarmConditionView.ContDownLV.ItemsSource = SelectedParameterStep.DeviceNetLineDownList;
  1398. // break;
  1399. default:
  1400. break;
  1401. }
  1402. }
  1403. public void SetShowGrid(AlarmConditionCmdType cmdType)
  1404. {
  1405. switch (cmdType)
  1406. {
  1407. case AlarmConditionCmdType.Temp:
  1408. TempVisibility = Visibility.Visible;
  1409. if (TempStringType == "Heater")
  1410. {
  1411. CurrentHeaterTempList.Clear();
  1412. _selectedParameterStep.HeaterTempList.ToList().ForEach(x => CurrentHeaterTempList.Add(x));
  1413. }
  1414. else if (TempStringType == "Boat")
  1415. {
  1416. CurrentBoatTempList.Clear();
  1417. _selectedParameterStep.BoatTempList.ToList().ForEach(x => CurrentBoatTempList.Add(x));
  1418. }
  1419. MFCVisibility = Visibility.Hidden;
  1420. PressVisibility = Visibility.Hidden;
  1421. AUXVisibility = Visibility.Hidden;
  1422. HWILKVisibility = Visibility.Hidden;
  1423. HardSoftVisibility = Visibility.Hidden;
  1424. ContDownVisibility = Visibility.Hidden;
  1425. SensorVisibility = Visibility.Hidden;
  1426. OtherVisibility = Visibility.Hidden;
  1427. break;
  1428. case AlarmConditionCmdType.MFC:
  1429. TempVisibility = Visibility.Hidden;
  1430. MFCVisibility = Visibility.Visible;
  1431. switch (MFCStringType)
  1432. {
  1433. case "Flow":
  1434. CurrentMFCDeviationList.Clear();
  1435. string mFCUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.MFCAlarmCondtionUnit");
  1436. if (mFCUnit != null)
  1437. {
  1438. SelectedParameterStep.MFCFlowDeviationList.ToList().ForEach(s =>
  1439. {
  1440. s.AlertTempData.Unit = mFCUnit;
  1441. s.AlarmTempData.Unit = mFCUnit;
  1442. });
  1443. }
  1444. SelectedParameterStep.MFCFlowDeviationList.ToList().ForEach(x => CurrentMFCDeviationList.Add(x));
  1445. break;
  1446. case "Other":
  1447. CurrentMFCDeviationList.Clear();
  1448. SelectedParameterStep.MFCOtherList.ToList().ForEach(x => CurrentMFCDeviationList.Add(x));
  1449. break;
  1450. default:
  1451. break;
  1452. }
  1453. PressVisibility = Visibility.Hidden;
  1454. AUXVisibility = Visibility.Hidden;
  1455. HWILKVisibility = Visibility.Hidden;
  1456. HardSoftVisibility = Visibility.Hidden;
  1457. ContDownVisibility = Visibility.Hidden;
  1458. SensorVisibility = Visibility.Hidden;
  1459. OtherVisibility = Visibility.Hidden;
  1460. break;
  1461. case AlarmConditionCmdType.Press:
  1462. TempVisibility = Visibility.Hidden;
  1463. MFCVisibility = Visibility.Hidden;
  1464. PressVisibility = Visibility.Visible;
  1465. CurrentPressList.Clear();
  1466. SelectedParameterStep.PressList.ToList().ForEach(x => CurrentPressList.Add(x));
  1467. AUXVisibility = Visibility.Hidden;
  1468. HWILKVisibility = Visibility.Hidden;
  1469. HardSoftVisibility = Visibility.Hidden;
  1470. ContDownVisibility = Visibility.Hidden;
  1471. SensorVisibility = Visibility.Hidden;
  1472. OtherVisibility = Visibility.Hidden;
  1473. break;
  1474. case AlarmConditionCmdType.AUX:
  1475. TempVisibility = Visibility.Hidden;
  1476. MFCVisibility = Visibility.Hidden;
  1477. PressVisibility = Visibility.Hidden;
  1478. AUXVisibility = Visibility.Visible;
  1479. string aUXUnit = (string)QueryDataClient.Instance.Service.GetConfig("PM1.AUXAlarmCondtionUnit");
  1480. if (aUXUnit != null)
  1481. {
  1482. SelectedParameterStep.AUXList.ToList().ForEach(s =>
  1483. {
  1484. s.AlertTempData.Unit = aUXUnit;
  1485. s.AlarmTempData.Unit = aUXUnit;
  1486. });
  1487. }
  1488. CurrentAUXList.Clear();
  1489. SelectedParameterStep.AUXList.ToList().ForEach(x => CurrentAUXList.Add(x));
  1490. HWILKVisibility = Visibility.Hidden;
  1491. HardSoftVisibility = Visibility.Hidden;
  1492. ContDownVisibility = Visibility.Hidden;
  1493. SensorVisibility = Visibility.Hidden;
  1494. OtherVisibility = Visibility.Hidden;
  1495. break;
  1496. case AlarmConditionCmdType.HWILK:
  1497. TempVisibility = Visibility.Hidden;
  1498. MFCVisibility = Visibility.Hidden;
  1499. PressVisibility = Visibility.Hidden;
  1500. AUXVisibility = Visibility.Hidden;
  1501. HWILKVisibility = Visibility.Visible;
  1502. CurrentHWILKList.Clear();
  1503. SelectedParameterStep.HWILKList.ToList().ForEach(x => CurrentHWILKList.Add(x));
  1504. HardSoftVisibility = Visibility.Hidden;
  1505. ContDownVisibility = Visibility.Hidden;
  1506. SensorVisibility = Visibility.Hidden;
  1507. OtherVisibility = Visibility.Hidden;
  1508. break;
  1509. case AlarmConditionCmdType.HardSoft:
  1510. TempVisibility = Visibility.Hidden;
  1511. MFCVisibility = Visibility.Hidden;
  1512. PressVisibility = Visibility.Hidden;
  1513. AUXVisibility = Visibility.Hidden;
  1514. HWILKVisibility = Visibility.Hidden;
  1515. HardSoftVisibility = Visibility.Visible;
  1516. ContDownVisibility = Visibility.Hidden;
  1517. SensorVisibility = Visibility.Hidden;
  1518. OtherVisibility = Visibility.Hidden;
  1519. break;
  1520. case AlarmConditionCmdType.ContDown:
  1521. TempVisibility = Visibility.Hidden;
  1522. MFCVisibility = Visibility.Hidden;
  1523. PressVisibility = Visibility.Hidden;
  1524. AUXVisibility = Visibility.Hidden;
  1525. HWILKVisibility = Visibility.Hidden;
  1526. HardSoftVisibility = Visibility.Hidden;
  1527. ContDownVisibility = Visibility.Visible;
  1528. SensorVisibility = Visibility.Hidden;
  1529. OtherVisibility = Visibility.Hidden;
  1530. break;
  1531. case AlarmConditionCmdType.Sensor:
  1532. TempVisibility = Visibility.Hidden;
  1533. MFCVisibility = Visibility.Hidden;
  1534. PressVisibility = Visibility.Hidden;
  1535. AUXVisibility = Visibility.Hidden;
  1536. HWILKVisibility = Visibility.Hidden;
  1537. HardSoftVisibility = Visibility.Hidden;
  1538. ContDownVisibility = Visibility.Hidden;
  1539. SensorVisibility = Visibility.Visible;
  1540. OtherVisibility = Visibility.Hidden;
  1541. break;
  1542. case AlarmConditionCmdType.Other:
  1543. TempVisibility = Visibility.Hidden;
  1544. MFCVisibility = Visibility.Hidden;
  1545. PressVisibility = Visibility.Hidden;
  1546. AUXVisibility = Visibility.Hidden;
  1547. HWILKVisibility = Visibility.Hidden;
  1548. HardSoftVisibility = Visibility.Hidden;
  1549. ContDownVisibility = Visibility.Hidden;
  1550. SensorVisibility = Visibility.Hidden;
  1551. OtherVisibility = Visibility.Visible;
  1552. break;
  1553. default:
  1554. break;
  1555. }
  1556. }
  1557. public void AlarmTempDataUnitClick(TempData tempData)
  1558. {
  1559. TempData temp = tempData;
  1560. }
  1561. }
  1562. public enum AlarmConditionCmdType
  1563. {
  1564. Temp,
  1565. MFC,
  1566. Press,
  1567. AUX,
  1568. HWILK,
  1569. HardSoft,
  1570. ContDown,
  1571. Sensor,
  1572. Other
  1573. }
  1574. }