VMSWCAM0_OLDF.cpp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <vcl.h>
  5. #include "AppGlobalF.h"
  6. #include "ITSSkinF.h"
  7. #include "ITSUtilF.h"
  8. #include "FrmVmsOprMainF.h"
  9. #include "VitzroCommF.h"
  10. #pragma hdrstop
  11. #include "VMSWCAM0_OLDF.h"
  12. //---------------------------------------------------------------------------
  13. //---------------------------------------------------------------------------
  14. #pragma package(smart_init)
  15. #pragma link "cxContainer"
  16. #pragma link "cxControls"
  17. #pragma link "cxEdit"
  18. #pragma link "cxGraphics"
  19. #pragma link "cxGroupBox"
  20. #pragma link "cxLookAndFeelPainters"
  21. #pragma link "cxLookAndFeels"
  22. #pragma link "dxSkinBlack"
  23. #pragma link "dxSkinMcSkin"
  24. #pragma link "dxSkinsCore"
  25. #pragma link "ITSVmsDispF"
  26. #pragma link "dxSkinBlue"
  27. #pragma link "dxSkinCaramel"
  28. #pragma link "dxSkinCoffee"
  29. #pragma link "dxSkinDarkRoom"
  30. #pragma link "dxSkinDarkSide"
  31. #pragma link "dxSkinFoggy"
  32. #pragma link "dxSkinGlassOceans"
  33. #pragma link "dxSkiniMaginary"
  34. #pragma link "dxSkinLilian"
  35. #pragma link "dxSkinLiquidSky"
  36. #pragma link "dxSkinLondonLiquidSky"
  37. #pragma link "dxSkinMoneyTwins"
  38. #pragma link "dxSkinOffice2007Black"
  39. #pragma link "dxSkinOffice2007Blue"
  40. #pragma link "dxSkinOffice2007Green"
  41. #pragma link "dxSkinOffice2007Pink"
  42. #pragma link "dxSkinOffice2007Silver"
  43. #pragma link "dxSkinOffice2010Black"
  44. #pragma link "dxSkinOffice2010Blue"
  45. #pragma link "dxSkinOffice2010Silver"
  46. #pragma link "dxSkinSeven"
  47. #pragma link "dxSkinSharp"
  48. #pragma link "dxSkinSilver"
  49. #pragma link "dxSkinStardust"
  50. #pragma link "AXVLC_TLB"
  51. #pragma resource "*.dfm"
  52. #define WIDTH_GAP 3
  53. #define HEIGHT_GAP 3
  54. //TVMSWCAM0 *VMSWCAM0 = NULL;
  55. //---------------------------------------------------------------------------
  56. __fastcall TVMSWCAM0_OLD::TVMSWCAM0_OLD(TComponent* Owner, TVmsCtlr *AVmsObj)
  57. : TForm(Owner)
  58. {
  59. FVmsObj = AVmsObj;
  60. FScrollBox = NULL;
  61. FSelected = false;
  62. FDisplayMode = 0;
  63. FZoomRate = 1.0;
  64. FDispIndex = 0;
  65. FPlay = false;
  66. FWndParent = NULL;
  67. FZoomView = false;
  68. PnlForm->ParentColor = false;
  69. PnlForm->Color = clBlack;
  70. FDispW = FVmsObj->WIDTH;
  71. FDispH = FVmsObj->HEIGHT;
  72. //PnlName->Caption = "[" + FVmsObj->VMS_CTLR_ID + "] " + FVmsObj->VMS_NM;
  73. Caption = FVmsObj->VMS_NM;
  74. PnlName->Caption = FVmsObj->VMS_NM;
  75. PnlName->Hint = String(FVmsObj->VMS_CTLR_NMBR) + " [" + FVmsObj->VMS_CTLR_ID + "] \r\n" + FVmsObj->VMS_NM;
  76. FGapW = 16;
  77. FGapH = 8;
  78. PnlForm->Align = alClient;
  79. #if 0
  80. ImgCommError->Parent = ImgCommNormal->Parent;
  81. ImgCommError->Left = ImgCommNormal->Left;
  82. ImgCommError->Top = ImgCommNormal->Top;
  83. ImgCommError->Visible = false;
  84. ImgCommNormal->Visible= true;
  85. #else
  86. ImgState1->Parent = ImgState0->Parent;
  87. ImgState2->Parent = ImgState0->Parent;
  88. ImgState1->Left = ImgState0->Left;
  89. ImgState1->Top = ImgState0->Top;
  90. ImgState2->Left = ImgState0->Left;
  91. ImgState2->Top = ImgState0->Top;
  92. ImgState1->Visible = false;
  93. ImgState2->Visible = false;
  94. #endif
  95. LoadLocalSkin();
  96. Application->ProcessMessages();
  97. FProg = ".";
  98. PnlStatus->Align = alClient;
  99. PnlStatus->Color = clBlack;
  100. PnlMsg->Color = clBlack;
  101. //VLCPlugin21->FullscreenEnabled = false;
  102. VLCPlugin21->Toolbar = false;
  103. VLCPlugin21->Align = alClient;
  104. VLCPlugin21->Visible = true;
  105. }
  106. //---------------------------------------------------------------------------
  107. void __fastcall TVMSWCAM0_OLD::LoadLocalSkin()
  108. {
  109. PnlMain->ParentColor = false;
  110. PnlMain->Color = clBtnFace;
  111. PnlForm->ParentColor = false;
  112. PnlForm->Color = clBlack;
  113. PnlDoor->ParentColor = false;
  114. PnlFan->ParentColor = false;
  115. PnlHeater->ParentColor = false;
  116. PnlModule->ParentColor = false;
  117. PnlPower->ParentColor = false;
  118. PnlTemp->ParentColor = false;
  119. PnlOprMode->ParentColor = false;
  120. }
  121. //---------------------------------------------------------------------------
  122. void __fastcall TVMSWCAM0_OLD::FormDestroy(TObject *Sender)
  123. {
  124. TmrPlay->Enabled = false;
  125. TmrStop->Enabled = false;
  126. //CamStop();
  127. }
  128. //---------------------------------------------------------------------------
  129. void __fastcall TVMSWCAM0_OLD::FormShow(TObject *Sender)
  130. {
  131. TmrShow->Enabled = true;
  132. RefreshVmsMessage();
  133. RefreshVmsStatus();
  134. }
  135. //---------------------------------------------------------------------------
  136. void __fastcall TVMSWCAM0_OLD::SetFormSize(int AFormW)
  137. {
  138. }
  139. //---------------------------------------------------------------------------
  140. void __fastcall TVMSWCAM0_OLD::SelectForm(bool ASelect)
  141. {
  142. FSelected = ASelect;
  143. if (ASelect)
  144. {
  145. PopupMenu = PopupMenu1;
  146. PnlMain->ParentColor = false;
  147. PnlMain->Color = clBtnHighlight;//clBackground;
  148. }
  149. else
  150. {
  151. PopupMenu = NULL;
  152. PnlMain->ParentColor = false;
  153. PnlMain->Color = clBtnFace;
  154. }
  155. }
  156. //---------------------------------------------------------------------------
  157. void __fastcall TVMSWCAM0_OLD::TmrShowTimer(TObject *Sender)
  158. {
  159. TmrShow->Enabled = false;
  160. PopupMenu = NULL;
  161. if (!FVmsObj)
  162. {
  163. PnlName->Caption = "VMS";
  164. }
  165. RefreshVmsStatus();
  166. }
  167. //---------------------------------------------------------------------------
  168. void __fastcall TVMSWCAM0_OLD::SetPlay(bool APlay)
  169. {
  170. TmrStop->Enabled = false;
  171. TmrPlay->Enabled = false;
  172. FPlay = APlay;
  173. if (FPlay)
  174. {
  175. TmrPlay->Enabled = true;
  176. }
  177. else
  178. {
  179. TmrStop->Enabled = true;
  180. }
  181. }
  182. //---------------------------------------------------------------------------
  183. void __fastcall TVMSWCAM0_OLD::FormClose(TObject *Sender, TCloseAction &Action)
  184. {
  185. TmrStop->Enabled = false;
  186. TmrPlay->Enabled = false;
  187. //CamStop();
  188. }
  189. //---------------------------------------------------------------------------
  190. void __fastcall TVMSWCAM0_OLD::PnlNameClick(TObject *Sender)
  191. {
  192. if (FScrollBox) FScrollBox->SetFocus();
  193. if (FWndParent)
  194. {
  195. POST_MSG(FWndParent, WM_VMS_SELECT, (WPARAM)FVmsObj, (LPARAM)this);
  196. }
  197. }
  198. //---------------------------------------------------------------------------
  199. void __fastcall TVMSWCAM0_OLD::OnFormClick(TObject *Sender)
  200. {
  201. if (FScrollBox) FScrollBox->SetFocus();
  202. }
  203. //---------------------------------------------------------------------------
  204. void __fastcall TVMSWCAM0_OLD::RefreshVmsMessage()
  205. {
  206. //PnlSeq->Caption = String(FVmsObj->VmsMsg->Total);
  207. }
  208. //---------------------------------------------------------------------------
  209. void __fastcall TVMSWCAM0_OLD::RefreshVmsStatus()
  210. {
  211. PnlDoor->Caption = VmsModuleDoor(FVmsObj); //도어
  212. PnlFan->Caption = VmsModuleFan(FVmsObj); //팬
  213. PnlHeater->Caption = VmsModuleHeater(FVmsObj); //히터
  214. PnlModule->Caption = VmsModuleState(FVmsObj); //모듈상태
  215. PnlPower->Caption = VmsModulePower(FVmsObj); //전원상태
  216. PnlTemp->Caption = VmsModuleTemp(FVmsObj); //온도
  217. PnlOprMode->Caption = VmsOperMode(FVmsObj);
  218. #if 0
  219. if (FVmsObj->WSTATE.Comm == vms_normal)
  220. {
  221. if (!ImgCommNormal->Visible) ImgCommNormal->Visible = true;
  222. if ( ImgCommError->Visible) ImgCommError->Visible = false;
  223. }
  224. else
  225. {
  226. if (!ImgCommError->Visible) ImgCommError->Visible = true;
  227. if (ImgCommNormal->Visible) ImgCommNormal->Visible = false;
  228. }
  229. #else
  230. switch(FVmsObj->RunState)
  231. {
  232. case state_normal:
  233. if (!ImgState0->Visible) ImgState0->Visible = true;
  234. if ( ImgState1->Visible) ImgState1->Visible = false;
  235. if ( ImgState2->Visible) ImgState2->Visible = false;
  236. break;
  237. case state_module:
  238. if ( ImgState0->Visible) ImgState0->Visible = false;
  239. if ( ImgState1->Visible) ImgState1->Visible = false;
  240. if (!ImgState2->Visible) ImgState2->Visible = true;
  241. break;
  242. default:
  243. if ( ImgState0->Visible) ImgState0->Visible = false;
  244. if (!ImgState1->Visible) ImgState1->Visible = true;
  245. if ( ImgState2->Visible) ImgState2->Visible = false;
  246. break;
  247. }
  248. #endif
  249. TColor clrState = clLime;
  250. //운영모드
  251. if (FVmsObj->OPER_MODE != "A")
  252. {
  253. clrState = clYellow;
  254. }
  255. if (PnlOprMode->Color != clrState) PnlOprMode->Color = clrState;
  256. if (FVmsObj->WSTATE.Comm != vms_normal)
  257. {
  258. PnlDoor->Color = clGray; //도어
  259. PnlFan->Color = clGray; //팬
  260. PnlHeater->Color = clGray; //히터
  261. PnlModule->Color = clGray; //모듈상태
  262. PnlPower->Color = clGray; //전원상태
  263. PnlTemp->Color = clGray; //온도
  264. return;
  265. }
  266. //도어상태
  267. clrState = clLime;
  268. if (FVmsObj->WSTATE.DoorStatus == vms_open)
  269. clrState = clRed;
  270. if (PnlDoor->Color != clrState) PnlDoor->Color = clrState;
  271. //팬상태
  272. clrState = clLime;
  273. if (FVmsObj->WSTATE.FanStatus == vms_on)
  274. clrState = clYellow;
  275. if (PnlFan->Color != clrState) PnlFan->Color = clrState;
  276. //히터상태
  277. clrState = clLime;
  278. if (FVmsObj->WSTATE.HeaterStatus == vms_on)
  279. clrState = clYellow;
  280. if (PnlHeater->Color != clrState) PnlHeater->Color = clrState;
  281. //모듈상태
  282. clrState = clLime;
  283. if (FVmsObj->WSTATE.ModuleState == vms_error)
  284. clrState = clRed;
  285. if (PnlModule->Color != clrState) PnlModule->Color = clrState;
  286. //전원상태
  287. clrState = clLime;
  288. if (FVmsObj->WSTATE.ModulePowerStatus == vms_on)
  289. clrState = clYellow;
  290. if (PnlPower->Color != clrState) PnlPower->Color = clrState;
  291. //온도
  292. clrState = clLime;
  293. if (PnlTemp->Color != clrState) PnlTemp->Color = clrState;
  294. }
  295. //---------------------------------------------------------------------------
  296. void __fastcall TVMSWCAM0_OLD::PopupMenu1Popup(TObject *Sender)
  297. {
  298. MnuVmsInfId->Caption = "[" + FVmsObj->VMS_CTLR_ID + "]";
  299. MnuCtlrPing->Caption = "제어기 Ping - " + FVmsObj->VMS_CTLR_IP;
  300. if (FVmsObj->WEB_CMRA_IP == "")
  301. {
  302. MnuWebcamPing->Caption = "웹카메라 Ping";
  303. MnuWebcamPing->Enabled = false;
  304. }
  305. else
  306. {
  307. MnuWebcamPing->Caption = "웹카메라 Ping - " + FVmsObj->WEB_CMRA_IP;
  308. MnuWebcamPing->Enabled = true;
  309. }
  310. }
  311. //---------------------------------------------------------------------------
  312. void __fastcall TVMSWCAM0_OLD::MnuNetworkPingClick(TObject *Sender)
  313. {
  314. String sIp = FVmsObj->VMS_CTLR_IP;
  315. TMenuItem *pMenu = (TMenuItem*)Sender;
  316. if (pMenu->Tag == 1)
  317. {
  318. sIp = FVmsObj->WEB_CMRA_IP;
  319. }
  320. ITSUtil_NetworkPing(sIp);
  321. }
  322. //---------------------------------------------------------------------------
  323. void __fastcall TVMSWCAM0_OLD::CamPlay()
  324. {
  325. //CamStop();
  326. AnsiString sTrace = "CamPlay: " + Caption;
  327. ITSUtil_Trace(sTrace.c_str());
  328. try {
  329. OleVariant ovar1 = OleVariant("active");
  330. OleVariant ovar2 = OleVariant(":noaudio");
  331. int res;
  332. int nPlayLists;
  333. VLCPlugin21->playlist->Get_itemCount(nPlayLists);
  334. if (nPlayLists > 0)
  335. {
  336. try {
  337. //if (VLCPlugin21->playlist->isPlaying)
  338. {
  339. VLCPlugin21->playlist->stop();
  340. }
  341. } catch(...) {}
  342. }
  343. VLCPlugin21->playlist->clear();
  344. VLCPlugin21->AutoPlay = true;
  345. String sUrl;
  346. sUrl = FVmsObj->STRM_SESN_NM;
  347. VLCPlugin21->playlist->add(sUrl, ovar1, ovar2, res);
  348. VLCPlugin21->MRL = sUrl;
  349. VLCPlugin21->playlist->playItem(0);
  350. FProg = ".";
  351. PnlMsg->Caption = " Ready...";
  352. PnlStatus->Caption = Caption;
  353. PnlStatus->Visible = true;
  354. VLCPlugin21->playlist->play();
  355. } catch(...) {}
  356. }
  357. //---------------------------------------------------------------------------
  358. void __fastcall TVMSWCAM0_OLD::CamStop()
  359. {
  360. AnsiString sTrace = "CamStop: " + Caption;
  361. ITSUtil_Trace(sTrace.c_str());
  362. try {
  363. PnlMsg->Caption = " Ready...";
  364. //PnlStatus->Caption = "CCTV를 선택하세요.";
  365. PnlStatus->Visible = true;
  366. //if (VLCPlugin21->playlist->isPlaying)
  367. {
  368. VLCPlugin21->playlist->stop();
  369. }
  370. VLCPlugin21->playlist->clear();
  371. VLCPlugin21->AutoPlay = false;
  372. } catch(...) {}
  373. }
  374. //---------------------------------------------------------------------------
  375. void __fastcall TVMSWCAM0_OLD::VLCPlugin21MediaPlayerBuffering(TObject *ASender, int cache)
  376. {
  377. if (PnlStatus->Visible)
  378. {
  379. PnlMsg->Caption = " PlayerBuffering " + FProg;
  380. FProg = FProg + ".";
  381. }
  382. }
  383. //---------------------------------------------------------------------------
  384. void __fastcall TVMSWCAM0_OLD::VLCPlugin21MediaPlayerTimeChanged(TObject *ASender, int Time)
  385. {
  386. if (PnlStatus->Visible)
  387. {
  388. PnlMsg->Caption = " PlayerTimeChanged";
  389. PnlStatus->Visible = false;
  390. FProg = ".";
  391. }
  392. }
  393. //---------------------------------------------------------------------------
  394. void __fastcall TVMSWCAM0_OLD::VLCPlugin21MediaPlayerOpening(TObject *Sender)
  395. {
  396. if (PnlStatus->Visible)
  397. {
  398. PnlMsg->Caption = " PlayerOpening";
  399. }
  400. }
  401. //---------------------------------------------------------------------------
  402. void __fastcall TVMSWCAM0_OLD::VLCPlugin21MediaPlayerPaused(TObject *Sender)
  403. {
  404. if (PnlStatus->Visible)
  405. {
  406. PnlMsg->Caption = " PlayerPaused";
  407. }
  408. }
  409. //---------------------------------------------------------------------------
  410. void __fastcall TVMSWCAM0_OLD::VLCPlugin21MediaPlayerPlaying(TObject *Sender)
  411. {
  412. if (PnlStatus->Visible)
  413. {
  414. PnlMsg->Caption = " PlayerPlaying";
  415. }
  416. }
  417. //---------------------------------------------------------------------------
  418. void __fastcall TVMSWCAM0_OLD::VLCPlugin21MediaPlayerStopped(TObject *Sender)
  419. {
  420. if (PnlStatus->Visible)
  421. {
  422. PnlMsg->Caption = " PlayerStopped";
  423. }
  424. }
  425. //---------------------------------------------------------------------------
  426. void __fastcall TVMSWCAM0_OLD::VLCPlugin21play(TObject *Sender)
  427. {
  428. if (PnlStatus->Visible)
  429. {
  430. //PnlMsg->Caption = " PlayerPlay";
  431. }
  432. }
  433. //---------------------------------------------------------------------------
  434. void __fastcall TVMSWCAM0_OLD::VLCPlugin21stop(TObject *Sender)
  435. {
  436. if (PnlStatus->Visible)
  437. {
  438. PnlMsg->Caption = " PlayerStop";
  439. }
  440. }
  441. //---------------------------------------------------------------------------
  442. void __fastcall TVMSWCAM0_OLD::MnuPlayClick(TObject *Sender)
  443. {
  444. TmrStop->Enabled = false;
  445. TmrPlay->Enabled = true;
  446. }
  447. //---------------------------------------------------------------------------
  448. void __fastcall TVMSWCAM0_OLD::MnuStopClick(TObject *Sender)
  449. {
  450. TmrStop->Enabled = true;
  451. TmrPlay->Enabled = false;
  452. }
  453. //---------------------------------------------------------------------------
  454. void __fastcall TVMSWCAM0_OLD::TmrPlayTimer(TObject *Sender)
  455. {
  456. TmrStop->Enabled = false;
  457. TmrPlay->Enabled = false;
  458. CamPlay();
  459. }
  460. //---------------------------------------------------------------------------
  461. void __fastcall TVMSWCAM0_OLD::TmrStopTimer(TObject *Sender)
  462. {
  463. TmrStop->Enabled = false;
  464. TmrPlay->Enabled = false;
  465. CamStop();
  466. }
  467. //---------------------------------------------------------------------------