text.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. using NVRCsharpDemo;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.IO;
  9. using System.Linq;
  10. using System.Net;
  11. using System.Runtime.InteropServices;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Forms;
  15. namespace TrainVideoDataDispose
  16. {
  17. public partial class text : Form
  18. {
  19. public int m_lUserID = -1;
  20. public int m_lGetFaceParamCfgHandle = -1;
  21. private CHCNetSDK.REALDATACALLBACK RealData = null;
  22. public CHCNetSDK.NET_DVR_DEVICEINFO_V30 DeviceInfo;
  23. public CHCNetSDK.NET_DVR_DEVICEINFO_V40 tDeviceInfo;
  24. public CHCNetSDK.NET_DVR_IPPARACFG_V40 m_struIpParaCfgV40;
  25. public CHCNetSDK.NET_DVR_STREAM_MODE m_struStreamMode;
  26. public CHCNetSDK.NET_DVR_IPCHANINFO m_struChanInfo;
  27. public CHCNetSDK.NET_DVR_PU_STREAM_URL m_struStreamURL;
  28. public CHCNetSDK.NET_DVR_IPCHANINFO_V40 m_struChanInfoV40;
  29. public CHCNetSDK.NET_DVR_USER_LOGIN_INFO pLoginInfo;
  30. public CHCNetSDK.LOGINRESULTCALLBACK LoginCallBack;
  31. public CHCNetSDK.RemoteConfigCallback remoteConfigCallback;
  32. //private PlayCtrl.DECCBFUN m_fDisplayFun = null;
  33. public delegate void MyDebugInfo(string str);
  34. private Label labelLogin;
  35. public text()
  36. {
  37. InitializeComponent();
  38. }
  39. private void button1_Click(object sender, EventArgs e)
  40. {
  41. bool m_bInitSDK = CHCNetSDK.NET_DVR_Init();
  42. string DVRIPAddress = "10.111.67.23"; //设备IP地址或者域名 Device IP
  43. Int16 DVRPortNumber = Int16.Parse("8000");//设备服务端口号 Device Port
  44. string DVRUserName = "admin";//设备登录用户名 User name to login
  45. string DVRPassword = "Admin12345";//设备登录密码 Password to login
  46. //设备IP地址或者域名
  47. byte[] byIP = System.Text.Encoding.Default.GetBytes(DVRIPAddress);
  48. pLoginInfo.sDeviceAddress = new byte[129];
  49. byIP.CopyTo(pLoginInfo.sDeviceAddress, 0);
  50. //设备用户名
  51. byte[] byUserName = System.Text.Encoding.Default.GetBytes(DVRUserName);
  52. pLoginInfo.sUserName = new byte[64];
  53. byUserName.CopyTo(pLoginInfo.sUserName, 0);
  54. //设备密码
  55. byte[] byPassword = System.Text.Encoding.Default.GetBytes(DVRPassword);
  56. pLoginInfo.sPassword = new byte[64];
  57. byPassword.CopyTo(pLoginInfo.sPassword, 0);
  58. pLoginInfo.wPort = 8000;
  59. if (LoginCallBack == null)
  60. {
  61. LoginCallBack = new CHCNetSDK.LOGINRESULTCALLBACK(cbLoginCallBack);//注册回调函数
  62. }
  63. pLoginInfo.cbLoginResult = LoginCallBack;
  64. pLoginInfo.bUseAsynLogin = false;
  65. //登录设备 Login the device
  66. //m_lUserID = CHCNetSDK.NET_DVR_Login_V40(ref pLoginInfo, ref tDeviceInfo);
  67. m_lUserID = CHCNetSDK.NET_DVR_Login_V40(ref pLoginInfo, ref tDeviceInfo);
  68. if (m_lUserID < 0)
  69. {
  70. uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
  71. string str = "NET_DVR_Login_V30 failed, error code= " + iLastErr; //登录失败,输出错误号 Failed to login and output the error code
  72. textinfo.Text = str;
  73. return;
  74. }
  75. else
  76. {
  77. //登录成功
  78. //停止远程配置
  79. if (m_lGetFaceParamCfgHandle != -1)
  80. {
  81. CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetFaceParamCfgHandle);
  82. }
  83. //清除表格信息
  84. //listViewFaceConfig.Items.Clear();
  85. //LpArr.Clear();
  86. ////定义查询信息对象
  87. //CHCNetSDK.NET_DVR_FACE_PARAM_COND struCond = new CHCNetSDK.NET_DVR_FACE_PARAM_COND();
  88. //struCond.Init();
  89. //struCond.dwSize = (uint)Marshal.SizeOf(struCond);
  90. //struCond.dwFaceNum = (uint)IndexOfListview;
  91. //struCond.byFaceID = Convert.ToByte(textBoxFaceID.Text.ToString());
  92. //StrToByteArray(ref struCond.byCardNo, textBoxAssociatedCardNo.Text);
  93. //GetCardReaderIndex(ref struCond.byEnableCardReader);
  94. //int dwSize = Marshal.SizeOf(struCond);
  95. //IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);
  96. //Marshal.StructureToPtr(struCond, ptrStruCond, true);
  97. //g_fGetFaceParamCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetFaceParam);
  98. //m_lGetFaceParamCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lServerID, CHCNetSDK.NET_DVR_GET_FACE_PARAM_CFG, ptrStruCond, dwSize, g_fGetFaceParamCallback, this.Handle);
  99. //Marshal.FreeHGlobal(ptrStruCond);
  100. }
  101. return;
  102. }
  103. public void cbLoginCallBack(int lUserID, int dwResult, IntPtr lpDeviceInfo, IntPtr pUser)
  104. {
  105. string strLoginCallBack = "登录设备,lUserID:" + lUserID + ",dwResult:" + dwResult;
  106. if (dwResult == 0)
  107. {
  108. uint iErrCode = CHCNetSDK.NET_DVR_GetLastError();
  109. strLoginCallBack = strLoginCallBack + ",错误号:" + iErrCode;
  110. }
  111. //下面代码注释掉也会崩溃
  112. if (InvokeRequired)
  113. {
  114. object[] paras = new object[2];
  115. paras[0] = strLoginCallBack;
  116. paras[1] = lpDeviceInfo;
  117. }
  118. else
  119. {
  120. //创建该控件的主线程直接更新信息列表
  121. }
  122. }
  123. }
  124. }