210 lines
7.0 KiB
C#
210 lines
7.0 KiB
C#
using FATrace.HKNetLib.Hardware;
|
|
using FATrace.HKNetLib.Wrapper;
|
|
using ReaLTaiizor.Forms;
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace FATrace.OEMApp
|
|
{
|
|
public partial class MainApp : MaterialForm
|
|
{
|
|
|
|
/// <summary>
|
|
/// 海康Camera 客户端
|
|
/// </summary>
|
|
public HkCamera HkCameraClient { get; set; }
|
|
|
|
/// <summary>
|
|
/// 通道集合
|
|
/// </summary>
|
|
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 96, ArraySubType = UnmanagedType.U4)]
|
|
private int[] iChannelNum;
|
|
|
|
public MainApp()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void MainApp_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
HkCameraClient = new HkCamera();
|
|
//保存SDK日志
|
|
CHCNetSDK.NET_DVR_SetLogToFile(3, "C:\\SdkLog\\", true);
|
|
iChannelNum = new int[96];
|
|
|
|
try
|
|
{
|
|
var systemName = Program.SystemName;
|
|
var authText = Program.IsActive ? "(已授权)" : "(未授权)";
|
|
this.Text = string.IsNullOrWhiteSpace(systemName)
|
|
? $"添加剂追溯系统 {authText}"
|
|
: $"{systemName} {authText}";
|
|
}
|
|
catch (Exception)
|
|
{
|
|
// 安静失败,不影响主界面显示
|
|
}
|
|
|
|
try
|
|
{
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show($"初始化界面失败: {ex.Message}");
|
|
}
|
|
}
|
|
|
|
private void btnNVRLogin_Click(object sender, EventArgs e)
|
|
{
|
|
//var Result = HkCameraClient.Login(new CameraLoginInfo()
|
|
//{
|
|
// IP = "192.168.1.168",
|
|
// Port = 8000,
|
|
// UserName = "admin",
|
|
// Password = "glico@2025",
|
|
//});
|
|
|
|
//if (Result)
|
|
//{
|
|
// MessageBox.Show("登录成功");
|
|
// return;
|
|
//}
|
|
//MessageBox.Show("登录失败");
|
|
|
|
var result = HkCameraClient.Sdk_NET_DVR_Login_V30("192.168.1.168", 8000, "admin", "glico@2025");
|
|
if (result)
|
|
{
|
|
MessageBox.Show("登录成功");
|
|
return;
|
|
}
|
|
MessageBox.Show($"登录失败:{HkCameraClient.LastMsgErr}");
|
|
return;
|
|
}
|
|
|
|
private void btnLoadVideo_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
var Result = HkCameraClient.Sdk_NET_DVR_GetFileByTime_V40(DateTime.Now.AddMinutes(-5), DateTime.Now, $"D:\\Downtest_Channel{DateTime.Now.ToString("yyyy-MM-dd HHmmss")}.mp4");
|
|
if (Result.Result)
|
|
{
|
|
DownTimer.Interval = 2000;
|
|
DownTimer.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show($"[Sdk_NET_DVR_GetFileByTime_V40] 执行失败:{Result.Msg}");
|
|
}
|
|
|
|
|
|
//btnStopDownload.Enabled = true;
|
|
}
|
|
|
|
private void btnDownloadName_Click(object sender, EventArgs e)
|
|
{
|
|
//if (m_lDownHandle >= 0)
|
|
//{
|
|
// MessageBox.Show("Downloading, please stop firstly!");//正在下载,请先停止下载
|
|
// return;
|
|
//}
|
|
|
|
//string sVideoFileName; //录像文件保存路径和文件名 the path and file name to save
|
|
//sVideoFileName = "D:\\Downtest1111_" + sPlayBackFileName + ".mp4";
|
|
|
|
////按文件名下载 Download by file name
|
|
//m_lDownHandle = CHCNetSDK.NET_DVR_GetFileByName(m_lUserID, sPlayBackFileName, sVideoFileName);
|
|
//if (m_lDownHandle < 0)
|
|
//{
|
|
// iLastErr = CHCNetSDK.NET_DVR_GetLastError();
|
|
// str = "NET_DVR_GetFileByName failed, error code= " + iLastErr;
|
|
// MessageBox.Show(str);
|
|
// return;
|
|
//}
|
|
|
|
//uint iOutValue = 0;
|
|
|
|
////设置转封装格式
|
|
////UInt32 iInValue = 5;
|
|
////IntPtr lpInValue = Marshal.AllocHGlobal(4);
|
|
////Marshal.StructureToPtr(iInValue, lpInValue, false);
|
|
|
|
////if (!CHCNetSDK.NET_DVR_PlayBackControl_V40(m_lDownHandle, CHCNetSDK.NET_DVR_SET_TRANS_TYPE, lpInValue, 4, IntPtr.Zero, ref iOutValue))
|
|
////{
|
|
//// iLastErr = CHCNetSDK.NET_DVR_GetLastError();
|
|
//// str = "NET_DVR_PLAYSTART failed, error code= " + iLastErr; //下载控制失败,输出错误号
|
|
//// MessageBox.Show(str);
|
|
//// return;
|
|
////}
|
|
|
|
//if (!CHCNetSDK.NET_DVR_PlayBackControl_V40(m_lDownHandle, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue))
|
|
//{
|
|
// iLastErr = CHCNetSDK.NET_DVR_GetLastError();
|
|
// str = "NET_DVR_PLAYSTART failed, error code= " + iLastErr; //下载控制失败,输出错误号
|
|
// MessageBox.Show(str);
|
|
// return;
|
|
//}
|
|
//timerDownload.Interval = 1000;
|
|
//timerDownload.Enabled = true;
|
|
//btnStopDownload.Enabled = true;
|
|
}
|
|
|
|
private void btnStopLoadVideo_Click(object sender, EventArgs e)
|
|
{
|
|
//if (m_lDownHandle < 0)
|
|
//{
|
|
// return;
|
|
//}
|
|
|
|
//if (!CHCNetSDK.NET_DVR_StopGetFile(m_lDownHandle))
|
|
//{
|
|
// iLastErr = CHCNetSDK.NET_DVR_GetLastError();
|
|
// str = "NET_DVR_StopGetFile failed, error code= " + iLastErr; //下载控制失败,输出错误号
|
|
// MessageBox.Show(str);
|
|
// return;
|
|
//}
|
|
|
|
//timerDownload.Stop();
|
|
|
|
//MessageBox.Show("The downloading has been stopped succesfully!");
|
|
//m_lDownHandle = -1;
|
|
//DownloadProgressBar.Value = 0;
|
|
//btnStopDownload.Enabled = true;
|
|
}
|
|
|
|
private void DownTimer_Tick(object sender, EventArgs e)
|
|
{
|
|
DownloadProgressBar.Maximum = 100;
|
|
DownloadProgressBar.Minimum = 0;
|
|
|
|
int iPos = 0;
|
|
|
|
//获取下载进度
|
|
iPos = HkCameraClient.Sdk_NET_DVR_GetDownloadPos(HkCameraClient.m_lDownHandle);
|
|
|
|
if ((iPos > DownloadProgressBar.Minimum) && (iPos < DownloadProgressBar.Maximum))
|
|
{
|
|
DownloadProgressBar.Value = iPos;
|
|
}
|
|
|
|
if (iPos == 100) //下载完成
|
|
{
|
|
DownloadProgressBar.Value = iPos;
|
|
if (!CHCNetSDK.NET_DVR_StopGetFile(HkCameraClient.m_lDownHandle))
|
|
{
|
|
MessageBox.Show($"[NET_DVR_StopGetFile] 执行失败:{HkCameraClient.GetLastError()}");
|
|
return;
|
|
}
|
|
HkCameraClient.m_lDownHandle = -1;
|
|
DownTimer.Stop();
|
|
}
|
|
|
|
if (iPos == 200) //网络异常,下载失败
|
|
{
|
|
MessageBox.Show("The downloading is abnormal for the abnormal network!");
|
|
DownTimer.Stop();
|
|
}
|
|
}
|
|
}
|
|
}
|