Skip to content

Commit ceb93cb

Browse files
committed
feat: 完善通道信息
1 parent e7fc8ae commit ceb93cb

5 files changed

Lines changed: 61 additions & 23 deletions

File tree

src/components/BootstrapBlazor.HikVision/Components/Channel.cs renamed to src/components/BootstrapBlazor.HikVision/Components/HikVisionChannel.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,14 @@ public class HikVisionChannel
1313
/// 获得/设置 模拟通道信息集合
1414
/// </summary>
1515
public List<HikVisionAnalogChannelInfo> AnalogChannels { get; set; } = [];
16+
17+
/// <summary>
18+
/// 获得/设置 数字通道信息集合
19+
/// </summary>
20+
public List<HikVisionDigitalChannelInfo> DigitalChannels { get; set; } = [];
21+
22+
/// <summary>
23+
/// 获得/设置 数字通道信息集合
24+
/// </summary>
25+
public List<HikVisionZeroChannelInfo> ZeroChannels { get; set; } = [];
1626
}

src/components/BootstrapBlazor.HikVision/Components/HikVisionWebPlugin.razor.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
namespace BootstrapBlazor.Components;
88

99
/// <summary>
10-
/// 海康威视网络摄像机组件 (Websdk Plugin 插件版本)
10+
/// 海康威视网络摄像机组件 (WebSdk Plugin 插件版本)
1111
/// </summary>
1212
[JSModuleAutoLoader("./_content/BootstrapBlazor.HikVision/Components/HikVisionWebPlugin.razor.js", JSObjectReference = true)]
1313
public partial class HikVisionWebPlugin
@@ -64,7 +64,7 @@ public partial class HikVisionWebPlugin
6464
/// 获得/设置 登录成功后回调方法
6565
/// </summary>
6666
[Parameter]
67-
public Func<Task>? OnLoginedAsync { get; set; }
67+
public Func<Task>? OnLoginAsync { get; set; }
6868

6969
/// <summary>
7070
/// 获得/设置 停止预览后回调方法
@@ -76,7 +76,7 @@ public partial class HikVisionWebPlugin
7676
/// 获得/设置 注销成功后回调方法
7777
/// </summary>
7878
[Parameter]
79-
public Func<Task>? OnLogoutedAsync { get; set; }
79+
public Func<Task>? OnLogoutAsync { get; set; }
8080

8181
/// <summary>
8282
/// 获得/设置 开始预览后回调方法
@@ -101,14 +101,14 @@ public partial class HikVisionWebPlugin
101101
.Build();
102102

103103
/// <summary>
104-
/// 获得 Websdk 插件是否初始化成功
104+
/// 获得 Web sdk 插件是否初始化成功
105105
/// </summary>
106106
public bool Inited { get; private set; }
107107

108108
/// <summary>
109109
/// 获得 是否已登录
110110
/// </summary>
111-
public bool IsLogined { get; private set; }
111+
public bool IsLogin { get; private set; }
112112

113113
/// <summary>
114114
/// 获得 是否正在实时预览
@@ -138,19 +138,19 @@ protected override void OnParametersSet()
138138
public async Task<bool> Login(string ip, int port, string userName, string password, HikVisionLoginType loginType = HikVisionLoginType.Http)
139139
{
140140
ThrowIfNotInited();
141-
IsLogined = await InvokeAsync<bool?>("login", Id, ip, port, userName, password, (int)loginType) ?? false;
142-
if (IsLogined)
141+
IsLogin = await InvokeAsync<bool?>("login", Id, ip, port, userName, password, (int)loginType) ?? false;
142+
if (IsLogin)
143143
{
144-
await TriggerLogined();
144+
await TriggerLogin();
145145
}
146-
return IsLogined;
146+
return IsLogin;
147147
}
148148

