1.构造函数
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
2.Public int Id{get;set;}含义
公有成员变量定义,后边的get,set是默认的方法的简写。默认方法为:
Public
int
ID{get
{
return
id;}
set
{id = value;}
}
3.
C#线程(一)概述及常用方法
C#线程(一)概述及常用方法_subin_iecas的博客-CSDN博客_c# 线程4
4.从textbox中读取IP地址。
struLogInfo = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO();
//设备IP地址或者域名
byte[] byIP = System.Text.Encoding.Default.GetBytes(textBoxIP.Text);
struLogInfo.sDeviceAddress = new byte[129];
byIP.CopyTo(struLogInfo.sDeviceAddress, 0);
调用了CHCNetSDK文件中的结构函数NET_DVR_USER_LOGIN_INFO。
byte[] Encoding.GetBytes(string s):在派生类中重写时,将指定字符串中的所有字符编码为一个字节序列,返回一个字节数组。对应using System.Text。
将byIP一维数组中的所有元素复制到struLogInfo.sDeviceAddress中,从struLogInfo.sDeviceAddress的第零位开始。
IP地址、用户名和密码因为是字符串类型,都是这样子的赋值给调用的函数中的变量的。
端口号不同:
struLogInfo.wPort = ushort.Parse(textBoxPort.Text);//设备服务端口号
ushour:16位无符号整数。
ushort.Parse(string s) :将数字的字符串表示形式转换为它的等效16位无符号整数。
5.登录设备
m_lUserID = CHCNetSDK.NET_DVR_Login_V40(ref struLogInfo, ref DeviceInfo);
m_lUserID 作为设备是否成功登录的标志变量,一开始的值为-1,在该语句失败时,CHCNetSDK.NET_DVR_Login_V40仍会返回-1,若成功,则返回用户ID信息,即DeviceInfo
使m_IUserID的值不为零,以进行接下来的语句。
CHCNetSDK.NET_DVR_Login_V40为调用的HCNetSDK.dll文件中的方法,需要输入设备IP、设备端口号、用户名、密码,即运用struLogInfo调用函数定义的变量。
6.预览实现
if (m_lRealHandle < 0)
{
CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
IpPreviewInfo.hPlayWnd = RealPlayWnd.Handle;//预览窗口
IpPreviewInfo.lChannel = Int16.Parse(textBoxChannel.Text)
与用户登录定义方式相似,调用CHCNeSDK中的结构函数NET_DVR_PREVIEWINFO来定义变量,该结构函数的变量是之后调用dll文件中的方法的关键。
IntPtr pUser = new IntPtr();//用户数据,IntPtr用于表示指针或句柄的平台特定类型。
//打开预览 Start live view
m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, null/*RealData*/, pUser);
调用dll文件中的NET_DVR_RealPlay_V40函数,需要输入用户ID信息m_lUserID,预览参数设置lpPreviewInfo,码流数据回调函数和pUser用户数据(?)
if (m_lRealHandle < 0)
{
iLastErr = CHCNetSDK.NET_DVR_GetLastError();
str = "NET_DVR_RealPlay_V40 failed, error code= " + iLastErr; //预览失败,输出错误号
MessageBox.Show(str);
return;
}
else
{
//预览成功
Preview.Text = "Stop Live View";
}