AlarmConditionTable.cs 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417
  1. using Caliburn.Micro.Core;
  2. using RecipeEditorLib.RecipeModel.Params;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Collections.ObjectModel;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace MECF.Framework.UI.Client.CenterViews.Parameter
  10. {
  11. public class AlarmConditionTable : ParameterTable
  12. {
  13. private ObservableCollection<AlarmConditionHeaterTemp> _heaterTempList = new ObservableCollection<AlarmConditionHeaterTemp>();
  14. public ObservableCollection<AlarmConditionHeaterTemp> HeaterTempList
  15. {
  16. get => _heaterTempList;
  17. set
  18. {
  19. _heaterTempList = value;
  20. NotifyOfPropertyChange(nameof(HeaterTempList));
  21. }
  22. }
  23. private ObservableCollection<AlarmConditionBoatTemp> _boatTempList = new ObservableCollection<AlarmConditionBoatTemp>();
  24. public ObservableCollection<AlarmConditionBoatTemp> BoatTempList
  25. {
  26. get => _boatTempList;
  27. set
  28. {
  29. _boatTempList = value;
  30. NotifyOfPropertyChange(nameof(BoatTempList));
  31. }
  32. }
  33. private ObservableCollection<AlarmConditionMFCFlowDeviation> _mFCFlowDeviationList = new ObservableCollection<AlarmConditionMFCFlowDeviation>();
  34. public ObservableCollection<AlarmConditionMFCFlowDeviation> MFCFlowDeviationList
  35. {
  36. get => _mFCFlowDeviationList;
  37. set
  38. {
  39. _mFCFlowDeviationList = value;
  40. NotifyOfPropertyChange(nameof(MFCFlowDeviationList));
  41. }
  42. }
  43. private ObservableCollection<AlarmConditionMFCOther> _mFCOtherList = new ObservableCollection<AlarmConditionMFCOther>();
  44. public ObservableCollection<AlarmConditionMFCOther> MFCOtherList
  45. {
  46. get => _mFCOtherList;
  47. set
  48. {
  49. _mFCOtherList = value;
  50. NotifyOfPropertyChange(nameof(MFCOtherList));
  51. }
  52. }
  53. private ObservableCollection<AlarmConditionPress> _pressList = new ObservableCollection<AlarmConditionPress>();
  54. public ObservableCollection<AlarmConditionPress> PressList
  55. {
  56. get => _pressList;
  57. set
  58. {
  59. _pressList = value;
  60. NotifyOfPropertyChange(nameof(PressList));
  61. }
  62. }
  63. private ObservableCollection<AlarmConditionAUX> _aUXList = new ObservableCollection<AlarmConditionAUX>();
  64. public ObservableCollection<AlarmConditionAUX> AUXList
  65. {
  66. get => _aUXList;
  67. set
  68. {
  69. _aUXList = value;
  70. NotifyOfPropertyChange(nameof(AUXList));
  71. }
  72. }
  73. private ObservableCollection<AlarmConditionHWILK> _hWILKList = new ObservableCollection<AlarmConditionHWILK>();
  74. public ObservableCollection<AlarmConditionHWILK> HWILKList
  75. {
  76. get => _hWILKList;
  77. set
  78. {
  79. _hWILKList = value;
  80. NotifyOfPropertyChange(nameof(HWILKList));
  81. }
  82. }
  83. private ObservableCollection<AlarmConditionValveILK> _valveIlkList = new ObservableCollection<AlarmConditionValveILK>();
  84. public ObservableCollection<AlarmConditionValveILK> ValveIlkList
  85. {
  86. get => _valveIlkList;
  87. set
  88. {
  89. _valveIlkList = value;
  90. NotifyOfPropertyChange(nameof(ValveIlkList));
  91. }
  92. }
  93. private ObservableCollection<AlarmConditionTempControler> _tempControlerList = new ObservableCollection<AlarmConditionTempControler>();
  94. public ObservableCollection<AlarmConditionTempControler> TempControlerList
  95. {
  96. get => _tempControlerList;
  97. set
  98. {
  99. _tempControlerList = value;
  100. NotifyOfPropertyChange(nameof(TempControlerList));
  101. }
  102. }
  103. private ObservableCollection<AlarmConditionAPCControler> _apcControlerList = new ObservableCollection<AlarmConditionAPCControler>();
  104. public ObservableCollection<AlarmConditionAPCControler> APCControlerList
  105. {
  106. get => _apcControlerList;
  107. set
  108. {
  109. _apcControlerList = value;
  110. NotifyOfPropertyChange(nameof(APCControlerList));
  111. }
  112. }
  113. private ObservableCollection<AlarmConditionCLNAlarm> _clnAlarmList = new ObservableCollection<AlarmConditionCLNAlarm>();
  114. public ObservableCollection<AlarmConditionCLNAlarm> CLNAlarmList
  115. {
  116. get => _clnAlarmList;
  117. set
  118. {
  119. _clnAlarmList = value;
  120. NotifyOfPropertyChange(nameof(CLNAlarmList));
  121. }
  122. }
  123. private ObservableCollection<AlarmConditionTransferError> _transferErrorList = new ObservableCollection<AlarmConditionTransferError>();
  124. public ObservableCollection<AlarmConditionTransferError> TransferErrorList
  125. {
  126. get => _transferErrorList;
  127. set
  128. {
  129. _transferErrorList = value;
  130. NotifyOfPropertyChange(nameof(TransferErrorList));
  131. }
  132. }
  133. private ObservableCollection<AlarmConditionSerialLineDown> _serialLineDownList = new ObservableCollection<AlarmConditionSerialLineDown>();
  134. public ObservableCollection<AlarmConditionSerialLineDown> SerialLineDownList
  135. {
  136. get => _serialLineDownList;
  137. set
  138. {
  139. _serialLineDownList = value;
  140. NotifyOfPropertyChange(nameof(SerialLineDownList));
  141. }
  142. }
  143. private ObservableCollection<AlarmConditionLanLineDown> _lanLineDownList = new ObservableCollection<AlarmConditionLanLineDown>();
  144. public ObservableCollection<AlarmConditionLanLineDown> LanLineDownList
  145. {
  146. get => _lanLineDownList;
  147. set
  148. {
  149. _lanLineDownList = value;
  150. NotifyOfPropertyChange(nameof(LanLineDownList));
  151. }
  152. }
  153. private ObservableCollection<AlarmConditionDeviceNetLineDown> _deviceNetLineDownList = new ObservableCollection<AlarmConditionDeviceNetLineDown>();
  154. public ObservableCollection<AlarmConditionDeviceNetLineDown> DeviceNetLineDownList
  155. {
  156. get => _deviceNetLineDownList;
  157. set
  158. {
  159. _deviceNetLineDownList = value;
  160. NotifyOfPropertyChange(nameof(DeviceNetLineDownList));
  161. }
  162. }
  163. private ObservableCollection<AlarmConditionSensor> _sensorList = new ObservableCollection<AlarmConditionSensor>();
  164. public ObservableCollection<AlarmConditionSensor> SensorList
  165. {
  166. get => _sensorList;
  167. set
  168. {
  169. _sensorList = value;
  170. NotifyOfPropertyChange(nameof(SensorList));
  171. }
  172. }
  173. private ObservableCollection<AlarmConditionOther> _otherList = new ObservableCollection<AlarmConditionOther>();
  174. public ObservableCollection<AlarmConditionOther> OtherList
  175. {
  176. get => _otherList;
  177. set
  178. {
  179. _otherList = value;
  180. NotifyOfPropertyChange(nameof(OtherList));
  181. }
  182. }
  183. public AlarmConditionTable() : base()
  184. {
  185. }
  186. public void SetHeaterTempData(string value)
  187. {
  188. if (string.IsNullOrEmpty(value)) return;
  189. string[] strHeaterTemp = value.Split('|');
  190. foreach (var item in strHeaterTemp)
  191. {
  192. if (string.IsNullOrEmpty(item)) continue;
  193. string[] subHeaterTemp = item.Split(';');
  194. var selectHeaterTemp = HeaterTempList.Where(x => x.ZoneName == subHeaterTemp[0]).FirstOrDefault();
  195. if (selectHeaterTemp != null)
  196. {
  197. selectHeaterTemp.SetStringValue(item);
  198. }
  199. }
  200. }
  201. public void SetBoatTempData(string value)
  202. {
  203. if (string.IsNullOrEmpty(value)) return;
  204. string[] strBoatTemp = value.Split('|');
  205. foreach (var item in strBoatTemp)
  206. {
  207. if (string.IsNullOrEmpty(item)) continue;
  208. string[] subBoatTemp = item.Split(',');
  209. var selectBoatTemp = BoatTempList.Where(x => x.BoatMotion == subBoatTemp[0]).FirstOrDefault();
  210. if (selectBoatTemp != null)
  211. {
  212. selectBoatTemp.SetStringValue(item);
  213. }
  214. }
  215. }
  216. public void SetMFCFlowDeviationData(string value)
  217. {
  218. if (string.IsNullOrEmpty(value)) return;
  219. string[] strFlowDeviation = value.Split('|');
  220. foreach (var item in strFlowDeviation)
  221. {
  222. if (string.IsNullOrEmpty(item)) continue;
  223. string[] subFlowDeviation = item.Split(';');
  224. var selectFlowDeviation = MFCFlowDeviationList.Where(x => x.MFCName == subFlowDeviation[1]).FirstOrDefault();
  225. if (selectFlowDeviation != null)
  226. {
  227. selectFlowDeviation.SetStringValue(item);
  228. }
  229. }
  230. }
  231. public void SetPressData(string value)
  232. {
  233. if (string.IsNullOrEmpty(value)) return;
  234. string[] strPress = value.Split('|');
  235. int indexNo = 1;
  236. foreach (var item in strPress)
  237. {
  238. if (string.IsNullOrEmpty(item)) continue;
  239. string[] subPress = item.Split(';');
  240. AlarmConditionPress selectPress = null;
  241. if (subPress[0] == "0")
  242. {
  243. selectPress = PressList.Where(x => x.Index == indexNo).FirstOrDefault();
  244. }
  245. else
  246. {
  247. selectPress = PressList.Where(x => x.Index.ToString() == subPress[0]).FirstOrDefault();
  248. }
  249. indexNo++;
  250. if (selectPress != null)
  251. {
  252. selectPress.SetStringValue(item);
  253. }
  254. }
  255. }
  256. public void SetAUXData(string value)
  257. {
  258. if (string.IsNullOrEmpty(value)) return;
  259. string[] strAUX = value.Split('|');
  260. foreach (var item in strAUX)
  261. {
  262. if (string.IsNullOrEmpty(item)) continue;
  263. string[] subAUX = item.Split(';');
  264. var selectAUX = AUXList.Where(x => x.Index.ToString() == subAUX[0]).FirstOrDefault();
  265. if (selectAUX != null)
  266. {
  267. selectAUX.SetStringValue(item);
  268. }
  269. }
  270. }
  271. public void SetHWILKData(string value)
  272. {
  273. if (string.IsNullOrEmpty(value)) return;
  274. string[] strHWILK = value.Split('|');
  275. foreach (var item in strHWILK)
  276. {
  277. if (string.IsNullOrEmpty(item)) continue;
  278. string[] subHWILK = item.Split(',');
  279. var selectHWILK = HWILKList.Where(x => x.InterLockName == subHWILK[1]).FirstOrDefault();
  280. if (selectHWILK != null)
  281. {
  282. selectHWILK.SetStringValue(item);
  283. }
  284. }
  285. }
  286. public void SetValveIlkData(string value)
  287. {
  288. if (string.IsNullOrEmpty(value)) return;
  289. string[] strValveIlk = value.Split('|');
  290. foreach (var item in strValveIlk)
  291. {
  292. if (string.IsNullOrEmpty(item)) continue;
  293. string[] subValveIlk = item.Split(',');
  294. var selectValveIlk = ValveIlkList.Where(x => x.InterLockName == subValveIlk[1]).FirstOrDefault();
  295. if (selectValveIlk != null)
  296. {
  297. selectValveIlk.SetStringValue(item);
  298. }
  299. }
  300. }
  301. public void SetTempControlerData(string value)
  302. {
  303. if (string.IsNullOrEmpty(value)) return;
  304. string[] strTempControler = value.Split('|');
  305. foreach (var item in strTempControler)
  306. {
  307. if (string.IsNullOrEmpty(item)) continue;
  308. string[] subTempControler = item.Split(',');
  309. var selectTempControler = TempControlerList.Where(x => x.InterLockName == subTempControler[1]).FirstOrDefault();
  310. if (selectTempControler != null)
  311. {
  312. selectTempControler.SetStringValue(item);
  313. }
  314. }
  315. }
  316. public void SetAPCControlerData(string value)
  317. {
  318. if (string.IsNullOrEmpty(value)) return;
  319. string[] strAPCControler = value.Split('|');
  320. foreach (var item in strAPCControler)
  321. {
  322. if (string.IsNullOrEmpty(item)) continue;
  323. string[] subAPCControler = item.Split(',');
  324. var selectAPCControler = APCControlerList.Where(x => x.InterLockName == subAPCControler[1]).FirstOrDefault();
  325. if (selectAPCControler != null)
  326. {
  327. selectAPCControler.SetStringValue(item);
  328. }
  329. }
  330. }
  331. public void SetCLNAlarmListData(string value)
  332. {
  333. if (string.IsNullOrEmpty(value)) return;
  334. string[] strCLNAlarm = value.Split('|');
  335. foreach (var item in strCLNAlarm)
  336. {
  337. if (string.IsNullOrEmpty(item)) continue;
  338. string[] subCLNAlarm = item.Split(',');
  339. var selectCLNAlarm = CLNAlarmList.Where(x => x.InterLockName == subCLNAlarm[1]).FirstOrDefault();
  340. if (selectCLNAlarm != null)
  341. {
  342. selectCLNAlarm.SetStringValue(item);
  343. }
  344. }
  345. }
  346. public void SetTransferErrorData(string value)
  347. {
  348. if (string.IsNullOrEmpty(value)) return;
  349. string[] strTransferError = value.Split('|');
  350. foreach (var item in strTransferError)
  351. {
  352. if (string.IsNullOrEmpty(item)) continue;
  353. string[] subTransferError = item.Split(',');
  354. var selectTransferError = TransferErrorList.Where(x => x.InterLockName == subTransferError[1]).FirstOrDefault();
  355. if (selectTransferError != null)
  356. {
  357. selectTransferError.SetStringValue(item);
  358. }
  359. }
  360. }
  361. public void SetSerialLineDownData(string value)
  362. {
  363. if (string.IsNullOrEmpty(value)) return;
  364. string[] strSerialLineDown = value.Split('|');
  365. foreach (var item in strSerialLineDown)
  366. {
  367. if (string.IsNullOrEmpty(item)) continue;
  368. string[] subSerialLineDown = item.Split(',');
  369. var selectSerialLineDown = SerialLineDownList.FirstOrDefault(x => x.InterLockName == subSerialLineDown[1]);
  370. if (selectSerialLineDown != null)
  371. {
  372. selectSerialLineDown.SetStringValue(item);
  373. }
  374. }
  375. }
  376. public void SetLanLineDownData(string value)
  377. {
  378. if (string.IsNullOrEmpty(value)) return;
  379. string[] strSerialLineDown = value.Split('|');
  380. foreach (var item in strSerialLineDown)
  381. {
  382. if (string.IsNullOrEmpty(item)) continue;
  383. string[] subSerialLineDown = item.Split(',');
  384. var selectSerialLineDown = LanLineDownList.FirstOrDefault(x => x.InterLockName == subSerialLineDown[1]);
  385. if (selectSerialLineDown != null)
  386. {
  387. selectSerialLineDown.SetStringValue(item);
  388. }
  389. }
  390. }
  391. public void SetDeviceNetLineDownData(string value)
  392. {
  393. if (string.IsNullOrEmpty(value)) return;
  394. string[] strDeviceNetLineDown = value.Split('|');
  395. foreach (var item in strDeviceNetLineDown)
  396. {
  397. if (string.IsNullOrEmpty(item)) continue;
  398. string[] subDeviceNetLineDown = item.Split(',');
  399. var selectDeviceNetLineDown = DeviceNetLineDownList.FirstOrDefault(x => x.InterLockName == subDeviceNetLineDown[1]);
  400. if (selectDeviceNetLineDown != null)
  401. {
  402. selectDeviceNetLineDown.SetStringValue(item);
  403. }
  404. }
  405. }
  406. public void SetSensorData(string value)
  407. {
  408. if (string.IsNullOrEmpty(value)) return;
  409. string[] strSensor = value.Split('|');
  410. foreach (var item in strSensor)
  411. {
  412. if (string.IsNullOrEmpty(item)) continue;
  413. string[] subSensor = item.Split(',');
  414. var selectSensor = SensorList.Where(x => x.SensorName == subSensor[1]).FirstOrDefault();
  415. if (selectSensor != null)
  416. {
  417. selectSensor.SetStringValue(item);
  418. }
  419. }
  420. }
  421. public void SetOtherData(string value)
  422. {
  423. if (string.IsNullOrEmpty(value)) return;
  424. string[] strOther = value.Split('|');
  425. foreach (var item in strOther)
  426. {
  427. if (string.IsNullOrEmpty(item)) continue;
  428. string[] subOther = item.Split(',');
  429. var selectOther = OtherList.Where(x => x.InterLockName == subOther[1]).FirstOrDefault();
  430. if (selectOther != null)
  431. {
  432. selectOther.SetStringValue(item);
  433. }
  434. }
  435. }
  436. }
  437. public class AlarmConditionDataBase : PropertyChangedBase
  438. {
  439. private int _index;
  440. public int Index
  441. {
  442. get => _index;
  443. set
  444. {
  445. _index = value;
  446. NotifyOfPropertyChange(nameof(Index));
  447. }
  448. }
  449. private string _interLockName;
  450. public string InterLockName
  451. {
  452. get => _interLockName;
  453. set
  454. {
  455. _interLockName = value;
  456. NotifyOfPropertyChange(nameof(InterLockName));
  457. }
  458. }
  459. private CheckType _type;
  460. public CheckType Type
  461. {
  462. get => _type;
  463. set
  464. {
  465. _type = value;
  466. NotifyOfPropertyChange(nameof(Type));
  467. }
  468. }
  469. private bool _isCheck;
  470. public bool IsCheck
  471. {
  472. get => _isCheck;
  473. set
  474. {
  475. _isCheck = value;
  476. NotifyOfPropertyChange(nameof(IsCheck));
  477. }
  478. }
  479. private string _errorCommand;
  480. public string ErrorCommand
  481. {
  482. get => _errorCommand;
  483. set
  484. {
  485. _errorCommand = value;
  486. NotifyOfPropertyChange(nameof(ErrorCommand));
  487. }
  488. }
  489. public override string ToString()
  490. {
  491. List<string> rtnList = new List<string>();
  492. rtnList.Add(Index.ToString());
  493. rtnList.Add(InterLockName);
  494. rtnList.Add(Type.ToString());
  495. rtnList.Add(IsCheck.ToString());
  496. rtnList.Add(ErrorCommand);
  497. return string.Join(",", rtnList.ToArray());
  498. }
  499. public virtual bool SetStringValue(string value)
  500. {
  501. return true;
  502. }
  503. }
  504. public class AlarmConditionHeaterTemp : PropertyChangedBase
  505. {
  506. private string _zoneName;
  507. public string ZoneName
  508. {
  509. get => _zoneName;
  510. set
  511. {
  512. _zoneName = value;
  513. NotifyOfPropertyChange(nameof(ZoneName));
  514. }
  515. }
  516. private TempData _alertTempData;
  517. public TempData AlertTempData
  518. {
  519. get => _alertTempData;
  520. set
  521. {
  522. _alertTempData = value;
  523. NotifyOfPropertyChange(nameof(AlertTempData));
  524. }
  525. }
  526. private TempData _alarmTempData;
  527. public TempData AlarmTempData
  528. {
  529. get => _alarmTempData;
  530. set
  531. {
  532. _alarmTempData = value;
  533. NotifyOfPropertyChange(nameof(AlarmTempData));
  534. }
  535. }
  536. public override string ToString()
  537. {
  538. return $"{ZoneName};{AlertTempData.ToString()};{AlarmTempData.ToString()}";
  539. }
  540. public bool SetStringValue(string value)
  541. {
  542. if (string.IsNullOrEmpty(value) || value.Split(';').Length != 3) return false;
  543. var list = value.Split(';');
  544. AlertTempData.SetStringValue(list[1]);
  545. AlarmTempData.SetStringValue(list[2]);
  546. return true;
  547. }
  548. }
  549. public class AlarmConditionBoatTemp : PropertyChangedBase
  550. {
  551. private string _boatMotion;
  552. public string BoatMotion
  553. {
  554. get => _boatMotion;
  555. set
  556. {
  557. _boatMotion = value;
  558. NotifyOfPropertyChange(nameof(BoatMotion));
  559. }
  560. }
  561. private CheckType _type = CheckType.Alarm;
  562. public CheckType Type
  563. {
  564. get => _type;
  565. set
  566. {
  567. _type = value;
  568. NotifyOfPropertyChange(nameof(Type));
  569. }
  570. }
  571. private bool _isCheck = false;
  572. public bool IsCheck
  573. {
  574. get => _isCheck;
  575. set
  576. {
  577. _isCheck = value;
  578. NotifyOfPropertyChange(nameof(IsCheck));
  579. }
  580. }
  581. private DoubleParam _highLimit;
  582. public DoubleParam HighLimit
  583. {
  584. get => _highLimit;
  585. set
  586. {
  587. _highLimit = value;
  588. NotifyOfPropertyChange(nameof(HighLimit));
  589. }
  590. }
  591. private string _unit;
  592. public string Unit
  593. {
  594. get => _unit;
  595. set
  596. {
  597. _unit = value;
  598. NotifyOfPropertyChange(nameof(Unit));
  599. }
  600. }
  601. public override string ToString()
  602. {
  603. List<string> rtnList = new List<string>();
  604. rtnList.Add(BoatMotion);
  605. rtnList.Add(Type.ToString());
  606. rtnList.Add(IsCheck.ToString());
  607. if (HighLimit == null)
  608. {
  609. rtnList.Add("");
  610. }
  611. else
  612. {
  613. rtnList.Add(HighLimit.Value);
  614. }
  615. rtnList.Add(Unit);
  616. return string.Join(",", rtnList.ToArray());
  617. }
  618. public bool SetStringValue(string value)
  619. {
  620. if (string.IsNullOrEmpty(value)) return false;
  621. if (!value.Contains(",") || value.Split(',').Length != 5) return false;
  622. var strArray = value.Split(',');
  623. BoatMotion = strArray[0];
  624. Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[1]);
  625. IsCheck = bool.Parse(strArray[2]);
  626. if (HighLimit != null)
  627. {
  628. HighLimit.Value = strArray[3];
  629. }
  630. Unit = strArray[4];
  631. return true;
  632. }
  633. }
  634. public class AlarmConditionMFCDeviation : PropertyChangedBase
  635. {
  636. private int _index;
  637. public int Index
  638. {
  639. get => _index;
  640. set
  641. {
  642. _index = value;
  643. NotifyOfPropertyChange(nameof(Index));
  644. }
  645. }
  646. private string _mFCName;
  647. public string MFCName
  648. {
  649. get => _mFCName;
  650. set
  651. {
  652. _mFCName = value;
  653. NotifyOfPropertyChange(nameof(MFCName));
  654. }
  655. }
  656. private TempData _alertTempData;
  657. public TempData AlertTempData
  658. {
  659. get => _alertTempData;
  660. set
  661. {
  662. _alertTempData = value;
  663. NotifyOfPropertyChange(nameof(AlertTempData));
  664. }
  665. }
  666. private TempData _alarmTempData;
  667. public TempData AlarmTempData
  668. {
  669. get => _alarmTempData;
  670. set
  671. {
  672. _alarmTempData = value;
  673. NotifyOfPropertyChange(nameof(AlarmTempData));
  674. }
  675. }
  676. public override string ToString()
  677. {
  678. string[] strArray = new string[]
  679. {
  680. Index.ToString(),
  681. MFCName,
  682. AlertTempData.ToString(),
  683. AlarmTempData.ToString()
  684. };
  685. return string.Join(";", strArray);
  686. }
  687. public bool SetStringValue(string value)
  688. {
  689. if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;
  690. var list = value.Split(';');
  691. Index = Convert.ToInt32(list[0]);
  692. MFCName = list[1];
  693. AlertTempData.SetStringValue(list[2]);
  694. AlarmTempData.SetStringValue(list[3]);
  695. return true;
  696. }
  697. }
  698. public class AlarmConditionMFCFlowDeviation : AlarmConditionMFCDeviation
  699. {
  700. }
  701. public class AlarmConditionMFCOther : AlarmConditionMFCDeviation
  702. { }
  703. public class AlarmConditionPress : PropertyChangedBase
  704. {
  705. private int _index;
  706. public int Index
  707. {
  708. get => _index;
  709. set
  710. {
  711. _index = value;
  712. NotifyOfPropertyChange(nameof(Index));
  713. }
  714. }
  715. private string _pressKindName;
  716. public string PressKindName
  717. {
  718. get => _pressKindName;
  719. set
  720. {
  721. _pressKindName = value;
  722. NotifyOfPropertyChange(nameof(PressKindName));
  723. }
  724. }
  725. private TempData _alertTempData;
  726. public TempData AlertTempData
  727. {
  728. get => _alertTempData;
  729. set
  730. {
  731. _alertTempData = value;
  732. NotifyOfPropertyChange(nameof(AlertTempData));
  733. }
  734. }
  735. private TempData _alarmTempData;
  736. public TempData AlarmTempData
  737. {
  738. get => _alarmTempData;
  739. set
  740. {
  741. _alarmTempData = value;
  742. NotifyOfPropertyChange(nameof(AlarmTempData));
  743. }
  744. }
  745. public override string ToString()
  746. {
  747. string[] strArray = new string[]
  748. {
  749. Index.ToString(),
  750. PressKindName,
  751. AlertTempData.ToString(),
  752. AlarmTempData.ToString()
  753. };
  754. return string.Join(";", strArray);
  755. }
  756. public bool SetStringValue(string value)
  757. {
  758. if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;
  759. var list = value.Split(';');
  760. Index = Convert.ToInt32(list[0]);
  761. PressKindName = list[1];
  762. AlertTempData.SetStringValue(list[2]);
  763. AlarmTempData.SetStringValue(list[3]);
  764. return true;
  765. }
  766. }
  767. public class AlarmConditionAUX : PropertyChangedBase
  768. {
  769. private int _index;
  770. public int Index
  771. {
  772. get => _index;
  773. set
  774. {
  775. _index = value;
  776. NotifyOfPropertyChange(nameof(Index));
  777. }
  778. }
  779. private string _aUXName;
  780. public string AUXName
  781. {
  782. get => _aUXName;
  783. set
  784. {
  785. _aUXName = value;
  786. NotifyOfPropertyChange(nameof(AUXName));
  787. }
  788. }
  789. private TempData _alertTempData;
  790. public TempData AlertTempData
  791. {
  792. get => _alertTempData;
  793. set
  794. {
  795. _alertTempData = value;
  796. NotifyOfPropertyChange(nameof(AlertTempData));
  797. }
  798. }
  799. private TempData _alarmTempData;
  800. public TempData AlarmTempData
  801. {
  802. get => _alarmTempData;
  803. set
  804. {
  805. _alarmTempData = value;
  806. NotifyOfPropertyChange(nameof(AlarmTempData));
  807. }
  808. }
  809. public override string ToString()
  810. {
  811. string[] strArray = new string[]
  812. {
  813. Index.ToString(),
  814. AUXName,
  815. AlertTempData.ToString(),
  816. AlarmTempData.ToString()
  817. };
  818. return string.Join(";", strArray);
  819. }
  820. public bool SetStringValue(string value)
  821. {
  822. if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;
  823. var list = value.Split(';');
  824. Index = Convert.ToInt32(list[0]);
  825. AUXName = list[1];
  826. AlertTempData.SetStringValue(list[2]);
  827. AlarmTempData.SetStringValue(list[3]);
  828. return true;
  829. }
  830. }
  831. public class AlarmConditionHWILK : PropertyChangedBase
  832. {
  833. private int _index;
  834. public int Index
  835. {
  836. get => _index;
  837. set
  838. {
  839. _index = value;
  840. NotifyOfPropertyChange(nameof(Index));
  841. }
  842. }
  843. private string _interLockName;
  844. public string InterLockName
  845. {
  846. get => _interLockName;
  847. set
  848. {
  849. _interLockName = value;
  850. NotifyOfPropertyChange(nameof(InterLockName));
  851. }
  852. }
  853. private CheckType _type;
  854. public CheckType Type
  855. {
  856. get => _type;
  857. set
  858. {
  859. _type = value;
  860. NotifyOfPropertyChange(nameof(Type));
  861. }
  862. }
  863. private bool _isCheck;
  864. public bool IsCheck
  865. {
  866. get => _isCheck;
  867. set
  868. {
  869. _isCheck = value;
  870. NotifyOfPropertyChange(nameof(IsCheck));
  871. }
  872. }
  873. private string _errorCommand;
  874. public string ErrorCommand
  875. {
  876. get => _errorCommand;
  877. set
  878. {
  879. _errorCommand = value;
  880. NotifyOfPropertyChange(nameof(ErrorCommand));
  881. }
  882. }
  883. public override string ToString()
  884. {
  885. List<string> rtnList = new List<string>();
  886. rtnList.Add(Index.ToString());
  887. rtnList.Add(InterLockName);
  888. rtnList.Add(Type.ToString());
  889. rtnList.Add(IsCheck.ToString());
  890. rtnList.Add(ErrorCommand);
  891. return string.Join(",", rtnList.ToArray());
  892. }
  893. public bool SetStringValue(string value)
  894. {
  895. if (string.IsNullOrEmpty(value)) return false;
  896. if (!value.Contains(",") || value.Split(',').Length != 5) return false;
  897. var strArray = value.Split(',');
  898. Index = Convert.ToInt32(strArray[0]);
  899. InterLockName = strArray[1];
  900. Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);
  901. IsCheck = bool.Parse(strArray[3]);
  902. ErrorCommand = strArray[4];
  903. return true;
  904. }
  905. }
  906. public class AlarmConditionHardSoft : PropertyChangedBase
  907. {
  908. private int _index;
  909. public int Index
  910. {
  911. get => _index;
  912. set
  913. {
  914. _index = value;
  915. NotifyOfPropertyChange(nameof(Index));
  916. }
  917. }
  918. private string _interLockName;
  919. public string InterLockName
  920. {
  921. get => _interLockName;
  922. set
  923. {
  924. _interLockName = value;
  925. NotifyOfPropertyChange(nameof(InterLockName));
  926. }
  927. }
  928. private CheckType _type;
  929. public CheckType Type
  930. {
  931. get => _type;
  932. set
  933. {
  934. _type = value;
  935. NotifyOfPropertyChange(nameof(Type));
  936. }
  937. }
  938. private bool _isCheck;
  939. public bool IsCheck
  940. {
  941. get => _isCheck;
  942. set
  943. {
  944. _isCheck = value;
  945. NotifyOfPropertyChange(nameof(IsCheck));
  946. }
  947. }
  948. private string _errorCommand;
  949. public string ErrorCommand
  950. {
  951. get => _errorCommand;
  952. set
  953. {
  954. _errorCommand = value;
  955. NotifyOfPropertyChange(nameof(ErrorCommand));
  956. }
  957. }
  958. public override string ToString()
  959. {
  960. List<string> rtnList = new List<string>();
  961. rtnList.Add(Index.ToString());
  962. rtnList.Add(InterLockName);
  963. rtnList.Add(Type.ToString());
  964. rtnList.Add(IsCheck.ToString());
  965. rtnList.Add(ErrorCommand);
  966. return string.Join(",", rtnList.ToArray());
  967. }
  968. public bool SetStringValue(string value)
  969. {
  970. if (string.IsNullOrEmpty(value)) return false;
  971. if (!value.Contains(",") || value.Split(',').Length != 5) return false;
  972. var strArray = value.Split(',');
  973. Index = Convert.ToInt32(strArray[0]);
  974. InterLockName = strArray[1];
  975. Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);
  976. IsCheck = bool.Parse(strArray[3]);
  977. ErrorCommand = strArray[4];
  978. return true;
  979. }
  980. }
  981. public class AlarmConditionValveILK : AlarmConditionHardSoft
  982. {
  983. }
  984. public class AlarmConditionTempControler : AlarmConditionHardSoft
  985. {
  986. }
  987. public class AlarmConditionAPCControler : AlarmConditionHardSoft
  988. {
  989. }
  990. public class AlarmConditionCLNAlarm : AlarmConditionHardSoft
  991. {
  992. }
  993. public class AlarmConditionTransferError : AlarmConditionHardSoft
  994. {
  995. }
  996. public class AlarmConditionSerialLineDown : AlarmConditionDataBase
  997. {
  998. public override bool SetStringValue(string value)
  999. {
  1000. if (string.IsNullOrEmpty(value)) return false;
  1001. if (!value.Contains(",") || value.Split(',').Length != 5) return false;
  1002. var strArray = value.Split(',');
  1003. Index = Convert.ToInt32(strArray[0]);
  1004. InterLockName = strArray[1];
  1005. Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);
  1006. IsCheck = bool.Parse(strArray[3]);
  1007. ErrorCommand = strArray[4];
  1008. return true;
  1009. }
  1010. }
  1011. public class AlarmConditionLanLineDown : AlarmConditionDataBase
  1012. {
  1013. public override bool SetStringValue(string value)
  1014. {
  1015. if (string.IsNullOrEmpty(value)) return false;
  1016. if (!value.Contains(",") || value.Split(',').Length != 5) return false;
  1017. var strArray = value.Split(',');
  1018. Index = Convert.ToInt32(strArray[0]);
  1019. InterLockName = strArray[1];
  1020. Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);
  1021. IsCheck = bool.Parse(strArray[3]);
  1022. ErrorCommand = strArray[4];
  1023. return true;
  1024. }
  1025. }
  1026. public class AlarmConditionDeviceNetLineDown : AlarmConditionDataBase
  1027. {
  1028. public override bool SetStringValue(string value)
  1029. {
  1030. if (string.IsNullOrEmpty(value)) return false;
  1031. if (!value.Contains(",") || value.Split(',').Length != 5) return false;
  1032. var strArray = value.Split(',');
  1033. Index = Convert.ToInt32(strArray[0]);
  1034. InterLockName = strArray[1];
  1035. Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);
  1036. IsCheck = bool.Parse(strArray[3]);
  1037. ErrorCommand = strArray[4];
  1038. return true;
  1039. }
  1040. }
  1041. public class AlarmConditionSensor : PropertyChangedBase
  1042. {
  1043. private int _index;
  1044. public int Index
  1045. {
  1046. get => _index;
  1047. set
  1048. {
  1049. _index = value;
  1050. NotifyOfPropertyChange(nameof(Index));
  1051. }
  1052. }
  1053. private string _sensorName;
  1054. public string SensorName
  1055. {
  1056. get => _sensorName;
  1057. set
  1058. {
  1059. _sensorName = value;
  1060. NotifyOfPropertyChange(nameof(SensorName));
  1061. }
  1062. }
  1063. private TempData _alertTempData;
  1064. public TempData AlertTempData
  1065. {
  1066. get => _alertTempData;
  1067. set
  1068. {
  1069. _alertTempData = value;
  1070. NotifyOfPropertyChange(nameof(AlertTempData));
  1071. }
  1072. }
  1073. private TempData _alarmTempData;
  1074. public TempData AlarmTempData
  1075. {
  1076. get => _alarmTempData;
  1077. set
  1078. {
  1079. _alarmTempData = value;
  1080. NotifyOfPropertyChange(nameof(AlarmTempData));
  1081. }
  1082. }
  1083. public override string ToString()
  1084. {
  1085. string[] strArray = new string[]
  1086. {
  1087. Index.ToString(),
  1088. SensorName,
  1089. AlertTempData.ToString(),
  1090. AlarmTempData.ToString()
  1091. };
  1092. return string.Join(";", strArray);
  1093. }
  1094. public bool SetStringValue(string value)
  1095. {
  1096. if (string.IsNullOrEmpty(value) || value.Split(';').Length != 4) return false;
  1097. var list = value.Split(';');
  1098. Index = Convert.ToInt32(list[0]);
  1099. SensorName = list[1];
  1100. AlertTempData.SetStringValue(list[2]);
  1101. AlarmTempData.SetStringValue(list[3]);
  1102. return true;
  1103. }
  1104. }
  1105. public class AlarmConditionOther : AlarmConditionDataBase
  1106. {
  1107. public override bool SetStringValue(string value)
  1108. {
  1109. if (string.IsNullOrEmpty(value)) return false;
  1110. if (!value.Contains(",") || value.Split(',').Length != 5) return false;
  1111. var strArray = value.Split(',');
  1112. Index = Convert.ToInt32(strArray[0]);
  1113. InterLockName = strArray[1];
  1114. Type = (CheckType)Enum.Parse(typeof(CheckType), strArray[2]);
  1115. IsCheck = bool.Parse(strArray[3]);
  1116. ErrorCommand = strArray[4];
  1117. return true;
  1118. }
  1119. }
  1120. public class TempData : PropertyChangedBase
  1121. {
  1122. private CheckType _type;
  1123. public CheckType Type
  1124. {
  1125. get => _type;
  1126. set
  1127. {
  1128. _type = value;
  1129. NotifyOfPropertyChange(nameof(Type));
  1130. }
  1131. }
  1132. private bool _isCheck;
  1133. public bool IsCheck
  1134. {
  1135. get => _isCheck;
  1136. set
  1137. {
  1138. _isCheck = value;
  1139. NotifyOfPropertyChange(nameof(IsCheck));
  1140. }
  1141. }
  1142. private DoubleParam _devHigh;
  1143. public DoubleParam DevHigh
  1144. {
  1145. get => _devHigh;
  1146. set
  1147. {
  1148. _devHigh = value;
  1149. NotifyOfPropertyChange(nameof(DevHigh));
  1150. }
  1151. }
  1152. private DoubleParam _devLow;
  1153. public DoubleParam DevLow
  1154. {
  1155. get => _devLow;
  1156. set
  1157. {
  1158. _devLow = value;
  1159. NotifyOfPropertyChange(nameof(DevLow));
  1160. }
  1161. }
  1162. private string _unit;
  1163. public string Unit
  1164. {
  1165. get => _unit;
  1166. set
  1167. {
  1168. _unit = value;
  1169. NotifyOfPropertyChange(nameof(Unit));
  1170. }
  1171. }
  1172. private DoubleParam _delayTime;
  1173. public DoubleParam DelayTime
  1174. {
  1175. get => _delayTime;
  1176. set
  1177. {
  1178. _delayTime = value;
  1179. NotifyOfPropertyChange(nameof(_delayTime));
  1180. }
  1181. }
  1182. private DoubleParam _time;
  1183. public DoubleParam Time
  1184. {
  1185. get => _time;
  1186. set
  1187. {
  1188. _time = value;
  1189. NotifyOfPropertyChange(nameof(Time));
  1190. }
  1191. }
  1192. private string _errorCommand;
  1193. public string ErrorCommand
  1194. {
  1195. get => _errorCommand;
  1196. set
  1197. {
  1198. _errorCommand = value;
  1199. NotifyOfPropertyChange(nameof(ErrorCommand));
  1200. }
  1201. }
  1202. public override string ToString()
  1203. {
  1204. string[] rtnString = new string[]
  1205. {
  1206. Type.ToString(),
  1207. IsCheck.ToString(),
  1208. DevHigh.Value,
  1209. DevLow.Value,
  1210. Unit,
  1211. Time.Value,
  1212. ErrorCommand,
  1213. DelayTime.Value,
  1214. };
  1215. return string.Join(",", rtnString);
  1216. }
  1217. public bool SetStringValue(string value)
  1218. {
  1219. if (string.IsNullOrEmpty(value)) return false;
  1220. string[] listStr = value.Split(',');
  1221. if (listStr.Length == 7 || listStr.Length == 8)
  1222. {
  1223. IsCheck = Convert.ToBoolean(listStr[1]);
  1224. DevHigh.Value = listStr[2];
  1225. DevLow.Value = listStr[3];
  1226. Unit = listStr[4];
  1227. float time = 0;
  1228. float.TryParse(listStr[5], out time);
  1229. Time.Value = time.ToString("f1");
  1230. ErrorCommand = listStr[6];
  1231. if (listStr.Length == 8)
  1232. {
  1233. float delayTime = 0;
  1234. float.TryParse(listStr[7], out delayTime);
  1235. DelayTime.Value = delayTime.ToString("f1");
  1236. }
  1237. }
  1238. return true;
  1239. }
  1240. }
  1241. public enum CheckType
  1242. {
  1243. Alert,
  1244. Alarm
  1245. }
  1246. }