录像机登录失败会在登录界面显示提示信息

This commit is contained in:
maqiao 2024-04-19 08:44:01 +08:00
parent e3054d0d28
commit c9de968c55
3 changed files with 47 additions and 25 deletions

View File

@ -7,11 +7,14 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows;
using DM_Weight.Port;
using log4net;
namespace DM_Weight.HIKVISION
{
public class CHKFunction
{
private readonly ILog logger = LogManager.GetLogger(typeof(CHKFunction));
private bool m_bInitSDK = false;
private Int32 m_lRealHandle = -1;
@ -38,6 +41,7 @@ namespace DM_Weight.HIKVISION
{
//MessageBox.Show("NET_DVR_Init error!");
//return;
logger.Info("NET_DVR_Init error!");
}
else
{
@ -90,12 +94,13 @@ namespace DM_Weight.HIKVISION
{
iLastErr = CHCNetSDK.NET_DVR_GetLastError();
str = "NET_DVR_Login_V40 failed, error code= " + iLastErr; //登录失败,输出错误号
MessageBox.Show(str);
logger.Info(str);
}
else
{
//登录成功
//MessageBox.Show("Login Success!");
logger.Info("Login Success!");
}
}
@ -105,12 +110,14 @@ namespace DM_Weight.HIKVISION
if (m_lRealHandle >= 0)
{
//MessageBox.Show("Please stop live view firstly");
logger.Info("Please stop live view firstly");
}
if (!CHCNetSDK.NET_DVR_Logout(HKUserId))
{
iLastErr = CHCNetSDK.NET_DVR_GetLastError();
str = "NET_DVR_Logout failed, error code= " + iLastErr;
logger.Info(str);
}
HKUserId = -1;
}
@ -121,46 +128,51 @@ namespace DM_Weight.HIKVISION
{
if (m_lRealHandle >= 0)
{
CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle);
bool stopRealPlay= CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle);
logger.Info($"录像机NET_DVR_StopRealPlay接口返回{stopRealPlay}");
}
if (HKUserId >= 0)
{
CHCNetSDK.NET_DVR_Logout(HKUserId);
bool logout= CHCNetSDK.NET_DVR_Logout(HKUserId);
logger.Info($"录像机NET_DVR_Logout接口返回{logout}");
}
if (m_bInitSDK == true)
{
CHCNetSDK.NET_DVR_Cleanup();
bool cleanUp= CHCNetSDK.NET_DVR_Cleanup();
logger.Info($"录像机NET_DVR_Cleanup接口返回{cleanUp}");
}
}
public bool HIKStartDVRRecord()
{
bool isStart= CHCNetSDK.NET_DVR_StartDVRRecord(HKUserId, 0xffff, 0);
logger.Info($"录像机NET_DVR_StartDVRRecord接口返回{isStart}");
return isStart;
}
public bool HIKStopDVRRecord()
{
bool isStart = CHCNetSDK.NET_DVR_StopDVRRecord(HKUserId, 0xffff);
return isStart;
bool isStop = CHCNetSDK.NET_DVR_StopDVRRecord(HKUserId, 0xffff);
logger.Info($"录像机NET_DVR_StopDVRRecord接口返回{isStop}");
return isStop;
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
public void Dispose()
{
if (m_lRealHandle >= 0)
{
CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle);
}
if (HKUserId >= 0)
{
CHCNetSDK.NET_DVR_Logout(HKUserId);
}
if (m_bInitSDK == true)
{
CHCNetSDK.NET_DVR_Cleanup();
}
}
//public void Dispose()
//{
// if (m_lRealHandle >= 0)
// {
// bool stopRealPlay= CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle);
// }
// if (HKUserId >= 0)
// {
// CHCNetSDK.NET_DVR_Logout(HKUserId);
// }
// if (m_bInitSDK == true)
// {
// CHCNetSDK.NET_DVR_Cleanup();
// }
//}
}
}

View File

@ -25,6 +25,7 @@ using Microsoft.Win32;
using System.Xml;
using System.Diagnostics;
using DM_Weight.HIKVISION;
using System.Security.AccessControl;
namespace DM_Weight.ViewModels
{
@ -75,13 +76,21 @@ namespace DM_Weight.ViewModels
get => _portUtil._canBusExsit && !_portUtil.canBusSerial.IsOpen;
}
private bool _fingerMsg;
private bool _fingerMsg= CHKFunction.HKUserId>=0;
public bool FingerMsg
{
get => _fingerMsg;
set => SetProperty(ref _fingerMsg, value);
}
//录像机登录状态
private bool _hikMsg;
public bool HIKMsg
{
get=>_hikMsg;
set=>SetProperty(ref _hikMsg, value);
}
//public LoginWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, PortUtil portUtil, FingerprintUtil fingerprintUtil)
//{
// _fingerprintUtil = fingerprintUtil;
@ -289,7 +298,7 @@ _exitCommand ??= new DelegateCommand(Exit);
void Exit()
{
_chkFunction.Dispose();
_chkFunction.HIKLoginOut();
Process.GetCurrentProcess().Kill();
Environment.Exit(0);
}

View File

@ -194,10 +194,11 @@
</Grid>
</Grid>
</materialDesign:Card>
<StackPanel Orientation="Vertical" Grid.Row="3" Grid.Column="2">
<StackPanel Orientation="Vertical" Grid.Row="4" Grid.Column="2">
<TextBlock Visibility="{Binding DrawerPortMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="抽屉串口连接失败" />
<TextBlock Visibility="{Binding CanBusPortMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="can总线串口连接失败" />
<TextBlock Visibility="{Binding CanBusPortMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="can总线串口连接失败" />
<TextBlock Visibility="{Binding FingerMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="指纹机连接失败" />
<TextBlock Visibility="{Binding HIKMsg, Converter={StaticResource BooleanToVisibilityConverter}}" Text="录像机登录失败" />
</StackPanel>
</Grid>
</UserControl>