FRAME_VmsStatusF.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "AppGlobalF.h"
  4. #include "ITSSkinF.h"
  5. #include "ITSUtilF.h"
  6. #include "CenterCommF.h"
  7. #pragma hdrstop
  8. #include "FRAME_VmsStatusF.h"
  9. //---------------------------------------------------------------------------
  10. #pragma package(smart_init)
  11. #pragma resource "*.dfm"
  12. TFRAME_VmsStatus *FRAME_VmsStatus;
  13. //---------------------------------------------------------------------------
  14. __fastcall TFRAME_VmsStatus::TFRAME_VmsStatus(TComponent* Owner)
  15. : TFrame(Owner)
  16. {
  17. }
  18. //---------------------------------------------------------------------------
  19. void __fastcall TFRAME_VmsStatus::LoadLocalSkin()
  20. {
  21. PnlDoor->ParentColor = false;
  22. PnlFan->ParentColor = false;
  23. PnlHeater->ParentColor = false;
  24. PnlModule->ParentColor = false;
  25. PnlPower->ParentColor = false;
  26. PnlTemp->ParentColor = false;
  27. PnlOprMode->ParentColor = false;
  28. }
  29. //---------------------------------------------------------------------------
  30. void __fastcall TFRAME_VmsStatus::RefreshStatus(TVmsCtlr *AObj)
  31. {
  32. TVmsCtlr *FVmsObj = AObj;
  33. PnlDoor->Caption = VmsModuleDoor(FVmsObj); //도어
  34. PnlFan->Caption = VmsModuleFan(FVmsObj); //팬
  35. PnlHeater->Caption = VmsModuleHeater(FVmsObj); //히터
  36. PnlModule->Caption = VmsModuleState(FVmsObj); //모듈상태
  37. PnlPower->Caption = VmsModulePower(FVmsObj); //전원상태
  38. PnlTemp->Caption = VmsModuleTemp(FVmsObj); //온도
  39. PnlOprMode->Caption = VmsOperMode(FVmsObj);
  40. TColor clrState = clLime;
  41. //운영모드
  42. #if 0
  43. if (FVmsObj->OPER_MODE != "A")
  44. {
  45. clrState = clYellow;
  46. }
  47. #else
  48. String sVmsMode = PnlOprMode->Caption;
  49. #if 0
  50. if (sVmsMode == "자동") clrState = clLime;
  51. else if (sVmsMode == "고정") clrState = clFuchsia;
  52. else clrState = clYellow;
  53. #else
  54. if (sVmsMode == FrmLang->lblOperA->Caption) clrState = clLime;
  55. else if (sVmsMode == FrmLang->lblOperF->Caption) clrState = clFuchsia;
  56. else clrState = clYellow;
  57. #endif
  58. #endif
  59. if (PnlOprMode->Color != clrState) PnlOprMode->Color = clrState;
  60. if (FVmsObj->STATE.Comm != vms_comm_normal)
  61. {
  62. PnlDoor->Color = clGray; //도어
  63. PnlFan->Color = clGray; //팬
  64. PnlHeater->Color = clGray; //히터
  65. PnlModule->Color = clGray; //모듈상태
  66. PnlPower->Color = clGray; //전원상태
  67. PnlTemp->Color = clGray; //온도
  68. return;
  69. }
  70. //모듈전원상태
  71. clrState = clLime;
  72. if (FVmsObj->STATE.ModulePowerStatus == vms_module_power_off)
  73. clrState = clRed;
  74. if (FVmsObj->STATE.ModulePowerStatus == vms_module_power_unknown)
  75. clrState = clGray;
  76. if (PnlPower->Color != clrState) PnlPower->Color = clrState;
  77. #if 0
  78. //모듈상태 - 목포 싸인텔레콤은 사용안함
  79. clrState = clLime;
  80. if (FVmsObj->STATE.ModuleState == vms_comm_error)
  81. clrState = clRed;
  82. if (PnlModule->Color != clrState) PnlModule->Color = clrState;
  83. #else
  84. //비츠로 도로공사 프로토콜
  85. clrState = clLime;
  86. if (FVmsObj->STATE.PowerCtrlStatus != vms_module_power_on)
  87. clrState = clRed;
  88. if (PnlModule->Color != clrState) PnlModule->Color = clrState;
  89. #endif
  90. //도어상태
  91. clrState = clLime;
  92. if (FVmsObj->STATE.DoorStatus == vms_door_open)
  93. clrState = clRed;
  94. if (FVmsObj->STATE.DoorStatus == vms_door_unknown)
  95. clrState = clGray;
  96. if (PnlDoor->Color != clrState) PnlDoor->Color = clrState;
  97. //팬상태
  98. clrState = clLime;
  99. if (FVmsObj->STATE.FanStatus == vms_fan_on)
  100. clrState = clYellow;
  101. if (PnlFan->Color != clrState) PnlFan->Color = clrState;
  102. //히터상태
  103. clrState = clLime;
  104. if (FVmsObj->STATE.HeaterStatus == vms_heater_on)
  105. clrState = clYellow;
  106. if (FVmsObj->STATE.HeaterStatus == vms_heater_unknown)
  107. clrState = clGray;
  108. if (PnlHeater->Color != clrState) PnlHeater->Color = clrState;
  109. //온도
  110. clrState = clLime;
  111. if (PnlTemp->Color != clrState) PnlTemp->Color = clrState;
  112. }
  113. //---------------------------------------------------------------------------