CDSCctvF.cpp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSCctvF.h"
  4. #include "AppGlobalF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. TXCamera::TXCamera()
  8. {
  9. }
  10. //---------------------------------------------------------------------------
  11. TXCamera::~TXCamera()
  12. {
  13. }
  14. //---------------------------------------------------------------------------
  15. TXView::TXView()
  16. {
  17. FForm = NULL;
  18. FCount= 0;
  19. }
  20. //---------------------------------------------------------------------------
  21. TXView::~TXView()
  22. {
  23. }
  24. //---------------------------------------------------------------------------
  25. void TXView::InitCamera()
  26. {
  27. for (int kk = 0; kk < MAX_VMS_CAMERA; kk++)
  28. {
  29. FCamera[kk].Installed = false;
  30. FCamera[kk].Id = "";
  31. FCamera[kk].Play = true;
  32. }
  33. }
  34. //---------------------------------------------------------------------------
  35. //---------------------------------------------------------------------------
  36. TXViewManager *XViewManager = NULL;
  37. //---------------------------------------------------------------------------
  38. /*
  39. * XCctv Manager
  40. */
  41. TXViewManager::TXViewManager()
  42. {
  43. }
  44. //---------------------------------------------------------------------------
  45. TXViewManager::~TXViewManager()
  46. {
  47. }
  48. //---------------------------------------------------------------------------
  49. bool TXViewManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  50. {
  51. String sQry;
  52. TADOQuery *pADO = NULL;
  53. sQry = "SELECT MONITORING_NM, MONITORING_SEQ, VMS_CTLR_NMBR \r\n"
  54. " FROM TB_VMS_MONITORING \r\n"
  55. " WHERE MONITORING_TYPE = 3 \r\n"
  56. " ORDER BY MONITORING_NM DESC, MONITORING_SEQ \r\n";
  57. TXView *pView = NULL;
  58. try
  59. {
  60. FLists.Lock();
  61. FLists.RemoveAll();
  62. try
  63. {
  64. pADO = new TADOQuery(NULL);
  65. pADO->Close();
  66. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  67. pADO->SQL->Clear();
  68. pADO->SQL->Text = sQry;
  69. pADO->Open();
  70. //int nRows = pADO->RecordCount;
  71. for( ; !pADO->Eof; pADO->Next())
  72. {
  73. String sScrName = pADO->FieldByName("MONITORING_NM")->AsString;
  74. String sScrSeq = pADO->FieldByName("MONITORING_SEQ")->AsString;
  75. String sVmsNmbr = pADO->FieldByName("VMS_CTLR_NMBR")->AsString;
  76. pView = FLists.Find(sScrName);
  77. if (!pView)
  78. {
  79. pView = new TXView();
  80. pView->Id = sScrName;
  81. pView->Name = sScrName;
  82. pView->Selected = false;
  83. FLists.Push(pView->Id, pView);
  84. }
  85. if (pView->FCount < MAX_VMS_CAMERA)
  86. {
  87. TXCamera *pCam = &pView->FCamera[pView->FCount++];
  88. pCam->Installed = true;
  89. pCam->Id = sVmsNmbr;
  90. pCam->Play = true;
  91. }
  92. }
  93. }
  94. catch(EDatabaseError &E)
  95. {
  96. DBERRORMSG("VMS영상모니터링화면보조회", String(E.ClassName()), E.Message, sQry);
  97. throw Exception(String(E.ClassName()) + E.Message);
  98. }
  99. catch(Exception &exception)
  100. {
  101. DBERRORMSG("VMS영상모니터링화면보조회", String(exception.ClassName()), exception.Message, sQry);
  102. throw Exception(String(exception.ClassName()) + exception.Message);
  103. }
  104. }
  105. __finally
  106. {
  107. if (pADO)
  108. {
  109. pADO->Close();
  110. delete pADO;
  111. }
  112. FOR_STL(TXView*, pObj, FLists)
  113. {
  114. switch(pObj->FCount)
  115. {
  116. case 0: case 1: pObj->Layout = 0; break; //1*1
  117. case 2: case 3: case 4: pObj->Layout = 1; break; //2*2
  118. case 5: case 6: pObj->Layout = 3; break; //3*2
  119. case 7: case 8: case 9: pObj->Layout = 2; break; //3*3
  120. case 10: case 11: case 12: pObj->Layout = 4; break; //4*3
  121. case 13: case 14: case 15: case 16: pObj->Layout = 5; break; //4*4
  122. case 17: case 18: case 19: case 20: pObj->Layout = 7; break; //5*4
  123. case 21: case 22: case 23: case 24: pObj->Layout = 8; break; //6*4
  124. case 25: case 26: case 27: case 28:
  125. case 29: case 30: pObj->Layout = 9; break; //6*5
  126. default:
  127. if (pObj->FCount <= 42) pObj->Layout = 10; //7*6
  128. else if (pObj->FCount <= 56) pObj->Layout = 11; //8*7
  129. else pObj->Layout = 12; //8*8
  130. break;
  131. }
  132. }
  133. FLists.UnLock();
  134. }
  135. return true;
  136. }
  137. //---------------------------------------------------------------------------