149-
private async Task TriggerLogined()
149+
private async Task TriggerLogin()
150150
{
151-
if (OnLoginedAsync != null)
151+
if (OnLoginAsync != null)
152152
{
153-
await OnLoginedAsync();
153+
await OnLoginAsync();
154154
}
155155
}
156156

@@ -160,20 +160,20 @@ private async Task TriggerLogined()
160160
/// <returns></returns>
161161
public async Task Logout()
162162
{
163-
if (IsLogined)
163+
if (IsLogin)
164164
{
165165
await InvokeVoidAsync("logout", Id);
166166
}
167167
IsRealPlaying = false;
168-
IsLogined = false;
169-
await TriggerLogouted();
168+
IsLogin = false;
169+
await TriggerLogout();
170170
}
171171

172-
private async Task TriggerLogouted()
172+
private async Task TriggerLogout()
173173
{
174-
if (OnLogoutedAsync != null)
174+
if (OnLogoutAsync != null)
175175
{
176-
await OnLogoutedAsync();
176+
await OnLogoutAsync();
177177
}
178178
}
179179

@@ -193,7 +193,7 @@ public async Task GetChannelList()
193193
/// <returns></returns>
194194
public async Task StartRealPlay(int streamType, int channelId)
195195
{
196-
if (IsLogined && !IsRealPlaying)
196+
if (IsLogin && !IsRealPlaying)
197197
{
198198
IsRealPlaying = await InvokeAsync<bool?>("startRealPlay", Id, streamType, channelId) ?? false;
199199
if (IsRealPlaying)

src/components/BootstrapBlazor.HikVision/Components/HikVisionWebPlugin.razor.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ export async function login(id, ip, port, userName, password, loginType) {
2222
const { logined, invoke } = vision;
2323
if (logined) {
2424
await invoke.invokeMethodAsync('TriggerGetChannelList', {
25-
analogChannels: vision.analogChannels
25+
analogChannels: vision.analogChannels,
26+
digitalChannels: vision.digitalChannels,
27+
zeroChannels: vision.zeroChannels
2628
});
2729
}
2830
return logined;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright (c) BootstrapBlazor & Argo Zhang (argo@live.ca). All rights reserved.
2+
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
3+
// Website: https://www.blazor.zone or https://argozhang.github.io/
4+
5+
namespace BootstrapBlazor.Components;
6+
7+
/// <summary>
8+
/// 模拟通道信息
9+
/// </summary>
10+
public class HikVisionZeroChannelInfo()
11+
{
12+
/// <summary>
13+
/// 获得 通道 Id
14+
/// </summary>
15+
public int Id { get; set; }
16+
17+
/// <summary>
18+
/// 获得 通道号
19+
/// </summary>
20+
public int InputPort { get; set; }
21+
22+
/// <summary>
23+
/// 获得 是否使能
24+
/// </summary>
25+
public bool Enabled { get; set; }
26+
}

src/components/BootstrapBlazor.HikVision/wwwroot/hikvision.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ const getChannelList = vision => {
112112
WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, {
113113
success: function (xmlDoc) {
114114
const channels = [...getTagNameValues(xmlDoc, "VideoInputChannel")];
115-
console.log(xmlDoc);
116115
vision.analogChannels = channels.map(channel => {
117116
return {
118117
id: parseInt(getTagNameFirstValue(channel, "id")),
@@ -151,8 +150,9 @@ const getChannelList = vision => {
151150
const channels = [...getTagNameValues(xmlDoc, "ZeroVideoChannel")];
152151
vision.zeroChannels = channels.map(channel => {
153152
return {
154-
id: getTagNameFirstValue(channel, "id"),
155-
name: getTagNameFirstValue(channel, "name")
153+
id: parseInt(getTagNameFirstValue(channel, "id")),
154+
inputPort: parseInt(getTagNameFirstValue(channel, "inputPort")),
155+
enabled: getTagNameFirstValue(channel, "enabled") === 'true',
156156
};
157157
});
158158
zero_completed = true;

0 commit comments

Comments
 (0)