AlarmConditionTable.cs 40 KB

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