FrmCameraScreenF.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "FrmCameraScreenF.h"
  5. #include "FrmCameraFullScreenF.h"
  6. #include "AppGlobalF.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma link "FRAME_CameraF"
  10. #pragma resource "*.dfm"
  11. TFrmCameraScreen *FrmCameraScreen = NULL;
  12. //---------------------------------------------------------------------------
  13. __fastcall TFrmCameraScreen::TFrmCameraScreen(TComponent* Owner)
  14. : TForm(Owner)
  15. {
  16. FTitle = Caption;
  17. if (g_AppCfg.sLang != "kr") FTitle = "Camera monitoring";
  18. FFullCrsCam = NULL;
  19. FOldCross = NULL;
  20. FCurCross = NULL;
  21. Init();
  22. }
  23. //---------------------------------------------------------------------------
  24. void __fastcall TFrmCameraScreen::ResetScreenForm(String AScreenName)
  25. {
  26. StopAll();
  27. PnlCrs->Caption = " 교차로 ";
  28. TMonitoringScreen* pObj = ObjScreenManager->FLists.Find(AScreenName);
  29. if (!pObj)
  30. {
  31. String sMsg;
  32. if (g_AppCfg.sLang != "kr") sMsg = "Change monitoring screen\r\nNot found screen information.\r\n[" + AScreenName + "]";
  33. else sMsg = "모니터링 화면 변경\r\n화면정보를 찾을 수 없습니다..\r\n[" + AScreenName + "]";
  34. Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  35. return;
  36. }
  37. FCurCross = pObj;
  38. PnlCrs->Caption = AScreenName;//pObj->CROSS_NAME;
  39. try {
  40. LockWindowUpdate(Handle);
  41. FOR_STL(TScreenCtlr*, pScr, pObj->FLists) {
  42. TFRAMECamera *pFrameCamera = (TFRAMECamera*)FindComponent("FRAMECamera" + String(pScr->DIRECTION));
  43. if (pFrameCamera) {
  44. pFrameCamera->Init(pScr, pScr->CAM_ID, pScr->CAM_ID, pScr->CAM_NAME, pScr->STRM_ADDR);
  45. }
  46. }
  47. } __finally {
  48. LockWindowUpdate(0);
  49. }
  50. }
  51. //---------------------------------------------------------------------------
  52. void __fastcall TFrmCameraScreen::Init()
  53. {
  54. for (int ii = 1; ii <= 8; ii++) {
  55. TFRAMECamera *pFrameCamera = (TFRAMECamera*)FindComponent("FRAMECamera" + String(ii));
  56. if (pFrameCamera) {
  57. pFrameCamera->LoadEmptyImage();
  58. }
  59. }
  60. }
  61. //---------------------------------------------------------------------------
  62. void __fastcall TFrmCameraScreen::StopAll()
  63. {
  64. try {
  65. LockWindowUpdate(Handle);
  66. for (int ii = 1; ii <= 8; ii++) {
  67. TFRAMECamera *pFrameCamera = (TFRAMECamera*)FindComponent("FRAMECamera" + String(ii));
  68. if (pFrameCamera) {
  69. pFrameCamera->Init(NULL);
  70. }
  71. }
  72. } __finally {
  73. LockWindowUpdate(0);
  74. }
  75. }
  76. //---------------------------------------------------------------------------
  77. void __fastcall TFrmCameraScreen::Play()
  78. {
  79. try {
  80. LockWindowUpdate(Handle);
  81. for (int ii = 1; ii <= 8; ii++) {
  82. TFRAMECamera *pFrameCamera = (TFRAMECamera*)FindComponent("FRAMECamera" + String(ii));
  83. if (pFrameCamera) {
  84. pFrameCamera->Connect();
  85. }
  86. }
  87. } __finally {
  88. LockWindowUpdate(0);
  89. }
  90. }
  91. //---------------------------------------------------------------------------
  92. void __fastcall TFrmCameraScreen::Stop()
  93. {
  94. try {
  95. LockWindowUpdate(Handle);
  96. for (int ii = 1; ii <= 8; ii++) {
  97. TFRAMECamera *pFrameCamera = (TFRAMECamera*)FindComponent("FRAMECamera" + String(ii));
  98. if (pFrameCamera) {
  99. pFrameCamera->Disconnect();
  100. }
  101. }
  102. } __finally {
  103. LockWindowUpdate(0);
  104. }
  105. }
  106. //---------------------------------------------------------------------------
  107. void __fastcall TFrmCameraScreen::TmrFullScreenTimer(TObject *Sender)
  108. {
  109. TmrFullScreen->Enabled = false;
  110. if (FFullCrsCam != NULL) {
  111. Stop();
  112. TFrmCameraFullScreen *pFrmFullScreen = new TFrmCameraFullScreen(this);
  113. pFrmFullScreen->BoundsRect = this->Monitor->BoundsRect;
  114. pFrmFullScreen->PnlStream->Align = alNone;
  115. pFrmFullScreen->PnlStream->Align = alClient;
  116. pFrmFullScreen->RTSP_ADDR = FFullCrsCam->FULL_STRM_ADDR;
  117. pFrmFullScreen->ShowModal();
  118. PnlCamera->Parent = this;
  119. PnlCamera->Tag = (int)this;
  120. delete pFrmFullScreen;
  121. pFrmFullScreen = NULL;
  122. Play();
  123. }
  124. }
  125. //---------------------------------------------------------------------------