HwProtocol_demoDlg.cpp 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674
  1. // HwProtocol_demoDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "HwProtocol_demo.h"
  5. #include "HwProtocol_demoDlg.h"
  6. #include "HwProtocol_DLL.h"
  7. //#include "HikPlayMpeg4.h"
  8. #include "plaympeg4.h"
  9. #pragma comment(lib,"PlayCtrl.lib")
  10. #pragma comment(lib,"HwProtocol.lib")
  11. #include <fstream>
  12. #define BUF4M 4*1024*1024
  13. HWND PLAYBACKWIN = NULL;
  14. #ifdef _DEBUG
  15. #define new DEBUG_NEW
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19. using namespace std;
  20. void CALLBACK VpsEventCallBack(long hDev, T_VPSEVENT EventInfo);
  21. void CALLBACK AlarmCallBack(long hDev,byte AlarmType,long AlarmState);
  22. void CALLBACK dPlayBackDataCallBack(long PlayBackId,int VideoType,char * buf,long buflen,long dwUser);
  23. void CALLBACK dRealDataCallBack(long RealId,int VideoType,char * buf,long buflen,long dwUser);
  24. long SockHandle[10];
  25. long PlayHandle = -1;
  26. long RealHandle = -1;
  27. T_tPlayFile gbfiledata;
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CAboutDlg dialog used for App About
  30. class CAboutDlg : public CDialog
  31. {
  32. public:
  33. CAboutDlg();
  34. // Dialog Data
  35. //{{AFX_DATA(CAboutDlg)
  36. enum { IDD = IDD_ABOUTBOX };
  37. //}}AFX_DATA
  38. // ClassWizard generated virtual function overrides
  39. //{{AFX_VIRTUAL(CAboutDlg)
  40. protected:
  41. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  42. //}}AFX_VIRTUAL
  43. // Implementation
  44. protected:
  45. //{{AFX_MSG(CAboutDlg)
  46. //}}AFX_MSG
  47. DECLARE_MESSAGE_MAP()
  48. };
  49. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  50. {
  51. //{{AFX_DATA_INIT(CAboutDlg)
  52. //}}AFX_DATA_INIT
  53. }
  54. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  55. {
  56. CDialog::DoDataExchange(pDX);
  57. //{{AFX_DATA_MAP(CAboutDlg)
  58. //}}AFX_DATA_MAP
  59. }
  60. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  61. //{{AFX_MSG_MAP(CAboutDlg)
  62. // No message handlers
  63. //}}AFX_MSG_MAP
  64. END_MESSAGE_MAP()
  65. /////////////////////////////////////////////////////////////////////////////
  66. // CHwProtocol_demoDlg dialog
  67. CHwProtocol_demoDlg::CHwProtocol_demoDlg(CWnd* pParent /*=NULL*/)
  68. : CDialog(CHwProtocol_demoDlg::IDD, pParent)
  69. {
  70. //{{AFX_DATA_INIT(CHwProtocol_demoDlg)
  71. // NOTE: the ClassWizard will add member initialization here
  72. //}}AFX_DATA_INIT
  73. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  74. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  75. }
  76. void CHwProtocol_demoDlg::DoDataExchange(CDataExchange* pDX)
  77. {
  78. CDialog::DoDataExchange(pDX);
  79. //{{AFX_DATA_MAP(CHwProtocol_demoDlg)
  80. // NOTE: the ClassWizard will add DDX and DDV calls here
  81. //}}AFX_DATA_MAP
  82. }
  83. BEGIN_MESSAGE_MAP(CHwProtocol_demoDlg, CDialog)
  84. //{{AFX_MSG_MAP(CHwProtocol_demoDlg)
  85. ON_WM_SYSCOMMAND()
  86. ON_WM_PAINT()
  87. ON_WM_QUERYDRAGICON()
  88. ON_BN_CLICKED(IDC_HwPtcLogin, OnHwPtcLogin)
  89. ON_BN_CLICKED(IDC_HwPtcLogout, OnHwPtcLogout)
  90. ON_BN_CLICKED(IDC_GetVideoPara, OnGetVideoPara)
  91. ON_BN_CLICKED(IDC_GetWorkSheet, OnGetWorkSheet)
  92. ON_BN_CLICKED(IDC_HwPtcGetAlarmSetting, OnHwPtcGetAlarmSetting)
  93. ON_BN_CLICKED(IDC_HwPtcGetDevWorkState, OnHwPtcGetDevWorkState)
  94. ON_BN_CLICKED(IDC_HwPtcGetMotionDetect, OnHwPtcGetMotionDetect)
  95. ON_BN_CLICKED(IDC_HwPtcGetMaskInfo, OnHwPtcGetMaskInfo)
  96. ON_BN_CLICKED(IDC_HwPtcGetDevUserInfo, OnHwPtcGetDevUserInfo)
  97. ON_BN_CLICKED(IDC_HwPtcGetVideoColor, OnHwPtcGetVideoColor)
  98. ON_BN_CLICKED(IDC_HwPtcGetDecoderPara, OnHwPtcGetDecoderPara)
  99. ON_BN_CLICKED(IDC_HDDINFO, OnHddinfo)
  100. ON_WM_DESTROY()
  101. ON_BN_CLICKED(IDC_Other, OnOther)
  102. ON_BN_CLICKED(IDC_POWEROFF, OnPoweroff)
  103. ON_BN_CLICKED(IDC_POWER, OnPower)
  104. ON_BN_CLICKED(IDC_Version, OnVersion)
  105. ON_BN_CLICKED(IDC_PTZDIR, OnPtzdir)
  106. ON_BN_CLICKED(IDC_PTZLEN, OnPtzlen)
  107. ON_BN_CLICKED(IDC_PTZPERSET, OnPtzperset)
  108. ON_BN_CLICKED(IDC_AlarmOut, OnAlarmOut)
  109. ON_BN_CLICKED(IDC_AlarmIn, OnAlarmIn)
  110. ON_BN_CLICKED(IDC_StartRecord, OnStartRecord)
  111. ON_BN_CLICKED(IDC_DecoderAddr, OnDecoderAddr)
  112. ON_BN_CLICKED(IDC_VideoLevel, OnVideoLevel)
  113. ON_BN_CLICKED(IDC_RemoteUserLogin, OnRemoteUserLogin)
  114. ON_BN_CLICKED(IDC_AddPerSet, OnAddPerSet)
  115. ON_BN_CLICKED(IDC_DetailRecordType, OnDetailRecordType)
  116. ON_BN_CLICKED(IDC_WorkSheet, OnWorkSheet)
  117. ON_BN_CLICKED(IDC_Decorder, OnDecorder)
  118. ON_BN_CLICKED(IDC_ISVideoLost, OnISVideoLost)
  119. ON_BN_CLICKED(IDC_SetVpsEventCallback, OnSetVpsEventCallback)
  120. ON_BN_CLICKED(IDC_NormalLog, OnNormalLog)
  121. ON_BN_CLICKED(IDC_VpsEventLog, OnVpsEventLog)
  122. ON_BN_CLICKED(IDC_CHECKTIME, OnChecktime)
  123. ON_BN_CLICKED(IDC_ChkNetState, OnChkNetState)
  124. ON_BN_CLICKED(IDC_VPSCENTER, OnVpscenter)
  125. ON_BN_CLICKED(IDC_OsType, OnOsType)
  126. ON_BN_CLICKED(IDC_SetAlarmCallBack, OnSetAlarmCallBack)
  127. ON_BN_CLICKED(IDC_Temp, OnTemp)
  128. ON_BN_CLICKED(IDC_NETPARA, OnNetpara)
  129. ON_BN_CLICKED(IDC_MakeKeyFrame, OnMakeKeyFrame)
  130. ON_BN_CLICKED(IDC_TEST, OnTest)
  131. ON_BN_CLICKED(IDC_STOPTEST, OnStoptest)
  132. ON_WM_TIMER()
  133. ON_BN_CLICKED(IDC_CHECKDVRTIME, OnCheckdvrtime)
  134. ON_BN_CLICKED(IDC_GETALARMSTATE, OnGetalarmstate)
  135. ON_BN_CLICKED(IDC_AUTOZOOMIN, OnAutozoomin)
  136. ON_BN_CLICKED(IDC_GETLOG, OnGetlog)
  137. ON_BN_CLICKED(IDC_KeyFrame, OnKeyFrame)
  138. ON_BN_CLICKED(IDC_FINDFILE, OnFindfile)
  139. ON_BN_CLICKED(IDC_PLAYFILE, OnPlayfile)
  140. ON_BN_CLICKED(IDC_PLAYCLOSE, OnPlayclose)
  141. ON_BN_CLICKED(IDC_GetPlayPos, OnGetPlayPos)
  142. ON_BN_CLICKED(IDC_SetPlayPos, OnSetPlayPos)
  143. ON_BN_CLICKED(IDC_PLAYSIZE, OnPlaysize)
  144. ON_BN_CLICKED(IDC_FF, OnFf)
  145. ON_BN_CLICKED(IDC_SF, OnSf)
  146. ON_BN_CLICKED(IDC_SetAlarmOut, OnSetAlarmOut)
  147. ON_BN_CLICKED(IDC_RealPlay, OnRealPlay)
  148. ON_BN_CLICKED(IDC_RealStop, OnRealStop)
  149. //}}AFX_MSG_MAP
  150. END_MESSAGE_MAP()
  151. /////////////////////////////////////////////////////////////////////////////
  152. // CHwProtocol_demoDlg message handlers
  153. BOOL CHwProtocol_demoDlg::OnInitDialog()
  154. {
  155. CDialog::OnInitDialog();
  156. // Add "About..." menu item to system menu.
  157. // IDM_ABOUTBOX must be in the system command range.
  158. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  159. ASSERT(IDM_ABOUTBOX < 0xF000);
  160. CMenu* pSysMenu = GetSystemMenu(FALSE);
  161. if (pSysMenu != NULL)
  162. {
  163. CString strAboutMenu;
  164. strAboutMenu.LoadString(IDS_ABOUTBOX);
  165. if (!strAboutMenu.IsEmpty())
  166. {
  167. pSysMenu->AppendMenu(MF_SEPARATOR);
  168. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  169. }
  170. }
  171. // Set the icon for this dialog. The framework does this automatically
  172. // when the application's main window is not a dialog
  173. SetIcon(m_hIcon, TRUE); // Set big icon
  174. SetIcon(m_hIcon, FALSE); // Set small icon
  175. HwPtcInit();
  176. // TODO: Add extra initialization here
  177. return TRUE; // return TRUE unless you set the focus to a control
  178. }
  179. void CHwProtocol_demoDlg::OnDestroy()
  180. {
  181. CDialog::OnDestroy();
  182. HwPtcRelease();
  183. // TODO: Add your message handler code here
  184. }
  185. void CHwProtocol_demoDlg::OnSysCommand(UINT nID, LPARAM lParam)
  186. {
  187. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  188. {
  189. CAboutDlg dlgAbout;
  190. dlgAbout.DoModal();
  191. }
  192. else
  193. {
  194. CDialog::OnSysCommand(nID, lParam);
  195. }
  196. }
  197. // If you add a minimize button to your dialog, you will need the code below
  198. // to draw the icon. For MFC applications using the document/view model,
  199. // this is automatically done for you by the framework.
  200. void CHwProtocol_demoDlg::OnPaint()
  201. {
  202. if (IsIconic())
  203. {
  204. CPaintDC dc(this); // device context for painting
  205. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  206. // Center icon in client rectangle
  207. int cxIcon = GetSystemMetrics(SM_CXICON);
  208. int cyIcon = GetSystemMetrics(SM_CYICON);
  209. CRect rect;
  210. GetClientRect(&rect);
  211. int x = (rect.Width() - cxIcon + 1) / 2;
  212. int y = (rect.Height() - cyIcon + 1) / 2;
  213. // Draw the icon
  214. dc.DrawIcon(x, y, m_hIcon);
  215. }
  216. else
  217. {
  218. CDialog::OnPaint();
  219. }
  220. }
  221. // The system calls this to obtain the cursor to display while the user drags
  222. // the minimized window.
  223. HCURSOR CHwProtocol_demoDlg::OnQueryDragIcon()
  224. {
  225. return (HCURSOR) m_hIcon;
  226. }
  227. void CALLBACK AlarmCallBack(long hDev,byte AlarmType,long AlarmState)
  228. {
  229. TRACE("AlarmType:%d AlarmState:%d",AlarmType,AlarmState);
  230. }
  231. void CALLBACK VpsEventCallBack(long hDev, T_VPSEVENT EventInfo)
  232. {
  233. // int i;
  234. // TRACE("Device:%d",hDev);
  235. // TRACE("Channel:%d",EventInfo.Channel);
  236. // TRACE("EventType:%d",EventInfo.EventType);
  237. // TRACE("EventNo:%d",EventInfo.EventNo);
  238. // TRACE("ObjectID:%d",EventInfo.ObjectID);
  239. // TRACE("bytDay:%d",EventInfo.byteDay);
  240. // TRACE("SHour:%d",EventInfo.SHour);
  241. // TRACE("SMinute:%d",EventInfo.SMinute);
  242. // TRACE("SSecond:%d",EventInfo.SSecond);
  243. // TRACE("EHour:%d",EventInfo.EHour);
  244. // TRACE("EMinute:%d",EventInfo.EMinute);
  245. // TRACE("ESecond:%d",EventInfo.ESecond);
  246. // TRACE("chrDate:%s",EventInfo.chrDate);
  247. // TRACE("StaySeconds:%d",EventInfo.StaySeconds);
  248. // TRACE("ObjLeft:%d",EventInfo.ObjLeft);
  249. // TRACE("ObjTop:%d",EventInfo.ObjTop);
  250. // TRACE("ObjRight:%d",EventInfo.ObjRight);
  251. // TRACE("ObjBottom:%d",EventInfo.ObjBottom);
  252. // TRACE("FilePath:%s",EventInfo.FilePath);
  253. // TRACE("RecordFileName:%s",EventInfo.RecordFileName);
  254. // TRACE("PictureName:%s",EventInfo.PictureName);
  255. //
  256. // TRACE("ScoutChannel:%d",EventInfo.ScoutChannel);
  257. // TRACE("FileScoutPath:%s",EventInfo.FileScoutPath);
  258. // TRACE("RecordScoutFileName:%s",EventInfo.RecordScoutFileName);
  259. // TRACE("PictureScoutName:%s",EventInfo.PictureScoutName);
  260. // TRACE("AreaPoints:%d",EventInfo.AreaPointsNum);
  261. // for(i=0;i<EventInfo.AreaPointsNum;i++)
  262. // {
  263. // TRACE("X%d : %d",i,EventInfo.Area[i].x);
  264. // TRACE("Y%d : %d",i,EventInfo.Area[i].y);
  265. // }
  266. //
  267. // TRACE("ArrowPoints:%d",EventInfo.ArrowPointsNum);
  268. // for(i=0;i<EventInfo.ArrowPointsNum;i++)
  269. // {
  270. // TRACE("X%d : %d",i,EventInfo.Arrow[i].x);
  271. // TRACE("Y%d : %d",i,EventInfo.Arrow[i].y);
  272. // }
  273. // TRACE("Addendum1:%d",EventInfo.Addendum1);
  274. // TRACE("Addendum2:%d",EventInfo.Addendum2);
  275. // TRACE("Addendum3:%d",EventInfo.Addendum3);
  276. }
  277. void CHwProtocol_demoDlg::OnHwPtcLogin()
  278. {
  279. // TODO: Add your control notification handler code here
  280. DWORD dwTest = 0xFFFFFFFE;
  281. dwTest = dwTest +10;
  282. TRACE("dwTest:%d",dwTest);
  283. T_LogDecvice LoginInfo;
  284. T_LogDecviceRes LoginRes;
  285. LoginInfo.ClientType = 2;
  286. // LoginInfo.ClientIp[0] = char(192);
  287. // LoginInfo.ClientIp[1] = char(168);
  288. // LoginInfo.ClientIp[2] = char(0);
  289. // LoginInfo.ClientIp[3] = char(41);
  290. // strcpy(LoginInfo.ClientHostName,"tzy");
  291. strcpy(LoginInfo.ClientUserName,"0");
  292. strcpy(LoginInfo.ClientUserPWD,"0");
  293. SockHandle[0] = HwPtcLogin("192.168.1.247",5201,LoginInfo,&LoginRes);
  294. // TRACE("HwPtcLogin = %d\n",SockHandle[0]);
  295. // TRACE("QueueCount %d",HwPtcGetMsgCount());
  296. HwPtcSetMsgTimeOut(5000);
  297. // TRACE("SocketCount %d",HwPtcGetSockCount());
  298. }
  299. void CHwProtocol_demoDlg::OnHwPtcLogout()
  300. {
  301. // TODO: Add your control notification handler code here
  302. T_LogOutDecvice Logout;
  303. // Logout.ClientIp[0] = char(192);
  304. // Logout.ClientIp[1] = char(168);
  305. // Logout.ClientIp[2] = char(0);
  306. // Logout.ClientIp[3] = char(41);
  307. // strcpy(Logout.ClientHostName,"tzy");
  308. BOOL ret = HwPtcLogout(SockHandle[0],Logout);
  309. TRACE("HwPtcLogout = %d\n",ret);
  310. // TRACE("QueueCount %d",HwPtcGetMsgCount());
  311. //
  312. // TRACE("SocketCount %d",HwPtcGetSockCount());
  313. }
  314. void CHwProtocol_demoDlg::OnGetVideoPara()
  315. {
  316. // TODO: Add your control notification handler code here
  317. T_RVideoPara videoPara;
  318. if(HwPtcGetVideoPara(SockHandle[0],1,&videoPara))
  319. {
  320. TRACE("bytWin %d\n",videoPara.bytWin);
  321. TRACE("bytBright %d\n",videoPara.bytBright);
  322. TRACE("bytContrast %d\n",videoPara.bytContrast);
  323. TRACE("bytSaturation %d\n",videoPara.bytSaturation);
  324. TRACE("bytHue %d\n",videoPara.bytHue);
  325. TRACE("intOsdX %d\n",videoPara.intOsdX);
  326. TRACE("intOsdY %d\n",videoPara.intOsdY);
  327. TRACE("intChannelX %d\n",videoPara.intChannelX);
  328. TRACE("intChannelY %d\n",videoPara.intChannelY);
  329. TRACE("bytChannelNameLen %d\n",videoPara.bytChannelNameLen);
  330. TRACE("bytChannelName %s\n",videoPara.bytChannelName);
  331. TRACE("OSDTYPE %d\n",videoPara.bytOsdType);
  332. TRACE("bytDate %d\n",videoPara.bytDate);
  333. TRACE("bytWeek %d\n",videoPara.bytWeek);
  334. TRACE("bytChn %d\n",videoPara.bytChn);
  335. TRACE("bytQuality %d\n",videoPara.bytQuality);
  336. TRACE("bytMaxBps %d\n",videoPara.bytMaxBps);
  337. TRACE("bytCompress %d\n",videoPara.bytCompress);
  338. TRACE("bytFrame %d\n",videoPara.bytFrame);
  339. TRACE("bytVideoType %d\n",videoPara.bytVideoType);
  340. sprintf(videoPara.bytChannelName,"12345");
  341. videoPara.bytChannelNameLen = 5;
  342. }
  343. else
  344. {
  345. TRACE("HwPtcGetVideoPara FALSE %d",GetLastNetError());
  346. }
  347. TRACE("QueueCount %d",HwPtcGetMsgCount());
  348. if (HwPtcSetVideoPara(SockHandle[0],1,videoPara))
  349. {
  350. AfxMessageBox("OK");
  351. }
  352. else
  353. {
  354. TRACE("HwPtcSetVideoPara FALSE %d",GetLastNetError());
  355. }
  356. TRACE("QueueCount %d",HwPtcGetMsgCount());
  357. }
  358. void CHwProtocol_demoDlg::OnGetWorkSheet()
  359. {
  360. // TODO: Add your control notification handler code here
  361. T_WorkRec TempWrkRec;
  362. if(HwPtcGetWorkSheet(SockHandle[0],1,1,&TempWrkRec))
  363. {
  364. for(int i=0;i<MAX_HW_DAYS;i++)
  365. {
  366. TRACE("Day%d IsSet%d %d\n",i,TempWrkRec.EachDayRec[i].RecDayIsSet,TempWrkRec.EachDayRec[i].RecSegment[2].StopMin);
  367. }
  368. AfxMessageBox("OK");
  369. }
  370. else
  371. {
  372. TRACE("HwPtcGetWorkSheet FALSE %d",GetLastNetError());
  373. }
  374. TRACE("QueueCount %d",HwPtcGetMsgCount());
  375. TempWrkRec.EachDayRec[7].RecSegment[2].StopMin = 12;
  376. if (HwPtcSetWorkSheet(SockHandle[0],1,1,TempWrkRec))
  377. {
  378. AfxMessageBox("OK");
  379. }
  380. else
  381. {
  382. TRACE("HwPtcSetWorkSheet FALSE %d",GetLastNetError());
  383. }
  384. TRACE("QueueCount %d",HwPtcGetMsgCount());
  385. }
  386. void CHwProtocol_demoDlg::OnHwPtcGetAlarmSetting()
  387. {
  388. // TODO: Add your control notification handler code here
  389. T_WorkAlarm TempAlarmSet;
  390. if(HwPtcGetAlarmSetting(SockHandle[0],1,&TempAlarmSet))
  391. {
  392. for(int i = 0;i<MAX_HW_DAYS;i++)
  393. {
  394. TRACE("RecTime %d RecDayIsSet %d\n",TempAlarmSet.EachDayAlarm[i].RecTime,TempAlarmSet.EachDayAlarm[i].RecDayIsSet);
  395. }
  396. TRACE("IsActSet %d %d %d\n" ,TempAlarmSet.ActSegment[2].IsActSet,TempAlarmSet.ActSegment[2].bytCamera1,TempAlarmSet.ActSegment[2].bytSlot);
  397. AfxMessageBox("OK");
  398. }
  399. else
  400. {
  401. TRACE("HwPtcGetAlarmSetting FALSE %d",GetLastNetError());
  402. }
  403. TRACE("QueueCount %d",HwPtcGetMsgCount());
  404. TempAlarmSet.EachDayAlarm[1].RecDayIsSet =1;
  405. TempAlarmSet.EachDayAlarm[1].RecTime = 30;
  406. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].AlarmType = 2;
  407. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].BuFangHour = 12;
  408. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].BuFangMin = 23;
  409. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].CheFangHour = 22;
  410. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].CheFangMin = 33;
  411. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].IsSet = 1;
  412. TempAlarmSet.ActSegment[2].IsActSet = 1;
  413. TempAlarmSet.ActSegment[2].bytCamera1 = 1;
  414. TempAlarmSet.ActSegment[2].bytSlot = 1;
  415. TempAlarmSet.EachDayAlarm[7].RecTime=120;
  416. if(HwPtcSetAlarmSetting(SockHandle[0],1,TempAlarmSet))
  417. {
  418. AfxMessageBox("OK");
  419. }
  420. else
  421. {
  422. TRACE("HwPtcSetAlarmSetting FALSE %d",GetLastNetError());
  423. }
  424. TRACE("QueueCount %d",HwPtcGetMsgCount());
  425. }
  426. void CHwProtocol_demoDlg::OnHwPtcGetDevWorkState()
  427. {
  428. // TODO: Add your control notification handler code here
  429. T_WorkState WorkState;
  430. if (HwPtcGetDevWorkState(SockHandle[0],&WorkState))
  431. {
  432. TRACE("RecState %d AlarmState %d DspState %d VideoState %d\n",WorkState.RecState,WorkState.AlarmState,WorkState.DspState,WorkState.VideoState);
  433. AfxMessageBox("OK");
  434. }else{
  435. TRACE("FALSE %d",GetLastNetError());
  436. }
  437. TRACE("QueueCount %d",HwPtcGetMsgCount());
  438. }
  439. void CHwProtocol_demoDlg::OnHwPtcGetMotionDetect()
  440. {
  441. // TODO: Add your control notification handler code here
  442. T_MovDec MotionDetect;
  443. if (HwPtcGetMotionDetect(SockHandle[0],1,&MotionDetect))
  444. {
  445. TRACE("Sensitive=%d\nAudio=%d\nAuto=%d\nRecordTime=%d\nRelay=%d",MotionDetect.bytSensitive,MotionDetect.bytAudio,MotionDetect.bytAuto,MotionDetect.bytRecordTime,MotionDetect.bytRelay);
  446. for(int i = 0;i<2;i++)
  447. {
  448. if(MotionDetect.MovSegment[i].IsSet==1)
  449. {
  450. TRACE("L %d T %d W %d H %d\n",MotionDetect.MovSegment[i].intLeft,MotionDetect.MovSegment[i].intTop,MotionDetect.MovSegment[i].intWidth,MotionDetect.MovSegment[i].intHeight);
  451. }
  452. }
  453. AfxMessageBox("OK");
  454. }else{
  455. TRACE("HwPtcGetMotionDetect FALSE %d",GetLastNetError());
  456. }
  457. MotionDetect.bytSensitive = 4;
  458. MotionDetect.MovSegment[1].intTop = 10;
  459. MotionDetect.MovSegment[1].intLeft = 10;
  460. MotionDetect.MovSegment[1].intHeight = 200;
  461. MotionDetect.MovSegment[1].intWidth = 200;
  462. MotionDetect.MovSegment[1].IsSet = 1;
  463. TRACE("QueueCount %d",HwPtcGetMsgCount());
  464. if (HwPtcSetMotionDetect(SockHandle[0],1,MotionDetect))
  465. {
  466. AfxMessageBox("OK");
  467. }else{
  468. TRACE("HwPtcSetMotionDetect FALSE %d",GetLastNetError());
  469. }
  470. TRACE("QueueCount %d",HwPtcGetMsgCount());
  471. }
  472. void CHwProtocol_demoDlg::OnHwPtcGetMaskInfo()
  473. {
  474. // TODO: Add your control notification handler code here
  475. T_Mask TempMask;
  476. if(HwPtcGetMaskInfo(SockHandle[0],1,&TempMask))
  477. {
  478. for(int i = 0;i<2;i++)
  479. {
  480. if(TempMask.MaskSegment[i].IsSet==1)
  481. {
  482. TRACE("L %d T %d W %d H %d\n",TempMask.MaskSegment[i].intLeft,TempMask.MaskSegment[i].intTop,TempMask.MaskSegment[i].intWidth,TempMask.MaskSegment[i].intHeight);
  483. }
  484. }
  485. AfxMessageBox("OK");
  486. }
  487. else
  488. {
  489. TRACE("HwPtcGetMaskInfo FALSE %d", GetLastNetError());
  490. }
  491. TRACE("QueueCount %d",HwPtcGetMsgCount());
  492. TempMask.MaskSegment[1].IsSet = 1;
  493. TempMask.MaskSegment[1].intLeft = 10;
  494. TempMask.MaskSegment[1].intTop = 10;
  495. TempMask.MaskSegment[1].intHeight = 200;
  496. TempMask.MaskSegment[1].intWidth = 120;
  497. if(HwPtcSetMaskInfo(SockHandle[0],1,TempMask))
  498. {
  499. AfxMessageBox("OK");
  500. }
  501. else
  502. {
  503. TRACE("HwPtcSetMaskInfo FALSE %d",GetLastNetError());
  504. }
  505. TRACE("QueueCount %d",HwPtcGetMsgCount());
  506. }
  507. void CHwProtocol_demoDlg::OnHwPtcGetDevUserInfo()
  508. {
  509. // TODO: Add your control notification handler code here
  510. T_UserInfoList TempUserInfoList;
  511. if(HwPtcGetDevUserInfo(SockHandle[0],&TempUserInfoList))
  512. {
  513. for(int i =0;i<TempUserInfoList.UserNum;i++)
  514. {
  515. TRACE("UserNo: %d UserName: %s UserPwd: %s UserPro: %d UserDetail: %s\n",i,TempUserInfoList.User[i].UserName,TempUserInfoList.User[i].UserPwd,TempUserInfoList.User[i].UserPro,TempUserInfoList.User[i].UserDetail);
  516. }
  517. AfxMessageBox("OK");
  518. }
  519. else
  520. {
  521. TRACE("HwPtcGetDevUserInfo FALSE %d", GetLastNetError());
  522. }
  523. TRACE("QueueCount %d",HwPtcGetMsgCount());
  524. if(TempUserInfoList.UserNum>0)
  525. {
  526. T_UserInfo TempUsInfo;
  527. //strcpy(TempUsInfo.UserName,TempUserInfoList.User[0].UserName);
  528. strcpy(TempUsInfo.UserName,"1");
  529. strcpy(TempUsInfo.UserPwd,"0");
  530. TempUsInfo.UserPro= 3;
  531. strcpy(TempUsInfo.UserDetail,"Normal User ");
  532. if(HwPtcSetDevUserInfo(SockHandle[0],Type_UsChg,TempUsInfo))
  533. {
  534. AfxMessageBox("OK");
  535. }
  536. else
  537. {
  538. TRACE("HwPtcSetDevUserInfo FALSE %d",GetLastNetError());
  539. }
  540. }
  541. TRACE("QueueCount %d",HwPtcGetMsgCount());
  542. }
  543. void CHwProtocol_demoDlg::OnHwPtcGetVideoColor()
  544. {
  545. // TODO: Add your control notification handler code here
  546. T_RVideoColor TmpPara;
  547. if(HwPtcGetVideoColor(SockHandle[0],1,&TmpPara) )
  548. {
  549. TRACE("bytWin %d\n",TmpPara.bytWin);
  550. TRACE("bytBright %d\n",TmpPara.bytBright);
  551. TRACE("bytContrast %d\n",TmpPara.bytContrast);
  552. TRACE("bytSaturation %d\n",TmpPara.bytSaturation);
  553. TRACE("bytHue %d\n",TmpPara.bytHue);
  554. TRACE("OK\n");
  555. TmpPara.bytBright = 127;
  556. TmpPara.bytContrast = 127;
  557. TmpPara.bytSaturation = 64;
  558. TmpPara.bytHue = 0;
  559. }
  560. else
  561. {
  562. TRACE("FALSE %d\n",GetLastNetError());
  563. }
  564. TRACE("QueueCount %d",HwPtcGetMsgCount());
  565. if(HwPtcSetVideoColor(SockHandle[0],TmpPara))
  566. {
  567. AfxMessageBox("OK");
  568. }
  569. else
  570. {
  571. TRACE("HwPtcGetVideoColor FALSE %d",GetLastNetError());
  572. }
  573. TRACE("QueueCount %d",HwPtcGetMsgCount());
  574. }
  575. void CHwProtocol_demoDlg::OnHwPtcGetDecoderPara()
  576. {
  577. // TODO: Add your control notification handler code here
  578. T_DecoderPara decoderPara;
  579. if(HwPtcGetDecoderPara(SockHandle[0],1,&decoderPara))
  580. {
  581. TRACE("BaudRate=%d\n",decoderPara.lngBaudRate);
  582. TRACE("DataBit=%d\n",decoderPara.bytDataBit);
  583. TRACE("Decoder Addr=%d\n",decoderPara.bytDecAddr);
  584. TRACE("Decoder Protocol=%d\n",decoderPara.bytDecPrtc);
  585. TRACE("StopBit=%d\n",decoderPara.bytStopBit);
  586. TRACE("ParityBit=%d\n",decoderPara.bytParityBit);
  587. // decoderPara.bytDecPrtc = 3;
  588. }
  589. else
  590. {
  591. TRACE("HwPtcGetDecoderPara FALSE %d\n",GetLastNetError());
  592. }
  593. TRACE("QueueCount %d",HwPtcGetMsgCount());
  594. decoderPara.lngBaudRate = 9600;
  595. if(HwPtcSetDecoderPara(SockHandle[0],1,decoderPara))
  596. {
  597. AfxMessageBox("OK");
  598. }
  599. else
  600. {
  601. TRACE("HwPtcSetDecoderPara FALSE %d",GetLastNetError());
  602. }
  603. TRACE("QueueCount %d",HwPtcGetMsgCount());
  604. }
  605. void CHwProtocol_demoDlg::OnHddinfo()
  606. {
  607. // TODO: Add your control notification handler code here
  608. T_HDDINFOList HddPara;
  609. if(HwPtcGetHDDInfo(SockHandle[0],&HddPara))
  610. {
  611. TRACE("DiskNumber=%d\n",HddPara.byteDiskNumber);
  612. TRACE("TotalVolume=%d\n",HddPara.lngTotalVolume);
  613. TRACE("TotalFreeSpace=%d\n",HddPara.lngTotalFreeSpace);
  614. for(int i=0;i<HddPara.byteDiskNumber;i++)
  615. {
  616. TRACE("DiskNo=%d byteDiskNo=%d\n",i,HddPara.Disk[i].byteDiskNo);
  617. TRACE("DiskNo=%d DiskVolume=%d\n",i,HddPara.Disk[i].lngDiskVolume);
  618. TRACE("DiskNo=%d DiskFreeSpace=%d\n",i,HddPara.Disk[i].lngDiskFreeSpace);
  619. }
  620. }
  621. else
  622. {
  623. TRACE("HwPtcGetHDDInfo FALSE %d\n",GetLastNetError());
  624. }
  625. TRACE("QueueCount %d",HwPtcGetMsgCount());
  626. }
  627. void CHwProtocol_demoDlg::OnOther()
  628. {
  629. // TODO: Add your control notification handler code here
  630. T_OTHERINFO OtherPara;
  631. if(HwPtcGetOtherInfo(SockHandle[0],&OtherPara))
  632. {
  633. TRACE("HostName:%s",OtherPara.HostName);
  634. TRACE("byteWinNumber:%d",OtherPara.byteWinNumber);
  635. TRACE("byteAlarmOutNumber:%d",OtherPara.byteAlarmOutNumber);
  636. TRACE("bytePowerOffAlarm:%d",OtherPara.bytePowerOffAlarm);
  637. TRACE("lngChgRecTime:%d",OtherPara.lngChgRecTime);
  638. TRACE("byteDiskCover:%d",OtherPara.byteDiskCover);
  639. TRACE("byteDiskPercent:%d",OtherPara.byteDiskPercent);
  640. // decoderPara.bytDecPrtc = 3;
  641. }
  642. else
  643. {
  644. TRACE("HwPtcGetOtherInfo FALSE %d\n",GetLastNetError());
  645. }
  646. TRACE("QueueCount %d",HwPtcGetMsgCount());
  647. if(HwPtcSetOtherInfo(SockHandle[0],OtherPara))
  648. {
  649. AfxMessageBox("OK");
  650. }
  651. else
  652. {
  653. TRACE("HwPtcSetOtherInfo FALSE %d",GetLastNetError());
  654. }
  655. TRACE("QueueCount %d",HwPtcGetMsgCount());
  656. }
  657. void CHwProtocol_demoDlg::OnPoweroff()
  658. {
  659. // TODO: Add your control notification handler code here
  660. T_POWEROFFWORKSHEET PoweroffPara;
  661. if(HwPtcGetPowerWrkShtInfo(SockHandle[0],&PoweroffPara))
  662. {
  663. for(int iDay=0;iDay<MAX_HW_DAYS;iDay++)
  664. {
  665. TRACE("iDay:%d IsSet:%d",iDay,PoweroffPara.Poweroff[iDay].IsSet);
  666. TRACE("iDay:%d Hour:%d",iDay,PoweroffPara.Poweroff[iDay].Hour);
  667. TRACE("iDay:%d Minute:%d",iDay,PoweroffPara.Poweroff[iDay].Minute);
  668. }
  669. PoweroffPara.Poweroff[6].IsSet = 1;
  670. PoweroffPara.Poweroff[6].Hour = 23;
  671. PoweroffPara.Poweroff[6].Minute = 22;
  672. }
  673. else
  674. {
  675. TRACE("HwPtcGetPowerWrkShtInfo FALSE %d\n",GetLastNetError());
  676. }
  677. TRACE("QueueCount %d",HwPtcGetMsgCount());
  678. if(HwPtcSetPowerWrkShtInfo(SockHandle[0],PoweroffPara))
  679. {
  680. AfxMessageBox("OK");
  681. }
  682. else
  683. {
  684. TRACE("HwPtcSetPowerWrkShtInfo FALSE %d",GetLastNetError());
  685. }
  686. TRACE("QueueCount %d",HwPtcGetMsgCount());
  687. }
  688. void CHwProtocol_demoDlg::OnPower()
  689. {
  690. // TODO: Add your control notification handler code here
  691. TypePowerOp PoweroffPara;
  692. PoweroffPara = Type_AppExit;
  693. if(HwPtcForceSetPower(SockHandle[0],PoweroffPara))
  694. {
  695. TRACE("OK");
  696. }
  697. else
  698. {
  699. TRACE("HwPtcForceSetPower FALSE %d\n",GetLastNetError());
  700. TRACE("QueueCount %d",HwPtcGetMsgCount());
  701. return;
  702. }
  703. TRACE("QueueCount %d",HwPtcGetMsgCount());
  704. T_LogOutDecvice Logout;
  705. Logout.ClientIp[0] = char(192);
  706. Logout.ClientIp[1] = char(168);
  707. Logout.ClientIp[2] = char(0);
  708. Logout.ClientIp[3] = char(41);
  709. strcpy(Logout.ClientHostName,"tzy");
  710. BOOL ret = HwPtcLogout(SockHandle[0],Logout);
  711. TRACE("HwPtcLogout = %d\n",ret);
  712. TRACE("QueueCount %d",HwPtcGetMsgCount());
  713. }
  714. void CHwProtocol_demoDlg::OnVersion()
  715. {
  716. // TODO: Add your control notification handler code here
  717. T_APPVERSION version;
  718. if(HwPtcGetAppVersion(SockHandle[0],&version))
  719. {
  720. TRACE("version:%x",version.Version);
  721. TRACE("Type:%d",version.AppType);
  722. }
  723. else
  724. {
  725. TRACE("HwPtcGetAppVersion FALSE %d\n",GetLastNetError());
  726. }
  727. TRACE("QueueCount %d",HwPtcGetMsgCount());
  728. }
  729. void CHwProtocol_demoDlg::OnPtzdir()
  730. {
  731. // TODO: Add your control notification handler code here
  732. HwPtcPTZDir(SockHandle[0],2,2,60);
  733. Sleep(200);
  734. HwPtcPTZDir(SockHandle[0],2,4,60);
  735. Sleep(200);
  736. HwPtcPTZDir(SockHandle[0],2,6,60);
  737. Sleep(200);
  738. HwPtcPTZDir(SockHandle[0],2,8,60);
  739. Sleep(200);
  740. HwPtcPTZDir(SockHandle[0],2,5,60);
  741. TRACE("QueueCount %d",HwPtcGetMsgCount());
  742. }
  743. void CHwProtocol_demoDlg::OnPtzlen()
  744. {
  745. // TODO: Add your control notification handler code here
  746. HwPtcPTZLen(SockHandle[0],2,2);
  747. Sleep(20);
  748. //HwPtcPTZLen(SockHandle[0],2,7);
  749. TRACE("QueueCount %d",HwPtcGetMsgCount());
  750. }
  751. void CHwProtocol_demoDlg::OnPtzperset()
  752. {
  753. // TODO: Add your control notification handler code here
  754. HwPtcPTZGotoPerSet(SockHandle[0],2,1);
  755. TRACE("QueueCount %d",HwPtcGetMsgCount());
  756. }
  757. void CHwProtocol_demoDlg::OnAlarmOut()
  758. {
  759. // TODO: Add your control notification handler code here
  760. T_AlarmOutState AlarmOutState;
  761. if(HwPtcGetAlarmOutState(SockHandle[0],&AlarmOutState))
  762. {
  763. TRACE("AlarmIn");
  764. TRACE("AlarmInNumber:%d",AlarmOutState.AlarmOutNumber);
  765. for(int iAlarmOut=0;iAlarmOut<AlarmOutState.AlarmOutNumber;iAlarmOut++)
  766. {
  767. TRACE("iAlarmOut:%d IsSet:%d",iAlarmOut,AlarmOutState.AlarmState[iAlarmOut]);
  768. }
  769. }
  770. else
  771. {
  772. TRACE("HwPtcGetAlarmOutState FALSE %d\n",GetLastNetError());
  773. }
  774. TRACE("QueueCount %d",HwPtcGetMsgCount());
  775. if(HwPtcSetAlarmOutState(SockHandle[0],1,1))
  776. {
  777. AfxMessageBox("OK");
  778. }
  779. else
  780. {
  781. TRACE("HwPtcSetAlarmOutState FALSE %d",GetLastNetError());
  782. }
  783. TRACE("QueueCount %d",HwPtcGetMsgCount());
  784. }
  785. void CHwProtocol_demoDlg::OnAlarmIn()
  786. {
  787. // TODO: Add your control notification handler code here
  788. T_AlarmInState AlarmInState;
  789. if(HwPtcGetAlarmInState(SockHandle[0],&AlarmInState))
  790. {
  791. TRACE("AlarmIn");
  792. TRACE("AlarmInNumber:%d",AlarmInState.AlarmInNumber);
  793. for(int iAlarmIn=0;iAlarmIn<AlarmInState.AlarmInNumber;iAlarmIn++)
  794. {
  795. TRACE("iAlarmOut:%d IsSet:%d",iAlarmIn,AlarmInState.AlarmState[iAlarmIn]);
  796. }
  797. }
  798. else
  799. {
  800. TRACE("HwPtcGetAlarmInState FALSE %d\n",GetLastNetError());
  801. }
  802. TRACE("QueueCount %d",HwPtcGetMsgCount());
  803. if(HwPtcSetAlarmInState(SockHandle[0],1,3))
  804. {
  805. AfxMessageBox("OK");
  806. }
  807. else
  808. {
  809. TRACE("HwPtcSetAlarmInState FALSE %d",GetLastNetError());
  810. }
  811. TRACE("QueueCount %d",HwPtcGetMsgCount());
  812. }
  813. void CHwProtocol_demoDlg::OnStartRecord()
  814. {
  815. // TODO: Add your control notification handler code here
  816. if(HwPtcRecord(SockHandle[0],0,0))
  817. {
  818. AfxMessageBox("OK");
  819. }
  820. else
  821. {
  822. TRACE("HwPtcRecord FALSE %d",GetLastNetError());
  823. }
  824. TRACE("QueueCount %d",HwPtcGetMsgCount());
  825. }
  826. void CHwProtocol_demoDlg::OnDecoderAddr()
  827. {
  828. // TODO: Add your control notification handler code here
  829. byte Address;
  830. if(HwPtcGetDecoderAddr(SockHandle[0],1,&Address))
  831. {
  832. TRACE("Decoder 1 Address:%d",Address);
  833. }
  834. else
  835. {
  836. TRACE("HwPtcGetDecoderAddr FALSE %d",GetLastNetError());
  837. }
  838. TRACE("QueueCount %d",HwPtcGetMsgCount());
  839. if(HwPtcSetDecoderAddr(SockHandle[0],1,1))
  840. {
  841. AfxMessageBox("OK");
  842. }
  843. else
  844. {
  845. TRACE("HwPtcSetDecoderAddr FALSE %d",GetLastNetError());
  846. }
  847. TRACE("QueueCount %d",HwPtcGetMsgCount());
  848. }
  849. void CHwProtocol_demoDlg::OnVideoLevel()
  850. {
  851. // TODO: Add your control notification handler code here
  852. byte Level;
  853. if(HwPtcGetVideoLevel(SockHandle[0],1,&Level))
  854. {
  855. TRACE("Video 1 Level:%d",Level);
  856. }
  857. else
  858. {
  859. TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  860. }
  861. TRACE("QueueCount %d",HwPtcGetMsgCount());
  862. if(HwPtcSetVideoLevel(SockHandle[0],1,0))
  863. {
  864. AfxMessageBox("OK");
  865. }
  866. else
  867. {
  868. TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  869. }
  870. TRACE("QueueCount %d",HwPtcGetMsgCount());
  871. }
  872. void CHwProtocol_demoDlg::OnRemoteUserLogin()
  873. {
  874. // TODO: Add your control notification handler code here
  875. T_RemoteUser User;
  876. if(HwPtcGetLoginUser(SockHandle[0],4,&User))
  877. {
  878. TRACE("UserPro :%d",User.UserPro);
  879. TRACE("UserName :%s",User.UserName);
  880. TRACE("UserPwd :%s",User.UserPwd);
  881. }
  882. else
  883. {
  884. TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  885. }
  886. TRACE("QueueCount %d",HwPtcGetMsgCount());
  887. CString UName = "0";
  888. CString UPwd = "0";
  889. User.UserPro = 5;
  890. memcpy(User.UserName,UName,32);
  891. memcpy(User.UserPwd,UPwd,16);
  892. if(HwPtcSetLoginUser(SockHandle[0],4,User))
  893. {
  894. AfxMessageBox("OK");
  895. }
  896. else
  897. {
  898. TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  899. }
  900. TRACE("QueueCount %d",HwPtcGetMsgCount());
  901. }
  902. void CHwProtocol_demoDlg::OnAddPerSet()
  903. {
  904. // TODO: Add your control notification handler code here
  905. if(HwPtcPTZAddPerSet(SockHandle[0],2,1))
  906. {
  907. AfxMessageBox("OK");
  908. }
  909. else
  910. {
  911. TRACE("HwPtcPTZAddPerSet FALSE %d",GetLastNetError());
  912. }
  913. TRACE("QueueCount %d",HwPtcGetMsgCount());
  914. if(HwPtcPTZDelPerSet(SockHandle[0],2,1))
  915. {
  916. AfxMessageBox("OK");
  917. }
  918. else
  919. {
  920. TRACE("HwPtcPTZDelPerSet FALSE %d",GetLastNetError());
  921. }
  922. TRACE("QueueCount %d",HwPtcGetMsgCount());
  923. }
  924. void CHwProtocol_demoDlg::OnDetailRecordType()
  925. {
  926. // TODO: Add your control notification handler code here
  927. T_RECTYPE RecordType;
  928. if(HwPtcGetRecordType(SockHandle[0],&RecordType))
  929. {
  930. TRACE("byteChannelNumber:%d",RecordType.byteChannelNumber);
  931. for(int i = 0;i<RecordType.byteChannelNumber;i++)
  932. {
  933. TRACE("Channel:%d Static:%d",i,RecordType.RecordType[i]);
  934. }
  935. }
  936. else
  937. {
  938. TRACE("HwPtcGetRecordType FALSE %d",GetLastNetError());
  939. }
  940. TRACE("QueueCount %d",HwPtcGetMsgCount());
  941. }
  942. void CHwProtocol_demoDlg::OnWorkSheet()
  943. {
  944. // TODO: Add your control notification handler code here
  945. byte WorkSheet;
  946. if(HwPtcGetCurrentWorkSheet(SockHandle[0],&WorkSheet))
  947. {
  948. TRACE("WorkSheet = %d",WorkSheet);
  949. }
  950. else
  951. {
  952. TRACE("HwPtcGetCurrentWorkSheet FALSE %d",GetLastNetError());
  953. }
  954. TRACE("QueueCount %d",HwPtcGetMsgCount());
  955. if(WorkSheet == 3)
  956. WorkSheet = 2;
  957. else
  958. WorkSheet = 3;
  959. if(HwPtcSetCurrentWorkSheet(SockHandle[0],WorkSheet))
  960. {
  961. AfxMessageBox("OK");
  962. }
  963. else
  964. {
  965. TRACE("HwPtcGetCurrentWorkSheet FALSE %d",GetLastNetError());
  966. }
  967. TRACE("QueueCount %d",HwPtcGetMsgCount());
  968. }
  969. void CHwProtocol_demoDlg::OnDecorder()
  970. {
  971. // TODO: Add your control notification handler code here
  972. T_VideoDecodeType DecodeType;
  973. if(HwPtcGetVideoDecodeType(SockHandle[0],&DecodeType))
  974. {
  975. TRACE("byteChannelNumber:%d",DecodeType.byteChannelNumber);
  976. for(int i = 0;i<DecodeType.byteChannelNumber;i++)
  977. {
  978. TRACE("Channel:%d Type:%d",i,DecodeType.DecodeType[i]);
  979. }
  980. }
  981. else
  982. {
  983. TRACE("HwPtcGetVideoDecodeType FALSE %d",GetLastNetError());
  984. }
  985. TRACE("QueueCount %d",HwPtcGetMsgCount());
  986. }
  987. void CHwProtocol_demoDlg::OnISVideoLost()
  988. {
  989. // TODO: Add your control notification handler code here
  990. T_ISVLAlarm VLALarm;
  991. if(HwPtcGetIsVLAlarm(SockHandle[0],&VLALarm))
  992. {
  993. TRACE("byteChannelNumber:%d",VLALarm.byteChannelNumber);
  994. for(int i = 0;i<VLALarm.byteChannelNumber;i++)
  995. {
  996. TRACE("Channel:%d Type:%d",i,VLALarm.VLAlarm[i]);
  997. if(VLALarm.VLAlarm[i]==0)
  998. {
  999. VLALarm.VLAlarm[i] = 1;
  1000. }
  1001. else
  1002. {
  1003. VLALarm.VLAlarm[i] = 0;
  1004. }
  1005. }
  1006. }
  1007. else
  1008. {
  1009. TRACE("HwPtcGetIsVLAlarm FALSE %d",GetLastNetError());
  1010. }
  1011. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1012. if(HwPtcSetIsVLAlarm(SockHandle[0],VLALarm))
  1013. {
  1014. AfxMessageBox("OK");
  1015. }
  1016. else
  1017. {
  1018. TRACE("HwPtcSetIsVLAlarm FALSE %d",GetLastNetError());
  1019. }
  1020. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1021. }
  1022. void CHwProtocol_demoDlg::OnSetVpsEventCallback()
  1023. {
  1024. // TODO: Add your control notification handler code here
  1025. HwPtcSetVPSEventCallBack(VpsEventCallBack);
  1026. }
  1027. void CHwProtocol_demoDlg::OnNormalLog()
  1028. {
  1029. // TODO: Add your control notification handler code here
  1030. T_GetFileBlock nFileLog;
  1031. nFileLog.Year = 2009;
  1032. nFileLog.Month = 1;
  1033. nFileLog.Day = 5;
  1034. nFileLog.Channel = 0;
  1035. nFileLog.LogType = 1;
  1036. nFileLog.lngBlockNo = 1;
  1037. FILE * stream;
  1038. if ((stream=fopen("NetSvrLog.txt", "r" ))!=NULL)
  1039. {
  1040. fclose(stream);
  1041. DeleteFile("NetSvrLog.txt");
  1042. }
  1043. T_FileBlock nFileBlock;
  1044. while(HwPtcFindFileLog(SockHandle[0],nFileLog,&nFileBlock))
  1045. {
  1046. ofstream OutputFile;
  1047. OutputFile.open( "NetSvrLog.txt" ,ios::app);
  1048. OutputFile<<nFileBlock.BlockData;
  1049. OutputFile.close();
  1050. nFileLog.lngBlockNo++;
  1051. TRACE("LogWrite");
  1052. if(nFileBlock.TotalBlockNumber < nFileLog.lngBlockNo)
  1053. {
  1054. break;
  1055. }
  1056. }
  1057. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1058. }
  1059. void CHwProtocol_demoDlg::OnVpsEventLog()
  1060. {
  1061. // TODO: Add your control notification handler code here
  1062. //T_GetVPSFileBlock nFileLog;
  1063. //nFileLog.Year = 7;
  1064. //nFileLog.Month = 11;
  1065. //nFileLog.Day = 26;
  1066. //nFileLog.Channel = 1;
  1067. //nFileLog.lngBlockNo = 1;
  1068. //T_FileBlock nFileBlock;
  1069. //FILE * stream;
  1070. //if ((stream=fopen("NetSvrLog.txt", "r" ))!=NULL)
  1071. //{
  1072. // fclose(stream);
  1073. // DeleteFile("NetSvrLog.txt");
  1074. //}
  1075. //ofstream OutputFile;
  1076. //
  1077. //OutputFile.open( "NetSvrLog.txt" ,ios::app);
  1078. //OutputFile.setmode(filebuf::binary);
  1079. //while(HwPtcFindVpsEventFileLog(SockHandle[0],nFileLog,&nFileBlock))
  1080. //{
  1081. //
  1082. // //OutputFile.seekp((nFileLog.lngBlockNo-1)*2048);
  1083. // OutputFile.write(nFileBlock.BlockData,nFileBlock.CurrentBlockDataLen);
  1084. // //OutputFile<<nFileBlock.BlockData;
  1085. //
  1086. // nFileLog.lngBlockNo++;
  1087. // TRACE("LogWrite");
  1088. // if(nFileBlock.TotalBlockNumber < (DWORD)nFileLog.lngBlockNo)
  1089. // {
  1090. // break;
  1091. // }
  1092. //}
  1093. //OutputFile.close();
  1094. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1095. }
  1096. void CHwProtocol_demoDlg::OnChecktime()
  1097. {
  1098. // TODO: Add your control notification handler code here
  1099. T_CHECKTIME ChkTime;
  1100. if(HwPtcGetCheckTime(SockHandle[0],&ChkTime))
  1101. {
  1102. TRACE("ChkTime IsSet:%d",ChkTime.bSet);
  1103. TRACE("ChkTime ClientIp:%d.%d.%d.%d",ChkTime.ClientIp[0],ChkTime.ClientIp[1],ChkTime.ClientIp[2],ChkTime.ClientIp[3]);
  1104. TRACE("ChkTime ClientPort:%d",ChkTime.ClientPort);
  1105. TRACE("ChkTime IntervalMinutes:%d",ChkTime.IntervalMinutes);
  1106. }
  1107. else
  1108. {
  1109. TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1110. }
  1111. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1112. ChkTime.ClientPort = 1234;
  1113. if(HwPtcSetCheckTime(SockHandle[0],ChkTime))
  1114. {
  1115. AfxMessageBox("OK");
  1116. }
  1117. else
  1118. {
  1119. TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1120. }
  1121. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1122. }
  1123. void CHwProtocol_demoDlg::OnChkNetState()
  1124. {
  1125. // TODO: Add your control notification handler code here
  1126. T_NETSTATE NetState;
  1127. if(HwPtcChkNetState(SockHandle[0],&NetState))
  1128. {
  1129. TRACE("NetState flag:%d",NetState.Flag);
  1130. TRACE("NetState ClientIp:%d.%d.%d.%d",NetState.DeviceIp[0],NetState.DeviceIp[1],NetState.DeviceIp[2],NetState.DeviceIp[3]);
  1131. TRACE("NetState DeviceName:%s",NetState.DeviceName);
  1132. TRACE("NetState DeviceId:%s",NetState.DeviceId);
  1133. TRACE("NetState NetCardId:%s",NetState.NetCardId);
  1134. TRACE("NetState Port:%d",NetState.MsgPort);
  1135. }
  1136. else
  1137. {
  1138. TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1139. }
  1140. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1141. }
  1142. void CHwProtocol_demoDlg::OnVpscenter()
  1143. {
  1144. // TODO: Add your control notification handler code here
  1145. T_VPSCENTER VpsCenter;
  1146. if(HwPtcGetVpsCenter(SockHandle[0],&VpsCenter))
  1147. {
  1148. TRACE("VpsCenterIp:%d.%d.%d.%d",VpsCenter.CenterIp[0],VpsCenter.CenterIp[1],VpsCenter.CenterIp[2],VpsCenter.CenterIp[3]);
  1149. TRACE("CenterPort:%d",VpsCenter.CenterPort);
  1150. }
  1151. else
  1152. {
  1153. TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1154. }
  1155. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1156. VpsCenter.CenterPort = 13500;
  1157. if(HwPtcSetVpsCenter(SockHandle[0],VpsCenter))
  1158. {
  1159. AfxMessageBox("OK");
  1160. }
  1161. else
  1162. {
  1163. TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1164. }
  1165. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1166. }
  1167. void CHwProtocol_demoDlg::OnOsType()
  1168. {
  1169. // TODO: Add your control notification handler code here
  1170. byte OsType;
  1171. if(HwPtcGetDevOS(SockHandle[0],&OsType))
  1172. {
  1173. TRACE("OsType:%d",OsType);
  1174. }
  1175. else
  1176. {
  1177. TRACE("HwPtcGetDevOS FALSE %d",GetLastNetError());
  1178. }
  1179. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1180. }
  1181. void CHwProtocol_demoDlg::OnSetAlarmCallBack()
  1182. {
  1183. // TODO: Add your control notification handler code here
  1184. //HwPtcSetAlarmCallBack(AlarmCallBack);
  1185. HwPtcRegisterAlarmCallBack(SockHandle[0],AlarmCallBack);
  1186. }
  1187. void CHwProtocol_demoDlg::OnTemp()
  1188. {
  1189. // TODO: Add your control notification handler code here
  1190. T_Temperature Temperature;
  1191. if(HwPtcGetTemperature(SockHandle[0],&Temperature))
  1192. {
  1193. TRACE("bSet:%d",Temperature.bSet);
  1194. TRACE("AlarmTemp:%d",Temperature.AlarmTemp);
  1195. TRACE("CurrentTemp:%d",Temperature.CurrentTemp);
  1196. }
  1197. else
  1198. {
  1199. TRACE("HwPtcGetTemperature FALSE %d",GetLastNetError());
  1200. }
  1201. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1202. Temperature.AlarmTemp = 70;
  1203. if(HwPtcSetTemperature(SockHandle[0],Temperature))
  1204. {
  1205. AfxMessageBox("OK");
  1206. }
  1207. else
  1208. {
  1209. TRACE("HwPtcSetTemperature FALSE %d",GetLastNetError());
  1210. }
  1211. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1212. }
  1213. void CHwProtocol_demoDlg::OnNetpara()
  1214. {
  1215. // TODO: Add your control notification handler code here
  1216. T_VideoNetSendPara NetSendPara;
  1217. if(HwPtcGetVideoNetSendPara(SockHandle[0],1,&NetSendPara))
  1218. {
  1219. TRACE("Channel:%d",NetSendPara.Channel);
  1220. TRACE("bytCompress:%d",NetSendPara.bytCompress);
  1221. TRACE("bytFrame:%d",NetSendPara.bytFrame);
  1222. TRACE("bytMaxBps:%d",NetSendPara.bytMaxBps);
  1223. TRACE("bytQuality:%d",NetSendPara.bytQuality);
  1224. TRACE("bytVideoType:%d",NetSendPara.bytVideoType);
  1225. }
  1226. else
  1227. {
  1228. TRACE("HwPtcGetVideoNetSendPara FALSE %d",GetLastNetError());
  1229. }
  1230. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1231. NetSendPara.bytFrame = 12;
  1232. if(HwPtcSetVideoNetSendPara(SockHandle[0],NetSendPara))
  1233. {
  1234. AfxMessageBox("OK");
  1235. }
  1236. else
  1237. {
  1238. TRACE("HwPtcSetVideoNetSendPara FALSE %d",GetLastNetError());
  1239. }
  1240. TRACE("QueueCount %d",HwPtcGetMsgCount());
  1241. }
  1242. void CHwProtocol_demoDlg::OnMakeKeyFrame()
  1243. {
  1244. // TODO: Add your control notification handler code here
  1245. if(HwPtcMakeKeyFrame(SockHandle[0],1))
  1246. {
  1247. AfxMessageBox("Show MakeKeyFrame OK");
  1248. }
  1249. }
  1250. void CHwProtocol_demoDlg::OnTest()
  1251. {
  1252. // TODO: Add your control notification handler code here
  1253. SetTimer(1,500,NULL);
  1254. }
  1255. void CHwProtocol_demoDlg::OnStoptest()
  1256. {
  1257. // TODO: Add your control notification handler code here
  1258. KillTimer(1);
  1259. }
  1260. void CHwProtocol_demoDlg::OnTimer(UINT nIDEvent)
  1261. {
  1262. // TODO: Add your message handler code here and/or call default
  1263. if(nIDEvent == 1)
  1264. {
  1265. OnHwPtcLogout();
  1266. OnHwPtcLogin();
  1267. }
  1268. CDialog::OnTimer(nIDEvent);
  1269. }
  1270. void CHwProtocol_demoDlg::OnCheckdvrtime()
  1271. {
  1272. // TODO: Add your control notification handler code here
  1273. T_SysDVRTime tTime;
  1274. if(HwPtcGetDVRTime(SockHandle[0],&tTime)==TRUE)
  1275. {
  1276. TRACE("%d-%d-%d %d:%d:%d",tTime.bytYear,tTime.bytMonth,tTime.bytDay,tTime);
  1277. }
  1278. else
  1279. {
  1280. AfxMessageBox("GetDVRTime Failed");
  1281. }
  1282. CTime tt = CTime::GetCurrentTime();
  1283. tTime.bytYear = tt.GetYear()-2000;
  1284. tTime.bytMonth = tt.GetMonth();
  1285. tTime.bytDay = tt.GetDay();
  1286. tTime.bytHour = tt.GetHour();
  1287. tTime.bytMinute = tt.GetMinute();
  1288. tTime.bytSecond = tt.GetSecond();
  1289. if(HwPtcSetDVRTime(SockHandle[0],tTime)==TRUE)
  1290. {
  1291. }
  1292. else
  1293. {
  1294. AfxMessageBox("SetDVRTime Failed");
  1295. }
  1296. }
  1297. void CHwProtocol_demoDlg::OnGetalarmstate()
  1298. {
  1299. // TODO: Add your control notification handler code here
  1300. T_SysAlarmState tAlarmState;
  1301. if(HwPtcGetAlarmState(SockHandle[0],&tAlarmState)==TRUE)
  1302. {
  1303. TRACE("dwStopRecord:%d dwVideoInterrupt:%d",tAlarmState.dwStopRecord,tAlarmState.dwVideoInterrupt);
  1304. }
  1305. else
  1306. {
  1307. AfxMessageBox("GetAlarmState Failed!!");
  1308. }
  1309. }
  1310. void CHwProtocol_demoDlg::OnAutozoomin()
  1311. {
  1312. // TODO: Add your control notification handler code here
  1313. T_AutoZoomIn zoomin;
  1314. zoomin.nChannel = 1;
  1315. zoomin.rect.left = 19;
  1316. zoomin.rect.top = 19;
  1317. zoomin.rect.bottom = zoomin.rect.right = 39;
  1318. if(HwPtcPTZAutoZoomIn(SockHandle[0],zoomin)==TRUE)
  1319. {
  1320. }
  1321. else
  1322. {
  1323. AfxMessageBox("PTZ Auto Zoomin Failed!!!");
  1324. }
  1325. }
  1326. void CHwProtocol_demoDlg::OnGetlog()
  1327. {
  1328. // TODO: Add your control notification handler code here
  1329. T_FileFindLog logselect;
  1330. logselect.dwMajorType = 1;
  1331. logselect.dwMinorType = 0;
  1332. logselect.StartTime.wYear = 2009;
  1333. logselect.StartTime.wMonth = 6;
  1334. logselect.StartTime.wDay = 19;
  1335. long h = HwPtcStartFindLog(SockHandle[0],logselect);
  1336. if(h<0)
  1337. return;
  1338. T_LogItem item;
  1339. int Count=0;
  1340. while(TRUE)
  1341. {
  1342. long ret = HwPtcFindNextLog(h,&item);
  1343. if(ret == LOG_FINDING)
  1344. {
  1345. Sleep(10);
  1346. continue;
  1347. }
  1348. if(ret == LOG_EXCEPTION || ret == LOG_NOMORE || ret == LOG_NONE)
  1349. break;
  1350. TRACE("%s %s time:%d:%d",item.User,item.Description,item.time.wMinute,item.time.wSecond);
  1351. Count++;
  1352. }
  1353. TRACE("Count:%d",Count);
  1354. HwPtcStopFindLog(h);
  1355. }
  1356. void CHwProtocol_demoDlg::OnKeyFrame()
  1357. {
  1358. // TODO: Add your control notification handler code here
  1359. if(HwPtcMakeKeyFrame(SockHandle[0],1)==TRUE)
  1360. AfxMessageBox("OK");
  1361. }
  1362. void CHwProtocol_demoDlg::OnFindfile()
  1363. {
  1364. // TODO: Add your control notification handler code here
  1365. T_FindFile find;
  1366. find.bytWin = 1;
  1367. SYSTEMTIME systime;
  1368. GetSystemTime(&systime);
  1369. find.beg.wYear = systime.wYear;
  1370. find.beg.wMonth = systime.wMonth;
  1371. find.beg.wDay = systime.wDay;
  1372. find.beg.wHour = 0;
  1373. find.beg.wMinute = 0;
  1374. find.beg.wSecond = 0;
  1375. find.end.wYear = systime.wYear;
  1376. find.end.wMonth = systime.wMonth;
  1377. find.end.wDay = systime.wDay;
  1378. find.end.wHour = 23;
  1379. find.end.wMinute = 59;
  1380. find.end.wSecond = 59;
  1381. // find.rect.left = 0;
  1382. // find.rect.right = 704;
  1383. // find.rect.top = 0;
  1384. // find.rect.bottom = 576;
  1385. long handle = HwPtcFindFile(SockHandle[0],8888,find);
  1386. if(handle<0)
  1387. return;
  1388. TRACE("Start Find File Handle:%d",handle);
  1389. while(1)
  1390. {
  1391. T_tPlayFile filedata;
  1392. long rt = HwPtcFindNextFiles(handle,&filedata);
  1393. if(rt==1000)
  1394. {
  1395. TRACE("Time:%d:%d:%d %d:%d:%d\r\n",filedata.beg.wHour,filedata.beg.wMinute,filedata.beg.wSecond,
  1396. filedata.end.wHour,filedata.end.wMinute,filedata.end.wSecond);
  1397. memcpy(&gbfiledata,&filedata,sizeof(T_tPlayFile));
  1398. continue;
  1399. }
  1400. if(rt==1002)
  1401. continue;
  1402. break;
  1403. }
  1404. HwPtcFindClose(handle);
  1405. }
  1406. void CHwProtocol_demoDlg::OnPlayfile()
  1407. {
  1408. // TODO: Add your control notification handler code here
  1409. if(PlayHandle >=0)
  1410. HwPtcStopPlayBack(PlayHandle);
  1411. PLAYBACKWIN = this->GetDlgItem(IDC_PLAY)->GetSafeHwnd();
  1412. PlayM4_SetStreamOpenMode(10,STREAME_FILE);
  1413. PlayHandle = HwPtcPlayBackByTime(SockHandle[0],8888,2,&gbfiledata);
  1414. if(PlayHandle>=0)
  1415. {
  1416. HwPtcSetPlayDataCallBack(PlayHandle,dPlayBackDataCallBack,11);
  1417. HwPtcPlayBackStart(PlayHandle);
  1418. }
  1419. }
  1420. void CALLBACK dPlayBackDataCallBack(long PlayBackId,int VideoType,char * buf,long buflen,long dwUser)
  1421. {
  1422. //Sleep(100);
  1423. TRACE("PlayBackId:%d VideoType:%d User:%d",PlayBackId,VideoType,dwUser);
  1424. if(VideoType==1)
  1425. {
  1426. PlayM4_OpenStream(10,(BYTE*)buf,buflen,BUF4M);
  1427. PlayM4_Play(10, PLAYBACKWIN);
  1428. }
  1429. if(VideoType==2)
  1430. {
  1431. while((BUF4M - PlayM4_GetSourceBufferRemain(10))<buflen)
  1432. {
  1433. Sleep(50);
  1434. }
  1435. PlayM4_InputData(10,(BYTE*)buf,buflen);
  1436. }
  1437. }
  1438. void CHwProtocol_demoDlg::OnPlayclose()
  1439. {
  1440. // TODO: Add your control notification handler code here
  1441. if(PlayHandle>=0)
  1442. {
  1443. PlayM4_Stop(10);
  1444. PlayM4_CloseStream(10);
  1445. HwPtcStopPlayBack(PlayHandle);
  1446. }
  1447. }
  1448. void CHwProtocol_demoDlg::OnGetPlayPos()
  1449. {
  1450. // TODO: Add your control notification handler code here
  1451. long Pos = 0;
  1452. if(PlayHandle>=0)
  1453. {
  1454. HwPtcPlayBackGetPos(PlayHandle,&Pos);
  1455. TRACE("Play Pos:%d",Pos);
  1456. }
  1457. }
  1458. void CHwProtocol_demoDlg::OnSetPlayPos()
  1459. {
  1460. // TODO: Add your control notification handler code here
  1461. long Pos = 25;
  1462. if(PlayHandle>=0)
  1463. {
  1464. HwPtcPlayBackSetPos(PlayHandle,Pos);
  1465. TRACE("Play Pos:%d",Pos);
  1466. }
  1467. }
  1468. void CHwProtocol_demoDlg::OnPlaysize()
  1469. {
  1470. // TODO: Add your control notification handler code here
  1471. if(PlayHandle>=0)
  1472. {
  1473. long Size = 0;
  1474. HwPtcPlayBackGetFileSize(PlayHandle,&Size);
  1475. TRACE("Size:%d",Size);
  1476. }
  1477. }
  1478. void CHwProtocol_demoDlg::OnFf()
  1479. {
  1480. // TODO: Add your control notification handler code here
  1481. PlayM4_Fast(10);
  1482. }
  1483. void CHwProtocol_demoDlg::OnSf()
  1484. {
  1485. // TODO: Add your control notification handler code here
  1486. PlayM4_Slow(10);
  1487. }
  1488. void CHwProtocol_demoDlg::OnSetAlarmOut()
  1489. {
  1490. // TODO: Add your control notification handler code here
  1491. if(HwPtcSetAlarmOutState(SockHandle[0],1,1)==FALSE)
  1492. {
  1493. AfxMessageBox("Failed");
  1494. }
  1495. }
  1496. void CHwProtocol_demoDlg::OnRealPlay()
  1497. {
  1498. // TODO: Add your control notification handler code here
  1499. RealHandle = HwPtcRealPlay(SockHandle[0],6050,0,0,3000);
  1500. if(RealHandle <0)
  1501. return;
  1502. PLAYBACKWIN = this->GetDlgItem(IDC_PLAY)->GetSafeHwnd();
  1503. HwPtcRegisterRealDataCallBack(RealHandle,dRealDataCallBack,0);
  1504. HwPtcRealCapture(RealHandle);
  1505. }
  1506. void CHwProtocol_demoDlg::OnRealStop()
  1507. {
  1508. // TODO: Add your control notification handler code here
  1509. HwPtcRealStop(RealHandle);
  1510. PlayM4_Stop(10);
  1511. }
  1512. void CALLBACK dRealDataCallBack(long RealId,int VideoType,char * buf,long buflen,long dwUser)
  1513. {
  1514. //TRACE("VideoType:%d BufLen:%d",VideoType,buflen);
  1515. if(VideoType == 1)
  1516. {
  1517. PlayM4_SetStreamOpenMode(10,0);
  1518. PlayM4_OpenStream(10,(BYTE*)buf,buflen,1024*1024*2);
  1519. PlayM4_Play(10,PLAYBACKWIN);
  1520. }
  1521. else
  1522. {
  1523. PlayM4_InputData(10,(BYTE*)buf,buflen);
  1524. }
  1525. }