FrameHanwhaF.cpp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "FrameHanwhaF.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. TFrameHanwha *FrameHanwha;
  28. //---------------------------------------------------------------------------
  29. __fastcall TFrameHanwha::TFrameHanwha(TComponent* Owner)
  30. : TFrame(Owner)
  31. {
  32. FStrmPlay = false;
  33. reMsg->Lines->Clear();
  34. FStrmHandle = 0;
  35. }
  36. //---------------------------------------------------------------------------
  37. void __fastcall TFrameHanwha::BtnWebCamControlMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
  38. {
  39. TImageBtn *pBtn = (TImageBtn*)Sender;
  40. FStrmUser = EdStreamId->Text.Trim();
  41. FStrmPswd = EdStreamPswd->Text.Trim();
  42. String sPTZSpeed = String(PTZSpeed->Position);
  43. FStrmHttp = EdHttpUrl->Text.Trim();
  44. if (FStrmHttp == "")
  45. {
  46. return;
  47. }
  48. // 삼성 iPolis
  49. try
  50. {
  51. String sCmdHtml = "";
  52. TImageBtn *pBtn = (TImageBtn*)Sender;
  53. switch(pBtn->Tag)
  54. {
  55. case 0: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=home&action=control&Channel=0", FStrmHttp.c_str()); break; // HOME
  56. case 1: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=5&Duration=1", FStrmHttp.c_str()); break; // Tilt Up
  57. case 2: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=-5&Duration=1", FStrmHttp.c_str()); break; // Tilt Down
  58. case 3: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=5", FStrmHttp.c_str()); break; // Pan left
  59. case 4: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=-5", FStrmHttp.c_str()); break; // Pan right
  60. case 9: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=3", FStrmHttp.c_str()); break; // Zoom In
  61. case 10: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=-3", FStrmHttp.c_str()); break; // Zoom Out
  62. case 12: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Near", FStrmHttp.c_str()); break; // Focus In
  63. case 13: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Far", FStrmHttp.c_str()); break; // Focus Out
  64. #if 0
  65. case 0: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=home&action=control&Channel=0", FStrmHttp.c_str()); break; // HOME
  66. case 1: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=5&Duration=1", FStrmHttp.c_str()); break; // Tilt Up
  67. case 2: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=-5&Duration=1", FStrmHttp.c_str()); break; // Tilt Down
  68. case 3: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=5", FStrmHttp.c_str()); break; // Pan left
  69. case 4: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=-5", FStrmHttp.c_str()); break; // Pan right
  70. case 9: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=3", FStrmHttp.c_str()); break; // Zoom In
  71. case 10: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=-3", FStrmHttp.c_str()); break; // Zoom Out
  72. case 12: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Near", FStrmHttp.c_str()); break; // Focus In
  73. case 13: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Far", FStrmHttp.c_str()); break; // Focus Out
  74. case 0: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=home&action=control&Channel=0", FStrmHttp.c_str()); break; // HOME
  75. case 1: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=5&Duration=1", FStrmHttp.c_str()); break; // Tilt Up
  76. case 2: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=-5&Duration=1", FStrmHttp.c_str()); break; // Tilt Down
  77. case 3: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=5", FStrmHttp.c_str()); break; // Pan left
  78. case 4: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=-5", FStrmHttp.c_str()); break; // Pan right
  79. case 9: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=3", FStrmHttp.c_str()); break; // Zoom In
  80. case 10: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=-3", FStrmHttp.c_str()); break; // Zoom Out
  81. case 12: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Near", FStrmHttp.c_str()); break; // Focus In
  82. case 13: sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Far", FStrmHttp.c_str()); break; // Focus Out
  83. case 0: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=home&action=control&Channel=0", FStrmHttp.c_str()); break; // HOME
  84. case 1: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=5&Duration=1", FStrmHttp.c_str()); break; // Tilt Up
  85. case 2: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=-5&Duration=1", FStrmHttp.c_str()); break; // Tilt Down
  86. case 3: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=5", FStrmHttp.c_str()); break; // Pan left
  87. case 4: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=-5", FStrmHttp.c_str()); break; // Pan right
  88. case 9: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=3", FStrmHttp.c_str()); break; // Zoom In
  89. case 10: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=-3", FStrmHttp.c_str()); break; // Zoom Out
  90. case 12: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Near", FStrmHttp.c_str()); break; // Focus In
  91. case 13: sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Far", FStrmHttp.c_str()); break; // Focus Out
  92. #endif
  93. default: return;
  94. }
  95. if (sCmdHtml == "") return;
  96. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions >> hoInProcessAuth;
  97. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions << hoInProcessAuth;
  98. String sResult = IdHTTP1->Get(sCmdHtml);
  99. reMsg->Lines->Add(sResult);
  100. IdHTTP1->Disconnect();
  101. }
  102. catch(...) {}
  103. }
  104. //---------------------------------------------------------------------------
  105. void __fastcall TFrameHanwha::BtnWebCamControlMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
  106. {
  107. TImageBtn *pBtn = (TImageBtn*)Sender;
  108. FStrmUser = EdStreamId->Text.Trim();
  109. FStrmPswd = EdStreamPswd->Text.Trim();
  110. String sPTZSpeed = String(PTZSpeed->Position);
  111. FStrmHttp = EdHttpUrl->Text.Trim();
  112. if (FStrmHttp == "")
  113. {
  114. return;
  115. }
  116. try
  117. {
  118. String sCmdHtml = "";
  119. switch(pBtn->Tag)
  120. {
  121. case 1: // Tilt Up
  122. case 2: // Tilt Down
  123. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=0&Duration=1", FStrmHttp.c_str());
  124. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=0&Duration=1", FStrmHttp.c_str());
  125. sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Tilt=0&Duration=1", FStrmHttp.c_str());
  126. break;
  127. case 3: // Pan left
  128. case 4: // Pan right
  129. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=0", FStrmHttp.c_str());
  130. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=0", FStrmHttp.c_str());
  131. sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Pan=0", FStrmHttp.c_str());
  132. break;
  133. case 9: // Zoom In
  134. case 10: // Zoom Out
  135. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=0", FStrmHttp.c_str());
  136. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=0", FStrmHttp.c_str());
  137. sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Zoom=0", FStrmHttp.c_str());
  138. break;
  139. case 12: // Focus In
  140. case 13: // Focus Out
  141. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Stop", FStrmHttp.c_str());
  142. //sCmdHtml.printf(L"%s/cgi-bin/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Stop", FStrmHttp.c_str());
  143. sCmdHtml.printf(L"%s/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&action=control&Focus=Stop", FStrmHttp.c_str());
  144. break;
  145. default: return;
  146. }
  147. if (sCmdHtml == "") return;
  148. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions >> hoInProcessAuth;
  149. IdHTTP1->HTTPOptions = IdHTTP1->HTTPOptions << hoInProcessAuth;
  150. String sResult = IdHTTP1->Get(sCmdHtml);
  151. reMsg->Lines->Add(sResult);
  152. IdHTTP1->Disconnect();
  153. }
  154. catch(...) {}
  155. }
  156. //---------------------------------------------------------------------------
  157. void __fastcall TFrameHanwha::OpenStream()
  158. {
  159. FStrmUrl = EdStreamUrl->Text.Trim();
  160. FStrmUser = EdStreamId->Text.Trim();
  161. FStrmPswd = EdStreamPswd->Text.Trim();
  162. AcesTechXPlayer21->URL = FStrmUrl;
  163. FStrmHandle = AcesTechXPlayer21->ConnectAsync();
  164. if (FStrmHandle > 0)
  165. {
  166. }
  167. }
  168. //---------------------------------------------------------------------------
  169. void __fastcall TFrameHanwha::CloseStream()
  170. {
  171. if (FStrmHandle > 0)
  172. {
  173. AcesTechXPlayer21->Close();
  174. }
  175. }
  176. //---------------------------------------------------------------------------
  177. void __fastcall TFrameHanwha::BtnCameraConDisconnClick(TObject *Sender)
  178. {
  179. TcxButton *btn = (TcxButton*)Sender;
  180. if (btn->Tag == 1) {
  181. // 연결
  182. btn->Tag = 0;
  183. btn->Caption = "영상 연결 해제";
  184. OpenStream();
  185. }
  186. else {
  187. // 연결 종료
  188. btn->Tag = 1;
  189. btn->Caption = "영상 연결";
  190. CloseStream();
  191. }
  192. }
  193. //---------------------------------------------------------------------------
  194. void __fastcall TFrameHanwha::IdHTTP1Authorization(TObject *Sender, TIdAuthentication *Authentication, bool &Handled)
  195. {
  196. #if 1
  197. IdHTTP1->Request->Username = FStrmUser;
  198. IdHTTP1->Request->Password = FStrmPswd;
  199. #endif
  200. Authentication->Username = FStrmUser;
  201. Authentication->Password = FStrmPswd;
  202. TIdDigestAuthentication *pAuth1 = (TIdDigestAuthentication*)IdHTTP1->Request->Authentication;
  203. TIdDigestAuthentication *pAuth2 = (TIdDigestAuthentication*)Authentication;
  204. pAuth1->Uri = IdHTTP1->Request->URL;
  205. pAuth2->Method = "GET";
  206. Handled = true;
  207. }
  208. //---------------------------------------------------------------------------
  209. void __fastcall TFrameHanwha::reMsgDblClick(TObject *Sender)
  210. {
  211. reMsg->Lines->Clear();
  212. }
  213. //---------------------------------------------------------------------------