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 { /// /// 海康Camera 客户端 /// public HkCamera HkCameraClient { get; set; } /// /// 通道集合 /// [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(); } } } }