海康摄像头增加了云台控制等
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
namespace SHH.CameraSdk.HikFeatures;
|
||||
|
||||
public class HikRebootProvider : IRebootFeature
|
||||
{
|
||||
private readonly IHikContext _context;
|
||||
|
||||
public HikRebootProvider(IHikContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public async Task RebootAsync()
|
||||
{
|
||||
// 1. 检查登录状态
|
||||
int userId = _context.GetUserId();
|
||||
if (userId < 0) throw new InvalidOperationException("设备未登录或离线,无法发送重启指令");
|
||||
|
||||
// 2. 执行 SDK 调用
|
||||
await Task.Run(() =>
|
||||
{
|
||||
bool result = HikNativeMethods.NET_DVR_RebootDVR(userId);
|
||||
|
||||
if (!result)
|
||||
{
|
||||
uint err = HikNativeMethods.NET_DVR_GetLastError();
|
||||
throw new Exception($"重启指令发送失败,错误码: {err}");
|
||||
}
|
||||
});
|
||||
|
||||
// 3. 注意:
|
||||
// 重启指令发送成功后,设备会断开网络。
|
||||
// 宿主类(HikVideoSource)的保活机制(KeepAlive)会检测到断线,
|
||||
// 并自动开始尝试重连,直到设备重启完成上线。
|
||||
// 所以这里我们不需要手动断开连接,交给底层自愈机制即可。
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user