TemperatureViewModel.cs 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Aitex.Core.Util;
  5. using Aitex.Core.Common.DeviceData;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using FurnaceUI.Models;
  10. using Caliburn.Micro;
  11. using Caliburn.Micro.Core;
  12. using System.Windows.Controls;
  13. using MECF.Framework.UI.Client.CenterViews.Dialogs;
  14. using FurnaceUI.Views.Editors;
  15. using OpenSEMI.ClientBase;
  16. using MECF.Framework.Common.OperationCenter;
  17. using FurnaceUI.Client;
  18. using MECF.Framework.Common.DataCenter;
  19. namespace FurnaceUI.Views.Operations
  20. {
  21. public class DDCModel
  22. {
  23. public DDCModel(string channel)
  24. {
  25. Channel = channel;
  26. }
  27. public string Channel { get; set; }
  28. public string SetValue { get; set; }
  29. public string TargetValue { get; set; }
  30. public string ActValue { get; set; }
  31. public string DevValue { get; set; }
  32. public string UpRate { get; set; }
  33. public string DownRate { get; set; }
  34. public string Power { get; set; }
  35. public string P { get; set; }
  36. public string I { get; set; }
  37. public string D { get; set; }
  38. public bool IsPVBreak { get; set; }
  39. public bool IsTempErr { get; set; }
  40. }
  41. public class TemperatureViewModel : FurnaceUIViewModelBase
  42. {
  43. public bool IsManagerPermission { get; set; } = false;
  44. public bool IsLspMode { get; set; } = false;
  45. private TemperatureView _view;
  46. protected override void OnViewLoaded(object view)
  47. {
  48. base.OnViewLoaded(view);
  49. _view = (TemperatureView)view;
  50. }
  51. public double URange = 9.9;
  52. public double DevU => HeaterUData.FeedBack - HeaterUData.SetPoint;
  53. public double TCDevU => HeaterUData.HeaterPV - HeaterUData.OverTemp;
  54. public double PositiveULength
  55. {
  56. get
  57. {
  58. if (HeaterUData.SetPoint - HeaterUData.FeedBack <= 0)
  59. {
  60. return 0;
  61. }
  62. else if (HeaterUData.SetPoint - HeaterUData.FeedBack <= URange)
  63. {
  64. return ((HeaterUData.SetPoint - HeaterUData.FeedBack) / URange) * 150;
  65. }
  66. return 300;
  67. }
  68. }
  69. public double NegativeULength
  70. {
  71. get
  72. {
  73. if (HeaterUData.SetPoint - HeaterUData.FeedBack >= 0)
  74. {
  75. return 0;
  76. }
  77. else if (HeaterUData.SetPoint - HeaterUData.FeedBack >= -URange)
  78. {
  79. return ((-(HeaterUData.SetPoint - HeaterUData.FeedBack)) / URange) * 150;
  80. }
  81. return 300;
  82. }
  83. }
  84. public double DevCU => HeaterCUData.FeedBack - HeaterCUData.SetPoint;
  85. public double TCDevCU => HeaterCUData.HeaterPV - HeaterCUData.OverTemp;
  86. public double CURange = 9.9;
  87. public double PositiveCULength
  88. {
  89. get
  90. {
  91. if (HeaterCUData.SetPoint - HeaterCUData.FeedBack <= 0)
  92. {
  93. return 0;
  94. }
  95. else if (HeaterCUData.SetPoint - HeaterCUData.FeedBack <= CURange)
  96. {
  97. return ((HeaterCUData.SetPoint - HeaterCUData.FeedBack) / CURange) * 150;
  98. }
  99. return 300;
  100. }
  101. }
  102. public double NegativeCULength
  103. {
  104. get
  105. {
  106. if (HeaterCUData.SetPoint - HeaterCUData.FeedBack >= 0)
  107. {
  108. return 0;
  109. }
  110. else if (HeaterCUData.SetPoint - HeaterCUData.FeedBack >= -CURange)
  111. {
  112. return ((-(HeaterCUData.SetPoint - HeaterCUData.FeedBack)) / CURange) * 150;
  113. }
  114. return 300;
  115. }
  116. }
  117. public double DevC => HeaterCData.FeedBack - HeaterCData.SetPoint;
  118. public double TCDevC => HeaterCData.HeaterPV - HeaterCData.OverTemp;
  119. public double CRange = 9.9;
  120. public double PositiveCLength
  121. {
  122. get
  123. {
  124. if (HeaterCData.SetPoint - HeaterCData.FeedBack <= 0)
  125. {
  126. return 0;
  127. }
  128. else if (HeaterCData.SetPoint - HeaterCData.FeedBack <= CRange)
  129. {
  130. return ((HeaterCData.SetPoint - HeaterCData.FeedBack) / CRange) * 150;
  131. }
  132. return 300;
  133. }
  134. }
  135. public double NegativeCLength
  136. {
  137. get
  138. {
  139. if (HeaterCData.SetPoint - HeaterCData.FeedBack >= 0)
  140. {
  141. return 0;
  142. }
  143. else if (HeaterCData.SetPoint - HeaterCData.FeedBack >= -CRange)
  144. {
  145. return ((-(HeaterCData.SetPoint - HeaterCData.FeedBack)) / CRange) * 150;
  146. }
  147. return 300;
  148. }
  149. }
  150. public double DevCL => HeaterCLData.FeedBack - HeaterCLData.SetPoint;
  151. public double TCDevCL => HeaterCLData.HeaterPV - HeaterCLData.OverTemp;
  152. public double CLRange = 9.9;
  153. public double PositiveCLLength
  154. {
  155. get
  156. {
  157. if (HeaterCLData.SetPoint - HeaterCLData.FeedBack <= 0)
  158. {
  159. return 0;
  160. }
  161. else if (HeaterCLData.SetPoint - HeaterCLData.FeedBack <= CLRange)
  162. {
  163. return ((HeaterCLData.SetPoint - HeaterCLData.FeedBack) / CLRange) * 150;
  164. }
  165. return 300;
  166. }
  167. }
  168. public double NegativeCLLength
  169. {
  170. get
  171. {
  172. if (HeaterCLData.SetPoint - HeaterCLData.FeedBack >= 0)
  173. {
  174. return 0;
  175. }
  176. else if (HeaterCLData.SetPoint - HeaterCLData.FeedBack >= -CLRange)
  177. {
  178. return ((-(HeaterCLData.SetPoint - HeaterCLData.FeedBack)) / CLRange) * 150;
  179. }
  180. return 300;
  181. }
  182. }
  183. public double DevL => HeaterLData.FeedBack - HeaterLData.SetPoint;
  184. public double TCDevL => HeaterLData.HeaterPV - HeaterLData.OverTemp;
  185. public double LRange = 9.9;
  186. public double PositiveLLength
  187. {
  188. get
  189. {
  190. if (HeaterLData.SetPoint - HeaterLData.FeedBack <= 0)
  191. {
  192. return 0;
  193. }
  194. else if (HeaterLData.SetPoint - HeaterLData.FeedBack <= LRange)
  195. {
  196. return ((HeaterLData.SetPoint - HeaterLData.FeedBack) / LRange) * 150;
  197. }
  198. return 300;
  199. }
  200. }
  201. public double NegativeLLength
  202. {
  203. get
  204. {
  205. if (HeaterLData.SetPoint - HeaterLData.FeedBack >= 0)
  206. {
  207. return 0;
  208. }
  209. else if (HeaterLData.SetPoint - HeaterLData.FeedBack >= -LRange)
  210. {
  211. return ((-(HeaterLData.SetPoint - HeaterLData.FeedBack)) / LRange) * 150;
  212. }
  213. return 300;
  214. }
  215. }
  216. public double ZoneDevUCU => HeaterUData.FeedBack - HeaterCUData.FeedBack;
  217. public double ZoneDevCUC => HeaterCUData.FeedBack - HeaterCData.FeedBack;
  218. public double ZoneDevCCL => HeaterCData.FeedBack - HeaterCLData.FeedBack;
  219. public double ZoneDevCLL => HeaterCLData.FeedBack - HeaterLData.FeedBack;
  220. [Subscription("System.HeaterU.DeviceData")]
  221. public AITHeaterData HeaterUData { get; set; }
  222. [Subscription("System.HeaterCU.DeviceData")]
  223. public AITHeaterData HeaterCUData { get; set; }
  224. [Subscription("System.HeaterC.DeviceData")]
  225. public AITHeaterData HeaterCData { get; set; }
  226. [Subscription("System.HeaterCL.DeviceData")]
  227. public AITHeaterData HeaterCLData { get; set; }
  228. [Subscription("System.HeaterL.DeviceData")]
  229. public AITHeaterData HeaterLData { get; set; }
  230. public AITHeaterData BottomHeaterData => HeaterLData;
  231. public AITHeaterData CenterBottomHeaterData => HeaterCLData;
  232. public AITHeaterData CenterHeaterData => HeaterCData;
  233. public AITHeaterData TopCenterHeaterData => HeaterCUData;
  234. public AITHeaterData TopHeaterData => HeaterUData;
  235. [Subscription("PM1.Status")]
  236. public string PM1Status { get; set; }
  237. [Subscription("PM1.RecipeHold")]
  238. public bool PM1RecipeHold { get; set; }
  239. public bool IsMannualButtonEnabled
  240. {
  241. get
  242. {
  243. return PM1Status != "Process" || (PM1Status == "Process" && PM1RecipeHold);
  244. }
  245. }
  246. public string ErrStateStr
  247. {
  248. get
  249. {
  250. string _isErrState = "None";
  251. List<string> tempList = new List<string>();
  252. if (TopHeaterData?.IsAlarm == true)
  253. {
  254. tempList.Add("U");
  255. }
  256. if (TopCenterHeaterData?.IsAlarm == true)
  257. {
  258. tempList.Add("CU");
  259. }
  260. if (CenterHeaterData?.IsAlarm == true)
  261. {
  262. tempList.Add("C");
  263. }
  264. if (CenterBottomHeaterData?.IsAlarm == true)
  265. {
  266. tempList.Add("CL");
  267. }
  268. if (BottomHeaterData?.IsAlarm == true)
  269. {
  270. tempList.Add("L");
  271. }
  272. if (tempList.Count > 0)
  273. {
  274. if (tempList.Count == 5)
  275. {
  276. _isErrState = "All zone Err ";
  277. }
  278. else
  279. {
  280. _isErrState = string.Join("/", tempList) + " zone Err";
  281. }
  282. }
  283. return _isErrState;
  284. }
  285. }
  286. public bool ErrState
  287. {
  288. get
  289. {
  290. bool _isErrState = false;
  291. if (TopHeaterData?.IsAlarm == true || TopCenterHeaterData?.IsAlarm == true || CenterHeaterData.IsAlarm == true || CenterBottomHeaterData.IsAlarm == true || BottomHeaterData.IsAlarm == true)
  292. {
  293. _isErrState = true;
  294. }
  295. return _isErrState;
  296. }
  297. }
  298. #region AnaLog
  299. [Subscription("PM1.HTCurrent1.DeviceData")]
  300. public AITWaterFlowMeterData HTCurrent1 { get; set; }
  301. [Subscription("PM1.HTCurrent2.DeviceData")]
  302. public AITWaterFlowMeterData HTCurrent2 { get; set; }
  303. [Subscription("PM1.HTCurrent3.DeviceData")]
  304. public AITWaterFlowMeterData HTCurrent3 { get; set; }
  305. [Subscription("PM1.HTCurrent4.DeviceData")]
  306. public AITWaterFlowMeterData HTCurrent4 { get; set; }
  307. [Subscription("PM1.HTCurrent5.DeviceData")]
  308. public AITWaterFlowMeterData HTCurrent5 { get; set; }
  309. [Subscription("PM1.HTVoltage1.DeviceData")]
  310. public AITWaterFlowMeterData HTVoltage1 { get; set; }
  311. [Subscription("PM1.HTVoltage2.DeviceData")]
  312. public AITWaterFlowMeterData HTVoltage2 { get; set; }
  313. [Subscription("PM1.HTVoltage3.DeviceData")]
  314. public AITWaterFlowMeterData HTVoltage3 { get; set; }
  315. [Subscription("PM1.HTVoltage4.DeviceData")]
  316. public AITWaterFlowMeterData HTVoltage4 { get; set; }
  317. [Subscription("PM1.HTVoltage5.DeviceData")]
  318. public AITWaterFlowMeterData HTVoltage5 { get; set; }
  319. public string HTCurrent1Feedback { get; set; }
  320. public string HTCurrent2Feedback { get; set; }
  321. public string HTCurrent3Feedback { get; set; }
  322. public string HTCurrent4Feedback { get; set; }
  323. public string HTCurrent5Feedback { get; set; }
  324. public string HTVoltage1Feedback { get; set; }
  325. public string HTVoltage2Feedback { get; set; }
  326. public string HTVoltage3Feedback { get; set; }
  327. public string HTVoltage4Feedback { get; set; }
  328. public string HTVoltage5Feedback { get; set; }
  329. #endregion
  330. public Dictionary<string, double> _dicTemperatualMaxValue;
  331. private string _topHeaterSetPoint;
  332. public string TopHeaterSetPoint
  333. {
  334. get { return _topHeaterSetPoint; }
  335. set
  336. {
  337. _topHeaterSetPoint = value;
  338. NotifyOfPropertyChange("TopHeaterSetPoint");
  339. }
  340. }
  341. private string _topCenterHeaterSetPoint;
  342. public string TopCenterHeaterSetPoint
  343. {
  344. get { return _topCenterHeaterSetPoint; }
  345. set
  346. {
  347. _topCenterHeaterSetPoint = value;
  348. NotifyOfPropertyChange("TopCenterHeaterSetPoint");
  349. }
  350. }
  351. private string _centerHeaterSetPoint;
  352. public string CenterHeaterSetPoint
  353. {
  354. get { return _centerHeaterSetPoint; }
  355. set
  356. {
  357. _centerHeaterSetPoint = value;
  358. NotifyOfPropertyChange("CenterHeaterSetPoint");
  359. }
  360. }
  361. private string _centerBottomHeaterSetPoint;
  362. public string CenterBottomHeaterSetPoint
  363. {
  364. get { return _centerBottomHeaterSetPoint; }
  365. set
  366. {
  367. _centerBottomHeaterSetPoint = value;
  368. NotifyOfPropertyChange("CenterBottomHeaterSetPoint");
  369. }
  370. }
  371. private string _bottomHeaterSetPoint;
  372. public string BottomHeaterSetPoint
  373. {
  374. get { return _bottomHeaterSetPoint; }
  375. set
  376. {
  377. _bottomHeaterSetPoint = value;
  378. NotifyOfPropertyChange("BottomHeaterSetPoint");
  379. }
  380. }
  381. private string _topHeaterUpRateSetpoint;
  382. public string TopHeaterUpRateSetpoint
  383. {
  384. get { return _topHeaterUpRateSetpoint; }
  385. set
  386. {
  387. _topHeaterUpRateSetpoint = value;
  388. NotifyOfPropertyChange("TopHeaterUpRateSetpoint");
  389. }
  390. }
  391. private string _topCenterHeaterUpRateSetpoint;
  392. public string TopCenterHeaterUpRateSetpoint
  393. {
  394. get { return _topCenterHeaterUpRateSetpoint; }
  395. set
  396. {
  397. _topCenterHeaterUpRateSetpoint = value;
  398. NotifyOfPropertyChange("TopCenterHeaterUpRateSetpoint");
  399. }
  400. }
  401. private string _centerHeaterUpRateSetpoint;
  402. public string CenterHeaterUpRateSetpoint
  403. {
  404. get { return _centerHeaterUpRateSetpoint; }
  405. set
  406. {
  407. _centerHeaterUpRateSetpoint = value;
  408. NotifyOfPropertyChange("CenterHeaterUpRateSetpoint");
  409. }
  410. }
  411. private string _centerLowHeaterUpRateSetpoint;
  412. public string CenterLowHeaterUpRateSetpoint
  413. {
  414. get { return _centerLowHeaterUpRateSetpoint; }
  415. set
  416. {
  417. _centerLowHeaterUpRateSetpoint = value;
  418. NotifyOfPropertyChange("CenterLowHeaterUpRateSetpoint");
  419. }
  420. }
  421. private string _lowHeaterUpRateSetpoint;
  422. public string LowHeaterUpRateSetpoint
  423. {
  424. get { return _lowHeaterUpRateSetpoint; }
  425. set
  426. {
  427. _lowHeaterUpRateSetpoint = value;
  428. NotifyOfPropertyChange("LowHeaterUpRateSetpoint");
  429. }
  430. }
  431. private string _topHeaterDownRateSetpoint;
  432. public string TopHeaterDownRateSetpoint
  433. {
  434. get { return _topHeaterDownRateSetpoint; }
  435. set
  436. {
  437. _topHeaterDownRateSetpoint = value;
  438. NotifyOfPropertyChange("TopHeaterDownRateSetpoint");
  439. }
  440. }
  441. private string _topCenterHeaterDownRateSetpoint;
  442. public string TopCenterHeaterDownRateSetpoint
  443. {
  444. get { return _topCenterHeaterDownRateSetpoint; }
  445. set
  446. {
  447. _topCenterHeaterDownRateSetpoint = value;
  448. NotifyOfPropertyChange("TopCenterHeaterDownRateSetpoint");
  449. }
  450. }
  451. private string _centerHeaterDownRateSetpoint;
  452. public string CenterHeaterDownRateSetpoint
  453. {
  454. get { return _centerHeaterDownRateSetpoint; }
  455. set
  456. {
  457. _centerHeaterDownRateSetpoint = value;
  458. NotifyOfPropertyChange("CenterHeaterDownRateSetpoint");
  459. }
  460. }
  461. private string _centerLowHeaterDownRateSetpoint;
  462. public string CenterLowHeaterDownRateSetpoint
  463. {
  464. get { return _centerLowHeaterDownRateSetpoint; }
  465. set
  466. {
  467. _centerLowHeaterDownRateSetpoint = value;
  468. NotifyOfPropertyChange("CenterLowHeaterDownRateSetpoint");
  469. }
  470. }
  471. private string _lowHeaterDownRateSetpoint;
  472. public string LowHeaterDownRateSetpoint
  473. {
  474. get { return _lowHeaterDownRateSetpoint; }
  475. set
  476. {
  477. _lowHeaterDownRateSetpoint = value;
  478. NotifyOfPropertyChange("LowHeaterDownRateSetpoint");
  479. }
  480. }
  481. private bool _isEnableMannual;
  482. public bool IsEnableMannual
  483. {
  484. get
  485. {
  486. return IsManualButtonChecked;
  487. }
  488. set
  489. {
  490. _isEnableMannual = value;
  491. }
  492. }
  493. public bool IsManualButtonChecked
  494. {
  495. get;
  496. set;
  497. }
  498. private int _mannualSelectCount;
  499. private string _lspModel;
  500. public string LspModel
  501. {
  502. get => _lspModel;
  503. set
  504. {
  505. _lspModel = value;
  506. NotifyOfPropertyChange(nameof(LspModel));
  507. }
  508. }
  509. private string _topHeaterRampSetPoint;
  510. public string TopHeaterRampSetPoint
  511. {
  512. get => _topHeaterRampSetPoint;
  513. set
  514. {
  515. _topHeaterRampSetPoint = value;
  516. NotifyOfPropertyChange(nameof(TopHeaterRampSetPoint));
  517. }
  518. }
  519. private string _topCenterHeaterRampSetPoint;
  520. public string TopCenterHeaterRampSetPoint
  521. {
  522. get => _topCenterHeaterRampSetPoint;
  523. set
  524. {
  525. _topCenterHeaterRampSetPoint = value;
  526. NotifyOfPropertyChange(nameof(TopCenterHeaterRampSetPoint));
  527. }
  528. }
  529. private string _centerHeaterRampSetPoint;
  530. public string CenterHeaterRampSetPoint
  531. {
  532. get => _centerHeaterRampSetPoint;
  533. set
  534. {
  535. _centerHeaterRampSetPoint = value;
  536. NotifyOfPropertyChange(nameof(CenterHeaterRampSetPoint));
  537. }
  538. }
  539. private string _bottomCenterHeaterRampSetPoint;
  540. public string BottomCenterHeaterRampSetPoint
  541. {
  542. get => _bottomCenterHeaterRampSetPoint;
  543. set
  544. {
  545. _bottomCenterHeaterRampSetPoint = value;
  546. NotifyOfPropertyChange(nameof(BottomCenterHeaterRampSetPoint));
  547. }
  548. }
  549. private string _bottomHeaterRampSetPoint;
  550. public string BottomHeaterRampSetPoint
  551. {
  552. get => _bottomHeaterRampSetPoint;
  553. set
  554. {
  555. _bottomHeaterRampSetPoint = value;
  556. NotifyOfPropertyChange(nameof(BottomHeaterRampSetPoint));
  557. }
  558. }
  559. public string ProfileTable
  560. {
  561. get
  562. {
  563. if (!HeaterUData.IsProfiling)
  564. return "OFF";
  565. if (string.IsNullOrEmpty(HeaterUData.ProfileTable) || HeaterUData.ProfileTable == "None")
  566. return "OFF";
  567. var array = HeaterUData.ProfileTable.Split(',');
  568. if (array == null || array.Length < 2)
  569. {
  570. return "OFF";
  571. }
  572. var fileNameAndPath = array[0];
  573. int.TryParse(array[1], out int index);
  574. var para = fileNameAndPath.Split('\\').ToList().Skip(2);//"Parameter\\TempCorrection"
  575. if (para == null)
  576. {
  577. return "OFF";
  578. }
  579. var fileName = string.Join("\\", para.ToArray());
  580. if (array.Length < 3)
  581. {
  582. return $"{fileName} [{index}]";
  583. }
  584. else
  585. return $"{fileName} [{index}: {array[2]}]";
  586. }
  587. set
  588. {
  589. }
  590. }
  591. public string ProfileStatusDisplay
  592. {
  593. get
  594. {
  595. if (!HeaterUData.IsProfiling)
  596. return "None";
  597. return HeaterUData.ProfileStatus;
  598. }
  599. }
  600. public string PIDTable
  601. {
  602. get
  603. {
  604. if (string.IsNullOrEmpty(HeaterUData.PIDTable) || HeaterUData.PIDTable == "None")
  605. return "None";
  606. var array = HeaterUData.PIDTable.Split(',');
  607. if (array == null || array.Length < 2)
  608. {
  609. return "None";
  610. }
  611. var fileNameAndPath = array[0];
  612. int.TryParse(array[1], out int index);
  613. var para = fileNameAndPath.Split('\\').ToList().Skip(2);//"Parameter\\TempCorrection"
  614. if (para == null)
  615. {
  616. return "None";
  617. }
  618. var fileName = string.Join("\\", para.ToArray());
  619. if (array.Length < 3)
  620. {
  621. return $"{fileName} [{index}]";
  622. }
  623. else
  624. return $"{fileName} [{index}: {array[2]}]";
  625. }
  626. set
  627. {
  628. }
  629. }
  630. public string CorrectTable
  631. {
  632. get
  633. {
  634. if (string.IsNullOrEmpty(HeaterUData.CorrectTable) || HeaterUData.CorrectTable == "None")
  635. return "None";
  636. var array = HeaterUData.CorrectTable.Split(',');
  637. if (array == null || array.Length < 2)
  638. {
  639. return "None";
  640. }
  641. var fileNameAndPath = array[0];
  642. int.TryParse(array[1], out int index);
  643. var para = fileNameAndPath.Split('\\').ToList().Skip(2);//"Parameter\\TempCorrection"
  644. if (para == null)
  645. {
  646. return "None";
  647. }
  648. var fileName = string.Join("\\", para.ToArray());
  649. if (array.Length < 3)
  650. {
  651. return $"{fileName} [{index}]";
  652. }
  653. else
  654. return $"{fileName} [{index}: {array[2]}]";
  655. }
  656. set
  657. {
  658. }
  659. }
  660. public string CheckLimitUDisplay
  661. {
  662. get
  663. {
  664. if (!HeaterUData.IsProfiling)
  665. return "0.0";
  666. return HeaterUData.ProfileCheckLimit.ToString("f1");
  667. }
  668. }
  669. public string CheckLimitCUDisplay
  670. {
  671. get
  672. {
  673. if (!HeaterCUData.IsProfiling)
  674. return "0.0";
  675. return HeaterCUData.ProfileCheckLimit.ToString("f1");
  676. }
  677. }
  678. public string CheckLimitCDisplay
  679. {
  680. get
  681. {
  682. if (!HeaterCData.IsProfiling)
  683. return "0.0";
  684. return HeaterCData.ProfileCheckLimit.ToString("f1");
  685. }
  686. }
  687. public string CheckLimitCLDisplay
  688. {
  689. get
  690. {
  691. if (!HeaterCLData.IsProfiling)
  692. return "0.0";
  693. return HeaterCLData.ProfileCheckLimit.ToString("f1");
  694. }
  695. }
  696. public string CheckLimitLDisplay
  697. {
  698. get
  699. {
  700. if (!HeaterLData.IsProfiling)
  701. return "0.0";
  702. return HeaterLData.ProfileCheckLimit.ToString("f1");
  703. }
  704. }
  705. public string ProfileTotalTimeDisplay
  706. {
  707. get
  708. {
  709. var time = HeaterUData.ProfileTotalTime;
  710. if (!HeaterUData.IsProfiling)
  711. time = 0;
  712. if (time < 0)
  713. time = 0;
  714. TimeSpan span = TimeSpan.FromSeconds(time);
  715. return $"{span.Hours.ToString("D2")}:{span.Minutes.ToString("D2")}:{span.Seconds.ToString("D2")}";
  716. }
  717. }
  718. public string ProfilePreheatTimeDisplay
  719. {
  720. get
  721. {
  722. var time = HeaterUData.ProfilePreheatTime;
  723. if (!HeaterUData.IsProfiling)
  724. time = 0;
  725. if (time < 0)
  726. time = 0;
  727. TimeSpan span = TimeSpan.FromSeconds(time);
  728. return $"{span.Hours.ToString("D2")}:{span.Minutes.ToString("D2")}:{span.Seconds.ToString("D2")}";
  729. }
  730. }
  731. public string ProfileCheckTimeDisplay
  732. {
  733. get
  734. {
  735. var time = HeaterUData.ProfileCheckTime;
  736. if (!HeaterUData.IsProfiling)
  737. time = 0;
  738. if (time < 0)
  739. time = 0;
  740. TimeSpan span = TimeSpan.FromSeconds(time);
  741. return $"{span.Hours.ToString("D2")}:{span.Minutes.ToString("D2")}:{span.Seconds.ToString("D2")}";
  742. }
  743. }
  744. public List<DDCModel> TempList
  745. {
  746. get { return _tempList; }
  747. set
  748. {
  749. _tempList = value;
  750. NotifyOfPropertyChange(() => TempList);
  751. }
  752. }
  753. private List<DDCModel> _tempList = new List<DDCModel>();
  754. [Subscription("System.HeaterU.HeaterControlModeSV")]
  755. public float HeaterUHeaterControlModeSV { get; set; }
  756. [Subscription("System.HeaterU.CascadeControlModeSV")]
  757. public float HeaterUCascadeControlModeSV { get; set; }
  758. [Subscription("System.HeaterCU.HeaterControlModeSV")]
  759. public float HeaterCUHeaterControlModeSV { get; set; }
  760. [Subscription("System.HeaterCU.CascadeControlModeSV")]
  761. public float HeaterCUCascadeControlModeSV { get; set; }
  762. [Subscription("System.HeaterC.HeaterControlModeSV")]
  763. public float HeaterCHeaterControlModeSV { get; set; }
  764. [Subscription("System.HeaterC.CascadeControlModeSV")]
  765. public float HeaterCCascadeControlModeSV { get; set; }
  766. [Subscription("System.HeaterCL.HeaterControlModeSV")]
  767. public float HeaterCLHeaterControlModeSV { get; set; }
  768. [Subscription("System.HeaterCL.CascadeControlModeSV")]
  769. public float HeaterCLCascadeControlModeSV { get; set; }
  770. [Subscription("System.HeaterL.HeaterControlModeSV")]
  771. public float HeaterLHeaterControlModeSV { get; set; }
  772. [Subscription("System.HeaterL.CascadeControlModeSV")]
  773. public float HeaterLCascadeControlModeSV { get; set; }
  774. protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
  775. {
  776. if (!IsEnableMannual)
  777. {
  778. InitSetPoint();
  779. InitRampRate();
  780. InitUpDownRate();
  781. }
  782. //URange = 9.9;
  783. List<DDCModel> tempList = new List<DDCModel>();
  784. DDCModel HTU = new DDCModel("HT.U")
  785. {
  786. SetValue = HeaterUData.SetPoint.ToString("F1"),
  787. ActValue = HeaterUData.HeaterPV.ToString("F1"),
  788. TargetValue = HeaterUHeaterControlModeSV.ToString("F1"),
  789. Power = HeaterUData.ManipulatedVariable.ToString("F1"),
  790. UpRate = HeaterUData.UpRateSetPoint.ToString("F1"),
  791. DownRate = HeaterUData.DownRateSetPoint.ToString("F1"),
  792. DevValue = (HeaterUData.SetPoint - HeaterUData.FeedBack).ToString("F1"),
  793. P = HeaterUData.HeaterPID_P.ToString("F1"),
  794. I= HeaterUData.HeaterPID_I.ToString("F1"),
  795. D= HeaterUData.HeaterPID_D.ToString("F1"),
  796. IsPVBreak = HeaterUData.IsHeaterPVBreak,
  797. IsTempErr = HeaterUData.HeaterPV > HeaterUData.Scale
  798. };
  799. DDCModel HTCU = new DDCModel("HT.CU")
  800. {
  801. SetValue = HeaterCUData.SetPoint.ToString("F1"),
  802. ActValue = HeaterCUData.HeaterPV.ToString("F1"),
  803. TargetValue = HeaterCUHeaterControlModeSV.ToString("F1"),
  804. Power = HeaterCUData.ManipulatedVariable.ToString("F1"),
  805. UpRate = HeaterCUData.UpRateSetPoint.ToString("F1"),
  806. DownRate = HeaterCUData.DownRateSetPoint.ToString("F1"),
  807. DevValue = (HeaterCUData.SetPoint - HeaterCUData.FeedBack).ToString("F1"),
  808. P = HeaterCUData.HeaterPID_P.ToString("F1"),
  809. I = HeaterCUData.HeaterPID_I.ToString("F1"),
  810. D = HeaterCUData.HeaterPID_D.ToString("F1"),
  811. IsPVBreak = HeaterCUData.IsHeaterPVBreak,
  812. IsTempErr = HeaterCUData.HeaterPV > HeaterCUData.Scale
  813. };
  814. DDCModel HTC = new DDCModel("HT.C")
  815. {
  816. SetValue = HeaterCData.SetPoint.ToString("F1"),
  817. ActValue = HeaterCData.HeaterPV.ToString("F1"),
  818. TargetValue = HeaterCHeaterControlModeSV.ToString("F1"),
  819. Power = HeaterCData.ManipulatedVariable.ToString("F1"),
  820. UpRate = HeaterCData.UpRateSetPoint.ToString("F1"),
  821. DownRate = HeaterCData.DownRateSetPoint.ToString("F1"),
  822. DevValue = (HeaterCData.SetPoint - HeaterCData.FeedBack).ToString("F1"),
  823. P = HeaterCData.HeaterPID_P.ToString("F1"),
  824. I = HeaterCData.HeaterPID_I.ToString("F1"),
  825. D = HeaterCData.HeaterPID_D.ToString("F1"),
  826. IsPVBreak = HeaterCData.IsHeaterPVBreak,
  827. IsTempErr = HeaterCData.HeaterPV > HeaterCData.Scale
  828. };
  829. DDCModel HTCL = new DDCModel("HT.CL")
  830. {
  831. SetValue = HeaterCLData.SetPoint.ToString("F1"),
  832. ActValue = HeaterCLData.HeaterPV.ToString("F1"),
  833. TargetValue = HeaterCLHeaterControlModeSV.ToString("F1"),
  834. Power = HeaterCLData.ManipulatedVariable.ToString("F1"),
  835. UpRate = HeaterCLData.UpRateSetPoint.ToString("F1"),
  836. DownRate = HeaterCLData.DownRateSetPoint.ToString("F1"),
  837. DevValue = (HeaterCLData.SetPoint - HeaterCLData.FeedBack).ToString("F1"),
  838. P = HeaterCLData.HeaterPID_P.ToString("F1"),
  839. I = HeaterCLData.HeaterPID_I.ToString("F1"),
  840. D = HeaterCLData.HeaterPID_D.ToString("F1"),
  841. IsPVBreak = HeaterCLData.IsHeaterPVBreak,
  842. IsTempErr = HeaterCLData.HeaterPV > HeaterCLData.Scale
  843. };
  844. DDCModel HTL = new DDCModel("HT.L")
  845. {
  846. SetValue = HeaterLData.SetPoint.ToString("F1"),
  847. ActValue = HeaterLData.HeaterPV.ToString("F1"),
  848. TargetValue = HeaterLHeaterControlModeSV.ToString("F1"),
  849. Power = HeaterLData.ManipulatedVariable.ToString("F1"),
  850. UpRate = HeaterLData.UpRateSetPoint.ToString("F1"),
  851. DownRate = HeaterLData.DownRateSetPoint.ToString("F1"),
  852. DevValue = (HeaterLData.SetPoint - HeaterLData.FeedBack).ToString("F1"),
  853. P = HeaterLData.HeaterPID_P.ToString("F1"),
  854. I = HeaterLData.HeaterPID_I.ToString("F1"),
  855. D = HeaterLData.HeaterPID_D.ToString("F1"),
  856. IsPVBreak = HeaterLData.IsHeaterPVBreak,
  857. IsTempErr = HeaterLData.HeaterPV > HeaterLData.Scale
  858. };
  859. DDCModel PRU = new DDCModel("PR.U")
  860. {
  861. SetValue = HeaterUData.SetPoint.ToString("F1"),
  862. ActValue = HeaterUData.CascadePV.ToString("F1"),
  863. TargetValue = HeaterUCascadeControlModeSV.ToString("F1"),
  864. Power = HeaterUData.ManipulatedVariable.ToString("F1"),
  865. UpRate = HeaterUData.UpRateSetPoint.ToString("F1"),
  866. DownRate = HeaterUData.DownRateSetPoint.ToString("F1"),
  867. DevValue = (HeaterUData.SetPoint - HeaterUData.FeedBack).ToString("F1"),
  868. P = HeaterUData.CascadePID_P.ToString("F1"),
  869. I = HeaterUData.CascadePID_I.ToString("F1"),
  870. D = HeaterUData.CascadePID_D.ToString("F1"),
  871. IsPVBreak = HeaterUData.IsCascadePVBreak,
  872. IsTempErr = HeaterUData.HeaterPV > HeaterUData.Scale
  873. };
  874. DDCModel PRCU = new DDCModel("PR.CU")
  875. {
  876. SetValue = HeaterCUData.SetPoint.ToString("F1"),
  877. ActValue = HeaterCUData.CascadePV.ToString("F1"),
  878. TargetValue = HeaterCUCascadeControlModeSV.ToString("F1"),
  879. Power = HeaterCUData.ManipulatedVariable.ToString("F1"),
  880. UpRate = HeaterCUData.UpRateSetPoint.ToString("F1"),
  881. DownRate = HeaterCUData.DownRateSetPoint.ToString("F1"),
  882. DevValue = (HeaterCUData.SetPoint - HeaterCUData.FeedBack).ToString("F1"),
  883. P = HeaterCUData.CascadePID_P.ToString("F1"),
  884. I = HeaterCUData.CascadePID_I.ToString("F1"),
  885. D = HeaterCUData.CascadePID_D.ToString("F1"),
  886. IsPVBreak = HeaterCUData.IsCascadePVBreak,
  887. IsTempErr = HeaterCUData.CascadePV > HeaterCUData.Scale
  888. };
  889. DDCModel PRC = new DDCModel("PR.C")
  890. {
  891. SetValue = HeaterCData.SetPoint.ToString("F1"),
  892. ActValue = HeaterCData.CascadePV.ToString("F1"),
  893. TargetValue = HeaterCCascadeControlModeSV.ToString("F1"),
  894. Power = HeaterCData.ManipulatedVariable.ToString("F1"),
  895. UpRate = HeaterCData.UpRateSetPoint.ToString("F1"),
  896. DownRate = HeaterCData.DownRateSetPoint.ToString("F1"),
  897. DevValue = (HeaterCData.SetPoint - HeaterCData.FeedBack).ToString("F1"),
  898. P = HeaterCData.CascadePID_P.ToString("F1"),
  899. I = HeaterCData.CascadePID_I.ToString("F1"),
  900. D = HeaterCData.CascadePID_D.ToString("F1"),
  901. IsPVBreak = HeaterCData.IsCascadePVBreak,
  902. IsTempErr = HeaterCData.CascadePV > HeaterCData.Scale
  903. };
  904. DDCModel PRCL = new DDCModel("PR.CL")
  905. {
  906. SetValue = HeaterCLData.SetPoint.ToString("F1"),
  907. ActValue = HeaterCLData.CascadePV.ToString("F1"),
  908. TargetValue = HeaterCLCascadeControlModeSV.ToString("F1"),
  909. Power = HeaterCLData.ManipulatedVariable.ToString("F1"),
  910. UpRate = HeaterCLData.UpRateSetPoint.ToString("F1"),
  911. DownRate = HeaterCLData.DownRateSetPoint.ToString("F1"),
  912. DevValue = (HeaterCLData.SetPoint - HeaterCLData.FeedBack).ToString("F1"),
  913. P = HeaterCLData.CascadePID_P.ToString("F1"),
  914. I = HeaterCLData.CascadePID_I.ToString("F1"),
  915. D = HeaterCLData.CascadePID_D.ToString("F1"),
  916. IsPVBreak = HeaterCLData.IsCascadePVBreak,
  917. IsTempErr = HeaterCLData.CascadePV > HeaterCLData.Scale
  918. };
  919. DDCModel PRL = new DDCModel("PR.L")
  920. {
  921. SetValue = HeaterLData.SetPoint.ToString("F1"),
  922. ActValue = HeaterLData.CascadePV.ToString("F1"),
  923. TargetValue = HeaterLCascadeControlModeSV.ToString("F1"),
  924. Power = HeaterLData.ManipulatedVariable.ToString("F1"),
  925. UpRate = HeaterLData.UpRateSetPoint.ToString("F1"),
  926. DownRate = HeaterLData.DownRateSetPoint.ToString("F1"),
  927. DevValue = (HeaterLData.SetPoint - HeaterLData.FeedBack).ToString("F1"),
  928. P = HeaterLData.CascadePID_P.ToString("F1"),
  929. I = HeaterLData.CascadePID_I.ToString("F1"),
  930. D = HeaterLData.CascadePID_D.ToString("F1"),
  931. IsPVBreak = HeaterLData.IsCascadePVBreak,
  932. IsTempErr = HeaterLData.CascadePV > HeaterLData.Scale
  933. };
  934. tempList.Add(HTU);
  935. tempList.Add(HTCU);
  936. tempList.Add(HTC);
  937. tempList.Add(HTCL);
  938. tempList.Add(HTL);
  939. tempList.Add(PRU);
  940. tempList.Add(PRCU);
  941. tempList.Add(PRC);
  942. tempList.Add(PRCL);
  943. tempList.Add(PRL);
  944. TempList = tempList;
  945. NotifyOfPropertyChange(nameof(PositiveULength));
  946. NotifyOfPropertyChange(nameof(NegativeULength));
  947. NotifyOfPropertyChange(nameof(PositiveCULength));
  948. NotifyOfPropertyChange(nameof(NegativeCULength));
  949. NotifyOfPropertyChange(nameof(PositiveCLength));
  950. NotifyOfPropertyChange(nameof(NegativeCLength));
  951. NotifyOfPropertyChange(nameof(PositiveCLLength));
  952. NotifyOfPropertyChange(nameof(NegativeCLLength));
  953. NotifyOfPropertyChange(nameof(PositiveLLength));
  954. NotifyOfPropertyChange(nameof(NegativeLLength));
  955. if (_view != null)
  956. {
  957. _view.UpdateLayout();
  958. }
  959. }
  960. public void InitSetPoint()
  961. {
  962. TopHeaterSetPoint = TopHeaterData.SetPoint.ToString("F1");
  963. TopCenterHeaterSetPoint = TopCenterHeaterData.SetPoint.ToString("F1");
  964. CenterHeaterSetPoint = CenterHeaterData.SetPoint.ToString("F1");
  965. CenterBottomHeaterSetPoint = CenterBottomHeaterData.SetPoint.ToString("F1");
  966. BottomHeaterSetPoint = BottomHeaterData.SetPoint.ToString("F1");
  967. //HTCurrent1Feedback = HTCurrent1 == null ? "0.0" : HTCurrent1.FeedBack.ToString("F3");
  968. //HTCurrent2Feedback = HTCurrent2 == null ? "0.0" : HTCurrent2.FeedBack.ToString("F3");
  969. //HTCurrent3Feedback = HTCurrent3 == null ? "0.0" : HTCurrent3.FeedBack.ToString("F3");
  970. //HTCurrent4Feedback = HTCurrent4 == null ? "0.0" : HTCurrent4.FeedBack.ToString("F3");
  971. //HTCurrent5Feedback = HTCurrent5 == null ? "0.0" : HTCurrent5.FeedBack.ToString("F3");
  972. //HTVoltage1Feedback = HTVoltage1 == null ? "0.0" : HTVoltage1.FeedBack.ToString("F3");
  973. //HTVoltage2Feedback = HTVoltage2 == null ? "0.0" : HTVoltage2.FeedBack.ToString("F3");
  974. //HTVoltage3Feedback = HTVoltage3 == null ? "0.0" : HTVoltage3.FeedBack.ToString("F3");
  975. //HTVoltage4Feedback = HTVoltage4 == null ? "0.0" : HTVoltage4.FeedBack.ToString("F3");
  976. //HTVoltage5Feedback = HTVoltage5 == null ? "0.0" : HTVoltage5.FeedBack.ToString("F3");
  977. }
  978. public void InitUpDownRate()
  979. {
  980. TopHeaterUpRateSetpoint = TopHeaterData.UpRateSetPoint.ToString("F1");
  981. TopCenterHeaterUpRateSetpoint = TopCenterHeaterData.UpRateSetPoint.ToString("F1"); ;
  982. CenterHeaterUpRateSetpoint = CenterHeaterData.UpRateSetPoint.ToString("F1"); ;
  983. CenterLowHeaterUpRateSetpoint = CenterBottomHeaterData.UpRateSetPoint.ToString("F1"); ;
  984. LowHeaterUpRateSetpoint = BottomHeaterData.UpRateSetPoint.ToString("F1"); ;
  985. TopHeaterDownRateSetpoint = TopHeaterData.DownRateSetPoint.ToString("F1");
  986. TopCenterHeaterDownRateSetpoint = TopCenterHeaterData.DownRateSetPoint.ToString("F1"); ;
  987. CenterHeaterDownRateSetpoint = CenterHeaterData.DownRateSetPoint.ToString("F1"); ;
  988. CenterLowHeaterDownRateSetpoint = CenterBottomHeaterData.DownRateSetPoint.ToString("F1"); ;
  989. LowHeaterDownRateSetpoint = BottomHeaterData.DownRateSetPoint.ToString("F1"); ;
  990. }
  991. public void InitRampRate()
  992. {
  993. TopHeaterRampSetPoint = CompterRampPoint(TopHeaterData).ToString("F1");
  994. TopCenterHeaterRampSetPoint = CompterRampPoint(TopCenterHeaterData).ToString("F1");
  995. CenterHeaterRampSetPoint = CompterRampPoint(CenterHeaterData).ToString("F1");
  996. BottomCenterHeaterRampSetPoint = CompterRampPoint(CenterBottomHeaterData).ToString("F1");
  997. BottomHeaterRampSetPoint = CompterRampPoint(BottomHeaterData).ToString("F1");
  998. }
  999. protected override void OnInitialize()
  1000. {
  1001. base.OnInitialize();
  1002. string[] strTempsNames = { "Heater1", "Heater2", "Heater3", "Heater4", "Heater5" };
  1003. _dicTemperatualMaxValue = new Dictionary<string, double>();
  1004. //获取温度限制配置信息
  1005. for (int i = 0; i < strTempsNames.Length; i++)
  1006. {
  1007. object obj = QueryDataClient.Instance.Service.GetConfig($"PM1.Heater.{strTempsNames[i]}.Range");
  1008. _dicTemperatualMaxValue.Add(strTempsNames[i], Convert.ToDouble(obj));
  1009. }
  1010. }
  1011. public double CompterRampPoint(AITHeaterData data)
  1012. {
  1013. if (data.IsLspModeFeedBack)
  1014. {
  1015. return data.FeedBack >= data.SetPoint ? data.LspDecreaseRampRateFeedBack : data.LspIncreaseRampRateFeedBack;
  1016. }
  1017. else
  1018. {
  1019. return data.FeedBack >= data.SetPoint ? data.RspDecreaseRampRateFeedBack : data.RspIncreaseRampRateFeedBack;
  1020. }
  1021. }
  1022. public void ManualCmd()
  1023. {
  1024. //((Window)GetView()).DialogResult = true;
  1025. var wm = IoC.Get<IWindowManager>();
  1026. SetTemperatureViewModel setTemperatureViewModel = new SetTemperatureViewModel();
  1027. (wm as WindowManager)?.ShowDialogWithTitle(setTemperatureViewModel, null, "Set Temperature");
  1028. }
  1029. public void SetCmd(object senderName, object sender, object typeName)
  1030. {
  1031. double temval = 0;
  1032. string name = senderName.ToString();
  1033. switch (typeName.ToString())
  1034. {
  1035. case "setpoint":
  1036. double maxvalue = 0;
  1037. string tName = GetTempratualMaxValue(name);
  1038. if (!string.IsNullOrEmpty(tName))
  1039. {
  1040. maxvalue = _dicTemperatualMaxValue[tName];
  1041. }
  1042. string strRetValue = ShowNumberKeyboard(sender as Button, "", true, maxvalue);
  1043. if (strRetValue != "Cancel")
  1044. {
  1045. //if (double.TryParse(strRetValue, out temval))
  1046. {
  1047. SelectPostionSetPoint(name, strRetValue);
  1048. }
  1049. }
  1050. break;
  1051. case "ramp":
  1052. strRetValue = ShowNumberKeyboard(sender as Button, "", false, 0);
  1053. if (strRetValue != "Cancel")
  1054. {
  1055. //if (double.TryParse(strRetValue, out temval))
  1056. {
  1057. SelectPositionRamp(name, strRetValue);
  1058. }
  1059. }
  1060. break;
  1061. }
  1062. }
  1063. private string GetTempratualMaxValue(string typeName)
  1064. {
  1065. string dicName = string.Empty;
  1066. bool isLspMode = LspModel != "Outer Control";
  1067. switch (typeName)
  1068. {
  1069. case "TopHeater":
  1070. dicName = isLspMode ? "Heater1" : "Heater2";
  1071. break;
  1072. case "TopCenterHeater":
  1073. dicName = isLspMode ? "Heater3" : "Heater4";
  1074. break;
  1075. case "CenterHeater":
  1076. dicName = isLspMode ? "Heater5" : "Heater6";
  1077. break;
  1078. case "CenterBottomHeater":
  1079. dicName = isLspMode ? "Heater7" : "Heater8";
  1080. break;
  1081. case "BottomHeater":
  1082. dicName = isLspMode ? "Heater9" : "Heater10";
  1083. break;
  1084. }
  1085. return dicName;
  1086. }
  1087. private void SelectPostionSetPoint(string name, string value)
  1088. {
  1089. switch (name)
  1090. {
  1091. case "TopHeater":
  1092. TopHeaterSetPoint = value;
  1093. break;
  1094. case "TopCenterHeater":
  1095. TopCenterHeaterSetPoint = value;
  1096. break;
  1097. case "CenterHeater":
  1098. CenterHeaterSetPoint = value;
  1099. break;
  1100. case "CenterBottomHeater":
  1101. CenterBottomHeaterSetPoint = value;
  1102. break;
  1103. case "BottomHeater":
  1104. BottomHeaterSetPoint = value;
  1105. break;
  1106. }
  1107. }
  1108. private void SelectPositionRamp(string name, string value)
  1109. {
  1110. switch (name)
  1111. {
  1112. case "TopHeater":
  1113. TopHeaterRampSetPoint = value;
  1114. break;
  1115. case "TopCenterHeater":
  1116. TopCenterHeaterRampSetPoint = value;
  1117. break;
  1118. case "CenterHeater":
  1119. CenterHeaterRampSetPoint = value;
  1120. break;
  1121. case "CenterBottomHeater":
  1122. BottomCenterHeaterRampSetPoint = value;
  1123. break;
  1124. case "BottomHeater":
  1125. BottomHeaterRampSetPoint = value;
  1126. break;
  1127. }
  1128. }
  1129. private string ShowNumberKeyboard(Control control, string defaultValue, bool isValidate, double maxValue = double.MaxValue)
  1130. {
  1131. NumberKeyboard numberKeyboard = new NumberKeyboard("", defaultValue);
  1132. var point = control.PointFromScreen(new Point(0, 0));
  1133. double wx = SystemParameters.WorkArea.Width;
  1134. double hy = SystemParameters.WorkArea.Height;
  1135. if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < hy)
  1136. {
  1137. numberKeyboard.Top = -point.Y + control.ActualHeight + 5;
  1138. }
  1139. else
  1140. {
  1141. numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5;
  1142. }
  1143. if (-point.X + numberKeyboard.Width < wx)
  1144. {
  1145. numberKeyboard.Left = -point.X;
  1146. }
  1147. else
  1148. {
  1149. numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth);
  1150. }
  1151. if ((bool)numberKeyboard.ShowDialog())
  1152. return numberKeyboard.ValueString;
  1153. else
  1154. return "Cancel";
  1155. }
  1156. public void AllZone(string obj)
  1157. {
  1158. var windowManager = IoC.Get<IWindowManager>();
  1159. TemperatureDetailAllZoneViewModel temperatureDetailAllZoneViewModel = new TemperatureDetailAllZoneViewModel();
  1160. switch (obj)
  1161. {
  1162. case "Set":
  1163. if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(temperatureDetailAllZoneViewModel, null, "Temperature Value Set"))
  1164. {
  1165. TopHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1166. TopCenterHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1167. CenterHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1168. CenterBottomHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1169. BottomHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1170. }
  1171. break;
  1172. case "Ramp":
  1173. if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(temperatureDetailAllZoneViewModel, null, "Temperature Ramp Set"))
  1174. {
  1175. TopHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1176. TopCenterHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1177. CenterHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1178. BottomCenterHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1179. BottomHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  1180. }
  1181. break;
  1182. default:
  1183. break;
  1184. }
  1185. }
  1186. public void CloseCmd()
  1187. {
  1188. ClientApp.Instance.SwitchPage("status", "main", null);
  1189. }
  1190. }
  1191. }