FrameFlexWatchF.cpp 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "FrameFlexWatchF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "cxButtons"
  8. #pragma link "cxGraphics"
  9. #pragma link "cxLookAndFeelPainters"
  10. #pragma link "cxLookAndFeels"
  11. #pragma link "dxSkinBlack"
  12. #pragma link "dxSkinMcSkin"
  13. #pragma link "dxSkinsCore"
  14. #pragma link "ImageBtn"
  15. #pragma link "cxContainer"
  16. #pragma link "cxControls"
  17. #pragma link "cxEdit"
  18. #pragma link "cxLabel"
  19. #pragma link "AcesTechXPlayer2Lib_OCX"
  20. #pragma link "IdBaseComponent"
  21. #pragma link "IdComponent"
  22. #pragma link "IdHTTP"
  23. #pragma link "IdTCPClient"
  24. #pragma link "IdTCPConnection"
  25. #pragma link "cxTextEdit"
  26. #pragma resource "*.dfm"
  27. TFrameFlexWatch *FrameFlexWatch;
  28. //---------------------------------------------------------------------------
  29. __fastcall TFrameFlexWatch::TFrameFlexWatch(TComponent* Owner)
  30. : TFrame(Owner)
  31. {
  32. FStrmPlay = false;
  33. reMsg->Lines->Clear();
  34. FStrmHandle = 0;
  35. }
  36. //---------------------------------------------------------------------------
  37. void __fastcall TFrameFlexWatch::BtnWebCamControlMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
  38. {
  39. TImageBtn *pBtn = (TImageBtn*)Sender;
  40. String sPTZSpeed = String(PTZSpeed->Position);
  41. FStrmHttp = EdHttpUrl->Text.Trim();
  42. if (FStrmHttp == "")
  43. {
  44. return;
  45. }
  46. // Network Camera, goform, goahead
  47. try
  48. {
  49. String sCmdHtml = "";
  50. TImageBtn *pBtn = (TImageBtn*)Sender;
  51. switch(pBtn->Tag)
  52. {
  53. case 1: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x107&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Up
  54. case 2: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x101&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Down
  55. case 3: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x103&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan left
  56. case 4: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x105&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan right
  57. case 9: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10B&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom In
  58. case 10: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10C&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom Out
  59. case 12: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10E&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus In
  60. case 13: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x10D&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus Out
  61. default: return;
  62. }
  63. if (sCmdHtml == "") return;
  64. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions >> hoInProcessAuth;
  65. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions << hoInProcessAuth;
  66. String sResult = IdHTTP1->Get(sCmdHtml);
  67. reMsg->Lines->Add(sResult);
  68. IdHTTP1->Disconnect();
  69. }
  70. catch(...) {}
  71. }
  72. //---------------------------------------------------------------------------
  73. void __fastcall TFrameFlexWatch::BtnWebCamControlMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
  74. {
  75. TImageBtn *pBtn = (TImageBtn*)Sender;
  76. String sPTZSpeed = String(PTZSpeed->Position);
  77. FStrmHttp = EdHttpUrl->Text.Trim();
  78. if (FStrmHttp == "")
  79. {
  80. return;
  81. }
  82. try
  83. {
  84. String sCmdHtml = "";
  85. switch(pBtn->Tag)
  86. {
  87. case 1: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x207&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Up
  88. case 2: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x201&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Tilt Down
  89. case 3: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x203&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan left
  90. case 4: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x205&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Pan right
  91. case 9: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20B&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom In
  92. case 10: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20C&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Zoom Out
  93. case 12: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20E&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus In
  94. case 13: sCmdHtml.printf(L"%s/goform/app/FwPtzCtr?FwModId=0&PortId=0&PtzCode=0x20D&PtzParm=%s&FwCgiVer=0x0001", FStrmHttp.c_str(), sPTZSpeed.c_str()); break; // Focus Out
  95. default: return;
  96. }
  97. if (sCmdHtml == "") return;
  98. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions >> hoInProcessAuth;
  99. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions << hoInProcessAuth;
  100. String sResult = IdHTTP1->Get(sCmdHtml);
  101. reMsg->Lines->Add(sResult);
  102. IdHTTP1->Disconnect();
  103. }
  104. catch(...) {}
  105. }
  106. //---------------------------------------------------------------------------
  107. void __fastcall TFrameFlexWatch::OpenStream()
  108. {
  109. FStrmUrl = EdStreamUrl->Text.Trim();
  110. FStrmUser = EdStreamId->Text.Trim();
  111. FStrmPswd = EdStreamPswd->Text.Trim();
  112. AcesTechXPlayer21->URL = FStrmUrl;
  113. FStrmHandle = AcesTechXPlayer21->ConnectAsync();
  114. if (FStrmHandle > 0)
  115. {
  116. }
  117. }
  118. //---------------------------------------------------------------------------
  119. void __fastcall TFrameFlexWatch::CloseStream()
  120. {
  121. if (FStrmHandle > 0)
  122. {
  123. AcesTechXPlayer21->Close();
  124. }
  125. }
  126. //---------------------------------------------------------------------------
  127. void __fastcall TFrameFlexWatch::BtnCameraConDisconnClick(TObject *Sender)
  128. {
  129. TcxButton *btn = (TcxButton*)Sender;
  130. if (btn->Tag == 1) {
  131. // 연결
  132. btn->Tag = 0;
  133. btn->Caption = "영상 연결 해제";
  134. OpenStream();
  135. }
  136. else {
  137. // 연결 종료
  138. btn->Tag = 1;
  139. btn->Caption = "영상 연결";
  140. CloseStream();
  141. }
  142. }
  143. //---------------------------------------------------------------------------
  144. void __fastcall TFrameFlexWatch::IdHTTP1Authorization(TObject *Sender, TIdAuthentication *Authentication, bool &Handled)
  145. {
  146. #if 1
  147. IdHTTP1->Request->Username = FStrmUser;
  148. IdHTTP1->Request->Password = FStrmPswd;
  149. #endif
  150. Authentication->Username = FStrmUser;
  151. Authentication->Password = FStrmPswd;
  152. TIdDigestAuthentication *pAuth1 = (TIdDigestAuthentication*)IdHTTP1->Request->Authentication;
  153. TIdDigestAuthentication *pAuth2 = (TIdDigestAuthentication*)Authentication;
  154. pAuth1->Uri = IdHTTP1->Request->URL;
  155. pAuth2->Method = "GET";
  156. Handled = true;
  157. }
  158. //---------------------------------------------------------------------------
  159. void __fastcall TFrameFlexWatch::reMsgDblClick(TObject *Sender)
  160. {
  161. reMsg->Lines->Clear();
  162. }
  163. //---------------------------------------------------------------------------