HwProtocol_demoDlg.cpp 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673
  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. using namespace std;
  15. #ifdef _DEBUG
  16. #define new DEBUG_NEW
  17. #undef THIS_FILE
  18. static char THIS_FILE[] = __FILE__;
  19. #endif
  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 = 1;
  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. memset( &Logout,0,sizeof(T_LogOutDecvice) );
  304. // Logout.ClientIp[0] = char(192);
  305. // Logout.ClientIp[1] = char(168);
  306. // Logout.ClientIp[2] = char(0);
  307. // Logout.ClientIp[3] = char(41);
  308. // strcpy(Logout.ClientHostName,"tzy");
  309. BOOL ret = HwPtcLogout(SockHandle[0],Logout);
  310. //TRACE("HwPtcLogout = %d\n",ret);
  311. // //TRACE("QueueCount %d",HwPtcGetMsgCount());
  312. //
  313. // //TRACE("SocketCount %d",HwPtcGetSockCount());
  314. }
  315. void CHwProtocol_demoDlg::OnGetVideoPara()
  316. {
  317. // TODO: Add your control notification handler code here
  318. T_RVideoPara videoPara;
  319. if(HwPtcGetVideoPara(SockHandle[0],1,&videoPara))
  320. {
  321. //TRACE("bytWin %d\n",videoPara.bytWin);
  322. //TRACE("bytBright %d\n",videoPara.bytBright);
  323. //TRACE("bytContrast %d\n",videoPara.bytContrast);
  324. //TRACE("bytSaturation %d\n",videoPara.bytSaturation);
  325. //TRACE("bytHue %d\n",videoPara.bytHue);
  326. //TRACE("intOsdX %d\n",videoPara.intOsdX);
  327. //TRACE("intOsdY %d\n",videoPara.intOsdY);
  328. //TRACE("intChannelX %d\n",videoPara.intChannelX);
  329. //TRACE("intChannelY %d\n",videoPara.intChannelY);
  330. //TRACE("bytChannelNameLen %d\n",videoPara.bytChannelNameLen);
  331. //TRACE("bytChannelName %s\n",videoPara.bytChannelName);
  332. //TRACE("OSDTYPE %d\n",videoPara.bytOsdType);
  333. //TRACE("bytDate %d\n",videoPara.bytDate);
  334. //TRACE("bytWeek %d\n",videoPara.bytWeek);
  335. //TRACE("bytChn %d\n",videoPara.bytChn);
  336. //TRACE("bytQuality %d\n",videoPara.bytQuality);
  337. //TRACE("bytMaxBps %d\n",videoPara.bytMaxBps);
  338. //TRACE("bytCompress %d\n",videoPara.bytCompress);
  339. //TRACE("bytFrame %d\n",videoPara.bytFrame);
  340. //TRACE("bytVideoType %d\n",videoPara.bytVideoType);
  341. sprintf(videoPara.bytChannelName,"12345");
  342. videoPara.bytChannelNameLen = 5;
  343. }
  344. else
  345. {
  346. //TRACE("HwPtcGetVideoPara FALSE %d",GetLastNetError());
  347. }
  348. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  349. if (HwPtcSetVideoPara(SockHandle[0],1,videoPara))
  350. {
  351. AfxMessageBox("OK");
  352. }
  353. else
  354. {
  355. //TRACE("HwPtcSetVideoPara FALSE %d",GetLastNetError());
  356. }
  357. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  358. }
  359. void CHwProtocol_demoDlg::OnGetWorkSheet()
  360. {
  361. // TODO: Add your control notification handler code here
  362. T_WorkRec TempWrkRec;
  363. if(HwPtcGetWorkSheet(SockHandle[0],1,1,&TempWrkRec))
  364. {
  365. for(int i=0;i<MAX_HW_DAYS;i++)
  366. {
  367. //TRACE("Day%d IsSet%d %d\n",i,TempWrkRec.EachDayRec[i].RecDayIsSet,TempWrkRec.EachDayRec[i].RecSegment[2].StopMin);
  368. }
  369. AfxMessageBox("OK");
  370. }
  371. else
  372. {
  373. //TRACE("HwPtcGetWorkSheet FALSE %d",GetLastNetError());
  374. }
  375. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  376. TempWrkRec.EachDayRec[7].RecSegment[2].StopMin = 12;
  377. if (HwPtcSetWorkSheet(SockHandle[0],1,1,TempWrkRec))
  378. {
  379. AfxMessageBox("OK");
  380. }
  381. else
  382. {
  383. //TRACE("HwPtcSetWorkSheet FALSE %d",GetLastNetError());
  384. }
  385. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  386. }
  387. void CHwProtocol_demoDlg::OnHwPtcGetAlarmSetting()
  388. {
  389. // TODO: Add your control notification handler code here
  390. T_WorkAlarm TempAlarmSet;
  391. if(HwPtcGetAlarmSetting(SockHandle[0],1,&TempAlarmSet))
  392. {
  393. for(int i = 0;i<MAX_HW_DAYS;i++)
  394. {
  395. //TRACE("RecTime %d RecDayIsSet %d\n",TempAlarmSet.EachDayAlarm[i].RecTime,TempAlarmSet.EachDayAlarm[i].RecDayIsSet);
  396. }
  397. //TRACE("IsActSet %d %d %d\n" ,TempAlarmSet.ActSegment[2].IsActSet,TempAlarmSet.ActSegment[2].bytCamera1,TempAlarmSet.ActSegment[2].bytSlot);
  398. AfxMessageBox("OK");
  399. }
  400. else
  401. {
  402. //TRACE("HwPtcGetAlarmSetting FALSE %d",GetLastNetError());
  403. }
  404. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  405. TempAlarmSet.EachDayAlarm[1].RecDayIsSet =1;
  406. TempAlarmSet.EachDayAlarm[1].RecTime = 30;
  407. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].AlarmType = 2;
  408. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].BuFangHour = 12;
  409. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].BuFangMin = 23;
  410. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].CheFangHour = 22;
  411. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].CheFangMin = 33;
  412. TempAlarmSet.EachDayAlarm[1].AlarmSegment[0].IsSet = 1;
  413. TempAlarmSet.ActSegment[2].IsActSet = 1;
  414. TempAlarmSet.ActSegment[2].bytCamera1 = 1;
  415. TempAlarmSet.ActSegment[2].bytSlot = 1;
  416. TempAlarmSet.EachDayAlarm[7].RecTime=120;
  417. if(HwPtcSetAlarmSetting(SockHandle[0],1,TempAlarmSet))
  418. {
  419. AfxMessageBox("OK");
  420. }
  421. else
  422. {
  423. //TRACE("HwPtcSetAlarmSetting FALSE %d",GetLastNetError());
  424. }
  425. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  426. }
  427. void CHwProtocol_demoDlg::OnHwPtcGetDevWorkState()
  428. {
  429. // TODO: Add your control notification handler code here
  430. T_WorkState WorkState;
  431. if (HwPtcGetDevWorkState(SockHandle[0],&WorkState))
  432. {
  433. //TRACE("RecState %d AlarmState %d DspState %d VideoState %d\n",WorkState.RecState,WorkState.AlarmState,WorkState.DspState,WorkState.VideoState);
  434. AfxMessageBox("OK");
  435. }else{
  436. //TRACE("FALSE %d",GetLastNetError());
  437. }
  438. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  439. }
  440. void CHwProtocol_demoDlg::OnHwPtcGetMotionDetect()
  441. {
  442. // TODO: Add your control notification handler code here
  443. T_MovDec MotionDetect;
  444. if (HwPtcGetMotionDetect(SockHandle[0],1,&MotionDetect))
  445. {
  446. //TRACE("Sensitive=%d\nAudio=%d\nAuto=%d\nRecordTime=%d\nRelay=%d",MotionDetect.bytSensitive,MotionDetect.bytAudio,MotionDetect.bytAuto,MotionDetect.bytRecordTime,MotionDetect.bytRelay);
  447. for(int i = 0;i<2;i++)
  448. {
  449. if(MotionDetect.MovSegment[i].IsSet==1)
  450. {
  451. //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);
  452. }
  453. }
  454. AfxMessageBox("OK");
  455. }else{
  456. //TRACE("HwPtcGetMotionDetect FALSE %d",GetLastNetError());
  457. }
  458. MotionDetect.bytSensitive = 4;
  459. MotionDetect.MovSegment[1].intTop = 10;
  460. MotionDetect.MovSegment[1].intLeft = 10;
  461. MotionDetect.MovSegment[1].intHeight = 200;
  462. MotionDetect.MovSegment[1].intWidth = 200;
  463. MotionDetect.MovSegment[1].IsSet = 1;
  464. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  465. if (HwPtcSetMotionDetect(SockHandle[0],1,MotionDetect))
  466. {
  467. AfxMessageBox("OK");
  468. }else{
  469. //TRACE("HwPtcSetMotionDetect FALSE %d",GetLastNetError());
  470. }
  471. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  472. }
  473. void CHwProtocol_demoDlg::OnHwPtcGetMaskInfo()
  474. {
  475. // TODO: Add your control notification handler code here
  476. T_Mask TempMask;
  477. if(HwPtcGetMaskInfo(SockHandle[0],1,&TempMask))
  478. {
  479. for(int i = 0;i<2;i++)
  480. {
  481. if(TempMask.MaskSegment[i].IsSet==1)
  482. {
  483. //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);
  484. }
  485. }
  486. AfxMessageBox("OK");
  487. }
  488. else
  489. {
  490. //TRACE("HwPtcGetMaskInfo FALSE %d", GetLastNetError());
  491. }
  492. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  493. TempMask.MaskSegment[1].IsSet = 1;
  494. TempMask.MaskSegment[1].intLeft = 10;
  495. TempMask.MaskSegment[1].intTop = 10;
  496. TempMask.MaskSegment[1].intHeight = 200;
  497. TempMask.MaskSegment[1].intWidth = 120;
  498. if(HwPtcSetMaskInfo(SockHandle[0],1,TempMask))
  499. {
  500. AfxMessageBox("OK");
  501. }
  502. else
  503. {
  504. //TRACE("HwPtcSetMaskInfo FALSE %d",GetLastNetError());
  505. }
  506. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  507. }
  508. void CHwProtocol_demoDlg::OnHwPtcGetDevUserInfo()
  509. {
  510. // TODO: Add your control notification handler code here
  511. T_UserInfoList TempUserInfoList;
  512. if(HwPtcGetDevUserInfo(SockHandle[0],&TempUserInfoList))
  513. {
  514. for(int i =0;i<TempUserInfoList.UserNum;i++)
  515. {
  516. //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);
  517. }
  518. AfxMessageBox("OK");
  519. }
  520. else
  521. {
  522. //TRACE("HwPtcGetDevUserInfo FALSE %d", GetLastNetError());
  523. }
  524. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  525. if(TempUserInfoList.UserNum>0)
  526. {
  527. T_UserInfo TempUsInfo;
  528. //strcpy(TempUsInfo.UserName,TempUserInfoList.User[0].UserName);
  529. strcpy(TempUsInfo.UserName,"1");
  530. strcpy(TempUsInfo.UserPwd,"0");
  531. TempUsInfo.UserPro= 3;
  532. strcpy(TempUsInfo.UserDetail,"Normal User ");
  533. if(HwPtcSetDevUserInfo(SockHandle[0],Type_UsChg,TempUsInfo))
  534. {
  535. AfxMessageBox("OK");
  536. }
  537. else
  538. {
  539. //TRACE("HwPtcSetDevUserInfo FALSE %d",GetLastNetError());
  540. }
  541. }
  542. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  543. }
  544. void CHwProtocol_demoDlg::OnHwPtcGetVideoColor()
  545. {
  546. // TODO: Add your control notification handler code here
  547. T_RVideoColor TmpPara;
  548. if(HwPtcGetVideoColor(SockHandle[0],1,&TmpPara) )
  549. {
  550. //TRACE("bytWin %d\n",TmpPara.bytWin);
  551. //TRACE("bytBright %d\n",TmpPara.bytBright);
  552. //TRACE("bytContrast %d\n",TmpPara.bytContrast);
  553. //TRACE("bytSaturation %d\n",TmpPara.bytSaturation);
  554. //TRACE("bytHue %d\n",TmpPara.bytHue);
  555. //TRACE("OK\n");
  556. TmpPara.bytBright = 127;
  557. TmpPara.bytContrast = 127;
  558. TmpPara.bytSaturation = 64;
  559. TmpPara.bytHue = 0;
  560. }
  561. else
  562. {
  563. //TRACE("FALSE %d\n",GetLastNetError());
  564. }
  565. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  566. if(HwPtcSetVideoColor(SockHandle[0],TmpPara))
  567. {
  568. AfxMessageBox("OK");
  569. }
  570. else
  571. {
  572. //TRACE("HwPtcGetVideoColor FALSE %d",GetLastNetError());
  573. }
  574. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  575. }
  576. void CHwProtocol_demoDlg::OnHwPtcGetDecoderPara()
  577. {
  578. // TODO: Add your control notification handler code here
  579. T_DecoderPara decoderPara;
  580. if(HwPtcGetDecoderPara(SockHandle[0],1,&decoderPara))
  581. {
  582. //TRACE("BaudRate=%d\n",decoderPara.lngBaudRate);
  583. //TRACE("DataBit=%d\n",decoderPara.bytDataBit);
  584. //TRACE("Decoder Addr=%d\n",decoderPara.bytDecAddr);
  585. //TRACE("Decoder Protocol=%d\n",decoderPara.bytDecPrtc);
  586. //TRACE("StopBit=%d\n",decoderPara.bytStopBit);
  587. //TRACE("ParityBit=%d\n",decoderPara.bytParityBit);
  588. // decoderPara.bytDecPrtc = 3;
  589. }
  590. else
  591. {
  592. //TRACE("HwPtcGetDecoderPara FALSE %d\n",GetLastNetError());
  593. }
  594. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  595. decoderPara.lngBaudRate = 9600;
  596. if(HwPtcSetDecoderPara(SockHandle[0],1,decoderPara))
  597. {
  598. AfxMessageBox("OK");
  599. }
  600. else
  601. {
  602. //TRACE("HwPtcSetDecoderPara FALSE %d",GetLastNetError());
  603. }
  604. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  605. }
  606. void CHwProtocol_demoDlg::OnHddinfo()
  607. {
  608. // TODO: Add your control notification handler code here
  609. T_HDDINFOList HddPara;
  610. if(HwPtcGetHDDInfo(SockHandle[0],&HddPara))
  611. {
  612. //TRACE("DiskNumber=%d\n",HddPara.byteDiskNumber);
  613. //TRACE("TotalVolume=%d\n",HddPara.lngTotalVolume);
  614. //TRACE("TotalFreeSpace=%d\n",HddPara.lngTotalFreeSpace);
  615. for(int i=0;i<HddPara.byteDiskNumber;i++)
  616. {
  617. //TRACE("DiskNo=%d byteDiskNo=%d\n",i,HddPara.Disk[i].byteDiskNo);
  618. //TRACE("DiskNo=%d DiskVolume=%d\n",i,HddPara.Disk[i].lngDiskVolume);
  619. //TRACE("DiskNo=%d DiskFreeSpace=%d\n",i,HddPara.Disk[i].lngDiskFreeSpace);
  620. }
  621. }
  622. else
  623. {
  624. //TRACE("HwPtcGetHDDInfo FALSE %d\n",GetLastNetError());
  625. }
  626. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  627. }
  628. void CHwProtocol_demoDlg::OnOther()
  629. {
  630. // TODO: Add your control notification handler code here
  631. T_OTHERINFO OtherPara;
  632. if(HwPtcGetOtherInfo(SockHandle[0],&OtherPara))
  633. {
  634. //TRACE("HostName:%s",OtherPara.HostName);
  635. //TRACE("byteWinNumber:%d",OtherPara.byteWinNumber);
  636. //TRACE("byteAlarmOutNumber:%d",OtherPara.byteAlarmOutNumber);
  637. //TRACE("bytePowerOffAlarm:%d",OtherPara.bytePowerOffAlarm);
  638. //TRACE("lngChgRecTime:%d",OtherPara.lngChgRecTime);
  639. //TRACE("byteDiskCover:%d",OtherPara.byteDiskCover);
  640. //TRACE("byteDiskPercent:%d",OtherPara.byteDiskPercent);
  641. // decoderPara.bytDecPrtc = 3;
  642. }
  643. else
  644. {
  645. //TRACE("HwPtcGetOtherInfo FALSE %d\n",GetLastNetError());
  646. }
  647. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  648. if(HwPtcSetOtherInfo(SockHandle[0],OtherPara))
  649. {
  650. AfxMessageBox("OK");
  651. }
  652. else
  653. {
  654. //TRACE("HwPtcSetOtherInfo FALSE %d",GetLastNetError());
  655. }
  656. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  657. }
  658. void CHwProtocol_demoDlg::OnPoweroff()
  659. {
  660. // TODO: Add your control notification handler code here
  661. T_POWEROFFWORKSHEET PoweroffPara;
  662. if(HwPtcGetPowerWrkShtInfo(SockHandle[0],&PoweroffPara))
  663. {
  664. for(int iDay=0;iDay<MAX_HW_DAYS;iDay++)
  665. {
  666. //TRACE("iDay:%d IsSet:%d",iDay,PoweroffPara.Poweroff[iDay].IsSet);
  667. //TRACE("iDay:%d Hour:%d",iDay,PoweroffPara.Poweroff[iDay].Hour);
  668. //TRACE("iDay:%d Minute:%d",iDay,PoweroffPara.Poweroff[iDay].Minute);
  669. }
  670. PoweroffPara.Poweroff[6].IsSet = 1;
  671. PoweroffPara.Poweroff[6].Hour = 23;
  672. PoweroffPara.Poweroff[6].Minute = 22;
  673. }
  674. else
  675. {
  676. //TRACE("HwPtcGetPowerWrkShtInfo FALSE %d\n",GetLastNetError());
  677. }
  678. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  679. if(HwPtcSetPowerWrkShtInfo(SockHandle[0],PoweroffPara))
  680. {
  681. AfxMessageBox("OK");
  682. }
  683. else
  684. {
  685. //TRACE("HwPtcSetPowerWrkShtInfo FALSE %d",GetLastNetError());
  686. }
  687. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  688. }
  689. void CHwProtocol_demoDlg::OnPower()
  690. {
  691. // TODO: Add your control notification handler code here
  692. TypePowerOp PoweroffPara;
  693. PoweroffPara = Type_AppExit;
  694. if(HwPtcForceSetPower(SockHandle[0],PoweroffPara))
  695. {
  696. //TRACE("OK");
  697. }
  698. else
  699. {
  700. //TRACE("HwPtcForceSetPower FALSE %d\n",GetLastNetError());
  701. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  702. return;
  703. }
  704. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  705. T_LogOutDecvice Logout;
  706. Logout.ClientIp[0] = char(192);
  707. Logout.ClientIp[1] = char(168);
  708. Logout.ClientIp[2] = char(0);
  709. Logout.ClientIp[3] = char(41);
  710. strcpy(Logout.ClientHostName,"tzy");
  711. BOOL ret = HwPtcLogout(SockHandle[0],Logout);
  712. //TRACE("HwPtcLogout = %d\n",ret);
  713. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  714. }
  715. void CHwProtocol_demoDlg::OnVersion()
  716. {
  717. // TODO: Add your control notification handler code here
  718. T_APPVERSION version;
  719. if(HwPtcGetAppVersion(SockHandle[0],&version))
  720. {
  721. //TRACE("version:%x",version.Version);
  722. //TRACE("Type:%d",version.AppType);
  723. }
  724. else
  725. {
  726. //TRACE("HwPtcGetAppVersion FALSE %d\n",GetLastNetError());
  727. }
  728. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  729. }
  730. void CHwProtocol_demoDlg::OnPtzdir()
  731. {
  732. // TODO: Add your control notification handler code here
  733. HwPtcPTZDir(SockHandle[0],2,2,60);
  734. Sleep(200);
  735. HwPtcPTZDir(SockHandle[0],2,4,60);
  736. Sleep(200);
  737. HwPtcPTZDir(SockHandle[0],2,6,60);
  738. Sleep(200);
  739. HwPtcPTZDir(SockHandle[0],2,8,60);
  740. Sleep(200);
  741. HwPtcPTZDir(SockHandle[0],2,5,60);
  742. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  743. }
  744. void CHwProtocol_demoDlg::OnPtzlen()
  745. {
  746. // TODO: Add your control notification handler code here
  747. HwPtcPTZLen(SockHandle[0],2,2);
  748. Sleep(20);
  749. //HwPtcPTZLen(SockHandle[0],2,7);
  750. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  751. }
  752. void CHwProtocol_demoDlg::OnPtzperset()
  753. {
  754. // TODO: Add your control notification handler code here
  755. HwPtcPTZGotoPerSet(SockHandle[0],2,1);
  756. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  757. }
  758. void CHwProtocol_demoDlg::OnAlarmOut()
  759. {
  760. // TODO: Add your control notification handler code here
  761. T_AlarmOutState AlarmOutState;
  762. if(HwPtcGetAlarmOutState(SockHandle[0],&AlarmOutState))
  763. {
  764. //TRACE("AlarmIn");
  765. //TRACE("AlarmInNumber:%d",AlarmOutState.AlarmOutNumber);
  766. for(int iAlarmOut=0;iAlarmOut<AlarmOutState.AlarmOutNumber;iAlarmOut++)
  767. {
  768. //TRACE("iAlarmOut:%d IsSet:%d",iAlarmOut,AlarmOutState.AlarmState[iAlarmOut]);
  769. }
  770. }
  771. else
  772. {
  773. //TRACE("HwPtcGetAlarmOutState FALSE %d\n",GetLastNetError());
  774. }
  775. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  776. if(HwPtcSetAlarmOutState(SockHandle[0],1,1))
  777. {
  778. AfxMessageBox("OK");
  779. }
  780. else
  781. {
  782. //TRACE("HwPtcSetAlarmOutState FALSE %d",GetLastNetError());
  783. }
  784. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  785. }
  786. void CHwProtocol_demoDlg::OnAlarmIn()
  787. {
  788. // TODO: Add your control notification handler code here
  789. T_AlarmInState AlarmInState;
  790. if(HwPtcGetAlarmInState(SockHandle[0],&AlarmInState))
  791. {
  792. //TRACE("AlarmIn");
  793. //TRACE("AlarmInNumber:%d",AlarmInState.AlarmInNumber);
  794. for(int iAlarmIn=0;iAlarmIn<AlarmInState.AlarmInNumber;iAlarmIn++)
  795. {
  796. //TRACE("iAlarmOut:%d IsSet:%d",iAlarmIn,AlarmInState.AlarmState[iAlarmIn]);
  797. }
  798. }
  799. else
  800. {
  801. //TRACE("HwPtcGetAlarmInState FALSE %d\n",GetLastNetError());
  802. }
  803. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  804. if(HwPtcSetAlarmInState(SockHandle[0],1,3))
  805. {
  806. AfxMessageBox("OK");
  807. }
  808. else
  809. {
  810. //TRACE("HwPtcSetAlarmInState FALSE %d",GetLastNetError());
  811. }
  812. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  813. }
  814. void CHwProtocol_demoDlg::OnStartRecord()
  815. {
  816. // TODO: Add your control notification handler code here
  817. if(HwPtcRecord(SockHandle[0],0,0))
  818. {
  819. AfxMessageBox("OK");
  820. }
  821. else
  822. {
  823. //TRACE("HwPtcRecord FALSE %d",GetLastNetError());
  824. }
  825. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  826. }
  827. void CHwProtocol_demoDlg::OnDecoderAddr()
  828. {
  829. // TODO: Add your control notification handler code here
  830. byte Address;
  831. if(HwPtcGetDecoderAddr(SockHandle[0],1,&Address))
  832. {
  833. //TRACE("Decoder 1 Address:%d",Address);
  834. }
  835. else
  836. {
  837. //TRACE("HwPtcGetDecoderAddr FALSE %d",GetLastNetError());
  838. }
  839. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  840. if(HwPtcSetDecoderAddr(SockHandle[0],1,1))
  841. {
  842. AfxMessageBox("OK");
  843. }
  844. else
  845. {
  846. //TRACE("HwPtcSetDecoderAddr FALSE %d",GetLastNetError());
  847. }
  848. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  849. }
  850. void CHwProtocol_demoDlg::OnVideoLevel()
  851. {
  852. // TODO: Add your control notification handler code here
  853. byte Level;
  854. if(HwPtcGetVideoLevel(SockHandle[0],1,&Level))
  855. {
  856. //TRACE("Video 1 Level:%d",Level);
  857. }
  858. else
  859. {
  860. //TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  861. }
  862. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  863. if(HwPtcSetVideoLevel(SockHandle[0],1,0))
  864. {
  865. AfxMessageBox("OK");
  866. }
  867. else
  868. {
  869. //TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  870. }
  871. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  872. }
  873. void CHwProtocol_demoDlg::OnRemoteUserLogin()
  874. {
  875. // TODO: Add your control notification handler code here
  876. T_RemoteUser User;
  877. if(HwPtcGetLoginUser(SockHandle[0],4,&User))
  878. {
  879. //TRACE("UserPro :%d",User.UserPro);
  880. //TRACE("UserName :%s",User.UserName);
  881. //TRACE("UserPwd :%s",User.UserPwd);
  882. }
  883. else
  884. {
  885. //TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  886. }
  887. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  888. CString UName = "0";
  889. CString UPwd = "0";
  890. User.UserPro = 5;
  891. memcpy(User.UserName,UName,32);
  892. memcpy(User.UserPwd,UPwd,16);
  893. if(HwPtcSetLoginUser(SockHandle[0],4,User))
  894. {
  895. AfxMessageBox("OK");
  896. }
  897. else
  898. {
  899. //TRACE("HwPtcGetVideoLevel FALSE %d",GetLastNetError());
  900. }
  901. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  902. }
  903. void CHwProtocol_demoDlg::OnAddPerSet()
  904. {
  905. // TODO: Add your control notification handler code here
  906. if(HwPtcPTZAddPerSet(SockHandle[0],2,1))
  907. {
  908. AfxMessageBox("OK");
  909. }
  910. else
  911. {
  912. //TRACE("HwPtcPTZAddPerSet FALSE %d",GetLastNetError());
  913. }
  914. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  915. if(HwPtcPTZDelPerSet(SockHandle[0],2,1))
  916. {
  917. AfxMessageBox("OK");
  918. }
  919. else
  920. {
  921. //TRACE("HwPtcPTZDelPerSet FALSE %d",GetLastNetError());
  922. }
  923. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  924. }
  925. void CHwProtocol_demoDlg::OnDetailRecordType()
  926. {
  927. // TODO: Add your control notification handler code here
  928. T_RECTYPE RecordType;
  929. if(HwPtcGetRecordType(SockHandle[0],&RecordType))
  930. {
  931. //TRACE("byteChannelNumber:%d",RecordType.byteChannelNumber);
  932. for(int i = 0;i<RecordType.byteChannelNumber;i++)
  933. {
  934. //TRACE("Channel:%d Static:%d",i,RecordType.RecordType[i]);
  935. }
  936. }
  937. else
  938. {
  939. //TRACE("HwPtcGetRecordType FALSE %d",GetLastNetError());
  940. }
  941. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  942. }
  943. void CHwProtocol_demoDlg::OnWorkSheet()
  944. {
  945. // TODO: Add your control notification handler code here
  946. byte WorkSheet;
  947. if(HwPtcGetCurrentWorkSheet(SockHandle[0],&WorkSheet))
  948. {
  949. //TRACE("WorkSheet = %d",WorkSheet);
  950. }
  951. else
  952. {
  953. //TRACE("HwPtcGetCurrentWorkSheet FALSE %d",GetLastNetError());
  954. }
  955. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  956. if(WorkSheet == 3)
  957. WorkSheet = 2;
  958. else
  959. WorkSheet = 3;
  960. if(HwPtcSetCurrentWorkSheet(SockHandle[0],WorkSheet))
  961. {
  962. AfxMessageBox("OK");
  963. }
  964. else
  965. {
  966. //TRACE("HwPtcGetCurrentWorkSheet FALSE %d",GetLastNetError());
  967. }
  968. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  969. }
  970. void CHwProtocol_demoDlg::OnDecorder()
  971. {
  972. // TODO: Add your control notification handler code here
  973. T_VideoDecodeType DecodeType;
  974. if(HwPtcGetVideoDecodeType(SockHandle[0],&DecodeType))
  975. {
  976. //TRACE("byteChannelNumber:%d",DecodeType.byteChannelNumber);
  977. for(int i = 0;i<DecodeType.byteChannelNumber;i++)
  978. {
  979. //TRACE("Channel:%d Type:%d",i,DecodeType.DecodeType[i]);
  980. }
  981. }
  982. else
  983. {
  984. //TRACE("HwPtcGetVideoDecodeType FALSE %d",GetLastNetError());
  985. }
  986. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  987. }
  988. void CHwProtocol_demoDlg::OnISVideoLost()
  989. {
  990. // TODO: Add your control notification handler code here
  991. T_ISVLAlarm VLALarm;
  992. if(HwPtcGetIsVLAlarm(SockHandle[0],&VLALarm))
  993. {
  994. //TRACE("byteChannelNumber:%d",VLALarm.byteChannelNumber);
  995. for(int i = 0;i<VLALarm.byteChannelNumber;i++)
  996. {
  997. //TRACE("Channel:%d Type:%d",i,VLALarm.VLAlarm[i]);
  998. if(VLALarm.VLAlarm[i]==0)
  999. {
  1000. VLALarm.VLAlarm[i] = 1;
  1001. }
  1002. else
  1003. {
  1004. VLALarm.VLAlarm[i] = 0;
  1005. }
  1006. }
  1007. }
  1008. else
  1009. {
  1010. //TRACE("HwPtcGetIsVLAlarm FALSE %d",GetLastNetError());
  1011. }
  1012. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1013. if(HwPtcSetIsVLAlarm(SockHandle[0],VLALarm))
  1014. {
  1015. AfxMessageBox("OK");
  1016. }
  1017. else
  1018. {
  1019. //TRACE("HwPtcSetIsVLAlarm FALSE %d",GetLastNetError());
  1020. }
  1021. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1022. }
  1023. void CHwProtocol_demoDlg::OnSetVpsEventCallback()
  1024. {
  1025. // TODO: Add your control notification handler code here
  1026. HwPtcSetVPSEventCallBack(VpsEventCallBack);
  1027. }
  1028. void CHwProtocol_demoDlg::OnNormalLog()
  1029. {
  1030. // TODO: Add your control notification handler code here
  1031. T_GetFileBlock nFileLog;
  1032. nFileLog.Year = 2009;
  1033. nFileLog.Month = 1;
  1034. nFileLog.Day = 5;
  1035. nFileLog.Channel = 0;
  1036. nFileLog.LogType = 1;
  1037. nFileLog.lngBlockNo = 1;
  1038. FILE * stream;
  1039. if ((stream=fopen("NetSvrLog.txt", "r" ))!=NULL)
  1040. {
  1041. fclose(stream);
  1042. DeleteFile("NetSvrLog.txt");
  1043. }
  1044. T_FileBlock nFileBlock;
  1045. while(HwPtcFindFileLog(SockHandle[0],nFileLog,&nFileBlock))
  1046. {
  1047. ofstream OutputFile;
  1048. OutputFile.open( "NetSvrLog.txt" ,ios::app);
  1049. OutputFile<<nFileBlock.BlockData;
  1050. OutputFile.close();
  1051. nFileLog.lngBlockNo++;
  1052. //TRACE("LogWrite");
  1053. if(nFileBlock.TotalBlockNumber < nFileLog.lngBlockNo)
  1054. {
  1055. break;
  1056. }
  1057. }
  1058. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1059. }
  1060. void CHwProtocol_demoDlg::OnVpsEventLog()
  1061. {
  1062. // TODO: Add your control notification handler code here
  1063. T_GetVPSFileBlock nFileLog;
  1064. nFileLog.Year = 7;
  1065. nFileLog.Month = 11;
  1066. nFileLog.Day = 26;
  1067. nFileLog.Channel = 1;
  1068. nFileLog.lngBlockNo = 1;
  1069. //T_FileBlock nFileBlock;
  1070. //FILE * stream;
  1071. //if ((stream=fopen("NetSvrLog.txt", "r" ))!=NULL)
  1072. //{
  1073. // fclose(stream);
  1074. // DeleteFile("NetSvrLog.txt");
  1075. //}
  1076. //ofstream OutputFile;
  1077. //
  1078. //OutputFile.open( "NetSvrLog.txt" ,ios::app);
  1079. //OutputFile.setmode(filebuf::binary);
  1080. //while(HwPtcFindVpsEventFileLog(SockHandle[0],nFileLog,&nFileBlock))
  1081. //{
  1082. //
  1083. // //OutputFile.seekp((nFileLog.lngBlockNo-1)*2048);
  1084. // OutputFile.write(nFileBlock.BlockData,nFileBlock.CurrentBlockDataLen);
  1085. // //OutputFile<<nFileBlock.BlockData;
  1086. //
  1087. // nFileLog.lngBlockNo++;
  1088. // //TRACE("LogWrite");
  1089. // if(nFileBlock.TotalBlockNumber < (DWORD)nFileLog.lngBlockNo)
  1090. // {
  1091. // break;
  1092. // }
  1093. //}
  1094. //OutputFile.close();
  1095. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1096. }
  1097. void CHwProtocol_demoDlg::OnChecktime()
  1098. {
  1099. // TODO: Add your control notification handler code here
  1100. T_CHECKTIME ChkTime;
  1101. if(HwPtcGetCheckTime(SockHandle[0],&ChkTime))
  1102. {
  1103. //TRACE("ChkTime IsSet:%d",ChkTime.bSet);
  1104. //TRACE("ChkTime ClientIp:%d.%d.%d.%d",ChkTime.ClientIp[0],ChkTime.ClientIp[1],ChkTime.ClientIp[2],ChkTime.ClientIp[3]);
  1105. //TRACE("ChkTime ClientPort:%d",ChkTime.ClientPort);
  1106. //TRACE("ChkTime IntervalMinutes:%d",ChkTime.IntervalMinutes);
  1107. }
  1108. else
  1109. {
  1110. //TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1111. }
  1112. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1113. ChkTime.ClientPort = 1234;
  1114. if(HwPtcSetCheckTime(SockHandle[0],ChkTime))
  1115. {
  1116. AfxMessageBox("OK");
  1117. }
  1118. else
  1119. {
  1120. //TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1121. }
  1122. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1123. }
  1124. void CHwProtocol_demoDlg::OnChkNetState()
  1125. {
  1126. // TODO: Add your control notification handler code here
  1127. T_NETSTATE NetState;
  1128. if(HwPtcChkNetState(SockHandle[0],&NetState))
  1129. {
  1130. //TRACE("NetState flag:%d",NetState.Flag);
  1131. //TRACE("NetState ClientIp:%d.%d.%d.%d",NetState.DeviceIp[0],NetState.DeviceIp[1],NetState.DeviceIp[2],NetState.DeviceIp[3]);
  1132. //TRACE("NetState DeviceName:%s",NetState.DeviceName);
  1133. //TRACE("NetState DeviceId:%s",NetState.DeviceId);
  1134. //TRACE("NetState NetCardId:%s",NetState.NetCardId);
  1135. //TRACE("NetState Port:%d",NetState.MsgPort);
  1136. }
  1137. else
  1138. {
  1139. //TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1140. }
  1141. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1142. }
  1143. void CHwProtocol_demoDlg::OnVpscenter()
  1144. {
  1145. // TODO: Add your control notification handler code here
  1146. T_VPSCENTER VpsCenter;
  1147. if(HwPtcGetVpsCenter(SockHandle[0],&VpsCenter))
  1148. {
  1149. //TRACE("VpsCenterIp:%d.%d.%d.%d",VpsCenter.CenterIp[0],VpsCenter.CenterIp[1],VpsCenter.CenterIp[2],VpsCenter.CenterIp[3]);
  1150. //TRACE("CenterPort:%d",VpsCenter.CenterPort);
  1151. }
  1152. else
  1153. {
  1154. //TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1155. }
  1156. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1157. VpsCenter.CenterPort = 13500;
  1158. if(HwPtcSetVpsCenter(SockHandle[0],VpsCenter))
  1159. {
  1160. AfxMessageBox("OK");
  1161. }
  1162. else
  1163. {
  1164. //TRACE("HwPtcGetCheckTime FALSE %d",GetLastNetError());
  1165. }
  1166. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1167. }
  1168. void CHwProtocol_demoDlg::OnOsType()
  1169. {
  1170. // TODO: Add your control notification handler code here
  1171. byte OsType;
  1172. if(HwPtcGetDevOS(SockHandle[0],&OsType))
  1173. {
  1174. //TRACE("OsType:%d",OsType);
  1175. }
  1176. else
  1177. {
  1178. //TRACE("HwPtcGetDevOS FALSE %d",GetLastNetError());
  1179. }
  1180. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1181. }
  1182. void CHwProtocol_demoDlg::OnSetAlarmCallBack()
  1183. {
  1184. // TODO: Add your control notification handler code here
  1185. //HwPtcSetAlarmCallBack(AlarmCallBack);
  1186. HwPtcRegisterAlarmCallBack(SockHandle[0],AlarmCallBack);
  1187. }
  1188. void CHwProtocol_demoDlg::OnTemp()
  1189. {
  1190. // TODO: Add your control notification handler code here
  1191. T_Temperature Temperature;
  1192. if(HwPtcGetTemperature(SockHandle[0],&Temperature))
  1193. {
  1194. //TRACE("bSet:%d",Temperature.bSet);
  1195. //TRACE("AlarmTemp:%d",Temperature.AlarmTemp);
  1196. //TRACE("CurrentTemp:%d",Temperature.CurrentTemp);
  1197. }
  1198. else
  1199. {
  1200. //TRACE("HwPtcGetTemperature FALSE %d",GetLastNetError());
  1201. }
  1202. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1203. Temperature.AlarmTemp = 70;
  1204. if(HwPtcSetTemperature(SockHandle[0],Temperature))
  1205. {
  1206. AfxMessageBox("OK");
  1207. }
  1208. else
  1209. {
  1210. //TRACE("HwPtcSetTemperature FALSE %d",GetLastNetError());
  1211. }
  1212. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1213. }
  1214. void CHwProtocol_demoDlg::OnNetpara()
  1215. {
  1216. // TODO: Add your control notification handler code here
  1217. T_VideoNetSendPara NetSendPara;
  1218. if(HwPtcGetVideoNetSendPara(SockHandle[0],1,&NetSendPara))
  1219. {
  1220. //TRACE("Channel:%d",NetSendPara.Channel);
  1221. //TRACE("bytCompress:%d",NetSendPara.bytCompress);
  1222. //TRACE("bytFrame:%d",NetSendPara.bytFrame);
  1223. //TRACE("bytMaxBps:%d",NetSendPara.bytMaxBps);
  1224. //TRACE("bytQuality:%d",NetSendPara.bytQuality);
  1225. //TRACE("bytVideoType:%d",NetSendPara.bytVideoType);
  1226. }
  1227. else
  1228. {
  1229. //TRACE("HwPtcGetVideoNetSendPara FALSE %d",GetLastNetError());
  1230. }
  1231. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1232. NetSendPara.bytFrame = 12;
  1233. if(HwPtcSetVideoNetSendPara(SockHandle[0],NetSendPara))
  1234. {
  1235. AfxMessageBox("OK");
  1236. }
  1237. else
  1238. {
  1239. //TRACE("HwPtcSetVideoNetSendPara FALSE %d",GetLastNetError());
  1240. }
  1241. //TRACE("QueueCount %d",HwPtcGetMsgCount());
  1242. }
  1243. void CHwProtocol_demoDlg::OnMakeKeyFrame()
  1244. {
  1245. // TODO: Add your control notification handler code here
  1246. if(HwPtcMakeKeyFrame(SockHandle[0],1))
  1247. {
  1248. AfxMessageBox("Show MakeKeyFrame OK");
  1249. }
  1250. }
  1251. void CHwProtocol_demoDlg::OnTest()
  1252. {
  1253. // TODO: Add your control notification handler code here
  1254. SetTimer(1,500,NULL);
  1255. }
  1256. void CHwProtocol_demoDlg::OnStoptest()
  1257. {
  1258. // TODO: Add your control notification handler code here
  1259. KillTimer(1);
  1260. }
  1261. void CHwProtocol_demoDlg::OnTimer(UINT nIDEvent)
  1262. {
  1263. // TODO: Add your message handler code here and/or call default
  1264. if(nIDEvent == 1)
  1265. {
  1266. OnHwPtcLogout();
  1267. OnHwPtcLogin();
  1268. }
  1269. CDialog::OnTimer(nIDEvent);
  1270. }
  1271. void CHwProtocol_demoDlg::OnCheckdvrtime()
  1272. {
  1273. // TODO: Add your control notification handler code here
  1274. T_SysDVRTime tTime;
  1275. if(HwPtcGetDVRTime(SockHandle[0],&tTime)==TRUE)
  1276. {
  1277. //TRACE("%d-%d-%d %d:%d:%d",tTime.bytYear,tTime.bytMonth,tTime.bytDay,tTime);
  1278. }
  1279. else
  1280. {
  1281. AfxMessageBox("GetDVRTime Failed");
  1282. }
  1283. CTime tt = CTime::GetCurrentTime();
  1284. tTime.bytYear = tt.GetYear()-2000;
  1285. tTime.bytMonth = tt.GetMonth();
  1286. tTime.bytDay = tt.GetDay();
  1287. tTime.bytHour = tt.GetHour();
  1288. tTime.bytMinute = tt.GetMinute();
  1289. tTime.bytSecond = tt.GetSecond();
  1290. if(HwPtcSetDVRTime(SockHandle[0],tTime)==TRUE)
  1291. {
  1292. }
  1293. else
  1294. {
  1295. AfxMessageBox("SetDVRTime Failed");
  1296. }
  1297. }
  1298. void CHwProtocol_demoDlg::OnGetalarmstate()
  1299. {
  1300. // TODO: Add your control notification handler code here
  1301. T_SysAlarmState tAlarmState;
  1302. if(HwPtcGetAlarmState(SockHandle[0],&tAlarmState)==TRUE)
  1303. {
  1304. //TRACE("dwStopRecord:%d dwVideoInterrupt:%d",tAlarmState.dwStopRecord,tAlarmState.dwVideoInterrupt);
  1305. }
  1306. else
  1307. {
  1308. AfxMessageBox("GetAlarmState Failed!!");
  1309. }
  1310. }
  1311. void CHwProtocol_demoDlg::OnAutozoomin()
  1312. {
  1313. // TODO: Add your control notification handler code here
  1314. T_AutoZoomIn zoomin;
  1315. zoomin.nChannel = 1;
  1316. zoomin.rect.left = 19;
  1317. zoomin.rect.top = 19;
  1318. zoomin.rect.bottom = zoomin.rect.right = 39;
  1319. if(HwPtcPTZAutoZoomIn(SockHandle[0],zoomin)==TRUE)
  1320. {
  1321. }
  1322. else
  1323. {
  1324. AfxMessageBox("PTZ Auto Zoomin Failed!!!");
  1325. }
  1326. }
  1327. void CHwProtocol_demoDlg::OnGetlog()
  1328. {
  1329. // TODO: Add your control notification handler code here
  1330. T_FileFindLog logselect;
  1331. logselect.dwMajorType = 1;
  1332. logselect.dwMinorType = 0;
  1333. logselect.StartTime.wYear = 2009;
  1334. logselect.StartTime.wMonth = 6;
  1335. logselect.StartTime.wDay = 19;
  1336. long h = HwPtcStartFindLog(SockHandle[0],logselect);
  1337. if(h<0)
  1338. return;
  1339. T_LogItem item;
  1340. int Count=0;
  1341. while(TRUE)
  1342. {
  1343. long ret = HwPtcFindNextLog(h,&item);
  1344. if(ret == LOG_FINDING)
  1345. {
  1346. Sleep(10);
  1347. continue;
  1348. }
  1349. if(ret == LOG_EXCEPTION || ret == LOG_NOMORE || ret == LOG_NONE)
  1350. break;
  1351. //TRACE("%s %s time:%d:%d",item.User,item.Description,item.time.wMinute,item.time.wSecond);
  1352. Count++;
  1353. }
  1354. //TRACE("Count:%d",Count);
  1355. HwPtcStopFindLog(h);
  1356. }
  1357. void CHwProtocol_demoDlg::OnKeyFrame()
  1358. {
  1359. // TODO: Add your control notification handler code here
  1360. if(HwPtcMakeKeyFrame(SockHandle[0],1)==TRUE)
  1361. AfxMessageBox("OK");
  1362. }
  1363. void CHwProtocol_demoDlg::OnFindfile()
  1364. {
  1365. UpdateData();
  1366. T_FindFile find;
  1367. find.bytWin = 1;
  1368. SYSTEMTIME systime;
  1369. GetSystemTime(&systime);
  1370. find.beg.wYear = systime.wYear;
  1371. find.beg.wMonth = systime.wMonth;
  1372. find.beg.wDay = systime.wDay;
  1373. find.beg.wHour = 0;
  1374. find.beg.wMinute = 0;
  1375. find.beg.wSecond = 0;
  1376. find.end.wYear = systime.wYear;
  1377. find.end.wMonth = systime.wMonth;
  1378. find.end.wDay = systime.wDay;
  1379. find.end.wHour = 23;
  1380. find.end.wMinute = 59;
  1381. find.end.wSecond = 59;
  1382. // find.rect.left = 0;
  1383. // find.rect.right = 704;
  1384. // find.rect.top = 0;
  1385. // find.rect.bottom = 576;
  1386. long handle = HwPtcFindFile(SockHandle[0],8888,find);
  1387. if(handle<0)
  1388. return;
  1389. //TRACE("Start Find File Handle:%d",handle);
  1390. while(1)
  1391. {
  1392. T_tPlayFile filedata;
  1393. long rt = HwPtcFindNextFiles(handle,&filedata);
  1394. if(rt==1000)
  1395. {
  1396. //TRACE("Time:%d:%d:%d %d:%d:%d\r\n",filedata.beg.wHour,filedata.beg.wMinute,filedata.beg.wSecond,
  1397. //filedata.end.wHour,filedata.end.wMinute,filedata.end.wSecond);
  1398. memcpy(&gbfiledata,&filedata,sizeof(T_tPlayFile));
  1399. continue;
  1400. }
  1401. if(rt==1002)
  1402. continue;
  1403. break;
  1404. }
  1405. HwPtcFindClose(handle);
  1406. }
  1407. void CHwProtocol_demoDlg::OnPlayfile()
  1408. {
  1409. // TODO: Add your control notification handler code here
  1410. if(PlayHandle >=0)
  1411. HwPtcStopPlayBack(PlayHandle);
  1412. PLAYBACKWIN = this->GetDlgItem(IDC_PLAY)->GetSafeHwnd();
  1413. PlayM4_SetStreamOpenMode(10,STREAME_FILE);
  1414. PlayHandle = HwPtcPlayBackByTime(SockHandle[0],8888,2,&gbfiledata);
  1415. if(PlayHandle>=0)
  1416. {
  1417. HwPtcSetPlayDataCallBack(PlayHandle,dPlayBackDataCallBack,11);
  1418. HwPtcPlayBackStart(PlayHandle);
  1419. }
  1420. }
  1421. void CALLBACK dPlayBackDataCallBack(long PlayBackId,int VideoType,char * buf,long buflen,long dwUser)
  1422. {
  1423. //Sleep(100);
  1424. //TRACE("PlayBackId:%d VideoType:%d User:%d",PlayBackId,VideoType,dwUser);
  1425. if(VideoType==1)
  1426. {
  1427. PlayM4_OpenStream(10,(BYTE*)buf,buflen,BUF4M);
  1428. PlayM4_Play(10, PLAYBACKWIN);
  1429. }
  1430. if(VideoType==2)
  1431. {
  1432. while((BUF4M - PlayM4_GetSourceBufferRemain(10))<buflen)
  1433. {
  1434. Sleep(50);
  1435. }
  1436. PlayM4_InputData(10,(BYTE*)buf,buflen);
  1437. }
  1438. }
  1439. void CHwProtocol_demoDlg::OnPlayclose()
  1440. {
  1441. // TODO: Add your control notification handler code here
  1442. if(PlayHandle>=0)
  1443. {
  1444. PlayM4_Stop(10);
  1445. PlayM4_CloseStream(10);
  1446. HwPtcStopPlayBack(PlayHandle);
  1447. }
  1448. }
  1449. void CHwProtocol_demoDlg::OnGetPlayPos()
  1450. {
  1451. // TODO: Add your control notification handler code here
  1452. long Pos = 0;
  1453. if(PlayHandle>=0)
  1454. {
  1455. HwPtcPlayBackGetPos(PlayHandle,&Pos);
  1456. TRACE("Play Pos:%d\n",Pos);
  1457. }
  1458. }
  1459. void CHwProtocol_demoDlg::OnSetPlayPos()
  1460. {
  1461. // TODO: Add your control notification handler code here
  1462. long Pos = 25;
  1463. if(PlayHandle>=0)
  1464. {
  1465. HwPtcPlayBackSetPos(PlayHandle,Pos);
  1466. //TRACE("Play Pos:%d",Pos);
  1467. }
  1468. }
  1469. void CHwProtocol_demoDlg::OnPlaysize()
  1470. {
  1471. // TODO: Add your control notification handler code here
  1472. if(PlayHandle>=0)
  1473. {
  1474. long Size = 0;
  1475. HwPtcPlayBackGetFileSize(PlayHandle,&Size);
  1476. //TRACE("Size:%d",Size);
  1477. }
  1478. }
  1479. void CHwProtocol_demoDlg::OnFf()
  1480. {
  1481. // TODO: Add your control notification handler code here
  1482. PlayM4_Fast(10);
  1483. }
  1484. void CHwProtocol_demoDlg::OnSf()
  1485. {
  1486. // TODO: Add your control notification handler code here
  1487. PlayM4_Slow(10);
  1488. }
  1489. void CHwProtocol_demoDlg::OnSetAlarmOut()
  1490. {
  1491. // TODO: Add your control notification handler code here
  1492. if(HwPtcSetAlarmOutState(SockHandle[0],1,1)==FALSE)
  1493. {
  1494. AfxMessageBox("Failed");
  1495. }
  1496. }
  1497. void CHwProtocol_demoDlg::OnRealPlay()
  1498. {
  1499. // TODO: Add your control notification handler code here
  1500. RealHandle = HwPtcRealPlay(SockHandle[0],6050,0,0,3000);
  1501. if(RealHandle <0)
  1502. return;
  1503. PLAYBACKWIN = this->GetDlgItem(IDC_PLAY)->GetSafeHwnd();
  1504. HwPtcRegisterRealDataCallBack(RealHandle,dRealDataCallBack,0);
  1505. HwPtcRealCapture(RealHandle);
  1506. }
  1507. void CHwProtocol_demoDlg::OnRealStop()
  1508. {
  1509. // TODO: Add your control notification handler code here
  1510. HwPtcRealStop(RealHandle);
  1511. PlayM4_Stop(10);
  1512. }
  1513. void CALLBACK dRealDataCallBack(long RealId,int VideoType,char * buf,long buflen,long dwUser)
  1514. {
  1515. ////TRACE("VideoType:%d BufLen:%d",VideoType,buflen);
  1516. if(VideoType == 1)
  1517. {
  1518. PlayM4_SetStreamOpenMode(10,0);
  1519. PlayM4_OpenStream(10,(BYTE*)buf,buflen,1024*1024*2);
  1520. PlayM4_Play(10,PLAYBACKWIN);
  1521. }
  1522. else
  1523. {
  1524. PlayM4_InputData(10,(BYTE*)buf,buflen);
  1525. }
  1526. }