TemperatureViewModel.cs 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044
  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 TemperatureViewModel : FurnaceUIViewModelBase
  22. {
  23. public bool IsManagerPermission { get; set; } = false;
  24. public bool IsLspMode { get; set; } = false;
  25. private TemperatureView _view;
  26. [Subscription("System.HeaterU.DeviceData")]
  27. public AITHeaterData HeaterUData { get; set; }
  28. protected override void OnViewLoaded(object view)
  29. {
  30. base.OnViewLoaded(view);
  31. _view = (TemperatureView)view;
  32. }
  33. public double URange = 9.9;
  34. public double DevU => HeaterUData.FeedBack - HeaterUData.SetPoint;
  35. public double PositiveULength
  36. {
  37. get
  38. {
  39. if (HeaterUData.SetPoint - HeaterUData.FeedBack <= 0)
  40. {
  41. return 0;
  42. }
  43. else if (HeaterUData.SetPoint - HeaterUData.FeedBack <= URange)
  44. {
  45. return ((HeaterUData.SetPoint - HeaterUData.FeedBack) / URange) * 150;
  46. }
  47. return 300;
  48. }
  49. }
  50. public double NegativeULength
  51. {
  52. get
  53. {
  54. if (HeaterUData.SetPoint - HeaterUData.FeedBack >= 0)
  55. {
  56. return 0;
  57. }
  58. else if (HeaterUData.SetPoint - HeaterUData.FeedBack >= -URange)
  59. {
  60. return ((-(HeaterUData.SetPoint - HeaterUData.FeedBack)) / URange) * 150;
  61. }
  62. return 300;
  63. }
  64. }
  65. public double DevCU => HeaterCUData.FeedBack - HeaterCUData.SetPoint;
  66. public double CURange = 9.9;
  67. public double PositiveCULength
  68. {
  69. get
  70. {
  71. if (HeaterCUData.SetPoint - HeaterCUData.FeedBack <= 0)
  72. {
  73. return 0;
  74. }
  75. else if (HeaterCUData.SetPoint - HeaterCUData.FeedBack <= CURange)
  76. {
  77. return ((HeaterCUData.SetPoint - HeaterCUData.FeedBack) / CURange) * 150;
  78. }
  79. return 300;
  80. }
  81. }
  82. public double NegativeCULength
  83. {
  84. get
  85. {
  86. if (HeaterCUData.SetPoint - HeaterCUData.FeedBack >= 0)
  87. {
  88. return 0;
  89. }
  90. else if (HeaterCUData.SetPoint - HeaterCUData.FeedBack >= -CURange)
  91. {
  92. return ((-(HeaterCUData.SetPoint - HeaterCUData.FeedBack)) / CURange) * 150;
  93. }
  94. return 300;
  95. }
  96. }
  97. public double DevC => HeaterCData.FeedBack - HeaterCData.SetPoint;
  98. public double CRange = 9.9;
  99. public double PositiveCLength
  100. {
  101. get
  102. {
  103. if (HeaterCData.SetPoint - HeaterCData.FeedBack <= 0)
  104. {
  105. return 0;
  106. }
  107. else if (HeaterCData.SetPoint - HeaterCData.FeedBack <= CRange)
  108. {
  109. return ((HeaterCData.SetPoint - HeaterCData.FeedBack) / CRange) * 150;
  110. }
  111. return 300;
  112. }
  113. }
  114. public double NegativeCLength
  115. {
  116. get
  117. {
  118. if (HeaterCData.SetPoint - HeaterCData.FeedBack >= 0)
  119. {
  120. return 0;
  121. }
  122. else if (HeaterCData.SetPoint - HeaterCData.FeedBack >= -CRange)
  123. {
  124. return ((-(HeaterCData.SetPoint - HeaterCData.FeedBack)) / CRange) * 150;
  125. }
  126. return 300;
  127. }
  128. }
  129. public double DevCL => HeaterCLData.FeedBack - HeaterCLData.SetPoint;
  130. public double CLRange = 9.9;
  131. public double PositiveCLLength
  132. {
  133. get
  134. {
  135. if (HeaterCLData.SetPoint - HeaterCLData.FeedBack <= 0)
  136. {
  137. return 0;
  138. }
  139. else if (HeaterCLData.SetPoint - HeaterCLData.FeedBack <= CLRange)
  140. {
  141. return ((HeaterCLData.SetPoint - HeaterCLData.FeedBack) / CLRange) * 150;
  142. }
  143. return 300;
  144. }
  145. }
  146. public double NegativeCLLength
  147. {
  148. get
  149. {
  150. if (HeaterCLData.SetPoint - HeaterCLData.FeedBack >= 0)
  151. {
  152. return 0;
  153. }
  154. else if (HeaterCLData.SetPoint - HeaterCLData.FeedBack >= -CLRange)
  155. {
  156. return ((-(HeaterCLData.SetPoint - HeaterCLData.FeedBack)) / CLRange) * 150;
  157. }
  158. return 300;
  159. }
  160. }
  161. public double DevL => HeaterLData.FeedBack - HeaterLData.SetPoint;
  162. public double LRange = 9.9;
  163. public double PositiveLLength
  164. {
  165. get
  166. {
  167. if (HeaterLData.SetPoint - HeaterLData.FeedBack <= 0)
  168. {
  169. return 0;
  170. }
  171. else if (HeaterLData.SetPoint - HeaterLData.FeedBack <= LRange)
  172. {
  173. return ((HeaterLData.SetPoint - HeaterLData.FeedBack) / LRange) * 150;
  174. }
  175. return 300;
  176. }
  177. }
  178. public double NegativeLLength
  179. {
  180. get
  181. {
  182. if (HeaterLData.SetPoint - HeaterLData.FeedBack >= 0)
  183. {
  184. return 0;
  185. }
  186. else if (HeaterLData.SetPoint - HeaterLData.FeedBack >= -LRange)
  187. {
  188. return ((-(HeaterLData.SetPoint - HeaterLData.FeedBack)) / LRange) * 150;
  189. }
  190. return 300;
  191. }
  192. }
  193. [Subscription("System.HeaterCU.DeviceData")]
  194. public AITHeaterData HeaterCUData { get; set; }
  195. [Subscription("System.HeaterC.DeviceData")]
  196. public AITHeaterData HeaterCData { get; set; }
  197. [Subscription("System.HeaterCL.DeviceData")]
  198. public AITHeaterData HeaterCLData { get; set; }
  199. [Subscription("System.HeaterL.DeviceData")]
  200. public AITHeaterData HeaterLData { get; set; }
  201. public AITHeaterData BottomHeaterData => HeaterLData;
  202. public AITHeaterData CenterBottomHeaterData => HeaterCLData;
  203. public AITHeaterData CenterHeaterData => HeaterCData;
  204. public AITHeaterData TopCenterHeaterData => HeaterCUData;
  205. public AITHeaterData TopHeaterData => HeaterUData;
  206. [Subscription("PM1.Status")]
  207. public string PM1Status { get; set; }
  208. [Subscription("PM1.RecipeHold")]
  209. public bool PM1RecipeHold { get; set; }
  210. public bool IsMannualButtonEnabled
  211. {
  212. get
  213. {
  214. return PM1Status != "Process" || (PM1Status == "Process" && PM1RecipeHold);
  215. }
  216. }
  217. #region AnaLog
  218. [Subscription("PM1.HTCurrent1.DeviceData")]
  219. public AITWaterFlowMeterData HTCurrent1 { get; set; }
  220. [Subscription("PM1.HTCurrent2.DeviceData")]
  221. public AITWaterFlowMeterData HTCurrent2 { get; set; }
  222. [Subscription("PM1.HTCurrent3.DeviceData")]
  223. public AITWaterFlowMeterData HTCurrent3 { get; set; }
  224. [Subscription("PM1.HTCurrent4.DeviceData")]
  225. public AITWaterFlowMeterData HTCurrent4 { get; set; }
  226. [Subscription("PM1.HTCurrent5.DeviceData")]
  227. public AITWaterFlowMeterData HTCurrent5 { get; set; }
  228. [Subscription("PM1.HTVoltage1.DeviceData")]
  229. public AITWaterFlowMeterData HTVoltage1 { get; set; }
  230. [Subscription("PM1.HTVoltage2.DeviceData")]
  231. public AITWaterFlowMeterData HTVoltage2 { get; set; }
  232. [Subscription("PM1.HTVoltage3.DeviceData")]
  233. public AITWaterFlowMeterData HTVoltage3 { get; set; }
  234. [Subscription("PM1.HTVoltage4.DeviceData")]
  235. public AITWaterFlowMeterData HTVoltage4 { get; set; }
  236. [Subscription("PM1.HTVoltage5.DeviceData")]
  237. public AITWaterFlowMeterData HTVoltage5 { get; set; }
  238. public string HTCurrent1Feedback { get; set; }
  239. public string HTCurrent2Feedback { get; set; }
  240. public string HTCurrent3Feedback { get; set; }
  241. public string HTCurrent4Feedback { get; set; }
  242. public string HTCurrent5Feedback { get; set; }
  243. public string HTVoltage1Feedback { get; set; }
  244. public string HTVoltage2Feedback { get; set; }
  245. public string HTVoltage3Feedback { get; set; }
  246. public string HTVoltage4Feedback { get; set; }
  247. public string HTVoltage5Feedback { get; set; }
  248. #endregion
  249. public Dictionary<string, double> _dicTemperatualMaxValue;
  250. private string _topHeaterSetPoint;
  251. public string TopHeaterSetPoint
  252. {
  253. get { return _topHeaterSetPoint; }
  254. set
  255. {
  256. _topHeaterSetPoint = value;
  257. NotifyOfPropertyChange("TopHeaterSetPoint");
  258. }
  259. }
  260. private string _topCenterHeaterSetPoint;
  261. public string TopCenterHeaterSetPoint
  262. {
  263. get { return _topCenterHeaterSetPoint; }
  264. set
  265. {
  266. _topCenterHeaterSetPoint = value;
  267. NotifyOfPropertyChange("TopCenterHeaterSetPoint");
  268. }
  269. }
  270. private string _centerHeaterSetPoint;
  271. public string CenterHeaterSetPoint
  272. {
  273. get { return _centerHeaterSetPoint; }
  274. set
  275. {
  276. _centerHeaterSetPoint = value;
  277. NotifyOfPropertyChange("CenterHeaterSetPoint");
  278. }
  279. }
  280. private string _centerBottomHeaterSetPoint;
  281. public string CenterBottomHeaterSetPoint
  282. {
  283. get { return _centerBottomHeaterSetPoint; }
  284. set
  285. {
  286. _centerBottomHeaterSetPoint = value;
  287. NotifyOfPropertyChange("CenterBottomHeaterSetPoint");
  288. }
  289. }
  290. private string _bottomHeaterSetPoint;
  291. public string BottomHeaterSetPoint
  292. {
  293. get { return _bottomHeaterSetPoint; }
  294. set
  295. {
  296. _bottomHeaterSetPoint = value;
  297. NotifyOfPropertyChange("BottomHeaterSetPoint");
  298. }
  299. }
  300. private string _topHeaterUpRateSetpoint;
  301. public string TopHeaterUpRateSetpoint
  302. {
  303. get { return _topHeaterUpRateSetpoint; }
  304. set
  305. {
  306. _topHeaterUpRateSetpoint = value;
  307. NotifyOfPropertyChange("TopHeaterUpRateSetpoint");
  308. }
  309. }
  310. private string _topCenterHeaterUpRateSetpoint;
  311. public string TopCenterHeaterUpRateSetpoint
  312. {
  313. get { return _topCenterHeaterUpRateSetpoint; }
  314. set
  315. {
  316. _topCenterHeaterUpRateSetpoint = value;
  317. NotifyOfPropertyChange("TopCenterHeaterUpRateSetpoint");
  318. }
  319. }
  320. private string _centerHeaterUpRateSetpoint;
  321. public string CenterHeaterUpRateSetpoint
  322. {
  323. get { return _centerHeaterUpRateSetpoint; }
  324. set
  325. {
  326. _centerHeaterUpRateSetpoint = value;
  327. NotifyOfPropertyChange("CenterHeaterUpRateSetpoint");
  328. }
  329. }
  330. private string _centerLowHeaterUpRateSetpoint;
  331. public string CenterLowHeaterUpRateSetpoint
  332. {
  333. get { return _centerLowHeaterUpRateSetpoint; }
  334. set
  335. {
  336. _centerLowHeaterUpRateSetpoint = value;
  337. NotifyOfPropertyChange("CenterLowHeaterUpRateSetpoint");
  338. }
  339. }
  340. private string _lowHeaterUpRateSetpoint;
  341. public string LowHeaterUpRateSetpoint
  342. {
  343. get { return _lowHeaterUpRateSetpoint; }
  344. set
  345. {
  346. _lowHeaterUpRateSetpoint = value;
  347. NotifyOfPropertyChange("LowHeaterUpRateSetpoint");
  348. }
  349. }
  350. private string _topHeaterDownRateSetpoint;
  351. public string TopHeaterDownRateSetpoint
  352. {
  353. get { return _topHeaterDownRateSetpoint; }
  354. set
  355. {
  356. _topHeaterDownRateSetpoint = value;
  357. NotifyOfPropertyChange("TopHeaterDownRateSetpoint");
  358. }
  359. }
  360. private string _topCenterHeaterDownRateSetpoint;
  361. public string TopCenterHeaterDownRateSetpoint
  362. {
  363. get { return _topCenterHeaterDownRateSetpoint; }
  364. set
  365. {
  366. _topCenterHeaterDownRateSetpoint = value;
  367. NotifyOfPropertyChange("TopCenterHeaterDownRateSetpoint");
  368. }
  369. }
  370. private string _centerHeaterDownRateSetpoint;
  371. public string CenterHeaterDownRateSetpoint
  372. {
  373. get { return _centerHeaterDownRateSetpoint; }
  374. set
  375. {
  376. _centerHeaterDownRateSetpoint = value;
  377. NotifyOfPropertyChange("CenterHeaterDownRateSetpoint");
  378. }
  379. }
  380. private string _centerLowHeaterDownRateSetpoint;
  381. public string CenterLowHeaterDownRateSetpoint
  382. {
  383. get { return _centerLowHeaterDownRateSetpoint; }
  384. set
  385. {
  386. _centerLowHeaterDownRateSetpoint = value;
  387. NotifyOfPropertyChange("CenterLowHeaterDownRateSetpoint");
  388. }
  389. }
  390. private string _lowHeaterDownRateSetpoint;
  391. public string LowHeaterDownRateSetpoint
  392. {
  393. get { return _lowHeaterDownRateSetpoint; }
  394. set
  395. {
  396. _lowHeaterDownRateSetpoint = value;
  397. NotifyOfPropertyChange("LowHeaterDownRateSetpoint");
  398. }
  399. }
  400. private bool _isEnableMannual;
  401. public bool IsEnableMannual
  402. {
  403. get
  404. {
  405. return IsManualButtonChecked;
  406. }
  407. set
  408. {
  409. _isEnableMannual = value;
  410. }
  411. }
  412. public bool IsManualButtonChecked
  413. {
  414. get;
  415. set;
  416. }
  417. private int _mannualSelectCount;
  418. private string _lspModel;
  419. public string LspModel
  420. {
  421. get => _lspModel;
  422. set
  423. {
  424. _lspModel = value;
  425. NotifyOfPropertyChange(nameof(LspModel));
  426. }
  427. }
  428. private string _topHeaterRampSetPoint;
  429. public string TopHeaterRampSetPoint
  430. {
  431. get => _topHeaterRampSetPoint;
  432. set
  433. {
  434. _topHeaterRampSetPoint = value;
  435. NotifyOfPropertyChange(nameof(TopHeaterRampSetPoint));
  436. }
  437. }
  438. private string _topCenterHeaterRampSetPoint;
  439. public string TopCenterHeaterRampSetPoint
  440. {
  441. get => _topCenterHeaterRampSetPoint;
  442. set
  443. {
  444. _topCenterHeaterRampSetPoint = value;
  445. NotifyOfPropertyChange(nameof(TopCenterHeaterRampSetPoint));
  446. }
  447. }
  448. private string _centerHeaterRampSetPoint;
  449. public string CenterHeaterRampSetPoint
  450. {
  451. get => _centerHeaterRampSetPoint;
  452. set
  453. {
  454. _centerHeaterRampSetPoint = value;
  455. NotifyOfPropertyChange(nameof(CenterHeaterRampSetPoint));
  456. }
  457. }
  458. private string _bottomCenterHeaterRampSetPoint;
  459. public string BottomCenterHeaterRampSetPoint
  460. {
  461. get => _bottomCenterHeaterRampSetPoint;
  462. set
  463. {
  464. _bottomCenterHeaterRampSetPoint = value;
  465. NotifyOfPropertyChange(nameof(BottomCenterHeaterRampSetPoint));
  466. }
  467. }
  468. private string _bottomHeaterRampSetPoint;
  469. public string BottomHeaterRampSetPoint
  470. {
  471. get => _bottomHeaterRampSetPoint;
  472. set
  473. {
  474. _bottomHeaterRampSetPoint = value;
  475. NotifyOfPropertyChange(nameof(BottomHeaterRampSetPoint));
  476. }
  477. }
  478. public string ProfileTable
  479. {
  480. get
  481. {
  482. if (!HeaterUData.IsProfiling)
  483. return "OFF";
  484. if (string.IsNullOrEmpty(HeaterUData.ProfileTable) || HeaterUData.ProfileTable == "None")
  485. return "OFF";
  486. var array = HeaterUData.ProfileTable.Split(',');
  487. if (array == null || array.Length < 2)
  488. {
  489. return "OFF";
  490. }
  491. var fileNameAndPath = array[0];
  492. int.TryParse(array[1], out int index);
  493. var para = fileNameAndPath.Split('\\').ToList().Skip(2);//"Parameter\\TempCorrection"
  494. if (para == null)
  495. {
  496. return "OFF";
  497. }
  498. var fileName = string.Join("\\", para.ToArray());
  499. if (array.Length < 3)
  500. {
  501. return $"{fileName} [{index}]";
  502. }
  503. else
  504. return $"{fileName} [{index}: {array[2]}]";
  505. }
  506. set
  507. {
  508. }
  509. }
  510. public string ProfileStatusDisplay
  511. {
  512. get
  513. {
  514. if (!HeaterUData.IsProfiling)
  515. return "None";
  516. return HeaterUData.ProfileStatus;
  517. }
  518. }
  519. public string PIDTable
  520. {
  521. get
  522. {
  523. if (string.IsNullOrEmpty(HeaterUData.PIDTable) || HeaterUData.PIDTable == "None")
  524. return "None";
  525. var array = HeaterUData.PIDTable.Split(',');
  526. if (array == null || array.Length < 2)
  527. {
  528. return "None";
  529. }
  530. var fileNameAndPath = array[0];
  531. int.TryParse(array[1], out int index);
  532. var para = fileNameAndPath.Split('\\').ToList().Skip(2);//"Parameter\\TempCorrection"
  533. if (para == null)
  534. {
  535. return "None";
  536. }
  537. var fileName = string.Join("\\", para.ToArray());
  538. if (array.Length < 3)
  539. {
  540. return $"{fileName} [{index}]";
  541. }
  542. else
  543. return $"{fileName} [{index}: {array[2]}]";
  544. }
  545. set
  546. {
  547. }
  548. }
  549. public string CorrectTable
  550. {
  551. get
  552. {
  553. if (string.IsNullOrEmpty(HeaterUData.CorrectTable) || HeaterUData.CorrectTable == "None")
  554. return "None";
  555. var array = HeaterUData.CorrectTable.Split(',');
  556. if (array == null || array.Length < 2)
  557. {
  558. return "None";
  559. }
  560. var fileNameAndPath = array[0];
  561. int.TryParse(array[1], out int index);
  562. var para = fileNameAndPath.Split('\\').ToList().Skip(2);//"Parameter\\TempCorrection"
  563. if (para == null)
  564. {
  565. return "None";
  566. }
  567. var fileName = string.Join("\\", para.ToArray());
  568. if (array.Length < 3)
  569. {
  570. return $"{fileName} [{index}]";
  571. }
  572. else
  573. return $"{fileName} [{index}: {array[2]}]";
  574. }
  575. set
  576. {
  577. }
  578. }
  579. public string CheckLimitUDisplay
  580. {
  581. get
  582. {
  583. if (!HeaterUData.IsProfiling)
  584. return "0.0";
  585. return HeaterUData.ProfileCheckLimit.ToString("f1");
  586. }
  587. }
  588. public string CheckLimitCUDisplay
  589. {
  590. get
  591. {
  592. if (!HeaterCUData.IsProfiling)
  593. return "0.0";
  594. return HeaterCUData.ProfileCheckLimit.ToString("f1");
  595. }
  596. }
  597. public string CheckLimitCDisplay
  598. {
  599. get
  600. {
  601. if (!HeaterCData.IsProfiling)
  602. return "0.0";
  603. return HeaterCData.ProfileCheckLimit.ToString("f1");
  604. }
  605. }
  606. public string CheckLimitCLDisplay
  607. {
  608. get
  609. {
  610. if (!HeaterCLData.IsProfiling)
  611. return "0.0";
  612. return HeaterCLData.ProfileCheckLimit.ToString("f1");
  613. }
  614. }
  615. public string CheckLimitLDisplay
  616. {
  617. get
  618. {
  619. if (!HeaterLData.IsProfiling)
  620. return "0.0";
  621. return HeaterLData.ProfileCheckLimit.ToString("f1");
  622. }
  623. }
  624. public string ProfileTotalTimeDisplay
  625. {
  626. get
  627. {
  628. var time = HeaterUData.ProfileTotalTime;
  629. if (!HeaterUData.IsProfiling)
  630. time = 0;
  631. if (time < 0)
  632. time = 0;
  633. TimeSpan span = TimeSpan.FromSeconds(time);
  634. return $"{span.Hours.ToString("D2")}:{span.Minutes.ToString("D2")}:{span.Seconds.ToString("D2")}";
  635. }
  636. }
  637. public string ProfilePreheatTimeDisplay
  638. {
  639. get
  640. {
  641. var time = HeaterUData.ProfilePreheatTime;
  642. if (!HeaterUData.IsProfiling)
  643. time = 0;
  644. if (time < 0)
  645. time = 0;
  646. TimeSpan span = TimeSpan.FromSeconds(time);
  647. return $"{span.Hours.ToString("D2")}:{span.Minutes.ToString("D2")}:{span.Seconds.ToString("D2")}";
  648. }
  649. }
  650. public string ProfileCheckTimeDisplay
  651. {
  652. get
  653. {
  654. var time = HeaterUData.ProfileCheckTime;
  655. if (!HeaterUData.IsProfiling)
  656. time = 0;
  657. if (time < 0)
  658. time = 0;
  659. TimeSpan span = TimeSpan.FromSeconds(time);
  660. return $"{span.Hours.ToString("D2")}:{span.Minutes.ToString("D2")}:{span.Seconds.ToString("D2")}";
  661. }
  662. }
  663. private List<object> _tempList = new List<object>() { "1", "2", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" };
  664. public List<object> TempList
  665. {
  666. get { return _tempList; }
  667. set { _tempList = value; }
  668. }
  669. protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
  670. {
  671. if (!IsEnableMannual)
  672. {
  673. InitSetPoint();
  674. InitRampRate();
  675. InitUpDownRate();
  676. }
  677. //URange = 9.9;
  678. NotifyOfPropertyChange(nameof(PositiveULength));
  679. NotifyOfPropertyChange(nameof(NegativeULength));
  680. NotifyOfPropertyChange(nameof(PositiveCULength));
  681. NotifyOfPropertyChange(nameof(NegativeCULength));
  682. NotifyOfPropertyChange(nameof(PositiveCLength));
  683. NotifyOfPropertyChange(nameof(NegativeCLength));
  684. NotifyOfPropertyChange(nameof(PositiveCLLength));
  685. NotifyOfPropertyChange(nameof(NegativeCLLength));
  686. NotifyOfPropertyChange(nameof(PositiveLLength));
  687. NotifyOfPropertyChange(nameof(NegativeLLength));
  688. if (_view != null)
  689. {
  690. _view.UpdateLayout();
  691. }
  692. }
  693. public void InitSetPoint()
  694. {
  695. TopHeaterSetPoint = TopHeaterData.SetPoint.ToString("F1");
  696. TopCenterHeaterSetPoint = TopCenterHeaterData.SetPoint.ToString("F1");
  697. CenterHeaterSetPoint = CenterHeaterData.SetPoint.ToString("F1");
  698. CenterBottomHeaterSetPoint = CenterBottomHeaterData.SetPoint.ToString("F1");
  699. BottomHeaterSetPoint = BottomHeaterData.SetPoint.ToString("F1");
  700. //HTCurrent1Feedback = HTCurrent1 == null ? "0.0" : HTCurrent1.FeedBack.ToString("F3");
  701. //HTCurrent2Feedback = HTCurrent2 == null ? "0.0" : HTCurrent2.FeedBack.ToString("F3");
  702. //HTCurrent3Feedback = HTCurrent3 == null ? "0.0" : HTCurrent3.FeedBack.ToString("F3");
  703. //HTCurrent4Feedback = HTCurrent4 == null ? "0.0" : HTCurrent4.FeedBack.ToString("F3");
  704. //HTCurrent5Feedback = HTCurrent5 == null ? "0.0" : HTCurrent5.FeedBack.ToString("F3");
  705. //HTVoltage1Feedback = HTVoltage1 == null ? "0.0" : HTVoltage1.FeedBack.ToString("F3");
  706. //HTVoltage2Feedback = HTVoltage2 == null ? "0.0" : HTVoltage2.FeedBack.ToString("F3");
  707. //HTVoltage3Feedback = HTVoltage3 == null ? "0.0" : HTVoltage3.FeedBack.ToString("F3");
  708. //HTVoltage4Feedback = HTVoltage4 == null ? "0.0" : HTVoltage4.FeedBack.ToString("F3");
  709. //HTVoltage5Feedback = HTVoltage5 == null ? "0.0" : HTVoltage5.FeedBack.ToString("F3");
  710. }
  711. public void InitUpDownRate()
  712. {
  713. TopHeaterUpRateSetpoint = TopHeaterData.UpRateSetPoint.ToString("F1");
  714. TopCenterHeaterUpRateSetpoint = TopCenterHeaterData.UpRateSetPoint.ToString("F1"); ;
  715. CenterHeaterUpRateSetpoint = CenterHeaterData.UpRateSetPoint.ToString("F1"); ;
  716. CenterLowHeaterUpRateSetpoint = CenterBottomHeaterData.UpRateSetPoint.ToString("F1"); ;
  717. LowHeaterUpRateSetpoint = BottomHeaterData.UpRateSetPoint.ToString("F1"); ;
  718. TopHeaterDownRateSetpoint = TopHeaterData.DownRateSetPoint.ToString("F1");
  719. TopCenterHeaterDownRateSetpoint = TopCenterHeaterData.DownRateSetPoint.ToString("F1"); ;
  720. CenterHeaterDownRateSetpoint = CenterHeaterData.DownRateSetPoint.ToString("F1"); ;
  721. CenterLowHeaterDownRateSetpoint = CenterBottomHeaterData.DownRateSetPoint.ToString("F1"); ;
  722. LowHeaterDownRateSetpoint = BottomHeaterData.DownRateSetPoint.ToString("F1"); ;
  723. }
  724. public void InitRampRate()
  725. {
  726. TopHeaterRampSetPoint = CompterRampPoint(TopHeaterData).ToString("F1");
  727. TopCenterHeaterRampSetPoint = CompterRampPoint(TopCenterHeaterData).ToString("F1");
  728. CenterHeaterRampSetPoint = CompterRampPoint(CenterHeaterData).ToString("F1");
  729. BottomCenterHeaterRampSetPoint = CompterRampPoint(CenterBottomHeaterData).ToString("F1");
  730. BottomHeaterRampSetPoint = CompterRampPoint(BottomHeaterData).ToString("F1");
  731. }
  732. protected override void OnInitialize()
  733. {
  734. base.OnInitialize();
  735. string[] strTempsNames = { "Heater1", "Heater2", "Heater3", "Heater4", "Heater5" };
  736. _dicTemperatualMaxValue = new Dictionary<string, double>();
  737. //获取温度限制配置信息
  738. for (int i = 0; i < strTempsNames.Length; i++)
  739. {
  740. object obj = QueryDataClient.Instance.Service.GetConfig($"PM1.Heater.{strTempsNames[i]}.Range");
  741. _dicTemperatualMaxValue.Add(strTempsNames[i], Convert.ToDouble(obj));
  742. }
  743. }
  744. public double CompterRampPoint(AITHeaterData data)
  745. {
  746. if (data.IsLspModeFeedBack)
  747. {
  748. return data.FeedBack >= data.SetPoint ? data.LspDecreaseRampRateFeedBack : data.LspIncreaseRampRateFeedBack;
  749. }
  750. else
  751. {
  752. return data.FeedBack >= data.SetPoint ? data.RspDecreaseRampRateFeedBack : data.RspIncreaseRampRateFeedBack;
  753. }
  754. }
  755. public void ManualCmd()
  756. {
  757. //((Window)GetView()).DialogResult = true;
  758. var wm = IoC.Get<IWindowManager>();
  759. SetTemperatureViewModel setTemperatureViewModel = new SetTemperatureViewModel();
  760. (wm as WindowManager)?.ShowDialogWithTitle(setTemperatureViewModel, null, "Set Temperature");
  761. }
  762. public void SetCmd(object senderName, object sender, object typeName)
  763. {
  764. double temval = 0;
  765. string name = senderName.ToString();
  766. switch (typeName.ToString())
  767. {
  768. case "setpoint":
  769. double maxvalue = 0;
  770. string tName = GetTempratualMaxValue(name);
  771. if (!string.IsNullOrEmpty(tName))
  772. {
  773. maxvalue = _dicTemperatualMaxValue[tName];
  774. }
  775. string strRetValue = ShowNumberKeyboard(sender as Button, "", true, maxvalue);
  776. if (strRetValue != "Cancel")
  777. {
  778. //if (double.TryParse(strRetValue, out temval))
  779. {
  780. SelectPostionSetPoint(name, strRetValue);
  781. }
  782. }
  783. break;
  784. case "ramp":
  785. strRetValue = ShowNumberKeyboard(sender as Button, "", false, 0);
  786. if (strRetValue != "Cancel")
  787. {
  788. //if (double.TryParse(strRetValue, out temval))
  789. {
  790. SelectPositionRamp(name, strRetValue);
  791. }
  792. }
  793. break;
  794. }
  795. }
  796. private string GetTempratualMaxValue(string typeName)
  797. {
  798. string dicName = string.Empty;
  799. bool isLspMode = LspModel != "Outer Control";
  800. switch (typeName)
  801. {
  802. case "TopHeater":
  803. dicName = isLspMode ? "Heater1" : "Heater2";
  804. break;
  805. case "TopCenterHeater":
  806. dicName = isLspMode ? "Heater3" : "Heater4";
  807. break;
  808. case "CenterHeater":
  809. dicName = isLspMode ? "Heater5" : "Heater6";
  810. break;
  811. case "CenterBottomHeater":
  812. dicName = isLspMode ? "Heater7" : "Heater8";
  813. break;
  814. case "BottomHeater":
  815. dicName = isLspMode ? "Heater9" : "Heater10";
  816. break;
  817. }
  818. return dicName;
  819. }
  820. private void SelectPostionSetPoint(string name, string value)
  821. {
  822. switch (name)
  823. {
  824. case "TopHeater":
  825. TopHeaterSetPoint = value;
  826. break;
  827. case "TopCenterHeater":
  828. TopCenterHeaterSetPoint = value;
  829. break;
  830. case "CenterHeater":
  831. CenterHeaterSetPoint = value;
  832. break;
  833. case "CenterBottomHeater":
  834. CenterBottomHeaterSetPoint = value;
  835. break;
  836. case "BottomHeater":
  837. BottomHeaterSetPoint = value;
  838. break;
  839. }
  840. }
  841. private void SelectPositionRamp(string name, string value)
  842. {
  843. switch (name)
  844. {
  845. case "TopHeater":
  846. TopHeaterRampSetPoint = value;
  847. break;
  848. case "TopCenterHeater":
  849. TopCenterHeaterRampSetPoint = value;
  850. break;
  851. case "CenterHeater":
  852. CenterHeaterRampSetPoint = value;
  853. break;
  854. case "CenterBottomHeater":
  855. BottomCenterHeaterRampSetPoint = value;
  856. break;
  857. case "BottomHeater":
  858. BottomHeaterRampSetPoint = value;
  859. break;
  860. }
  861. }
  862. private string ShowNumberKeyboard(Control control, string defaultValue, bool isValidate, double maxValue = double.MaxValue)
  863. {
  864. NumberKeyboard numberKeyboard = new NumberKeyboard("", defaultValue);
  865. var point = control.PointFromScreen(new Point(0, 0));
  866. double wx = SystemParameters.WorkArea.Width;
  867. double hy = SystemParameters.WorkArea.Height;
  868. if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < hy)
  869. {
  870. numberKeyboard.Top = -point.Y + control.ActualHeight + 5;
  871. }
  872. else
  873. {
  874. numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5;
  875. }
  876. if (-point.X + numberKeyboard.Width < wx)
  877. {
  878. numberKeyboard.Left = -point.X;
  879. }
  880. else
  881. {
  882. numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth);
  883. }
  884. if ((bool)numberKeyboard.ShowDialog())
  885. return numberKeyboard.ValueString;
  886. else
  887. return "Cancel";
  888. }
  889. public void AllZone(string obj)
  890. {
  891. var windowManager = IoC.Get<IWindowManager>();
  892. TemperatureDetailAllZoneViewModel temperatureDetailAllZoneViewModel = new TemperatureDetailAllZoneViewModel();
  893. switch (obj)
  894. {
  895. case "Set":
  896. if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(temperatureDetailAllZoneViewModel, null, "Temperature Value Set"))
  897. {
  898. TopHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  899. TopCenterHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  900. CenterHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  901. CenterBottomHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  902. BottomHeaterSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  903. }
  904. break;
  905. case "Ramp":
  906. if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(temperatureDetailAllZoneViewModel, null, "Temperature Ramp Set"))
  907. {
  908. TopHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  909. TopCenterHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  910. CenterHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  911. BottomCenterHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  912. BottomHeaterRampSetPoint = temperatureDetailAllZoneViewModel.TempSetValue;
  913. }
  914. break;
  915. default:
  916. break;
  917. }
  918. }
  919. public void CloseCmd()
  920. {
  921. ClientApp.Instance.SwitchPage("status", "main", null);
  922. }
  923. }
  924. }