diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Form.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Form.cshtml
index 77ea8ddd4..c013fa343 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Form.cshtml
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Form.cshtml
@@ -28,8 +28,8 @@
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/ADR_Device/Form.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Index.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Index.js
index aaa33dae8..d2894b287 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Index.js
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_Device/Index.js
@@ -52,7 +52,7 @@ var bootstrap = function ($, learun) {
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认删除该项!', function (res) {
if (res) {
- learun.deleteForm(top.$.rootUrl + '/EducationalAdministration/ADR_Device/DeleteForm', { keyValue: keyValue}, function () {
+ learun.deleteForm(top.$.rootUrl + '/EducationalAdministration/ADR_Device/DeleteForm', { keyValue: keyValue }, function () {
refreshGirdData();
});
}
@@ -65,31 +65,40 @@ var bootstrap = function ($, learun) {
$('#gridtable').lrAuthorizeJfGrid({
url: top.$.rootUrl + '/EducationalAdministration/ADR_Device/GetPageList',
headData: [
- { label: "设备名称", name: "DName", width: 100, align: "left"},
- { label: "设备编号", name: "DCode", width: 100, align: "left"},
- { label: "Ip地址", name: "IpAddress", width: 200, align: "left"},
- { label: "端口号", name: "PortNumber", width: 50, align: "left"},
- { label: "管理员帐号", name: "AdminAccount", width: 100, align: "left"},
- { label: "管理员密码", name: "AdminPwd", width: 100, align: "left"},
- { label: "是否启用", name: "F_EnabledMark", width: 100, align: "left",
- formatterAsync: function (callback, value, row, op,$cell) {
- learun.clientdata.getAsync('dataItem', {
- key: value,
- code: 'YesOrNoInt',
- callback: function (_data) {
- callback(_data.text);
- }
- });
- }},
+ { label: "设备名称", name: "DName", width: 100, align: "left" },
+ { label: "设备编号", name: "DCode", width: 100, align: "left" },
+ { label: "Ip地址", name: "IpAddress", width: 200, align: "left" },
+ { label: "端口号", name: "PortNumber", width: 50, align: "left" },
+ { label: "管理员帐号", name: "AdminAccount", width: 100, align: "left" },
+ { label: "管理员密码", name: "AdminPwd", width: 100, align: "left" },
+ {
+ label: "是否启用", name: "F_EnabledMark", width: 100, align: "left",
+ formatterAsync: function (callback, value, row, op, $cell) {
+ learun.clientdata.getAsync('dataItem', {
+ key: value,
+ code: 'YesOrNoInt',
+ callback: function (_data) {
+ callback(_data.text);
+ }
+ });
+ }
+ },
+ {
+ label: "是否布防", name: "DOnlineStatus", width: 100, align: "left",
+ formatter: function (cellvalue) {
+ return cellvalue == true ? "" : "";
+ }
+ },
+ { label: "最后通讯时间", name: "DConnectDate", width: 100, align: "left" }
],
- mainId:'Id',
+ mainId: 'Id',
isPage: true
});
page.search();
},
search: function (param) {
param = param || {};
- $('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) });
+ $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
}
};
refreshGirdData = function () {
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_DeviceLog/Index.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_DeviceLog/Index.js
index ace9cd786..6d408e5a5 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_DeviceLog/Index.js
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ADR_DeviceLog/Index.js
@@ -84,7 +84,7 @@ var bootstrap = function ($, learun) {
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认删除该项!', function (res) {
if (res) {
- learun.deleteForm(top.$.rootUrl + '/EducationalAdministration/ADR_DeviceLog/DeleteForm', { keyValue: keyValue}, function () {
+ learun.deleteForm(top.$.rootUrl + '/EducationalAdministration/ADR_DeviceLog/DeleteForm', { keyValue: keyValue }, function () {
refreshGirdData();
});
}
@@ -97,20 +97,32 @@ var bootstrap = function ($, learun) {
$('#gridtable').lrAuthorizeJfGrid({
url: top.$.rootUrl + '/EducationalAdministration/ADR_DeviceLog/GetPageList',
headData: [
- { label: "考勤设备", name: "DeviceId", width: 100, align: "left"},
- { label: "日志类型", name: "LogType", width: 100, align: "left"},
- { label: "日志内容", name: "LogData", width: 100, align: "left"},
- { label: "日志记录时间", name: "F_CreateDate", width: 100, align: "left"},
+ {
+ label: "考勤设备", name: "DeviceId", width: 100, align: "left", formatterAsync: function (callback, value, row, op, $cell) {
+ learun.clientdata.getAsync('custmerData', {
+ url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'ADR_Device',
+ key: value,
+ keyId: 'id',
+ callback: function (_data) {
+ callback(_data['dname']);
+ }
+ });
+ }
+ },
+ { label: "日志类型", name: "LogType", width: 100, align: "left" },
+ { label: "日志内容", name: "LogData", width: 100, align: "left" },
+ { label: "日志记录时间", name: "F_CreateDate", width: 100, align: "left" }
],
- mainId:'LogId',
- isPage: true
+ mainId: 'LogId',
+ isPage: true,
+ sidx: 'F_CreateDate desc'
});
},
search: function (param) {
param = param || {};
param.StartTime = startTime;
param.EndTime = endTime;
- $('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) });
+ $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
}
};
refreshGirdData = function () {
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Controllers/ADR_RecordController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Controllers/ADR_RecordController.cs
index bee412327..59c50a0dc 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Controllers/ADR_RecordController.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Controllers/ADR_RecordController.cs
@@ -115,8 +115,9 @@ namespace Learun.Application.Web.Areas.LogisticsManagement.Controllers
[AjaxOnly]
public ActionResult SaveForm(string keyValue, string strEntity)
{
- UserInfo userInfo = LoginUserInfo.Get(); ADR_RecordEntity entity = strEntity.ToObject();
- aDR_RecordIBLL.SaveEntity(userInfo,keyValue,entity);
+ UserInfo userInfo = LoginUserInfo.Get();
+ ADR_RecordEntity entity = strEntity.ToObject();
+ aDR_RecordIBLL.SaveEntity(keyValue,entity);
return Success("保存成功!");
}
#endregion
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.cshtml
index 0f34f52b2..ecd91c140 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.cshtml
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.cshtml
@@ -12,8 +12,8 @@
-
@@ -36,7 +33,6 @@
新增
编辑
删除
- 打印
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.js
index b180b8509..9659fb013 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.js
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.js
@@ -85,40 +85,39 @@ var bootstrap = function ($, learun) {
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认删除该项!', function (res) {
if (res) {
- learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/ADR_Record/DeleteForm', { keyValue: keyValue}, function () {
+ learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/ADR_Record/DeleteForm', { keyValue: keyValue }, function () {
refreshGirdData();
});
}
});
}
});
- // 打印
- $('#lr_print').on('click', function () {
- $('#gridtable').jqprintTable();
- });
},
// 初始化列表
initGird: function () {
$('#gridtable').lrAuthorizeJfGrid({
url: top.$.rootUrl + '/LogisticsManagement/ADR_Record/GetPageList',
headData: [
- { label: "员工名字", name: "UserName", width: 100, align: "left"},
- { label: "部门", name: "Department", width: 100, align: "left",
- formatterAsync: function (callback, value, row, op,$cell) {
- learun.clientdata.getAsync('department', {
- key: value,
- callback: function (_data) {
- callback(_data.name);
- }
- });
- }},
- { label: "考勤日期", name: "ADDate", width: 100, align: "left"},
- { label: "考勤时间", name: "ADTime", width: 100, align: "left"},
- { label: "打卡时间", name: "ClockTime", width: 100, align: "left"},
- { label: "打卡状态", name: "ClockStatus", width: 100, align: "left"},
- { label: "打卡地点", name: "ClockPlace", width: 100, align: "left"},
+ { label: "员工名字", name: "UserName", width: 100, align: "left" },
+ { label: "员工编号", name: "UserNo", width: 100, align: "left" },
+ {
+ label: "部门", name: "Department", width: 100, align: "left",
+ formatterAsync: function (callback, value, row, op, $cell) {
+ learun.clientdata.getAsync('department', {
+ key: value,
+ callback: function (_data) {
+ callback(_data.name);
+ }
+ });
+ }
+ },
+ { label: "考勤类型", name: "ADType", width: 100, align: "left" },
+ { label: "考勤时间", name: "ADTime", width: 100, align: "left" },
+ { label: "打卡时间", name: "ClockTime", width: 100, align: "left" },
+ { label: "打卡结果", name: "ClockStatus", width: 100, align: "left" },
+ { label: "打卡地点", name: "ClockPlace", width: 100, align: "left" },
],
- mainId:'ID',
+ mainId: 'ID',
isPage: true
});
},
@@ -126,7 +125,7 @@ var bootstrap = function ($, learun) {
param = param || {};
param.StartTime = startTime;
param.EndTime = endTime;
- $('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) });
+ $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
}
};
refreshGirdData = function () {
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Controllers/ADR_RecordController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Controllers/ADR_RecordController.cs
deleted file mode 100644
index 32350498f..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Controllers/ADR_RecordController.cs
+++ /dev/null
@@ -1,111 +0,0 @@
-using Learun.Util;
-using System.Data;
-using Learun.Application.TwoDevelopment.PersonnelManagement;
-using System.Web.Mvc;
-using System.Collections.Generic;
-
-namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers
-{
- ///
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创 建:超级管理员
- /// 日 期:2020-08-26 15:16
- /// 描 述:考勤记录
- ///
- public class ADR_RecordController : MvcControllerBase
- {
- private ADR_RecordIBLL aDR_RecordIBLL = new ADR_RecordBLL();
-
- #region 视图功能
-
- ///
- /// 主页面
- ///
- ///
- [HttpGet]
- public ActionResult Index()
- {
- return View();
- }
- ///
- /// 表单页
- ///
- ///
- [HttpGet]
- public ActionResult Form()
- {
- return View();
- }
- #endregion
-
- #region 获取数据
-
- ///
- /// 获取页面显示列表数据
- ///
- /// 查询参数
- ///
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetPageList(string pagination, string queryJson)
- {
- Pagination paginationobj = pagination.ToObject();
- var data = aDR_RecordIBLL.GetPageList(paginationobj, queryJson);
- var jsonData = new
- {
- rows = data,
- total = paginationobj.total,
- page = paginationobj.page,
- records = paginationobj.records
- };
- return Success(jsonData);
- }
- ///
- /// 获取表单数据
- ///
- ///
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetFormData(string keyValue)
- {
- var ADR_RecordData = aDR_RecordIBLL.GetADR_RecordEntity( keyValue );
- var jsonData = new {
- ADR_Record = ADR_RecordData,
- };
- return Success(jsonData);
- }
- #endregion
-
- #region 提交数据
-
- ///
- /// 删除实体数据
- /// 主键
- ///
- ///
- [HttpPost]
- [AjaxOnly]
- public ActionResult DeleteForm(string keyValue)
- {
- aDR_RecordIBLL.DeleteEntity(keyValue);
- return Success("删除成功!");
- }
- ///
- /// 保存实体数据(新增、修改)
- /// 主键
- ///
- ///
- [HttpPost]
- [ValidateAntiForgeryToken]
- [AjaxOnly]
- public ActionResult SaveForm(string keyValue, string strEntity)
- {
- ADR_RecordEntity entity = strEntity.ToObject();
- aDR_RecordIBLL.SaveEntity(keyValue,entity);
- return Success("保存成功!");
- }
- #endregion
-
- }
-}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Form.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Form.cshtml
deleted file mode 100644
index 0bfffc42b..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Form.cshtml
+++ /dev/null
@@ -1,39 +0,0 @@
-@{
- ViewBag.Title = "考勤记录";
- Layout = "~/Views/Shared/_Form.cshtml";
-}
-
-@Html.AppendJsFile("/Areas/PersonnelManagement/Views/ADR_Record/Form.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Form.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Form.js
deleted file mode 100644
index 28e403311..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Form.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
- * Copyright (c) 2013-2018 北京泉江科技有限公司
- * 创建人:超级管理员
- * 日 期:2020-08-26 15:16
- * 描 述:考勤记录
- */
-var acceptClick;
-var keyValue = request('keyValue');
-var bootstrap = function ($, learun) {
- "use strict";
- var page = {
- init: function () {
- $('.lr-form-wrap').lrscroll();
- page.bind();
- page.initData();
- },
- bind: function () {
- $('#UserNo').lrformselect({
- layerUrl: top.$.rootUrl + '/LR_OrganizationModule/User/SelectOnlyForm',
- layerUrlW: 400,
- layerUrlH: 300,
- dataUrl: top.$.rootUrl + '/LR_OrganizationModule/User/GetListByUserIds'
- });
- },
- initData: function () {
- if (!!keyValue) {
- $.lrSetForm(top.$.rootUrl + '/PersonnelManagement/ADR_Record/GetFormData?keyValue=' + keyValue, function (data) {
- for (var id in data) {
- if (!!data[id].length && data[id].length > 0) {
- $('#' + id ).jfGridSet('refreshdata', data[id]);
- }
- else {
- $('[data-table="' + id + '"]').lrSetFormData(data[id]);
- }
- }
- });
- }
- }
- };
- // 保存数据
- acceptClick = function (callBack) {
- if (!$('body').lrValidform()) {
- return false;
- }
- var postData = {
- strEntity: JSON.stringify($('body').lrGetFormData())
- };
- $.lrSaveForm(top.$.rootUrl + '/PersonnelManagement/ADR_Record/SaveForm?keyValue=' + keyValue, postData, function (res) {
- // 保存成功后才回调
- if (!!callBack) {
- callBack();
- }
- });
- };
- page.init();
-}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Index.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Index.cshtml
deleted file mode 100644
index be3792604..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Index.cshtml
+++ /dev/null
@@ -1,39 +0,0 @@
-@{
- ViewBag.Title = "考勤记录";
- Layout = "~/Views/Shared/_Index.cshtml";
-}
-
-@Html.AppendJsFile("/Areas/PersonnelManagement/Views/ADR_Record/Index.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Index.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Index.js
deleted file mode 100644
index 0ca600328..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/PersonnelManagement/Views/ADR_Record/Index.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
- * Copyright (c) 2013-2018 北京泉江科技有限公司
- * 创建人:超级管理员
- * 日 期:2020-08-26 15:16
- * 描 述:考勤记录
- */
-var refreshGirdData;
-var bootstrap = function ($, learun) {
- "use strict";
- var startTime;
- var endTime;
- var page = {
- init: function () {
- page.initGird();
- page.bind();
- },
- bind: function () {
- // 时间搜索框
- $('#datesearch').lrdate({
- dfdata: [
- { name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
- { name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
- { name: '近1个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
- { name: '近3个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }
- ],
- // 月
- mShow: false,
- premShow: false,
- // 季度
- jShow: false,
- prejShow: false,
- // 年
- ysShow: false,
- yxShow: false,
- preyShow: false,
- yShow: false,
- // 默认
- dfvalue: '1',
- selectfn: function (begin, end) {
- startTime = begin;
- endTime = end;
- page.search();
- }
- });
- $('#multiple_condition_query').lrMultipleQuery(function (queryJson) {
- page.search(queryJson);
- }, 220, 400);
- $('#UserNo').lrUserSelect(0);
- // 刷新
- $('#lr_refresh').on('click', function () {
- location.reload();
- });
- // 新增
- $('#lr_add').on('click', function () {
- learun.layerForm({
- id: 'form',
- title: '新增',
- url: top.$.rootUrl + '/PersonnelManagement/ADR_Record/Form',
- width: 600,
- height: 400,
- callBack: function (id) {
- return top[id].acceptClick(refreshGirdData);
- }
- });
- });
- // 编辑
- $('#lr_edit').on('click', function () {
- var keyValue = $('#gridtable').jfGridValue('ID');
- if (learun.checkrow(keyValue)) {
- learun.layerForm({
- id: 'form',
- title: '编辑',
- url: top.$.rootUrl + '/PersonnelManagement/ADR_Record/Form?keyValue=' + keyValue,
- width: 600,
- height: 400,
- callBack: function (id) {
- return top[id].acceptClick(refreshGirdData);
- }
- });
- }
- });
- // 删除
- $('#lr_delete').on('click', function () {
- var keyValue = $('#gridtable').jfGridValue('ID');
- if (learun.checkrow(keyValue)) {
- learun.layerConfirm('是否确认删除该项!', function (res) {
- if (res) {
- learun.deleteForm(top.$.rootUrl + '/PersonnelManagement/ADR_Record/DeleteForm', { keyValue: keyValue }, function () {
- refreshGirdData();
- });
- }
- });
- }
- });
- },
- // 初始化列表
- initGird: function () {
- $('#gridtable').lrAuthorizeJfGrid({
- url: top.$.rootUrl + '/PersonnelManagement/ADR_Record/GetPageList',
- headData: [
- { label: "员工名字", name: "UserName", width: 100, align: "left" },
- {
- label: "员工编号", name: "UserNo", width: 100, align: "left",
- formatterAsync: function (callback, value, row, op, $cell) {
- learun.clientdata.getAsync('user', {
- key: value,
- callback: function (_data) {
- callback(_data.name);
- }
- });
- }
- },
- { label: "部门", name: "Department", width: 100, align: "left" },
- { label: "考勤日期", name: "ADDate", width: 100, align: "left" },
- { label: "考勤时间", name: "ADTime", width: 100, align: "left" },
- { label: "打卡时间", name: "ClockTime", width: 100, align: "left" },
- {
- label: "打卡状态", name: "ClockStatus", width: 100, align: "left", formatterAsync: function (callback, value, row, op, $cell) {
- learun.clientdata.getAsync('dataItem', {
- key: value,
- code: 'ADR_Status',
- callback: function (_data) {
- callback(_data.text);
- }
- });
- }
- },
- { label: "打卡地点", name: "ClockPlace", width: 100, align: "left" },
- ],
- mainId: 'ID',
- isPage: true
- });
- },
- search: function (param) {
- param = param || {};
- param.StartTime = startTime;
- param.EndTime = endTime;
- $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
- }
- };
- refreshGirdData = function () {
- page.search();
- };
- page.init();
-}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
index 11b899a54..7c3704437 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
@@ -797,7 +797,6 @@
-
@@ -6045,10 +6044,6 @@
-
-
-
-
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LogisticsManagement/ADR_RecordApi.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LogisticsManagement/ADR_RecordApi.cs
index ed3097062..1a4d2d694 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LogisticsManagement/ADR_RecordApi.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LogisticsManagement/ADR_RecordApi.cs
@@ -96,7 +96,7 @@ namespace Learun.Application.WebApi
{
ReqFormEntity parameter = this.GetReqData();
ADR_RecordEntity entity = parameter.strEntity.ToObject();
- aDR_RecordIBLL.SaveEntity(this.userInfo,parameter.keyValue,entity);
+ aDR_RecordIBLL.SaveEntity(parameter.keyValue,entity);
return Success("保存成功!");
}
#endregion
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/DBModel/资产系统.PDM b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/DBModel/资产系统.PDM
index f5bf5e58d..fa6b9e4d0 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/DBModel/资产系统.PDM
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/DBModel/资产系统.PDM
@@ -1,5 +1,5 @@
-
+
@@ -11846,9 +11846,9 @@ LABL 0 新宋体,8,N
1598423768
-1599114136
+1599201856
-1
-((-121671,194471), (-110755,203319))
+((-140220,176396), (-109606,188544))
12615680
16570034
12632256
@@ -11925,9 +11925,9 @@ LABL 0 新宋体,8,N
1599114139
-1599115543
+1599193158
-1
-((-109762,192885), (-97300,203383))
+((-118462,192473), (-106000,203795))
12615680
16570034
12632256
@@ -47122,8 +47122,8 @@ B9AF
ADR_Record
1598423768
edz
-1598424947
-edz
+1599193860
+Administrator
考情记录
@@ -47178,46 +47178,46 @@ B9AF
6147E3D6-4E3F-4BA5-AF58-25F53CB8B8BD
-考勤日期
-ADDate
+考勤类型0-未定义,1-上班,2-下班,3-开始休息,4-结束休息,5-开始加班,6-结束加班
+ADType
1598424586
edz
-1598424947
-edz
+1599193151
+Administrator
考勤日期
nvarchar(50)
50
80AC9656-F8DC-4B99-8953-80912F185017
-考勤时间
+考勤时间(服务器时间)
ADTime
1598423771
edz
-1598424582
-edz
+1599193860
+Administrator
考勤时间
datetime
B34FD47D-8580-4F17-B8AF-E3703F691999
-打卡时间
+打卡时间(考勤机时间)
ClockTime
1598423771
edz
-1598424582
-edz
+1599193860
+Administrator
打卡时间
datetime
4BD51C76-BEFE-4830-861B-61AB5EDD796F
-打卡结果
+打卡结果1正常,2迟到,3早退,4上班补签,5下班补签
ClockStatus
1598423771
edz
-1598424582
-edz
+1599201781
+Administrator
打卡
nvarchar(50)
50
@@ -47234,9 +47234,42 @@ B9AF
nvarchar(50)
50
+
+0E425B78-ADDD-4476-89D5-0AF3652B2BB9
+考勤年
+ADYear
+1599193179
+Administrator
+1599193860
+Administrator
+nvarchar(50)
+50
+
+
+A65C1C9A-E08C-433F-A2F5-5951E08C311F
+考勤月
+ADMonth
+1599193179
+Administrator
+1599193860
+Administrator
+nvarchar(50)
+50
+
+
+E7E08171-0365-4AD0-85AA-FC6975A5F506
+考勤日
+ADDay
+1599193179
+Administrator
+1599193860
+Administrator
+nvarchar(50)
+50
+
-
+
99F727D3-CAB0-4E9A-A661-D3347EF8CD96
Key_1
Key_1
@@ -47250,10 +47283,10 @@ B9AF
-
+
-
+
@@ -47262,12 +47295,12 @@ B9AF
ADR_Device
1599104676
Administrator
-1599106965
+1599128374
Administrator
考勤设备管理
-
+
9D249636-3C2D-4FC5-A874-DFE2F2155F8B
Id
Id
@@ -47279,7 +47312,7 @@ B9AF
50
1
-
+
12FB6C42-EF4F-4AED-90C3-7B5E9929E9FD
设备名称
DName
@@ -47290,7 +47323,7 @@ B9AF
nvarchar(50)
50
-
+
CFC854AC-7287-4EDA-AC5F-8D5E5B3B5338
设备编号
DCode
@@ -47301,7 +47334,7 @@ B9AF
nvarchar(50)
50
-
+
925DAAC4-4C87-4D50-B506-2B84B5D762B2
Ip地址
IpAddress
@@ -47312,7 +47345,7 @@ B9AF
nvarchar(50)
50
-
+
81D77744-A546-4C7C-87D2-1C6345B6C650
端口号
PortNumber
@@ -47322,7 +47355,7 @@ B9AF
Administrator
int
-
+
D693475B-44DD-43B6-8417-16D6E6CB9752
管理员帐号
AdminAccount
@@ -47333,7 +47366,7 @@ B9AF
nvarchar(50)
50
-
+
1C21FD25-CF5E-471F-BB1E-DAFFCB9622ED
管理员密码
AdminPwd
@@ -47344,7 +47377,7 @@ B9AF
nvarchar(50)
50
-
+
F4CB8471-DA6E-4739-A65E-F0B273A35B71
是否启用
F_EnabledMark
@@ -47354,7 +47387,7 @@ B9AF
Administrator
int
-
+
71354792-8DB0-44A7-98DC-D63D0DF97800
设备布防状态
DOnlineStatus
@@ -47364,7 +47397,7 @@ B9AF
Administrator
bit
-
+
601184F9-95FC-4887-B9E4-1DCEDBE8A26E
设备最后通讯时间
DConnectDate
@@ -47374,7 +47407,18 @@ B9AF
Administrator
datetime
-
+
+9354AF58-F9F4-4B44-B43A-DAA0CCF27DF6
+设备lUserID
+DlUserID
+1599128322
+Administrator
+1599128374
+Administrator
+nvarchar(50)
+50
+
+
9FDC6101-5468-48DA-913E-0EDFA776E01E
F_CreateDate
F_CreateDate
@@ -47384,7 +47428,7 @@ B9AF
Administrator
datetime
-
+
ADE41F7A-D721-457A-8B2B-4C1F186344C5
F_CreateUserId
F_CreateUserId
@@ -47395,7 +47439,7 @@ B9AF
nvarchar(50)
50
-
+
9A968663-BAC9-4B8D-8F58-410E553E50B8
F_CreateUserName
F_CreateUserName
@@ -47406,7 +47450,7 @@ B9AF
nvarchar(50)
50
-
+
2D7B4825-D319-4740-AD74-2F707908FEEA
F_ModifyDate
F_ModifyDate
@@ -47416,7 +47460,7 @@ B9AF
Administrator
datetime
-
+
696D9EF8-31BB-47C5-8526-C322470A96AC
F_ModifyUserId
F_ModifyUserId
@@ -47427,7 +47471,7 @@ B9AF
nvarchar(50)
50
-
+
BD0F8981-431B-42EC-A515-F1A2CA46FCA1
F_ModifyUserName
F_ModifyUserName
@@ -47440,7 +47484,7 @@ B9AF
-
+
7D84A058-BAB4-4CA1-B262-896747D61705
Key_1
Key_1
@@ -47449,15 +47493,15 @@ B9AF
1599104860
Administrator
-
+
-
+
-
+
@@ -47471,7 +47515,7 @@ B9AF
考勤设备日志
-
+
9CEE15F0-DD42-4FA4-B6E7-6D3561423F95
LogId
LogId
@@ -47483,7 +47527,7 @@ B9AF
50
1
-
+
FF4B4905-5EB3-4B23-931D-CF2C781C50E7
设备Id
DeviceId
@@ -47494,7 +47538,7 @@ B9AF
nvarchar(50)
50
-
+
18DA3B68-1424-4DAF-880F-B9FD2279728B
日志类型
LogType
@@ -47505,7 +47549,7 @@ B9AF
nvarchar(50)
50
-
+
0A812357-6E40-46E8-8A20-94C121AF3285
日志记录信息
LogData
@@ -47515,7 +47559,7 @@ B9AF
Administrator
nvarchar(Max)
-
+
2029F63E-0C33-4039-93BA-CBEA2E803082
F_CreateDate
F_CreateDate
@@ -47525,7 +47569,7 @@ B9AF
Administrator
datetime
-
+
40533AFD-66A4-4F4D-8343-27E5F6A79B56
F_CreateUserId
F_CreateUserId
@@ -47536,7 +47580,7 @@ B9AF
nvarchar(50)
50
-
+
7D493CA7-4AFD-4305-8681-6E9B382B9C07
F_CreateUserName
F_CreateUserName
@@ -47547,7 +47591,7 @@ B9AF
nvarchar(50)
50
-
+
C195B8D4-14D5-4CDE-9F7A-5B4C2DA8E689
F_ModifyDate
F_ModifyDate
@@ -47557,7 +47601,7 @@ B9AF
Administrator
datetime
-
+
1C8B2B07-C690-4888-A179-96F90198212E
F_ModifyUserId
F_ModifyUserId
@@ -47568,7 +47612,7 @@ B9AF
nvarchar(50)
50
-
+
CA128145-50F6-4266-809E-34FCDE435CF0
F_ModifyUserName
F_ModifyUserName
@@ -47581,7 +47625,7 @@ B9AF
-
+
C4CDBD69-2DFE-443B-B26A-CEB7655EEDEA
Key_1
Key_1
@@ -47590,15 +47634,15 @@ B9AF
1599105066
Administrator
-
+
-
+
-
+
@@ -47607,12 +47651,12 @@ B9AF
ADR_Restriction
1599114139
edz
-1599115046
-edz
+1599202395
+Administrator
考勤限制
-
+
3BFFB929-C500-4FA2-9A09-AF9BF59854F8
编号
ID
@@ -47625,7 +47669,7 @@ B9AF
50
1
-
+
93C88E0D-2759-4697-BE6C-43E0CAB2FE07
上班时间
WorkTime
@@ -47637,7 +47681,7 @@ B9AF
nvarchar(50)
50
-
+
4078D2EB-E5FF-43D3-8D13-3D8587D2AC49
下班时间
CloseTime
@@ -47649,7 +47693,7 @@ B9AF
nvarchar(50)
50
-
+
EE9B7C66-B13F-4559-ADDD-796DEDFCBB5B
签到时间开始
SignInStartTime
@@ -47661,7 +47705,7 @@ B9AF
nvarchar(50)
50
-
+
737642C0-24B3-46F2-BE53-2FA629EF6A2B
签到时间结束
SignInEndTime
@@ -47673,7 +47717,7 @@ B9AF
nvarchar(50)
50
-
+
C42C687A-FBB6-4D67-8EB6-04E112FC44AB
签退时间开始
SignOutStartTime
@@ -47685,7 +47729,7 @@ B9AF
nvarchar(50)
50
-
+
370EEA06-C637-466E-880C-03AFC80DE145
签退时间结束
SignOutEndTime
@@ -47697,7 +47741,7 @@ B9AF
nvarchar(50)
50
-
+
FDD05771-1B66-4DAC-B2B3-4330AC4F9036
迟到超时
LateOvertime
@@ -47708,7 +47752,7 @@ B9AF
迟到超时
int
-
+
FA1B8722-054D-4003-8BBF-4140509E5C74
早退超时
LeaveOverTime
@@ -47719,7 +47763,7 @@ B9AF
早退超时
int
-
+
A80CB89E-F4C9-476F-A175-314F31A11521
未签到,记为
NoSignIn
@@ -47730,7 +47774,7 @@ B9AF
未签到,记为
int
-
+
E8CC0680-7B0A-4513-B2BC-4125BE20D4B0
未签退,记为
NoSignOut
@@ -47741,9 +47785,19 @@ B9AF
未签退,记为
int
+
+6D306382-82C1-4B11-916A-759CED546B14
+是否启用
+REnable
+1599202203
+Administrator
+1599202395
+Administrator
+bit
+
-
+
8ADE1FCB-0EC0-4C87-833F-EF8E53656C24
Key_1
Key_1
@@ -47752,15 +47806,15 @@ B9AF
1599115046
edz
-
+
-
+
-
+
@@ -47785,7 +47839,7 @@ B9AF
-
+
14D78C43-17A2-48F0-83B4-3DF757D5ABE8
1552635393
l
@@ -47820,7 +47874,7 @@ B9AF
-
+
FEAECB7B-8E2A-4492-A530-B0062E1511B8
1552635777
l
@@ -47855,7 +47909,7 @@ B9AF
-
+
81527A47-E565-49C2-AAA7-F0555E81CE72
1553245426
l
@@ -47890,7 +47944,7 @@ B9AF
-
+
A3225D9D-069C-4A67-ABF0-43DC2FA55CF0
1553247802
l
@@ -47924,7 +47978,7 @@ B9AF
-
+
B458081F-CEE1-4251-9E7A-5E9CC93519D5
1553248376
l
@@ -47959,7 +48013,7 @@ B9AF
-
+
8397C4F6-A728-4D3F-B2F8-FAC56886462B
1553248622
l
@@ -47993,7 +48047,7 @@ B9AF
-
+
2F8BC700-F31E-41CC-9DA8-9505EAC5DA85
1553483161
l
@@ -48027,7 +48081,7 @@ B9AF
-
+
0E2D2049-564F-4247-9F5B-B0AA82F9BE96
1555404296
admin
@@ -48044,7 +48098,7 @@ B9AF
-
+
46EC3E2A-6CBF-421A-9DA8-6BCCEDEC7DF5
PUBLIC
PUBLIC
@@ -48307,7 +48361,7 @@ B9AF
-
+
B1BAD530-6C69-4A9D-BD41-F62F564CA348
Microsoft SQL Server 2008
MSSQLSRV2008
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceBLL.cs
index 228fc1c99..87bfb50f9 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceBLL.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceBLL.cs
@@ -119,6 +119,44 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
}
}
+ public IEnumerable GetAllUnconnectedList(bool isshowall)
+ {
+ try
+ {
+ return aDR_DeviceService.GetAllUnconnectedList(isshowall);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowBusinessException(ex);
+ }
+ }
+ }
+
+ public ADR_DeviceEntity GetADR_DeviceEntityBylUserID(string lUserId)
+ {
+ try
+ {
+ return aDR_DeviceService.GetADR_DeviceEntityBylUserID(lUserId);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowBusinessException(ex);
+ }
+ }
+ }
+
#endregion
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceEntity.cs
index 3866a935a..e998681f0 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceEntity.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceEntity.cs
@@ -65,6 +65,11 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
[Column("DCONNECTDATE")]
public DateTime? DConnectDate { get; set; }
///
+ /// 设备lUserID
+ ///
+ [Column("DLUSERID")]
+ public string DlUserID { get; set; }
+ ///
/// F_CreateDate
///
[Column("F_CREATEDATE")]
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceIBLL.cs
index 1e08e6247..fa60616af 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceIBLL.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceIBLL.cs
@@ -44,5 +44,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
void SaveEntity(string keyValue, ADR_DeviceEntity entity);
#endregion
+ IEnumerable GetAllUnconnectedList(bool isshowall);
+ ADR_DeviceEntity GetADR_DeviceEntityBylUserID(string lUserId);
}
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceService.cs
index 8bcd29e92..4b4940301 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceService.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_Device/ADR_DeviceService.cs
@@ -30,23 +30,13 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
try
{
var strSql = new StringBuilder();
- strSql.Append("SELECT ");
- strSql.Append(@"
- t.Id,
- t.DName,
- t.DCode,
- t.IpAddress,
- t.PortNumber,
- t.AdminAccount,
- t.AdminPwd,
- t.F_EnabledMark
- ");
+ strSql.Append("SELECT * ");
strSql.Append(" FROM ADR_Device t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
- return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(),dp, pagination);
+ return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination);
}
catch (Exception ex)
{
@@ -97,7 +87,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
{
try
{
- this.BaseRepository("CollegeMIS").Delete(t=>t.Id == keyValue);
+ this.BaseRepository("CollegeMIS").Delete(t => t.Id == keyValue);
}
catch (Exception ex)
{
@@ -147,5 +137,51 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
#endregion
+ ///
+ /// 获取离线设备
+ ///
+ /// 是否忽略离线标志
+ ///
+ public IEnumerable GetAllUnconnectedList(bool isshowall)
+ {
+ try
+ {
+ if (isshowall)
+ {
+ return this.BaseRepository("CollegeMIS").FindList(m => m.F_EnabledMark == 1);
+ }
+ return this.BaseRepository("CollegeMIS").FindList(m => m.F_EnabledMark == 1 && m.DOnlineStatus == false);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+
+ public ADR_DeviceEntity GetADR_DeviceEntityBylUserID(string lUserId)
+ {
+ try
+ {
+ return this.BaseRepository("CollegeMIS").FindEntity(m => m.F_EnabledMark == 1 && m.DlUserID==lUserId);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
}
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_DeviceLog/ADR_DeviceLogEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_DeviceLog/ADR_DeviceLogEntity.cs
index ecab222ea..fa9fb84ec 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_DeviceLog/ADR_DeviceLogEntity.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/ADR_DeviceLog/ADR_DeviceLogEntity.cs
@@ -25,7 +25,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
[Column("DEVICEID")]
public string DeviceId { get; set; }
///
- /// LogType
+ /// 日志类型(0正常,1警告,2错误)
///
[Column("LOGTYPE")]
public string LogType { get; set; }
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
index e68e86dcf..8aa5a876c 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
@@ -1560,10 +1560,6 @@
-
-
-
-
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordBLL.cs
index 888b501e8..36a2a8aa3 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordBLL.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordBLL.cs
@@ -91,6 +91,24 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
}
}
+ public IEnumerable GetADR_RecordEntityByEmpNo(string year, string month, string day, string empno)
+ {
+ try
+ {
+ return aDR_RecordService.GetADR_RecordEntityByEmpNo(year,month,day,empno);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowBusinessException(ex);
+ }
+ }
+ }
#endregion
#region 提交数据
@@ -124,11 +142,11 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
/// 主键
///
///
- public void SaveEntity(UserInfo userInfo, string keyValue, ADR_RecordEntity entity)
+ public void SaveEntity(string keyValue, ADR_RecordEntity entity)
{
try
{
- aDR_RecordService.SaveEntity(userInfo, keyValue, entity);
+ aDR_RecordService.SaveEntity(keyValue, entity);
}
catch (Exception ex)
{
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordEntity.cs
index a3b134bb5..479ebd1ea 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordEntity.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordEntity.cs
@@ -35,37 +35,52 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
[Column("DEPARTMENT")]
public string Department { get; set; }
///
- /// 考勤日期
+ /// 考勤类型 0-未定义,1-上班,2-下班,3-开始休息,4-结束休息,5-开始加班,6-结束加班
///
- [Column("ADDATE")]
- public string ADDate { get; set; }
+ [Column("ADTYPE")]
+ public string ADType { get; set; }
///
- /// 考勤时间
+ /// 考勤时间(服务器时间)
///
[Column("ADTIME")]
public DateTime? ADTime { get; set; }
///
- /// 打卡时间
+ /// 打卡时间(考勤机时间)
///
[Column("CLOCKTIME")]
public DateTime? ClockTime { get; set; }
///
- /// 打卡
+ /// 打卡结果 1正常,2迟到,3早退,4上班补签,5下班补签
///
[Column("CLOCKSTATUS")]
public string ClockStatus { get; set; }
///
- /// 打卡地点
+ /// 打卡地点
///
[Column("CLOCKPLACE")]
public string ClockPlace { get; set; }
+ ///
+ /// 考勤年
+ ///
+ [Column("ADYEAR")]
+ public string ADYear { get; set; }
+ ///
+ /// 考勤月
+ ///
+ [Column("ADMONTH")]
+ public string ADMonth { get; set; }
+ ///
+ /// 考勤日
+ ///
+ [Column("ADDAY")]
+ public string ADDay { get; set; }
#endregion
#region 扩展操作
///
/// 新增调用
///
- public void Create(UserInfo userInfo)
+ public void Create()
{
this.ID = Guid.NewGuid().ToString();
}
@@ -73,7 +88,7 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
/// 编辑调用
///
///
- public void Modify(string keyValue, UserInfo userInfo)
+ public void Modify(string keyValue)
{
this.ID = keyValue;
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordIBLL.cs
index 1d513d962..529a474ff 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordIBLL.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordIBLL.cs
@@ -34,6 +34,8 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
///
///
ADR_RecordEntity GetADR_RecordEntity(string keyValue);
+
+ IEnumerable GetADR_RecordEntityByEmpNo(string year, string month, string day, string empno);
#endregion
#region 提交数据
@@ -49,7 +51,7 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
/// 主键
///
///
- void SaveEntity(UserInfo userInfo, string keyValue, ADR_RecordEntity entity);
+ void SaveEntity(string keyValue, ADR_RecordEntity entity);
#endregion
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordService.cs
index 4cbc89d9f..b44b2369b 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordService.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordService.cs
@@ -30,17 +30,7 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
try
{
var strSql = new StringBuilder();
- strSql.Append("SELECT ");
- strSql.Append(@"
- t.ID,
- t.UserName,
- t.Department,
- t.ADDate,
- t.ADTime,
- t.ClockTime,
- t.ClockStatus,
- t.ClockPlace
- ");
+ strSql.Append("SELECT * ");
strSql.Append(" FROM ADR_Record t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
@@ -50,7 +40,7 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
{
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
- strSql.Append(" AND ( t.ADDate >= @startTime AND t.ADDate <= @endTime ) ");
+ strSql.Append(" AND ( t.ADTime >= @startTime AND t.ADTime <= @endTime ) ");
}
if (!queryParam["UserName"].IsEmpty())
{
@@ -62,11 +52,6 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
dp.Add("Department",queryParam["Department"].ToString(), DbType.String);
strSql.Append(" AND t.Department = @Department ");
}
- if (!queryParam["ADTime"].IsEmpty())
- {
- dp.Add("ADTime",queryParam["ADTime"].ToString(), DbType.String);
- strSql.Append(" AND t.ADTime = @ADTime ");
- }
return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(),dp, pagination);
}
catch (Exception ex)
@@ -92,17 +77,7 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
try
{
var strSql = new StringBuilder();
- strSql.Append("SELECT ");
- strSql.Append(@"
- t.ID,
- t.UserName,
- t.Department,
- t.ADDate,
- t.ADTime,
- t.ClockTime,
- t.ClockStatus,
- t.ClockPlace
- ");
+ strSql.Append("SELECT * ");
strSql.Append(" FROM ADR_Record t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
@@ -112,7 +87,7 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
{
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
- strSql.Append(" AND ( t.ADDate >= @startTime AND t.ADDate <= @endTime ) ");
+ strSql.Append(" AND ( t.ADTime >= @startTime AND t.ADTime <= @endTime ) ");
}
if (!queryParam["UserName"].IsEmpty())
{
@@ -124,11 +99,6 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
dp.Add("Department",queryParam["Department"].ToString(), DbType.String);
strSql.Append(" AND t.Department = @Department ");
}
- if (!queryParam["ADTime"].IsEmpty())
- {
- dp.Add("ADTime",queryParam["ADTime"].ToString(), DbType.String);
- strSql.Append(" AND t.ADTime = @ADTime ");
- }
return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(),dp);
}
catch (Exception ex)
@@ -201,18 +171,18 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
/// 主键
///
///
- public void SaveEntity( UserInfo userInfo, string keyValue, ADR_RecordEntity entity)
+ public void SaveEntity(string keyValue, ADR_RecordEntity entity)
{
try
{
if (!string.IsNullOrEmpty(keyValue))
{
- entity.Modify(keyValue,userInfo);
+ entity.Modify(keyValue);
this.BaseRepository("CollegeMIS").Update(entity);
}
else
{
- entity.Create(userInfo);
+ entity.Create();
this.BaseRepository("CollegeMIS").Insert(entity);
}
}
@@ -229,6 +199,32 @@ namespace Learun.Application.TwoDevelopment.LogisticsManagement
}
}
+ ///
+ /// 获取当日用户考勤记录
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public IEnumerable GetADR_RecordEntityByEmpNo(string year,string month,string day,string empno)
+ {
+ try
+ {
+ return this.BaseRepository("CollegeMIS").FindList(m=>m.ADYear==year&&m.ADMonth==month&&m.ADDay==day&&m.UserNo==empno);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
#endregion
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordBLL.cs
deleted file mode 100644
index ae4509f64..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordBLL.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using Learun.Util;
-using System;
-using System.Data;
-using System.Collections.Generic;
-
-namespace Learun.Application.TwoDevelopment.PersonnelManagement
-{
- ///
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创 建:超级管理员
- /// 日 期:2020-08-26 15:16
- /// 描 述:考勤记录
- ///
- public class ADR_RecordBLL : ADR_RecordIBLL
- {
- private ADR_RecordService aDR_RecordService = new ADR_RecordService();
-
- #region 获取数据
-
- ///
- /// 获取页面显示列表数据
- ///
- /// 查询参数
- ///
- public IEnumerable GetPageList(Pagination pagination, string queryJson)
- {
- try
- {
- return aDR_RecordService.GetPageList(pagination, queryJson);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowBusinessException(ex);
- }
- }
- }
-
- ///
- /// 获取ADR_Record表实体数据
- /// 主键
- ///
- ///
- public ADR_RecordEntity GetADR_RecordEntity(string keyValue)
- {
- try
- {
- return aDR_RecordService.GetADR_RecordEntity(keyValue);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowBusinessException(ex);
- }
- }
- }
-
- #endregion
-
- #region 提交数据
-
- ///
- /// 删除实体数据
- /// 主键
- ///
- ///
- public void DeleteEntity(string keyValue)
- {
- try
- {
- aDR_RecordService.DeleteEntity(keyValue);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowBusinessException(ex);
- }
- }
- }
-
- ///
- /// 保存实体数据(新增、修改)
- /// 主键
- ///
- ///
- public void SaveEntity(string keyValue, ADR_RecordEntity entity)
- {
- try
- {
- aDR_RecordService.SaveEntity(keyValue, entity);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowBusinessException(ex);
- }
- }
- }
-
- #endregion
-
- }
-}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordEntity.cs
deleted file mode 100644
index f2717bd94..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordEntity.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using Learun.Util;
-using System;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Learun.Application.TwoDevelopment.PersonnelManagement
-{
- ///
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创 建:超级管理员
- /// 日 期:2020-08-26 15:16
- /// 描 述:考勤记录
- ///
- public class ADR_RecordEntity
- {
- #region 实体成员
- ///
- /// 编号
- ///
- [Column("ID")]
- public string ID { get; set; }
- ///
- /// 员工名字
- ///
- [Column("USERNAME")]
- public string UserName { get; set; }
- ///
- /// 员工编号
- ///
- [Column("USERNO")]
- public string UserNo { get; set; }
- ///
- /// 部门
- ///
- [Column("DEPARTMENT")]
- public string Department { get; set; }
- ///
- /// 考勤日期
- ///
- [Column("ADDATE")]
- public string ADDate { get; set; }
- ///
- /// 考勤时间
- ///
- [Column("ADTIME")]
- public DateTime? ADTime { get; set; }
- ///
- /// 打卡时间
- ///
- [Column("CLOCKTIME")]
- public DateTime? ClockTime { get; set; }
- ///
- /// 打卡
- ///
- [Column("CLOCKSTATUS")]
- public string ClockStatus { get; set; }
- ///
- /// 打卡地点
- ///
- [Column("CLOCKPLACE")]
- public string ClockPlace { get; set; }
- #endregion
-
- #region 扩展操作
- ///
- /// 新增调用
- ///
- public void Create()
- {
- this.ID = Guid.NewGuid().ToString();
- }
- ///
- /// 编辑调用
- ///
- ///
- public void Modify(string keyValue)
- {
- this.ID = keyValue;
- }
- #endregion
- #region 扩展字段
- #endregion
- }
-}
-
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordIBLL.cs
deleted file mode 100644
index 3afd3020c..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordIBLL.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using Learun.Util;
-using System.Data;
-using System.Collections.Generic;
-
-namespace Learun.Application.TwoDevelopment.PersonnelManagement
-{
- ///
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创 建:超级管理员
- /// 日 期:2020-08-26 15:16
- /// 描 述:考勤记录
- ///
- public interface ADR_RecordIBLL
- {
- #region 获取数据
-
- ///
- /// 获取页面显示列表数据
- ///
- /// 查询参数
- ///
- IEnumerable GetPageList(Pagination pagination, string queryJson);
- ///
- /// 获取ADR_Record表实体数据
- /// 主键
- ///
- ///
- ADR_RecordEntity GetADR_RecordEntity(string keyValue);
- #endregion
-
- #region 提交数据
-
- ///
- /// 删除实体数据
- /// 主键
- ///
- ///
- void DeleteEntity(string keyValue);
- ///
- /// 保存实体数据(新增、修改)
- /// 主键
- ///
- ///
- void SaveEntity(string keyValue, ADR_RecordEntity entity);
- #endregion
-
- }
-}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordService.cs
deleted file mode 100644
index 012996451..000000000
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Record/ADR_RecordService.cs
+++ /dev/null
@@ -1,163 +0,0 @@
-using Dapper;
-using Learun.DataBase.Repository;
-using Learun.Util;
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Text;
-
-namespace Learun.Application.TwoDevelopment.PersonnelManagement
-{
- ///
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创 建:超级管理员
- /// 日 期:2020-08-26 15:16
- /// 描 述:考勤记录
- ///
- public class ADR_RecordService : RepositoryFactory
- {
- #region 获取数据
-
- ///
- /// 获取页面显示列表数据
- ///
- /// 查询参数
- ///
- public IEnumerable GetPageList(Pagination pagination, string queryJson)
- {
- try
- {
- var strSql = new StringBuilder();
- strSql.Append("SELECT ");
- strSql.Append(@"
- t.ID,
- t.UserName,
- t.UserNo,
- t.Department,
- t.ADDate,
- t.ADTime,
- t.ClockTime,
- t.ClockStatus,
- t.ClockPlace
- ");
- strSql.Append(" FROM ADR_Record t ");
- strSql.Append(" WHERE 1=1 ");
- var queryParam = queryJson.ToJObject();
- // 虚拟参数
- var dp = new DynamicParameters(new { });
- if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
- {
- dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
- dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
- strSql.Append(" AND ( t.ADDate >= @startTime AND t.ADDate <= @endTime ) ");
- }
- if (!queryParam["UserNo"].IsEmpty())
- {
- dp.Add("UserNo",queryParam["UserNo"].ToString(), DbType.String);
- strSql.Append(" AND t.UserNo = @UserNo ");
- }
- return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(),dp, pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- ///
- /// 获取ADR_Record表实体数据
- /// 主键
- ///
- ///
- public ADR_RecordEntity GetADR_RecordEntity(string keyValue)
- {
- try
- {
- return this.BaseRepository("CollegeMIS").FindEntity(keyValue);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- #endregion
-
- #region 提交数据
-
- ///
- /// 删除实体数据
- /// 主键
- ///
- ///
- public void DeleteEntity(string keyValue)
- {
- try
- {
- this.BaseRepository("CollegeMIS").Delete(t=>t.ID == keyValue);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- ///
- /// 保存实体数据(新增、修改)
- /// 主键
- ///
- ///
- public void SaveEntity(string keyValue, ADR_RecordEntity entity)
- {
- try
- {
- if (!string.IsNullOrEmpty(keyValue))
- {
- entity.Modify(keyValue);
- this.BaseRepository("CollegeMIS").Update(entity);
- }
- else
- {
- entity.Create();
- this.BaseRepository("CollegeMIS").Insert(entity);
- }
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- #endregion
-
- }
-}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionBLL.cs
index d93cce18b..f7fd1301a 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionBLL.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionBLL.cs
@@ -119,6 +119,25 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
}
}
+ public ADR_RestrictionEntity GetADR_RestrictionEntityEnabled()
+ {
+ try
+ {
+ return aDR_RestrictionService.GetADR_RestrictionEntityEnabled();
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowBusinessException(ex);
+ }
+ }
+ }
+
#endregion
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionEntity.cs
index 45dccdbc3..0275ee094 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionEntity.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionEntity.cs
@@ -69,6 +69,11 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
///
[Column("NOSIGNOUT")]
public int? NoSignOut { get; set; }
+ ///
+ /// 是否启用
+ ///
+ [Column("RENABLE")]
+ public bool? REnable { get; set; }
#endregion
#region 扩展操作
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionIBLL.cs
index 8dc6ac922..a2255542b 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionIBLL.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionIBLL.cs
@@ -44,5 +44,6 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
void SaveEntity(string keyValue, ADR_RestrictionEntity entity);
#endregion
+ ADR_RestrictionEntity GetADR_RestrictionEntityEnabled();
}
}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionService.cs
index 6cf3f764d..6aaf40df7 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionService.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionService.cs
@@ -150,5 +150,23 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
#endregion
+ public ADR_RestrictionEntity GetADR_RestrictionEntityEnabled()
+ {
+ try
+ {
+ return this.BaseRepository("CollegeMIS").FindEntity(m=>m.REnable==true);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
}
}
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/App.config b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/App.config
index 4b8be652f..d0ef9cd50 100644
--- a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/App.config
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/App.config
@@ -1,53 +1,54 @@
-
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -58,21 +59,21 @@
-
+
-
+
-
+
-
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCCore.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCCore.dll
new file mode 100644
index 000000000..ce2f70bbc
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCCore.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDK.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDK.dll
new file mode 100644
index 000000000..152d454cf
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDK.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/AnalyzeData.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/AnalyzeData.dll
new file mode 100644
index 000000000..1b8db2a39
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/AnalyzeData.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/AudioIntercom.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/AudioIntercom.dll
new file mode 100644
index 000000000..cd032acfd
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/AudioIntercom.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCAlarm.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCAlarm.dll
new file mode 100644
index 000000000..54e716ba7
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCAlarm.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCAlarm.lib b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCAlarm.lib
new file mode 100644
index 000000000..971d52b28
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCAlarm.lib differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCCoreDevCfg.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCCoreDevCfg.dll
new file mode 100644
index 000000000..d901cad37
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCCoreDevCfg.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCDisplay.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCDisplay.dll
new file mode 100644
index 000000000..f3429daaf
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCDisplay.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCGeneralCfgMgr.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCGeneralCfgMgr.dll
new file mode 100644
index 000000000..0acb3256f
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCGeneralCfgMgr.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCGeneralCfgMgr.lib b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCGeneralCfgMgr.lib
new file mode 100644
index 000000000..b2acf0082
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCGeneralCfgMgr.lib differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCIndustry.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCIndustry.dll
new file mode 100644
index 000000000..3d983716e
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCIndustry.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPlayBack.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPlayBack.dll
new file mode 100644
index 000000000..e27bc1808
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPlayBack.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPreview.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPreview.dll
new file mode 100644
index 000000000..a9da36a81
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPreview.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPreview.lib b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPreview.lib
new file mode 100644
index 000000000..355596dfa
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCPreview.lib differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCVoiceTalk.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCVoiceTalk.dll
new file mode 100644
index 000000000..575e4dd17
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/HCVoiceTalk.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/OpenAL32.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/OpenAL32.dll
new file mode 100644
index 000000000..ea91a5f52
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/OpenAL32.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/StreamTransClient.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/StreamTransClient.dll
new file mode 100644
index 000000000..b4af48532
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/StreamTransClient.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/SystemTransform.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/SystemTransform.dll
new file mode 100644
index 000000000..d890af2e8
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/SystemTransform.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/libiconv2.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/libiconv2.dll
new file mode 100644
index 000000000..978e2fa5f
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/HCNetSDKCom/libiconv2.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Newtonsoft.Json.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Newtonsoft.Json.dll
new file mode 100644
index 000000000..e4a63399d
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Newtonsoft.Json.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Newtonsoft.Json.xml b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Newtonsoft.Json.xml
new file mode 100644
index 000000000..aa245c5e1
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Newtonsoft.Json.xml
@@ -0,0 +1,11262 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets the naming strategy used to resolve how enum text is written.
+
+ The naming strategy used to resolve how enum text is written.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when serializing and deserializing.
+ The default value is true.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The naming strategy used to resolve how enum text is written.
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ true if special characters are encoded; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ The default JSON name table implementation.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Adds the specified string into name table.
+
+ The string to add.
+ This method is not thread-safe.
+ The resolved string.
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Base class for a table of atomized string objects.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the type used when serializing the property's collection items.
+
+ The collection's items type.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's property name table.
+
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Specifies how duplicate property names are handled when loading JSON.
+
+
+
+
+ Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used.
+
+
+
+
+ Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used.
+
+
+
+
+ Throw a when a duplicate property is encountered.
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a with the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets the with the specified name.
+ The exact name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The property name.
+ One of the enumeration values that specifies how the strings will be compared.
+ A matched with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+ The default value is .
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+ The default value is .
+
+ The JSON line info handling.
+
+
+
+ Gets or sets how duplicate property names in JSON objects are handled when loading JSON.
+ The default value is .
+
+ The JSON duplicate property name handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Gets or sets the comparison used to match property names while merging.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The comparison used to match property names while merging.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+ The initial path of the token. It is prepended to the returned .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets the internally resolved for the contract's type.
+ This converter is used as a fallback converter when no other converter is resolved.
+ Setting will always override this converter.
+
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets a value indicating whether has a value specified.
+
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ A kebab case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Hash code calculation
+
+
+
+
+
+ Object equality implementation
+
+
+
+
+
+
+ Compare to another NamingStrategy
+
+
+
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+ Specifies that an output will not be null even if the corresponding type allows it.
+
+
+ Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it.
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+
+ Gets the return value condition.
+
+
+ Specifies that an output may be null even if the corresponding type disallows it.
+
+
+ Specifies that null is allowed as an input even if the corresponding type disallows it.
+
+
+
+ Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
+ the associated parameter matches this value.
+
+
+
+ Gets the condition parameter value.
+
+
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Quanjiang.DigitalScholl.JobService.csproj b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Quanjiang.DigitalScholl.JobService.csproj
index 15657ac1d..22bfbba2f 100644
--- a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Quanjiang.DigitalScholl.JobService.csproj
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Quanjiang.DigitalScholl.JobService.csproj
@@ -8,7 +8,7 @@
WinExe
Quanjiang.DigitalScholl.JobService
Quanjiang.DigitalScholl.JobService
- v4.6.1
+ v4.6.2
512
true
@@ -75,6 +75,7 @@
..\packages\Owin.1.0\lib\net40\Owin.dll
+
@@ -104,12 +105,17 @@
+
Designer
+
+
+
+
@@ -121,6 +127,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Service1.cs b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Service1.cs
index 60ac650c4..83591ee68 100644
--- a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Service1.cs
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/Service1.cs
@@ -1,19 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Configuration;
using System.Data;
using System.Diagnostics;
+using System.IO;
using System.Linq;
+using System.Runtime.InteropServices;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
+using AlarmCSharpDemo;
using Hangfire;
+using Learun.Application.Base.SystemModule;
+using Learun.Application.TwoDevelopment.EducationalAdministration;
+using Learun.Application.TwoDevelopment.LogisticsManagement;
+using Learun.Application.TwoDevelopment.PersonnelManagement;
namespace Quanjiang.DigitalScholl.JobService
{
public partial class QuanjiangDigitalSchollJobService : ServiceBase
{
private BackgroundJobServer _server;
+ private ADR_DeviceIBLL adrDeviceIbll = new ADR_DeviceBLL();
+ private ADR_DeviceLogIBLL adrDeviceLogIbll = new ADR_DeviceLogBLL();
+ private ADR_RestrictionIBLL adrRestrictionIbll = new ADR_RestrictionBLL();
+ private ADR_RecordIBLL adrRecordIbll = new ADR_RecordBLL();
+
+ //海康考勤机回调
+ public CHCNetSDK.LOGINRESULTCALLBACK LoginCallBack = null;
+ private CHCNetSDK.EXCEPYIONCALLBACK m_fExceptionCB = null;
+ private CHCNetSDK.MSGCallBack_V31 m_falarmData_V31 = null;
+
public QuanjiangDigitalSchollJobService()
{
InitializeComponent();
@@ -27,6 +45,469 @@ namespace Quanjiang.DigitalScholl.JobService
ServerName = "QuanjiangDigitalSchollJobService"
};
_server = new BackgroundJobServer(options);
+ //海康考勤机对接
+ #region 海康考勤机对接
+ //初始化SDK
+ bool m_bInitSDK = CHCNetSDK.NET_DVR_Init();
+ if (m_bInitSDK)
+ {
+ //保存SDK日志 To save the SDK log
+ CHCNetSDK.NET_DVR_SetLogToFile(3, "C:\\HKSdkLog\\", true);
+
+ //设置透传报警信息类型
+ CHCNetSDK.NET_DVR_LOCAL_GENERAL_CFG struLocalCfg = new CHCNetSDK.NET_DVR_LOCAL_GENERAL_CFG();
+ struLocalCfg.byAlarmJsonPictureSeparate = 1;//控制JSON透传报警数据和图片是否分离,0-不分离(COMM_VCA_ALARM返回),1-分离(分离后走COMM_ISAPI_ALARM回调返回)
+
+ Int32 nSize = Marshal.SizeOf(struLocalCfg);
+ IntPtr ptrLocalCfg = Marshal.AllocHGlobal(nSize);
+ Marshal.StructureToPtr(struLocalCfg, ptrLocalCfg, false);
+
+ if (!CHCNetSDK.NET_DVR_SetSDKLocalCfg(17, ptrLocalCfg)) //NET_DVR_LOCAL_CFG_TYPE_GENERAL
+ {
+ string strErr = "海康NET_DVR_SetSDKLocalCfg 失败, error code= " + CHCNetSDK.NET_DVR_GetLastError();
+ ADR_DeviceLogEntity adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ adrDeviceLogEntity.LogData = strErr;
+ adrDeviceLogEntity.LogType = "2";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ }
+ Marshal.FreeHGlobal(ptrLocalCfg);
+
+ //设置异常消息回调函数
+ if (m_fExceptionCB == null)
+ {
+ m_fExceptionCB = new CHCNetSDK.EXCEPYIONCALLBACK(cbExceptionCB);
+ }
+ CHCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, IntPtr.Zero, m_fExceptionCB, IntPtr.Zero);
+
+ //设置报警回调函数
+ if (m_falarmData_V31 == null)
+ {
+ m_falarmData_V31 = new CHCNetSDK.MSGCallBack_V31(MsgCallback_V31);
+ }
+ CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(m_falarmData_V31, IntPtr.Zero);
+
+ //获取设备
+ var devicelist = adrDeviceIbll.GetAllUnconnectedList(true);
+ //登录设备
+ foreach (var deviceEntity in devicelist)
+ {
+ CHCNetSDK.NET_DVR_USER_LOGIN_INFO struLogInfo = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO();
+
+ //设备IP地址或者域名
+ byte[] byIP = System.Text.Encoding.Default.GetBytes(deviceEntity.IpAddress);
+ struLogInfo.sDeviceAddress = new byte[129];
+ byIP.CopyTo(struLogInfo.sDeviceAddress, 0);
+
+ //设备用户名
+ byte[] byUserName = System.Text.Encoding.Default.GetBytes(deviceEntity.AdminAccount);
+ struLogInfo.sUserName = new byte[64];
+ byUserName.CopyTo(struLogInfo.sUserName, 0);
+
+ //设备密码
+ byte[] byPassword = System.Text.Encoding.Default.GetBytes(deviceEntity.AdminPwd);
+ struLogInfo.sPassword = new byte[64];
+ byPassword.CopyTo(struLogInfo.sPassword, 0);
+
+ struLogInfo.wPort = ushort.Parse(deviceEntity.PortNumber.ToString());//设备服务端口号
+
+ struLogInfo.cbLoginResult = LoginCallBack;
+ struLogInfo.bUseAsynLogin = true; //是否异步登录:0- 否,1- 是
+ //用户数据,回调时可用
+ //获取大小
+ uint dwSize = (uint)Marshal.SizeOf(deviceEntity);
+ //分配内存
+ IntPtr ptrCond = Marshal.AllocHGlobal((int)dwSize);
+ //写入内存
+ Marshal.StructureToPtr(deviceEntity, ptrCond, false);
+ //用户数据,回调时可用
+ struLogInfo.pUser = ptrCond;
+ if ((struLogInfo.bUseAsynLogin == true) && (LoginCallBack == null))
+ {
+ LoginCallBack = new CHCNetSDK.LOGINRESULTCALLBACK(cbLoginCallBack);//注册回调函数
+ }
+
+ struLogInfo.byLoginMode = 0; //0-Private, 1-ISAPI, 2-自适应
+ struLogInfo.byHttps = 0; //0-不适用tls,1-使用tls 2-自适应
+
+ CHCNetSDK.NET_DVR_DEVICEINFO_V40 DeviceInfo = new CHCNetSDK.NET_DVR_DEVICEINFO_V40();
+
+ //登录设备 Login the device
+ CHCNetSDK.NET_DVR_Login_V40(ref struLogInfo, ref DeviceInfo);
+ //释放内存
+ Marshal.FreeHGlobal(ptrCond);
+ //同步登录方法
+ //if (m_lUserID < 0)
+ //{
+ // iLastErr = CHCNetSDK.NET_DVR_GetLastError();
+ // strErr = "NET_DVR_Login_V30 failed, error code= " + iLastErr; //登录失败,输出错误号 Failed to login and output the error code
+ // MessageBox.Show(strErr);
+ //}
+ //else
+ //{
+ // //登录成功
+ // iDeviceNumber++;
+ // string str1 = "" + m_lUserID;
+ // listViewDevice.Items.Add(new ListViewItem(new string[] { str1, textBoxIP.Text, "未布防" }));//将已注册设备添加进列表
+ //}
+ }
+ }
+ else//初始化失败
+ {
+ ADR_DeviceLogEntity adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ adrDeviceLogEntity.LogData = "海康SDK初始化失败";
+ adrDeviceLogEntity.LogType = "2";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ }
+ #endregion
+ }
+ ///
+ /// 海康登录回调
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void cbLoginCallBack(int lUserID, int dwResult, IntPtr lpDeviceInfo, IntPtr pUser)
+ {
+ try
+ {
+ ADR_DeviceEntity deviceEntity = new ADR_DeviceEntity();
+ deviceEntity = (ADR_DeviceEntity)Marshal.PtrToStructure(pUser, typeof(ADR_DeviceEntity));
+ string strLoginCallBack = "";
+ //登录失败
+ if (dwResult == 0)
+ {
+ uint iErrCode = CHCNetSDK.NET_DVR_GetLastError();
+ strLoginCallBack = "登录设备失败,lUserID:" + lUserID + ",错误号:" + iErrCode;
+ ADR_DeviceLogEntity adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ if (deviceEntity != null && !string.IsNullOrEmpty(deviceEntity.Id))
+ {
+ adrDeviceLogEntity.DeviceId = deviceEntity.Id;
+ strLoginCallBack += ",设备IP:" + deviceEntity.IpAddress;
+ }
+ adrDeviceLogEntity.LogData = strLoginCallBack;
+ adrDeviceLogEntity.LogType = "2";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ }
+ else//登录成功
+ {
+ strLoginCallBack = "登录设备成功,lUserID:" + lUserID;
+ ADR_DeviceLogEntity adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ if (deviceEntity != null && !string.IsNullOrEmpty(deviceEntity.Id))
+ {
+ adrDeviceLogEntity.DeviceId = deviceEntity.Id;
+ strLoginCallBack += ",设备IP:" + deviceEntity.IpAddress;
+ }
+ adrDeviceLogEntity.LogData = strLoginCallBack;
+ adrDeviceLogEntity.LogType = "0";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ //设备布防
+ CHCNetSDK.NET_DVR_SETUPALARM_PARAM struAlarmParam = new CHCNetSDK.NET_DVR_SETUPALARM_PARAM();
+ struAlarmParam.dwSize = (uint)Marshal.SizeOf(struAlarmParam);
+ struAlarmParam.byLevel = 1; //0- 一级布防,1- 二级布防
+ struAlarmParam.byAlarmInfoType = 1;//智能交通设备有效,新报警信息类型
+ struAlarmParam.byDeployType = 0;
+ struAlarmParam.byFaceAlarmDetection = 1;//1-人脸侦测
+ var m_lUserID = CHCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, ref struAlarmParam);
+ if (m_lUserID < 0)
+ {
+ string strErr = "布防失败,错误号:" + CHCNetSDK.NET_DVR_GetLastError(); //布防失败,输出错误号
+ adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ if (deviceEntity != null && !string.IsNullOrEmpty(deviceEntity.Id))
+ {
+ adrDeviceLogEntity.DeviceId = deviceEntity.Id;
+ strErr += ",设备IP:" + deviceEntity.IpAddress;
+ }
+ adrDeviceLogEntity.LogData = strErr;
+ adrDeviceLogEntity.LogType = "2";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ }
+ else
+ {
+ adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ string strNotice = "布防成功";
+ if (deviceEntity != null && !string.IsNullOrEmpty(deviceEntity.Id))
+ {
+ adrDeviceLogEntity.DeviceId = deviceEntity.Id;
+ strNotice += ",设备IP:" + deviceEntity.IpAddress;
+ }
+ adrDeviceLogEntity.LogData = strNotice;
+ adrDeviceLogEntity.LogType = "0";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ }
+
+ }
+ }
+ catch (Exception e)
+ {
+ LogEntity lrBaseLogoEntity = new LogEntity();
+ lrBaseLogoEntity.F_LogId = Guid.NewGuid().ToString();
+ lrBaseLogoEntity.F_CategoryId = 4;
+ lrBaseLogoEntity.F_Module = "海康考勤机";
+ lrBaseLogoEntity.F_ExecuteResultJson = "操作海康考勤机异常" + e.Message + ",详细" + e.StackTrace;
+ lrBaseLogoEntity.WriteLog();
+ }
+ }
+ ///
+ /// 海康异常回调
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void cbExceptionCB(uint dwType, int lUserID, int lHandle, IntPtr pUser)
+ {
+ //异常消息信息类型
+ string stringAlarm = "海康异常消息回调,信息类型:0x" + Convert.ToString(dwType, 16) + ", lUserID:" + lUserID + ", lHandle:" + lHandle;
+ var deviceEntity = adrDeviceIbll.GetADR_DeviceEntityBylUserID(lUserID.ToString());
+ ADR_DeviceLogEntity adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ if (deviceEntity != null && !string.IsNullOrEmpty(deviceEntity.Id))
+ {
+ adrDeviceLogEntity.DeviceId = deviceEntity.Id;
+ stringAlarm += ",设备IP:" + deviceEntity.IpAddress;
+ }
+ adrDeviceLogEntity.LogData = stringAlarm;
+ adrDeviceLogEntity.LogType = "2";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ }
+
+ ///
+ /// 海康报警事件回调
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool MsgCallback_V31(int lCommand, ref CHCNetSDK.NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser)
+ {
+ try
+ {
+ if (lCommand == 0x5002) //门禁主机报警上传
+ {
+ //通过lCommand来判断接收到的报警信息类型,不同的lCommand对应不同的pAlarmInfo内容
+ CHCNetSDK.NET_DVR_ACS_ALARM_INFO struAcsAlarm = new CHCNetSDK.NET_DVR_ACS_ALARM_INFO();
+ uint dwSize = (uint)Marshal.SizeOf(struAcsAlarm);
+ struAcsAlarm =
+ (CHCNetSDK.NET_DVR_ACS_ALARM_INFO)Marshal.PtrToStructure(pAlarmInfo,
+ typeof(CHCNetSDK.NET_DVR_ACS_ALARM_INFO));
+ //这里判断是为了只获取刷脸的信息
+ if (struAcsAlarm.dwMajor == 0x5 && struAcsAlarm.dwMinor == 0x4b)//主事件0x5 代表EVENT,次事件0x4b 代表MINOR_FACE_VERIFY_PASS人脸认证通过
+ {
+ //报警设备IP地址
+ string strIP = System.Text.Encoding.UTF8.GetString(pAlarmer.sDeviceIP).TrimEnd('\0');
+ //抓拍图片路径
+ string str = "";
+ //保存抓拍图片
+ if ((struAcsAlarm.dwPicDataLen != 0) && (struAcsAlarm.pPicData != IntPtr.Zero))
+ {
+ string path = ConfigurationManager.AppSettings["AttendancePhotoPath"];
+ string datepath = DateTime.Now.ToString("yyyy-MM-dd");
+ if (!Directory.Exists(path + "\\" + datepath))
+ {
+ Directory.CreateDirectory(path + "\\" + datepath);
+ }
+
+ str = path + "\\Device_Acs_CapturePic_[" + strIP + "]_lUerID_[" + pAlarmer.lUserID + "]_" +
+ Learun.Util.CommonHelper.CreateNo() + ".jpg";
+ FileStream fs = new FileStream(str, FileMode.Create);
+ int iLen = (int)struAcsAlarm.dwPicDataLen;
+ byte[] by = new byte[iLen];
+ Marshal.Copy(struAcsAlarm.pPicData, by, 0, iLen);
+ fs.Write(by, 0, iLen);
+ fs.Close();
+ }
+
+ //报警时间:年月日时分秒
+ string strTimeYear = (struAcsAlarm.struTime.dwYear).ToString();
+ string strTimeMonth = (struAcsAlarm.struTime.dwMonth).ToString("d2");
+ string strTimeDay = (struAcsAlarm.struTime.dwDay).ToString("d2");
+ string strTimeHour = (struAcsAlarm.struTime.dwHour).ToString("d2");
+ string strTimeMinute = (struAcsAlarm.struTime.dwMinute).ToString("d2");
+ string strTimeSecond = (struAcsAlarm.struTime.dwSecond).ToString("d2");
+ string strTime = strTimeYear + "-" + strTimeMonth + "-" + strTimeDay + " " + strTimeHour + ":" +
+ strTimeMinute + ":" + strTimeSecond;
+
+ string stringAlarm = "门禁主机报警信息,dwMajor:0x" + Convert.ToString(struAcsAlarm.dwMajor, 16) +
+ ",dwMinor:0x" +
+ Convert.ToString(struAcsAlarm.dwMinor, 16) + ",卡号:" + System.Text.Encoding.UTF8
+ .GetString(struAcsAlarm.struAcsEventInfo.byCardNo).TrimEnd('\0')
+ + ",读卡器编号:" + struAcsAlarm.struAcsEventInfo.dwCardReaderNo + ",报警触发时间:" +
+ strTime +
+ ",事件流水号:" + struAcsAlarm.struAcsEventInfo.dwSerialNo;
+
+ //如果能取到详细信息
+ if (struAcsAlarm.byAcsEventInfoExtend == 1)
+ {
+ CHCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND struInfoExtend =
+ new CHCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND();
+ uint dwSizeEx = (uint)Marshal.SizeOf(struInfoExtend);
+ struInfoExtend = (CHCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND)Marshal.PtrToStructure(
+ struAcsAlarm.pAcsEventInfoExtend, typeof(CHCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND));
+ stringAlarm = stringAlarm + ", 人员类型:" + struInfoExtend.byUserType;
+ }
+
+ //记录日志
+ ADR_DeviceLogEntity adrDeviceLogEntity = new ADR_DeviceLogEntity();
+ adrDeviceLogEntity.Create();
+ var deviceEntity = adrDeviceIbll.GetADR_DeviceEntityBylUserID(pAlarmer.lUserID.ToString());
+ if (deviceEntity != null && !string.IsNullOrEmpty(deviceEntity.Id))
+ {
+ adrDeviceLogEntity.DeviceId = deviceEntity.Id;
+ stringAlarm += ",设备IP:" + deviceEntity.IpAddress;
+ }
+
+ adrDeviceLogEntity.LogData = stringAlarm;
+ adrDeviceLogEntity.LogType = "0";
+ adrDeviceLogIbll.SaveEntity(null, adrDeviceLogEntity);
+ //考勤记录
+ //首先获取考勤规则
+ var attendancerulEntity = adrRestrictionIbll.GetADR_RestrictionEntityEnabled();
+ if (attendancerulEntity != null)
+ {
+ //员工卡号
+ string EmpNo = System.Text.Encoding.UTF8.GetString(struAcsAlarm.struAcsEventInfo.byCardNo).TrimEnd('\0');
+ //考勤状态
+ string ADType = "0";
+ //考勤结果
+ string ClockStatus = "1";
+ //当前服务器日期
+ var datenow = DateTime.Now.ToString("yyyy-MM-dd");
+ var datetimenow = DateTime.Now;
+ //设备事件时间
+ DateTime devicetime = Convert.ToDateTime(strTime);
+ //上班时间
+ DateTime workDateTime = Convert.ToDateTime(datenow + " " + attendancerulEntity.WorkTime);
+ //下班时间
+ DateTime offworkDateTime = Convert.ToDateTime(datenow + " " + attendancerulEntity.CloseTime);
+ //迟到判断
+ if (devicetime <= workDateTime)//正常
+ {
+ ADType = "1";//上班
+ ClockStatus = "1";//正常
+ }
+ else//迟到
+ {
+ //签到与签退判断
+ if (devicetime>= offworkDateTime)//如果签到时间大于下班时间则为签退状态
+ {
+ ADType = "2";//下班
+ ClockStatus = "1";//正常
+ }
+ else//小于下班时间
+ {
+ //首先判断是上班还是下班
+ //该用户当日有签到记录视为下班签退
+ var attendancerecord =adrRecordIbll.GetADR_RecordEntityByEmpNo(strTimeYear, strTimeMonth, strTimeDay,EmpNo).Where(m=>m.ADType=="1");
+ if (attendancerecord.Count()>0)//如果存在上班考勤记录
+ {
+ //判断为下班早退
+ if (attendancerulEntity.LeaveOverTime.HasValue && attendancerulEntity.LeaveOverTime != 0)//如果允许早退,获取范围
+ {
+ //最早签退时间
+ DateTime offworkDateTimeFree = offworkDateTime.AddMinutes(-Convert.ToDouble(attendancerulEntity.LeaveOverTime));
+ if (devicetime >= offworkDateTimeFree)//在允许早退范围内记为正常
+ {
+ ADType = "2";//下班
+ ClockStatus = "1";//正常
+ }
+ else//超出早退范围视为早退
+ {
+ ADType = "2";//下班
+ ClockStatus = "3";//早退
+ }
+ }
+ else//不允许早退直接视为早退
+ {
+ ADType = "2";//下班
+ ClockStatus = "3";//早退
+ }
+ }
+ else//判断为上班迟到
+ {
+ if (attendancerulEntity.LateOvertime.HasValue && attendancerulEntity.LateOvertime != 0)//如果允许迟到,获取范围
+ {
+ //最晚签到时间
+ DateTime workDateTimeFree = workDateTime.AddMinutes(Convert.ToDouble(attendancerulEntity.LateOvertime));
+ if (devicetime <= workDateTimeFree)//在允许迟到范围内记为正常
+ {
+ ADType = "1";//上班
+ ClockStatus = "1";//正常
+ }
+ }
+ else
+ {
+ ADType = "1";//上班
+ ClockStatus = "2";//迟到
+ }
+ }
+ }
+
+ }
+ ADR_RecordEntity adrRecordEntity = new ADR_RecordEntity();
+ adrRecordEntity.Create();
+ adrRecordEntity.UserNo = EmpNo;
+ adrRecordEntity.ADType = ADType;
+ adrRecordEntity.ADTime = datetimenow;
+ adrRecordEntity.ClockTime = devicetime;
+ adrRecordEntity.ClockStatus = ClockStatus;
+ if (deviceEntity!=null&&!string.IsNullOrEmpty(deviceEntity.DName))
+ {
+ adrRecordEntity.ClockPlace = deviceEntity.DName;
+ }
+ else
+ {
+ adrRecordEntity.ClockPlace = "未知";
+ }
+ adrRecordEntity.ADYear = datetimenow.Year.ToString();
+ adrRecordEntity.ADMonth = datetimenow.Month.ToString();
+ adrRecordEntity.ADDay = datetimenow.Day.ToString();
+ //去重
+ //获取当日考勤记录
+ var attendancerecordlist = adrRecordIbll.GetADR_RecordEntityByEmpNo(strTimeYear, strTimeMonth, strTimeDay, EmpNo);
+ //签到去重
+ if (adrRecordEntity.ADType == "1"&&attendancerecordlist.Count(m=>m.ADType=="1")==0)//签过到了
+ {
+ //每日保留第一次签到记录
+ return true;
+ }
+ //签退去重
+ if (adrRecordEntity.ADType == "2" && attendancerecordlist.Count(m => m.ADType == "2") > 0)//签过退了
+ {
+ //更新签退时间,签退状态
+ var firstoffworkentity = attendancerecordlist.FirstOrDefault(m => m.ADType == "2");
+ firstoffworkentity.ADTime = datetimenow;
+ firstoffworkentity.ClockTime = devicetime;
+ firstoffworkentity.ClockStatus = ClockStatus;
+ adrRecordIbll.SaveEntity(firstoffworkentity.ID,firstoffworkentity);
+ return true;
+ }
+ //考勤记录
+ adrRecordIbll.SaveEntity(null, adrRecordEntity);
+ }
+ }
+ }
+
+ return true; //回调函数需要有返回,表示正常接收到数据
+ }
+ catch (Exception e)
+ {
+ LogEntity lrBaseLogoEntity = new LogEntity();
+ lrBaseLogoEntity.F_LogId = Guid.NewGuid().ToString();
+ lrBaseLogoEntity.F_CategoryId = 4;
+ lrBaseLogoEntity.F_Module = "海康考勤机";
+ lrBaseLogoEntity.F_ExecuteResultJson = "海康考勤机报警事件回调异常" + e.Message + ",详细" + e.StackTrace;
+ lrBaseLogoEntity.WriteLog();
+ return true;
+ }
}
protected override void OnStop()
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/hlog.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/hlog.dll
new file mode 100644
index 000000000..fe2298ab0
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/hlog.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/hpr.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/hpr.dll
new file mode 100644
index 000000000..eef0d5561
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/hpr.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/libeay32.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/libeay32.dll
new file mode 100644
index 000000000..78da50855
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/libeay32.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/log4cxx.properties b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/log4cxx.properties
new file mode 100644
index 000000000..088bb0f9b
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/log4cxx.properties
@@ -0,0 +1,26 @@
+#ȱʡ־̨
+#FATALERRORWARNINFODEBUG ȼ˳ ģģ鶼ƥ䣬ô
+log4j.rootLogger=DEBUG, stdout
+#log4j.rootLogger=DEBUG
+##hlog.async=false
+##hlog.secret.show=true
+##hlog.secret.encrypt=false
+#log4j.loggerڿ־ɼɼݣThresholdڿ־
+
+#Ӧڿ̨
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%d][%t][%-5p]- %m%n
+
+log4j.logger.NPQ=TRACE, NPQ
+log4j.appender.NPQ=org.apache.log4j.RollingFileAppender
+log4j.appender.NPQ.File=./NPQLog/NPQ.log
+log4j.appender.NPQ.MaxFileSize=80MB
+log4j.appender.NPQ.MaxBackupIndex=12
+log4j.appender.NPQ.Append=false
+log4j.appender.NPQ.Threshold=TRACE
+log4j.appender.NPQ.layout=org.apache.log4j.PatternLayout
+log4j.appender.NPQ.layout.ConversionPattern=[%d][%t][%-5p]- %m%n
+log4j.additivity.NPQ = false
+#һλΪtrue ȿԿֿ̨ļ
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/ssleay32.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/ssleay32.dll
new file mode 100644
index 000000000..1a45a31ce
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/ssleay32.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/zlib1.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/zlib1.dll
new file mode 100644
index 000000000..2efbd7a39
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/zlib1.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/CHCNetSDK.cs b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/CHCNetSDK.cs
new file mode 100644
index 000000000..decd6ef52
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/CHCNetSDK.cs
@@ -0,0 +1,17496 @@
+using System;
+using System.Runtime.InteropServices;
+namespace AlarmCSharpDemo
+{
+ ///
+ /// CHCNetSDK ժҪ˵
+ ///
+ public class CHCNetSDK
+ {
+ public CHCNetSDK()
+ {
+ //
+ // TODO: ڴ˴ӹ캯
+ //
+ }
+
+ //SDK
+ public const int SDK_PLAYMPEG4 = 1;//ſ
+ public const int SDK_HCNETSDK = 2;//
+
+ public const int NAME_LEN = 32;//û
+ public const int PASSWD_LEN = 16;//볤
+ public const int GUID_LEN = 16; //GUID
+ public const int DEV_TYPE_NAME_LEN = 24; //豸Ƴ
+ public const int MAX_NAMELEN = 16;//DVRص½
+ public const int MAX_RIGHT = 32;//豸ֵ֧Ȩޣ1-12ʾȨޣ13-32ʾԶȨޣ
+ public const int SERIALNO_LEN = 48;//кų
+ public const int MACADDR_LEN = 6;//macַ
+ public const int MAX_ETHERNET = 2;//豸̫
+ public const int MAX_NETWORK_CARD = 4; //豸Ŀ
+ public const int PATHNAME_LEN = 128;//·
+
+ public const int MAX_NUMBER_LEN = 32; //
+ public const int MAX_NAME_LEN = 128; //豸
+
+ public const int MAX_TIMESEGMENT_V30 = 8;//9000豸ʱ
+ public const int MAX_TIMESEGMENT = 4;//8000豸ʱ
+ public const int MAX_ICR_NUM = 8; //ץĻ˹ƬԤõ
+
+ public const int MAX_SHELTERNUM = 4;//8000豸ڵ
+ public const int PHONENUMBER_LEN = 32;//pppoeź
+
+ public const int MAX_DISKNUM = 16;//8000豸Ӳ
+ public const int MAX_DISKNUM_V10 = 8;//1.2汾֮ǰ汾
+
+ public const int MAX_WINDOW_V30 = 32;//9000豸ʾŴ
+ public const int MAX_WINDOW = 16;//8000豸Ӳ
+ public const int MAX_VGA_V30 = 4;//9000豸ɽVGA
+ public const int MAX_VGA = 1;//8000豸ɽVGA
+
+ public const int MAX_USERNUM_V30 = 32;//9000豸û
+ public const int MAX_USERNUM = 16;//8000豸û
+ public const int MAX_EXCEPTIONNUM_V30 = 32;//9000豸쳣
+ public const int MAX_EXCEPTIONNUM = 16;//8000豸쳣
+ public const int MAX_LINK = 6;//8000豸ͨƵ
+ public const int MAX_ITC_EXCEPTIONOUT = 32;//ץĻ
+
+ public const int MAX_DECPOOLNUM = 4;//·ÿͨѭ
+ public const int MAX_DECNUM = 4;//·ͨʵֻһ
+ public const int MAX_TRANSPARENTNUM = 2;//·ͨ
+ public const int MAX_CYCLE_CHAN = 16; //·ѭͨ
+ public const int MAX_CYCLE_CHAN_V30 = 64;//ѯͨչ
+ public const int MAX_DIRNAME_LENGTH = 80;//Ŀ¼
+
+ public const int MAX_STRINGNUM_V30 = 8;//9000豸OSDַ
+ public const int MAX_STRINGNUM = 4;//8000豸OSDַ
+ public const int MAX_STRINGNUM_EX = 8;//8000չ
+ public const int MAX_AUXOUT_V30 = 16;//9000豸
+ public const int MAX_AUXOUT = 4;//8000豸
+ public const int MAX_HD_GROUP = 16;//9000豸Ӳ
+ public const int MAX_NFS_DISK = 8; //8000豸NFSӲ
+
+ public const int IW_ESSID_MAX_SIZE = 32;//WIFISSIDų
+ public const int IW_ENCODING_TOKEN_MAX = 32;//WIFIֽ
+ public const int WIFI_WEP_MAX_KEY_COUNT = 4;
+ public const int WIFI_WEP_MAX_KEY_LENGTH = 33;
+ public const int WIFI_WPA_PSK_MAX_KEY_LENGTH = 63;
+ public const int WIFI_WPA_PSK_MIN_KEY_LENGTH = 8;
+ public const int WIFI_MAX_AP_COUNT = 20;
+ public const int MAX_SERIAL_NUM = 64;//ֵ֧ͨ·
+ public const int MAX_DDNS_NUMS = 10;//9000豸ddns
+ public const int MAX_EMAIL_ADDR_LEN = 48;//emailַ
+ public const int MAX_EMAIL_PWD_LEN = 32;//email볤
+
+ public const int MAXPROGRESS = 100;//طʱٷ
+ public const int MAX_SERIALNUM = 2;//8000豸ֵ֧Ĵ 1-232 2-485
+ public const int CARDNUM_LEN = 20;//ų
+ public const int CARDNUM_LEN_OUT = 32; //ⲿṹ忨ų
+ public const int MAX_VIDEOOUT_V30 = 4;//9000豸Ƶ
+ public const int MAX_VIDEOOUT = 2;//8000豸Ƶ
+
+ public const int MAX_PRESET_V30 = 256;// 9000豸ֵ̨֧Ԥõ
+ public const int MAX_TRACK_V30 = 256;// 9000豸ֵ̨֧켣
+ public const int MAX_CRUISE_V30 = 256;// 9000豸ֵ̨֧Ѳ
+ public const int MAX_PRESET = 128;// 8000豸ֵ̨֧Ԥõ
+ public const int MAX_TRACK = 128;// 8000豸ֵ̨֧켣
+ public const int MAX_CRUISE = 128;// 8000豸ֵ̨֧Ѳ
+
+ public const int CRUISE_MAX_PRESET_NUMS = 32;// һѲѲ
+
+ public const int MAX_SERIAL_PORT = 8;//9000豸֧232
+ public const int MAX_PREVIEW_MODE = 8;// 豸֧ԤģʽĿ 1,4,9,16....
+ public const int MAX_MATRIXOUT = 16;// ģ
+ public const int LOG_INFO_LEN = 11840; // ־Ϣ
+ public const int DESC_LEN = 16;// ַ̨
+ public const int PTZ_PROTOCOL_NUM = 200;// 9000ֵ̨֧Э
+
+ public const int MAX_AUDIO = 1;//8000Խͨ
+ public const int MAX_AUDIO_V30 = 2;//9000Խͨ
+ public const int MAX_CHANNUM = 16;//8000豸ͨ
+ public const int MAX_ALARMIN = 16;//8000豸
+ public const int MAX_ALARMOUT = 4;//8000豸
+ //9000 IPC
+ public const int MAX_ANALOG_CHANNUM = 32;//32ģͨ
+ public const int MAX_ANALOG_ALARMOUT = 32; //32·ģⱨ
+ public const int MAX_ANALOG_ALARMIN = 32;//32·ģⱨ
+
+ public const int MAX_IP_DEVICE = 32;//IP豸
+ public const int MAX_IP_DEVICE_V40 = 64;//IP豸
+ public const int MAX_IP_CHANNEL = 32;//IPͨ
+ public const int MAX_IP_ALARMIN = 128;//౨
+ public const int MAX_IP_ALARMOUT = 64;//౨
+ public const int MAX_IP_ALARMIN_V40 = 4096; //౨
+ public const int MAX_IP_ALARMOUT_V40 = 4096; //౨
+
+ public const int MAX_RECORD_FILE_NUM = 20; // ÿɾ߿¼ļ
+
+ //SDK_V31 ATM
+ public const int MAX_ATM_NUM = 1;
+ public const int MAX_ACTION_TYPE = 12;
+ public const int ATM_FRAMETYPE_NUM = 4;
+ public const int MAX_ATM_PROTOCOL_NUM = 1025;
+ public const int ATM_PROTOCOL_SORT = 4;
+ public const int ATM_DESC_LEN = 32;
+ // SDK_V31 ATM
+
+ /* ֵ֧ͨ ģIP֧ */
+ public const int MAX_CHANNUM_V30 = MAX_ANALOG_CHANNUM + MAX_IP_CHANNEL;//64
+ public const int MAX_ALARMOUT_V30 = MAX_ANALOG_ALARMOUT + MAX_IP_ALARMOUT;//96
+ public const int MAX_ALARMIN_V30 = MAX_ANALOG_ALARMIN + MAX_IP_ALARMIN;//160
+
+ public const int MAX_CHANNUM_V40 = 512;
+ public const int MAX_ALARMOUT_V40 = MAX_IP_ALARMOUT_V40 + MAX_ANALOG_ALARMOUT;//4128
+ public const int MAX_ALARMIN_V40 = MAX_IP_ALARMIN_V40 + MAX_ANALOG_ALARMOUT;//4128
+ public const int MAX_MULTI_AREA_NUM = 24;
+
+ public const int MAX_HUMAN_PICTURE_NUM = 10; //Ƭ
+ public const int MAX_HUMAN_BIRTHDATE_LEN = 10;
+
+ public const int MAX_LAYERNUMS = 32;
+
+ public const int MAX_ROIDETECT_NUM = 8; //ֵ֧ROI
+ public const int MAX_LANERECT_NUM = 5; //ʶ
+ public const int MAX_FORTIFY_NUM = 10; //
+ public const int MAX_INTERVAL_NUM = 4; //ʱ
+ public const int MAX_CHJC_NUM = 3; //ʡݼַ
+ public const int MAX_VL_NUM = 5; //Ȧ
+ public const int MAX_DRIVECHAN_NUM = 16; //
+ public const int MAX_COIL_NUM = 3; //Ȧ
+ public const int MAX_SIGNALLIGHT_NUM = 6; //źŵƸ
+ public const int LEN_32 = 32;
+ public const int LEN_31 = 31;
+ public const int MAX_CABINET_COUNT = 8; //ֻ֧
+ public const int MAX_ID_LEN = 48;
+ public const int MAX_PARKNO_LEN = 16;
+ public const int MAX_ALARMREASON_LEN = 32;
+ public const int MAX_UPGRADE_INFO_LEN= 48; //ȡļƥϢ(ģ)
+ public const int MAX_CUSTOMDIR_LEN = 32; //ԶĿ¼
+
+ public const int MAX_TRANSPARENT_CHAN_NUM = 4; //ÿͨ
+ public const int MAX_TRANSPARENT_ACCESS_NUM = 4; //ÿ˿
+
+ //ITS
+ public const int MAX_PARKING_STATUS = 8; //λ״̬ 01г2ѹ(ȼ), 3λ
+ public const int MAX_PARKING_NUM = 4; //һͨ4λ (ҳλ 03)
+
+ public const int MAX_ITS_SCENE_NUM = 16; //
+ public const int MAX_SCENE_TIMESEG_NUM = 16; //ʱ
+ public const int MAX_IVMS_IP_CHANNEL = 128; //IPͨ
+ public const int DEVICE_ID_LEN = 48; //豸ų
+ public const int MONITORSITE_ID_LEN = 48; //ų
+ public const int MAX_AUXAREA_NUM = 16; //Ŀ
+ public const int MAX_SLAVE_CHANNEL_NUM = 16; //ͨ
+
+ public const int MAX_SCH_TASKS_NUM = 10;
+
+ public const int MAX_SERVERID_LEN = 64; //IDij
+ public const int MAX_SERVERDOMAIN_LEN = 128; //
+ public const int MAX_AUTHENTICATEID_LEN = 64; //֤ID
+ public const int MAX_AUTHENTICATEPASSWD_LEN = 32; //֤
+ public const int MAX_SERVERNAME_LEN = 64; //û
+ public const int MAX_COMPRESSIONID_LEN = 64; //ID
+ public const int MAX_SIPSERVER_ADDRESS_LEN = 128; //SIPַ֧IPַ
+ //ѹ߱
+ public const int MAX_PlATE_NO_LEN = 32; //ƺ 2013-09-27
+ public const int UPNP_PORT_NUM = 12; //upnp˿ӳ˿Ŀ
+
+
+ public const int MAX_LOCAL_ADDR_LEN = 96; //SOCKSθ
+ public const int MAX_COUNTRY_NAME_LEN = 4; //ҼдƳ
+
+ public const int THERMOMETRY_ALARMRULE_NUM = 40; //ȳ
+
+ public const int ACS_CARD_NO_LEN = 32; //Žų
+ public const int MAX_ID_NUM_LEN = 32; //֤ų
+ public const int MAX_ID_NAME_LEN = 128; //
+ public const int MAX_ID_ADDR_LEN = 280; //סַ
+ public const int MAX_ID_ISSUING_AUTHORITY_LEN = 128; //ǩس
+
+ public const int MAX_CARD_RIGHT_PLAN_NUM = 4; //Ȩƻ
+ public const int MAX_GROUP_NUM_128 = 128; //Ⱥ
+ public const int MAX_CARD_READER_NUM = 64; //
+ public const int MAX_SNEAK_PATH_NODE = 8; //
+ public const int MAX_MULTI_DOOR_INTERLOCK_GROUP = 8; //Ż
+ public const int MAX_INTER_LOCK_DOOR_NUM = 8; //һŻ
+ public const int MAX_CASE_SENSOR_NUM = 8; //case sensor
+ public const int MAX_DOOR_NUM_256 = 256; //
+ public const int MAX_READER_ROUTE_NUM = 16; //ˢѭ·
+ public const int MAX_FINGER_PRINT_NUM = 10; //ָƸ
+ public const int MAX_CARD_READER_NUM_512 = 512; //
+ public const int NET_SDK_MULTI_CARD_GROUP_NUM_20 = 20; //ؿ
+ public const int CARD_PASSWORD_LEN = 8; //볤
+ public const int MAX_DOOR_CODE_LEN = 8; //볤
+ public const int MAX_LOCK_CODE_LEN = 8; //볤
+
+ public const int MAX_NOTICE_NUMBER_LEN = 32; //
+ public const int MAX_NOTICE_THEME_LEN = 64; //
+ public const int MAX_NOTICE_DETAIL_LEN = 1024; //
+ public const int MAX_NOTICE_PIC_NUM = 6; //ϢͼƬ
+ public const int MAX_DEV_NUMBER_LEN = 32; //豸
+ public const int LOCK_NAME_LEN = 32; //
+
+ public const int NET_SDK_EMPLOYEE_NO_LEN = 32; //ų
+ public const int NET_SDK_UUID_LEN = 36; //UUID
+ public const int NET_SDK_EHOME_KEY_LEN = 32; //EHome Key
+
+ public const int NET_DEV_NAME_LEN = 64; //豸Ƴ
+ public const int NET_DEV_TYPE_NAME_LEN = 64; //豸Ƴ
+
+ public const int VCA_MAX_POLYGON_POINT_NUM = 10;//֧10Ķ
+ public const int MAX_RULE_NUM = 8;//
+ public const int MAX_TARGET_NUM = 30;//Ŀ
+ public const int MAX_CALIB_PT = 6;//궨
+ public const int MIN_CALIB_PT = 4;//С궨
+ public const int MAX_TIMESEGMENT_2 = 2;//ʱ
+ public const int MAX_LICENSE_LEN = 16;//ƺ
+ public const int MAX_PLATE_NUM = 3;//Ƹ
+ public const int MAX_MASK_REGION_NUM = 4;//ĸ
+ public const int MAX_SEGMENT_NUM = 6;//궨Ŀ
+ public const int MIN_SEGMENT_NUM = 3;//궨СĿ
+ public const int MAX_CATEGORY_LEN = 8; //ƸϢַ
+ public const int SERIAL_NO_LEN = 16; //λ
+ public const int ILLEGAL_LEN = 32; //Υ볤
+
+ //ӷʽ
+ public const int NORMALCONNECT = 1;
+ public const int MEDIACONNECT = 2;
+
+ //豸ͺ()
+ public const int HCDVR = 1;
+ public const int MEDVR = 2;
+ public const int PCDVR = 3;
+ public const int HC_9000 = 4;
+ public const int HF_I = 5;
+ public const int PCNVR = 6;
+ public const int HC_76NVR = 8;
+
+ //NVR
+ public const int DS8000HC_NVR = 0;
+ public const int DS9000HC_NVR = 1;
+ public const int DS8000ME_NVR = 2;
+
+ /*******************ȫִ begin**********************/
+ public const int NET_DVR_NOERROR = 0;//ûд
+ public const int NET_DVR_PASSWORD_ERROR = 1;//û
+ public const int NET_DVR_NOENOUGHPRI = 2;//Ȩ
+ public const int NET_DVR_NOINIT = 3;//ûгʼ
+ public const int NET_DVR_CHANNEL_ERROR = 4;//ͨŴ
+ public const int NET_DVR_OVER_MAXLINK = 5;//ӵDVRĿͻ˸
+ public const int NET_DVR_VERSIONNOMATCH = 6;//汾ƥ
+ public const int NET_DVR_NETWORK_FAIL_CONNECT = 7;//ӷʧ
+ public const int NET_DVR_NETWORK_SEND_ERROR = 8;//ʧ
+ public const int NET_DVR_NETWORK_RECV_ERROR = 9;//ӷʧ
+ public const int NET_DVR_NETWORK_RECV_TIMEOUT = 10;//ӷݳʱ
+ public const int NET_DVR_NETWORK_ERRORDATA = 11;//͵
+ public const int NET_DVR_ORDER_ERROR = 12;//ô
+ public const int NET_DVR_OPERNOPERMIT = 13;//Ȩ
+ public const int NET_DVR_COMMANDTIMEOUT = 14;//DVRִгʱ
+ public const int NET_DVR_ERRORSERIALPORT = 15;//ںŴ
+ public const int NET_DVR_ERRORALARMPORT = 16;//˿ڴ
+ public const int NET_DVR_PARAMETER_ERROR = 17;//
+ public const int NET_DVR_CHAN_EXCEPTION = 18;//ͨڴ״̬
+ public const int NET_DVR_NODISK = 19;//ûӲ
+ public const int NET_DVR_ERRORDISKNUM = 20;//Ӳ̺Ŵ
+ public const int NET_DVR_DISK_FULL = 21;//Ӳ
+ public const int NET_DVR_DISK_ERROR = 22;//Ӳ̳
+ public const int NET_DVR_NOSUPPORT = 23;//֧
+ public const int NET_DVR_BUSY = 24;//æ
+ public const int NET_DVR_MODIFY_FAIL = 25;//IJɹ
+ public const int NET_DVR_PASSWORD_FORMAT_ERROR = 26;//ʽȷ
+ public const int NET_DVR_DISK_FORMATING = 27;//Ӳڸʽ
+ public const int NET_DVR_DVRNORESOURCE = 28;//DVRԴ
+ public const int NET_DVR_DVROPRATEFAILED = 29;//DVRʧ
+ public const int NET_DVR_OPENHOSTSOUND_FAIL = 30;//PCʧ
+ public const int NET_DVR_DVRVOICEOPENED = 31;//Խռ
+ public const int NET_DVR_TIMEINPUTERROR = 32;//ʱ벻ȷ
+ public const int NET_DVR_NOSPECFILE = 33;//طʱûָļ
+ public const int NET_DVR_CREATEFILE_ERROR = 34;//ļ
+ public const int NET_DVR_FILEOPENFAIL = 35;//ļ
+ public const int NET_DVR_OPERNOTFINISH = 36; //ϴεIJû
+ public const int NET_DVR_GETPLAYTIMEFAIL = 37;//ȡǰŵʱ
+ public const int NET_DVR_PLAYFAIL = 38;//ų
+ public const int NET_DVR_FILEFORMAT_ERROR = 39;//ļʽȷ
+ public const int NET_DVR_DIR_ERROR = 40;//·
+ public const int NET_DVR_ALLOC_RESOURCE_ERROR = 41;//Դ
+ public const int NET_DVR_AUDIO_MODE_ERROR = 42;//ģʽ
+ public const int NET_DVR_NOENOUGH_BUF = 43;//̫С
+ public const int NET_DVR_CREATESOCKET_ERROR = 44;//SOCKET
+ public const int NET_DVR_SETSOCKET_ERROR = 45;//SOCKET
+ public const int NET_DVR_MAX_NUM = 46;//ﵽ
+ public const int NET_DVR_USERNOTEXIST = 47;//û
+ public const int NET_DVR_WRITEFLASHERROR = 48;//дFLASH
+ public const int NET_DVR_UPGRADEFAIL = 49;//DVRʧ
+ public const int NET_DVR_CARDHAVEINIT = 50;//뿨Ѿʼ
+ public const int NET_DVR_PLAYERFAILED = 51;//òſijʧ
+ public const int NET_DVR_MAX_USERNUM = 52;//豸ûﵽ
+ public const int NET_DVR_GETLOCALIPANDMACFAIL = 53;//ÿͻ˵IPַַʧ
+ public const int NET_DVR_NOENCODEING = 54;//ͨûб
+ public const int NET_DVR_IPMISMATCH = 55;//IPַƥ
+ public const int NET_DVR_MACMISMATCH = 56;//MACַƥ
+ public const int NET_DVR_UPGRADELANGMISMATCH = 57;//ļԲƥ
+ public const int NET_DVR_MAX_PLAYERPORT = 58;//·ﵽ
+ public const int NET_DVR_NOSPACEBACKUP = 59;//豸û㹻ռб
+ public const int NET_DVR_NODEVICEBACKUP = 60;//ûҵָı豸
+ public const int NET_DVR_PICTURE_BITS_ERROR = 61;//ͼλ24ɫ
+ public const int NET_DVR_PICTURE_DIMENSION_ERROR = 62;//ͼƬ*ޣ 128*256
+ public const int NET_DVR_PICTURE_SIZ_ERROR = 63;//ͼƬСޣ100K
+ public const int NET_DVR_LOADPLAYERSDKFAILED = 64;//뵱ǰĿ¼Player Sdk
+ public const int NET_DVR_LOADPLAYERSDKPROC_ERROR = 65;//ҲPlayer Sdkij
+ public const int NET_DVR_LOADDSSDKFAILED = 66;//뵱ǰĿ¼DSsdk
+ public const int NET_DVR_LOADDSSDKPROC_ERROR = 67;//ҲDsSdkij
+ public const int NET_DVR_DSSDK_ERROR = 68;//ӲDsSdkijʧ
+ public const int NET_DVR_VOICEMONOPOLIZE = 69;//ռ
+ public const int NET_DVR_JOINMULTICASTFAILED = 70;//ಥʧ
+ public const int NET_DVR_CREATEDIR_ERROR = 71;//־ļĿ¼ʧ
+ public const int NET_DVR_BINDSOCKET_ERROR = 72;//ʧ
+ public const int NET_DVR_SOCKETCLOSE_ERROR = 73;//socketжϣ˴ͨжϻĿĵزɴ
+ public const int NET_DVR_USERID_ISUSING = 74;//עʱûIDڽij
+ public const int NET_DVR_SOCKETLISTEN_ERROR = 75;//ʧ
+ public const int NET_DVR_PROGRAM_EXCEPTION = 76;//쳣
+ public const int NET_DVR_WRITEFILE_FAILED = 77;//дļʧ
+ public const int NET_DVR_FORMAT_READONLY = 78;//ֹʽֻӲ
+ public const int NET_DVR_WITHSAMEUSERNAME = 79;//ûýṹдͬû
+ public const int NET_DVR_DEVICETYPE_ERROR = 80;//ʱ豸ͺŲƥ
+ public const int NET_DVR_LANGUAGE_ERROR = 81;//ʱԲƥ
+ public const int NET_DVR_PARAVERSION_ERROR = 82;//ʱ汾ƥ
+ public const int NET_DVR_IPCHAN_NOTALIVE = 83; //ԤʱIPͨ
+ public const int NET_DVR_RTSP_SDK_ERROR = 84;//ظIPCͨѶStreamTransClient.dllʧ
+ public const int NET_DVR_CONVERT_SDK_ERROR = 85;//תʧ
+ public const int NET_DVR_IPC_COUNT_OVERFLOW = 86;//ipͨ
+
+ public const int NET_PLAYM4_NOERROR = 500;//no error
+ public const int NET_PLAYM4_PARA_OVER = 501;//input parameter is invalid
+ public const int NET_PLAYM4_ORDER_ERROR = 502;//The order of the function to be called is error
+ public const int NET_PLAYM4_TIMER_ERROR = 503;//Create multimedia clock failed
+ public const int NET_PLAYM4_DEC_VIDEO_ERROR = 504;//Decode video data failed
+ public const int NET_PLAYM4_DEC_AUDIO_ERROR = 505;//Decode audio data failed
+ public const int NET_PLAYM4_ALLOC_MEMORY_ERROR = 506;//Allocate memory failed
+ public const int NET_PLAYM4_OPEN_FILE_ERROR = 507;//Open the file failed
+ public const int NET_PLAYM4_CREATE_OBJ_ERROR = 508;//Create thread or event failed
+ public const int NET_PLAYM4_CREATE_DDRAW_ERROR = 509;//Create DirectDraw object failed
+ public const int NET_PLAYM4_CREATE_OFFSCREEN_ERROR = 510;//failed when creating off-screen surface
+ public const int NET_PLAYM4_BUF_OVER = 511;//buffer is overflow
+ public const int NET_PLAYM4_CREATE_SOUND_ERROR = 512;//failed when creating audio device
+ public const int NET_PLAYM4_SET_VOLUME_ERROR = 513;//Set volume failed
+ public const int NET_PLAYM4_SUPPORT_FILE_ONLY = 514;//The function only support play file
+ public const int NET_PLAYM4_SUPPORT_STREAM_ONLY = 515;//The function only support play stream
+ public const int NET_PLAYM4_SYS_NOT_SUPPORT = 516;//System not support
+ public const int NET_PLAYM4_FILEHEADER_UNKNOWN = 517;//No file header
+ public const int NET_PLAYM4_VERSION_INCORRECT = 518;//The version of decoder and encoder is not adapted
+ public const int NET_PALYM4_INIT_DECODER_ERROR = 519;//Initialize decoder failed
+ public const int NET_PLAYM4_CHECK_FILE_ERROR = 520;//The file data is unknown
+ public const int NET_PLAYM4_INIT_TIMER_ERROR = 521;//Initialize multimedia clock failed
+ public const int NET_PLAYM4_BLT_ERROR = 522;//Blt failed
+ public const int NET_PLAYM4_UPDATE_ERROR = 523;//Update failed
+ public const int NET_PLAYM4_OPEN_FILE_ERROR_MULTI = 524;//openfile error, streamtype is multi
+ public const int NET_PLAYM4_OPEN_FILE_ERROR_VIDEO = 525;//openfile error, streamtype is video
+ public const int NET_PLAYM4_JPEG_COMPRESS_ERROR = 526;//JPEG compress error
+ public const int NET_PLAYM4_EXTRACT_NOT_SUPPORT = 527;//Don't support the version of this file
+ public const int NET_PLAYM4_EXTRACT_DATA_ERROR = 528;//extract video data failed
+ /*******************ȫִ end**********************/
+
+ /*************************************************
+ NET_DVR_IsSupport()ֵ
+ 19λֱʾϢλTRUE)ʾ֧֣
+ **************************************************/
+ public const int NET_DVR_SUPPORT_DDRAW = 1;//֧DIRECTDRAW֧֣ܹ
+ public const int NET_DVR_SUPPORT_BLT = 2;//Կ֧BLT֧֣ܹ
+ public const int NET_DVR_SUPPORT_BLTFOURCC = 4;//ԿBLT֧ɫת֧֣RGBת
+ public const int NET_DVR_SUPPORT_BLTSHRINKX = 8;//ԿBLT֧XС֧֣ϵͳת
+ public const int NET_DVR_SUPPORT_BLTSHRINKY = 16;//ԿBLT֧YС֧֣ϵͳת
+ public const int NET_DVR_SUPPORT_BLTSTRETCHX = 32;//ԿBLT֧XŴ֧֣ϵͳת
+ public const int NET_DVR_SUPPORT_BLTSTRETCHY = 64;//ԿBLT֧YŴ֧֣ϵͳת
+ public const int NET_DVR_SUPPORT_SSE = 128;//CPU֧SSEָIntel Pentium3֧SSEָ
+ public const int NET_DVR_SUPPORT_MMX = 256;//CPU֧MMXָIntel Pentium3֧SSEָ
+
+ /**********************̨ begin*************************/
+ public const int LIGHT_PWRON = 2;// ͨƹԴ
+ public const int WIPER_PWRON = 3;// ͨˢ
+ public const int FAN_PWRON = 4;// ͨȿ
+ public const int HEATER_PWRON = 5;// ͨ
+ public const int AUX_PWRON1 = 6;// ͨ豸
+ public const int AUX_PWRON2 = 7;// ͨ豸
+ public const int SET_PRESET = 8;// Ԥõ
+ public const int CLE_PRESET = 9;// Ԥõ
+
+ public const int ZOOM_IN = 11;// ٶSS(ʱ)
+ public const int ZOOM_OUT = 12;// ٶSSС(ʱС)
+ public const int FOCUS_NEAR = 13;// ٶSSǰ
+ public const int FOCUS_FAR = 14;// ٶSS
+ public const int IRIS_OPEN = 15;// ȦٶSS
+ public const int IRIS_CLOSE = 16;// ȦٶSSС
+
+ public const int TILT_UP = 21;/* ̨SSٶ */
+ public const int TILT_DOWN = 22;/* ̨SSٶ¸ */
+ public const int PAN_LEFT = 23;/* ̨SSٶת */
+ public const int PAN_RIGHT = 24;/* ̨SSٶת */
+ public const int UP_LEFT = 25;/* ̨SSٶת */
+ public const int UP_RIGHT = 26;/* ̨SSٶת */
+ public const int DOWN_LEFT = 27;/* ̨SSٶ¸ת */
+ public const int DOWN_RIGHT = 28;/* ̨SSٶ¸ת */
+ public const int PAN_AUTO = 29;/* ̨SSٶԶɨ */
+
+ public const int FILL_PRE_SEQ = 30;/* ԤõѲ */
+ public const int SET_SEQ_DWELL = 31;/* Ѳͣʱ */
+ public const int SET_SEQ_SPEED = 32;/* Ѳٶ */
+ public const int CLE_PRE_SEQ = 33;/* ԤõѲɾ */
+ public const int STA_MEM_CRUISE = 34;/* ʼ¼켣 */
+ public const int STO_MEM_CRUISE = 35;/* ֹͣ¼켣 */
+ public const int RUN_CRUISE = 36;/* ʼ켣 */
+ public const int RUN_SEQ = 37;/* ʼѲ */
+ public const int STOP_SEQ = 38;/* ֹͣѲ */
+ public const int GOTO_PRESET = 39;/* תԤõ */
+ /**********************̨ end*************************/
+
+ /*************************************************
+ طʱſ궨
+ NET_DVR_PlayBackControl
+ NET_DVR_PlayControlLocDisplay
+ NET_DVR_DecPlayBackCtrlĺ궨
+ ֲ֧鿴˵ʹ
+ **************************************************/
+ public const int NET_DVR_PLAYSTART = 1;//ʼ
+ public const int NET_DVR_PLAYSTOP = 2;//ֹͣ
+ public const int NET_DVR_PLAYPAUSE = 3;//ͣ
+ public const int NET_DVR_PLAYRESTART = 4;//ָ
+ public const int NET_DVR_PLAYFAST = 5;//
+ public const int NET_DVR_PLAYSLOW = 6;//
+ public const int NET_DVR_PLAYNORMAL = 7;//ٶ
+ public const int NET_DVR_PLAYFRAME = 8;//֡
+ public const int NET_DVR_PLAYSTARTAUDIO = 9;//
+ public const int NET_DVR_PLAYSTOPAUDIO = 10;//ر
+ public const int NET_DVR_PLAYAUDIOVOLUME = 11;//
+ public const int NET_DVR_PLAYSETPOS = 12;//ıļطŵĽ
+ public const int NET_DVR_PLAYGETPOS = 13;//ȡļطŵĽ
+ public const int NET_DVR_PLAYGETTIME = 14;//ȡǰѾŵʱ(ļطŵʱЧ)
+ public const int NET_DVR_PLAYGETFRAME = 15;//ȡǰѾŵ֡(ļطŵʱЧ)
+ public const int NET_DVR_GETTOTALFRAMES = 16;//ȡǰļܵ֡(ļطŵʱЧ)
+ public const int NET_DVR_GETTOTALTIME = 17;//ȡǰļܵʱ(ļطŵʱЧ)
+ public const int NET_DVR_THROWBFRAME = 20;//B֡
+ public const int NET_DVR_SETSPEED = 24;//ٶ
+ public const int NET_DVR_KEEPALIVE = 25;//豸(ص2뷢һ)
+ public const int NET_DVR_PLAYSETTIME = 26;//ʱ䶨λ
+ public const int NET_DVR_PLAYGETTOTALLEN = 27;//ȡʱطŶӦʱڵļܳ
+ public const int NET_DVR_PLAY_FORWARD = 29;//лΪ
+ public const int NET_DVR_PLAY_REVERSE = 30;//лΪ
+ public const int NET_DVR_SET_TRANS_TYPE = 32;//תװ
+ public const int NET_DVR_PLAY_CONVERT = 33;//лΪ
+
+ //Զ̰£
+ /* key value send to CONFIG program */
+ public const int KEY_CODE_1 = 1;
+ public const int KEY_CODE_2 = 2;
+ public const int KEY_CODE_3 = 3;
+ public const int KEY_CODE_4 = 4;
+ public const int KEY_CODE_5 = 5;
+ public const int KEY_CODE_6 = 6;
+ public const int KEY_CODE_7 = 7;
+ public const int KEY_CODE_8 = 8;
+ public const int KEY_CODE_9 = 9;
+ public const int KEY_CODE_0 = 10;
+ public const int KEY_CODE_POWER = 11;
+ public const int KEY_CODE_MENU = 12;
+ public const int KEY_CODE_ENTER = 13;
+ public const int KEY_CODE_CANCEL = 14;
+ public const int KEY_CODE_UP = 15;
+ public const int KEY_CODE_DOWN = 16;
+ public const int KEY_CODE_LEFT = 17;
+ public const int KEY_CODE_RIGHT = 18;
+ public const int KEY_CODE_EDIT = 19;
+ public const int KEY_CODE_ADD = 20;
+ public const int KEY_CODE_MINUS = 21;
+ public const int KEY_CODE_PLAY = 22;
+ public const int KEY_CODE_REC = 23;
+ public const int KEY_CODE_PAN = 24;
+ public const int KEY_CODE_M = 25;
+ public const int KEY_CODE_A = 26;
+ public const int KEY_CODE_F1 = 27;
+ public const int KEY_CODE_F2 = 28;
+
+ /* for PTZ control */
+ public const int KEY_PTZ_UP_START = KEY_CODE_UP;
+ public const int KEY_PTZ_UP_STOP = 32;
+
+ public const int KEY_PTZ_DOWN_START = KEY_CODE_DOWN;
+ public const int KEY_PTZ_DOWN_STOP = 33;
+
+
+ public const int KEY_PTZ_LEFT_START = KEY_CODE_LEFT;
+ public const int KEY_PTZ_LEFT_STOP = 34;
+
+ public const int KEY_PTZ_RIGHT_START = KEY_CODE_RIGHT;
+ public const int KEY_PTZ_RIGHT_STOP = 35;
+
+ public const int KEY_PTZ_AP1_START = KEY_CODE_EDIT;/* Ȧ+ */
+ public const int KEY_PTZ_AP1_STOP = 36;
+
+ public const int KEY_PTZ_AP2_START = KEY_CODE_PAN;/* Ȧ- */
+ public const int KEY_PTZ_AP2_STOP = 37;
+
+ public const int KEY_PTZ_FOCUS1_START = KEY_CODE_A;/* ۽+ */
+ public const int KEY_PTZ_FOCUS1_STOP = 38;
+
+ public const int KEY_PTZ_FOCUS2_START = KEY_CODE_M;/* ۽- */
+ public const int KEY_PTZ_FOCUS2_STOP = 39;
+
+ public const int KEY_PTZ_B1_START = 40;/* 䱶+ */
+ public const int KEY_PTZ_B1_STOP = 41;
+
+ public const int KEY_PTZ_B2_START = 42;/* 䱶- */
+ public const int KEY_PTZ_B2_STOP = 43;
+
+ //9000
+ public const int KEY_CODE_11 = 44;
+ public const int KEY_CODE_12 = 45;
+ public const int KEY_CODE_13 = 46;
+ public const int KEY_CODE_14 = 47;
+ public const int KEY_CODE_15 = 48;
+ public const int KEY_CODE_16 = 49;
+
+ /************************* begin*******************************/
+ //NET_DVR_SetDVRConfigNET_DVR_GetDVRConfig,עӦýṹ
+ public const int NET_DVR_GET_DEVICECFG = 100;//ȡ豸
+ public const int NET_DVR_SET_DEVICECFG = 101;//豸
+ public const int NET_DVR_GET_NETCFG = 102;//ȡ
+ public const int NET_DVR_SET_NETCFG = 103;//
+ public const int NET_DVR_GET_PICCFG = 104;//ȡͼ
+ public const int NET_DVR_SET_PICCFG = 105;//ͼ
+ public const int NET_DVR_GET_COMPRESSCFG = 106;//ȡѹ
+ public const int NET_DVR_SET_COMPRESSCFG = 107;//ѹ
+ public const int NET_DVR_GET_RECORDCFG = 108;//ȡ¼ʱ
+ public const int NET_DVR_SET_RECORDCFG = 109;//¼ʱ
+ public const int NET_DVR_GET_DECODERCFG = 110;//ȡ
+ public const int NET_DVR_SET_DECODERCFG = 111;//ý
+ public const int NET_DVR_GET_RS232CFG = 112;//ȡ232ڲ
+ public const int NET_DVR_SET_RS232CFG = 113;//232ڲ
+ public const int NET_DVR_GET_ALARMINCFG = 114;//ȡ
+ public const int NET_DVR_SET_ALARMINCFG = 115;//ñ
+ public const int NET_DVR_GET_ALARMOUTCFG = 116;//ȡ
+ public const int NET_DVR_SET_ALARMOUTCFG = 117;//ñ
+ public const int NET_DVR_GET_TIMECFG = 118;//ȡDVRʱ
+ public const int NET_DVR_SET_TIMECFG = 119;//DVRʱ
+ public const int NET_DVR_GET_PREVIEWCFG = 120;//ȡԤ
+ public const int NET_DVR_SET_PREVIEWCFG = 121;//Ԥ
+ public const int NET_DVR_GET_VIDEOOUTCFG = 122;//ȡƵ
+ public const int NET_DVR_SET_VIDEOOUTCFG = 123;//Ƶ
+ public const int NET_DVR_GET_USERCFG = 124;//ȡû
+ public const int NET_DVR_SET_USERCFG = 125;//û
+ public const int NET_DVR_GET_EXCEPTIONCFG = 126;//ȡ쳣
+ public const int NET_DVR_SET_EXCEPTIONCFG = 127;//쳣
+ public const int NET_DVR_GET_ZONEANDDST = 128;//ȡʱʱƲ
+ public const int NET_DVR_SET_ZONEANDDST = 129;//ʱʱƲ
+ public const int NET_DVR_GET_SHOWSTRING = 130;//ȡַ
+ public const int NET_DVR_SET_SHOWSTRING = 131;//õַ
+ public const int NET_DVR_GET_EVENTCOMPCFG = 132;//ȡ¼¼
+ public const int NET_DVR_SET_EVENTCOMPCFG = 133;//¼¼
+
+ public const int NET_DVR_GET_AUXOUTCFG = 140;//ȡ(HS豸2006-02-28)
+ public const int NET_DVR_SET_AUXOUTCFG = 141;//ñ(HS豸2006-02-28)
+ public const int NET_DVR_GET_PREVIEWCFG_AUX = 142;//ȡ-sϵ˫Ԥ(-sϵ˫2006-04-13)
+ public const int NET_DVR_SET_PREVIEWCFG_AUX = 143;//-sϵ˫Ԥ(-sϵ˫2006-04-13)
+
+ public const int NET_DVR_GET_PICCFG_EX = 200;//ȡͼ(SDK_V14չ)
+ public const int NET_DVR_SET_PICCFG_EX = 201;//ͼ(SDK_V14չ)
+ public const int NET_DVR_GET_USERCFG_EX = 202;//ȡû(SDK_V15չ)
+ public const int NET_DVR_SET_USERCFG_EX = 203;//û(SDK_V15չ)
+ public const int NET_DVR_GET_COMPRESSCFG_EX = 204;//ȡѹ(SDK_V15չ2006-05-15)
+ public const int NET_DVR_SET_COMPRESSCFG_EX = 205;//ѹ(SDK_V15չ2006-05-15)
+
+ public const int NET_DVR_GET_NETAPPCFG = 222;//ȡӦò NTP/DDNS/EMAIL
+ public const int NET_DVR_SET_NETAPPCFG = 223;//Ӧò NTP/DDNS/EMAIL
+ public const int NET_DVR_GET_NTPCFG = 224;//ȡӦò NTP
+ public const int NET_DVR_SET_NTPCFG = 225;//Ӧò NTP
+ public const int NET_DVR_GET_DDNSCFG = 226;//ȡӦò DDNS
+ public const int NET_DVR_SET_DDNSCFG = 227;//Ӧò DDNS
+ //ӦNET_DVR_EMAILPARA
+ public const int NET_DVR_GET_EMAILCFG = 228;//ȡӦò EMAIL
+ public const int NET_DVR_SET_EMAILCFG = 229;//Ӧò EMAIL
+
+ public const int NET_DVR_GET_NFSCFG = 230;/* NFS disk config */
+ public const int NET_DVR_SET_NFSCFG = 231;/* NFS disk config */
+
+ public const int NET_DVR_GET_SHOWSTRING_EX = 238;//ȡַչ(֧8ַ)
+ public const int NET_DVR_SET_SHOWSTRING_EX = 239;//õַչ(֧8ַ)
+ public const int NET_DVR_GET_NETCFG_OTHER = 244;//ȡ
+ public const int NET_DVR_SET_NETCFG_OTHER = 245;//
+
+ //ӦNET_DVR_EMAILCFGṹ
+ public const int NET_DVR_GET_EMAILPARACFG = 250;//Get EMAIL parameters
+ public const int NET_DVR_SET_EMAILPARACFG = 251;//Setup EMAIL parameters
+
+ public const int NET_DVR_GET_DDNSCFG_EX = 274;//ȡչDDNS
+ public const int NET_DVR_SET_DDNSCFG_EX = 275;//չDDNS
+
+ public const int NET_DVR_SET_PTZPOS = 292;//̨PTZλ
+ public const int NET_DVR_GET_PTZPOS = 293;//̨ȡPTZλ
+ public const int NET_DVR_GET_PTZSCOPE = 294;//̨ȡPTZΧ
+
+ public const int NET_DVR_GET_AP_INFO_LIST = 305;//ȡԴ
+ public const int NET_DVR_SET_WIFI_CFG = 306;//IP豸߲
+ public const int NET_DVR_GET_WIFI_CFG = 307;//ȡIP豸߲
+ public const int NET_DVR_SET_WIFI_WORKMODE = 308;//IP豸ڹģʽ
+ public const int NET_DVR_GET_WIFI_WORKMODE = 309;//ȡIP豸ڹģʽ
+ public const int NET_DVR_GET_WIFI_STATUS = 310; //ȡ豸ǰwifi״̬
+
+ /***************************ܷ begin *****************************/
+ //豸
+ public const int DS6001_HF_B = 60;//ΪDS6001-HF/B
+ public const int DS6001_HF_P = 61;//ʶDS6001-HF/P
+ public const int DS6002_HF_B = 62;//˫٣DS6002-HF/B
+ public const int DS6101_HF_B = 63;//ΪDS6101-HF/B
+ public const int IDS52XX = 64;//ܷIVMS
+ public const int DS9000_IVS = 65;//9000ϵDVR
+ public const int DS8004_AHL_A = 66;//ATM, DS8004AHL-S/A
+ public const int DS6101_HF_P = 67;//ʶDS6101-HF/P
+
+ //ȡ
+ public const int VCA_DEV_ABILITY = 256;//豸ܷ
+ public const int VCA_CHAN_ABILITY = 272;//Ϊ
+ public const int MATRIXDECODER_ABILITY = 512;//·ʾ
+ //ȡ/ôӿڲ
+ //ʶNET_VCA_PLATE_CFG
+ public const int NET_DVR_SET_PLATECFG = 150;//óʶ
+ public const int NET_DVR_GET_PLATECFG = 151;//ȡʶ
+ //ΪӦNET_VCA_RULECFG
+ public const int NET_DVR_SET_RULECFG = 152;//Ϊ
+ public const int NET_DVR_GET_RULECFG = 153;//ȡΪ
+
+ //˫궨NET_DVR_LF_CFG
+ public const int NET_DVR_SET_LF_CFG = 160;//˫ò
+ public const int NET_DVR_GET_LF_CFG = 161;//ȡ˫ò
+
+ //ܷȡýṹ
+ public const int NET_DVR_SET_IVMS_STREAMCFG = 162;//ܷȡ
+ public const int NET_DVR_GET_IVMS_STREAMCFG = 163;//ȡܷȡ
+
+ //ܿƲṹ
+ public const int NET_DVR_SET_VCA_CTRLCFG = 164;//ܿƲ
+ public const int NET_DVR_GET_VCA_CTRLCFG = 165;//ȡܿƲ
+
+ //NET_VCA_MASK_REGION_LIST
+ public const int NET_DVR_SET_VCA_MASK_REGION = 166;//
+ public const int NET_DVR_GET_VCA_MASK_REGION = 167;//ȡ
+
+ //ATM NET_VCA_ENTER_REGION
+ public const int NET_DVR_SET_VCA_ENTER_REGION = 168;//ý
+ public const int NET_DVR_GET_VCA_ENTER_REGION = 169;//ȡ
+
+ //궨NET_VCA_LINE_SEGMENT_LIST
+ public const int NET_DVR_SET_VCA_LINE_SEGMENT = 170;//ñ궨
+ public const int NET_DVR_GET_VCA_LINE_SEGMENT = 171;//ȡ궨
+
+ // ivmsNET_IVMS_MASK_REGION_LIST
+ public const int NET_DVR_SET_IVMS_MASK_REGION = 172;//IVMS
+ public const int NET_DVR_GET_IVMS_MASK_REGION = 173;//ȡIVMS
+ // ivmsNET_IVMS_ENTER_REGION
+ public const int NET_DVR_SET_IVMS_ENTER_REGION = 174;//IVMS
+ public const int NET_DVR_GET_IVMS_ENTER_REGION = 175;//ȡIVMS
+
+ public const int NET_DVR_SET_IVMS_BEHAVIORCFG = 176;//ܷΪ
+ public const int NET_DVR_GET_IVMS_BEHAVIORCFG = 177;//ȡܷΪ
+
+ // IVMS طż
+ public const int NET_DVR_IVMS_SET_SEARCHCFG = 178;//IVMSطż
+ public const int NET_DVR_IVMS_GET_SEARCHCFG = 179;//ȡIVMSطż
+
+ /***************************DS9000(_V30) begin *****************************/
+ //(NET_DVR_NETCFG_V30ṹ)
+ public const int NET_DVR_GET_NETCFG_V30 = 1000;//ȡ
+ public const int NET_DVR_SET_NETCFG_V30 = 1001;//
+
+ //ͼ(NET_DVR_PICCFG_V30ṹ)
+ public const int NET_DVR_GET_PICCFG_V30 = 1002;//ȡͼ
+ public const int NET_DVR_SET_PICCFG_V30 = 1003;//ͼ
+
+ //ͼ(NET_DVR_PICCFG_V40ṹ)
+ public const int NET_DVR_GET_PICCFG_V40 = 6179;//ȡͼV40չ
+ public const int NET_DVR_SET_PICCFG_V40 = 6180;//ͼV40չ
+
+ //¼ʱ(NET_DVR_RECORD_V30ṹ)
+ public const int NET_DVR_GET_RECORDCFG_V30 = 1004;//ȡ¼
+ public const int NET_DVR_SET_RECORDCFG_V30 = 1005;//¼
+
+ public const int NET_DVR_GET_RECORDCFG_V40 = 1008; //ȡ¼(չ)
+ public const int NET_DVR_SET_RECORDCFG_V40 = 1009; //¼(չ)
+
+ //û(NET_DVR_USER_V30ṹ)
+ public const int NET_DVR_GET_USERCFG_V30 = 1006;//ȡû
+ public const int NET_DVR_SET_USERCFG_V30 = 1007;//û
+
+ //9000DDNS(NET_DVR_DDNSPARA_V30ṹ)
+ public const int NET_DVR_GET_DDNSCFG_V30 = 1010;//ȡDDNS(9000չ)
+ public const int NET_DVR_SET_DDNSCFG_V30 = 1011;//DDNS(9000չ)
+
+ //EMAIL(NET_DVR_EMAILCFG_V30ṹ)
+ public const int NET_DVR_GET_EMAILCFG_V30 = 1012;//ȡEMAIL
+ public const int NET_DVR_SET_EMAILCFG_V30 = 1013;//EMAIL
+
+ //Ѳ (NET_DVR_CRUISE_PARAṹ)
+ public const int NET_DVR_GET_CRUISE = 1020;
+ public const int NET_DVR_SET_CRUISE = 1021;
+
+ //ṹ (NET_DVR_ALARMINCFG_V30ṹ)
+ public const int NET_DVR_GET_ALARMINCFG_V30 = 1024;
+ public const int NET_DVR_SET_ALARMINCFG_V30 = 1025;
+
+ //ṹ (NET_DVR_ALARMOUTCFG_V30ṹ)
+ public const int NET_DVR_GET_ALARMOUTCFG_V30 = 1026;
+ public const int NET_DVR_SET_ALARMOUTCFG_V30 = 1027;
+
+ //Ƶṹ (NET_DVR_VIDEOOUT_V30ṹ)
+ public const int NET_DVR_GET_VIDEOOUTCFG_V30 = 1028;
+ public const int NET_DVR_SET_VIDEOOUTCFG_V30 = 1029;
+
+ //ַṹ (NET_DVR_SHOWSTRING_V30ṹ)
+ public const int NET_DVR_GET_SHOWSTRING_V30 = 1030;
+ public const int NET_DVR_SET_SHOWSTRING_V30 = 1031;
+
+ //쳣ṹ (NET_DVR_EXCEPTION_V30ṹ)
+ public const int NET_DVR_GET_EXCEPTIONCFG_V30 = 1034;
+ public const int NET_DVR_SET_EXCEPTIONCFG_V30 = 1035;
+
+ //232ṹ (NET_DVR_RS232CFG_V30ṹ)
+ public const int NET_DVR_GET_RS232CFG_V30 = 1036;
+ public const int NET_DVR_SET_RS232CFG_V30 = 1037;
+
+ //Ӳ̽ṹ (NET_DVR_NET_DISKCFGṹ)
+ public const int NET_DVR_GET_NET_DISKCFG = 1038;//Ӳ̽ȡ
+ public const int NET_DVR_SET_NET_DISKCFG = 1039;//Ӳ̽
+
+ //ѹ (NET_DVR_COMPRESSIONCFG_V30ṹ)
+ public const int NET_DVR_GET_COMPRESSCFG_V30 = 1040;
+ public const int NET_DVR_SET_COMPRESSCFG_V30 = 1041;
+
+ //ȡ485 (NET_DVR_DECODERCFG_V30ṹ)
+ public const int NET_DVR_GET_DECODERCFG_V30 = 1042;//ȡ
+ public const int NET_DVR_SET_DECODERCFG_V30 = 1043;//ý
+
+ //ȡԤ (NET_DVR_PREVIEWCFG_V30ṹ)
+ public const int NET_DVR_GET_PREVIEWCFG_V30 = 1044;//ȡԤ
+ public const int NET_DVR_SET_PREVIEWCFG_V30 = 1045;//Ԥ
+
+ //Ԥ (NET_DVR_PREVIEWCFG_AUX_V30ṹ)
+ public const int NET_DVR_GET_PREVIEWCFG_AUX_V30 = 1046;//ȡԤ
+ public const int NET_DVR_SET_PREVIEWCFG_AUX_V30 = 1047;//øԤ
+
+ //IPò NET_DVR_IPPARACFGṹ
+ public const int NET_DVR_GET_IPPARACFG = 1048; //ȡIPϢ
+ public const int NET_DVR_SET_IPPARACFG = 1049;//IPϢ
+
+ //IPò NET_DVR_IPPARACFG_V40ṹ
+ public const int NET_DVR_GET_IPPARACFG_V40 = 1062; //ȡIPϢ
+ public const int NET_DVR_SET_IPPARACFG_V40 = 1063;//IPϢ
+
+ //IPò NET_DVR_IPALARMINCFGṹ
+ public const int NET_DVR_GET_IPALARMINCFG = 1050; //ȡIPϢ
+ public const int NET_DVR_SET_IPALARMINCFG = 1051; //IPϢ
+
+ //IPò NET_DVR_IPALARMOUTCFGṹ
+ public const int NET_DVR_GET_IPALARMOUTCFG = 1052;//ȡIPϢ
+ public const int NET_DVR_SET_IPALARMOUTCFG = 1053;//IPϢ
+
+ //Ӳ̹IJȡ (NET_DVR_HDCFGṹ)
+ public const int NET_DVR_GET_HDCFG = 1054;//ȡӲ̹ò
+ public const int NET_DVR_SET_HDCFG = 1055;//Ӳ̹ò
+
+ //IJȡ (NET_DVR_HDGROUP_CFGṹ)
+ public const int NET_DVR_GET_HDGROUP_CFG = 1056;//ȡò
+ public const int NET_DVR_SET_HDGROUP_CFG = 1057;//ò
+
+ //豸(NET_DVR_COMPRESSION_AUDIOṹ)
+ public const int NET_DVR_GET_COMPRESSCFG_AUD = 1058;//ȡ豸Խ
+ public const int NET_DVR_SET_COMPRESSCFG_AUD = 1059;//豸Խ
+
+ //IPò NET_DVR_IPPARACFG_V31ṹ
+ public const int NET_DVR_GET_IPPARACFG_V31 = 1060;//ȡIPϢ
+ public const int NET_DVR_SET_IPPARACFG_V31 = 1061; //IPϢ
+
+ //豸 NET_DVR_DEVICECFG_V40ṹ
+ public const int NET_DVR_GET_DEVICECFG_V40 = 1100;//ȡ豸
+ public const int NET_DVR_SET_DEVICECFG_V40 = 1101;//豸
+
+ //(NET_DVR_NETCFG_MULTIṹ)
+ public const int NET_DVR_GET_NETCFG_MULTI = 1161;
+ public const int NET_DVR_SET_NETCFG_MULTI = 1162;
+
+ //BONDING(NET_DVR_NETWORK_BONDINGṹ)
+ public const int NET_DVR_GET_NETWORK_BONDING = 1254;
+ public const int NET_DVR_SET_NETWORK_BONDING = 1255;
+
+ //NATӳò NET_DVR_NAT_CFGṹ
+ public const int NET_DVR_GET_NAT_CFG = 6111; //ȡNATӳ
+ public const int NET_DVR_SET_NAT_CFG = 6112; //NATӳ
+
+ //Ԥõƻȡ
+ public const int NET_DVR_GET_PRESET_NAME = 3383;
+ public const int NET_DVR_SET_PRESET_NAME = 3382;
+
+ public const int NET_VCA_GET_RULECFG_V41 = 5011; //ȡΪ
+ public const int NET_VCA_SET_RULECFG_V41 = 5012; //Ϊ
+
+ public const int NET_DVR_GET_TRAVERSE_PLANE_DETECTION = 3360; //ȡԽ
+ public const int NET_DVR_SET_TRAVERSE_PLANE_DETECTION = 3361; //Խ
+
+ public const int NET_DVR_GET_THERMOMETRY_ALARMRULE = 3627; //ȡԤõ±
+ public const int NET_DVR_SET_THERMOMETRY_ALARMRULE = 3628; //Ԥõ±
+ public const int NET_DVR_GET_THERMOMETRY_TRIGGER = 3632; //ȡ
+ public const int NET_DVR_SET_THERMOMETRY_TRIGGER = 3633; //ò
+
+ public const int NET_DVR_SET_MANUALTHERM_BASICPARAM = 6716; //ֶ»
+ public const int NET_DVR_GET_MANUALTHERM_BASICPARAM = 6717; //ȡֶ»
+
+ public const int NET_DVR_SET_MANUALTHERM = 6708; //ֶ
+
+ public const int NET_DVR_GET_MULTI_STREAM_COMPRESSIONCFG = 3216; //Զ̻ȡѹ
+ public const int NET_DVR_SET_MULTI_STREAM_COMPRESSIONCFG = 3217; //Զöѹ
+
+ public const int NET_DVR_VIDEO_CALL_SIGNAL_PROCESS = 16032; //ӻԽ
+ /************************* end*******************************/
+
+ /************************DVR־ begin***************************/
+ /* */
+ //
+ public const int MAJOR_ALARM = 1;
+ //
+ public const int MINOR_ALARM_IN = 1;/* */
+ public const int MINOR_ALARM_OUT = 2;/* */
+ public const int MINOR_MOTDET_START = 3; /* ƶⱨʼ */
+ public const int MINOR_MOTDET_STOP = 4; /* ƶⱨ */
+ public const int MINOR_HIDE_ALARM_START = 5;/* ڵʼ */
+ public const int MINOR_HIDE_ALARM_STOP = 6;/* ڵ */
+ public const int MINOR_VCA_ALARM_START = 7;/*ܱʼ*/
+ public const int MINOR_VCA_ALARM_STOP = 8;/*ֹܱͣ*/
+
+ /* 쳣 */
+ //
+ public const int MAJOR_EXCEPTION = 2;
+ //
+ public const int MINOR_VI_LOST = 33;/* ƵźŶʧ */
+ public const int MINOR_ILLEGAL_ACCESS = 34;/* Ƿ */
+ public const int MINOR_HD_FULL = 35;/* Ӳ */
+ public const int MINOR_HD_ERROR = 36;/* Ӳ̴ */
+ public const int MINOR_DCD_LOST = 37;/* MODEM (ʹ) */
+ public const int MINOR_IP_CONFLICT = 38;/* IPַͻ */
+ public const int MINOR_NET_BROKEN = 39;/* Ͽ*/
+ public const int MINOR_REC_ERROR = 40;/* ¼ */
+ public const int MINOR_IPC_NO_LINK = 41;/* IPC쳣 */
+ public const int MINOR_VI_EXCEPTION = 42;/* Ƶ쳣(ֻģͨ) */
+ public const int MINOR_IPC_IP_CONFLICT = 43;/*ipc ip ַ ͻ*/
+
+ //Ƶۺƽ̨
+ public const int MINOR_FANABNORMAL = 49;/* Ƶۺƽ̨״̬쳣 */
+ public const int MINOR_FANRESUME = 50;/* Ƶۺƽ̨״ָ̬ */
+ public const int MINOR_SUBSYSTEM_ABNORMALREBOOT = 51;/* Ƶۺƽ̨6467쳣 */
+ public const int MINOR_MATRIX_STARTBUZZER = 52;/* Ƶۺƽ̨dm6467쳣 */
+
+ /* */
+ //
+ public const int MAJOR_OPERATION = 3;
+ //
+ public const int MINOR_START_DVR = 65;/* */
+ public const int MINOR_STOP_DVR = 66;/* ػ */
+ public const int MINOR_STOP_ABNORMAL = 67;/* 쳣ػ */
+ public const int MINOR_REBOOT_DVR = 68;/*豸*/
+
+ public const int MINOR_LOCAL_LOGIN = 80;/* ص½ */
+ public const int MINOR_LOCAL_LOGOUT = 81;/* ע½ */
+ public const int MINOR_LOCAL_CFG_PARM = 82;/* ò */
+ public const int MINOR_LOCAL_PLAYBYFILE = 83;/* ذļطŻ */
+ public const int MINOR_LOCAL_PLAYBYTIME = 84;/* ذʱطŻ*/
+ public const int MINOR_LOCAL_START_REC = 85;/* ؿʼ¼ */
+ public const int MINOR_LOCAL_STOP_REC = 86;/* ֹͣ¼ */
+ public const int MINOR_LOCAL_PTZCTRL = 87;/* ̨ */
+ public const int MINOR_LOCAL_PREVIEW = 88;/* Ԥ (ʹ)*/
+ public const int MINOR_LOCAL_MODIFY_TIME = 89;/* ʱ(ʹ) */
+ public const int MINOR_LOCAL_UPGRADE = 90;/* */
+ public const int MINOR_LOCAL_RECFILE_OUTPUT = 91;/* ر¼ļ */
+ public const int MINOR_LOCAL_FORMAT_HDD = 92;/* سʼӲ */
+ public const int MINOR_LOCAL_CFGFILE_OUTPUT = 93;/* ļ */
+ public const int MINOR_LOCAL_CFGFILE_INPUT = 94;/* 뱾ļ */
+ public const int MINOR_LOCAL_COPYFILE = 95;/* رļ */
+ public const int MINOR_LOCAL_LOCKFILE = 96;/* ¼ļ */
+ public const int MINOR_LOCAL_UNLOCKFILE = 97;/* ؽ¼ļ */
+ public const int MINOR_LOCAL_DVR_ALARM = 98;/* ֶʹ*/
+ public const int MINOR_IPC_ADD = 99;/* IPC */
+ public const int MINOR_IPC_DEL = 100;/* ɾIPC */
+ public const int MINOR_IPC_SET = 101;/* IPC */
+ public const int MINOR_LOCAL_START_BACKUP = 102;/* ؿʼ */
+ public const int MINOR_LOCAL_STOP_BACKUP = 103;/* ֹͣ*/
+ public const int MINOR_LOCAL_COPYFILE_START_TIME = 104;/* رݿʼʱ*/
+ public const int MINOR_LOCAL_COPYFILE_END_TIME = 105;/* رݽʱ*/
+ public const int MINOR_LOCAL_ADD_NAS = 106;/*Ӳ*/
+ public const int MINOR_LOCAL_DEL_NAS = 107;/* ɾnas*/
+ public const int MINOR_LOCAL_SET_NAS = 108;/* nas*/
+
+ public const int MINOR_REMOTE_LOGIN = 112;/* Զ̵¼ */
+ public const int MINOR_REMOTE_LOGOUT = 113;/* Զע½ */
+ public const int MINOR_REMOTE_START_REC = 114;/* Զ̿ʼ¼ */
+ public const int MINOR_REMOTE_STOP_REC = 115;/* Զֹͣ¼ */
+ public const int MINOR_START_TRANS_CHAN = 116;/* ʼ */
+ public const int MINOR_STOP_TRANS_CHAN = 117;/* ֹͣ */
+ public const int MINOR_REMOTE_GET_PARM = 118;/* Զ̻ȡ */
+ public const int MINOR_REMOTE_CFG_PARM = 119;/* Զò */
+ public const int MINOR_REMOTE_GET_STATUS = 120;/* Զ̻ȡ״̬ */
+ public const int MINOR_REMOTE_ARM = 121;/* Զ̲ */
+ public const int MINOR_REMOTE_DISARM = 122;/* Զ̳ */
+ public const int MINOR_REMOTE_REBOOT = 123;/* Զ */
+ public const int MINOR_START_VT = 124;/* ʼԽ */
+ public const int MINOR_STOP_VT = 125;/* ֹͣԽ */
+ public const int MINOR_REMOTE_UPGRADE = 126;/* Զ */
+ public const int MINOR_REMOTE_PLAYBYFILE = 127;/* Զ̰ļط */
+ public const int MINOR_REMOTE_PLAYBYTIME = 128;/* Զ̰ʱط */
+ public const int MINOR_REMOTE_PTZCTRL = 129;/* Զ̨ */
+ public const int MINOR_REMOTE_FORMAT_HDD = 130;/* Զ̸ʽӲ */
+ public const int MINOR_REMOTE_STOP = 131;/* Զ̹ػ */
+ public const int MINOR_REMOTE_LOCKFILE = 132;/* Զļ */
+ public const int MINOR_REMOTE_UNLOCKFILE = 133;/* Զ̽ļ */
+ public const int MINOR_REMOTE_CFGFILE_OUTPUT = 134;/* Զ̵ļ */
+ public const int MINOR_REMOTE_CFGFILE_INTPUT = 135;/* Զ̵ļ */
+ public const int MINOR_REMOTE_RECFILE_OUTPUT = 136;/* Զ̵¼ļ */
+ public const int MINOR_REMOTE_DVR_ALARM = 137;/* Զֶʹ*/
+ public const int MINOR_REMOTE_IPC_ADD = 138;/* ԶIPC */
+ public const int MINOR_REMOTE_IPC_DEL = 139;/* ԶɾIPC */
+ public const int MINOR_REMOTE_IPC_SET = 140;/* ԶIPC */
+ public const int MINOR_REBOOT_VCA_LIB = 141;/*ܿ*/
+ public const int MINOR_REMOTE_ADD_NAS = 142;/* Զnas*/
+ public const int MINOR_REMOTE_DEL_NAS = 143;/* Զɾnas*/
+ public const int MINOR_REMOTE_SET_NAS = 144;/* Զnas*/
+
+ //2009-12-16 Ƶۺƽ̨־
+ public const int MINOR_SUBSYSTEMREBOOT = 160;/*Ƶۺƽ̨dm6467 */
+ public const int MINOR_MATRIX_STARTTRANSFERVIDEO = 161; /*Ƶۺƽ̨лʼͼ*/
+ public const int MINOR_MATRIX_STOPTRANSFERVIDEO = 162; /*Ƶۺƽ̨лֹͣͼ*/
+ public const int MINOR_REMOTE_SET_ALLSUBSYSTEM = 163; /*Ƶۺƽ̨6467ϵͳϢ*/
+ public const int MINOR_REMOTE_GET_ALLSUBSYSTEM = 164; /*Ƶۺƽ̨ȡ6467ϵͳϢ*/
+ public const int MINOR_REMOTE_SET_PLANARRAY = 165; /*Ƶۺƽ̨üƻѯ*/
+ public const int MINOR_REMOTE_GET_PLANARRAY = 166; /*Ƶۺƽ̨ȡƻѯ*/
+ public const int MINOR_MATRIX_STARTTRANSFERAUDIO = 167; /*Ƶۺƽ̨лʼƵ*/
+ public const int MINOR_MATRIX_STOPRANSFERAUDIO = 168; /*Ƶۺƽ̨лֹͣƵ*/
+ public const int MINOR_LOGON_CODESPITTER = 169; /*Ƶۺƽ̨½*/
+ public const int MINOR_LOGOFF_CODESPITTER = 170; /*Ƶۺƽ̨˳*/
+
+ /*־Ϣ*/
+ //
+ public const int MAJOR_INFORMATION = 4;/*Ϣ*/
+ //
+ public const int MINOR_HDD_INFO = 161;/*ӲϢ*/
+ public const int MINOR_SMART_INFO = 162;/*SMARTϢ*/
+ public const int MINOR_REC_START = 163;/*ʼ¼*/
+ public const int MINOR_REC_STOP = 164;/*ֹͣ¼*/
+ public const int MINOR_REC_OVERDUE = 165;/*¼ɾ*/
+ public const int MINOR_LINK_START = 166;//ǰ豸
+ public const int MINOR_LINK_STOP = 167;//Ͽǰ豸
+ public const int MINOR_NET_DISK_INFO = 168;//ӲϢ
+
+ //־ΪMAJOR_OPERATION=03ΪMINOR_LOCAL_CFG_PARM=0x52MINOR_REMOTE_GET_PARM=0x76MINOR_REMOTE_CFG_PARM=0x77ʱdwParaType:Ч京£
+ public const int PARA_VIDEOOUT = 1;
+ public const int PARA_IMAGE = 2;
+ public const int PARA_ENCODE = 4;
+ public const int PARA_NETWORK = 8;
+ public const int PARA_ALARM = 16;
+ public const int PARA_EXCEPTION = 32;
+ public const int PARA_DECODER = 64;/**/
+ public const int PARA_RS232 = 128;
+ public const int PARA_PREVIEW = 256;
+ public const int PARA_SECURITY = 512;
+ public const int PARA_DATETIME = 1024;
+ public const int PARA_FRAMETYPE = 2048;/*֡ʽ*/
+ //vca
+ public const int PARA_VCA_RULE = 4096;//Ϊ
+ /************************DVR־ End***************************/
+
+
+ /*******************ļ־ֵ*************************/
+ public const int NET_DVR_FILE_SUCCESS = 1000;//ļϢ
+ public const int NET_DVR_FILE_NOFIND = 1001;//ûļ
+ public const int NET_DVR_ISFINDING = 1002;//ڲļ
+ public const int NET_DVR_NOMOREFILE = 1003;//ļʱûиļ
+ public const int NET_DVR_FILE_EXCEPTION = 1004;//ļʱ쳣
+
+ /*********************ص begin************************/
+ public const int COMM_ALARM = 0x1100;//8000ϢϴӦNET_DVR_ALARMINFO
+ public const int COMM_ALARM_RULE = 0x1102;//ΪϢӦNET_VCA_RULE_ALARM
+ public const int COMM_ALARM_PDC = 0x1103;//ͳƱϴӦNET_DVR_PDC_ALRAM_INFO
+ public const int COMM_ALARM_ALARMHOST = 0x1105;//籨ϴӦNET_DVR_ALARMHOST_ALARMINFO
+ public const int COMM_ALARM_FACE = 0x1106;//ʶ𱨾ϢӦNET_DVR_FACEDETECT_ALARM
+ public const int COMM_RULE_INFO_UPLOAD = 0x1107; // ¼Ϣϴ
+ public const int COMM_ALARM_AID = 0x1110; //ͨ¼Ϣ
+ public const int COMM_ALARM_TPS = 0x1111; //ͨͳƱϢ
+ public const int COMM_UPLOAD_FACESNAP_RESULT = 0x1112; //ʶϴ
+ public const int COMM_ALARM_FACE_DETECTION = 0x4010; //ⱨϢ
+ public const int COMM_ALARM_TFS = 0x1113; //ͨȡ֤Ϣ
+ public const int COMM_ALARM_TPS_V41 = 0x1114; //ͨͳƱϢչ
+ public const int COMM_ALARM_AID_V41 = 0x1115; //ͨ¼Ϣչ
+ public const int COMM_ALARM_VQD_EX = 0x1116; //Ƶϱ
+ public const int COMM_SENSOR_VALUE_UPLOAD = 0x1120; //ģʵʱϴ
+ public const int COMM_SENSOR_ALARM = 0x1121; //ģϴ
+ public const int COMM_SWITCH_ALARM = 0x1122; //
+ public const int COMM_ALARMHOST_EXCEPTION = 0x1123; //ϱ
+ public const int COMM_ALARMHOST_OPERATEEVENT_ALARM = 0x1124; //¼ϴ
+ public const int COMM_ALARMHOST_SAFETYCABINSTATE = 0x1125; //״̬
+ public const int COMM_ALARMHOST_ALARMOUTSTATUS = 0x1126; ///״̬
+ public const int COMM_ALARMHOST_CID_ALARM = 0x1127; //CID汨ϴ
+ public const int COMM_ALARMHOST_EXTERNAL_DEVICE_ALARM = 0x1128; //豸ϴ
+ public const int COMM_ALARMHOST_DATA_UPLOAD = 0x1129; //ϴ
+ public const int COMM_UPLOAD_VIDEO_INTERCOM_EVENT = 0x1132; //ӶԽ¼¼ϴ
+ public const int COMM_ALARM_AUDIOEXCEPTION = 0x1150; //Ϣ
+ public const int COMM_ALARM_DEFOCUS = 0x1151; //齹Ϣ
+ public const int COMM_ALARM_BUTTON_DOWN_EXCEPTION = 0x1152; //ť±Ϣ
+ public const int COMM_ALARM_ALARMGPS = 0x1202; //GPSϢϴ
+ public const int COMM_TRADEINFO = 0x1500; //ATMDVRϴϢ
+ public const int COMM_UPLOAD_PLATE_RESULT = 0x2800; //ϴϢ
+ public const int COMM_ITC_STATUS_DETECT_RESULT = 0x2810; //ʵʱ״̬ϴ(ܸIPC)
+ public const int COMM_IPC_AUXALARM_RESULT = 0x2820; //PIR߱ȱϴ
+ public const int COMM_UPLOAD_PICTUREINFO = 0x2900; //ϴͼƬϢ
+ public const int COMM_SNAP_MATCH_ALARM = 0x2902; //ȶԽϴ
+ public const int COMM_ITS_PLATE_RESULT = 0x3050; //նͼƬϴ
+ public const int COMM_ITS_TRAFFIC_COLLECT = 0x3051; //նͳϴ
+ public const int COMM_ITS_GATE_VEHICLE = 0x3052; //ڳץϴ
+ public const int COMM_ITS_GATE_FACE = 0x3053; //ץϴ
+ public const int COMM_ITS_GATE_COSTITEM = 0x3054; //ڹշϸ 2013-11-19
+ public const int COMM_ITS_GATE_HANDOVER = 0x3055; //ڽӰ 2013-11-19
+ public const int COMM_ITS_PARK_VEHICLE = 0x3056; //ͣϴ
+ public const int COMM_ITS_BLACKLIST_ALARM = 0x3057; //ϴ
+ public const int COMM_ALARM_TPS_REAL_TIME = 0x3081; //TPSʵʱϴ
+ public const int COMM_ALARM_TPS_STATISTICS = 0x3082; //TPSͳƹϴ
+ public const int COMM_ALARM_V30 = 0x4000; //9000Ϣϴ
+ public const int COMM_IPCCFG = 0x4001; //9000豸IPCøı䱨Ϣϴ
+ public const int COMM_IPCCFG_V31 = 0x4002; //9000豸IPCøı䱨Ϣϴչ 9000_1.1
+ public const int COMM_IPCCFG_V40 = 0x4003; // IVMS 2000 NVR IPCøıʱϢϴ
+ public const int COMM_ALARM_DEVICE = 0x4004; //豸ݣֵͨ256չ
+ public const int COMM_ALARM_CVR = 0x4005; //CVR 2.0.Xⲿ
+ public const int COMM_ALARM_HOT_SPARE = 0x4006; //ȱ쳣N+1ģʽ쳣
+ public const int COMM_ALARM_V40 = 0x4007; //ƶ⣬ƵʧڵIOźȱϢϴΪɱ䳤
+
+ public const int COMM_ITS_ROAD_EXCEPTION = 0x4500; //·豸쳣
+ public const int COMM_ITS_EXTERNAL_CONTROL_ALARM = 0x4520; //ر
+ public const int COMM_SCREEN_ALARM = 0x5000; //
+ public const int COMM_DVCS_STATE_ALARM = 0x5001; //ֲʽϴ
+ public const int COMM_ALARM_VQD = 0x6000; //VQDϴ
+ public const int COMM_PUSH_UPDATE_RECORD_INFO = 0x6001; //ģʽ¼Ϣϴ
+ public const int COMM_DIAGNOSIS_UPLOAD = 0x5100; //ϷVQDϴ
+ public const int COMM_ALARM_ACS = 0x5002; //Ž
+ public const int COMM_ID_INFO_ALARM = 0x5200; //֤Ϣϴ
+ public const int COMM_PASSNUM_INFO_ALARM = 0x5201; //ͨϱ
+ public const int COMM_ISAPI_ALARM = 0x6009;
+
+ public const int COMM_THERMOMETRY_ALARM = 0x5212; //¶ȱϢ
+
+ public const int COMM_UPLOAD_AIOP_VIDEO = 0x4021; //豸֧AIƽ̨룬ϴƵ
+ public const int COMM_UPLOAD_AIOP_PICTURE = 0x4022; //豸֧AIƽ̨룬ϴͼƬ
+ public const int COMM_UPLOAD_AIOP_POLLING_SNAP = 0x4023; //豸֧AIƽ̨룬ϴѲץͼͼƬ ӦĽṹ(NET_AIOP_POLLING_SNAP_HEAD)
+ public const int COMM_UPLOAD_AIOP_POLLING_VIDEO = 0x4024; //豸֧AIƽ̨룬ϴѲƵ ӦĽṹ(NET_AIOP_POLLING_VIDEO_HEAD)
+
+
+ /*************쳣(Ϣʽ, صʽ())****************/
+ public const int EXCEPTION_EXCHANGE = 32768;//ûʱ쳣
+ public const int EXCEPTION_AUDIOEXCHANGE = 32769;//Խ쳣
+ public const int EXCEPTION_ALARM = 32770;//쳣
+ public const int EXCEPTION_PREVIEW = 32771;//Ԥ쳣
+ public const int EXCEPTION_SERIAL = 32772;//ͨ쳣
+ public const int EXCEPTION_RECONNECT = 32773;//Ԥʱ
+ public const int EXCEPTION_ALARMRECONNECT = 32774;//ʱ
+ public const int EXCEPTION_SERIALRECONNECT = 32775;//ͨ
+ public const int EXCEPTION_PLAYBACK = 32784;//ط쳣
+ public const int EXCEPTION_DISKFMT = 32785;//Ӳ̸ʽ
+
+ /********************Ԥص*********************/
+ public const int NET_DVR_SYSHEAD = 1;//ϵͳͷ
+ public const int NET_DVR_STREAMDATA = 2;//ƵݣƵֿƵݣ
+ public const int NET_DVR_AUDIOSTREAMDATA = 3;//Ƶ
+ public const int NET_DVR_STD_VIDEODATA = 4;//Ƶ
+ public const int NET_DVR_STD_AUDIODATA = 5;//Ƶ
+
+ //صԤе״̬Ϣ
+ public const int NET_DVR_REALPLAYEXCEPTION = 111;//Ԥ쳣
+ public const int NET_DVR_REALPLAYNETCLOSE = 112;//ԤʱӶϿ
+ public const int NET_DVR_REALPLAY5SNODATA = 113;//Ԥ5sûյ
+ public const int NET_DVR_REALPLAYRECONNECT = 114;//Ԥ
+
+ /********************طŻص*********************/
+ public const int NET_DVR_PLAYBACKOVER = 101;//طݲ
+ public const int NET_DVR_PLAYBACKEXCEPTION = 102;//ط쳣
+ public const int NET_DVR_PLAYBACKNETCLOSE = 103;//طʱӶϿ
+ public const int NET_DVR_PLAYBACK5SNODATA = 104;//ط5sûյ
+
+ /*********************ص end************************/
+ //豸ͺ(DVR)
+ /* 豸 */
+ public const int DVR = 1;/*δdvrͷNETRET_DVR*/
+ public const int ATMDVR = 2;/*atm dvr*/
+ public const int DVS = 3;/*DVS*/
+ public const int DEC = 4;/* 6001D */
+ public const int ENC_DEC = 5;/* 6001F */
+ public const int DVR_HC = 6;/*8000HC*/
+ public const int DVR_HT = 7;/*8000HT*/
+ public const int DVR_HF = 8;/*8000HF*/
+ public const int DVR_HS = 9;/* 8000HS DVR(no audio) */
+ public const int DVR_HTS = 10; /* 8016HTS DVR(no audio) */
+ public const int DVR_HB = 11; /* HB DVR(SATA HD) */
+ public const int DVR_HCS = 12; /* 8000HCS DVR */
+ public const int DVS_A = 13; /* ATAӲ̵DVS */
+ public const int DVR_HC_S = 14; /* 8000HC-S */
+ public const int DVR_HT_S = 15;/* 8000HT-S */
+ public const int DVR_HF_S = 16;/* 8000HF-S */
+ public const int DVR_HS_S = 17; /* 8000HS-S */
+ public const int ATMDVR_S = 18;/* ATM-S */
+ public const int LOWCOST_DVR = 19;/*7000Hϵ*/
+ public const int DEC_MAT = 20; /*·*/
+ public const int DVR_MOBILE = 21;/* mobile DVR */
+ public const int DVR_HD_S = 22; /* 8000HD-S */
+ public const int DVR_HD_SL = 23;/* 8000HD-SL */
+ public const int DVR_HC_SL = 24;/* 8000HC-SL */
+ public const int DVR_HS_ST = 25;/* 8000HS_ST */
+ public const int DVS_HW = 26; /* 6000HW */
+ public const int DS630X_D = 27; /* · */
+ public const int IPCAM = 30;/*IP */
+ public const int MEGA_IPCAM = 31;/*X52MFϵ,752MF,852MF*/
+ public const int IPCAM_X62MF = 32;/*X62MFϵпɽ9000豸,762MF,862MF*/
+ public const int IPDOME = 40; /*IP */
+ public const int IPDOME_MEGA200 = 41;/*IP 200*/
+ public const int IPDOME_MEGA130 = 42;/*IP 130*/
+ public const int IPMOD = 50;/*IP ģ*/
+ public const int DS71XX_H = 71;/* DS71XXH_S */
+ public const int DS72XX_H_S = 72;/* DS72XXH_S */
+ public const int DS73XX_H_S = 73;/* DS73XXH_S */
+ public const int DS76XX_H_S = 76;/* DS76XX_H_S */
+ public const int DS81XX_HS_S = 81;/* DS81XX_HS_S */
+ public const int DS81XX_HL_S = 82;/* DS81XX_HL_S */
+ public const int DS81XX_HC_S = 83;/* DS81XX_HC_S */
+ public const int DS81XX_HD_S = 84;/* DS81XX_HD_S */
+ public const int DS81XX_HE_S = 85;/* DS81XX_HE_S */
+ public const int DS81XX_HF_S = 86;/* DS81XX_HF_S */
+ public const int DS81XX_AH_S = 87;/* DS81XX_AH_S */
+ public const int DS81XX_AHF_S = 88;/* DS81XX_AHF_S */
+ public const int DS90XX_HF_S = 90; /*DS90XX_HF_S*/
+ public const int DS91XX_HF_S = 91; /*DS91XX_HF_S*/
+ public const int DS91XX_HD_S = 92; /*91XXHD-S(MD)*/
+ /**********************豸 end***********************/
+
+ /*************************************************
+ ýṹ(_V30Ϊ9000)
+ **************************************************/
+ //Уʱṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TIME
+ {
+ public uint dwYear;
+ public uint dwMonth;
+ public uint dwDay;
+ public uint dwHour;
+ public uint dwMinute;
+ public uint dwSecond;
+ }
+
+ //ʱ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TIME_V30
+ {
+ public ushort wYear;
+ public byte byMonth;
+ public byte byDay;
+ public byte byHour;
+ public byte byMinute;
+ public byte bySecond;
+ public byte byRes;
+ public ushort wMilliSec;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TIME_EX
+ {
+ public ushort wYear;
+ public byte byMonth;
+ public byte byDay;
+ public byte byHour;
+ public byte byMinute;
+ public byte bySecond;
+ public byte byRes;
+ }
+
+ //ʱ(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCHEDTIME
+ {
+ public byte byStartHour;//ʼʱ
+ public byte byStartMin;//ʼʱ
+ public byte byStopHour;//ʱ
+ public byte byStopMin;//ʱ
+ }
+
+ /*豸쳣ʽ*/
+ public const int NOACTION = 0x0;/*Ӧ*/
+ public const int WARNONMONITOR = 0x1;/*Ͼ*/
+ public const int WARNONAUDIOOUT = 0x2;/**/
+ public const int UPTOCENTER = 0x4;/*ϴ*/
+ public const int TRIGGERALARMOUT = 0x8;/**/
+ public const int TRIGGERCATPIC = 0x10;/*ץͼϴE-mail*/
+ public const int SEND_PIC_FTP = 0x200; /*ץͼϴftp*/
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_STRUCTHEAD
+ {
+ public ushort wLength; //ṹ
+ public byte byVersion; /*ߵ4λֱߵͰ汾ݰ汾ͳȽչͬİ汾ijȽ*/
+ public byte byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HANDLEEXCEPTION_V41
+ {
+ public uint dwHandleType;/*ʽ,ʽ""*/
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ public uint dwMaxRelAlarmOutChanNum; //ıֻ֧ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelAlarmOut; //ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HANDLEEXCEPTION_V40
+ {
+ public uint dwHandleType;/*ʽ,ʽ""*/
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ public uint dwMaxRelAlarmOutChanNum; //ıֻ֧ͨ
+ public uint dwRelAlarmOutChanNum; //ıͨ ʵ֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelAlarmOut; //ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //쳣ṹ(ӽṹ)(ദʹ)(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HANDLEEXCEPTION_V30
+ {
+ public uint dwHandleType;/*ʽ,ʽ""*/
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelAlarmOut;//ͨ,,Ϊ1ʾ
+ }
+
+ //쳣ṹ(ӽṹ)(ദʹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HANDLEEXCEPTION
+ {
+ public uint dwHandleType;/*ʽ,ʽ""*/
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JpegץͼϴEMail*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelAlarmOut;//ͨ,,Ϊ1ʾ
+ }
+
+ //DVR豸
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEVICECFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDVRName;//DVR
+ public uint dwDVRID;//DVR ID,ң //V1.4(0-99), V1.5(0-255)
+ public uint dwRecycleRecord;//Ƿѭ¼,0:; 1:
+ //²ɸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber;//к
+ public uint dwSoftwareVersion;//汾,16λ汾,16λǴΰ汾
+ public uint dwSoftwareBuildDate;//,0xYYYYMMDD
+ public uint dwDSPSoftwareVersion;//DSP汾,16λ汾,16λǴΰ汾
+ public uint dwDSPSoftwareBuildDate;// DSP,0xYYYYMMDD
+ public uint dwPanelVersion;// ǰ汾,16λ汾,16λǴΰ汾
+ public uint dwHardwareVersion;// Ӳ汾,16λ汾,16λǴΰ汾
+ public byte byAlarmInPortNum;//DVR
+ public byte byAlarmOutPortNum;//DVR
+ public byte byRS232Num;//DVR 232ڸ
+ public byte byRS485Num;//DVR 485ڸ
+ public byte byNetworkPortNum;//ڸ
+ public byte byDiskCtrlNum;//DVR Ӳ̿
+ public byte byDiskNum;//DVR Ӳ̸
+ public byte byDVRType;//DVR, 1:DVR 2:ATM DVR 3:DVS ......
+ public byte byChanNum;//DVR ͨ
+ public byte byStartChan;//ʼͨ,DVS-1,DVR - 1
+ public byte byDecordChans;//DVR ·
+ public byte byVGANum;//VGAڵĸ
+ public byte byUSBNum;//USBڵĸ
+ public byte byAuxoutNum;//ڵĸ
+ public byte byAudioNum;//ڵĸ
+ public byte byIPChanNum;//ͨ
+ }
+
+ /*IPַ*/
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_IPADDR
+ {
+
+ /// char[16]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sIpV4;
+
+ /// BYTE[128]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void Init()
+ {
+ byRes = new byte[128];
+ }
+ }
+
+ /*ݽṹ(ӽṹ)(9000չ)*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ETHERNET_V30
+ {
+ public NET_DVR_IPADDR struDVRIP;//DVR IPַ
+ public NET_DVR_IPADDR struDVRIPMask;//DVR IPַ
+ public uint dwNetInterface;//ӿڣ1-10MBase-T2-10MBase-Tȫ˫3-100MBase-TX4-100Mȫ˫5-10M/100M/1000MӦ6-1000Mȫ˫
+ public ushort wDVRPort;//˿ں
+ public ushort wMTU;//MTUãĬ1500
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr;// ַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /*ݽṹ(ӽṹ)*/
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_ETHERNET
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDVRIP;//DVR IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDVRIPMask;//DVR IPַ
+ public uint dwNetInterface;//ӿ 1-10MBase-T 2-10MBase-Tȫ˫ 3-100MBase-TX 4-100Mȫ˫ 5-10M/100MӦ
+ public ushort wDVRPort;//˿ں
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr;//ַ
+ }
+
+ //pppoeṹ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_PPPOECFG
+ {
+ public uint dwPPPOE;//0-,1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPPPoEUser;//PPPoEû
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PASSWD_LEN)]
+ public string sPPPoEPassword;// PPPoE
+ public NET_DVR_IPADDR struPPPoEIP;//PPPoE IPַ
+ }
+
+ //ýṹ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NETCFG_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ETHERNET, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ETHERNET_V30[] struEtherNet;//̫
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPADDR[] struRes1;/**/
+ public NET_DVR_IPADDR struAlarmHostIpAddr;/* IPַ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public ushort wAlarmHostIpPort;
+ public byte byUseDhcp;
+ public byte byRes3;
+ public NET_DVR_IPADDR struDnsServer1IpAddr;/* 1IPַ */
+ public NET_DVR_IPADDR struDnsServer2IpAddr;/* 2IPַ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byIpResolver;
+ public ushort wIpResolverPort;
+ public ushort wHttpPortNo;
+ public NET_DVR_IPADDR struMulticastIpAddr;/* ಥַ */
+ public NET_DVR_IPADDR struGatewayIpAddr;/* صַ */
+ public NET_DVR_PPPOECFG struPPPoE;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //Ϣṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ETHERNET_MULTI
+ {
+ public NET_DVR_IPADDR struDVRIP;
+ public NET_DVR_IPADDR struDVRIPMask;
+ public uint dwNetInterface;
+ public byte byCardType; //ͣ0-ͨ1-2-
+ public byte byRes1;
+ public ushort wMTU;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public byte byUseDhcp;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ public NET_DVR_IPADDR struGatewayIpAddr;
+ public NET_DVR_IPADDR struDnsServer1IpAddr;
+ public NET_DVR_IPADDR struDnsServer2IpAddr;
+ }
+
+ //ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NETCFG_MULTI
+ {
+ public uint dwSize;
+ public byte byDefaultRoute;
+ public byte byNetworkCardNum;
+ public byte byWorkMode; //0-ͨģʽ1-ģʽ
+ public byte byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NETWORK_CARD, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ETHERNET_MULTI[] struEtherNet;//̫
+ public NET_DVR_IPADDR struManageHost1IpAddr;
+ public NET_DVR_IPADDR struManageHost2IpAddr;
+ public NET_DVR_IPADDR struAlarmHostIpAddr;
+ public ushort wManageHost1Port;
+ public ushort wManageHost2Port;
+ public ushort wAlarmHostIpPort;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byIpResolver;
+ public ushort wIpResolverPort;
+ public ushort wDvrPort;
+ public ushort wHttpPortNo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_DVR_IPADDR struMulticastIpAddr;/* ಥַ */
+ public NET_DVR_PPPOECFG struPPPoE;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+ //ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_NETCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ETHERNET, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ETHERNET[] struEtherNet;/* ̫ */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sManageHostIP;//Զַ̹
+ public ushort wManageHostPort;//Զ̹˿ں
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sIPServerIP;//IPServerַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sMultiCastIP;//ಥַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sGatewayIP;//صַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sNFSIP;//NFSIPַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PATHNAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sNFSDirectory;//NFSĿ¼
+ public uint dwPPPOE;//0-,1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPPPoEUser;//PPPoEû
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PASSWD_LEN)]
+ public string sPPPoEPassword;// PPPoE
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sPPPoEIP;//PPPoE IPַ(ֻ)
+ public ushort wHttpPort;//HTTP˿ں
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_SIP_CFG
+ {
+ public uint dwSize;
+ public byte byEnableAutoLogin; //ʹԶעᣬ0-ʹܣ1-ʹ
+ public byte byLoginStatus; //ע״̬0-δעᣬ1-עᣬ˲ֻܻȡ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_IPADDR stuServerIP; //SIPIP
+ public ushort wServerPort; //SIP˿
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUserName; //עû
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPassWord; //ע
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NUMBER_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalNo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDispalyName; //豸ʾ
+ public ushort wLocalPort; //ض˿
+ public byte byLoginCycle; //עڣ1-99
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 129, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //IPӶԽֻ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_IP_VIEW_DEVCFG
+ {
+ public uint dwSize;
+ public byte byDefaultRing; //ĬΧ1-6
+ public byte byRingVolume; //Χ0-9
+ public byte byInputVolume; //ֵΧ0-6
+ public byte byOutputVolume; //ֵΧ0-9
+ public ushort wRtpPort; //Rtp˿
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwPreviewDelayTime; //Ԥʱã0-30
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //IpӶԽƵز
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_IP_VIEW_AUDIO_CFG
+ {
+ public uint dwSize;
+ public byte byAudioEncPri1; //Ƶȼ10-OggVorbis1-G711_U2-G711_A 5-MPEG2,6-G7267-AAC
+ public byte byAudioEncPri2; //Ƶȼ2sip֧Ƶ1ʱʹƵ20-OggVorbis1-G711_U2-G711_A 5-MPEG2,6-G7267-AAC
+ public ushort wAudioPacketLen1; //Ƶ1ݰ
+ public ushort wAudioPacketLen2; //Ƶ2ݰ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //IPֻжԽýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_IP_VIEW_CALL_CFG
+ {
+ public uint dwSize ;
+ public byte byEnableAutoResponse; //ʹԶӦ,0-ʹܣ1-ʹ
+ public byte byAudoResponseTime; //ԶӦʱ䣬0-30
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byEnableAlarmNumber1; //10-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NUMBER_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmNumber1; //к1
+ public byte byEnableAlarmNumber2; //20-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NUMBER_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmNumber2; //к2к1ʧ᳢ܻԺк2
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 72, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes4;
+ }
+
+ //ͨͼṹ
+ //ƶ(ӽṹ)(鷽ʽչ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_RECORDCHAN
+ {
+ public uint dwMaxRecordChanNum; //豸ֵ֧¼ͨ-ֻ
+ public uint dwCurRecordChanNum; //ǰʵõĹ¼ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U4)]
+ public uint dwRelRecordChan; /* ʵʴ¼ֵͨʾ,ýУ±0 - MAX_CHANNUM_V30-1Чм0xffffffff,Ч*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ͨͼṹ
+ //ƶ(ӽṹ)(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MOTION_V30
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 96*64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMotionScope;/*,0-96λ,ʾ64,96*64С,Ϊ1ʾƶ,0-ʾ*/
+ public byte byMotionSensitive;/*ƶ, 0 - 5,ԽԽ,oxffر*/
+ public byte byEnableHandleMotion;/* Ƿƶ 0 1*/
+ public byte byEnableDisplay;/* ƶʾ0- 1- */
+ public byte reservedData;
+ public NET_DVR_HANDLEEXCEPTION_V30 struMotionHandleType;/* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;/*ʱ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan;/* ¼ͨ*/
+ }
+
+ //ƶ(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MOTION
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 396, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMotionScope;/*,22*18С,Ϊ1ʾĺƶ,0-ʾ*/
+ public byte byMotionSensitive;/*ƶ, 0 - 5,ԽԽ,0xffر*/
+ public byte byEnableHandleMotion;/* Ƿƶ */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 2)]
+ public string reservedData;
+ public NET_DVR_HANDLEEXCEPTION strMotionHandleType;/* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan;//¼ͨ,Ϊ1ʾͨ
+ }
+
+ //ڵ(ӽṹ)(9000չ) С704*576
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HIDEALARM_V30
+ {
+ public uint dwEnableHideAlarm;/* Ƿڵ ,0-,1- 2- 3-*/
+ public ushort wHideAlarmAreaTopLeftX;/* ڵx */
+ public ushort wHideAlarmAreaTopLeftY;/* ڵy */
+ public ushort wHideAlarmAreaWidth;/* ڵĿ */
+ public ushort wHideAlarmAreaHeight;/*ڵĸ*/
+ public NET_DVR_HANDLEEXCEPTION_V30 strHideAlarmHandleType; /* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ }
+
+ //ڵ(ӽṹ) С704*576
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HIDEALARM
+ {
+ public uint dwEnableHideAlarm;/* Ƿڵ ,0-,1- 2- 3-*/
+ public ushort wHideAlarmAreaTopLeftX;/* ڵx */
+ public ushort wHideAlarmAreaTopLeftY;/* ڵy */
+ public ushort wHideAlarmAreaWidth;/* ڵĿ */
+ public ushort wHideAlarmAreaHeight;/*ڵĸ*/
+ public NET_DVR_HANDLEEXCEPTION strHideAlarmHandleType;/* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ }
+
+ //źŶʧ(ӽṹ)(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VILOST_V30
+ {
+ public byte byEnableHandleVILost;/* ǷźŶʧ */
+ public NET_DVR_HANDLEEXCEPTION_V30 strVILostHandleType;/* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 56, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ }
+
+ //źŶʧ(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VILOST
+ {
+ public byte byEnableHandleVILost;/* ǷźŶʧ */
+ public NET_DVR_HANDLEEXCEPTION strVILostHandleType;/* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ }
+
+ //ڵ(ӽṹ)
+ [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+ public struct NET_DVR_SHELTER
+ {
+ public ushort wHideAreaTopLeftX;/* ڵx */
+ public ushort wHideAreaTopLeftY;/* ڵy */
+ public ushort wHideAreaWidth;/* ڵĿ */
+ public ushort wHideAreaHeight;/*ڵĸ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COLOR
+ {
+ public byte byBrightness;/*,0-255*/
+ public byte byContrast;/*Աȶ,0-255*/
+ public byte bySaturation;/*Ͷ,0-255*/
+ public byte byHue;/*ɫ,0-255*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_RGB_COLOR
+ {
+ public byte byRed; //RGBɫеĺɫ
+ public byte byGreen; //RGBɫеɫ
+ public byte byBlue; //RGBɫеɫ
+ public byte byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_DAYTIME
+ {
+ public byte byHour;//0~24
+ public byte byMinute;//0~60
+ public byte bySecond;//0~60
+ public byte byRes;
+ public ushort wMilliSecond; //0~1000
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_SCHEDULE_DAYTIME
+ {
+ public NET_DVR_DAYTIME struStartTime; //ʼʱ
+ public NET_DVR_DAYTIME struStopTime; //ʱ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_DNMODE
+ {
+ public byte byObjectSize;//ռȲ(0~100)
+ public byte byMotionSensitive; /*ƶ, 0 - 5,ԽԽ,0xffر*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MOTION_MULTI_AREAPARAM
+ {
+ public byte byAreaNo;//(IPC- 1~8)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_VCA_RECT struRect;//Ϣ() size = 16;
+ public NET_DVR_DNMODE struDayNightDisable;//رģʽ
+ public NET_DVR_DNMODE struDayModeParam;//ģʽ
+ public NET_DVR_DNMODE struNightModeParam;//ҹģʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MOTION_MULTI_AREA
+ {
+ public byte byDayNightCtrl;//ҹ 0~ر,1~Զл,2~ʱл(ĬϹر)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_SCHEDULE_DAYTIME struScheduleTime;//лʱ 16
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_MULTI_AREA_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MOTION_MULTI_AREAPARAM[] struMotionMultiAreaParam;//֧24
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MOTION_SINGLE_AREA
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64*96, ArraySubType = UnmanagedType.I1)]
+ public byte[]byMotionScope; /*,0-96λ,ʾ64,96*64С,ĿǰЧ22*18,Ϊ1ʾƶ,0-ʾ*/
+ public byte byMotionSensitive; /*ƶ, 0 - 5,ԽԽ,0xffر*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MOTION_MODE_PARAM
+ {
+ public NET_DVR_MOTION_SINGLE_AREA struMotionSingleArea; //ͨģʽµĵ
+ public NET_DVR_MOTION_MULTI_AREA struMotionMultiArea; //רģʽµĶ
+ }
+
+ //ƶ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MOTION_V40
+ {
+ public NET_DVR_MOTION_MODE_PARAM struMotionMode; //(5.1.0)
+ public byte byEnableHandleMotion; /* Ƿƶ 0 1*/
+ public byte byEnableDisplay; /*ƶʾ0-1-*/
+ public byte byConfigurationMode; //0~ͨ,1~ר(5.1.0)
+ public byte byRes1; //ֽ
+ /* 쳣ʽ */
+ public uint dwHandleType; //쳣,쳣ʽ""
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ public uint dwMaxRelAlarmOutChanNum ; //ıֻ֧ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelAlarmOut; //ʵʴıţֵʾ,ýУ±0 - dwRelAlarmOut -1Чм0xffffffff,Ч
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS*MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime; /*ʱ*/
+ /*¼ͨ*/
+ public uint dwMaxRecordChanNum; //豸ֵ֧¼ͨ-ֻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelRecordChan; /* ʵʴ¼ֵͨʾ,ýУ±0 - dwRelRecordChan -1Чм0xffffffff,Ч*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ //ڵ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_HIDEALARM_V40
+ {
+ public uint dwEnableHideAlarm; /* Ƿڵ0-1-ȣ2-ȣ3-*/
+ public ushort wHideAlarmAreaTopLeftX; /* ڵx */
+ public ushort wHideAlarmAreaTopLeftY; /* ڵy */
+ public ushort wHideAlarmAreaWidth; /* ڵĿ */
+ public ushort wHideAlarmAreaHeight; /*ڵĸ*/
+ /* źŶʧ */
+ public uint dwHandleType; //쳣,쳣ʽ""
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ public uint dwMaxRelAlarmOutChanNum ; //ıֻ֧ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelAlarmOut; /*ţֵʾ,ýУ±0 - dwRelAlarmOut -1Чм0xffffffff,Ч*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS*MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime; /*ʱ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //źŶʧ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_VILOST_V40
+ {
+ public uint dwEnableVILostAlarm; /* ǷźŶʧ ,0-,1-*/
+ /* źŶʧ */
+ public uint dwHandleType; //쳣,쳣ʽ""
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ public uint dwMaxRelAlarmOutChanNum ; //ıֻ֧ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelAlarmOut; /*ţֵʾ,ýУ±0 - dwRelAlarmOut -1Чм0xffffffff,Ч*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS*MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime; /*ʱ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_VICOLOR
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_COLOR[] struColor;/*ͼ(һЧ)*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struHandleTime;/*ʱ()*/
+ }
+
+ //ͨͼṹ(V40չ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_PICCFG_V40
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sChanName;
+ public uint dwVideoFormat; /* ֻ Ƶʽ 1-NTSC 2-PAL */
+ public NET_DVR_VICOLOR struViColor;// ͼʱ
+ //ʾͨ
+ public uint dwShowChanName; // ԤͼǷʾͨ,0-ʾ,1-ʾ
+ public ushort wShowNameTopLeftX; /* ͨʾλõx */
+ public ushort wShowNameTopLeftY; /* ͨʾλõy */
+ //˽ڵ
+ public uint dwEnableHide; /* Ƿڵ ,0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SHELTERNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SHELTER[] struShelter;
+ //OSD
+ public uint dwShowOsd;// ԤͼǷʾOSD,0-ʾ,1-ʾ
+ public ushort wOSDTopLeftX; /* OSDx */
+ public ushort wOSDTopLeftY; /* OSDy */
+ public byte byOSDType; /* OSD(Ҫոʽ) */
+ /* 0: XXXX-XX-XX */
+ /* 1: XX-XX-XXXX */
+ /* 2: XXXXXXXX */
+ /* 3: XXXXXXXX */
+ /* 4: XX-XX-XXXX */
+ /* 5: XXXXXXXX */
+ /*6: xx/xx/xxxx(//) */
+ /*7: xxxx/xx/xx(//) */
+ /*8: xx/xx/xxxx(//)*/
+ public byte byDispWeek; /* Ƿʾ */
+ public byte byOSDAttrib; /* OSD:˸ */
+ /* 0: ʾOSD */
+ /* 1: ˸ */
+ /* 2: ˸ */
+ /* 3: ˸ */
+ /* 4: ˸ */
+ public byte byHourOSDType; /* OSDСʱ:0-24Сʱ,1-12Сʱ */
+ public byte byFontSize; //16*16()/8*16(Ӣ)1-32*32()/16*32(Ӣ)2-64*64()/32*64(Ӣ) FOR 91ϵHD-SDIDVR
+ public byte byOSDColorType; //0-Ĭϣڰף1-Զ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_VILOST_V40 struVILost; //ƵźŶʧ֧飩
+ public NET_DVR_VILOST_V40 struAULost; /*ƵźŶʧ֧飩*/
+ public NET_DVR_MOTION_V40 struMotion; //ƶⱨ֧飩
+ public NET_DVR_HIDEALARM_V40 struHideAlarm; //ڵ֧飩
+ public NET_DVR_RGB_COLOR struOsdColor;//OSDɫ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 124, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ͨͼṹ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_PICCFG_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sChanName;
+ public uint dwVideoFormat;/* ֻ Ƶʽ 1-NTSC 2-PAL*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byReservedData;/**/
+ //ʾͨ
+ public uint dwShowChanName;// ԤͼǷʾͨ,0-ʾ,1-ʾ С704*576
+ public ushort wShowNameTopLeftX;/* ͨʾλõx */
+ public ushort wShowNameTopLeftY;/* ͨʾλõy */
+ //ƵźŶʧ
+ public NET_DVR_VILOST_V30 struVILost;
+ public NET_DVR_VILOST_V30 struRes;/**/
+ //ƶ
+ public NET_DVR_MOTION_V30 struMotion;
+ //ڵ
+ public NET_DVR_HIDEALARM_V30 struHideAlarm;
+ //ڵ С704*576
+ public uint dwEnableHide;/* Ƿڵ ,0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SHELTERNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SHELTER[] struShelter;
+ //OSD
+ public uint dwShowOsd;// ԤͼǷʾOSD,0-ʾ,1-ʾ С704*576
+ public ushort wOSDTopLeftX;/* OSDx */
+ public ushort wOSDTopLeftY;/* OSDy */
+ public byte byOSDType;/* OSD(Ҫոʽ) */
+ /* 0: XXXX-XX-XX */
+ /* 1: XX-XX-XXXX */
+ /* 2: XXXXXXXX */
+ /* 3: XXXXXXXX */
+ /* 4: XX-XX-XXXX */
+ /* 5: XXXXXXXX */
+ public byte byDispWeek;/* Ƿʾ */
+ public byte byOSDAttrib;/* OSD:˸ */
+ /* 0: ʾOSD */
+ /* 1: ,˸ */
+ /* 2: ,˸ */
+ /* 3: ˸, */
+ /* 4: ,˸ */
+ public byte byHourOSDType;/* OSDСʱ:0-24Сʱ,1-12Сʱ */
+ public byte byFontSize;//С16*16()/8*16(Ӣ)1-32*32()/16*32(Ӣ)2-64*64()/32*64(Ӣ) 3-48*48()/24*48(Ӣ) 0xff-Ӧ(adaptive)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ͨͼṹSDK_V14չ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PICCFG_EX
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sChanName;
+ public uint dwVideoFormat;/* ֻ Ƶʽ 1-NTSC 2-PAL*/
+ public byte byBrightness;/*,0-255*/
+ public byte byContrast;/*Աȶ,0-255*/
+ public byte bySaturation;/*Ͷ,0-255 */
+ public byte byHue;/*ɫ,0-255*/
+ //ʾͨ
+ public uint dwShowChanName;// ԤͼǷʾͨ,0-ʾ,1-ʾ С704*576
+ public ushort wShowNameTopLeftX;/* ͨʾλõx */
+ public ushort wShowNameTopLeftY;/* ͨʾλõy */
+ //źŶʧ
+ public NET_DVR_VILOST struVILost;
+ //ƶ
+ public NET_DVR_MOTION struMotion;
+ //ڵ
+ public NET_DVR_HIDEALARM struHideAlarm;
+ //ڵ С704*576
+ public uint dwEnableHide;/* Ƿڵ ,0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SHELTERNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SHELTER[] struShelter;
+ //OSD
+ public uint dwShowOsd;// ԤͼǷʾOSD,0-ʾ,1-ʾ С704*576
+ public ushort wOSDTopLeftX;/* OSDx */
+ public ushort wOSDTopLeftY;/* OSDy */
+ public byte byOSDType;/* OSD(Ҫոʽ) */
+ /* 0: XXXX-XX-XX */
+ /* 1: XX-XX-XXXX */
+ /* 2: XXXXXXXX */
+ /* 3: XXXXXXXX */
+ /* 4: XX-XX-XXXX */
+ /* 5: XXXXXXXX */
+ public byte byDispWeek;/* Ƿʾ */
+ public byte byOSDAttrib;/* OSD:˸ */
+ /* 0: ʾOSD */
+ /* 1: ,˸ */
+ /* 2: ,˸ */
+ /* 3: ˸, */
+ /* 4: ,˸ */
+ public byte byHourOsdType;/* OSDСʱ:0-24Сʱ,1-12Сʱ */
+ }
+
+ //ͨͼṹ(SDK_V13֮ǰ汾)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PICCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sChanName;
+ public uint dwVideoFormat;/* ֻ Ƶʽ 1-NTSC 2-PAL*/
+ public byte byBrightness;/*,0-255*/
+ public byte byContrast;/*Աȶ,0-255*/
+ public byte bySaturation;/*Ͷ,0-255 */
+ public byte byHue;/*ɫ,0-255*/
+ //ʾͨ
+ public uint dwShowChanName;// ԤͼǷʾͨ,0-ʾ,1-ʾ С704*576
+ public ushort wShowNameTopLeftX;/* ͨʾλõx */
+ public ushort wShowNameTopLeftY;/* ͨʾλõy */
+ //źŶʧ
+ public NET_DVR_VILOST struVILost;
+ //ƶ
+ public NET_DVR_MOTION struMotion;
+ //ڵ
+ public NET_DVR_HIDEALARM struHideAlarm;
+ //ڵ С704*576
+ public uint dwEnableHide;/* Ƿڵ ,0-,1-*/
+ public ushort wHideAreaTopLeftX;/* ڵx */
+ public ushort wHideAreaTopLeftY;/* ڵy */
+ public ushort wHideAreaWidth;/* ڵĿ */
+ public ushort wHideAreaHeight;/*ڵĸ*/
+ //OSD
+ public uint dwShowOsd;// ԤͼǷʾOSD,0-ʾ,1-ʾ С704*576
+ public ushort wOSDTopLeftX;/* OSDx */
+ public ushort wOSDTopLeftY;/* OSDy */
+ public byte byOSDType;/* OSD(Ҫոʽ) */
+ /* 0: XXXX-XX-XX */
+ /* 1: XX-XX-XXXX */
+ /* 2: XXXXXXXX */
+ /* 3: XXXXXXXX */
+ /* 4: XX-XX-XXXX */
+ /* 5: XXXXXXXX */
+ public byte byDispWeek;/* Ƿʾ */
+ public byte byOSDAttrib;/* OSD:˸ */
+ /* 0: ʾOSD */
+ /* 1: ,˸ */
+ /* 2: ,˸ */
+ /* 3: ˸, */
+ /* 4: ,˸ */
+ public byte reservedData2;
+ }
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND
+ {
+ public uint dwSize;
+ public NET_DVR_STREAM_INFO struStreamInfo;
+ public uint dwStreamType; //ͣ0-1-2-¼ͣ3-3ԶͨGET /ISAPI/Streaming/channels//customStreamȡǰͨѾӵԶIDԶΪ6~10ֵ6~10
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MULTI_STREAM_COMPRESSIONCFG
+ {
+ public uint dwSize;
+ public uint dwStreamType; //ͣ0-1-2-¼ͣ3-3
+ public NET_DVR_COMPRESSION_INFO_V30 struStreamPara; //ѹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 80, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ѹ(ӽṹ)(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSION_INFO_V30
+ {
+ public byte byStreamType;// 0-Ƶ, 1-, ʾ¼ѹʱλʾǷѹ
+ public byte byResolution;//ֱ0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 516-VGA640*480 17-UXGA1600*1200 18-SVGA 800*60019-HD720p1280*72020-XVGA 21-HD900p
+ public byte byBitrateType;// 0:, 1:
+ public byte byPicQuality;//ͼ 0- 1-κ 2-Ϻ 3-һ 4-ϲ 5-
+ public uint dwVideoBitrate;//Ƶ 0- 1-16K 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
+ // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
+ //λ(31λ)ó1ʾԶ, 0-30λʾֵ
+ public uint dwVideoFrameRate;//֡ 0-ȫ; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20; V2.0汾¼14-15; 15-18; 16-22;
+ public ushort wIntervalFrameI;//I֡
+ //2006-08-11 ӵP֡ýӿڣԸʵʱʱ
+ public byte byIntervalBPFrame;//0-BBP֡; 1-BP֡; 2-P֡
+ public byte byres1; //
+ public byte byVideoEncType;//Ƶ 0 hik264;1h264; 2mpeg4;
+ public byte byAudioEncType; //Ƶ 0OggVorbis
+ public byte byVideoEncComplexity; //Ƶ븴Ӷȣ0-ͣ1-У2,0xfe:ԶԴһ
+ public byte byEnableSvc; //0 - SVCܣ1- SVC
+ public byte byFormatType; //װͣ1-2-RTPװ3-PSװ4-TSװ5-˽У6-FLV7-ASF8-3GP,9-RTP+PS꣺GB281810xff-Ч
+ public byte byAudioBitRate; //Ƶ0-Ĭϣ1-8Kbps, 2- 16Kbps, 3-32Kbps4-64Kbps5-128Kbps6-192Kbps(IPC5.1.0Ĭ4-64Kbps)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byres;//ﱣƵѹ
+ }
+
+ //ͨѹ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSIONCFG_V30
+ {
+ public uint dwSize;
+ public NET_DVR_COMPRESSION_INFO_V30 struNormHighRecordPara;//¼ Ӧ8000ͨ
+ public NET_DVR_COMPRESSION_INFO_V30 struRes;// char reserveData[28];
+ public NET_DVR_COMPRESSION_INFO_V30 struEventRecordPara;//¼ѹ
+ public NET_DVR_COMPRESSION_INFO_V30 struNetPara;//()
+ }
+
+ //ѹ(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSION_INFO
+ {
+ public byte byStreamType;//0-Ƶ,1-,ʾѹʱλʾǷѹ
+ public byte byResolution;//ֱ0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(ר)
+ public byte byBitrateType;//0:ʣ1:
+ public byte byPicQuality;//ͼ 0- 1-κ 2-Ϻ 3-һ 4-ϲ 5-
+ public uint dwVideoBitrate; //Ƶ 0- 1-16K() 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
+ // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
+ //λ(31λ)ó1ʾԶ, 0-30λʾֵ(MIN-32K MAX-8192K)
+ public uint dwVideoFrameRate;//֡ 0-ȫ; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20;
+ }
+
+ //ͨѹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSIONCFG
+ {
+ public uint dwSize;
+ public NET_DVR_COMPRESSION_INFO struRecordPara;//¼/¼¼
+ public NET_DVR_COMPRESSION_INFO struNetPara;///
+ }
+
+ //ѹ(ӽṹ)(չ) I֡
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSION_INFO_EX
+ {
+ public byte byStreamType;//0-Ƶ, 1-
+ public byte byResolution;//ֱ0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(ר)
+ public byte byBitrateType;//0:ʣ1:
+ public byte byPicQuality;//ͼ 0- 1-κ 2-Ϻ 3-һ 4-ϲ 5-
+ public uint dwVideoBitrate;//Ƶ 0- 1-16K() 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
+ // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
+ //λ(31λ)ó1ʾԶ, 0-30λʾֵ(MIN-32K MAX-8192K)
+ public uint dwVideoFrameRate;//֡ 0-ȫ; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20, //V2.014-15, 15-18, 16-22;
+ public ushort wIntervalFrameI;//I֡
+ //2006-08-11 ӵP֡ýӿڣԸʵʱʱ
+ public byte byIntervalBPFrame;//0-BBP֡; 1-BP֡; 2-P֡
+ public byte byRes;
+ }
+
+ //ͨѹ(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSIONCFG_EX
+ {
+ public uint dwSize;
+ public NET_DVR_COMPRESSION_INFO_EX struRecordPara;//¼
+ public NET_DVR_COMPRESSION_INFO_EX struNetPara;//
+ }
+
+ //ʱ¼(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_RECORDSCHED
+ {
+ public NET_DVR_SCHEDTIME struRecordTime;
+ public byte byRecordType;//0:ʱ¼1:ƶ⣬2:¼3:|4:&, 5:, 6: ¼
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 3)]
+ public string reservedData;
+ }
+
+ //ȫ¼(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORDDAY
+ {
+ public ushort wAllDayRecord;/* Ƿȫ¼ 0- 1-*/
+ public byte byRecordType;/* ¼ 0:ʱ¼1:ƶ⣬2:¼3:|4:& 5:, 6: ¼*/
+ public byte reservedData;
+ }
+
+ //ʱ¼(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORDSCHED_V40
+ {
+ public NET_DVR_SCHEDTIME struRecordTime;
+ /*¼ͣ0:ʱ¼1:ƶ⣬2:¼3:|4:& 5:,
+ 6-ܱ¼10-PIR11-߱12-ȱ13-ȫ¼,14-ܽͨ¼,
+ 15-Խ,16-,17-쳣,18-,
+ 19-(Խ|||쳣|),20,21-POS¼,
+ 22-, 23-뿪,24-ǻ,25-Աۼ,26-˶,27-ͣ,
+ 28-Ʒ,29-Ʒȡ,30-⣬31-ƻ,32-ܶŹ¼(˾),33-¼(˾), 34-˯¼(˾)
+ 35-ֻ, 36-Ԥ37-±38-²39-߲±,40-41-,42-ҵѯ,43-,44-ʸ,45-ʱ46-ץģ47-Ƿ̯,48-Ŀץ,
+ 49-˶50ڼ⣬51-52仯 */
+ public byte byRecordType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 31, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ȫ¼(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORDDAY_V40
+ {
+ public byte byAllDayRecord; /* Ƿȫ¼ 0- 1-*/
+ /*¼ͣ0:ʱ¼1:ƶ⣬2:¼3:|4:& 5:,
+ 6-ܱ¼10-PIR11-߱12-ȱ13-ȫ¼,14-ܽͨ¼,
+ 15-Խ,16-,17-쳣,18-,
+ 19-(Խ|||쳣|),20,21-POS¼,
+ 22-, 23-뿪,24-ǻ,25-Աۼ,26-˶,27-ͣ,
+ 28-Ʒ,29-Ʒȡ,30-⣬31-ƻ,32-ܶŹ¼(˾),33-¼(˾), 34-˯¼(˾)
+ 35-ֻ, 36-Ԥ37-±38-²39-߲±,40-41-,42-ҵѯ,43-,44-ʸ,45-ʱ,46-ץ,47-Ƿ̯,48-Ŀץ,
+ 49-˶50ڼ⣬51-52仯*/
+ public byte byRecordType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 62, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORD_V40
+ {
+ public uint dwSize;
+ public uint dwRecord; /*Ƿ¼ 0- 1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_RECORDDAY_V40[] struRecAllDay;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_RECORDSCHED_V40[] struRecordSched;
+ public uint dwRecordTime; /* ¼ʱ 0-5룬 1-10룬 2-30룬 3-1ӣ 4-2ӣ 5-5ӣ 6-10*/
+ public uint dwPreRecordTime; /* Ԥ¼ʱ 0-Ԥ¼ 1-5 2-10 3-15 4-20 5-25 6-30 7-0xffffffff(Ԥ¼) */
+ public uint dwRecorderDuration; /* ¼ʱ */
+ public byte byRedundancyRec; /*Ƿ¼,Ҫ˫ݣ0/1*/
+ public byte byAudioRec; /*¼ʱʱǷ¼Ƶݣд˷*/
+ public byte byStreamType; // 0-1-2-ͬʱ 3-
+ public byte byPassbackRecord; // 0:ش¼ 1ش¼
+ public ushort wLockDuration; // ¼ʱλСʱ 0ʾ0xffffʾ¼εʱijʱ¼
+ public byte byRecordBackup; // 0:¼浵 1¼浵
+ public byte bySVCLevel; //SVC֡ͣ0-飬1-֮һ 2-ķ֮
+ public byte byRecordManage; //¼ȣ0-ã 1-; ʱжʱ¼ʱжʱ¼¼ƻʹãƶ⣬شڰ¼ƻ
+ public byte byExtraSaveAudio;//Ƶ洢
+ /*¼ܺ㷨Զ¼㷨书Ϊ¼Ŀ֣ήʡ֡ʣĿʱָֻȫʼ֡ʣӶﵽԴĵĿ*/
+ public byte byIntelligentRecord;//Ƿ¼ 0- 1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 125, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ͨ¼(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORD_V30
+ {
+ public uint dwSize;
+ public uint dwRecord;/*Ƿ¼ 0- 1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_RECORDDAY[] struRecAllDay;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_RECORDSCHED[] struRecordSched;
+ public uint dwRecordTime;/* ¼ʱ 0-5룬 1-20룬 2-30룬 3-1ӣ 4-2ӣ 5-5ӣ 6-10*/
+ public uint dwPreRecordTime;/* Ԥ¼ʱ 0-Ԥ¼ 1-5 2-10 3-15 4-20 5-25 6-30 7-0xffffffff(Ԥ¼) */
+ public uint dwRecorderDuration;/* ¼ʱ */
+ public byte byRedundancyRec;/*Ƿ¼,Ҫ˫ݣ0/1*/
+ public byte byAudioRec;/*¼ʱʱǷ¼Ƶݣд˷*/
+ public byte byStreamType; // 0: 1
+ public byte byPassbackRecord; // 0:ش¼ 1ش¼
+ public ushort wLockDuration; // ¼ʱλСʱ 0ʾ0xffffʾ¼εʱijʱ¼
+ public byte byRecordBackup; // 0:¼浵 1¼浵
+ public byte bySVCLevel; //SVC֡ͣ0-飬1-֮һ 2-ķ֮
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byReserve;
+ }
+
+ //ͨ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORD
+ {
+ public uint dwSize;
+ public uint dwRecord;/*Ƿ¼ 0- 1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_RECORDDAY[] struRecAllDay;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_RECORDSCHED[] struRecordSched;
+ public uint dwRecordTime;/* ¼ʱ䳤 */
+ public uint dwPreRecordTime;/* Ԥ¼ʱ 0-Ԥ¼ 1-5 2-10 3-15 4-20 5-25 6-30 7-0xffffffff(Ԥ¼) */
+ }
+
+ //̨Эṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PTZ_PROTOCOL
+ {
+ public uint dwType;/*ֵ1ʼ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDescribe;/*8000еһ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PTZCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PTZ_PROTOCOL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PTZ_PROTOCOL[] struPtz;/*200PTZЭ*/
+ public uint dwPtzNum;/*ЧptzЭĿ0ʼ(ʱ1)*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+ /***************************̨(end)******************************/
+
+ //ͨ(̨)(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECODERCFG_V30
+ {
+ public uint dwSize;
+ public uint dwBaudRate;//(bps)0501752110315043005600612007240084800996001019200 11384001257600137680014115.2k;
+ public byte byDataBit;// мλ 05λ16λ27λ38λ;
+ public byte byStopBit;// ֹͣλ 01λ12λ
+ public byte byParity;// У 0У飬1У飬2żУ;
+ public byte byFlowcontrol;// 0ޣ1,2-Ӳ
+ public ushort wDecoderType;//, 0ʼӦptzЭб
+ public ushort wDecoderAddress;/*ַ:0 - 255*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_PRESET_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySetPreset;/* ԤõǷ,0-û,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CRUISE_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySetCruise;/* ѲǷ: 0-û,1- */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TRACK_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySetTrack;/* 켣Ƿ,0-û,1-*/
+ }
+
+ //ͨ(̨)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECODERCFG
+ {
+ public uint dwSize;
+ public uint dwBaudRate; //(bps)0501752110315043005600612007240084800996001019200 11384001257600137680014115.2k;
+ public byte byDataBit; // мλ 05λ16λ27λ38λ;
+ public byte byStopBit;// ֹͣλ 01λ12λ;
+ public byte byParity; // У 0У飬1У飬2żУ;
+ public byte byFlowcontrol;// 0ޣ1,2-Ӳ
+ public ushort wDecoderType;//, 0YouLi1LiLin-10162LiLin-8203Pelco-p4DM DynaColor5HD6006JC-41167Pelco-d WX8Pelco-d PICO
+ public ushort wDecoderAddress;/*ַ:0 - 255*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_PRESET, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySetPreset;/* ԤõǷ,0-û,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CRUISE, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySetCruise;/* ѲǷ: 0-û,1- */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TRACK, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySetTrack;/* 켣Ƿ,0-û,1-*/
+ }
+
+ //ppp(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_PPPCFG_V30
+ {
+ public NET_DVR_IPADDR struRemoteIP;//ԶIPַ
+ public NET_DVR_IPADDR struLocalIP;//IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sLocalIPMask;//IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUsername;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ public byte byPPPMode;//PPPģʽ, 01
+ public byte byRedial;//Ƿز 0-,1-
+ public byte byRedialMode;//زģʽ,0-ɲָ,1-Ԥûز
+ public byte byDataEncrypt;//ݼ,0-,1-
+ public uint dwMTU;//MTU
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PHONENUMBER_LEN)]
+ public string sTelephoneNumber;//绰
+ }
+
+ //ppp(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_PPPCFG
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sRemoteIP;//ԶIPַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sLocalIP;//IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sLocalIPMask;//IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUsername;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ public byte byPPPMode;//PPPģʽ, 01
+ public byte byRedial;//Ƿز 0-,1-
+ public byte byRedialMode;//زģʽ,0-ɲָ,1-Ԥûز
+ public byte byDataEncrypt;//ݼ,0-,1-
+ public uint dwMTU;//MTU
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PHONENUMBER_LEN)]
+ public string sTelephoneNumber;//绰
+ }
+
+ //RS232ڲ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SINGLE_RS232
+ {
+ public uint dwBaudRate;/*(bps)0501752110315043005600612007240084800996001019200 11384001257600137680014115.2k;*/
+ public byte byDataBit;/* мλ 05λ16λ27λ38λ */
+ public byte byStopBit;/* ֹͣλ 01λ12λ */
+ public byte byParity;/* У 0У飬1У飬2żУ */
+ public byte byFlowcontrol;/* 0ޣ1,2-Ӳ */
+ public uint dwWorkMode; /* ģʽ0232PPPţ1232ڲƣ2ͨ */
+ }
+
+ //RS232ڲ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RS232CFG_V30
+ {
+ public uint dwSize;
+ public NET_DVR_SINGLE_RS232 struRs232;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 84, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_PPPCFG_V30 struPPPConfig;
+ }
+
+ //RS232ڲ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RS232CFG
+ {
+ public uint dwSize;
+ public uint dwBaudRate;//(bps)0501752110315043005600612007240084800996001019200 11384001257600137680014115.2k;
+ public byte byDataBit;// мλ 05λ16λ27λ38λ;
+ public byte byStopBit;// ֹͣλ 01λ12λ;
+ public byte byParity;// У 0У飬1У飬2żУ;
+ public byte byFlowcontrol;// 0ޣ1,2-Ӳ
+ public uint dwWorkMode;// ģʽ0խ(232PPP)1̨(232ڲ)2ͨ
+ public NET_DVR_PPPCFG struPPPConfig;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PRESETCHAN_INFO
+ {
+ public uint dwEnablePresetChan; /*Ԥõͨ*/
+ public uint dwPresetPointNo; /*ԤõͨӦԤõ, 0xfffffffʾԤõ㡣*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CRUISECHAN_INFO
+ {
+ public uint dwEnableCruiseChan; /*Ѳͨ*/
+ public uint dwCruiseNo; /*ѲͨӦѲ, 0xfffffffʾЧ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PTZTRACKCHAN_INFO
+ {
+ public uint dwEnablePtzTrackChan; /*̨켣ͨ*/
+ public uint dwPtzTrackNo; /*̨켣ͨӦı, 0xfffffffʾЧ*/
+ }
+
+ //(256·NVRչ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMINCFG_V40
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAlarmInName; /* */
+ public byte byAlarmType; //,0,1
+ public byte byAlarmInHandle; /* Ƿ 0- 1-*/
+ public byte byChannel; // 봥ʶͨ
+ public byte byRes1; //
+ public uint dwHandleType; //쳣,쳣ʽ""
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: */
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ public uint dwMaxRelAlarmOutChanNum ; //ıֻ֧ͨ
+ public uint dwRelAlarmOutChanNum; //ıͨ ʵ֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelAlarmOut; //ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ /*¼ͨ*/
+ public uint dwMaxRecordChanNum; //豸ֵ֧¼ͨ-ֻ
+ public uint dwCurRecordChanNum; //ǰʵõĹ¼ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelRecordChan; /* ʵʴ¼ֵͨʾ,ýУ±0 - dwCurRecordChanNum -1Чм0xffffffff,Ч*/
+ public uint dwMaxEnablePtzCtrlNun; //ǫ̃(ֻ)
+ public uint dwEnablePresetChanNum; //ǰԤõĿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PRESETCHAN_INFO[] struPresetChanInfo; //õԤõϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 516, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; /**/
+ public uint dwEnableCruiseChanNum; //ǰѲͨĿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CRUISECHAN_INFO[] struCruiseChanInfo; //ѲͨϢ
+ public uint dwEnablePtzTrackChanNum; //ǰѲͨĿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PTZTRACKCHAN_INFO[] struPtzTrackInfo; //̨켣ͨϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMINCFG_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAlarmInName;/* */
+ public byte byAlarmType; //,0,1
+ public byte byAlarmInHandle; /* Ƿ 0- 1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_HANDLEEXCEPTION_V30 struAlarmHandleType;/* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan;//¼ͨ,Ϊ1ʾͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEnablePreset;/* ǷԤõ 0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPresetNo;/* ǫ̃Ԥõ,һԵǫ̈ͨԤõ, 0xffʾԤõ㡣*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 192, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;/**/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEnableCruise;/* ǷѲ 0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCruiseNo;/* Ѳ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEnablePtzTrack;/* Ƿù켣 0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPTZTrack;/* ǫ̃Ĺ켣 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct STRUCT_IO_ALARM
+ {
+ public uint dwAlarmInputNo; //ıͨţһֻһ
+ public uint dwTrigerAlarmOutNum; /*ıں䳤ݲдıͨţֽڱʾһ*/
+ public uint dwTrigerRecordChanNum; /*¼ͨں䳤ݲд¼ͨţֽڱʾһ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 116, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct STRUCT_ALARM_CHANNEL
+ {
+ public uint dwAlarmChanNum; /*ͨݸں䳤ݲзıͨţֽڱʾһ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 124, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct STRUCT_ALARM_HD
+ {
+ public uint dwAlarmHardDiskNum; /*Ӳݳȣں䳤ݲзӲ̺ţĽڱʾһ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 124, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public struct UNION_ALARMINFO_FIXED
+ {
+ [FieldOffset(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUnionLen;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALRAM_FIXED_HEADER
+ {
+ public uint dwAlarmType; /*0-ź,1-Ӳ,2-źŶʧ3ƶ⣬4Ӳδʽ,5-дӲ̳,6-ڵ7-ʽƥ, 8-Ƿʣ9-Ƶź쳣10-¼쳣11-ܳ仯12-쳣13-ǰ/¼ֱʲƥ*/
+ public NET_DVR_TIME_EX struAlarmTime; //ʱ
+ public UNION_ALARMINFO_FIXED uStruAlarm;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMINFO_V40
+ {
+ public NET_DVR_ALRAM_FIXED_HEADER struAlarmFixedHeader; //̶
+ public IntPtr pAlarmData; //ɱ䲿
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMINCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAlarmInName;/* */
+ public byte byAlarmType;//,0,1
+ public byte byAlarmInHandle;/* Ƿ 0- 1-*/
+ public byte byChannel; // 봥ʶͨ
+ public byte byRes;
+ public NET_DVR_HANDLEEXCEPTION struAlarmHandleType;/* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan;//¼ͨ,Ϊ1ʾͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEnablePreset;/* ǷԤõ 0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPresetNo;/* ǫ̃Ԥõ,һԵǫ̈ͨԤõ, 0xffʾԤõ㡣*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEnableCruise;/* ǷѲ 0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCruiseNo;/* Ѳ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEnablePtzTrack;/* Ƿù켣 0-,1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPTZTrack;/* ǫ̃Ĺ켣 */
+ }
+
+ //ģⱨ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ANALOG_ALARMINCFG
+ {
+ public uint dwSize;
+ public byte byEnableAlarmHandle; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmInName; //ģⱨ
+ public ushort wAlarmInUpper; //ģѹޣʵֵ10Χ0~360
+ public ushort wAlarmInLower; //ģѹޣʵֵ10Χ0~360
+ public NET_DVR_HANDLEEXCEPTION_V30 struAlarmHandleType; /* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ϴϢ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMINFO_V30
+ {
+ public uint dwAlarmType;/*0-ź,1-Ӳ,2-źŶʧ,3ƶ,4Ӳδʽ,5-дӲ̳,6-ڵ,7-ʽƥ, 8-Ƿ, 0xa-GPSλϢ(ض)*/
+ public uint dwAlarmInputNumber;/*˿*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmOutputNumber;/*˿ڣΪ1ʾӦ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmRelateChannel;/*¼ͨΪ1ʾӦ¼, dwAlarmRelateChannel[0]Ӧ1ͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byChannel;/*dwAlarmTypeΪ23,6ʱʾĸͨdwChannel[0]Ӧ1ͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDiskNumber;/*dwAlarmTypeΪ1,4,5ʱ,ʾĸӲ, dwDiskNumber[0]Ӧ1Ӳ*/
+ public void Init()
+ {
+ dwAlarmType = 0;
+ dwAlarmInputNumber = 0;
+ byAlarmRelateChannel = new byte[MAX_CHANNUM_V30];
+ byChannel = new byte[MAX_CHANNUM_V30];
+ byAlarmOutputNumber = new byte[MAX_ALARMOUT_V30];
+ byDiskNumber = new byte[MAX_DISKNUM_V30];
+ for (int i = 0; i < MAX_CHANNUM_V30; i++)
+ {
+ byAlarmRelateChannel[i] = Convert.ToByte(0);
+ byChannel[i] = Convert.ToByte(0);
+ }
+ for (int i = 0; i < MAX_ALARMOUT_V30; i++)
+ {
+ byAlarmOutputNumber[i] = Convert.ToByte(0);
+ }
+ for (int i = 0; i < MAX_DISKNUM_V30; i++)
+ {
+ byDiskNumber[i] = Convert.ToByte(0);
+ }
+ }
+ public void Reset()
+ {
+ dwAlarmType = 0;
+ dwAlarmInputNumber = 0;
+
+ for (int i = 0; i < MAX_CHANNUM_V30; i++)
+ {
+ byAlarmRelateChannel[i] = Convert.ToByte(0);
+ byChannel[i] = Convert.ToByte(0);
+ }
+ for (int i = 0; i < MAX_ALARMOUT_V30; i++)
+ {
+ byAlarmOutputNumber[i] = Convert.ToByte(0);
+ }
+ for (int i = 0; i < MAX_DISKNUM_V30; i++)
+ {
+ byDiskNumber[i] = Convert.ToByte(0);
+ }
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARM_HOT_SPARE
+ {
+ public uint dwSize; //ṹ
+ public uint dwExceptionCase; //ԭ 0-쳣
+ public NET_DVR_IPADDR struDeviceIP; //쳣豸IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMINFO
+ {
+ public int dwAlarmType;/*0-ź,1-Ӳ,2-źŶʧ,3ƶ,4Ӳδʽ,5-дӲ̳,6-ڵ,7-ʽƥ, 8-Ƿ, 9-״̬, 0xa-GPSλϢ(ض)*/
+ public int dwAlarmInputNumber;/*˿, Ϊ9ʱñʾ״̬0ʾ -1ʾ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT, ArraySubType = UnmanagedType.U4)]
+ public int[] dwAlarmOutputNumber;/*˿ڣһλΪ1ʾӦһ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.U4)]
+ public int[] dwAlarmRelateChannel;/*¼ͨһλΪ1ʾӦһ·¼, dwAlarmRelateChannel[0]Ӧ1ͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.U4)]
+ public int[] dwChannel;/*dwAlarmTypeΪ23,6ʱʾĸͨdwChannel[0]λӦ1ͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM, ArraySubType = UnmanagedType.U4)]
+ public int[] dwDiskNumber;/*dwAlarmTypeΪ1,4,5ʱ,ʾĸӲ, dwDiskNumber[0]λӦ1Ӳ*/
+ public void Init()
+ {
+ dwAlarmType = 0;
+ dwAlarmInputNumber = 0;
+ dwAlarmOutputNumber = new int[MAX_ALARMOUT];
+ dwAlarmRelateChannel = new int[MAX_CHANNUM];
+ dwChannel = new int[MAX_CHANNUM];
+ dwDiskNumber = new int[MAX_DISKNUM];
+ for (int i = 0; i < MAX_ALARMOUT; i++)
+ {
+ dwAlarmOutputNumber[i] = 0;
+ }
+ for (int i = 0; i < MAX_CHANNUM; i++)
+ {
+ dwAlarmRelateChannel[i] = 0;
+ dwChannel[i] = 0;
+ }
+ for (int i = 0; i < MAX_DISKNUM; i++)
+ {
+ dwDiskNumber[i] = 0;
+ }
+ }
+ public void Reset()
+ {
+ dwAlarmType = 0;
+ dwAlarmInputNumber = 0;
+
+ for (int i = 0; i < MAX_ALARMOUT; i++)
+ {
+ dwAlarmOutputNumber[i] = 0;
+ }
+ for (int i = 0; i < MAX_CHANNUM; i++)
+ {
+ dwAlarmRelateChannel[i] = 0;
+ dwChannel[i] = 0;
+ }
+ for (int i = 0; i < MAX_DISKNUM; i++)
+ {
+ dwDiskNumber[i] = 0;
+ }
+ }
+ }
+
+
+ //////////////////////////////////////////////////////////////////////////////////////
+ //IPC
+ /* IP豸ṹ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPDEVINFO
+ {
+ public uint dwEnable;/* IP豸Ƿ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; /* */
+ public NET_DVR_IPADDR struIP;/* IPַ */
+ public ushort wDVRPort;/* ˿ں */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 34, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;/* */
+
+ public void Init()
+ {
+ sUserName = new byte[NAME_LEN];
+ sPassword = new byte[PASSWD_LEN];
+ byRes = new byte[34];
+ }
+ }
+
+ //ipc豸Ϣչ֧ip豸
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPDEVINFO_V31
+ {
+ public byte byEnable;//IP豸ǷЧ
+ public byte byProType;
+ public byte byEnableQuickAdd;
+ public byte byRes1;//ֶΣ0
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;//û
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDomain;//豸
+ public NET_DVR_IPADDR struIP;//IPַ
+ public ushort wDVRPort;// ˿ں
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 34, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;//ֶΣ0
+
+ public void Init()
+ {
+ sUserName = new byte[NAME_LEN];
+ sPassword = new byte[PASSWD_LEN];
+ byDomain = new byte[MAX_DOMAIN_NAME];
+ byRes2 = new byte[34];
+ }
+ }
+
+ /* IPͨƥ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPCHANINFO
+ {
+ public byte byEnable;/* ͨǷ */
+ public byte byIPID;/* IP豸ID ȡֵ1- MAX_IP_DEVICE */
+ public byte byChannel;/* ͨ */
+ public byte byIPIDHigh; // IP豸IDĸ8λ
+ public byte byTransProtocol;//Э0-TCP/auto(豸)1-UDP 2-ಥ 3-TCP 4-auto
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 31, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//,0
+ public void Init()
+ {
+ byRes = new byte[31];
+ }
+ }
+
+ /* IPýṹ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPPARACFG
+ {
+ public uint dwSize;/* ṹС */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_DEVICE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPDEVINFO[] struIPDevInfo;/* IP豸 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ANALOG_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnalogChanEnable; /* ģͨǷãӵ͵߱ʾ1-32ͨ0ʾЧ 1Ч */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_CHANNEL, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPCHANINFO[] struIPChanInfo;/* IPͨ */
+
+ public void Init()
+ {
+ int i = 0;
+ struIPDevInfo = new NET_DVR_IPDEVINFO[MAX_IP_DEVICE];
+
+ for (i = 0; i < MAX_IP_DEVICE; i++)
+ {
+ struIPDevInfo[i].Init();
+ }
+ byAnalogChanEnable = new byte[MAX_ANALOG_CHANNUM];
+ struIPChanInfo = new NET_DVR_IPCHANINFO[MAX_IP_CHANNEL];
+ for (i = 0; i < MAX_IP_CHANNEL; i++)
+ {
+ struIPChanInfo[i].Init();
+ }
+ }
+ }
+
+ /* չIPýṹ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPPARACFG_V31
+ {
+ public uint dwSize;/* ṹС */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_DEVICE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPDEVINFO_V31[] struIPDevInfo; /* IP豸 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ANALOG_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnalogChanEnable; /* ģͨǷãӵ͵߱ʾ1-32ͨ0ʾЧ 1Ч */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_CHANNEL, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPCHANINFO[] struIPChanInfo;/* IPͨ */
+
+ public void Init()
+ {
+ int i = 0;
+ struIPDevInfo = new NET_DVR_IPDEVINFO_V31[MAX_IP_DEVICE];
+
+ for (i = 0; i < MAX_IP_DEVICE; i++)
+ {
+ struIPDevInfo[i].Init();
+ }
+ byAnalogChanEnable = new byte[MAX_ANALOG_CHANNUM];
+ struIPChanInfo = new NET_DVR_IPCHANINFO[MAX_IP_CHANNEL];
+ for (i = 0; i < MAX_IP_CHANNEL; i++)
+ {
+ struIPChanInfo[i].Init();
+ }
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPSERVER_STREAM
+ {
+ public byte byEnable;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_IPADDR struIPServer;
+ public ushort wPort;
+ public ushort wDvrNameLen;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDVRName;
+ public ushort wDVRSerialLen;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.U2)]
+ public ushort[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDVRSerialNumber;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUserName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPassWord;
+ public byte byChannel;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public void Init()
+ {
+ byRes = new byte[3];
+ byDVRName = new byte[NAME_LEN];
+ byRes1 = new ushort[2];
+ byDVRSerialNumber = new byte[SERIALNO_LEN];
+ byUserName = new byte[NAME_LEN];
+ byPassWord = new byte[PASSWD_LEN];
+ byRes2 = new byte[11];
+ }
+ }
+
+ /*ý*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_STREAM_MEDIA_SERVER_CFG
+ {
+ public byte byValid;/*Ƿýȡ,0ʾЧ0ʾЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_IPADDR struDevIP;
+ public ushort wDevPort;/*ý˿*/
+ public byte byTransmitType;/*Э 0-TCP1-UDP*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 69, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+ //豸ͨϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEV_CHAN_INFO
+ {
+ public NET_DVR_IPADDR struIP; //DVR IPַ
+ public ushort wDVRPort; //˿ں
+ public byte byChannel; //ͨ
+ public byte byTransProtocol; //Э0-TCP1-UDP
+ public byte byTransMode; //ģʽ 0 1
+ public byte byFactoryType; /*ǰ豸,ͨӿڻȡ*/
+ public byte byDeviceType; //豸(Ƶۺƽ̨ܰʹ)1-ʱƵۺƽ̨byVcaSupportChanModeֶʹýͨʾͨ2-
+ public byte byDispChan;//ʾͨ,ʹ
+ public byte bySubDispChan;//ʾͨͨţʱʹ
+ public byte byResolution; //; 1-CIF 2-4CIF 3-720P 4-1080P 5-500wʹãݸòԴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDomain; //豸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; //½ʺ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PU_STREAM_CFG
+ {
+ public uint dwSize;
+ public NET_DVR_STREAM_MEDIA_SERVER_CFG struStreamMediaSvrCfg;
+ public NET_DVR_DEV_CHAN_INFO struDevChanInfo;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DDNS_STREAM_CFG
+ {
+ public byte byEnable;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_IPADDR struStreamServer;
+ public ushort wStreamServerPort;
+ public byte byStreamServerTransmitType;
+ public byte byRes2;
+ public NET_DVR_IPADDR struIPServer;
+ public ushort wIPServerPort;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDVRName;
+ public ushort wDVRNameLen;
+ public ushort wDVRSerialLen;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDVRSerialNumber;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassWord;
+ public ushort wDVRPort;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes4;
+ public byte byChannel;
+ public byte byTransProtocol;
+ public byte byTransMode;
+ public byte byFactoryType;
+ public void Init()
+ {
+ byRes1 = new byte[3];
+ byRes3 = new byte[2];
+ sDVRName = new byte[NAME_LEN];
+ sDVRSerialNumber = new byte[SERIALNO_LEN];
+ sUserName = new byte[NAME_LEN];
+ sPassWord = new byte[PASSWD_LEN];
+ byRes4 = new byte[2];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PU_STREAM_URL
+ {
+ public byte byEnable;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 240, ArraySubType = UnmanagedType.I1)]
+ public byte[] strURL;
+ public byte byTransPortocol;
+ public ushort wIPID;
+ public byte byChannel;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public void Init()
+ {
+ strURL = new byte[240];
+ byRes = new byte[7];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HKDDNS_STREAM
+ {
+ public byte byEnable;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDDNSDomain;
+ public ushort wPort;
+ public ushort wAliasLen;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlias;
+ public ushort wDVRSerialLen;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDVRSerialNumber;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUserName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPassWord;
+ public byte byChannel;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public void Init()
+ {
+ byRes = new byte[3];
+ byDDNSDomain = new byte[64];
+ byAlias = new byte[NAME_LEN];
+ byRes1 = new byte[2];
+ byDVRSerialNumber = new byte[SERIALNO_LEN];
+ byUserName = new byte[NAME_LEN];
+ byPassWord = new byte[PASSWD_LEN];
+ byRes2 = new byte[11];
+ }
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPCHANINFO_V40
+ {
+ public byte byEnable; /* ͨǷ */
+ public byte byRes1;
+ public ushort wIPID; //IP豸ID
+ public uint dwChannel; //ͨ
+ public byte byTransProtocol; //Э0-TCP1-UDP
+ public byte byTransMode; //ģʽ 0 1
+ public byte byFactoryType; /*ǰ豸,ͨӿڻȡ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 241, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public struct NET_DVR_GET_STREAM_UNION
+ {
+ [FieldOffset(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 492, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUnion;
+ public void Init()
+ {
+ byUnion = new byte[492];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_STREAM_MODE
+ {
+ public byte byGetStreamType;/*ȡʽ0- ֱӴ豸ȡ1- ýȡ2- ͨIPServerIPַȡ
+ * 3- ͨIPServerҵ豸ͨýȡ豸 4- ͨýURLȥȡ
+ * 5- ͨhiDDNS豸Ȼ豸ȡ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_GET_STREAM_UNION uGetStream;
+ public void Init()
+ {
+ byGetStreamType = 0;
+ byRes = new byte[3];
+ //uGetStream.Init();
+ }
+ }
+
+ /* V40չIPýṹ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPPARACFG_V40
+ {
+ public uint dwSize;/* ṹС */
+ public uint dwGroupNum;
+ public uint dwAChanNum;
+ public uint dwDChanNum;
+ public uint dwStartDChan;
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnalogChanEnable; /* ģͨǷãӵ͵߱ʾ1-32ͨ0ʾЧ 1Ч */
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_DEVICE_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPDEVINFO_V31[] struIPDevInfo; /* IP豸 */
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_STREAM_MODE[] struStreamMode;/* IPͨ */
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; /* ģͨǷãӵ͵߱ʾ1-32ͨ0ʾЧ 1Ч */
+ }
+
+ //ΪCVRչı
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMINFO_DEV
+ {
+ public uint dwAlarmType; //0-(ͨ)ź1-˽о2- NVR˳
+ //3-״̬쳣4-ϵͳʱ쳣5-¼ʣͣ
+ //6-(ͨ)ƶⱨ7-(ͨ)ڵ
+ public NET_DVR_TIME struTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public uint dwNumber; //Ŀ
+ public IntPtr pNO; //dwNumberWORD; ÿWORDʾһͨţߴ̺, ЧʱΪ0
+ }
+
+ /* */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMOUTINFO
+ {
+ public byte byIPID;/* IP豸IDȡֵ1- MAX_IP_DEVICE */
+ public byte byAlarmOut;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 18, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;/* */
+
+ public void Init()
+ {
+ byRes = new byte[18];
+ }
+ }
+
+ /* IPýṹ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMOUTCFG
+ {
+ public uint dwSize; /* ṹС */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMOUT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo;/* IP */
+
+ public void Init()
+ {
+ struIPAlarmOutInfo = new NET_DVR_IPALARMOUTINFO[MAX_IP_ALARMOUT];
+ for (int i = 0; i < MAX_IP_ALARMOUT; i++)
+ {
+ struIPAlarmOutInfo[i].Init();
+ }
+ }
+ }
+ /* IP */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMOUTINFO_V40
+ {
+ public uint dwIPID; /* IP豸ID */
+ public uint dwAlarmOut; /* IP豸IDӦı */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /* */
+ }
+
+ /*IP*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMOUTCFG_V40
+ {
+ public uint dwSize; //ṹ峤
+ public uint dwCurIPAlarmOutNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMOUT_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMOUTINFO_V40[] struIPAlarmOutInfo;/*IP*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /* */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMININFO
+ {
+ public byte byIPID;/* IP豸IDȡֵ1- MAX_IP_DEVICE */
+ public byte byAlarmIn;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 18, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;/* */
+ }
+
+ /* IPýṹ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMINCFG
+ {
+ public uint dwSize;/* ṹС */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMIN, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMININFO[] struIPAlarmInInfo;/* IP */
+ }
+ /* IP */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMININFO_V40
+ {
+ public uint dwIPID; /* IP豸ID */
+ public uint dwAlarmIn; /* IP豸IDӦı */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /* */
+ }
+ /*IPԴ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMINCFG_V40
+ {
+ public uint dwSize; //ṹ峤
+ public uint dwCurIPAlarmInNum; //ǰ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMIN_V40, ArraySubType = UnmanagedType.I1)]
+ public NET_DVR_IPALARMININFO_V40[] struIPAlarmInInfo;/* IP*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ipc alarm info
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMINFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_DEVICE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPDEVINFO[] struIPDevInfo; /* IP豸 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ANALOG_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnalogChanEnable; /* ģͨǷã0-δ 1- */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_CHANNEL, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPCHANINFO[] struIPChanInfo;/* IPͨ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMIN, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMININFO[] struIPAlarmInInfo;/* IP */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMOUT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo;/* IP */
+ }
+
+ //ipcøı䱨Ϣչ 9000_1.1
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMINFO_V31
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_DEVICE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPDEVINFO_V31[] struIPDevInfo; /* IP豸 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ANALOG_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnalogChanEnable;/* ģͨǷã0-δ 1- */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_CHANNEL, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPCHANINFO[] struIPChanInfo;/* IPͨ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMIN, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMININFO[] struIPAlarmInInfo; /* IP */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMOUT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo;/* IP */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPALARMINFO_V40
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_DEVICE_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPDEVINFO_V31[] struIPDevInfo; // IP豸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnalogChanEnable; /* ģͨǷã0-δ 1- */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPCHANINFO[] struIPChanInfo; /* IPͨ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMIN, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMININFO[] struIPAlarmInInfo; /* IP */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IP_ALARMOUT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo; /* IP */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ public enum HD_STAT
+ {
+ HD_STAT_OK = 0,/* */
+ HD_STAT_UNFORMATTED = 1,/* δʽ */
+ HD_STAT_ERROR = 2,/* */
+ HD_STAT_SMART_FAILED = 3,/* SMART״̬ */
+ HD_STAT_MISMATCH = 4,/* ƥ */
+ HD_STAT_IDLE = 5, /* */
+ NET_HD_STAT_OFFLINE = 6,/*̴δ״̬ */
+ HD_RIADVD_EXPAND = 7, /* ̿ */
+ HD_STAT_REPARING = 10, /* Ӳ(9000 2.0) */
+ HD_STAT_FORMATING = 11, /* Ӳڸʽ(9000 2.0) */
+ }
+
+ //ӲϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SINGLE_HD
+ {
+ public uint dwHDNo;/*Ӳ̺, ȡֵ0~MAX_DISKNUM_V30-1*/
+ public uint dwCapacity;/*Ӳ()*/
+ public uint dwFreeSpace;/*Ӳʣռ()*/
+ public uint dwHdStatus;/*Ӳ״̬() HD_STAT*/
+ public byte byHDAttr;/*0-Ĭ, 1-; 2-ֻ*/
+ public byte byHDType;/*0-Ӳ,1-ESATAӲ,2-NASӲ*/
+ public byte byDiskDriver; // ֵ ASCIIַ
+ public byte byRes1;
+ public uint dwHdGroup; /*ĸ 1-MAX_HD_GROUP*/
+ public byte byRecycling; // Ƿѭ 0ѭã1ѭ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public uint dwStorageType; //λʾ 0-֧ 0-֧
+ // dwStorageType & 0x1 ʾǷͨ¼רô洢
+ // dwStorageType & 0x2 ʾǷdz֡¼רô洢
+ // dwStorageType & 0x4 ʾǷͼƬ¼רô洢
+
+ public uint dwPictureCapacity; //ӲͼƬ()λ:MB
+ public uint dwFreePictureSpace; //ʣͼƬռ()λ:MB
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 104, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HDCFG
+ {
+ public uint dwSize;
+ public uint dwHDCount;/*Ӳ()*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SINGLE_HD[] struHDInfo;//ӲزҪЧ
+ }
+
+ //Ϣչ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SINGLE_HDGROUP_V40
+ {
+ public uint dwHDGroupNo; /*() 1-MAX_HD_GROUP*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelRecordChan; //¼ֵͨʾ0xffffffffʱΪЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /* */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HDGROUP_CFG_V40
+ {
+ public uint dwSize; //ṹС
+ public uint dwMaxHDGroupNum; //豸ֵ֧-ֻ
+ public uint dwCurHDGroupNum; /*ǰõ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HD_GROUP, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SINGLE_HDGROUP_V40[] struHDGroupAttr; //ӲزҪЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SINGLE_HDGROUP
+ {
+ public uint dwHDGroupNo;/*() 1-MAX_HD_GROUP*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byHDGroupChans;/*Ӧ¼ͨ, 0-ʾͨ¼飬1-ʾ¼*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HDGROUP_CFG
+ {
+ public uint dwSize;
+ public uint dwHDGroupCount;/*()*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HD_GROUP, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SINGLE_HDGROUP[] struHDGroupAttr;//ӲزҪЧ
+ }
+
+ //ŲĽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCALECFG
+ {
+ public uint dwSize;
+ public uint dwMajorScale;/* ʾ 0-ţ1-*/
+ public uint dwMinorScale;/* ʾ 0-ţ1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes;
+ }
+
+ //DVR(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMOUTCFG_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAlarmOutName;/* */
+ public uint dwAlarmOutDelay;/* ʱ(-1Ϊޣֶر) */
+ //0-5,1-10,2-30,3-1,4-2,5-5,6-10,7-ֶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmOutTime;/* ʱ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //DVR
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMOUTCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAlarmOutName;/* */
+ public uint dwAlarmOutDelay;/* ʱ(-1Ϊޣֶر) */
+ //0-5,1-10,2-30,3-1,4-2,5-5,6-10,7-ֶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmOutTime;/* ʱ */
+ }
+
+ //DVRԤ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PREVIEWCFG_V30
+ {
+ public uint dwSize;
+ public byte byPreviewNumber;//ԤĿ,0-1,1-4,2-9,3-16,0xff:
+ public byte byEnableAudio;//ǷԤ,0-Ԥ,1-Ԥ
+ public ushort wSwitchTime;//лʱ,0-л,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_PREVIEW_MODE * MAX_WINDOW_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySwitchSeq;//л˳,lSwitchSeq[i]Ϊ 0xffʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //DVRԤ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PREVIEWCFG
+ {
+ public uint dwSize;
+ public byte byPreviewNumber;//ԤĿ,0-1,1-4,2-9,3-16,0xff:
+ public byte byEnableAudio;//ǷԤ,0-Ԥ,1-Ԥ
+ public ushort wSwitchTime;//лʱ,0-л,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOW, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySwitchSeq;//л˳,lSwitchSeq[i]Ϊ 0xffʾ
+ }
+
+ //DVRƵ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VGAPARA
+ {
+ public ushort wResolution;/* ֱ */
+ public ushort wFreq;/* ˢƵ */
+ public uint dwBrightness;/* */
+ }
+
+ //MATRIXṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIXPARA_V30
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ANALOG_CHANNUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wOrder;/* Ԥ˳, 0xffʾӦĴڲԤ */
+ public ushort wSwitchTime;// Ԥлʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 14, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIXPARA
+ {
+ public ushort wDisplayLogo;/* ʾƵͨ */
+ public ushort wDisplayOsd;/* ʾʱ */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VOOUT
+ {
+ public byte byVideoFormat;/* ʽ,0-PAL,1-NTSC */
+ public byte byMenuAlphaValue;/* ˵뱳ͼԱȶ */
+ public ushort wScreenSaveTime;/* Ļʱ 0-Ӳ,1-1,2-2,3-5,4-10,5-20,6-30 */
+ public ushort wVOffset;/* Ƶƫ */
+ public ushort wBrightness;/* Ƶ */
+ public byte byStartMode;/* Ƶģʽ(0:˵,1:Ԥ)*/
+ public byte byEnableScaler;/* Ƿ (0-, 1-)*/
+ }
+
+ //DVRƵ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEOOUT_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VIDEOOUT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_VOOUT[] struVOOut;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VGA_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_VGAPARA[] struVGAPara;/* VGA */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_MATRIXOUT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIXPARA_V30[] struMatrixPara;/* MATRIX */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //DVRƵ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEOOUT
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VIDEOOUT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_VOOUT[] struVOOut;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VGA, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_VGAPARA[] struVGAPara; /* VGA */
+ public NET_DVR_MATRIXPARA struMatrixPara;/* MATRIX */
+ }
+
+ //û(ӽṹ)(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_USER_INFO_V40
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; /* ûֻ16ֽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; /* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalRight; /* Ȩ */
+ /*0: ؿ̨*/
+ /*1: ֶ¼*/
+ /*2: ػط*/
+ /*3: ò*/
+ /*4: ز鿴״̬־*/
+ /*5: ظ(ʽػ)*/
+ /*6: ز鿴 */
+ /*7: عģIP camera */
+ /*8: ر */
+ /*9: عػ/ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRemoteRight;/* ԶȨ */
+ /*0: Զ̨̿*/
+ /*1: Զֶ¼*/
+ /*2: Զ̻ط */
+ /*3: Զò*/
+ /*4: Զ̲鿴״̬־*/
+ /*5: Զ̸(ʽػ)*/
+ /*6: Զ̷Խ*/
+ /*7: ԶԤ*/
+ /*8: Զϴ*/
+ /*9: Զ̿ƣ*/
+ /*10: Զ̿ƴ*/
+ /*11: Զ̲鿴 */
+ /*12: Զ̹ģIP camera */
+ /*13: Զ̹ػ/ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwNetPreviewRight; /* Զ̿Ԥͨǰ˳У0xffffffffΪЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwLocalRecordRight; /* ؿ¼ͨǰ˳У0xffffffffΪЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwNetRecordRight; /* Զ̿¼ͨǰ˳У0xffffffffΪЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwLocalPlaybackRight; /* ؿԻطŵͨǰ˳У0xffffffffΪЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwNetPlaybackRight; /* Զ̿Իطŵͨǰ˳У0xffffffffΪЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwLocalPTZRight; /* ؿPTZͨǰ˳У0xffffffffΪЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwNetPTZRight; /* Զ̿PTZͨǰ˳У0xffffffffΪЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwLocalBackupRight; /* رȨͨǰ˳У0xffffffffΪЧ*/
+ public NET_DVR_IPADDR struUserIP; /* ûIPַ(Ϊ0ʱʾκεַ) */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr; /* ַ */
+ public byte byPriority; /* ȼ0xff-ޣ0--ͣ1--У2-- */
+ /* ޡʾ֧ȼ
+ ͡ĬȨ:غԶ̻ط,غԶ̲鿴־״̬,غԶ̹ػ/
+ СغԶ̨̿,غԶֶ¼,غԶ̻ط,ԽԶԤر,/Զ̹ػ/
+ ߡԱ */
+ public byte byAlarmOnRight; // ڲȨ 1-Ȩޣ0-Ȩ
+ public byte byAlarmOffRight; // ڳȨ 1-Ȩޣ0-Ȩ
+ public byte byBypassRight; // ·Ȩ 1-Ȩޣ0-Ȩ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 118, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //û(ӽṹ)(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_USER_INFO_V30
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalRight;/* Ȩ */
+ /*0: ؿ̨*/
+ /*1: ֶ¼*/
+ /*2: ػط*/
+ /*3: ò*/
+ /*4: ز鿴״̬־*/
+ /*5: ظ(ʽػ)*/
+ /*6: ز鿴 */
+ /*7: عģIP camera */
+ /*8: ر */
+ /*9: عػ/ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRemoteRight;/* ԶȨ */
+ /*0: Զ̨̿*/
+ /*1: Զֶ¼*/
+ /*2: Զ̻ط */
+ /*3: Զò*/
+ /*4: Զ̲鿴״̬־*/
+ /*5: Զ̸(ʽػ)*/
+ /*6: Զ̷Խ*/
+ /*7: ԶԤ*/
+ /*8: Զϴ*/
+ /*9: Զ̿ƣ*/
+ /*10: Զ̿ƴ*/
+ /*11: Զ̲鿴 */
+ /*12: Զ̹ģIP camera */
+ /*13: Զ̹ػ/ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byNetPreviewRight;/* Զ̿Ԥͨ 0-Ȩޣ1-Ȩ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalPlaybackRight;/* ؿԻطŵͨ 0-Ȩޣ1-Ȩ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byNetPlaybackRight;/* Զ̿Իطŵͨ 0-Ȩޣ1-Ȩ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalRecordRight;/* ؿ¼ͨ 0-Ȩޣ1-Ȩ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byNetRecordRight;/* Զ̿¼ͨ 0-Ȩޣ1-Ȩ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalPTZRight;/* ؿPTZͨ 0-Ȩޣ1-Ȩ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byNetPTZRight;/* Զ̿PTZͨ 0-Ȩޣ1-Ȩ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalBackupRight;/* رȨͨ 0-Ȩޣ1-Ȩ*/
+ public NET_DVR_IPADDR struUserIP;/* ûIPַ(Ϊ0ʱʾκεַ) */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr;/* ַ */
+ public byte byPriority;/* ȼ0xff-ޣ0--ͣ1--У2-- */
+ /*
+ ޡʾ֧ȼ
+ ͡ĬȨ:غԶ̻ط,غԶ̲鿴־״̬,غԶ̹ػ/
+ СغԶ̨̿,غԶֶ¼,غԶ̻ط,ԽԶԤ
+ ر,/Զ̹ػ/
+ ߡԱ
+ */
+ public byte byAlarmOnRight; // ڲȨ
+ public byte byAlarmOffRight; // ڳȨ
+ public byte byBypassRight; // ·Ȩ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 14, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //û(SDK_V15չ)(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_USER_INFO_EX
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwLocalRight;/* Ȩ */
+ /*0: ؿ̨*/
+ /*1: ֶ¼*/
+ /*2: ػط*/
+ /*3: ò*/
+ /*4: ز鿴״̬־*/
+ /*5: ظ(ʽػ)*/
+ public uint dwLocalPlaybackRight;/* ؿԻطŵͨ bit0 -- channel 1*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRemoteRight;/* Ȩ */
+ /*0: Զ̨̿*/
+ /*1: Զֶ¼*/
+ /*2: Զ̻ط */
+ /*3: Զò*/
+ /*4: Զ̲鿴״̬־*/
+ /*5: Զ̸(ʽػ)*/
+ /*6: Զ̷Խ*/
+ /*7: ԶԤ*/
+ /*8: Զϴ*/
+ /*9: Զ̿ƣ*/
+ /*10: Զ̿ƴ*/
+ public uint dwNetPreviewRight;/* Զ̿Ԥͨ bit0 -- channel 1*/
+ public uint dwNetPlaybackRight;/* Զ̿Իطŵͨ bit0 -- channel 1*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sUserIP;/* ûIPַ(Ϊ0ʱʾκεַ) */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr;/* ַ */
+ }
+
+ //û(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_USER_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwLocalRight;/* Ȩ */
+ /*0: ؿ̨*/
+ /*1: ֶ¼*/
+ /*2: ػط*/
+ /*3: ò*/
+ /*4: ز鿴״̬־*/
+ /*5: ظ(ʽػ)*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RIGHT, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRemoteRight;/* Ȩ */
+ /*0: Զ̨̿*/
+ /*1: Զֶ¼*/
+ /*2: Զ̻ط */
+ /*3: Զò*/
+ /*4: Զ̲鿴״̬־*/
+ /*5: Զ̸(ʽػ)*/
+ /*6: Զ̷Խ*/
+ /*7: ԶԤ*/
+ /*8: Զϴ*/
+ /*9: Զ̿ƣ*/
+ /*10: Զ̿ƴ*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sUserIP;/* ûIPַ(Ϊ0ʱʾκεַ) */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr;/* ַ */
+ }
+
+ //DVRû(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_USER_V40
+ {
+ public uint dwSize; //ṹС
+ public uint dwMaxUserNum; //豸ֵ֧û-ֻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_USERNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_USER_INFO_V40[] struUser; /* û */
+ }
+
+ //DVRû(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_USER_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_USERNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_USER_INFO_V30[] struUser;
+ }
+
+ //DVRû(SDK_V15չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_USER_EX
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_USERNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_USER_INFO_EX[] struUser;
+ }
+
+ //DVRû
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_USER
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_USERNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_USER_INFO[] struUser;
+ }
+
+ //쳣չṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EXCEPTION_V40
+ {
+ public uint dwSize ; //ṹС
+ public uint dwMaxGroupNum ; //豸ֵ֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EXCEPTIONNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_HANDLEEXCEPTION_V41[] struExceptionHandle;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //DVR쳣(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EXCEPTION_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EXCEPTIONNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_HANDLEEXCEPTION_V30[] struExceptionHandleType;
+ /*0-,1- Ӳ̳,2-߶,3-IP ַͻ, 4-Ƿ, 5-/Ƶʽƥ, 6-Ƶź쳣, 7-¼쳣*/
+ }
+
+ //DVR쳣
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EXCEPTION
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EXCEPTIONNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_HANDLEEXCEPTION[] struExceptionHandleType;
+ /*0-,1- Ӳ̳,2-߶,3-IP ַͻ,4-Ƿ, 5-/Ƶʽƥ, 6-Ƶź쳣*/
+ }
+
+ //ͨ״̬(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHANNELSTATE_V30
+ {
+ public byte byRecordStatic;//ͨǷ¼,0-¼,1-¼
+ public byte bySignalStatic;//ӵź״̬,0-,1-źŶʧ
+ public byte byHardwareStatic;//ͨӲ״̬,0-,1-쳣,DSP
+ public byte byRes1;//
+ public uint dwBitRate;//ʵ
+ public uint dwLinkNum;//ͻӵĸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LINK, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPADDR[] struClientIP;//ͻ˵IPַ
+ public uint dwIPLinkNum;//ͨΪIP룬ôʾIP뵱ǰ
+ public byte byExceedMaxLink; // Ƿ˵·6· 0 - δ, 1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwChannelNo; //ǰͨţ0xffffffffʾЧ
+
+ public void Init()
+ {
+ struClientIP = new NET_DVR_IPADDR[MAX_LINK];
+
+ for (int i = 0; i < MAX_LINK; i++)
+ {
+ struClientIP[i].Init();
+ }
+ byRes = new byte[12];
+ }
+ }
+
+ //ͨ״̬
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHANNELSTATE
+ {
+ public byte byRecordStatic;//ͨǷ¼,0-¼,1-¼
+ public byte bySignalStatic;//ӵź״̬,0-,1-źŶʧ
+ public byte byHardwareStatic;//ͨӲ״̬,0-,1-쳣,DSP
+ public byte reservedData;//
+ public uint dwBitRate;//ʵ
+ public uint dwLinkNum;//ͻӵĸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LINK, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwClientIP;//ͻ˵IPַ
+ }
+
+ //Ӳ״̬
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISKSTATE
+ {
+ public uint dwVolume;//Ӳ̵
+ public uint dwFreeSpace;//Ӳ̵ʣռ
+ public uint dwHardDiskStatic;//Ӳ̵״̬,0-,1-,2-
+ }
+
+ //豸״̬չṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WORKSTATE_V40
+ {
+ public uint dwSize ; //ṹС
+ public uint dwDeviceStatic; //豸״̬,0-,1-CPUռ̫,85%,2-Ӳ,紮
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DISKSTATE[] struHardDiskStatic; //Ӳ״̬,һֻܻȡ33ӲϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CHANNELSTATE_V30[] struChanStatic;//ͨ״̬ǰ˳
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMIN_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwHasAlarmInStatic; //бıڣֵʾ±ֵ˳УֵΪ0xffffffffʱǰֵЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwHasAlarmOutStatic; //бıڣֵʾ±ֵ˳УֵΪ0xffffffffʱǰֵЧ
+ public uint dwLocalDisplay; //ʾ״̬,0-,1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_AUDIO_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAudioInChanStatus; //λʾͨ״̬ 0-δʹã1-ʹУ0λʾ1ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 126, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_GETWORKSTATE_COND
+ {
+ public uint dwSize ; //ṹ峤
+ public byte byFindHardByCond; /*0-ȫ(һֻܲ33)ʱdwFindHardStatusNumЧ*/
+ public byte byFindChanByCond ; /*0-ȫͨʱdwFindChanNumЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM_V30, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwFindHardStatus ; /*ҪҵӲ̺ţֵʾֵ˳У 0xffffffffΪЧ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwFindChanNo; /*Ҫҵͨţֵʾֵ˳У 0xffffffffΪЧ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //DVR״̬(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WORKSTATE_V30
+ {
+ public uint dwDeviceStatic;//豸״̬,0-,1-CPUռ̫,85%,2-Ӳ,紮
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DISKSTATE[] struHardDiskStatic;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CHANNELSTATE_V30[] struChanStatic;//ͨ״̬
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMIN_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmInStatic;//˿ڵ״̬,0-ûб,1-б
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmOutStatic;//˿ڵ״̬,0-û,1-б
+ public uint dwLocalDisplay;//ʾ״̬,0-,1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_AUDIO_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAudioChanStatus;//ʾͨ״̬ 0-δʹã1-ʹ, 0xffЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void Init()
+ {
+ struHardDiskStatic = new NET_DVR_DISKSTATE[MAX_DISKNUM_V30];
+ struChanStatic = new NET_DVR_CHANNELSTATE_V30[MAX_CHANNUM_V30];
+ for (int i = 0; i < MAX_CHANNUM_V30; i++)
+ {
+ struChanStatic[i].Init();
+ }
+ byAlarmInStatic = new byte[MAX_ALARMOUT_V30];
+ byAlarmOutStatic = new byte[MAX_ALARMOUT_V30];
+ byAudioChanStatus = new byte[MAX_AUDIO_V30];
+ byRes = new byte[10];
+ }
+ }
+
+ //DVR״̬
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WORKSTATE
+ {
+ public uint dwDeviceStatic;//豸״̬,0-,1-CPUռ̫,85%,2-Ӳ,紮
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DISKSTATE[] struHardDiskStatic;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CHANNELSTATE[] struChanStatic;//ͨ״̬
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMIN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmInStatic;//˿ڵ״̬,0-ûб,1-б
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmOutStatic;//˿ڵ״̬,0-û,1-б
+ public uint dwLocalDisplay;//ʾ״̬,0-,1-
+
+ public void Init()
+ {
+ struHardDiskStatic = new NET_DVR_DISKSTATE[MAX_DISKNUM];
+ struChanStatic = new NET_DVR_CHANNELSTATE[MAX_CHANNUM];
+ byAlarmInStatic = new byte[MAX_ALARMIN];
+ byAlarmOutStatic = new byte[MAX_ALARMOUT];
+ }
+ }
+
+ //־Ϣ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_LOG_V30
+ {
+ public NET_DVR_TIME strLogTime;
+ public uint dwMajorType;// 1-; 2-쳣; 3-; 0xff-ȫ
+ public uint dwMinorType;// 0-ȫ;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPanelUser;//û
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sNetUser;//û
+ public NET_DVR_IPADDR struRemoteHostAddr;//Զַ
+ public uint dwParaType;//
+ public uint dwChannel;//ͨ
+ public uint dwDiskNumber;//Ӳ̺
+ public uint dwAlarmInPort;//˿
+ public uint dwAlarmOutPort;//˿
+ public uint dwInfoLen;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = LOG_INFO_LEN)]
+ public string sInfo;
+ }
+
+ //־Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_LOG
+ {
+ public NET_DVR_TIME strLogTime;
+ public uint dwMajorType;// 1-; 2-쳣; 3-; 0xff-ȫ
+ public uint dwMinorType;// 0-ȫ;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPanelUser;//û
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sNetUser;//û
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sRemoteHostAddr;//Զַ
+ public uint dwParaType;//
+ public uint dwChannel;//ͨ
+ public uint dwDiskNumber;//Ӳ̺
+ public uint dwAlarmInPort;//˿
+ public uint dwAlarmOutPort;//˿
+ }
+
+ /************************־ begin************************************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMHOST_SEARCH_LOG_PARAM
+ {
+ public ushort wMajorType; //
+ public ushort wMinorType; //
+ public NET_DVR_TIME struStartTime; // ʼʱ
+ public NET_DVR_TIME struEndTime; // ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMHOST_LOG_RET
+ {
+ public NET_DVR_TIME struLogTime; // ־ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; // û
+ public NET_DVR_IPADDR struIPAddr; // IPַ
+ public ushort wMajorType; //
+ public ushort wMinorType; //
+ public ushort wParam; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwInfoLen; // Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = LOG_INFO_LEN)]
+ public string sInfo; // Ϣ
+ }
+ /*************************־ end***********************************************/
+
+ //״̬(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMOUTSTATUS_V30
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMOUT_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] Output;
+
+ public void Init()
+ {
+ Output = new byte[MAX_ALARMOUT_V30];
+ }
+ }
+
+ //״̬
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMOUTSTATUS
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] Output;
+ }
+
+ //ATMר
+ /****************************ATM(begin)***************************/
+ public const int NCR = 0;
+ public const int DIEBOLD = 1;
+ public const int WINCOR_NIXDORF = 2;
+ public const int SIEMENS = 3;
+ public const int OLIVETTI = 4;
+ public const int FUJITSU = 5;
+ public const int HITACHI = 6;
+ public const int SMI = 7;
+ public const int IBM = 8;
+ public const int BULL = 9;
+ public const int YiHua = 10;
+ public const int LiDe = 11;
+ public const int GDYT = 12;
+ public const int Mini_Banl = 13;
+ public const int GuangLi = 14;
+ public const int DongXin = 15;
+ public const int ChenTong = 16;
+ public const int NanTian = 17;
+ public const int XiaoXing = 18;
+ public const int GZYY = 19;
+ public const int QHTLT = 20;
+ public const int DRS918 = 21;
+ public const int KALATEL = 22;
+ public const int NCR_2 = 23;
+ public const int NXS = 24;
+
+ //Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_TRADEINFO
+ {
+ public ushort m_Year;
+ public ushort m_Month;
+ public ushort m_Day;
+ public ushort m_Hour;
+ public ushort m_Minute;
+ public ushort m_Second;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] DeviceName;//豸
+ public uint dwChannelNumer;//ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] CardNumber;//
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 12)]
+ public string cTradeType;//
+ public uint dwCash;//
+ }
+
+ /*֡ʽ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FRAMETYPECODE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] code;/* */
+ }
+
+ //ATM
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_FRAMEFORMAT
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sATMIP;/* ATM IPַ */
+ public uint dwATMType;/* ATM */
+ public uint dwInputMode;/* 뷽ʽ 0- 1- 2-ֱ 3-ATM*/
+ public uint dwFrameSignBeginPos;/* ı־λʼλ*/
+ public uint dwFrameSignLength;/* ı־λij */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFrameSignContent;/* ı־λ */
+ public uint dwCardLengthInfoBeginPos;/* ųϢʼλ */
+ public uint dwCardLengthInfoLength;/* ųϢij */
+ public uint dwCardNumberInfoBeginPos;/* Ϣʼλ */
+ public uint dwCardNumberInfoLength;/* Ϣij */
+ public uint dwBusinessTypeBeginPos;/* ͵ʼλ */
+ public uint dwBusinessTypeLength;/* ͵ij */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_FRAMETYPECODE[] frameTypeCode;/* */
+ }
+
+ //SDK_V31 ATM
+ /**/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FILTER
+ {
+ public byte byEnable;/*0,;1,*/
+ public byte byMode;/*0,ASCII;1,HEX*/
+ public byte byFrameBeginPos;// ı־λʼλ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 1, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFilterText;/*ַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*ʼʶ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IDENTIFICAT
+ {
+ public byte byStartMode;/*0,ASCII;1,HEX*/
+ public byte byEndMode;/*0,ASCII;1,HEX*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_FRAMETYPECODE struStartCode;/*ʼַ*/
+ public NET_DVR_FRAMETYPECODE struEndCode;/*ַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ /*Ϣλ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PACKAGE_LOCATION
+ {
+ public byte byOffsetMode;/*0,token;1,fix*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwOffsetPos;/*modeΪ1ʱʹ*/
+ public NET_DVR_FRAMETYPECODE struTokenCode;/*־λ*/
+ public byte byMultiplierValue;/*־λٴγ*/
+ public byte byEternOffset;/*ӵƫ*/
+ public byte byCodeMode;/*0,ASCII;1,HEX*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*Ϣ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PACKAGE_LENGTH
+ {
+ public byte byLengthMode;/*ͣ0,variable;1,fix;2,get from package(ÿųʹ)*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwFixLength;/*modeΪ1ʱʹ*/
+ public uint dwMaxLength;
+ public uint dwMinLength;
+ public byte byEndMode;/*ս0,ASCII;1,HEX*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_DVR_FRAMETYPECODE struEndCode;/*ս*/
+ public uint dwLengthPos;/*lengthModeΪ2ʱʹãųڱеλ*/
+ public uint dwLengthLen;/*lengthModeΪ2ʱʹãųȵij*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+ /*OSD ӵλ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OSD_POSITION
+ {
+ public byte byPositionMode;/*ӷ2֣0ʾ1Custom*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwPos_x;/*x꣬positionmodeΪCustomʱʹ*/
+ public uint dwPos_y;/*y꣬positionmodeΪCustomʱʹ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*ʾʽ*/
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_DATE_FORMAT
+ {
+ public byte byItem1;/*Month,0.mm;1.mmm;2.mmmm*/
+ public byte byItem2;/*Day,0.dd;*/
+ public byte byItem3;/*Year,0.yy;1.yyyy*/
+ public byte byDateForm;/*0~53item*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 4)]
+ public string chSeprator;/*ָ*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 4)]
+ public string chDisplaySeprator;/*ʾָ*/
+ public byte byDisplayForm;/*0~53item*///lili mode by lili
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 27, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ /*ʱʾʽ*/
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVRT_TIME_FORMAT
+ {
+ public byte byTimeForm;/*1. HH MM SS;0. HH MM*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byHourMode;/*0,12;1,24*/ //lili mode
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 4)]
+ public string chSeprator;/*ķָʱû*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 4)]
+ public string chDisplaySeprator;/*ʾָ*/
+ public byte byDisplayForm;/*0~53item*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ public byte byDisplayHourMode;/*0,12;1,24*/ //lili mode
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 19, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes4;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OVERLAY_CHANNEL
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byChannel;/*ӵͨ*/
+ public uint dwDelayTime;/*ʱʱ*/
+ public byte byEnableDelayTime;/*Ƿõʱ˿ʱ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_PACKAGE_ACTION
+ {
+ public NET_DVR_PACKAGE_LOCATION struPackageLocation;
+ public NET_DVR_OSD_POSITION struOsdPosition;
+ public NET_DVR_FRAMETYPECODE struActionCode;/*͵ȶӦ*/
+ public NET_DVR_FRAMETYPECODE struPreCode;/*ַǰַ*/
+ public byte byActionCodeMode;/*͵ȶӦ0,ASCII;1,HEX*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_PACKAGE_DATE
+ {
+ public NET_DVR_PACKAGE_LOCATION struPackageLocation;
+ public NET_DVR_DATE_FORMAT struDateForm;
+ public NET_DVR_OSD_POSITION struOsdPosition;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_PACKAGE_TIME
+ {
+ public NET_DVR_PACKAGE_LOCATION location;
+ public NET_DVRT_TIME_FORMAT struTimeForm;
+ public NET_DVR_OSD_POSITION struOsdPosition;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_PACKAGE_OTHERS
+ {
+ public NET_DVR_PACKAGE_LOCATION struPackageLocation;
+ public NET_DVR_PACKAGE_LENGTH struPackageLength;
+ public NET_DVR_OSD_POSITION struOsdPosition;
+ public NET_DVR_FRAMETYPECODE struPreCode;/*ַǰַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ //ûԶЭ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_USER_DEFINE_PROTOCOL
+ {
+ public NET_DVR_IDENTIFICAT struIdentification; //ı־
+ public NET_DVR_FILTER struFilter; //ݰ
+ public NET_DVR_ATM_PACKAGE_OTHERS struCardNoPara; //ӿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ACTION_TYPE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ATM_PACKAGE_ACTION[] struTradeActionPara; //ӽΪ 0-9 ζӦInCard OutCard OverLay SetTime GetStatus Query WithDraw Deposit ChanPass Transfer
+ public NET_DVR_ATM_PACKAGE_OTHERS struAmountPara; //ӽ
+ public NET_DVR_ATM_PACKAGE_OTHERS struSerialNoPara; //ӽ
+ public NET_DVR_OVERLAY_CHANNEL struOverlayChan; //ͨ
+ public NET_DVR_ATM_PACKAGE_DATE struRes1; //ڣ
+ public NET_DVR_ATM_PACKAGE_TIME struRes2; //ʱ䣬
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 124, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_FRAMEFORMAT_V30
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; /*Ƿ0,;1,*/
+ public byte byInputMode; /**뷽ʽ:0-1Э顢2-ڼ3-Э*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 34, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //ֽ
+ public NET_DVR_IPADDR struAtmIp; /*ATM IP ʱʹ */
+ public ushort wAtmPort; /* Э鷽ʽʱʹ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ public uint dwAtmType; /*ATMЭͣNET_DVR_ATM_PROTOCOLṹлȡΪԶʱʹûԶЭ*/
+ public NET_DVR_ATM_USER_DEFINE_PROTOCOL struAtmUserDefineProtocol; //ûԶЭ飬ATMΪԶʱҪʹøö
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+ //ЭϢݽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_PROTO_TYPE
+ {
+ public uint dwAtmType; //ATMЭͣͬʱΪ ATM еdwAtmType ԶʱΪ1025
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = ATM_DESC_LEN)]
+ public string chDesc; //ATMЭ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_ATM_PROTO_LIST
+ {
+ public uint dwAtmProtoNum;/*Эбĸ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ATM_PROTOCOL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ATM_PROTO_TYPE[] struAtmProtoType;/*ЭбϢ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATM_PROTOCOL
+ {
+ public uint dwSize;
+ public NET_DVR_ATM_PROTO_LIST struNetListenList; // Э
+ public NET_DVR_ATM_PROTO_LIST struSerialListenList; //ڼЭ
+ public NET_DVR_ATM_PROTO_LIST struNetProtoList; //Э
+ public NET_DVR_ATM_PROTO_LIST struSerialProtoList; //Э
+ public NET_DVR_ATM_PROTO_TYPE struCustomProto; //ԶЭ
+ }
+
+ /*****************************DS-6001D/F(begin)***************************/
+ //DS-6001D Decoder
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECODERINFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEncoderIP;//豸ӵķIP
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEncoderUser;//豸ӵķû
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEncoderPasswd;//豸ӵķ
+ public byte bySendMode;//豸ӷģʽ
+ public byte byEncoderChannel;//豸ӵķͨ
+ public ushort wEncoderPort;//豸ӵķĶ˿ں
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] reservedData;//
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECODERSTATE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEncoderIP;//豸ӵķIP
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEncoderUser;//豸ӵķû
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEncoderPasswd;//豸ӵķ
+ public byte byEncoderChannel;//豸ӵķͨ
+ public byte bySendMode;//豸ӵķģʽ
+ public ushort wEncoderPort;//豸ӵķĶ˿ں
+ public uint dwConnectState;//豸ӷ״̬
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] reservedData;//
+ }
+
+ /*豸붨*/
+ public const int NET_DEC_STARTDEC = 1;
+ public const int NET_DEC_STOPDEC = 2;
+ public const int NET_DEC_STOPCYCLE = 3;
+ public const int NET_DEC_CONTINUECYCLE = 4;
+
+ /*ӵͨ*/
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_DECCHANINFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDVRIP;/* DVR IPַ */
+ public ushort wDVRPort;/* ˿ں */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ public byte byChannel;/* ͨ */
+ public byte byLinkMode;/* ģʽ */
+ public byte byLinkType;/* 0 1 */
+ }
+
+ /*ÿͨ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECINFO
+ {
+ public byte byPoolChans;/*ÿ·ͨϵѭͨ, 4ͨ 0ʾûн*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DECPOOLNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DECCHANINFO[] struchanConInfo;
+ public byte byEnablePoll;/*ǷѲ 0- 1-*/
+ public byte byPoolTime;/*Ѳʱ 0- 1-10 2-15 3-20 4-30 5-45 6-1 7-2 8-5 */
+ }
+
+ /*豸*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECCFG
+ {
+ public uint dwSize;
+ public uint dwDecChanNum;/*ͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DECNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DECINFO[] struDecInfo;
+ }
+
+ //2005-08-01
+ /* 豸ͨ */
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_PORTINFO
+ {
+ public uint dwEnableTransPort;/* Ƿͨ 0 1*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDecoderIP;/* DVR IPַ */
+ public ushort wDecoderPort;/* ˿ں */
+ public ushort wDVRTransPort;/* ǰDVRǴ485/2321ʾ232,2ʾ485 */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 4)]
+ public string cReserve;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PORTCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TRANSPARENTNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PORTINFO[] struTransPortInfo;/* 0ʾ232 1ʾ485 */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct bytime
+ {
+ public uint dwChannel;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/*Ƶû*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ public NET_DVR_TIME struStartTime;/* ʱطŵĿʼʱ */
+ public NET_DVR_TIME struStopTime;/* ʱطŵĽʱ */
+ }
+
+ /* ļط */
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_PLAYREMOTEFILE
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDecoderIP;/* DVR IPַ */
+ public ushort wDecoderPort;/* ˿ں */
+ public ushort wLoadMode;/* طģʽ 1 2ʱ */
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct mode_size
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ /*[FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFile;/* طŵļ */
+ /*[FieldOffsetAttribute(0)]
+ public bytime bytime;
+ * */
+ }
+ }
+
+
+
+ /*ǰ豸״̬*/
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_DECCHANSTATUS
+ {
+ public uint dwWorkType;/*ʽ1Ѳ2̬ӽ롢3ļط 4ʱط*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDVRIP;/*ӵ豸ip*/
+ public ushort wDVRPort;/*Ӷ˿ں*/
+ public byte byChannel;/* ͨ */
+ public byte byLinkMode;/* ģʽ */
+ public uint dwLinkType;/* 0 1*/
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct objectInfo
+ {
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct userInfo
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/*Ƶû*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 52)]
+ public string cReserve;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct fileInfo
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] fileName;
+ }
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct timeInfo
+ {
+ public uint dwChannel;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/*Ƶû*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ public NET_DVR_TIME struStartTime;/* ʱطŵĿʼʱ */
+ public NET_DVR_TIME struStopTime;/* ʱطŵĽʱ */
+ }
+ }
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECSTATUS
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DECNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DECCHANSTATUS[] struTransPortInfo;
+ }
+ /*****************************DS-6001D/F(end)***************************/
+
+ //ַ(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_SHOWSTRINGINFO
+ {
+ public ushort wShowString;// ԤͼǷʾַ,0-ʾ,1-ʾ С704*576,ַĴСΪ32*32
+ public ushort wStringSize;/* ַijȣܴ44ַ */
+ public ushort wShowStringTopLeftX;/* ַʾλõx */
+ public ushort wShowStringTopLeftY;/* ַʾλõy */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 44)]
+ public string sString;/* Ҫʾַ */
+ }
+
+ //ַ(9000չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SHOWSTRING_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_STRINGNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SHOWSTRINGINFO[] struStringInfo;/* Ҫʾַ */
+ }
+
+ //ַչ(8ַ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SHOWSTRING_EX
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_STRINGNUM_EX, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SHOWSTRINGINFO[] struStringInfo;/* Ҫʾַ */
+ }
+
+ //ַ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SHOWSTRING
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_STRINGNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SHOWSTRINGINFO[] struStringInfo;/* Ҫʾַ */
+ }
+
+ /****************************DS9000ṹ(begin)******************************/
+ /*EMAILṹ*/
+ //ԭṹв
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struReceiver
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sName;/* ռ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EMAIL_ADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAddress;/* ռ˵ַ */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EMAILCFG_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAccount;/* ˺*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EMAIL_PWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struSender
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sName;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EMAIL_ADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAddress;/* ˵ַ */
+ }
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EMAIL_ADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSmtpServer;/* smtp */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EMAIL_ADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPop3Server;/* pop3 */
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.Struct)]
+ public struReceiver[] struStringInfo;/* 3ռ */
+
+ public byte byAttachment;/* Ƿ */
+ public byte bySmtpServerVerify;/* ͷҪ֤ */
+ public byte byMailInterval;/* mail interval */
+ public byte byEnableSSL;//sslǷ9000_1.1
+ public ushort wSmtpPort;//gmail465ͨΪ25
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 74, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ /*DVRʵѲݽṹ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CRUISE_PARA
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CRUISE_MAX_PRESET_NUMS, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPresetNo;/* Ԥõ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CRUISE_MAX_PRESET_NUMS, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCruiseSpeed;/* Ѳٶ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CRUISE_MAX_PRESET_NUMS, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wDwellTime;/* ͣʱ */
+ public byte byEnableThisCruise;/* Ƿ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+ /****************************DS9000ṹ(end)******************************/
+ //ʱ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TIMEPOINT
+ {
+ public uint dwMonth;// 0-11ʾ1-12
+ public uint dwWeekNo;//ڼ 01 12 23 34 4һ
+ public uint dwWeekDate;//ڼ 0 1һ 2ڶ 3 4 5 6
+ public uint dwHour;//Сʱ ʼʱ023 ʱ123
+ public uint dwMin;// 059
+ }
+
+ //ʱ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ZONEANDDST
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+ public uint dwEnableDST;//Ƿʱ 0 1
+ public byte byDSTBias;//ʱƫֵ30min, 60min, 90min, 120min, ԷӼƣԭʼֵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_DVR_TIMEPOINT struBeginPoint;//ʱƿʼʱ
+ public NET_DVR_TIMEPOINT struEndPoint;//ʱֹͣʱ
+ }
+
+ //ͼƬ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_JPEGPARA
+ {
+ /*ע⣺ͼѹֱΪVGAʱ֧0=CIF, 1=QCIF, 2=D1ץͼ
+ ֱΪ3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA,7=XVGA, 8=HD900p
+ ֵ֧ǰֱʵץͼ*/
+ public ushort wPicSize;/* 0=CIF, 1=QCIF, 2=D1 3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA*/
+ public ushort wPicQuality;/* ͼƬϵ 0- 1-Ϻ 2-һ */
+ }
+
+ /* aux video out parameter */
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AUXOUTCFG
+ {
+ public uint dwSize;
+ public uint dwAlarmOutChan;/* ѡͨлʱ䣺1ͨ: 0:/1:1/2:2/3:3/4:4 */
+ public uint dwAlarmChanSwitchTime;/* :1 - 10:10 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_AUXOUT, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwAuxSwitchTime;/* лʱ: 0-л,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_AUXOUT * MAX_WINDOW, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAuxOrder;/* Ԥ˳, 0xffʾӦĴڲԤ */
+ }
+
+ //ntp
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NTPPARA
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sNTPServer;/* Domain Name or IP addr of NTP server */
+ public ushort wInterval;/* adjust time interval(hours) */
+ public byte byEnableNTP;/* enable NPT client 0-no1-yes*/
+ public byte cTimeDifferenceH;/* ʱʱ Сʱƫ-12 ... +13 */
+ public byte cTimeDifferenceM;/* ʱʱ ƫ0, 30, 45*/
+ public byte res1;
+ public ushort wNtpPort; /* ntp server port 9000 豸ĬΪ123*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] res2;
+ }
+
+ //ddns
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DDNSPARA
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUsername;/* DDNS˺û/ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDomainName; /* */
+ public byte byEnableDDNS;/*ǷӦ 0-1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DDNSPARA_EX
+ {
+ public byte byHostIndex;/* 0-Hikvision DNS 1Dyndns 2PeanutHull()*/
+ public byte byEnableDDNS;/*ǷӦDDNS 0-1-*/
+ public ushort wDDNSPort;/* DDNS˿ں */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUsername;/* DDNSû*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* DDNS */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDomainName;/* 豸䱸ַ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] sServerName;/* DDNS ӦķַIPַ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //9000չ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struDDNS
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUsername;/* DDNS˺û*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDomainName;/* 豸䱸ַ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] sServerName;/* DDNSЭӦķַIPַ */
+ public ushort wDDNSPort;/* ˿ں */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DDNSPARA_V30
+ {
+ public byte byEnableDDNS;
+ public byte byHostIndex;/* 0-Hikvision DNS() 1Dyndns 2PeanutHull()*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DDNS_NUMS, ArraySubType = UnmanagedType.Struct)]
+ public struDDNS[] struDDNS;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //email
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EMAILPARA
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUsername;/* ʼ˺/ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSmtpServer;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPop3Server;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sMailAddr;/* email */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sEventMailAddr1;/* ϴ/쳣ȵemail */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] sEventMailAddr2;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_NETAPPCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDNSIp; /* DNSַ */
+ public NET_DVR_NTPPARA struNtpClientParam;/* NTP */
+ public NET_DVR_DDNSPARA struDDNSClientParam;/* DDNS */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 464, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;/* */
+ }
+
+ //nfsṹ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_SINGLE_NFS
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sNfsHostIPAddr;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PATHNAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sNfsDirectory;
+
+ public void Init()
+ {
+ this.sNfsDirectory = new byte[PATHNAME_LEN];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NFSCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NFS_DISK, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SINGLE_NFS[] struNfsDiskParam;
+
+ public void Init()
+ {
+ this.struNfsDiskParam = new NET_DVR_SINGLE_NFS[MAX_NFS_DISK];
+
+ for (int i = 0; i < MAX_NFS_DISK; i++)
+ {
+ struNfsDiskParam[i].Init();
+ }
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ISCSI_CFG
+ {
+ public uint dwSize; // ṹС
+ public ushort wVrmPort; // VRM ˿
+ public byte byEnable; // Ƿ ISCSI洢
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 69, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ public NET_DVR_IPADDR struVrmAddr; // VRM ipַ 16λ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
+ public string chNvtIndexCode; //nvt index Code
+ }
+
+ //Ѳ(HIK IPר)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CRUISE_POINT
+ {
+ public byte PresetNum;//Ԥõ
+ public byte Dwell;//ͣʱ
+ public byte Speed;//ٶ
+ public byte Reserve;//
+
+ public void Init()
+ {
+ PresetNum = 0;
+ Dwell = 0;
+ Speed = 0;
+ Reserve = 0;
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CRUISE_RET
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CRUISE_POINT[] struCruisePoint;//֧32Ѳ
+
+ public void Init()
+ {
+ struCruisePoint = new NET_DVR_CRUISE_POINT[32];
+ for (int i = 0; i < 32; i++)
+ {
+ struCruisePoint[i].Init();
+ }
+ }
+ }
+
+ /************************************·(begin)***************************************/
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_NETCFG_OTHER
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sFirstDNSIP;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sSecondDNSIP;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MATRIX_DECINFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDVRIP;/* DVR IPַ */
+ public ushort wDVRPort;/* ˿ں */
+ public byte byChannel;/* ͨ */
+ public byte byTransProtocol;/* Э 0-TCP, 1-UDP */
+ public byte byTransMode;/* ģʽ 0 1*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* ½ʺ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ }
+
+ ///ֹ̬ͣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_DYNAMIC_DEC
+ {
+ public uint dwSize;
+ public NET_DVR_MATRIX_DECINFO struDecChanInfo;/* ̬ͨϢ */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MATRIX_DEC_CHAN_STATUS
+ {
+ public uint dwSize;
+ public uint dwIsLinked;/* ͨ״̬ 0 1 2 3-ڽ */
+ public uint dwStreamCpRate;/* Stream copy rate, X kbits/second */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
+ public string cRes;/* */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MATRIX_DEC_CHAN_INFO
+ {
+ public uint dwSize;
+ public NET_DVR_MATRIX_DECINFO struDecChanInfo;/* ͨϢ */
+ public uint dwDecState;/* 0-̬ 1ѭ 2ʱط 3ļط */
+ public NET_DVR_TIME StartTime;/* ʱطſʼʱ */
+ public NET_DVR_TIME StopTime;/* ʱطֹͣʱ */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string sFileName;/* ļطļ */
+ }
+
+ //ӵͨ 2007-11-05
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_DECCHANINFO
+ {
+ public uint dwEnable;/* Ƿ 0 1*/
+ public NET_DVR_MATRIX_DECINFO struDecChanInfo;/* ѭͨϢ */
+ }
+
+ //2007-11-05 ÿͨ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_LOOP_DECINFO
+ {
+ public uint dwSize;
+ public uint dwPoolTime;/*Ѳʱ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CYCLE_CHAN, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIX_DECCHANINFO[] struchanConInfo;
+ }
+
+ //2007-12-22
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct TTY_CONFIG
+ {
+ public byte baudrate;/* */
+ public byte databits;/* λ */
+ public byte stopbits;/* ֹͣλ */
+ public byte parity;/* żУλ */
+ public byte flowcontrol;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MATRIX_TRAN_CHAN_INFO
+ {
+ public byte byTranChanEnable;/* ǰͨǷ 0ر 1 */
+ /*
+ * ·1485ڣ1232ڶΪͨ,豸ŷ£
+ * 0 RS485
+ * 1 RS232 Console
+ */
+ public byte byLocalSerialDevice;/* Local serial device */
+ /*
+ * Զ̴,һRS232һRS485
+ * 1ʾ232
+ * 2ʾ485
+ */
+ public byte byRemoteSerialDevice;/* Remote output serial device */
+ public byte res1;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sRemoteDevIP;/* Remote Device IP */
+ public ushort wRemoteDevPort;/* Remote Net Communication Port */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] res2;/* */
+ public TTY_CONFIG RemoteSerialDevCfg;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_TRAN_CHAN_CONFIG
+ {
+ public uint dwSize;
+ public byte by232IsDualChan;/* ·232ͨȫ˫ ȡֵ1MAX_SERIAL_NUM */
+ public byte by485IsDualChan;/* ·485ͨȫ˫ ȡֵ1MAX_SERIAL_NUM */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SERIAL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIX_TRAN_CHAN_INFO[] struTranInfo;/*ͬʱֽ֧MAX_SERIAL_NUMͨ*/
+ }
+
+ //2007-12-24 Merry Christmas Eve...
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MATRIX_DEC_REMOTE_PLAY
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sDVRIP;/* DVR IPַ */
+ public ushort wDVRPort;/* ˿ں */
+ public byte byChannel;/* ͨ */
+ public byte byReserve;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ public uint dwPlayMode;/* 0ļ 1ʱ*/
+ public NET_DVR_TIME StartTime;
+ public NET_DVR_TIME StopTime;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string sFileName;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_DEC_REMOTE_PLAY_CONTROL
+ {
+ public uint dwSize;
+ public uint dwPlayCmd;/* ļ*/
+ public uint dwCmdParam;/* */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS
+ {
+ public uint dwSize;
+ public uint dwCurMediaFileLen;/* ǰŵýļ */
+ public uint dwCurMediaFilePosition;/* ǰļIJλ */
+ public uint dwCurMediaFileDuration;/* ǰļʱ */
+ public uint dwCurPlayTime;/* ǰѾŵʱ */
+ public uint dwCurMediaFIleFrames;/* ǰļ֡ */
+ public uint dwCurDataType;/* ǰͣ19-ļͷ20-ݣ 21-Ž־ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 72, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ //2009-4-11 added by likui ·new
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_PASSIVEMODE
+ {
+ public ushort wTransProtol;//Э飬0-TCP, 1-UDP, 2-MCAST
+ public ushort wPassivePort;//UDP˿, TCPʱĬ
+ // char sMcastIP[16]; //TCP,UDPʱЧ, MCASTʱΪಥַ
+ public NET_DVR_IPADDR struMcastIP;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_TRAN_CHAN_INFO_V30
+ {
+ public byte byTranChanEnable;/* ǰͨǷ 0ر 1 */
+ /*
+ * ·1485ڣ1232ڶΪͨ,豸ŷ£
+ * 0 RS485
+ * 1 RS232 Console
+ */
+ public byte byLocalSerialDevice;/* Local serial device */
+ /*
+ * Զ̴,һRS232һRS485
+ * 1ʾ232
+ * 2ʾ485
+ */
+ public byte byRemoteSerialDevice;/* Remote output serial device */
+ public byte byRes1;/* */
+ public NET_DVR_IPADDR struRemoteDevIP;/* Remote Device IP */
+ public ushort wRemoteDevPort;/* Remote Net Communication Port */
+ public byte byIsEstablished;/* ͨɹ־0-ûгɹ1-ɹ */
+ public byte byRes2;/* */
+ public TTY_CONFIG RemoteSerialDevCfg;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUsername;/* 32BYTES */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPassword;/* 16BYTES */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_TRAN_CHAN_CONFIG_V30
+ {
+ public uint dwSize;
+ public byte by232IsDualChan;/* ·232ͨȫ˫ ȡֵ1MAX_SERIAL_NUM */
+ public byte by485IsDualChan;/* ·485ͨȫ˫ ȡֵ1MAX_SERIAL_NUM */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] vyRes;/* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SERIAL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIX_TRAN_CHAN_INFO[] struTranInfo;/*ͬʱֽ֧MAX_SERIAL_NUMͨ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_CHAN_INFO_V30
+ {
+ public uint dwEnable;/* Ƿ 0 1*/
+ public NET_DVR_STREAM_MEDIA_SERVER_CFG streamMediaServerCfg;
+ public NET_DVR_DEV_CHAN_INFO struDevChanInfo;/* ѭͨϢ */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_LOOP_DECINFO_V30
+ {
+ public uint dwSize;
+ public uint dwPoolTime;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CYCLE_CHAN_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIX_CHAN_INFO_V30[] struchanConInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_MATRIX_DEC_CHAN_INFO_V30
+ {
+ public uint dwSize;
+ public NET_DVR_STREAM_MEDIA_SERVER_CFG streamMediaServerCfg;/*ý*/
+ public NET_DVR_DEV_CHAN_INFO struDevChanInfo;/* ͨϢ */
+ public uint dwDecState;/* 0-̬ 1ѭ 2ʱط 3ļط */
+ public NET_DVR_TIME StartTime;/* ʱطſʼʱ */
+ public NET_DVR_TIME StopTime;/* ʱطֹͣʱ */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string sFileName;/* ļطļ */
+ public uint dwGetStreamMode;/*ȡģʽ:1-2-*/
+ public NET_DVR_MATRIX_PASSIVEMODE struPassiveMode;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int MAX_RESOLUTIONNUM = 64; //ֱֵ֧Ŀ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_ABILITY
+ {
+ public uint dwSize;
+ public byte byDecNums;
+ public byte byStartChan;
+ public byte byVGANums;
+ public byte byBNCNums;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8*12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byVGAWindowMode;/*VGAֵ֧Ĵģʽ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byBNCWindowMode;/*BNCֵ֧Ĵģʽ*/
+ public byte byDspNums;
+ public byte byHDMINums;//HDMIʾͨ25ʼ
+ public byte byDVINums;//DVIʾͨ29ʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 13, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RESOLUTIONNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySupportResolution;//öٶ,һֽڴһֱ//֧֣1֧֣0֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4*8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byHDMIWindowMode;//HDMIֵ֧Ĵģʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4*8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDVIWindowMode;//DVIֵ֧Ĵģʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ϴlogoṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISP_LOGOCFG
+ {
+ public uint dwCorordinateX;//ͼƬʾX
+ public uint dwCorordinateY;//ͼƬʾY
+ public ushort wPicWidth; //ͼƬ
+ public ushort wPicHeight; //ͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byFlash;//Ƿ˸1-˸0-˸
+ public byte byTranslucent;//Ƿ1-0-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;//
+ public uint dwLogoSize;//LOGOСBMPļͷ
+ }
+
+ /**/
+ public const int NET_DVR_ENCODER_UNKOWN = 0;/*δ֪ʽ*/
+ public const int NET_DVR_ENCODER_H264 = 1;/*HIK 264*/
+ public const int NET_DVR_ENCODER_S264 = 2;/*Standard H264*/
+ public const int NET_DVR_ENCODER_MPEG4 = 3;/*MPEG4*/
+ public const int NET_DVR_ORIGINALSTREAM = 4;/*Original Stream*/
+ public const int NET_DVR_PICTURE = 5;//*Picture*/
+ public const int NET_DVR_ENCODER_MJPEG = 6;
+ public const int NET_DVR_ECONDER_MPEG2 = 7;
+ /* ʽ */
+ public const int NET_DVR_STREAM_TYPE_UNKOWN = 0;/*δ֪ʽ*/
+ public const int NET_DVR_STREAM_TYPE_HIKPRIVT = 1; /*Զʽ*/
+ public const int NET_DVR_STREAM_TYPE_TS = 7;/* TS */
+ public const int NET_DVR_STREAM_TYPE_PS = 8;/* PS */
+ public const int NET_DVR_STREAM_TYPE_RTP = 9;/* RTP */
+
+ /*ͨ״̬*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_CHAN_STATUS
+ {
+ public byte byDecodeStatus;/*ǰ״̬:0:δ1*/
+ public byte byStreamType;/**/
+ public byte byPacketType;/*ʽ*/
+ public byte byRecvBufUsage;/*ջʹ*/
+ public byte byDecBufUsage;/*뻺ʹ*/
+ public byte byFpsDecV;/*Ƶ֡*/
+ public byte byFpsDecA;/*Ƶ֡*/
+ public byte byCpuLoad;/*DSP CPUʹ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwDecodedV;/*Ƶ֡*/
+ public uint dwDecodedA;/*Ƶ֡*/
+ public ushort wImgW;/*ǰͼС,*/
+ public ushort wImgH; //
+ public byte byVideoFormat;/*Ƶʽ:0-NON,NTSC--1,PAL--2*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public uint dwDecChan; /*ȡȫͨ״̬ʱЧʱ0*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+ /*ʾͨ״̬*/
+ public const int NET_DVR_MAX_DISPREGION = 16; /*ÿʾͨʾĴ*/
+ //VGAֱʣĿǰõǣVGA_THS8200_MODE_XGA_60HZVGA_THS8200_MODE_SXGA_60HZ
+ //
+ public enum VGA_MODE
+ {
+ /*VGA*/
+ VGA_NOT_AVALIABLE,
+ VGA_THS8200_MODE_SVGA_60HZ, //(800*600)
+ VGA_THS8200_MODE_SVGA_75HZ, //(800*600)
+ VGA_THS8200_MODE_XGA_60HZ, //(1024*768)
+ VGA_THS8200_MODE_XGA_75HZ, //(1024*768)
+ VGA_THS8200_MODE_SXGA_60HZ, //(1280*1024)
+ VGA_THS8200_MODE_720P_60HZ, //(1280*720)
+ VGA_THS8200_MODE_1080I_60HZ, //(1920*1080)
+ VGA_THS8200_MODE_1080P_30HZ, //(1920*1080)
+ VGA_THS8200_MODE_UXGA_30HZ, //(1600*1200)
+ /*HDMI*/
+ HDMI_SII9134_MODE_XGA_60HZ, //(1024*768)
+ HDMI_SII9134_MODE_SXGA_60HZ, //(1280*1024)
+ HDMI_SII9134_MODE_SXGA2_60HZ, //(1280*960)
+ HDMI_SII9134_MODE_720P_60HZ, //(1280*720)
+ HDMI_SII9134_MODE_720P_50HZ, //(1280*720)
+ HDMI_SII9134_MODE_1080I_60HZ, //(1920*1080)
+ HDMI_SII9134_MODE_1080I_50HZ, //(1920*1080)
+ HDMI_SII9134_MODE_1080P_25HZ, //(1920*1080)
+ HDMI_SII9134_MODE_1080P_30HZ, //(1920*1080)
+ HDMI_SII9134_MODE_1080P_50HZ, //(1920*1080)
+ HDMI_SII9134_MODE_1080P_60HZ, //(1920*1080)
+ HDMI_SII9134_MODE_UXGA_60HZ, //(1600*1200)
+ /*DVI*/
+ DVI_SII9134_MODE_XGA_60HZ, //(1024*768)
+ DVI_SII9134_MODE_SXGA_60HZ, //(1280*1024)
+ DVI_SII9134_MODE_SXGA2_60HZ, //(1280*960)
+ DVI_SII9134_MODE_720P_60HZ, //(1280*720)
+ DVI_SII9134_MODE_720P_50HZ, //(1280*720)
+ DVI_SII9134_MODE_1080I_60HZ, //(1920*1080)
+ DVI_SII9134_MODE_1080I_50HZ, //(1920*1080)
+ DVI_SII9134_MODE_1080P_25HZ, //(1920*1080)
+ DVI_SII9134_MODE_1080P_30HZ, //(1920*1080)
+ DVI_SII9134_MODE_1080P_50HZ, //(1920*1080)
+ DVI_SII9134_MODE_1080P_60HZ, //(1920*1080)
+ DVI_SII9134_MODE_UXGA_60HZ, //(1600*1200)
+ VGA_DECSVR_MODE_SXGA2_60HZ,
+ HDMI_DECSVR_MODE_1080P_24HZ,
+ DVI_DECSVR_MODE_1080P_24HZ,
+ YPbPr_DECSVR_MODE_720P_60HZ,
+ YPbPr_DECSVR_MODE_1080I_60HZ
+ }
+
+ //֡ʶ
+ public const int LOW_DEC_FPS_1_2 = 51;
+ public const int LOW_DEC_FPS_1_4 = 52;
+ public const int LOW_DEC_FPS_1_8 = 53;
+ public const int LOW_DEC_FPS_1_16 = 54;
+
+ /*Ƶʽ*/
+ public enum VIDEO_STANDARD
+ {
+ VS_NON = 0,
+ VS_NTSC = 1,
+ VS_PAL = 2,
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct UNION_VIDEOPLATFORM
+ {
+ /*ӴڶӦͨӦĽϵͳIJλ(Ƶۺƽ̨нϵͳЧ)*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecoderId;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct UNION_NOTVIDEOPLATFORM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VGA_DISP_CHAN_CFG
+ {
+ public uint dwSize;
+ public byte byAudio;/*ƵǷ,0-1-*/
+ public byte byAudioWindowIdx;/*ƵӴ*/
+ public byte byVgaResolution;/*VGAķֱ*/
+ public byte byVedioFormat;/*Ƶʽ1:NTSC,2:PAL,0-NON*/
+ public uint dwWindowMode;/*ģʽȡĿǰ֧1,2,4,9,16*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecChan;/*ӴڹĽͨ*/
+ public byte byEnlargeStatus; /*ǷڷŴ״̬0Ŵ1Ŵ*/
+ public byte byEnlargeSubWindowIndex;//ŴӴں
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct struDiff
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+ public byte byUnionType;/*ֹ壬0-Ƶۺƽ̨ڲʾͨã1-ʾͨ*/
+ public byte byScale; /*ʾģʽ0---ʵʾ1---ʾ( BNC )*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISP_CHAN_STATUS
+ {
+ public byte byDispStatus;/*ʾ״̬0δʾ1ʾ*/
+ public byte byBVGA; /*VGA/BNC*/
+ public byte byVideoFormat;/*Ƶʽ:1:NTSC,2:PAL,0-NON*/
+ public byte byWindowMode;/*ǰģʽ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecChan;/*ӴڹĽͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_DVR_MAX_DISPREGION, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFpsDisp;/*ÿӻʾ֡*/
+ public byte byScreenMode; //Ļģʽ0-ͨ 1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 31, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ public const int MAX_DECODECHANNUM = 32;//·ͨ
+ public const int MAX_DISPCHANNUM = 24;//·ʾͨ
+
+ /*豸״̬*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECODER_WORK_STATUS
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DECODECHANNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIX_CHAN_STATUS[] struDecChanStatus;/*ͨ״̬*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISPCHANNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DISP_CHAN_STATUS[] struDispChanStatus;/*ʾͨ״̬*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ANALOG_ALARMIN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmInStatus;/*״̬*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ANALOG_ALARMOUT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAalarmOutStatus;/*״̬*/
+ public byte byAudioInChanStatus;/*Խ״̬*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 127, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //2009-12-1 ӱ벥ſ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PASSIVEDECODE_CONTROL
+ {
+ public uint dwSize;
+ public uint dwPlayCmd; /* ļ*/
+ public uint dwCmdParam; /* */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//Reverse
+ }
+
+ public const int PASSIVE_DEC_PAUSE = 1; /*ͣ(ļЧ)*/
+ public const int PASSIVE_DEC_RESUME = 2; /*ָ(ļЧ)*/
+ public const int PASSIVE_DEC_FAST = 3; /*ٱ(ļЧ)*/
+ public const int PASSIVE_DEC_SLOW = 4; /*ٱ(ļЧ)*/
+ public const int PASSIVE_DEC_NORMAL = 5; /*(ļЧ)*/
+ public const int PASSIVE_DEC_ONEBYONE = 6; /*뵥֡()*/
+ public const int PASSIVE_DEC_AUDIO_ON = 7; /*Ƶ*/
+ public const int PASSIVE_DEC_AUDIO_OFF = 8; /*Ƶر*/
+ public const int PASSIVE_DEC_RESETBUFFER = 9; /*ջ*/
+
+ //2009-12-16 ӿƽͨ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_DECCHAN_CONTROL
+ {
+ public uint dwSize;
+ public byte byDecChanScaleStatus;/*ͨʾſ,1ʾʾ0ʾʵʾ*/
+ public byte byDecodeDelay;//ʱ0-Ĭϣ1-ʵʱԺã2-ʵʱԽϺã3-ʵʱУУ4-ԽϺã5-Ժã0xff-Զ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 66, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+ /************************************·(end)***************************************/
+
+ /************************************Ƶۺƽ̨(begin)***************************************/
+ public const int MAX_SUBSYSTEM_NUM = 80; //һϵͳϵͳ
+ public const int MAX_SUBSYSTEM_NUM_V40 = 120; //һϵͳϵͳ
+ public const int MAX_SERIALLEN = 36; //кų
+ public const int MAX_LOOPPLANNUM = 16; //ƻл
+ public const int DECODE_TIMESEGMENT = 4; //ƻÿʱ
+
+ public const int MAX_DOMAIN_NAME = 64; /* */
+ public const int MAX_DISKNUM_V30 = 33; //9000豸Ӳ/* 33Ӳ(16SATAӲ̡1eSATAӲ̺16NFS) */
+ public const int MAX_DAYS = 7; //ÿ
+ public const int MAX_DISPNUM_V41 = 32;
+ public const int MAX_WINDOWS_NUM = 12;
+ public const int MAX_VOUTNUM = 32;
+ public const int MAX_SUPPORT_RES = 32;
+ public const int MAX_BIGSCREENNUM = 100;
+
+ public const int VIDEOPLATFORM_ABILITY = 0x210; //Ƶۺƽ̨
+ public const int MATRIXDECODER_ABILITY_V41 = 0x260; //
+
+ public const int NET_DVR_MATRIX_BIGSCREENCFG_GET = 1140;//ȡƴӲ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SUBSYSTEMINFO
+ {
+ public byte bySubSystemType;//ϵͳͣ1-ϵͳ2-ϵͳ0-NULL˲ֻܻȡ
+ public byte byChan;//ϵͳͨ˲ֻܻȡ
+ public byte byLoginType;//עͣ1-ֱ2-DNS3-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_IPADDR struSubSystemIP;/*IPַģ*/
+ public ushort wSubSystemPort;//ϵͳ˿ںţģ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_DVR_IPADDR struSubSystemIPMask;//
+ public NET_DVR_IPADDR struGatewayIpAddr; /* صַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û ˲ֻܻȡ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/*루˲ֻܻȡ*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_DOMAIN_NAME)]
+ public string sDomainName;//()
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_DOMAIN_NAME)]
+ public string sDnsAddress;/*DNSIPַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber;//кţ˲ֻܻȡ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALLSUBSYSTEMINFO
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SUBSYSTEM_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SUBSYSTEMINFO[] struSubSystemInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LOOPPLAN_SUBCFG
+ {
+ public uint dwSize;
+ public uint dwPoolTime; /*ѯλ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CYCLE_CHAN_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIX_CHAN_INFO_V30[] struChanConInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMMODECFG
+ {
+ public uint dwSize;
+ public byte byAlarmMode;//ͣ1-ѯ2-
+ public ushort wLoopTime;//ѯʱ, λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CODESPLITTERINFO
+ {
+ public uint dwSize;
+ public NET_DVR_IPADDR struIP;/*IPַ*/
+ public ushort wPort;//˿ں
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;/* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;/* */
+ public byte byChan;//485
+ public byte by485Port;//485ڵַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 14, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ASSOCIATECFG
+ {
+ public byte byAssociateType;//ͣ1-
+ public ushort wAlarmDelay;//ʱ05룻110룻230룻31ӣ42ӣ55ӣ610ӣ
+ public byte byAlarmNum;//ţֵӦøͬıֵͬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DYNAMICDECODE
+ {
+ public uint dwSize;
+ public NET_DVR_ASSOCIATECFG struAssociateCfg;//̬ṹ
+ public NET_DVR_PU_STREAM_CFG struPuStreamCfg;//̬ṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECODESCHED
+ {
+ public NET_DVR_SCHEDTIME struSchedTime;
+ public byte byDecodeType;/*0-ޣ1-ѯ룬2-̬*/
+ public byte byLoopGroup;//ѯ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_PU_STREAM_CFG struDynamicDec;//̬
+ }
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLANDECODE
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * DECODE_TIMESEGMENT, ArraySubType = UnmanagedType.I1)]
+ public NET_DVR_DECODESCHED[] struDecodeSched;//һΪʼ9000һ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byres;
+ }
+ /************************************Ƶۺƽ̨(end)***************************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEOPLATFORM_ABILITY
+ {
+ public uint dwSize;
+ public byte byCodeSubSystemNums;//ϵͳ
+ public byte byDecodeSubSystemNums;//ϵͳ
+ [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = System.Runtime.InteropServices.UnmanagedType.I1)]
+ public byte[] byWindowMode; /*ʾֵ֧ͨĴģʽ*/
+ [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = System.Runtime.InteropServices.UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SUBSYSTEM_ABILITY
+ {
+ /*ϵͳͣ1-ϵͳ2-ϵͳ3-ϵͳ4-ϵͳ5-ϵͳ6-ϵͳ7-ϵͳ8-V6ϵͳ9-V6ϵͳ0-NULL˲ֻܻȡ*/
+ public byte bySubSystemType;
+ public byte byChanNum;//ϵͳͨ
+ public byte byStartChan;//ϵͳʼͨ
+ public byte bySlotNum;//λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public struDecoderSystemAbility _struAbility;
+ }
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struDecoderSystemAbility
+ {
+ public byte byVGANums;//VGAʾͨ1ʼ
+ public byte byBNCNums;//BNCʾͨ9ʼ
+ public byte byHDMINums;//HDMIʾͨ25ʼ
+ public byte byDVINums;//DVIʾͨ29ʼ
+
+ public byte byLayerNums;//ƴУʱ֧ͼ
+ public byte bySpartan;//Թܣ0-֧֣1-֧
+ public byte byDecType; //ϵͳͣ0-ͨ,1-ǿ(ͨͷʱǰ4ʹԴǿƣǿɱϵͳ16·D1Դ
+ //ǿͱΪԴɱãܱͨ)
+ public byte byOutputSwitch;//Ƿ֧HDMI/DVIл0-֧֣1-֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 39, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byDecoderType; // 0-ͨ 1-ܽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 152, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struAbility
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 200, ArraySubType = UnmanagedType.I1)]
+ // [FieldOffsetAttribute(0)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEOPLATFORM_ABILITY_V40
+ {
+ public uint dwSize;
+ public byte byCodeSubSystemNums;
+ public byte byDecodeSubSystemNums;//ϵͳ
+ public byte bySupportNat;//Ƿ֧NAT0-֧֣1-֧
+ public byte byInputSubSystemNums;//ϵͳ
+ public byte byOutputSubSystemNums;//ϵͳ
+ public byte byCodeSpitterSubSystemNums;//ϵͳ
+ public byte byAlarmHostSubSystemNums;//ϵͳ
+ public byte bySupportBigScreenNum;//֧ɴĸ
+ public byte byVCASubSystemNums;//ϵͳ
+ public byte byV6SubSystemNums;//V6ϵͳ
+ public byte byV6DecoderSubSystemNums;//V6ϵͳ
+ public byte bySupportBigScreenX;/*ƴӵģʽmn*/
+ public byte bySupportBigScreenY;
+ public byte bySupportSceneNums;//ֳ֧ģʽĸ
+ public byte byVcaSupportChanMode;//ֵ֧ͨʹģʽ0-ʹýͨ1-ʹʾͨͨ
+ public byte bySupportScreenNums;//ֵ֧ĴĻ
+ public byte bySupportLayerNums;//ֵ֧ͼ0xff-Ч
+ public byte byNotSupportPreview;//Ƿ֧Ԥ,1-֧֣0-֧
+ public byte byNotSupportStorage;//Ƿִ֧洢,1-֧֣0-֧
+ public byte byUploadLogoMode;//ϴlogoģʽ0-ϴͨ1-ϴʾͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SUBSYSTEM_NUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SUBSYSTEM_ABILITY[] struSubSystemAbility;
+ public byte by485Nums;//485ڸ
+ public byte by232Nums;//232ڸ
+ public byte bySerieStartChan;//ʼͨ
+ public byte byScreenMode;//ģʽ0-ɿͻ˷䣬1-豸˷
+ public byte byDevVersion;//豸汾0-B10/B11/B121-B20
+ public byte bySupportBaseMapNums;//ֵ֧ĵͼͼŴ1ʼ
+ public ushort wBaseLengthX;//ÿСĻֵB20ʹ
+ public ushort wBaseLengthY;
+ public byte bySupportPictureTrans; //Ƿ֧ͼƬԣ0-֧֣1-֧
+ public byte bySupportPreAllocDec; //Ƿ֧ܽԴԤ䣬0-֧֣1-֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 628, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SINGLESCREENCFG
+ {
+ public byte byScreenSeq;//Ļţ0xffʾô,64-Tһʾ
+ public byte bySubSystemNum;//ϵͳλ,ֵû
+ public byte byDispNum;//ϵͳ϶Ӧʾͨţ64-Tиֵʾʾͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BIGSCREENCFG
+ {
+ public uint dwSize;
+ public byte byEnable;//ƴʹܣ0-ʹܣ1-ʹ
+ public byte byModeX;/*ƴģʽ*/
+ public byte byModeY;
+ public byte byMainDecodeSystem;//ۺƽ̨Ľиֵʾλţ64-Tиֵʾͨ
+ public byte byMainDecoderDispChan;//ʾͨţ1.1netra汾netraʾܹͨΪ64-TиֵЧ
+ public byte byVideoStandard; //ÿʽͬ 1:NTSC,2:PAL
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwResolution; //ÿֱͬ
+ //ƴӴĻϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_BIGSCREENNUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SINGLESCREENCFG[] struFollowSingleScreen;
+ //ʼΪ
+ public ushort wBigScreenX; //ڵǽʼX
+ public ushort wBigScreenY; //ڵǽʼY
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+
+ public void Init()
+ {
+ byRes1 = new byte[2];
+ struFollowSingleScreen = new NET_DVR_SINGLESCREENCFG[MAX_BIGSCREENNUM];
+ byRes2 = new byte[12];
+ }
+ }
+
+ /************************************Ƶۺƽ̨(end)***************************************/
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_EMAILCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sUserName;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sPassWord;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sFromName;/* Sender *///ַеĵһַһַ"@",ַҪ"@"ַ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 48)]
+ public string sFromAddr;/* Sender address */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sToName1;/* Receiver1 */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sToName2;/* Receiver2 */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 48)]
+ public string sToAddr1;/* Receiver address1 */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 48)]
+ public string sToAddr2;/* Receiver address2 */
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sEmailServer;/* Email server address */
+ public byte byServerType;/* Email server type: 0-SMTP, 1-POP, 2-IMTP*/
+ public byte byUseAuthen;/* Email server authentication method: 1-enable, 0-disable */
+ public byte byAttachment;/* enable attachment */
+ public byte byMailinterval;/* mail interval 0-2s, 1-3s, 2-4s. 3-5s*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSIONCFG_NEW
+ {
+ public uint dwSize;
+ public NET_DVR_COMPRESSION_INFO_EX struLowCompression;//ʱ¼
+ public NET_DVR_COMPRESSION_INFO_EX struEventCompression;//¼¼
+ }
+
+ //̨ԤõϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PRESET_NAME
+ {
+ public uint dwSize;
+ public ushort wPresetNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byName;
+ public ushort wPanPos;
+ public ushort wTiltPos;
+ public ushort wZoomPos;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 58, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //λϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PTZPOS
+ {
+ public ushort wAction;//ȡʱֶЧ
+ public ushort wPanPos;//ˮƽ
+ public ushort wTiltPos;//ֱ
+ public ushort wZoomPos;//䱶
+ }
+
+ //ΧϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PTZSCOPE
+ {
+ public ushort wPanPosMin;//ˮƽmin
+ public ushort wPanPosMax;//ˮƽmax
+ public ushort wTiltPosMin;//ֱmin
+ public ushort wTiltPosMax;//ֱmax
+ public ushort wZoomPosMin;//䱶min
+ public ushort wZoomPosMax;//䱶max
+ }
+
+ //rtsp ipcameraר
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RTSPCFG
+ {
+ public uint dwSize;//
+ public ushort wPort;//rtsp˿
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 54, ArraySubType = UnmanagedType.I1)]
+ public byte[] byReserve;//Ԥ
+ }
+
+ /********************************ӿڲṹ(begin)*********************************/
+
+ //NET_DVR_Login()ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEVICEINFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber;//к
+ public byte byAlarmInPortNum;//DVR
+ public byte byAlarmOutPortNum;//DVR
+ public byte byDiskNum;//DVRӲ̸
+ public byte byDVRType;//DVR, 1:DVR 2:ATM DVR 3:DVS ......
+ public byte byChanNum;//DVR ͨ
+ public byte byStartChan;//ʼͨ,DVS-1,DVR - 1
+ }
+
+ //NET_DVR_Login_V30()ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEVICEINFO_V30
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber; //к
+ public byte byAlarmInPortNum; //
+ public byte byAlarmOutPortNum; //
+ public byte byDiskNum; //Ӳ̸
+ public byte byDVRType; //豸, 1:DVR 2:ATM DVR 3:DVS ......
+ public byte byChanNum; //ģͨ
+ public byte byStartChan; //ʼͨ,DVS-1,DVR - 1
+ public byte byAudioChanNum; //ͨ
+ public byte byIPChanNum; //ͨλ
+ public byte byZeroChanNum; //ͨ //2010-01-16
+ public byte byMainProto; //Э 0-private, 1-rtsp,2-ͬʱ֧privatertsp
+ public byte bySubProto; //Э0-private, 1-rtsp,2-ͬʱ֧privatertsp
+ public byte bySupport; //λΪ0ʾ֧֣1ʾ֧֣
+ //bySupport & 0x1, ʾǷ֧
+ //bySupport & 0x2, ʾǷֱ֧
+ //bySupport & 0x4, ʾǷ֧ѹȡ
+ //bySupport & 0x8, ʾǷֶ֧
+ //bySupport & 0x10, ʾ֧ԶSADP
+ //bySupport & 0x20, ʾ֧Raid
+ //bySupport & 0x40, ʾ֧IPSAN Ŀ¼
+ //bySupport & 0x80, ʾ֧rtp over rtsp
+ public byte bySupport1; // 䣬λΪ0ʾ֧֣1ʾ֧
+ //bySupport1 & 0x1, ʾǷ֧snmp v30
+ //bySupport1 & 0x2, ֻ֧طź
+ //bySupport1 & 0x4, Ƿֲ֧ȼ
+ //bySupport1 & 0x8, 豸Ƿֲ֧ʱչ
+ //bySupport1 & 0x10, ʾǷֶ֧33
+ //bySupport1 & 0x20, ʾǷ֧rtsp over http
+ //bySupport1 & 0x80, ʾǷֳ֧±Ϣ2012-9-28, һʾǷ֧NET_DVR_IPPARACFG_V40ṹ
+ public byte bySupport2; /*λΪ0ʾ֧֣0ʾ֧
+ bySupport2 & 0x1, ʾǷ֧ͨURLȡ
+ bySupport2 & 0x2, ʾ֧FTPV40
+ bySupport2 & 0x4, ʾ֧ANR
+ bySupport2 & 0x8, ʾ֧CCDͨ
+ bySupport2 & 0x10, ʾֲ֧شϢ֧ץĻ ϱṹ
+ bySupport2 & 0x20, ʾǷֵ֧ȡ豸״̬
+ bySupport2 & 0x40, ʾǷ豸*/
+ public ushort wDevType; //豸ͺ
+ public byte bySupport3; //չλΪ0ʾ֧֣1ʾ֧
+ //bySupport3 & 0x1, ʾǷ
+ // bySupport3 & 0x4 ʾְ֧ã ͨͼIP롢
+ // û豸״̬JPEGץͼʱʱץͼӲ
+ //bySupport3 & 0x8Ϊ1 ʾ֧ʹTCPԤUDPԤಥԤе"ʱԤ"ֶʱԤʹַʽʱԤbySupport3 & 0x8Ϊ0ʱʹ "˽ʱԤ"Э顣
+ //bySupport3 & 0x10 ʾ֧"ȡҪ״̬V40"
+ //bySupport3 & 0x20 ʾǷ֧ͨDDNSȡ
+
+ public byte byMultiStreamProto;//Ƿֶ֧,λʾ,0-֧,1-֧,bit1-3,bit2-4,bit7-bit-8
+ public byte byStartDChan; //ʼͨ,0ʾЧ
+ public byte byStartDTalkChan; //ʼֶԽͨţģԽͨţ0ʾЧ
+ public byte byHighDChanNum; //ͨλ
+ public byte bySupport4;
+ public byte byLanguageType;// ֧,λʾ,ÿһλ0-֧,1-֧
+ // byLanguageType 0 ʾ 豸
+ // byLanguageType & 0x1ʾ֧
+ // byLanguageType & 0x2ʾ֧Ӣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct NET_DVR_DEVICEINFO_V40
+ {
+ public NET_DVR_DEVICEINFO_V30 struDeviceV30;
+ public byte bySupportLock; //豸֧ܣֶSDK豸ֵֵġbySupportLockΪ1ʱdwSurplusLockTimebyRetryLoginTimeЧ
+ public byte byRetryLoginTime; //ʣɳԵ½Ĵûʱ˲Ч
+ public byte byPasswordLevel; //admin밲ȫȼ0-Ч1-Ĭ룬2-Ч,3-սϸߵ롣ûΪĬ루12345߷սϸߵʱϲͻҪʾû롣
+ public byte byProxyType;//ͣ0-ʹô, 1-ʹsocks5, 2-ʹEHome
+ public uint dwSurplusLockTime; //ʣʱ䣬λ룬ûʱ˲Ч
+ public byte byCharEncodeType; //ַ
+ public byte bySupportDev5;//֧v50汾豸ȡ豸ƺ豸ƳչΪ64ֽ
+ public byte bySupport; //չλ0- ֧֣1- ֧
+ // bySupport & 0x1:
+ // bySupport & 0x2: 0-ֱ֧仯ϱ 1-ֱ֧仯ϱ
+ public byte byLoginMode; //¼ģʽ 0-Private¼ 1-ISAPI¼
+ public int dwOEMCode;
+ public int iResidualValidity; //ûʣЧλ죬ظֵʾѾʹã硰-3ʾѾʹ3족
+ public byte byResidualValidity; // iResidualValidityֶǷЧ0-Ч1-Ч
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 243, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ public const int NET_DVR_DEV_ADDRESS_MAX_LEN = 129;
+ public const int NET_DVR_LOGIN_USERNAME_MAX_LEN = 64;
+ public const int NET_DVR_LOGIN_PASSWD_MAX_LEN = 64;
+
+ public delegate void LOGINRESULTCALLBACK(int lUserID, int dwResult, IntPtr lpDeviceInfo, IntPtr pUser);
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct NET_DVR_USER_LOGIN_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_DVR_DEV_ADDRESS_MAX_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDeviceAddress;
+ public byte byUseTransport;
+ public ushort wPort;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_DVR_LOGIN_USERNAME_MAX_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_DVR_LOGIN_PASSWD_MAX_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;
+ public LOGINRESULTCALLBACK cbLoginResult;
+ public IntPtr pUser;
+ public bool bUseAsynLogin;
+ public byte byProxyType; //0:ʹô1ʹñ2ʹEHome
+ public byte byUseUTCTime; //0-תĬ,1-ӿȫʹUTCʱ,SDKUTCʱ豸ʱת,2-ӿȫʹƽ̨ʱ䣬SDKƽ̨ʱ豸ʱת
+ public byte byLoginMode; //0-Private, 1-ISAPI, 2-Ӧ
+ public byte byHttps; //0-tls1-ʹtls 2-Ӧ
+ public int iProxyID; //ţӴϢʱӦķ±ֵ
+ public byte byVerifyMode; //֤ʽ0-֤1-˫֤2-֤֤ʹTLSʱЧ;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 119, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ }
+
+ //sdk绷öٱԶ
+ public enum SDK_NETWORK_ENVIRONMENT
+ {
+ LOCAL_AREA_NETWORK = 0,
+ WIDE_AREA_NETWORK,
+ }
+
+ //ʾģʽ
+ public enum DISPLAY_MODE
+ {
+ NORMALMODE = 0,
+ OVERLAYMODE
+ }
+
+ //ģʽ
+ public enum SEND_MODE
+ {
+ PTOPTCPMODE = 0,
+ PTOPUDPMODE,
+ MULTIMODE,
+ RTPMODE,
+ RESERVEDMODE
+ }
+
+ //ץͼģʽ
+ public enum CAPTURE_MODE
+ {
+ BMP_MODE = 0, //BMPģʽ
+ JPEG_MODE = 1 //JPEGģʽ
+ }
+
+ //ʵʱģʽ
+ public enum REALSOUND_MODE
+ {
+ MONOPOLIZE_MODE = 1,//ռģʽ
+ SHARE_MODE = 2 //ģʽ
+ }
+
+ public struct NET_DVR_CLIENTINFO
+ {
+ public Int32 lChannel;//ͨ
+ public Int32 lLinkMode;//λ(31)Ϊ0ʾΪ1ʾ030λʾӷʽ: 0TCPʽ,1UDPʽ,2ಥʽ,3 - RTPʽ4-Ƶֿ(TCP)
+ public IntPtr hPlayWnd;//Ŵڵľ,ΪNULLʾͼ
+ public string sMultiCastIP;//ಥַ
+ }
+
+ //SDK״̬Ϣ(9000)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SDKSTATE
+ {
+ public uint dwTotalLoginNum;//ǰloginû
+ public uint dwTotalRealPlayNum;//ǰrealplay·
+ public uint dwTotalPlayBackNum;//ǰطŻ·
+ public uint dwTotalAlarmChanNum;//ǰͨ·
+ public uint dwTotalFormatNum;//ǰӲ̸ʽ·
+ public uint dwTotalFileSearchNum;//ǰ־ļ·
+ public uint dwTotalLogSearchNum;//ǰ־ļ·
+ public uint dwTotalSerialNum;//ǰͨ·
+ public uint dwTotalUpgradeNum;//ǰ·
+ public uint dwTotalVoiceComNum;//ǰת·
+ public uint dwTotalBroadCastNum;//ǰ㲥·
+ public uint dwTotalListenNum; //ǰ·
+ public uint dwEmailTestNum; //ǰʼ·
+ public uint dwBackupNum; // ǰļ·
+ public uint dwTotalInquestUploadNum; //ǰѶϴ·
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes;
+ }
+
+ //SDK֧Ϣ(9000)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SDKABL
+ {
+ public uint dwMaxLoginNum;//loginû MAX_LOGIN_USERS
+ public uint dwMaxRealPlayNum;//realplay· WATCH_NUM
+ public uint dwMaxPlayBackNum;//طŻ· WATCH_NUM
+ public uint dwMaxAlarmChanNum;//ͨ· ALARM_NUM
+ public uint dwMaxFormatNum;//Ӳ̸ʽ· SERVER_NUM
+ public uint dwMaxFileSearchNum;//ļ· SERVER_NUM
+ public uint dwMaxLogSearchNum;//־· SERVER_NUM
+ public uint dwMaxSerialNum;//ͨ· SERVER_NUM
+ public uint dwMaxUpgradeNum;//· SERVER_NUM
+ public uint dwMaxVoiceComNum;//ת· SERVER_NUM
+ public uint dwMaxBroadCastNum;//㲥· MAX_CASTNUM
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes;
+ }
+
+ //豸Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_ALARMER
+ {
+ public byte byUserIDValid;/* useridǷЧ 0-Ч1-Ч */
+ public byte bySerialValid;/* кǷЧ 0-Ч1-Ч */
+ public byte byVersionValid;/* 汾ǷЧ 0-Ч1-Ч */
+ public byte byDeviceNameValid;/* 豸ǷЧ 0-Ч1-Ч */
+ public byte byMacAddrValid; /* MACַǷЧ 0-Ч1-Ч */
+ public byte byLinkPortValid;/* login˿ǷЧ 0-Ч1-Ч */
+ public byte byDeviceIPValid;/* 豸IPǷЧ 0-Ч1-Ч */
+ public byte bySocketIPValid;/* socket ipǷЧ 0-Ч1-Ч */
+ public int lUserID; /* NET_DVR_Login()ֵ, ʱЧ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber;/* к */
+ public uint dwDeviceVersion;/* 汾Ϣ 16λʾ汾16λʾΰ汾*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDeviceName;/* 豸 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMacAddr;/* MACַ */
+ public ushort wLinkPort; /* link port */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDeviceIP;/* IPַ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSocketIP;/* ϴʱsocket IPַ */
+ public byte byIpProtocol; /* IpЭ 0-IPV4, 1-IPV6 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //Ӳʾ(ӽṹ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISPLAY_PARA
+ {
+ public int bToScreen;
+ public int bToVideoOut;
+ public int nLeft;
+ public int nTop;
+ public int nWidth;
+ public int nHeight;
+ public int nReserved;
+ }
+
+ //ӲԤ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CARDINFO
+ {
+ public int lChannel;//ͨ
+ public int lLinkMode;//λ(31)Ϊ0ʾΪ1ʾӣ030λʾӷʽ:0TCPʽ,1UDPʽ,2ಥʽ,3 - RTPʽ4-绰ߣ5128k6256k7384k8512k
+ [MarshalAsAttribute(UnmanagedType.LPStr)]
+ public string sMultiCastIP;
+ public NET_DVR_DISPLAY_PARA struDisplayPara;
+ }
+
+ //¼ļ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_FIND_DATA
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 100)]
+ public string sFileName;//ļ
+ public NET_DVR_TIME struStartTime;//ļĿʼʱ
+ public NET_DVR_TIME struStopTime;//ļĽʱ
+ public uint dwFileSize;//ļĴС
+ }
+
+ //¼ļ(9000)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_FINDDATA_V30
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 100)]
+ public string sFileName;//ļ
+ public NET_DVR_TIME struStartTime;//ļĿʼʱ
+ public NET_DVR_TIME struStopTime;//ļĽʱ
+ public uint dwFileSize;//ļĴС
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sCardNum;
+ public byte byLocked;//9000豸֧,1ʾļѾ,0ʾļ
+ public byte byFileType; //ļ:0ʱ¼,1-ƶ 2
+ //3-|ƶ 4-&ƶ 5- 6-ֶ¼,78-9-ܱ10-PIR11-߱12-ȱ,14-ܽͨ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //¼ļ(cvr)
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_FINDDATA_V40
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 100)]
+ public string sFileName;//ļ
+ public NET_DVR_TIME struStartTime;//ļĿʼʱ
+ public NET_DVR_TIME struStopTime;//ļĽʱ
+ public uint dwFileSize;//ļĴС
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sCardNum;
+ public byte byLocked;//9000豸֧,1ʾļѾ,0ʾļ
+ public byte byFileType; //ļ:0ʱ¼,1-ƶ 2
+ //3-|ƶ 4-&ƶ 5- 6-ֶ¼,78-9-ܱ10-PIR11-߱12-ȱ,14-ܽͨ¼
+ public byte byQuickSearch; //0:ͨѯ1٣ѯ
+ public byte byRes;
+ public uint dwFileIndex; //ļ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ //¼ļ()
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_FINDDATA_CARD
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 100)]
+ public string sFileName;//ļ
+ public NET_DVR_TIME struStartTime;//ļĿʼʱ
+ public NET_DVR_TIME struStopTime;//ļĽʱ
+ public uint dwFileSize;//ļĴС
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sCardNum;
+ }
+
+ //¼ļṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FILECOND
+ {
+ public int lChannel;//ͨ
+ public uint dwFileType;//¼ļ0xffȫ0ʱ¼,1-ƶ 2
+ //3-|ƶ 4-&ƶ 5- 6-ֶ¼
+ public uint dwIsLocked;//Ƿ 0-ļ,1-ļ, 0xffʾļ
+ public uint dwUseCardNo;//Ƿʹÿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCardNumber;//
+ public NET_DVR_TIME struStartTime;//ʼʱ
+ public NET_DVR_TIME struStopTime;//ʱ
+ }
+
+ //̨ѡŴС(HIK ר)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_POINT_FRAME
+ {
+ public int xTop;//ʼx
+ public int yTop;//y
+ public int xBottom;//x
+ public int yBottom;//y
+ public int bCounter;//
+ }
+
+ //Խ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSION_AUDIO
+ {
+ public byte byAudioEncType;//Ƶ 0-G722; 1-G711
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byres;//ﱣƵѹ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_AP_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = IW_ESSID_MAX_SIZE)]
+ public string sSsid;
+ public uint dwMode;/* 0 mange ģʽ;1 ad-hocģʽμNICMODE */
+ public uint dwSecurity; /*0 ܣ1 wepܣ2 wpa-psk;3 wpa-EnterpriseμWIFISECURITY*/
+ public uint dwChannel;/*1-11ʾ11ͨ*/
+ public uint dwSignalStrength;/*0-100źΪǿ*/
+ public uint dwSpeed;/*,λ0.01mbps*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AP_INFO_LIST
+ {
+ public uint dwSize;
+ public uint dwCount;/*AP20*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = WIFI_MAX_AP_COUNT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_AP_INFO[] struApInfo;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_WIFIETHERNET
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sIpAddress;/*IPַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sIpMask;/**/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr;/*ַֻʾ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] bRes;
+ public uint dwEnableDhcp;/*Ƿdhcp 0 1*/
+ public uint dwAutoDns;/*dhcpǷԶȡdns,0Զȡ 1ԶȡdhcpĿǰԶȡdns*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sFirstDns; /*һdns*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sSecondDns;/*ڶdns*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sGatewayIpAddr;/* صַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] bRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct UNION_EAP_TTLS
+ {
+ public byte byEapolVersion; //EAPOL汾0-汾11-汾2
+ public byte byAuthType; //ڲ֤ʽ0-PAP1-MSCHAPV2
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnonyIdentity; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUserName; //û
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPassword; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 44, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ } //WPA-enterprise/WPA2-enterprisģʽ
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct UNION_EAP_PEAP
+ {
+ public byte byEapolVersion; //EAPOL汾0-汾11-汾2
+ public byte byAuthType; //ڲ֤ʽ0-GTC1-MD52-MSCHAPV2
+ public byte byPeapVersion; //PEAP汾0-汾01-汾1
+ public byte byPeapLabel; //PEAPǩ0-ϱǩ1-±ǩ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAnonyIdentity; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUserName; //û
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPassword; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 44, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ } //WPA-enterprise/WPA2-enterprisģʽ
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct UNION_EAP_TLS
+ {
+ public byte byEapolVersion; //EAPOL汾0-汾11-汾2
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byIdentity; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPrivateKeyPswd; //˽Կ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 76, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct WIFI_AUTH_PARAM
+ {
+ [FieldOffsetAttribute(0)]
+ public UNION_EAP_TTLS EAP_TTLS;//WPA-enterprise/WPA2-enterprisģʽ
+
+ [FieldOffsetAttribute(0)]
+ public UNION_EAP_PEAP EAP_PEAP; //WPA-enterprise/WPA2-enterprisģʽ
+
+ [FieldOffsetAttribute(0)]
+ public UNION_EAP_TLS EAP_TLS;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct UNION_WEP
+ {
+ public uint dwAuthentication;/*0 -ʽ 1-ʽ*/
+ public uint dwKeyLength;/* 0 -64λ1- 128λ2-152λ*/
+ public uint dwKeyType;/*0 16;1 ASCI */
+ public uint dwActive;/*0 0---3ʾһԿ*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = WIFI_WEP_MAX_KEY_COUNT * WIFI_WEP_MAX_KEY_LENGTH)]
+ public string sKeyInfo;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct UNION_WPA_PSK
+ {
+ public uint dwKeyLength;/*8-63ASCIIַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = WIFI_WPA_PSK_MAX_KEY_LENGTH)]
+ public string sKeyInfo;
+ public byte byEncryptType;/*WPA/WPA2ģʽ¼,0-AES, 1-TKIP*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct UNION_WPA_WPA2
+ {
+ public byte byEncryptType; /*,0-AES, 1-TKIP*/
+ public byte byAuthType; //֤ͣ0-EAP_TTLS,1-EAP_PEAP,2-EAP_TLS
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public WIFI_AUTH_PARAM auth_param;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_WIFI_CFG_EX
+ {
+ public NET_DVR_WIFIETHERNET struEtherNet;/*wifi*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = IW_ESSID_MAX_SIZE)]
+ public string sEssid;/*SSID*/
+ public uint dwMode;/* 0 mange ģʽ;1 ad-hocģʽμ*/
+ public uint dwSecurity;/*0 ܣ1 wepܣ2 wpa-psk; */
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct key
+ {
+ [FieldOffsetAttribute(0)]
+ public UNION_WEP wep;
+
+ [FieldOffsetAttribute(0)]
+ public UNION_WPA_PSK wpa_psk;
+
+ [FieldOffsetAttribute(0)]
+ public UNION_WPA_WPA2 wpa_wpa2;//WPA-enterprise/WPA2-enterprisģʽ
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WIFI_CFG
+ {
+ public uint dwSize;
+ public NET_DVR_WIFI_CFG_EX struWifiCfg;
+ }
+
+ //wifi״̬
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WIFI_CONNECT_STATUS
+ {
+ public uint dwSize;
+ public byte byCurStatus; //1-ӣ2-δӣ3-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwErrorCode; // byCurStatus = 2ʱЧ,1-û,2-·,3-δ֪
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 244, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WIFI_WORKMODE
+ {
+ public uint dwSize;
+ public uint dwNetworkInterfaceMode;/*0 Զлģʽ1 ģʽ*/
+ }
+
+ //ܿϢ
+ public const int MAX_VCA_CHAN = 16;//ͨ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_CTRLINFO
+ {
+ public byte byVCAEnable;//Ƿ
+ public byte byVCAType;//ͣVCA_CHAN_ABILITY_TYPE
+ public byte byStreamWithVCA;//ǷϢ
+ public byte byMode;//ģʽVCA_CHAN_MODE_TYPE ,atmʱҪ
+ public byte byControlType; //ͣλʾ0-1-
+ // byControlType &1 ǷץĹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//Ϊ0
+ }
+
+ //ܿϢṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_CTRLCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VCA_CHAN, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_CTRLINFO[] struCtrlInfo;//Ϣ,0Ӧ豸ʼͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //豸
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_DEV_ABILITY
+ {
+ public uint dwSize;//ṹ
+ public byte byVCAChanNum;//ͨ
+ public byte byPlateChanNum;//ͨ
+ public byte byBBaseChanNum;//Ϊ
+ public byte byBAdvanceChanNum;//Ϊ
+ public byte byBFullChanNum;//Ϊ
+ public byte byATMChanNum;//ATM
+ public byte byPDCChanNum; //ͳͨ
+ public byte byITSChanNum; //ͨ¼ͨ
+ public byte byBPrisonChanNum; //Ϊ()ͨ
+ public byte byFSnapChanNum; //ץͨ
+ public byte byFSnapRecogChanNum; //ץĺʶͨ
+ public byte byFRetrievalChanNum; //
+ public byte bySupport; //λΪ0ʾ֧֣1ʾ֧
+ //bySupport & 0x1ʾǷ֧ܸ 2012-3-22
+ //bySupport & 0x2ʾǷ֧128·ȡչ2012-12-27
+ public byte byFRecogChanNum; //ʶͨ
+ public byte byBPPerimeterChanNum; //Ϊ(ܽ)ͨ
+ public byte byTPSChanNum; //ͨյͨ
+ public byte byTFSChanNum; //·Υȡ֤ͨ
+ public byte byFSnapBFullChanNum; //ץĺΪͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 22, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //Ϊ
+ public enum VCA_ABILITY_TYPE:uint
+ {
+ TRAVERSE_PLANE_ABILITY = 0x01, //Խ
+ ENTER_AREA_ABILITY = 0x02, //
+ EXIT_AREA_ABILITY = 0x04, //뿪
+ INTRUSION_ABILITY = 0x08, //
+ LOITER_ABILITY = 0x10, //ǻ
+ LEFT_TAKE_ABILITY = 0x20, //Ʒȡ
+ PARKING_ABILITY = 0x40, //ͣ
+ RUN_ABILITY = 0x80, //ƶ
+ HIGH_DENSITY_ABILITY = 0x100, //Աۼ
+ LF_TRACK_ABILITY = 0x200, //
+ VIOLENT_MOTION_ABILITY = 0x400, //˶
+ REACH_HIGHT_ABILITY = 0x800, //ʸ
+ GET_UP_ABILITY = 0x1000, //
+ LEFT_ABILITY = 0x2000, //Ʒ
+ TAKE_ABILITY = 0x4000, //Ʒȡ
+ LEAVE_POSITION = 0x8000, //
+ TRAIL_ABILITY = 0x10000, //β
+ KEY_PERSON_GET_UP_ABILITY = 0x20000, //صԱ
+ FALL_DOWN_ABILITY = 0x80000, //
+ AUDIO_ABNORMAL_ABILITY = 0x100000, //ǿͻ
+ ADV_REACH_HEIGHT_ABILITY = 0x200000, //ʸ
+ TOILET_TARRY_ABILITY = 0x400000, //ʱ
+ YARD_TARRY_ABILITY = 0x800000, //ŷ糡
+ ADV_TRAVERSE_PLANE_ABILITY = 0x1000000, //߾
+ HUMAN_ENTER_ABILITY = 0x10000000, //˿ATM ,ֻATM_PANELģʽ֧
+ OVER_TIME_ABILITY = 0x20000000, //ʱ,ֻATM_PANELģʽ֧
+ STICK_UP_ABILITY = 0x40000000, //ֽ
+ INSTALL_SCANNER_ABILITY = 0x80000000 //װ
+ }
+
+ //ͨ
+ public enum VCA_CHAN_ABILITY_TYPE
+ {
+ VCA_BEHAVIOR_BASE = 1, //Ϊ
+ VCA_BEHAVIOR_ADVANCE = 2, //Ϊ
+ VCA_BEHAVIOR_FULL = 3, //Ϊ
+ VCA_PLATE = 4, //
+ VCA_ATM = 5, //ATM
+ VCA_PDC = 6, //ͳ
+ VCA_ITS = 7, // ͨ¼
+ VCA_BEHAVIOR_PRISON = 8, //Ϊ()
+ VCA_FACE_SNAP = 9, //ץ
+ VCA_FACE_SNAPRECOG = 10, //ץĺʶ
+ VCA_FACE_RETRIEVAL = 11, //
+ VCA_FACE_RECOG = 12, //ʶ
+ VCA_BEHAVIOR_PRISON_PERIMETER = 13, // Ϊ (ܽ)
+ VCA_TPS = 14, //ͨյ
+ VCA_TFS = 15, //·Υȡ֤
+ VCA_BEHAVIOR_FACESNAP = 16 //ץĺΪ
+ }
+
+ //ATMģʽ(ATM)
+ public enum VCA_CHAN_MODE_TYPE
+ {
+ VCA_ATM_PANEL = 0,//ATM
+ VCA_ATM_SURROUND = 1,//ATM
+ VCA_ATM_FACE = 2 //ATM
+ }
+ public enum TFS_CHAN_MODE_TYPE
+ {
+ TFS_CITYROAD = 0, //TFS е·
+ TFS_FREEWAY = 1 //TFS ٵ·
+ }
+
+ //Ϊģʽ
+ public enum BEHAVIOR_SCENE_MODE_TYPE
+ {
+ BEHAVIOR_SCENE_DEFAULT = 0, //ϵͳĬ
+ BEHAVIOR_SCENE_WALL = 1, //Χǽ
+ BEHAVIOR_SCENE_INDOOR = 2 //
+ }
+
+ //ͨ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_CHAN_IN_PARAM
+ {
+ public byte byVCAType;//VCA_CHAN_ABILITY_TYPEöֵ
+ public byte byMode;//ģʽVCA_CHAN_MODE_TYPE ,atmʱҪ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//Ϊ0
+ }
+
+ //Ϊṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BEHAVIOR_ABILITY
+ {
+ public uint dwSize;//ṹ
+ public uint dwAbilityType;//ֵ֧ͣλʾVCA_ABILITY_TYPE
+ public byte byMaxRuleNum;//
+ public byte byMaxTargetNum;//Ŀ
+ public byte bySupport; // ֵ֧Ĺ λʾ
+ // bySupport & 0x01 ֱ֧궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //Ϊ0
+ }
+
+ // ͨṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ITS_ABILITY
+ {
+ public uint dwSize; // ṹС
+ public uint dwAbilityType; // ֵ֧б ITS_ABILITY_TYPE
+ public byte byMaxRuleNum; //
+ public byte byMaxTargetNum; //Ŀ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+ /***********************************end*******************************************/
+
+ /************************************ܲṹ*********************************/
+ //ܹýṹ
+ //ֵһ,ֵΪǰİٷֱȴС, ΪСλ
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_POINT
+ {
+ public float fX;// X, 0.001~1
+ public float fY;//Y, 0.001~1
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_RECT
+ {
+ public float fX;//߽ϽǵX, 0.001~1
+ public float fY;//߽ϽǵY, 0.001~1
+ public float fWidth;//߽Ŀ, 0.001~1
+ public float fHeight;//߽ĸ߶, 0.001~1
+ }
+
+ //Ϊ¼
+ public enum VCA_EVENT_TYPE : uint
+ {
+ VCA_TRAVERSE_PLANE = 0x1, //Խ
+ VCA_ENTER_AREA = 0x2, //Ŀ,֧
+ VCA_EXIT_AREA = 0x4, //Ŀ뿪,֧
+ VCA_INTRUSION = 0x8, //ܽ,֧
+ VCA_LOITER = 0x10, //ǻ,֧
+ VCA_LEFT_TAKE = 0x20, //Ʒȡ,֧
+ VCA_PARKING = 0x40, //ͣ,֧
+ VCA_RUN = 0x80, //ƶ,֧
+ VCA_HIGH_DENSITY = 0x100, //Աۼ,֧
+ VCA_VIOLENT_MOTION = 0x200, //˶
+ VCA_REACH_HIGHT = 0x400, //ʸ
+ VCA_GET_UP = 0x800, //
+ VCA_LEFT = 0x1000, //Ʒ
+ VCA_TAKE = 0x2000, //Ʒȡ
+ VCA_LEAVE_POSITION = 0x4000, //
+ VCA_TRAIL = 0x8000, //β
+ VCA_KEY_PERSON_GET_UP = 0x10000, //صԱ
+ VCA_FALL_DOWN = 0x80000, //ؼ
+ VCA_AUDIO_ABNORMAL = 0x100000, //ǿͻ
+ VCA_ADV_REACH_HEIGHT = 0x200000, //ʸ
+ VCA_TOILET_TARRY = 0x400000, //ʱ
+ VCA_YARD_TARRY = 0x800000, //ŷ糡
+ VCA_ADV_TRAVERSE_PLANE = 0x1000000, //߾
+ VCA_HUMAN_ENTER = 0x10000000, //˿ATM ֻATM_PANELģʽ֧
+ VCA_OVER_TIME = 0x20000000, //ʱ ֻATM_PANELģʽ֧
+ VCA_STICK_UP = 0x40000000, //ֽ,֧
+ VCA_INSTALL_SCANNER = 0x80000000 //װ,֧
+ }
+
+ //Ϊ¼չ
+ public enum VCA_RULE_EVENT_TYPE_EX : ushort
+ {
+ ENUM_VCA_EVENT_TRAVERSE_PLANE = 1, //Խ
+ ENUM_VCA_EVENT_ENTER_AREA = 2, //Ŀ,֧
+ ENUM_VCA_EVENT_EXIT_AREA = 3, //Ŀ뿪,֧
+ ENUM_VCA_EVENT_INTRUSION = 4, //ܽ,֧
+ ENUM_VCA_EVENT_LOITER = 5, //ǻ,֧
+ ENUM_VCA_EVENT_LEFT_TAKE = 6, //Ʒȡ,֧
+ ENUM_VCA_EVENT_PARKING = 7, //ͣ,֧
+ ENUM_VCA_EVENT_RUN = 8, //ƶ,֧
+ ENUM_VCA_EVENT_HIGH_DENSITY = 9, //Աۼ,֧
+ ENUM_VCA_EVENT_VIOLENT_MOTION = 10, //˶
+ ENUM_VCA_EVENT_REACH_HIGHT = 11, //ʸ
+ ENUM_VCA_EVENT_GET_UP = 12, //
+ ENUM_VCA_EVENT_LEFT = 13, //Ʒ
+ ENUM_VCA_EVENT_TAKE = 14, //Ʒȡ
+ ENUM_VCA_EVENT_LEAVE_POSITION = 15, //
+ ENUM_VCA_EVENT_TRAIL = 16, //β
+ ENUM_VCA_EVENT_KEY_PERSON_GET_UP = 17, //صԱ
+ ENUM_VCA_EVENT_FALL_DOWN = 20, //ؼ
+ ENUM_VCA_EVENT_AUDIO_ABNORMAL = 21, //ǿͻ
+ ENUM_VCA_EVENT_ADV_REACH_HEIGHT = 22, //ʸ
+ ENUM_VCA_EVENT_TOILET_TARRY = 23, //ʱ
+ ENUM_VCA_EVENT_YARD_TARRY = 24, //ŷ糡
+ ENUM_VCA_EVENT_ADV_TRAVERSE_PLANE = 25, //߾
+ ENUM_VCA_EVENT_HUMAN_ENTER = 29, //˿ATM,ֻATM_PANELģʽ֧
+ ENUM_VCA_EVENT_OVER_TIME = 30, //ʱ,ֻATM_PANELģʽ֧
+ ENUM_VCA_EVENT_STICK_UP = 31, //ֽ,֧
+ ENUM_VCA_EVENT_INSTALL_SCANNER = 32 //װ,֧
+ }
+
+ //洩Խ
+ public enum VCA_CROSS_DIRECTION
+ {
+ VCA_BOTH_DIRECTION,// ˫
+ VCA_LEFT_GO_RIGHT,//
+ VCA_RIGHT_GO_LEFT,//
+ }
+
+ //߽ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_LINE
+ {
+ public NET_VCA_POINT struStart;//
+ public NET_VCA_POINT struEnd; //յ
+
+ // public void init()
+ // {
+ // struStart = new NET_VCA_POINT();
+ // struEnd = new NET_VCA_POINT();
+ // }
+ }
+
+ //ýṹᵼxamlʱûҵ
+ //ʱνṹ
+ //ͽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_POLYGON
+ {
+ /// DWORD->unsigned int
+ public uint dwPointNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = VCA_MAX_POLYGON_POINT_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_POINT[] struPos;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_TRAVERSE_PLANE
+ {
+ public NET_VCA_LINE struPlaneBottom;//ױ
+ public uint dwCrossDirection;//Խ: 0-˫1-ң2-ҵ
+ public byte bySensitivity;//ȣȡֵΧ[1,5] Smart IPCȡֵΧΪ[1,100]
+ public byte byPlaneHeight;//߶
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 38, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+
+ // public void init()
+ // {
+ // struPlaneBottom = new NET_VCA_LINE();
+ // struPlaneBottom.init();
+ // byRes2 = new byte[38];
+ // }
+ }
+
+ ///뿪
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_AREA
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ݱӳʱʶдͼƬIOһ£1뷢һ
+ //ֲ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_INTRUSION
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration;//ӳʱ: 1-120룬5룬жЧʱ
+ public byte bySensitivity; //ȲΧ[1-100]
+ public byte byRate; //ռȣδĿߴĿռıأһΪ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ǻ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_LOITER
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration;//ǻijʱ䣺1-120룬10
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ ///
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_TAKE_LEFT
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration;///ijʱ䣺1-120룬10
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ͣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_PARKING
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration;//ͣʱ䣺1-120룬10
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ܲ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_RUN
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public float fRunDistance;//˱, Χ: [0.1, 1.00]
+ public byte byRes1; // ֽ
+ public byte byMode; // 0 ģʽ 1 ʵģʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //Աۼ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_HIGH_DENSITY
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public float fDensity;//ܶȱ, Χ: [0.1, 1.0]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public ushort wDuration; // Աۼֵ 20-360s
+ }
+
+ //˶
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_VIOLENT_MOTION
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration; //˶ֵ1-50
+ public byte bySensitivity; //ȲΧ[1,5]
+ public byte byMode; //0-Ƶģʽ1-Ƶģʽ2-Ƶģʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ʸ߲
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_REACH_HIGHT
+ {
+ public NET_VCA_LINE struVcaLine; //ʸ߾
+ public ushort wDuration; //ʸֵ߱1-120
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_GET_UP
+ {
+ public NET_VCA_POLYGON struRegion; //Χ
+ public ushort wDuration; //ֵ1-100
+ public byte byMode; //ģʽ,0-ͨģʽ,1-ߵģʽ,2-ͨģʽ
+ public byte bySensitivity; //ȲΧ[1,10]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ //Ʒ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_LEFT
+ {
+ public NET_VCA_POLYGON struRegion; // Χ
+ public ushort wDuration; // Ʒֵ 10-100
+ public byte bySensitivity; // ȲΧ[1,5]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ // Ʒȡ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_TAKE
+ {
+ public NET_VCA_POLYGON struRegion; // Χ
+ public ushort wDuration; // Ʒȡֵ10-100
+ public byte bySensitivity; // ȲΧ[1,5]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_OVER_TIME
+ {
+ public NET_VCA_POLYGON struRegion; // Χ
+ public ushort wDuration; // ʱֵ 4s-60000s
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_HUMAN_ENTER
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes; //ֽ
+ }
+
+ //ֽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_STICK_UP
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration;//ʱ䣺10-60룬10
+ public byte bySensitivity;//ȲΧ[1,5]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_SCANNER
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration;//ʱ䣺10-60
+ public byte bySensitivity;//ȲΧ[1,5]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_LEAVE_POSITION
+ {
+ public NET_VCA_POLYGON struRegion; //Χ
+ public ushort wLeaveDelay; //˱ʱ䣬λsȡֵ1-1800
+ public ushort wStaticDelay; //˯ʱ䣬λsȡֵ1-1800
+ public byte byMode; //ģʽ0-¼1-˯¼2-˯¼
+ public byte byPersonType; //ֵͣ0-ֵڣ1-˫ֵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //β
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_TRAIL
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wRes; /* */
+ public byte bySensitivity; /* ȲΧ[1,5] */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ز
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FALL_DOWN
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDuration; /* ¼ֵ 1-60s*/
+ public byte bySensitivity; /* ȲΧ[1,5] */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ǿͻ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_AUDIO_ABNORMAL
+ {
+ public ushort wDecibel; //ǿ
+ public byte bySensitivity; //ȲΧ[1,5]
+ public byte byAudioMode; //ģʽ0-ȼ⣬1-ֱֵ⣬2-ֱֵ
+ public byte byEnable; //ʹܣǷ
+ public byte byThreshold; //ֵ[0,100]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 54, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AUDIO_EXCEPTION
+ {
+ public uint dwSize;
+ public byte byEnableAudioInException; //ʹܣǷ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_VCA_AUDIO_ABNORMAL struAudioAbnormal;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmSched; //ʱ
+ public NET_DVR_HANDLEEXCEPTION_V40 struHandleException; //쳣ʽ
+ public uint dwMaxRelRecordChanNum; //¼ͨ ֻ֧
+ public uint dwRelRecordChanNum; //¼ͨ ʵֵ֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U4)]
+ public uint[] byRelRecordChan;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_TOILET_TARRY
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDelay; //ʱʱ[1,3600]λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_YARD_TARRY
+ {
+ public NET_VCA_POLYGON struRegion;//Χ
+ public ushort wDelay; //ŷ糡ʱ[1,120]λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_ADV_REACH_HEIGHT
+ {
+ public NET_VCA_POLYGON struRegion; //ʸ
+ public uint dwCrossDirection; //Խ(VCA_CROSS_DIRECTION): 0-˫1-2-ҵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_ADV_TRAVERSE_PLANE
+ {
+ public NET_VCA_POLYGON struRegion; //
+ public uint dwCrossDirection; //Խ(VCA_CROSS_DIRECTION): 0-˫1-2-ҵ
+ public byte bySensitivity; //ȲΧ[1,5]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ //¼
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_VCA_EVENT_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.U4)]
+ public uint[] uLen;//
+
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_TRAVERSE_PLANE struTraversePlane;//Խ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_AREA struArea;///뿪
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_INTRUSION struIntrusion;//ֲ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_LOITER struLoiter;//ǻ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_TAKE_LEFT struTakeTeft;///
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_PARKING struParking;//ͣ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_RUN struRun;//ܲ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_HIGH_DENSITY struHighDensity;//Աۼ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_VIOLENT_MOTION struViolentMotion; //˶
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_REACH_HIGHT struReachHight; //ʸ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_GET_UP struGetUp; //
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_LEFT struLeft; //Ʒ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_TAKE struTake; // Ʒȡ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_HUMAN_ENTER struHumanEnter; //Ա
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_OVER_TIME struOvertime; //ʱ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_STICK_UP struStickUp;//ֽ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_SCANNER struScanner;//
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_LEAVE_POSITION struLeavePos; //ڲ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_TRAIL struTrail; //β
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_FALL_DOWN struFallDown; //ز
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_AUDIO_ABNORMAL struAudioAbnormal; //ǿͻ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_ADV_REACH_HEIGHT struReachHeight; //ʸ߲
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_TOILET_TARRY struToiletTarry; //ʱ
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_YARD_TARRY struYardTarry; //ŷ糡
+ //[FieldOffsetAttribute(0)]
+ //public NET_VCA_ADV_TRAVERSE_PLANE struAdvTraversePlane;//߾
+ }
+
+ // ߴ
+ public enum SIZE_FILTER_MODE
+ {
+ IMAGE_PIX_MODE,//شС
+ REAL_WORLD_MODE,//ʵʴС
+ DEFAULT_MODE // Ĭģʽ
+ }
+
+ //ߴ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_SIZE_FILTER
+ {
+ public byte byActive;//Ƿߴ 0- 0-
+ public byte byMode;//ģʽSIZE_FILTER_MODE
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//0
+ public NET_VCA_RECT struMiniRect;//СĿ,ȫ0ʾ
+ public NET_VCA_RECT struMaxRect;//Ŀ,ȫ0ʾ
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_ONE_RULE
+ {
+ public byte byActive;//Ƿ,0-,0-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//Ϊ0ֶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName;//
+ public VCA_EVENT_TYPE dwEventType;//Ϊ¼
+ public NET_VCA_EVENT_UNION uEventParam;//Ϊ¼
+ public NET_VCA_SIZE_FILTER struSizeFilter;//ߴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_2, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType;//ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan;//¼ͨ,Ϊ1ʾͨ
+ }
+
+ //Ϊýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_RULECFG
+ {
+ public uint dwSize;//ṹ
+ public byte byPicProType;//ʱͼƬʽ 0- 0-ϴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_JPEGPARA struPictureParam;//ͼƬṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RULE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_ONE_RULE[] struRule;//
+ }
+
+ //ߴ˲
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FILTER_STRATEGY
+ {
+ public byte byStrategy; //ߴ˲ 0 - 1-߶ȺͿȹ,2-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_RULE_TRIGGER_PARAM
+ {
+ public byte byTriggerMode; //Ĵʽ0- ã1- 켣 2- Ŀ
+ public byte byTriggerPoint; //㣬ʽΪ켣ʱЧ 0- ,1-,2-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public float fTriggerArea; //Ŀٷֱ [0,100]ʽΪĿʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_ONE_RULE_V41
+ {
+ public byte byActive; //Ƿ,0-,0-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //Ϊ0ֶ
+ public ushort wEventTypeEx; //Ϊ¼չڴֶdwEventTypeοVCA_RULE_EVENT_TYPE_EX
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public uint dwEventType; //Ϊ¼ͣΪ˼ݣʹwEventTypeExȡ¼
+ public NET_VCA_EVENT_UNION uEventParam; //Ϊ¼
+ public NET_VCA_SIZE_FILTER struSizeFilter; //ߴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ,Ϊ1ʾͨ
+ public ushort wAlarmDelay; //ܱʱ0-5s,1-10,2-30s,3-60s,4-120s,5-300s,6-600s
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ public NET_VCA_FILTER_STRATEGY struFilterStrategy; //ߴ˲
+ public NET_VCA_RULE_TRIGGER_PARAM struTriggerParam; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //Ϊýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_RULECFG_V41
+ {
+ public uint dwSize; //ṹ
+ public byte byPicProType; //ʱͼƬʽ 0- 0-ϴ
+ public byte byUpLastAlarm; //2011-04-06 Ƿϴһεı
+ public byte byPicRecordEnable; /*2012-3-1ǷͼƬ洢, 0-, 1-*/
+ public byte byRes1;
+ public NET_DVR_JPEGPARA struPictureParam; //ͼƬṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RULE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_ONE_RULE_V41[] struRule; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //Ŀṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_TARGET_INFO
+ {
+ public uint dwID;//ĿID ,Աܶȹ߱ʱΪ0
+ public NET_VCA_RECT struRect; //Ŀ߽
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ //ĹϢ, ĻϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_RULE_INFO
+ {
+ public byte byRuleID;//ID,0-7
+ public byte byRes;//
+ public ushort wEventTypeEx; //Ϊ¼չڴֶdwEventTypeοVCA_RULE_EVENT_TYPE_EX
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName;//
+ public VCA_EVENT_TYPE dwEventType;//¼
+ public NET_VCA_EVENT_UNION uEventParam;//¼
+ }
+
+ //ǰ豸ַϢܷDZʾǰ豸ĵַϢ豸ʾĵַ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_DEV_INFO
+ {
+ public NET_DVR_IPADDR struDevIP;//ǰ豸ַ
+ public ushort wPort;//ǰ豸˿ںţ
+ public byte byChannel;//ǰ豸ͨ
+ public byte byIvmsChannel;// ֽ
+ }
+
+ //Ϊϱṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_RULE_ALARM
+ {
+ public uint dwSize;//ṹ
+ public uint dwRelativeTime;//ʱ
+ public uint dwAbsTime;//ʱ
+ public NET_VCA_RULE_INFO struRuleInfo;//¼Ϣ
+ public NET_VCA_TARGET_INFO struTargetInfo;//ĿϢ
+ public NET_VCA_DEV_INFO struDevInfo;//ǰ豸Ϣ
+ public uint dwPicDataLen;//ͼƬij Ϊ0ʾûͼƬ0ʾýṹͼƬ*/
+ public byte byPicType; //0-ͨͼƬ 1-ԱͼƬ
+ public byte byRelAlarmPicNum; //ͨͼƬ
+ public byte bySmart;//IDS豸0(Ĭֵ)Smart Functiom Return 1
+ public byte byPicTransType; //ͼƬݴ䷽ʽ: 0-ƣ1-url
+ public uint dwAlarmID; //IDԱʶͨϱ0ʾЧ
+ public ushort wDevInfoIvmsChannelEx; //NET_VCA_DEV_INFObyIvmsChannelܱͬʾֵϿͻbyIvmsChannelܼݣ255¿ͻ˰汾ʹwDevInfoIvmsChannelEx
+ public byte byRelativeTimeFlag; //dwRelativeTimeֶǷЧ 0-Ч 1-ЧdwRelativeTimeʾUTCʱ
+ public byte byAppendInfoUploadEnabled; //Ϣϴʹ 0-ϴ 1-ϴ
+ public IntPtr pAppendInfo; //ָϢNET_VCA_APPEND_INFOָ룬byAppendInfoUploadEnabledΪ1ʱbyTimeDiffFlagΪ1ʱЧ
+ public IntPtr pImage;//ָͼƬָ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SYSTEM_TIME
+ {
+ public ushort wYear; //
+ public ushort wMonth; //
+ public ushort wDay; //
+ public ushort wHour; //ʱ
+ public ushort wMinute; //
+ public ushort wSecond; //
+ public ushort wMilliSec; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //豸֧AIƽ̨룬ϴƵ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_AIOP_VIDEO_HEAD
+ {
+ public uint dwSize; //dwSize = sizeof(NET_AIOP_VIDEO_HEAD)
+ public uint dwChannel; //豸ͨͨţ
+ public NET_DVR_SYSTEM_TIME struTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szTaskID; //ƵIDƵɷ
+ public uint dwAIOPDataSize; //ӦAIOPDdataݳ
+ public uint dwPictureSize; //ӦͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szMPID; //ģͰIDƥAIOPļݽͨURI(GET /ISAPI/Intelligent/AIOpenPlatform/algorithmModel/management?format=json)ȡǰ豸صģͰlabel descriptionϢ
+ public IntPtr pBufferAIOPData; //AIOPDdata
+ public IntPtr pBufferPicture;//ӦͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 184, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //豸֧AIƽ̨룬ϴͼƬ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_AIOP_PICTURE_HEAD
+ {
+ public uint dwSize; //dwSize = sizeof(NET_AIOP_PICTURE_HEAD)
+ public NET_DVR_SYSTEM_TIME struTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szPID; //·ͼƬIDͼƬɷ
+ public uint dwAIOPDataSize; //ӦAIOPDdataݳ
+ public byte byStatus; //״ֵ̬0-ɹ1-ͼƬС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szMPID; //ģͰIDƥAIOPļݽ
+ public IntPtr pBufferAIOPData;//AIOPDdata
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 184, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_AIOP_POLLING_VIDEO_HEAD
+ {
+ public uint dwSize; //dwSize = sizeof(NET_AIOP_POLLING_VIDEO_HEAD)
+ public uint dwChannel; //豸ͨͨ(SDKЭ)
+ public NET_DVR_SYSTEM_TIME struTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szTaskID; //ѯץͼIDѯץͼɷ
+ public uint dwAIOPDataSize; //ӦAIOPDdataݳ
+ public uint dwPictureSize; //ӦͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szMPID; //ģͰIDƥAIOPļݽ
+ public IntPtr pBufferAIOPData;//AIOPDdata
+ public IntPtr pBufferPicture;//ӦͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 184, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_AIOP_POLLING_SNAP_HEAD
+ {
+ public uint dwSize; //dwSize = sizeof(NET_AIOP_POLLING_SNAP_HEAD)
+ public uint dwChannel; //豸ͨͨ(SDKЭ)
+ public NET_DVR_SYSTEM_TIME struTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szTaskID; //ѯץͼIDѯץͼɷ
+ public uint dwAIOPDataSize; //ӦAIOPDdataݳ
+ public uint dwPictureSize; //ӦͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] szMPID; //ģͰIDƥAIOPļݽ
+ public IntPtr pBufferAIOPData;//AIOPDdata
+ public IntPtr pBufferPicture;//ͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 184, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ΪDSPϢӽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_DRAW_MODE
+ {
+ public uint dwSize;
+ public byte byDspAddTarget;//ǷĿ
+ public byte byDspAddRule;//Ƿӹ
+ public byte byDspPicAddTarget;//ץͼǷĿ
+ public byte byDspPicAddRule;//ץͼǷӹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //
+ public enum OBJECT_TYPE_ENUM
+ {
+ ENUM_OBJECT_TYPE_COAT = 1 //
+ }
+
+ //ɫṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OBJECT_COLOR_COND
+ {
+ public uint dwChannel; //ͨ
+ public uint dwObjType; //ͣμOBJECT_TYPE_ENUM
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ͼƬ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PIC
+ {
+ public byte byPicType; //ͼƬͣ1-jpg
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwPicWidth; //ͼƬ
+ public uint dwPicHeight; //ͼƬ߶
+ public uint dwPicDataLen; //ͼƬʵʴС
+ public uint dwPicDataBuffLen; //ͼƬݻС
+ public IntPtr byPicDataBuff; //ͼƬݻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ɫ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OBJECT_COLOR_UNION
+ {
+ public NET_DVR_COLOR struColor; //ɫֵ
+ public NET_DVR_PIC struPicture; //ͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ɫṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OBJECT_COLOR
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; //0-ã1-
+ public byte byColorMode; //ȡɫʽ1-ɫֵ2-ͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_DVR_OBJECT_COLOR_UNION uObjColor; //ɫ壬ȡֵȡɫʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //
+ public enum AREA_TYPE_ENUM
+ {
+ ENUM_OVERLAP_REGION = 1,//ͬ
+ ENUM_BED_LOCATION = 2 //λ
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AUXAREA
+ {
+ public uint dwAreaType; //ͣμAREA_TYPE_ENUM
+ public byte byEnable; //0-ã1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_VCA_POLYGON struPolygon; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //б
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AUXAREA_LIST
+ {
+ public uint dwSize; // ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_AUXAREA_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_AUXAREA[] struArea; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ͨģʽ
+ public enum CHAN_WORKMODE_ENUM
+ {
+ ENUM_CHAN_WORKMODE_INDEPENDENT = 1, //ģʽ
+ ENUM_CHAN_WORKMODE_MASTER = 2, //ģʽ
+ ENUM_CHAN_WORKMODE_SLAVE = 3 //ģʽ
+ }
+
+ //ͨģʽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHANNEL_WORKMODE
+ {
+ public uint dwSize; //ṹС
+ public byte byWorkMode; //ģʽμCHAN_WORKMODE_ENUM
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //豸ͨṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHANNEL
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAddress; //豸IP
+ public ushort wDVRPort; //˿ں
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; //û
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; //
+ public uint dwChannel; //ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ͨϢ
+ [StructLayout(LayoutKind.Explicit)]
+ public struct NET_DVR_SLAVE_CHANNEL_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 152, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //С
+ }
+
+ //ͨṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SLAVE_CHANNEL_PARAM
+ {
+ public byte byChanType; //ͨͣ1-ͨ2-Զͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_DVR_SLAVE_CHANNEL_UNION uSlaveChannel; //ͨ壬ȡֵbyChanType
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+
+ //ͨýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SLAVE_CHANNEL_CFG
+ {
+ public uint dwSize; //ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SLAVE_CHANNEL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SLAVE_CHANNEL_PARAM[] struChanParam;//ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //Ƶϼ¼
+ public enum VQD_EVENT_ENUM
+ {
+ ENUM_VQD_EVENT_BLUR = 1, //ͼģ
+ ENUM_VQD_EVENT_LUMA = 2, //쳣
+ ENUM_VQD_EVENT_CHROMA = 3, //ͼƫɫ
+ ENUM_VQD_EVENT_SNOW = 4, //ѩ
+ ENUM_VQD_EVENT_STREAK = 5, //Ƹ
+ ENUM_VQD_EVENT_FREEZE = 6, //涳
+ ENUM_VQD_EVENT_SIGNAL_LOSS = 7, //źŶʧ
+ ENUM_VQD_EVENT_PTZ = 8, //̨ʧ
+ ENUM_VQD_EVENT_SCNENE_CHANGE = 9, //ͻ
+ ENUM_VQD_EVENT_VIDEO_ABNORMAL = 10, //Ƶ쳣
+ ENUM_VQD_EVENT_VIDEO_BLOCK = 11, //Ƶڵ
+ }
+
+ //Ƶ¼ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VQD_EVENT_COND
+ {
+ public uint dwChannel; //ͨ
+ public uint dwEventType; //¼ͣμVQD_EVENT_ENUM
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //Ƶ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VQD_EVENT_PARAM
+ {
+ public byte byThreshold; //ֵΧ[0,100]
+ public byte byTriggerMode; //1-2-δ
+ public byte byUploadPic; //0-ϴͼƬ1-ϴͼƬǷϴͼƬºԴ豸ȡ¼ӦµһűͼƬμӿNET_DVR_StartDownload
+ public byte byRes1; //
+ public uint dwTimeInterval; //ʱΧ[0,3600] λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //Ƶ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VQD_EVENT_RULE
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; //0-ã1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_DVR_VQD_EVENT_PARAM struEventParam; //Ƶ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IVMS_IP_CHANNEL, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ1ʾͨ0ʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BASELINE_SCENE
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; //0-ã1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CONTROL_BASELINE_SCENE_PARAM
+ {
+ public uint dwSize; //ṹС
+ public uint dwChannel; //ͨ
+ public byte byCommand; //ͣ1-ֶαݲʹã2-»
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 127, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //Ƶϱṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VQD_ALARM
+ {
+ public uint dwSize; //ṹС
+ public uint dwRelativeTime; //ʱ
+ public uint dwAbsTime; //ʱ
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public uint dwEventType; //¼ͣοVQD_EVENT_ENUM
+ public float fThreshold; //ֵ[0.000,1.000]
+ public uint dwPicDataLen; //ͼƬȣΪ0ʾûͼƬ
+ public IntPtr pImage; //ָͼƬָ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //궨ӽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CB_POINT
+ {
+ public NET_VCA_POINT struPoint; //궨㣬ǹ
+ public NET_DVR_PTZPOS struPtzPos; //PTZ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //궨ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TRACK_CALIBRATION_PARAM
+ {
+ public byte byPointNum; //Ч궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CALIB_PT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CB_POINT[] struCBPoint; //궨
+ }
+
+ //ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TRACK_CFG
+ {
+ public uint dwSize; //ṹ
+ public byte byEnable; //궨ʹ
+ public byte byFollowChan; // ƵĴͨ
+ public byte byDomeCalibrate; //ܸ궨1 0
+ public byte byRes; // ֽ
+ public NET_DVR_TRACK_CALIBRATION_PARAM struCalParam; //궨
+ }
+
+ //ģʽ
+ public enum TRACK_MODE
+ {
+ MANUAL_CTRL = 0, //ֶ
+ ALARM_TRACK //
+ }
+
+ //ֶƽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MANUAL_CTRL_INFO
+ {
+ public NET_VCA_POINT struCtrlPoint;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ģʽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TRACK_MODE
+ {
+ public uint dwSize; //ṹ
+ public byte byTrackMode; //ģʽ
+ public byte byRuleConfMode; //øģʽ0-ø٣1-Զø
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //0
+ [StructLayout(LayoutKind.Explicit)]
+ public struct uModeParam
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwULen;
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARM_JPEG
+ {
+ public byte byPicProType; /*ʱͼƬʽ 0- 1-ϴ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ public NET_DVR_JPEGPARA struPicParam; /*ͼƬṹ*/
+ }
+
+ //Ϊṹ
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_ONE_RULE
+ {
+ public byte byActive;/* Ƿ,0-, 0- */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//Ϊ0ֶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName;//
+ public VCA_EVENT_TYPE dwEventType;//Ϊ¼
+ public NET_VCA_EVENT_UNION uEventParam;//Ϊ¼
+ public NET_VCA_SIZE_FILTER struSizeFilter;//ߴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 68, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;/*Ϊ0*/
+ }
+
+ // ǹṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_RULECFG
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RULE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_IVMS_ONE_RULE[] struRule; //
+ }
+
+ // IVMSΪýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_BEHAVIORCFG
+ {
+ public uint dwSize;
+ public byte byPicProType;//ʱͼƬʽ 0- 0-ϴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_JPEGPARA struPicParam;//ͼƬṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_IVMS_RULECFG[] struRuleCfg;//ÿʱζӦ
+ }
+
+ //ܷȡƻӽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_DEVSCHED
+ {
+ public NET_DVR_SCHEDTIME struTime;//ʱ
+ public NET_DVR_PU_STREAM_CFG struPUStream;//ǰȡ
+ }
+
+ //ܷDzýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_STREAMCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_IVMS_DEVSCHED[] struDevSched;//ʱǰȡԼϢ
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_MASK_REGION
+ {
+ public byte byEnable;//Ƿ, 0-0-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//0
+ public NET_VCA_POLYGON struPolygon;//ζ
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_MASK_REGION_LIST
+ {
+ public uint dwSize;//ṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //0
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_MASK_REGION_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_MASK_REGION[] struMask;//
+ }
+
+ //ATM
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_ENTER_REGION
+ {
+ public uint dwSize;
+ public byte byEnable;//Ƿ0-0-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_VCA_POLYGON struPolygon;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //IVMS
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_MASK_REGION_LIST
+ {
+ public uint dwSize;//ṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_MASK_REGION_LIST[] struList;
+ }
+
+ //IVMSATM
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_ENTER_REGION
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_ENTER_REGION[] struEnter;//
+ }
+
+ // ivms ͼƬϴṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_ALARM_JPEG
+ {
+ public byte byPicProType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_JPEGPARA struPicParam;
+ }
+
+ // IVMS
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_IVMS_SEARCHCFG
+ {
+ public uint dwSize;
+ public NET_DVR_MATRIX_DEC_REMOTE_PLAY struRemotePlay;// Զ̻ط
+ public NET_IVMS_ALARM_JPEG struAlarmJpeg;// ϴͼƬ
+ public NET_IVMS_RULECFG struRuleCfg;//IVMS Ϊ
+ }
+
+ /************************************end******************************************/
+ //NAS֤
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IDENTIFICATION_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; /* û 32*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; /* 16*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_MOUNT_PARAM_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 52, ArraySubType = UnmanagedType.I1)]
+ public byte[] uLen; //ṹС
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NAS_MOUNT_PARAM
+ {
+ public byte byMountType; //0,1~NFS, 2~ SMB/CIFS
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_MOUNT_PARAM_UNION uMountParam;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_MOUNTMETHOD_PARAM_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 56, ArraySubType = UnmanagedType.I1)]
+ public byte[] uLen; //ṹС
+ }
+
+ //Ӳ̽ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SINGLE_NET_DISK_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+ public NET_DVR_IPADDR struNetDiskAddr;//Ӳ̵ַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PATHNAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDirectory;// PATHNAME_LEN = 128
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 68, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;//
+ }
+
+ public const int MAX_NET_DISK = 16;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NET_DISKCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NET_DISK, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SINGLE_NET_DISK_INFO[] struNetDiskParam;
+ }
+
+ //¼
+ //
+ public enum MAIN_EVENT_TYPE
+ {
+ EVENT_MOT_DET = 0,//ƶ
+ EVENT_ALARM_IN = 1,//
+ EVENT_VCA_BEHAVIOR = 2,//Ϊ
+ EVENT_INQUEST = 3, //Ѷ¼
+ EVENT_VCA_DETECTION = 4, //
+ EVENT_STREAM_INFO = 100 //IDϢ
+ }
+
+ public const int INQUEST_START_INFO = 0x1001; /*ѶʿʼϢ*/
+ public const int INQUEST_STOP_INFO = 0x1002; /*ѶֹͣϢ*/
+ public const int INQUEST_TAG_INFO = 0x1003; /*صϢ*/
+ public const int INQUEST_SEGMENT_INFO = 0x1004; /*ѶƬ״̬Ϣ*/
+
+ public enum VCA_DETECTION_MINOR_TYPE:uint
+ {
+ EVENT_VCA_TRAVERSE_PLANE = 1, //Խ
+ EVENT_FIELD_DETECTION, //
+ EVENT_AUDIO_INPUT_ALARM, //Ƶ쳣
+ EVENT_SOUND_INTENSITY_ALARM, //ǿͻ
+ EVENT_FACE_DETECTION, //
+ EVENT_VIRTUAL_FOCUS_ALARM, /*齹*/
+ EVENT_SCENE_CHANGE_ALARM, /**/
+ EVENT_ALL = 0xffffffff //ʾȫ
+ }
+
+ //ΪͶӦĴͣ 0xffffʾȫ
+ public enum BEHAVIOR_MINOR_TYPE
+ {
+ EVENT_TRAVERSE_PLANE = 0,// Խ,
+ EVENT_ENTER_AREA,//Ŀ,֧
+ EVENT_EXIT_AREA,//Ŀ뿪,֧
+ EVENT_INTRUSION,// ܽ,֧
+ EVENT_LOITER,//ǻ,֧
+ EVENT_LEFT_TAKE,//,֧
+ EVENT_PARKING,//ͣ,֧
+ EVENT_RUN,//,֧
+ EVENT_HIGH_DENSITY,//Աܶ,֧
+ EVENT_STICK_UP,//ֽ,֧
+ EVENT_INSTALL_SCANNER,//װ,֧
+ EVENT_OPERATE_OVER_TIME, // ʱ
+ EVENT_FACE_DETECT, // 쳣
+ EVENT_LEFT, // Ʒ
+ EVENT_TAKE, // Ʒȡ
+ EVENT_LEAVE_POSITION, //¼
+ EVENT_TRAIL_INFO = 16, //β
+ EVENT_FALL_DOWN_INFO = 19, //
+ EVENT_OBJECT_PASTE = 20, // ճ
+ EVENT_FACE_CAPTURE_INFO = 21, //
+ EVENT_MULTI_FACES_INFO = 22, //
+ EVENT_AUDIO_ABNORMAL_INFO = 23, //ǿͻ
+ EVENT_DETECT = 24 //
+ }
+
+ // 100ӦС
+ public enum STREAM_INFO_MINOR_TYPE
+ {
+ EVENT_STREAM_ID = 0, // ID
+ EVENT_TIMING = 1, // ʱ¼
+ EVENT_MOTION_DETECT = 2, // ƶ
+ EVENT_ALARM = 3, // ¼
+ EVENT_ALARM_OR_MOTION_DETECT = 4, // ƶ
+ EVENT_ALARM_AND_MOTION_DETECT = 5, // ƶ
+ EVENT_COMMAND_TRIGGER = 6, //
+ EVENT_MANNUAL = 7, // ֶ¼
+ EVENT_BACKUP_VOLUME = 8 // 浵¼
+ }
+
+ //ŵCVR
+ public const int MAX_ID_COUNT = 256;
+ public const int MAX_STREAM_ID_COUNT = 1024;
+ public const int STREAM_ID_LEN = 32;
+ public const int PLAN_ID_LEN = 32;
+
+ // Ϣ - 72ֽڳ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_STREAM_INFO
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = STREAM_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byID; //ID
+ public uint dwChannel; //豸ͨ0xffffffffʱʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public void Init()
+ {
+ byID = new byte[STREAM_ID_LEN];
+ byRes = new byte[32];
+ }
+ }
+
+ //¼ 200-04-07 9000_1.1
+ public const int SEARCH_EVENT_INFO_LEN = 300;
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_ALARM_BYBIT
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMIN_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmInNo;//ţbyAlarmInNo[0]1ʾɱ1¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SEARCH_EVENT_INFO_LEN - MAX_ALARMIN_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void init()
+ {
+ byAlarmInNo = new byte[MAX_ALARMIN_V30];
+ byRes = new byte[SEARCH_EVENT_INFO_LEN - MAX_CHANNUM_V30];
+ }
+ }
+
+ // ֵʾ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_ALARM_BYVALUE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wAlarmInNo;//ţbyAlarmInNo[0]1ʾɱ1¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 44, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void init()
+ {
+ wAlarmInNo = new ushort[128];
+ byRes = new byte[44];
+ }
+ }
+
+ //ƶ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_MOTION_BYBIT
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMotDetChanNo;//ƶͨbyMotDetChanNo[0]1ʾͨ1ƶⴥ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SEARCH_EVENT_INFO_LEN - MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void init()
+ {
+ byMotDetChanNo = new byte[MAX_CHANNUM_V30];
+ byRes = new byte[SEARCH_EVENT_INFO_LEN - MAX_CHANNUM_V30];
+ }
+ }
+
+ //ƶ--ֵ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_MOTION_BYVALUE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wMotDetChanNo;//ţbyAlarmInNo[0]1ʾɱ1¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 172, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void init()
+ {
+ wMotDetChanNo = new ushort[64];
+ byRes = new byte[172];
+ }
+ }
+
+ //Ϊ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_VCA_BYBIT
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byChanNo;//¼ͨ
+ public byte byRuleID;//ID0xffʾȫ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 235, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+
+ public void init()
+ {
+ byChanNo = new byte[MAX_CHANNUM_V30];
+ byRes1 = new byte[235];
+ }
+ }
+
+ //Ϊ--ֵʽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_VCA_BYVALUE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wChanNo; //¼ͨ
+ public byte byRuleID; //Ϊͣ0xffʾȫ0ʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 171, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /**/
+ public void init()
+ {
+ wChanNo = new ushort[64];
+ byRes = new byte[171];
+ }
+ }
+
+ //Ѷ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_INQUEST_PARAM
+ {
+ public byte byRoomIndex; //Ѷұ,1ʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 299, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public void init()
+ {
+ byRes = new byte[299];
+ }
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_VCADETECT_BYBIT
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byChan;//ͨţ±ʾbyChan[0]1ʾͨ1ƶⴥ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 44, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public void init()
+ {
+ byChan = new byte[256];
+ byRes = new byte[44];
+ }
+ }
+
+ // ͨŰֵʾ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_VCADETECT_BYVALUE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30-1, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwChanNo;// ͨ,ֵʾ0xffffffffЧҺҲʾЧֵ
+ public byte byAll;//0-ʾȫ1-ʾȫ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 47, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public void init()
+ {
+ dwChanNo = new uint[MAX_CHANNUM_V30 - 1];
+ byRes = new byte[47];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_STREAMID_PARAM
+ {
+ public NET_DVR_STREAM_INFO struIDInfo; // idϢ72ֽڳ
+ public uint dwCmdType; // ⲿͣNVRƴ洢ʹ
+ public byte byBackupVolumeNum; //浵ţCVRʹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 223, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public void init()
+ {
+ struIDInfo.Init();
+ byRes = new byte[223];
+ }
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public struct SEARCH_EVENT_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SEARCH_EVENT_INFO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLen;
+ /* [FieldOffsetAttribute(0)]
+ public EVENT_ALARM_BYBIT struAlarmParam;
+ [FieldOffsetAttribute(0)]
+ public EVENT_ALARM_BYVALUE struAlarmParamByValue;
+ [FieldOffsetAttribute(0)]
+ public EVENT_MOTION_BYBIT struMotionParam;
+ [FieldOffsetAttribute(0)]
+ public EVENT_MOTION_BYVALUE struMotionParamByValue;
+ [FieldOffsetAttribute(0)]
+ public EVENT_VCA_BYBIT struVcaParam;
+ [FieldOffsetAttribute(0)]
+ public EVENT_VCA_BYVALUE struVcaParamByValue;
+ [FieldOffsetAttribute(0)]
+ public EVENT_INQUEST_PARAM struInquestParam;
+ [FieldOffsetAttribute(0)]
+ public EVENT_VCADETECT_BYBIT struVCADetectByBit;
+ [FieldOffsetAttribute(0)]
+ public EVENT_VCADETECT_BYVALUE struVCADetectByValue;
+ [FieldOffsetAttribute(0)]
+ public EVENT_STREAMID_PARAM struStreamIDParam;
+ * */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SEARCH_EVENT_PARAM
+ {
+ public ushort wMajorType;//0-ƶ⣬1-, 2-¼
+ public ushort wMinorType;//- ͱ仯0xffffʾȫ
+ public NET_DVR_TIME struStartTime;//Ŀʼʱ䣬ֹͣʱ: ͬʱΪ(0, 0) ʾʱ俪ʼǰ4000¼
+ public NET_DVR_TIME struEndTime;
+ public byte byLockType; // 0xff-ȫ0-δ1-
+ public byte byValue; //0-λʾ1-ֵʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 130, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ public SEARCH_EVENT_UNION uSeniorPara;
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_ALARM_RET
+ {
+ public uint dwAlarmInNo;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SEARCH_EVENT_INFO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void init()
+ {
+ byRes = new byte[SEARCH_EVENT_INFO_LEN];
+ }
+ }
+ //ƶ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_MOTION_RET
+ {
+ public uint dwMotDetNo;//ƶͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SEARCH_EVENT_INFO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void init()
+ {
+ byRes = new byte[SEARCH_EVENT_INFO_LEN];
+ }
+ }
+ //Ϊ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_VCA_RET
+ {
+ public uint dwChanNo;//¼ͨ
+ public byte byRuleID;//ID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName;//
+ public NET_VCA_EVENT_UNION uEvent;//Ϊ¼wMinorType = VCA_EVENT_TYPE¼
+
+ public void init()
+ {
+ byRes1 = new byte[3];
+ byRuleName = new byte[NAME_LEN];
+ }
+ }
+
+ //Ѷ¼ѯ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_INQUEST_RET
+ {
+ public byte byRoomIndex; //Ѷұ,1ʼ
+ public byte byDriveIndex; //¼,1ʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwSegmentNo; //ƬڱѶе,1ʼ
+ public ushort wSegmetSize; //ƬϵĴС, λM
+ public ushort wSegmentState; //Ƭ״̬ 0 ¼1 ¼쳣2 ¼Ѷ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 288, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+
+ public void init()
+ {
+ byRes1 = new byte[6];
+ byRes2 = new byte[288];
+ }
+ }
+
+ //id¼ѯ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct EVENT_STREAMID_RET
+ {
+ public uint dwRecordType; //¼ 0-ʱ¼ 1-ƶ 2-¼ 3-|ƶ 4-&ƶ 5- 6-ֶ¼ 7- 8- 9-ܱ 10-ش¼
+ public uint dwRecordLength; //¼С
+ public byte byLockFlag; // ־ 0û 1
+ public byte byDrawFrameType; // 0dz֡¼ 1֡¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFileName; //ļ
+ public uint dwFileIndex; // 浵ϵļ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ public void init()
+ {
+ byRes1 = new byte[2];
+ byFileName = new byte[NAME_LEN];
+ byRes = new byte[256];
+ }
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public struct SEARCH_EVENT_RET
+ {
+ [FieldOffset(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 304, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEventRetUnion;
+ /*
+ [FieldOffset(0)]
+ public EVENT_ALARM_RET struAlarmRet;
+ [FieldOffset(0)]
+ public EVENT_MOTION_RET struMotionRet;
+ [FieldOffset(0)]
+ public EVENT_VCA_RET struVcaRet;
+ [FieldOffset(0)]
+ public EVENT_INQUEST_RET struInquestRet;
+ [FieldOffset(0)]
+ public EVENT_STREAMID_RET struStreamIDRet;
+ * */
+ }
+ //ҷؽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SEARCH_EVENT_RET
+ {
+ public ushort wMajorType;//MA
+ public ushort wMinorType;//
+ public NET_DVR_TIME struStartTime;//¼ʼʱ
+ public NET_DVR_TIME struEndTime;//¼ֹͣʱ䣬¼ʱͿʼʱһ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byChan;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 36, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public SEARCH_EVENT_RET uSeniorRet;
+
+ public void init()
+ {
+ byChan = new byte[MAX_CHANNUM_V30];
+ byRes = new byte[36];
+ }
+ }
+
+ //SDK_V35 2009-10-26
+
+ // 궨
+ public enum tagCALIBRATE_TYPE
+ {
+ PDC_CALIBRATE = 0x01, // PDC 궨
+ BEHAVIOR_OUT_CALIBRATE = 0x02, //Ϊⳡ궨
+ BEHAVIOR_IN_CALIBRATE = 0x03, // Ϊڳ궨
+ ITS_CALBIRETE = 0x04 // ͨ¼궨
+ }
+
+ public const int MAX_RECT_NUM = 6;
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECT_LIST
+ {
+ public byte byRectNum; // οĸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RECT_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_RECT[] struVcaRect; // Ϊ6Rect
+ }
+
+ // PDC 궨
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_CALIBRATION
+ {
+ public NET_DVR_RECT_LIST struRectList; // 궨οб
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 120, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ // 궨ߵʾǰ궨ʵʱʾǸ߶dzߡ
+ public enum LINE_MODE
+ {
+ HEIGHT_LINE, //߶
+ LENGTH_LINE //
+ }
+ /*ñ궨ϢʱӦλʹܣزûʹܣ궨Իȡص*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CAMERA_PARAM
+ {
+ public byte byEnableHeight; // Ƿʹ߶
+ public byte byEnableAngle; // ǷʹǶ
+ public byte byEnableHorizon; // Ƿʹƽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ public float fCameraHeight; // ߶
+ public float fCameraAngle; // Ƕ
+ public float fHorizon; // еĵƽ
+ }
+
+ /*fValueʾĿ߶ȵʱstruStartPointstruEndPointֱʾĿͷͽŲ㡣
+ * fValueʾ߶γȵʱstruStartPointstruEndPointֱʾ߶ʼյ㣬
+ * modeʾǰ߱ʾ߶dzߡ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LINE_SEGMENT
+ {
+ public byte byLineMode; // LINE_MODE
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ public NET_VCA_POINT struStartPoint;
+ public NET_VCA_POINT struEndPoint;
+ public float fValue;
+ }
+
+ public const int MAX_LINE_SEG_NUM = 8;
+
+ /*궨ĿǰҪ4-8ߣԻȡز*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BEHAVIOR_OUT_CALIBRATION
+ {
+ public uint dwLineSegNum; // ߸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LINE_SEG_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_LINE_SEGMENT[] struLineSegment; //
+ public NET_DVR_CAMERA_PARAM struCameraParam; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /*ýṹʾIASܿ궨аһĿһӦĸ߶ȱ궨ߣ
+ * ĿΪվӾο߶ʶͷ㵽ŵı궨ߣùһʾ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IN_CAL_SAMPLE
+ {
+ public NET_VCA_RECT struVcaRect; // Ŀ
+ public NET_DVR_LINE_SEGMENT struLineSegment; // ߶ȱ궨
+ }
+
+ public const int MAX_SAMPLE_NUM = 5;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BEHAVIOR_IN_CALIBRATION
+ {
+ public uint dwCalSampleNum; // 궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SAMPLE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IN_CAL_SAMPLE[] struCalSample; // 궨
+ public NET_DVR_CAMERA_PARAM struCameraParam; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int CALIB_PT_NUM = 4;
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ITS_CALIBRATION
+ {
+ public uint dwPointNum; //궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CALIB_PT_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_POINT[] struPoint; //ͼ
+ public float fWidth;
+ public float fHeight;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ }
+
+ // 궨
+ // ر궨Էڸýṹ
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_CALIBRATION_PRARM_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 240, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ṹС
+ /*[FieldOffsetAttribute(0)]
+ public NET_DVR_PDC_CALIBRATION struPDCCalibration; //PDC 궨
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_BEHAVIOR_OUT_CALIBRATION struBehaviorOutCalibration; // Ϊⳡ궨 ҪӦIVS
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_BEHAVIOR_IN_CALIBRATION struBehaviorInCalibration; // Ϊڳ궨ҪӦIAS
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_ITS_CALIBRATION struITSCalibration;
+ * */
+ }
+
+ // 궨ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CALIBRATION_CFG
+ {
+ public uint dwSize; //궨ṹС
+ public byte byEnable; // Ƿñ궨
+ public byte byCalibrationType; // 궨 ݲͬѡͬı궨 οCALIBRATE_TYPE
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_CALIBRATION_PRARM_UNION uCalibrateParam; // 궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ͳƷṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_ENTER_DIRECTION
+ {
+ public NET_VCA_POINT struStartPoint; //ͳƷʼ
+ public NET_VCA_POINT struEndPoint; // ͳƷ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_RULE_CFG
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; // Ƿ;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_VCA_POLYGON struPolygon; //
+ public NET_DVR_PDC_ENTER_DIRECTION struEnterDirection; // 뷽
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_RULE_CFG_V41
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; // Ƿ;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_VCA_POLYGON struPolygon; //
+ public NET_DVR_PDC_ENTER_DIRECTION struEnterDirection; // 뷽
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME struAlarmTime;//ʱ
+ public NET_DVR_TIME_EX struDayStartTime; //쿪ʼʱ䣬ʱЧ
+ public NET_DVR_TIME_EX struNightStartTime; //ҹʼʱ䣬ʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //ðϢṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TRIAL_VERSION_CFG
+ {
+ public uint dwSize;
+ public ushort wReserveTime; //ʣʱ䣬0xffffʾЧλ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 62, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SYN_CHANNEL_NAME_PARAM
+ {
+ public uint dwSize;
+ public uint dwChannel; //ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RESET_COUNTER_CFG
+ {
+ public uint dwSize;
+ public byte byEnable; //Ƿã0-ã1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_TIME_EX[] struTime;//ʱ䣬ʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VCA_CTRLINFO_COND
+ {
+ public uint dwSize;
+ public NET_DVR_STREAM_INFO struStreamInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VCA_CTRLINFO_CFG
+ {
+ public uint dwSize;
+ public byte byVCAEnable; //Ƿ
+ public byte byVCAType; //ͣVCA_CHAN_ABILITY_TYPE
+ public byte byStreamWithVCA; //ǷϢ
+ public byte byMode; //ģʽATM ʱVCA_CHAN_MODE_TYPE ,TFS ʱ TFS_CHAN_MODE_TYPEΪʱBEHAVIOR_SCENE_MODE_TYPE
+ public byte byControlType; //ͣλʾ0-1-
+ //byControlType &1 ǷץĹ
+ //byControlType &2 Ƿǰ豸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 83, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //Ϊ0
+ }
+
+ /*ͳƲ Ϊڲؼֲ
+ * HUMAN_GENERATE_RATE
+ * ĿٶȲPDCĿٶȡٶԽ죬ĿԽɡ
+ * ƵϲԱȶȽϵʱõĹСʱӦӿĿٶȣ Ŀ©죻
+ * ƵжԱȶȽϸʱ߹ϴʱӦýĿٶȣԼ졣
+ * ĿٶȲ51ٶ5죬ĬϲΪ3
+ *
+ * DETECT_SENSITIVE
+ * ĿȿƲPDCһΪĿȡ
+ * ԽߣԽױΪĿ꣬ԽԽѼΪĿꡣ
+ * ƵϲԱȶȽϵʱӦȣ Ŀ©죻
+ * ƵжԱȶȽϸʱӦýͼȣԼ졣
+ * Ӧ51ͣ5ߣĬϼΪ3
+ *
+ * TRAJECTORY_LEN
+ * 켣ɳȿƲʾɹ켣ʱҪĿλء
+ * Ӧ51ɳ켣5ɳ̣켣죬ĬϼΪ3
+ *
+ * TRAJECT_CNT_LEN
+ * 켣ȿƲʾ켣ʱҪĿλء
+ * Ӧ51Ҫ켣5Ҫ̣켣죬ĬϼΪ3
+ *
+ * PREPROCESS
+ * ͼԤƲ0 - 1 - ĬΪ0
+ *
+ * CAMERA_ANGLE
+ * Ƕ 0 - б 1 - ֱĬΪ0
+ */
+
+ public enum PDC_PARAM_KEY
+ {
+ HUMAN_GENERATE_RATE = 50, // Ŀٶ 50ʼ
+ DETECT_SENSITIVE = 51, //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_TARGET_INFO
+ {
+ public uint dwTargetID; // Ŀid
+ public NET_VCA_RECT struTargetRect; // Ŀ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_TARGET_IN_FRAME
+ {
+ public byte byTargetNum; //Ŀ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] yRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TARGET_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PDC_TARGET_INFO[] struTargetInfo; //ĿϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ //֡ͳƽʱʹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct UNION_STATFRAME
+ {
+ public uint dwRelativeTime; // ʱ
+ public uint dwAbsTime; // ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 92, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct UNION_STATTIME
+ {
+ public NET_DVR_TIME tmStart; // ͳʼʱ
+ public NET_DVR_TIME tmEnd; // ͳƽʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 92, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct UNION_PDCPARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 140, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_ALRAM_INFO
+ {
+ public uint dwSize; // PDCϴṹС
+ public byte byMode; // 0 ֡ͳƽ 1Сʱͳƽ
+ public byte byChannel; // ϴͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public UNION_PDCPARAM uStatModeParam;
+ public uint dwLeaveNum; // 뿪
+ public uint dwEnterNum; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ //Ϣѯ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PDC_QUERY
+ {
+ public NET_DVR_TIME tmStart;
+ public NET_DVR_TIME tmEnd;
+ public uint dwLeaveNum;
+ public uint dwEnterNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PTZ_POSITION
+ {
+ // ǷóóΪʱֶЧóλϢʱΪʹλ
+ public byte byEnable;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPtzPositionName; //λ
+ public NET_DVR_PTZPOS struPtzPos; //ptz
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_POSITION_RULE_CFG
+ {
+ public uint dwSize; // ṹС
+ public NET_DVR_PTZ_POSITION struPtzPosition; // λϢ
+ public NET_VCA_RULECFG struVcaRuleCfg; //Ϊ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 80, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_POSITION_RULE_CFG_V41
+ {
+ public uint dwSize; // ṹС
+ public NET_DVR_PTZ_POSITION struPtzPosition; // λϢ
+ public NET_VCA_RULECFG_V41 struVcaRuleCfg; //Ϊ
+ public byte byTrackEnable; //Ƿø
+ public byte byRes1;
+ public ushort wTrackDuration; //ٳʱ䣬λs
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 76, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LIMIT_ANGLE
+ {
+ public byte byEnable; // Ƿóλ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_PTZPOS struUp; // λ
+ public NET_DVR_PTZPOS struDown; // λ
+ public NET_DVR_PTZPOS struLeft; // λ
+ public NET_DVR_PTZPOS struRight; // λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_POSITION_INDEX
+ {
+ public byte byIndex; //
+ public byte byRes1;
+ public ushort wDwell; // ͣʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ public const int MAX_POSITION_NUM = 10;
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_POSITION_TRACK_CFG
+ {
+ public uint dwSize;
+ public byte byNum; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_POSITION_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_POSITION_INDEX[] struPositionIndex;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //Ѳ·Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PATROL_SCENE_INFO
+ {
+ public ushort wDwell; // ͣʱ 30-300
+ public byte byPositionID; // 1-10Ĭ0ʾѲ㲻ӳ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ѲϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PATROL_TRACKCFG
+ {
+ public uint dwSize; // ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PATROL_SCENE_INFO[] struPatrolSceneInfo; // Ѳ·
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //ع˵ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TRACK_PARAMCFG
+ {
+ public uint dwSize; // ṹС
+ public ushort wAlarmDelayTime; // ʱʱ䣬Ŀǰֻ֧ȫ Χ1-120
+ public ushort wTrackHoldTime; // ٳʱ Χ0-300
+ public byte byTrackMode; // IPDOME_TRACK_MODE
+ public byte byPreDirection; // ٷԤ 0- 1-
+ public byte byTrackSmooth; // 0- 1-
+ public byte byZoomAdjust; // ϵ μ±
+ public byte byMaxTrackZoom; //ٱϵ,0-ʾĬϱϵ,ȼ6-궨ֵ*1.0(Ĭ),1-5ΪС궨ֵֵԽССıԽ,7-15ΪŴֵԽŴıԽ
+ public byte byStopTrackWhenFindFace; //Ƿֹͣ 0- 1-
+ public byte byStopTrackThreshold; //ֵֹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //о
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DOME_MOVEMENT_PARAM
+ {
+ public ushort wMaxZoom; // ϵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 42, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ /********************************ܽͨ¼ begin****************************************/
+ public const int MAX_REGION_NUM = 8; // бĿ
+ public const int MAX_TPS_RULE = 8; // Ŀ
+ public const int MAX_AID_RULE = 8; // ¼Ŀ
+ public const int MAX_LANE_NUM = 8; // Ŀ
+
+ //ͨ¼
+ public enum TRAFFIC_AID_TYPE
+ {
+ CONGESTION = 0x01, //ӵ
+ PARKING = 0x02, //ͣ
+ INVERSE = 0x04, //
+ PEDESTRIAN = 0x08, //
+ DEBRIS = 0x10, // Ƭ
+ SMOKE = 0x20, //
+ OVERLINE = 0x40, //ѹ
+ VEHICLE_CONTROL_LIST = 0x80, //
+ SPEED = 0x100 //
+ }
+
+ public enum TRAFFIC_SCENE_MODE
+ {
+ FREEWAY = 0, // ٻⳡ
+ TUNNEL, //
+ BRIDGE //
+ }
+
+ public enum ITS_ABILITY_TYPE
+ {
+ ITS_CONGESTION_ABILITY = 0x01, //ӵ
+ ITS_PARKING_ABILITY = 0x02, //ͣ
+ ITS_INVERSE_ABILITY = 0x04, //
+ ITS_PEDESTRIAN_ABILITY = 0x08, //
+ ITS_DEBRIS_ABILITY = 0x10, // Ƭ
+ ITS_SMOKE_ABILITY = 0x20, //-
+ ITS_OVERLINE_ABILITY = 0x40, //ѹ
+ ITS_VEHICLE_CONTROL_LIST_ABILITY = 0x80, //
+ ITS_SPEED_ABILITY = 0x100, //
+ ITS_LANE_VOLUME_ABILITY = 0x010000, //
+ ITS_LANE_VELOCITY_ABILITY = 0x020000, //ƽٶ
+ ITS_TIME_HEADWAY_ABILITY = 0x040000, //ͷʱ
+ ITS_SPACE_HEADWAY_ABILITY = 0x080000, //ͷ
+ ITS_TIME_OCCUPANCY_RATIO_ABILITY = 0x100000, //ռʣʱ)
+ ITS_SPACE_OCCUPANCY_RATIO_ABILITY = 0x200000, //ռʣٷֱȼ㣨ռ)
+ ITS_LANE_QUEUE_ABILITY = 0x400000, //Ŷӳ
+ ITS_VEHICLE_TYPE_ABILITY = 0x800000, //
+ ITS_TRAFFIC_STATE_ABILITY = 0x1000000 //ͨ״̬
+ }
+
+ // ͨͳƲ
+ public enum ITS_TPS_TYPE
+ {
+ LANE_VOLUME = 0x01, //
+ LANE_VELOCITY = 0x02, //ٶ
+ TIME_HEADWAY = 0x04, //ͷʱ
+ SPACE_HEADWAY = 0x08, //ͷ
+ TIME_OCCUPANCY_RATIO = 0x10, //ռ (ʱ)
+ SPACE_OCCUPANCY_RATIO = 0x20, //ռʣٷֱȼ(ռ)
+ QUEUE = 0x40, //Ŷӳ
+ VEHICLE_TYPE = 0x80, //
+ TRAFFIC_STATE = 0x100 //ͨ״̬
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_REGION_LIST
+ {
+ public uint dwSize; // ṹС
+ public byte byNum; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_REGION_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_POLYGON[] struPolygon; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DIRECTION
+ {
+ public NET_VCA_POINT struStartPoint; // ʼ
+ public NET_VCA_POINT struEndPoint; //
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_LANE
+ {
+ public byte byEnable; //Ƿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLaneName; //
+ public NET_DVR_DIRECTION struFlowDirection;// ڳ
+ public NET_VCA_POLYGON struPolygon; //
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LANE_CFG
+ {
+ public uint dwSize; // ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LANE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_LANE[] struLane; // ±ΪID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ }
+
+ //ͨ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AID_PARAM
+ {
+ public ushort wParkingDuration; // Υͣ 10-120s
+ public ushort wPedestrianDuration; // ˳ʱ 1-120s
+ public ushort wDebrisDuration; // ʱ 10-120s
+ public ushort wCongestionLength; // ӵ³ֵ 5-200ף
+ public ushort wCongestionDuration; // ӵ³ 10-120s
+ public ushort wInverseDuration; // гʱ 1-10s
+ public ushort wInverseDistance; // оֵ λm Χ[2-100] Ĭ 10
+ public ushort wInverseAngleTolerance; // Ƕƫ 90-180,ļн
+ public ushort wIllegalParkingTime; // Υͣʱ[4,60]λ ,TFS(ͨΥȡ֤) ģʽ
+ public ushort wIllegalParkingPicNum; // ΥͣͼƬ[1,6], TFS(ͨΥȡ֤) ģʽ
+ public byte byMergePic; // ͼƬƴ,TFS ģʽ 0- ƴ 1- ƴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ }
+
+ //ͨ¼ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_AID_RULE
+ {
+ public byte byEnable; // Ƿ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public uint dwEventType; // ͨ¼ TRAFFIC_AID_TYPE
+ public NET_VCA_SIZE_FILTER struSizeFilter; // ߴ
+ public NET_VCA_POLYGON struPolygon; //
+ public NET_DVR_AID_PARAM struAIDParam; // ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_2, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ,Ϊ1ʾͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ͨ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AID_RULECFG
+ {
+ public uint dwSize; // ṹС
+ public byte byPicProType; //ʱͼƬʽ 0- 0-ϴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_DVR_JPEGPARA struPictureParam; //ͼƬṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_AID_RULE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_AID_RULE[] struOneAIDRule;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ͨ¼ṹ(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_AID_RULE_V41
+ {
+ public byte byEnable; // Ƿ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public uint dwEventType; // ͨ¼ TRAFFIC_AID_TYPE
+ public NET_VCA_SIZE_FILTER struSizeFilter; // ߴ
+ public NET_VCA_POLYGON struPolygon; //
+ public NET_DVR_AID_PARAM struAIDParam; // ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;// ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_IVMS_IP_CHANNEL, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ1ʾͨ0ʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ͨ¼(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AID_RULECFG_V41
+ {
+ public uint dwSize; // ṹС
+ public byte byPicProType; // ʱͼƬʽ 0- 0-ϴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_DVR_JPEGPARA struPictureParam; // ͼƬṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_AID_RULE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_AID_RULE_V41[] struAIDRule; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ͨͳƲṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_TPS_RULE
+ {
+ public byte byEnable; //Ƿʹܳͨ
+ public byte byLaneID; //ID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwCalcType; //ͳƲITS_TPS_TYPE
+ public NET_VCA_SIZE_FILTER struSizeFilter; //ߴ
+ public NET_VCA_POLYGON struVitrualLoop; //Ȧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_2, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ,һΪǷϴģܲҪ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //ֽ
+ }
+
+ //ͨͳƹýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_RULECFG
+ {
+ public uint dwSize; // ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TPS_RULE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_TPS_RULE[] struOneTpsRule; // ±ӦͨID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ //ͨͳƲṹ(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_TPS_RULE_V41
+ {
+ public byte byEnable; //Ƿʹܳͨ
+ public byte byLaneID; //ID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwCalcType; // ͳƲITS_TPS_TYPE
+ public NET_VCA_SIZE_FILTER struSizeFilter; //ߴ
+ public NET_VCA_POLYGON struVitrualLoop; //Ȧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ //ͨͳƹýṹ(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_RULECFG_V41
+ {
+ public uint dwSize; // ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TPS_RULE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_TPS_RULE_V41[] struOneTpsRule; // ±ӦͨID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ʵʱϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_PARAM
+ {
+ public byte byStart; // ʼ
+ public byte byCMD; // ţ01-ָ02-뿪ָ03-ӵ״ָ̬(Ϊ03ʱֻbyLaneStatebyQueueLenЧ)04-Ȧ״̬Ϊ04ʱwLoopStatewStateMaskЧʾbyLane϶ȦĹ״̬
+ public ushort wSpaceHeadway; //ͷ࣬
+ public ushort wDeviceID; // 豸ID
+ public ushort wDataLen; // ݳ
+ public byte byLane; // Ӧ
+ public byte bySpeed; // Ӧ٣KM/H
+ public byte byLaneState; // ״̬0-״̬1-ͨ2-ӵ3-
+ public byte byQueueLen; // ״̬Ŷӳȣ50ף
+ public ushort wLoopState; //Ȧ״̬ڼλʾȦ״̬ȦŴӾͷɽԶ״̬1-0-뿪
+ public ushort wStateMask; //Ȧ״̬룬λΪ1ӦwLoopState״̬λЧΪ0ʾЧ
+ public uint dwDownwardFlow; //ǰ ϵ³
+ public uint dwUpwardFlow; //ǰ µϳ
+ public byte byJamLevel; //ӵµȼbyLaneStateΪ3ʱЧ1-ȣ2-жȣ3-ض
+ public byte byVehicleDirection; //0-δ֪1-϶£2-¶
+ public byte byJamFlow; //ӵÿһϱһۼƳϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public ushort wTimeHeadway; // ͷʱ࣬
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LLI_PARAM
+ {
+ public float fSec;//[0.000000,60.000000]
+ public byte byDegree;//:γ[0,90] [0,180]
+ public byte byMinute;//[0,59]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LLPOS_PARAM
+ {
+ public byte byLatitudeType;//γͣ0-γ1-γ
+ public byte byLongitudeType;//ͣ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_LLI_PARAM struLatitude; /*γ*/
+ public NET_DVR_LLI_PARAM struLongitude; /**/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //TPSϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_ADDINFO
+ {
+ public NET_DVR_LLPOS_PARAM struLLPos;//һľγλϢ(byLaneState=3byQueueLen>0ʱŷ)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 1024, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //TPSʵʱϴ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_REAL_TIME_INFO
+ {
+ public uint dwSize; // ṹС
+ public uint dwChan;//ͨ
+ public NET_DVR_TIME_V30 struTime; //ʱ
+ public NET_DVR_TPS_PARAM struTPSRealTimeInfo;// ͨͳϢ
+ public IntPtr pAddInfoBuffer;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ /*ϢʶǷNET_DVR_TPS_ADDINFOṹ壩,0-Ϣ, 1-иϢ*/
+ public byte byAddInfoFlag;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ͳϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_LANE_PARAM
+ {
+ public byte byLane; // Ӧ
+ public byte bySpeed; // ƽٶ
+ public ushort wArrivalFlow; //
+ public uint dwLightVehicle; // Сͳ
+ public uint dwMidVehicle; // ͳ
+ public uint dwHeavyVehicle; // ͳ
+ public uint dwTimeHeadway; // ͷʱ࣬
+ public uint dwSpaceHeadway; // ͷ࣬
+ public float fSpaceOccupyRation; // ռռʣٷֱȼ,*1000
+ public float fTimeOccupyRation; // ʱռʣٷֱȼ,*1000
+ public byte byStoppingTimes; //ƽͣ
+ public byte byQueueLen; // ״̬Ŷӳȣ50ף
+ public byte byFlag; //ϴʶ0-ʾT1ʱͳƽ,1-ʾT2ʱͳ
+ public byte byVehicelNum; //
+ public ushort wDelay; //ƽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwNonMotor; // ǻ
+ }
+
+ // ͨͳϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_STATISTICS_PARAM
+ {
+ public byte byStart; // ʼ
+ public byte byCMD; // ţ 08-ʱָ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // Ԥֽ
+ public ushort wDeviceID; // 豸ID
+ public ushort wDataLen; // ݳ
+ public byte byTotalLaneNum; // Ч
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_TIME_V30 struStartTime; //ͳƿʼʱ
+ public uint dwSamplePeriod; //ͳʱ,λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TPS_RULE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_TPS_LANE_PARAM[] struLaneParam;
+ }
+
+ //TPSͳƹϴ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_STATISTICS_INFO
+ {
+ public uint dwSize; // ṹС
+ public uint dwChan;//ͨ
+ public NET_DVR_TPS_STATISTICS_PARAM struTPSStatisticsInfo;// ͨͳϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ͨ¼Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AID_INFO
+ {
+ public byte byRuleID; // ţΪýṹ±꣬0-16
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public uint dwAIDType; // ¼
+ public NET_DVR_DIRECTION struDirect; // ָ
+ public byte bySpeedLimit; //ֵλkm/h[0,255]
+ public byte byCurrentSpeed; //ǰٶֵλkm/h[0,255]
+ public byte byVehicleEnterState;//״̬ 0-Ч 1-ʻ 2-ʻ
+ public byte byState; //0-仯ϴ1-Ѳϴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byParkingID; //ͣλ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ //ͨ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AID_ALARM
+ {
+ public uint dwSize; // ṹ
+ public uint dwRelativeTime; // ʱ
+ public uint dwAbsTime; // ʱ
+ public NET_VCA_DEV_INFO struDevInfo; // ǰ豸Ϣ
+ public NET_DVR_AID_INFO struAIDInfo; // ͨ¼Ϣ
+ public uint dwPicDataLen; // ͼƬij Ϊ0ʾûͼƬ0ʾýṹͼƬ
+ public IntPtr pImage; // ָͼƬָ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //ͨȡ֤
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TFS_ALARM
+ {
+ public uint dwSize; //ṹС
+ public uint dwRelativeTime; //ʱ
+ public uint dwAbsTime; //ʱ
+ public uint dwIllegalType; //Υͣù궨壬dwIllegalTypeֵΪ0xffffffffʱʹbyIllegalCode
+ public uint dwIllegalDuration; //Υʱ䣨λ룩 = ץһͼƬʱ - ץĵһͼƬʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MONITORSITE_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitoringSiteID;//ţ·ڱšڲţ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DEVICE_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDeviceID; //豸
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public NET_DVR_SCENE_INFO struSceneInfo; //Ϣ
+ public NET_DVR_TIME_EX struBeginRecTime; //¼ʼʱ
+ public NET_DVR_TIME_EX struEndRecTime; //¼ʱ
+ public NET_DVR_AID_INFO struAIDInfo; //ͨ¼Ϣ
+ public NET_DVR_PLATE_INFO struPlateInfo; //Ϣ
+ public NET_DVR_VEHICLE_INFO struVehicleInfo; //Ϣ
+ public uint dwPicNum; //ͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.Struct)]
+ public NET_ITS_PICTURE_INFO[] struPicInfo; //ͼƬϢ8
+ public byte bySpecificVehicleType; //峵 οʶVTR_RESULT
+ public byte byLaneNo; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_DVR_TIME_V30 struTime;//ֶٶλǰʱ䡣
+ public uint dwSerialNo;//ţ
+ public byte byVehicleAttribute;//ԣλʾ0- (ͨ)bit1- Ʊ공(ı־)bit2- ΣƷֵ0- 1-
+ public byte byPilotSafebelt;//0-ʾδ֪,1-ϵȫ,2-ϵȫ
+ public byte byCopilotSafebelt;//0-ʾδ֪,1-ϵȫ,2-ϵȫ
+ public byte byPilotSunVisor;//0-ʾδ֪,1-,2-
+ public byte byCopilotSunVisor;//0-ʾδ֪, 1-,2-
+ public byte byPilotCall;// 0-ʾδ֪, 1-绰,2-绰
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = ILLEGAL_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byIllegalCode;//ΥչdwIllegalTypeֵΪ0xffffffffʹֵ
+ public ushort wCountry; // ֵ,öCOUNTRY_INDEX
+ public byte byRegion; //ֵ,0-1-ŷ(Europe Region)2-(Russian Region)3-ŷ&˹(EU&CIS) , 4-жMiddle East0xff-
+ public byte byCrossLine;//Ƿѹͣͣ0-ʾδ֪1-ѹߣ2-ѹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIAL_NO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byParkingSerialNO;//λ
+ public byte byCrossSpaces;//Ƿ粴λͣͣ0-ʾδ֪1-δ粴λͣ2-粴λͣ
+ public byte byAngledParking;//Ƿбͣͣ, 0-ʾδ֪1-δбͣ2-бͣ
+ public byte byAlarmValidity;//ŶȣʻʻŶȣΧ0-100ŶԽߣ¼ʵԽ
+ public byte byDoorsStatus;//״̬ 0-Źر 1-ſ
+ public uint dwXmlLen;//XMLϢ
+ public IntPtr pXmlBuf; // XMLϢָ,XMLӦEventNotificationAlert XML Block
+ //[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ //public byte[] byRes3; //32λSDKҪֽڶ
+ public byte byVehicleHeadTailStatus;//ͷβ״̬ 0- 1-ͷ 2-β
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 31, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //нṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LANE_QUEUE
+ {
+ public NET_VCA_POINT struHead; //ͷ
+ public NET_VCA_POINT struTail; //β
+ public uint dwLength; //ʵʶг λΪ [0-500]
+ }
+
+ public enum TRAFFIC_DATA_VARY_TYPE
+ {
+ NO_VARY, //ޱ仯
+ VEHICLE_ENTER, //Ȧ
+ VEHICLE_LEAVE, //뿪Ȧ
+ UEUE_VARY //б仯
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LANE_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public byte byRuleID; //ţΪýṹ±꣬0-7
+ public byte byVaryType; //ͨ仯 TRAFFIC_DATA_VARY_TYPE
+ public byte byLaneType; //л
+ public byte byRes1;
+ public uint dwLaneVolume; // ͳжٳͨ
+ public uint dwLaneVelocity; //ٶȣ
+ public uint dwTimeHeadway; //ͷʱ࣬
+ public uint dwSpaceHeadway; //ͷ࣬
+ public float fSpaceOccupyRation; //ռʣٷֱȼ㣨ռ)
+ public NET_DVR_LANE_QUEUE struLaneQueue; //г
+ public NET_VCA_POINT struRuleLocation; //Ȧĵλ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_INFO
+ {
+ public uint dwLanNum; // ͨijĿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TPS_RULE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_LANE_PARAM[] struLaneParam;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_ALARM
+ {
+ public uint dwSize; //ṹС
+ public uint dwRelativeTime; //ʱ
+ public uint dwAbsTime; //ʱ
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public NET_DVR_TPS_INFO struTPSInfo; //ͨ¼Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //ֽ
+ }
+
+ public enum TRAFFIC_DATA_VARY_TYPE_EX_ENUM
+ {
+ ENUM_TRAFFIC_VARY_NO = 0x00, //ޱ仯
+ ENUM_TRAFFIC_VARY_VEHICLE_ENTER = 0x01, //Ȧ
+ ENUM_TRAFFIC_VARY_VEHICLE_LEAVE = 0x02, //뿪Ȧ
+ ENUM_TRAFFIC_VARY_QUEUE = 0x04, //б仯
+ ENUM_TRAFFIC_VARY_STATISTIC = 0x08, //ͳݱ仯ÿӱ仯һΰƽٶȣռ/ʱռʣͨ״̬
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LANE_PARAM_V41
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public byte byRuleID; // ţΪýṹ±꣬0-7
+ public byte byLaneType; // л
+ public byte byTrafficState; // Ľͨ״̬0-Ч1-ͨ2-ӵ3-
+ public byte byRes1; //
+ public uint dwVaryType; // ͨ仯Ͳ TRAFFIC_DATA_VARY_TYPE_EX_ENUMλ
+ public uint dwTpsType; // ݱ仯ͱ־ʾǰϴͳƲУЩЧITS_TPS_TYPE,λ
+ public uint dwLaneVolume; // ͳжٳͨ
+ public uint dwLaneVelocity; // ٶȣ
+ public uint dwTimeHeadway ; // ͷʱ࣬
+ public uint dwSpaceHeadway; // ͷ࣬
+ public float fSpaceOccupyRation; // ռʣٷֱȼ㣨ռ)
+ public float fTimeOccupyRation; // ʱռʣٷֱȼ
+ public uint dwLightVehicle; // Сͳ
+ public uint dwMidVehicle; // ͳ
+ public uint dwHeavyVehicle; // ͳ
+ public NET_DVR_LANE_QUEUE struLaneQueue; // г
+ public NET_VCA_POINT struRuleLocation; // λȦ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_INFO_V41
+ {
+ public uint dwLanNum; // ͨijĿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TPS_RULE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_LANE_PARAM_V41[] struLaneParam;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FACEDETECT_RULECFG
+ {
+ public uint dwSize; // ṹС
+ public byte byEnable; // Ƿ
+ public byte byEventType; //¼ͣ 0-쳣; 1-;2-쳣&;
+ public byte byUpLastAlarm; //2011-04-06 Ƿϴһεı
+ public byte byUpFacePic; //Ƿϴͼ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName;
+ public NET_VCA_POLYGON struVcaPolygon; //
+ public byte byPicProType; //ʱͼƬʽ 0- 0-ϴ
+ public byte bySensitivity; //
+ public ushort wDuration; // ʱֵ
+ public NET_DVR_JPEGPARA struPictureParam; //ͼƬṹ
+ public NET_VCA_SIZE_FILTER struSizeFilter; //ߴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_2, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ,Ϊ1ʾͨ
+ public byte byPicRecordEnable; /*2012-3-1ǷͼƬ洢, 0-, 1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 39, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FACE_PIPCFG
+ {
+ public byte byEnable; //Ƿл
+ public byte byBackChannel; //ͨţͨ
+ public byte byPosition; //λã0-,1-,2-,3-
+ public byte byPIPDiv; //ϵ(:廭)0-1:4,1-1:9,2-1:16
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FACEDETECT_RULECFG_V41
+ {
+ public uint dwSize; // ṹС
+ public byte byEnable; // Ƿ
+ public byte byEventType; //¼ͣ 0-쳣; 1-;2-쳣&;
+ public byte byUpLastAlarm; //2011-04-06 Ƿϴһεı
+ public byte byUpFacePic; //Ƿϴͼ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName;
+ public NET_VCA_POLYGON struVcaPolygon; //
+ public byte byPicProType; //ʱͼƬʽ 0- 0-ϴ
+ public byte bySensitivity; //
+ public ushort wDuration; // ʱֵ
+ public NET_DVR_JPEGPARA struPictureParam; //ͼƬṹ
+ public NET_VCA_SIZE_FILTER struSizeFilter; //ߴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ,Ϊ1ʾͨ
+ public byte byPicRecordEnable; /*2012-10-22ǷͼƬ洢, 0-, 1-*/
+ public byte byRes1;
+ public ushort wAlarmDelay; //2012-10-22ܱʱ0-5s,1-10,2-30s,3-60s,4-120s,5-300s,6-600s
+ public NET_DVR_FACE_PIPCFG struFacePIP; //2012-11-7л
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 28, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FACEDETECT_ALARM
+ {
+ public uint dwSize; // ṹС
+ public uint dwRelativeTime; // ʱ
+ public uint dwAbsTime; // ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public NET_VCA_TARGET_INFO struTargetInfo; //ĿϢ
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public uint dwPicDataLen; //ͼƬij Ϊ0ʾûͼƬ0ʾýṹͼƬ*/
+ public byte byAlarmPicType; // 0-쳣ͼƬ 1- ͼƬ,2-
+ public byte byPanelChan; /*2012-3-1ͨͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwFacePicDataLen; //ͼƬij Ϊ0ʾûͼƬ0ʾýṹͼƬ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 48, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ public IntPtr pFaceImage; //ָͼָ
+ public IntPtr pImage; //ָͼƬָ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EVENT_PARAM_UNION
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.U4)]
+ public uint[] uLen; // СΪ12ֽ
+ public uint dwHumanIn; //˽ӽ 0 - 1-
+ public float fCrowdDensity; // Աۼֵ
+ }
+
+ //Ŀǰֻ¼Աۼ¼ʵʱϴ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EVENT_INFO
+ {
+ public byte byRuleID; // Rule ID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRuleName; //
+ public uint dwEventType; // VCA_EVENT_TYPE
+ public NET_DVR_EVENT_PARAM_UNION uEventParam; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EVENT_INFO_LIST
+ {
+ public byte byNum; // ¼ʵʱϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RULE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_EVENT_INFO[] struEventInfo; // ¼ʵʱϢ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RULE_INFO_ALARM
+ {
+ public uint dwSize; // ṹС
+ public uint dwRelativeTime; // ʱ
+ public uint dwAbsTime; // ʱ
+ public NET_VCA_DEV_INFO struDevInfo; // ǰ豸Ϣ
+ public NET_DVR_EVENT_INFO_LIST struEventInfoList; //¼Ϣб
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ //ʱ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_SCENE_TIME
+ {
+ public byte byActive; //0 -Ч,1CЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwSceneID; //ID
+ public NET_DVR_SCHEDTIME struEffectiveTime; //Чʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //Чʱ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCENE_TIME_CFG
+ {
+ public uint dwSize; //ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SCENE_TIMESEG_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_SCENE_TIME[] struSceneTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_SCENE_CFG
+ {
+ public byte byEnable; //Ƿøó,0- 1-
+ public byte byDirection; //ⷽ 1-У2-У3-˫4-ɶ5-6-7-ɱϣ8-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwSceneID; //ID(ֻ), 0 - ʾóЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySceneName; //
+ public NET_DVR_PTZPOS struPtzPos; //ptz
+ public uint dwTrackTime; //ʱ[5,300] 룬TFS(ͨȡ֤)ģʽЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCENE_CFG
+ {
+ public uint dwSize; //ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ITS_SCENE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_SCENE_CFG[] struSceneCfg; //Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ೡ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCENE_COND
+ {
+ public uint dwSize; //ṹС
+ public Int32 lChannel; //ͨ
+ public uint dwSceneID; //ID, 0-ʾóЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 48, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ȡ֤ʽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FORENSICS_MODE
+ {
+ public uint dwSize; //ṹС
+ public byte byMode; // 0-ֶȡ֤ ,1-Զȡ֤
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCENE_INFO
+ {
+ public uint dwSceneID; //ID, 0 - ʾóЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySceneName; //
+ public byte byDirection; //ⷽ 1-У2-У3-˫4-ɶ5-6-7-ɱϣ8-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_DVR_PTZPOS struPtzPos; //Ptz
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2 ; //
+ }
+
+ //ͨ¼(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AID_ALARM_V41
+ {
+ public uint dwSize; //ṹ
+ public uint dwRelativeTime; //ʱ
+ public uint dwAbsTime; //ʱ
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public NET_DVR_AID_INFO struAIDInfo; //ͨ¼Ϣ
+ public NET_DVR_SCENE_INFO struSceneInfo; //Ϣ
+ public uint dwPicDataLen; //ͼƬ
+ public IntPtr pImage; //ָͼƬָ
+ // 0-ֱϴ; 1-ƴ洢URL(3.7Ver)ԭȵͼƬݱURLݣͼƬȱURL
+ public byte byDataType;
+ public byte byLaneNo; //
+ public ushort wMilliSecond; //ʱ
+ //ţ·ڱšڲţ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MONITORSITE_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitoringSiteID;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DEVICE_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDeviceID;//豸
+ public uint dwXmlLen;//XMLϢ
+ public IntPtr pXmlBuf;// XMLϢָ,XMLӦEventNotificationAlert XML Block
+ public byte byTargetType;// Ŀͣ0~δ֪1~ˡ2~ֳ3~ֳ(˼з)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 19, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //ͨͳϢ(չ)
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TPS_ALARM_V41
+ {
+ public uint dwSize; // ṹС
+ public uint dwRelativeTime; // ʱ
+ public uint dwAbsTime; // ʱ
+ public NET_VCA_DEV_INFO struDevInfo; // ǰ豸Ϣ
+ public NET_DVR_TPS_INFO_V41 struTPSInfo; // ͨͳϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VCA_VERSION
+ {
+ public ushort wMajorVersion; // 汾
+ public ushort wMinorVersion; // ΰ汾
+ public ushort wRevisionNumber; //
+ public ushort wBuildNumber; //
+ public ushort wVersionYear; // 汾-
+ public byte byVersionMonth; // 汾-
+ public byte byVersionDay; // 汾-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+ /*******************************ܽͨ¼ end*****************************************/
+
+ /******************************ʶ begin******************************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLATE_PARAM
+ {
+ public byte byPlateRecoMode; //ʶģʽ,ĬΪ1(Ƶģʽ)
+ public byte byBelive; /*Ŷֵ, ֻƵʶʽ, ݱӳ̶, ʸ߾, ©ʸ߾,
+ * 80-90Χ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 22, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLATECFG
+ {
+ public uint dwSize;
+ public uint dwEnable; /* ǷƵʶ 0 1 */
+ public byte byPicProType; //ʱͼƬʽ 0- 0-ϴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_DVR_JPEGPARA struPictureParam; //ͼƬṹ
+ public NET_DVR_PLATE_PARAM struPlateParam; // ʶ
+ public NET_DVR_HANDLEEXCEPTION struHandleType; /* ʽ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan; //¼ͨ,Ϊ1ʾͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //ʶӽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLATE_INFO
+ {
+ public byte byPlateType; //
+ public byte byColor; //ɫ
+ public byte byBright; //
+ public byte byLicenseLen; //ַ
+ public byte byEntireBelieve;//ƵŶȣ0-100
+ public byte byRegion; // ֵ 0-1-ŷ(EU)2-(ER)3-ŷ&˹(EU&CIS) ,4-ж(ME),0xff-
+ public byte byCountry; // ֵöCOUNTRY_INDEX֧"COUNTRY_ALL = 0xff, //ALL ȫ"
+ public byte byArea; //ʡݣڲö٣ EMI_AREA
+ public byte byPlateSize; //Ƴߴ磬0~δ֪1~long, 2~short(жʹ)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CATEGORY_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPlateCategory;//ƸϢ, жгƺԱߵСϢ(Ŀǰֻж֧)
+ public uint dwXmlLen; //XMLϢ
+ public IntPtr pXmlBuf; // XMLϢָ,Ϊ COMM_ITS_PLATE_RESULʱЧXMLӦEventNotificationAlert XML Block
+ public NET_VCA_RECT struPlateRect; //λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LICENSE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sLicense; //ƺ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LICENSE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byBelieve; //ʶַŶȣ"A12345", ŶΪ,20,30,40,50,60,70ʾ""ȷĿֻ%"A"ֵȷĿ%
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLATERECO_RESULE
+ {
+ public uint dwSize;
+ public uint dwRelativeTime; //ʱ
+ public uint dwAbsTime; //ʱ
+ public NET_VCA_DEV_INFO struDevInfo; // ǰ豸Ϣ
+ public NET_DVR_PLATE_INFO struPlateInfo;
+ public uint dwPicDataLen; //ͼƬij Ϊ0ʾûͼƬ0ʾýṹͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes; //Ϊ0
+ public IntPtr pImage; //ָͼƬָ
+ }
+ /******************************ʶ end******************************************/
+
+ /******************************ץĻ*******************************************/
+ //IO
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IO_INCFG
+ {
+ public uint dwSize;
+ public byte byIoInStatus;//IO״̬0-½أ1-أ2-غ½أ3-ߵƽ4-͵ƽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//ֽ
+ }
+
+ //IO
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IO_OUTCFG
+ {
+ public uint dwSize;
+ public byte byDefaultStatus;//IOĬ״̬0-͵ƽ1-ߵƽ
+ public byte byIoOutStatus;//IOЧʱ״̬0-͵ƽ1-ߵƽ2-
+ public ushort wAheadTime;//IOǰʱ䣬λus
+ public uint dwTimePluse;//ʱ䣬λus
+ public uint dwTimeDelay;//IOЧʱ䣬λus
+ public byte byFreqMulti; //ƵֵΧ[1,15]
+ public byte byDutyRate; //ռձȣ[0,40%]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FLASH_OUTCFG
+ {
+ public uint dwSize;
+ public byte byMode;//˸ģʽ0-1-2-3-
+ public byte byRelatedIoIn;//ƹIOţʱ˲Ч
+ public byte byRecognizedLane; /*IOţλʾbit0ʾIO1Ƿ0-1-*/
+ public byte byDetectBrightness;/*Զʹ0-⣻1-*/
+ public byte byBrightnessThreld;/*ʹֵΧ[0,100],ֵ*/
+ public byte byStartHour; //ʼʱ-Сʱ,ȡֵΧ0-23
+ public byte byStartMinute; //ʼʱ-,ȡֵΧ0-59
+ public byte byEndHour; //ʱ-Сʱ,ȡֵΧ0-23
+ public byte byEndMinute; //ʱ-,ȡֵΧ0-59
+ public byte byFlashLightEnable; //ʱʹ:0-;1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //̵ƹܣ2IOһ飩
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LIGHTSNAPCFG
+ {
+ public uint dwSize;
+ public byte byLightIoIn;//̵ƵIO
+ public byte byTrigIoIn;//IO
+ public byte byRelatedDriveWay;//IOij
+ public byte byTrafficLight; //0-ߵƽƣ͵ƽ̵ƣ1-ߵƽ̵ƣ͵ƽ
+ public byte bySnapTimes1; //ץĴ10-ץģ0-Ĵ5
+ public byte bySnapTimes2; //̵ץĴ20-ץģ0-Ĵ5
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_INTERVAL_NUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wIntervalTime1;//ļʱ䣬ms
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_INTERVAL_NUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wIntervalTime2;//̵ļʱ䣬ms
+ public byte byRecord;//¼־0-¼1-¼
+ public byte bySessionTimeout;//¼ʱʱ䣨룩
+ public byte byPreRecordTime;//¼ƬԤ¼ʱ()
+ public byte byVideoDelay;//¼Ƭʱʱ䣨룩
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;//ֽ
+ }
+
+ //ٹ(2IOһ飩
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MEASURESPEEDCFG
+ {
+ public uint dwSize;
+ public byte byTrigIo1; //ٵ1Ȧ
+ public byte byTrigIo2; //ٵ2Ȧ
+ public byte byRelatedDriveWay;//IOij
+ public byte byTestSpeedTimeOut;//ģʽʱʱ䣬λs
+ public uint dwDistance;//Ȧ,cm
+ public byte byCapSpeed;//ģʽٶȣλkm/h
+ public byte bySpeedLimit;//ֵλkm/h
+ public byte bySnapTimes1; //Ȧ1ץĴ0-ץģ0-Ĵ5
+ public byte bySnapTimes2; //Ȧ2ץĴ0-ץģ0-Ĵ5
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_INTERVAL_NUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wIntervalTime1;//Ȧ1ļʱ䣬ms
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_INTERVAL_NUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wIntervalTime2;//Ȧ2ļʱ䣬ms
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//ֽ
+ }
+
+ //Ƶ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEOEFFECT
+ {
+ public byte byBrightnessLevel; /*0-100*/
+ public byte byContrastLevel; /*0-100*/
+ public byte bySharpnessLevel; /*0-100*/
+ public byte bySaturationLevel; /*0-100*/
+ public byte byHueLevel; /*0-100,*/
+ public byte byEnableFunc; //ʹܣλʾbit0-SMART IR()bit1-ն,bit2-ǿʹܣ0-1-
+ public byte byLightInhibitLevel; //ǿƵȼ[1-3]ʾȼ
+ public byte byGrayLevel; //Ҷֵ0-[0-255]1-[16-235]
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_GAIN
+ {
+ public byte byGainLevel; /*棺0-100*/
+ public byte byGainUserSet; /*ûԶ棻0-100ץĻCCDģʽµץ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwMaxGainValue;/*ֵλdB*/
+ }
+
+ //ƽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WHITEBALANCE
+ {
+ public byte byWhiteBalanceMode; /*0-ֶƽ⣨MWB,1-Զƽ1AWB1,2-Զƽ2 (AWB2),3-ԶƸΪƽ(Locked WB)
+ 4-(Indoor)5-(Outdoor)6-չ(Fluorescent Lamp)7-Ƶ(Sodium Lamp)
+ 8-Զ(Auto-Track)9-һΰƽ(One Push)10-Զ(Auto-Outdoor)
+ 11-ƵԶ (Auto-Sodiumlight)12-ˮ(Mercury Lamp)13-Զƽ(Auto)
+ 14-׳ (IncandescentLamp)15-ů(Warm Light Lamp)16-Ȼ(Natural Light) */
+ public byte byWhiteBalanceModeRGain; /*ֶƽʱЧֶƽ R*/
+ public byte byWhiteBalanceModeBGain; /*ֶƽʱЧֶƽ B*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ع
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EXPOSURE
+ {
+ public byte byExposureMode; /*0 ֶع 1Զع*/
+ public byte byAutoApertureLevel; /* ԶȦ, 0-10 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwVideoExposureSet; /* ԶƵعʱ䣨λus*//*ע:ԶعʱֵΪعֵ 20-1s(1000000us)*/
+ public uint dwExposureUserSet; /* Զعʱ,ץĻӦʱCCDģʽʱץĿٶ*/
+ public uint dwRes;
+ }
+
+ //̬
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WDR
+ {
+ public byte byWDREnabled; /*̬0 dsibale 1 enable 2 auto*/
+ public byte byWDRLevel1; /*0-F*/
+ public byte byWDRLevel2; /*0-F*/
+ public byte byWDRContrastLevel; /*0-100*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ҹת
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DAYNIGHT
+ {
+ public byte byDayNightFilterType; /*ҹл0-죬1-ҹ2-Զ3-ʱ4-봥*/
+ public byte bySwitchScheduleEnabled; /*0 dsibale 1 enable,()*/
+ //ʱģʽ
+ public byte byBeginTime; /*ʼʱ䣨Сʱ0-23*/
+ public byte byEndTime; /*ʱ䣨Сʱ0-23*/
+ //ģʽ2
+ public byte byDayToNightFilterLevel; //0-7
+ public byte byNightToDayFilterLevel; //0-7
+ public byte byDayNightFilterTime;//(60)
+ //ʱģʽ
+ public byte byBeginTimeMin; //ʼʱ䣨֣0-59
+ public byte byBeginTimeSec; //ʼʱ䣨룩0-59
+ public byte byEndTimeMin; //ʱ䣨֣0-59
+ public byte byEndTimeSec; //ʱ䣨룩0-59
+ //봥ģʽ
+ public byte byAlarmTrigState; //봥״̬0-죬1-ҹ
+ }
+
+ //GammaУ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_GAMMACORRECT
+ {
+ public byte byGammaCorrectionEnabled; /*0 dsibale 1 enable*/
+ public byte byGammaCorrectionLevel; /*0-100*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ⲹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BACKLIGHT
+ {
+ public byte byBacklightMode; /*ⲹ:0 off 1 UP2 DOWN3 LEFT4 RIGHT5MIDDLE6Զ*/
+ public byte byBacklightLevel; /*0x0-0xF*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwPositionX1; //X1
+ public uint dwPositionY1; //Y1
+ public uint dwPositionX2; //X2
+ public uint dwPositionY2; //Y2
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ֽ빦
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NOISEREMOVE
+ {
+ public byte byDigitalNoiseRemoveEnable; /*0-ã1-ͨģʽֽ룬2-רģʽֽ*/
+ public byte byDigitalNoiseRemoveLevel; /*ͨģʽֽ뼶0x0-0xF*/
+ public byte bySpectralLevel; /*רģʽ¿ǿȣ0-100*/
+ public byte byTemporalLevel; /*רģʽʱǿȣ0-100*/
+ public byte byDigitalNoiseRemove2DEnable; /* ץ֡2D룬0-ã1- */
+ public byte byDigitalNoiseRemove2DLevel; /* ץ֡2D뼶0-100 */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //CMOSģʽǰ˾ͷ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CMOSMODECFG
+ {
+ public byte byCaptureMod; //ץģʽ0-ץģʽ11-ץģʽ2
+ public byte byBrightnessGate;//ֵ
+ public byte byCaptureGain1; //ץ1,0-100
+ public byte byCaptureGain2; //ץ2,0-100
+ public uint dwCaptureShutterSpeed1;//ץĿٶ1
+ public uint dwCaptureShutterSpeed2;//ץĿٶ2
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ǰ˲
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CAMERAPARAMCFG
+ {
+ public uint dwSize;
+ public NET_DVR_VIDEOEFFECT struVideoEffect;/*ȡԱȶȡͶȡȡɫ*/
+ public NET_DVR_GAIN struGain;/*Զ*/
+ public NET_DVR_WHITEBALANCE struWhiteBalance;/*ƽ*/
+ public NET_DVR_EXPOSURE struExposure; /*ع*/
+ public NET_DVR_GAMMACORRECT struGammaCorrect;/*GammaУ*/
+ public NET_DVR_WDR struWdr;/*̬*/
+ public NET_DVR_DAYNIGHT struDayNight;/*ҹת*/
+ public NET_DVR_BACKLIGHT struBackLight;/*ⲹ*/
+ public NET_DVR_NOISEREMOVE struNoiseRemove;/*ֽ*/
+ public byte byPowerLineFrequencyMode; /*0-50HZ; 1-60HZ*/
+ public byte byIrisMode; /*0 ԶȦ 1ֶȦ*/
+ public byte byMirror ; /* 0 off1- leftright2- updown3-center */
+ public byte byDigitalZoom; /*:0 dsibale 1 enable*/
+ public byte byDeadPixelDetect; /*,0 dsibale 1 enable*/
+ public byte byBlackPwl;/*ڵƽ , 0-255*/
+ public byte byEptzGate;// EPTZر:0-ǫ̃1-ǫ̃
+ public byte byLocalOutputGate;//ر0-ر1-BNC 2-HDMIر
+ //20-HDMI_720P50
+ //21-HDMI_720P60
+ //22-HDMI_1080I60
+ //23-HDMI_1080I50
+ //24-HDMI_1080P24
+ //25-HDMI_1080P25
+ //26-HDMI_1080P30
+ //27-HDMI_1080P50
+ //28-HDMI_1080P60
+ //40-SDI_720P50,
+ //41-SDI_720P60,
+ //42-SDI_1080I50,
+ //43-SDI_1080I60,
+ //44-SDI_1080P24,
+ //45-SDI_1080P25,
+ //46-SDI_1080P30,
+ //47-SDI_1080P50,
+ //48-SDI_1080P60
+ public byte byCoderOutputMode;//fpgaģʽ0ֱͨ3ذ
+ public byte byLineCoding; //Ƿб룺0-1-
+ public byte byDimmerMode; //ģʽ0-Զ1-Զ
+ public byte byPaletteMode; //ɫ壺0-ȣ1-ȣ2-ɫ28-ɫ8
+ public byte byEnhancedMode; //ǿʽܱ̽ߣ0-ǿ1-12-23-34-4
+ public byte byDynamicContrastEN; //̬Աȶǿ 0-1
+ public byte byDynamicContrast; //̬Աȶ 0-100
+ public byte byJPEGQuality; //JPEGͼ 0-100
+ public NET_DVR_CMOSMODECFG struCmosModeCfg;//CMOSģʽǰ˲ãͷģʽȡ
+ public byte byFilterSwitch; //˲أ0-ã1-
+ public byte byFocusSpeed; //ͷٶȣ0-10
+ public byte byAutoCompensationInterval; //ʱԶŲ1-120λ
+ public byte bySceneMode; //ģʽ0-⣬1-ڣ2-Ĭϣ3-
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEFOGCFG
+ {
+ public byte byMode; //ģʽ0-ã1-Զģʽ2-ģʽ
+ public byte byLevel; //ȼ0-100
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ӷ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ELECTRONICSTABILIZATION
+ {
+ public byte byEnable;//ʹ 0- ã1-
+ public byte byLevel; //ȼ0-100
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ģʽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CORRIDOR_MODE_CCD
+ {
+ public byte byEnableCorridorMode; //Ƿģʽ 0ã 1
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //SMART IR()ò
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SMARTIR_PARAM
+ {
+ public byte byMode;//0ֶ1Զ
+ public byte byIRDistance;//ȼ(ȼ)level:1~100 Ĭ:50ֶģʽӣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //byIrisMode ΪP-Iris1ʱЧúȦСȼģʽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PIRIS_PARAM
+ {
+ public byte byMode;//0-Զ1-ֶ
+ public byte byPIrisAperture;//ȦСȼ(ȼ,ȦС)level:1~100 Ĭ:50ֶģʽӣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ǰ˲
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CAMERAPARAMCFG_EX
+ {
+ public uint dwSize;
+ public NET_DVR_VIDEOEFFECT struVideoEffect;/*ȡԱȶȡͶȡȡɫ*/
+ public NET_DVR_GAIN struGain;/*Զ*/
+ public NET_DVR_WHITEBALANCE struWhiteBalance;/*ƽ*/
+ public NET_DVR_EXPOSURE struExposure; /*ع*/
+ public NET_DVR_GAMMACORRECT struGammaCorrect;/*GammaУ*/
+ public NET_DVR_WDR struWdr;/*̬*/
+ public NET_DVR_DAYNIGHT struDayNight;/*ҹת*/
+ public NET_DVR_BACKLIGHT struBackLight;/*ⲹ*/
+ public NET_DVR_NOISEREMOVE struNoiseRemove;/*ֽ*/
+ public byte byPowerLineFrequencyMode; /*0-50HZ; 1-60HZ*/
+ public byte byIrisMode; /*0-ԶȦ 1-ֶȦ, 2-P-Iris1*/
+ public byte byMirror ; /* 0 off1- leftright2- updown3-center */
+ public byte byDigitalZoom; /*:0 dsibale 1 enable*/
+ public byte byDeadPixelDetect; /*,0 dsibale 1 enable*/
+ public byte byBlackPwl;/*ڵƽ , 0-255*/
+ public byte byEptzGate;// EPTZر:0-ǫ̃1-ǫ̃
+ public byte byLocalOutputGate;//ر0-ر1-BNC 2-HDMIر
+ //20-HDMI_720P50
+ //21-HDMI_720P60
+ //22-HDMI_1080I60
+ //23-HDMI_1080I50
+ //24-HDMI_1080P24
+ //25-HDMI_1080P25
+ //26-HDMI_1080P30
+ //27-HDMI_1080P50
+ //28-HDMI_1080P60
+ public byte byCoderOutputMode;//fpgaģʽ0ֱͨ3ذ
+ public byte byLineCoding; //Ƿб룺0-1-
+ public byte byDimmerMode; //ģʽ0-Զ1-Զ
+ public byte byPaletteMode; //ɫ壺0-ȣ1-ȣ2-ɫ28-ɫ8
+ public byte byEnhancedMode; //ǿʽܱ̽ߣ0-ǿ1-12-23-34-4
+ public byte byDynamicContrastEN; //̬Աȶǿ 0-1
+ public byte byDynamicContrast; //̬Աȶ 0-100
+ public byte byJPEGQuality; //JPEGͼ 0-100
+ public NET_DVR_CMOSMODECFG struCmosModeCfg;//CMOSģʽǰ˲ãͷģʽȡ
+ public byte byFilterSwitch; //˲أ0-ã1-
+ public byte byFocusSpeed; //ͷٶȣ0-10
+ public byte byAutoCompensationInterval; //ʱԶŲ1-120λ
+ public byte bySceneMode; //ģʽ0-⣬1-ڣ2-Ĭϣ3-
+ public NET_DVR_DEFOGCFG struDefogCfg;//
+ public NET_DVR_ELECTRONICSTABILIZATION struElectronicStabilization;//ӷ
+ public NET_DVR_CORRIDOR_MODE_CCD struCorridorMode;//ģʽ
+ public byte byExposureSegmentEnable; //0~,1~ عʱʽ״عϵʱعʱ䵽мֵȻ浽мֵعֵ浽ֵ
+ public byte byBrightCompensate;//ǿ [0~100]
+
+ /*0-رա1-640*480@25fps2-640*480@30ps3-704*576@25fps4-704*480@30fps5-1280*720@25fps6-1280*720@30fps
+ * 7-1280*720@50fps8-1280*720@60fps9-1280*960@15fps10-1280*960@25fps11-1280*960@30fps
+ * 12-1280*1024@25fps13--1280*1024@30fps14-1600*900@15fps15-1600*1200@15fps16-1920*1080@15fps
+ * 17-1920*1080@25fps18-1920*1080@30fps19-1920*1080@50fps20-1920*1080@60fps21-2048*1536@15fps22-2048*1536@20fps
+ * 23-2048*1536@24fps24-2048*1536@25fps25-2048*1536@30fps26-2560*2048@25fps27-2560*2048@30fps
+ * 28-2560*1920@7.5fps29-3072*2048@25fps30-3072*2048@30fps31-2048*1536@12.532-2560*1920@6.25
+ * 33-1600*1200@2534-1600*1200@3035-1600*1200@12.536-1600*900@12.537-1600@900@1538-800*600@2539-800*600@30*/
+ public byte byCaptureModeN; //ƵģʽNƣ
+ public byte byCaptureModeP; //ƵģʽPƣ
+ public NET_DVR_SMARTIR_PARAM struSmartIRParam; //ŹϢ
+ public NET_DVR_PIRIS_PARAM struPIrisParam;//PIrisϢӦbyIrisModeֶδ2-PIris1ʼЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 296, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ //ɫ
+ public enum VCA_PLATE_COLOR
+ {
+ VCA_BLUE_PLATE = 0,//ɫ
+ VCA_YELLOW_PLATE,//ɫ
+ VCA_WHITE_PLATE,//ɫ
+ VCA_BLACK_PLATE,//ɫ
+ VCA_GREEN_PLATE //ɫ
+ }
+
+ //
+ public enum VCA_PLATE_TYPE
+ {
+ VCA_STANDARD92_PLATE = 0,//ó
+ VCA_STANDARD02_PLATE,//02ʽó
+ VCA_WJPOLICE_PLATE,//侯
+ VCA_JINGCHE_PLATE,//
+ STANDARD92_BACK_PLATE,//ó˫β
+ VCA_SHIGUAN_PLATE, //ʹݳ
+ VCA_NONGYONG_PLATE, //ũó
+ VCA_MOTO_PLATE //Ħг
+ }
+
+ public enum VLR_VEHICLE_CLASS
+ {
+ VLR_OTHER = 0, //
+ VLR_VOLKSWAGEN = 1, //
+ VLR_BUICK = 2, //
+ VLR_BMW = 3, //
+ VLR_HONDA = 4, //
+ VLR_PEUGEOT = 5, //
+ VLR_TOYOTA = 6, //
+ VLR_FORD = 7, //
+ VLR_NISSAN = 8, //ղ
+ VLR_AUDI = 9, //µ
+ VLR_MAZDA = 10, //Դ
+ VLR_CHEVROLET = 11, //ѩ
+ VLR_CITROEN = 12, //ѩ
+ VLR_HYUNDAI = 13, //ִ
+ VLR_CHERY = 14 //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VEHICLE_INFO
+ {
+ public uint dwIndex;
+ public byte byVehicleType;
+ public byte byColorDepth;
+ public byte byColor;
+ public byte byRadarState;
+ public ushort wSpeed;
+ public ushort wLength;
+ public byte byIllegalType;
+ public byte byVehicleLogoRecog; //οö VLR_VEHICLE_CLASS
+ public byte byVehicleSubLogoRecog; //Ʒʶ𣻲οVSB_VOLKSWAGEN_CLASSö١
+ public byte byVehicleModel; //Ʒ0-δ֪ο"Ʒ.xlsx"
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCustomInfo; //ԶϢ
+ public ushort wVehicleLogoRecog; //Ʒƣο"Ʒ.xlsx" (ֶμbyVehicleLogoRecog);
+ public byte byIsParking;//Ƿͣ 0-Ч1-ͣ2-δͣ
+ public byte byRes;//ֽ
+ public uint dwParkingTime; //ͣʱ䣬λs
+ public byte byBelieve; //byIllegalTypeŶȣ1-100
+ public byte byCurrentWorkerNumber;//ǰҵ
+ public byte byCurrentGoodsLoadingRate;//ǰװ 0- 1- 2- 3- 4-
+ public byte byDoorsStatus;//״̬ 0-Źر 1-ſ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+
+ public void Init()
+ {
+ byCustomInfo = new byte[16];
+ byRes3 = new byte[4];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLATE_RESULT
+ {
+ public uint dwSize;
+ public byte byResultType;
+ public byte byChanIndex;
+ public ushort wAlarmRecordID; //¼ID(ڲѯ¼byResultTypeΪ2ʱЧ)
+ public uint dwRelativeTime;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAbsTime;
+ public uint dwPicLen;
+ public uint dwPicPlateLen;
+ public uint dwVideoLen;
+ public byte byTrafficLight;
+ public byte byPicNum;
+ public byte byDriveChan;
+ public byte byVehicleType; //0- δ֪1- ͳ2- 3- γ4- 5- С
+ public uint dwBinPicLen;
+ public uint dwCarPicLen;
+ public uint dwFarCarPicLen;
+ public IntPtr pBuffer3;
+ public IntPtr pBuffer4;
+ public IntPtr pBuffer5;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ public NET_DVR_PLATE_INFO struPlateInfo;
+ public NET_DVR_VEHICLE_INFO struVehicleInfo;
+ public IntPtr pBuffer1;
+ public IntPtr pBuffer2;
+
+ public void Init()
+ {
+ byAbsTime = new byte[32];
+ byRes3 = new byte[8];
+ }
+ }
+
+ //ͼϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IMAGEOVERLAYCFG
+ {
+ public uint dwSize;
+ public byte byOverlayInfo;//ʹܿأ0-ӣ1-
+ public byte byOverlayMonitorInfo;//ǷӼϢ0-ӣ1-
+ public byte byOverlayTime;//Ƿʱ䣬0-ӣ1-
+ public byte byOverlaySpeed;//Ƿٶȣ0-ӣ1-
+ public byte byOverlaySpeeding;//Ƿӳٱ0-ӣ1-
+ public byte byOverlayLimitFlag;//Ƿٱ־0-ӣ1-
+ public byte byOverlayPlate;//Ƿӳƺţ0-ӣ1-
+ public byte byOverlayColor;//Ƿӳɫ0-ӣ1-
+ public byte byOverlayLength;//Ƿӳ0-ӣ1-
+ public byte byOverlayType;//Ƿӳͣ0-ӣ1-
+ public byte byOverlayColorDepth;//Ƿӳɫdz0-ӣ1-
+ public byte byOverlayDriveChan;//Ƿӳ0-ӣ1-
+ public byte byOverlayMilliSec; //ӺϢ 0-ӣ1-
+ public byte byOverlayIllegalInfo; //ΥϢ 0-ӣ1-
+ public byte byOverlayRedOnTime; //Ӻʱ 0-ӣ1-
+ public byte byFarAddPlateJpeg; //ԶͼǷӳƽͼ,0-,1-
+ public byte byNearAddPlateJpeg; //ͼǷӳƽͼ,0-,1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitorInfo1; //Ϣ1
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 44, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitorInfo2; //Ϣ2
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 52, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SNAPCFG
+ {
+ public uint dwSize;
+ public byte byRelatedDriveWay;
+ public byte bySnapTimes;
+ public ushort wSnapWaitTime;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_INTERVAL_NUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wIntervalTime;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ public enum ITC_MAINMODE_ABILITY
+ {
+ ITC_MODE_UNKNOW = 0x0, //
+ ITC_POST_MODE = 0x1, //ģʽ
+ ITC_EPOLICE_MODE = 0x2, //羯ģʽ
+ ITC_POSTEPOLICE_MODE = 0x4 //ʽ羯ģʽ
+ }
+
+ public enum ITC_RECOG_REGION_TYPE
+ {
+ ITC_REGION_RECT = 0x0, //
+ ITC_REGION_POLYGON = 0x1, //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SNAP_ABILITY
+ {
+ public uint dwSize;
+ public byte byIoInNum;//IO
+ public byte byIoOutNum;//IO
+ public byte bySingleSnapNum;//IO
+ public byte byLightModeArrayNum;//̵ģʽ
+ public byte byMeasureModeArrayNum;//ģʽ
+ public byte byPlateEnable; //ʶ
+ public byte byLensMode;//ͷģʽ0-CCD,1-CMOS
+ public byte byPreTriggerSupport; //Ƿ֧ԭģʽ0-֧֣1-֧
+ public uint dwAbilityType; //ֵ֧ĴģʽλʾITC_MAINMODE_ABILITY
+ public byte byIoSpeedGroup; //ֵ֧IO
+ public byte byIoLightGroup; //ֵ֧IO̵
+ public byte byRecogRegionType; //ʶֵ֧ͣITC_RECOG_REGION_TYPE
+ public byte bySupport; //豸λʾ0-֧֣1-֧
+ // bySupport&0x1ʾǷ֧չַ
+ // bySupport&0x2ʾǷ֧չУʱýṹ
+ // bySupport&0x4, ʾǷֶ֧()
+ // bySupport&0x8, ʾǷ֧bonding(ݴ)
+ // bySupport&0x10, ʾǷ֧Խ
+ //2013-07-09
+ public ushort wSupportMultiRadar;// 豸λʾ0-֧֣1-֧
+ // wSupportMultiRadar&0x1ʾ RS485״ ֳ֧״ﴦ
+ // wSupportMultiRadar&0x2ʾ Ȧ ֳ֧״ﴦ
+ // wSupportMultiRadar&0x4ʾ п ֳ֧״ﴦ
+ // wSupportMultiRadar&0x8ʾ Ƶ ֳ֧״ﴦ
+ public byte byICRPresetNum;
+ // ʾֵ֧ICRԤõ㣨˹ƬƫƵ㣩
+ public byte byICRTimeSlot;//ʾֵ֧ICRʱ18
+ public byte bySupportRS485Num;//ʾֵ֧RS485ڵ
+ public byte byExpandRs485SupportSensor;// 豸λʾ0-֧֣1-֧
+ // byExpandRs485SupportSensor &0x1ʾ羯ֳ֧
+ // byExpandRs485SupportSensor &0x2ʾʽ羯ֳ֧
+ public byte byExpandRs485SupportSignalLampDet;// 豸λʾ0-֧֣1-֧
+ // byExpandRs485SupportSignalLampDet &0x1ʾ羯֧źŵƼ
+ // byExpandRs485SupportSignalLampDet &0x2ʾʽ羯֧źŵƼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 13, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_ICRTIMECFG
+ {
+ public NET_DVR_SCHEDTIME struTime;
+ public byte byAssociateRresetNo;//Ԥõ18 , 0
+ public byte bySubSwitchMode;//1~죬2~ (Ԥõ0 ʱЧ)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_ICR_TIMESWITCH_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_ITC_ICRTIMECFG[] struAutoCtrlTime;//Զлʱ (Զл ʱЧ ֧4飬Ԥ4)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ICR_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byICRPreset; //ʵЧ̬ʾ [0~100] ±ʾԤõ18 07 Ӧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_ICR_MANUALSWITCH_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ICR_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byICRPreset; //ʵЧ̬ʾ [0~100]
+ public byte bySubSwitchMode;//1~죬2~
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 147, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_ICR_AOTOSWITCH_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ICR_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byICRPreset; //ʵЧ̬ʾ [0~100] ±ʾԤõ18 07 Ӧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 148, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_ICR_PARAM_UNION
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 156, ArraySubType = UnmanagedType.I1)]
+ public byte[] uLen;
+ public NET_ITC_ICR_AOTOSWITCH_PARAM struICRAutoSwitch;
+ public NET_ITC_ICR_MANUALSWITCH_PARAM struICRManualSwitch;
+ public NET_ITC_ICR_TIMESWITCH_PARAM struICRTimeSwitch;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_ICRCFG
+ {
+ public uint dwSize;
+ public byte bySwitchType;//1~Զл2~ֶл ,3~ʱл
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_ITC_ICR_PARAM_UNION uICRParam;
+ }
+
+ //2013-07-09 쳣
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_HANDLEEXCEPTION
+ {
+ public uint dwHandleType; //쳣,쳣ʽ""
+ /*0x00: Ӧ*/
+ /*0x01: Ͼ*/
+ /*0x02: */
+ /*0x04: ϴ*/
+ /*0x08: ̵*/
+ /*0x10: JPRGץͼϴEmail*/
+ /*0x20: ⱨ*/
+ /*0x40: ӵͼ(ĿǰֻPCNVR֧)*/
+ /*0x200: ץͼϴFTP*/
+ public byte byEnable; //0ã1
+ public byte byRes;
+ public ushort wDuration;//ʱ(λ/s)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ITC_EXCEPTIONOUT, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmOutTriggered;//ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITC_EXCEPTION
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_EXCEPTIONNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_ITC_HANDLEEXCEPTION[] struSnapExceptionType;
+ //ÿԪضʾһ쳣0- Ӳ̳,1-߶,2-IP ַͻ, 3-쳣, 4-źŵƼ쳣
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TRIGCOORDINATE
+ {
+ public ushort wTopLeftX; /*ȦϽǺ꣨2ֽڣ*/
+ public ushort wTopLeftY; /*ȦϽ꣨2ֽڣ*/
+ public ushort wWdith; /*Ȧȣ2ֽڣ*/
+ public ushort wHeight; /*Ȧ߶ȣ2ֽڣ*/
+ }
+
+ public enum PROVINCE_CITY_IDX
+ {
+ ANHUI_PROVINCE = 0, //
+ AOMEN_PROVINCE = 1, //
+ BEIJING_PROVINCE = 2, //
+ CHONGQING_PROVINCE = 3, //
+ FUJIAN_PROVINCE = 4, //
+ GANSU_PROVINCE = 5, //
+ GUANGDONG_PROVINCE = 6, //㶫
+ GUANGXI_PROVINCE = 7, //
+ GUIZHOU_PROVINCE = 8, //
+ HAINAN_PROVINCE = 9, //
+ HEBEI_PROVINCE = 10, //ӱ
+ HENAN_PROVINCE = 11, //
+ HEILONGJIANG_PROVINCE = 12, //
+ HUBEI_PROVINCE = 13, //
+ HUNAN_PROVINCE = 14, //
+ JILIN_PROVINCE = 15, //
+ JIANGSU_PROVINCE = 16, //
+ JIANGXI_PROVINCE = 17, //
+ LIAONING_PROVINCE = 18, //
+ NEIMENGGU_PROVINCE = 19, //ɹ
+ NINGXIA_PROVINCE = 20, //
+ QINGHAI_PROVINCE = 21, //ຣ
+ SHANDONG_PROVINCE = 22, //ɽ
+ SHANXI_JIN_PROVINCE = 23, //ɽ
+ SHANXI_SHAN_PROVINCE = 24, //
+ SHANGHAI_PROVINCE = 25, //Ϻ
+ SICHUAN_PROVINCE = 26, //Ĵ
+ TAIWAN_PROVINCE = 27, //̨
+ TIANJIN_PROVINCE = 28, //
+ XIZANG_PROVINCE = 29, //
+ XIANGGANG_PROVINCE = 30, //
+ XINJIANG_PROVINCE = 31, //½
+ YUNNAN_PROVINCE = 32, //
+ ZHEJIANG_PROVINCE = 33 //㽭
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_GEOGLOCATION
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.U4)]
+ public int[] iRes; /**/
+ public uint dwCity; /*УPROVINCE_CITY_IDX */
+ }
+
+ //ģʽ
+ public enum SCENE_MODE
+ {
+ UNKOWN_SCENE_MODE = 0, //δ֪ģʽ
+ HIGHWAY_SCENE_MODE = 1, //ٳģʽ
+ SUBURBAN_SCENE_MODE = 2, //ģʽ()
+ URBAN_SCENE_MODE = 3, //ģʽ
+ TUNNEL_SCENE_MODE = 4 //ģʽ()
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VTPARAM
+ {
+ public uint dwSize;
+ public byte byEnable; /* ǷʹȦ0-ʹã1-ʹ*/
+ public byte byIsDisplay; /* ǷʾȦ0-ʾ1-ʾ*/
+ public byte byLoopPos; //䴥Ȧƫ0-ϣ1-
+ public byte bySnapGain; /*ץ*/
+ public uint dwSnapShutter; /*ץĿٶ*/
+ public NET_DVR_TRIGCOORDINATE struTrigCoordinate; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_TRIGCOORDINATE[] struRes;
+ public byte byTotalLaneNum;/*Ƶij1*/
+ public byte byPolarLenType; /*ƫͣ0ƫ1ʩ͵ƫ*/
+ public byte byDayAuxLightMode; /*츨ģʽ01LED2*/
+ public byte byLoopToCalRoadBright; /*Լ·ȵij(Ȧ)*/
+ public byte byRoadGrayLowTh; /*·ȵֵʼֵ1*/
+ public byte byRoadGrayHighTh; /*·ȸֵʼֵ140*/
+ public ushort wLoopPosBias; /*䴥Ȧλ30*/
+ public uint dwHfrShtterInitValue; /*ͼعʱijʼֵ2000*/
+ public uint dwSnapShtterInitValue; /*ץͼعʱijʼֵ500*/
+ public uint dwHfrShtterMaxValue; /*ͼعʱֵ20000*/
+ public uint dwSnapShtterMaxValue; /*ץͼعʱֵ1500*/
+ public uint dwHfrShtterNightValue; /*ͼعʱֵ3000*/
+ public uint dwSnapShtterNightMinValue; /*ץͼعʱСֵ3000*/
+ public uint dwSnapShtterNightMaxValue; /*ץͼعʱֵ5000*/
+ public uint dwInitAfe; /*ijʼֵ200*/
+ public uint dwMaxAfe; /*ֵ400*/
+ public ushort wResolutionX;/* 豸ǰֱʿ*/
+ public ushort wResolutionY;/* 豸ǰֱʸ*/
+ public uint dwGainNightValue; /*棬Ĭֵ70*/
+ public uint dwSceneMode; /*ģʽ SCENE_MODE */
+ public uint dwRecordMode; /*¼־0-¼1-¼*/
+ public NET_DVR_GEOGLOCATION struGeogLocation; /*ַλ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VL_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTrigFlag; /*־0-ͷ1-β2-ͷ/β*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VL_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTrigSensitive; /*ȣ1-100*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 62, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SNAPENABLECFG
+ {
+ public uint dwSize;
+ public byte byPlateEnable;//Ƿֳ֧ʶ0-֧֣1-֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public byte byFrameFlip; //ͼǷת 0-ת1-ת
+ public ushort wFlipAngle; //ͼתǶ 0,90,180,270
+ public ushort wLightPhase; //λȡֵΧ[0, 360]
+ public byte byLightSyncPower; //ǷźŵƵԴͬ0-ͬ1-ͬ
+ public byte byFrequency; //źƵ
+ public byte byUploadSDEnable; //ǷԶϴSDͼƬ0-1-
+ public byte byPlateMode; //ʶģʽ:0-Ƶ,1-ⲿ
+ public byte byUploadInfoFTP; //ǷϴץĸϢFTP0-1-
+ public byte byAutoFormatSD; //ǷԶʽSD0-1-
+ public ushort wJpegPicSize; //JpegͼƬС[64-8196]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 56, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ /*ftpϴ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FTPCFG
+ {
+ public uint dwSize;
+ public uint dwEnableFTP; /*Ƿftpϴ*/
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string sFTPIP; /*ftp */
+ public uint dwFTPPort; /*ftp˿*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; /*û*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; /**/
+ public uint dwDirLevel; /*0 = ʹĿ¼ṹֱӱڸĿ¼,1 = ʹ1Ŀ¼,2=ʹ2Ŀ¼*/
+ public ushort wTopDirMode; /* һĿ¼0x1 = ʹ豸,0x2 = ʹ豸,0x3 = ʹ豸ipַ0x4=ʹü,0x5=ʹʱ(),0x=6Զ,0x7=Υ,0x8=,0x9=ص*/
+ public ushort wSubDirMode; /* Ŀ¼0x1 = ʹͨ,0x2 = ʹͨţ,0x3=ʹʱ(),0x4=ʹó,0x=5Զ,0x6=Υ,0x7=,0x8=ص*/
+ public byte byEnableAnony; //0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /*ͼƬԪ */
+ public const int PICNAME_ITEM_DEV_NAME = 1; /*豸*/
+ public const int PICNAME_ITEM_DEV_NO = 2; /*豸*/
+ public const int PICNAME_ITEM_DEV_IP = 3; /*豸IP*/
+ public const int PICNAME_ITEM_CHAN_NAME = 4; /*ͨ*/
+ public const int PICNAME_ITEM_CHAN_NO = 5; /*ͨ*/
+ public const int PICNAME_ITEM_TIME = 6; /*ʱ*/
+ public const int PICNAME_ITEM_CARDNO = 7; /**/
+ public const int PICNAME_ITEM_PLATE_NO = 8; /*ƺ*/
+ public const int PICNAME_ITEM_PLATE_COLOR = 9; /*ɫ*/
+ public const int PICNAME_ITEM_CAR_CHAN = 10; /**/
+ public const int PICNAME_ITEM_CAR_SPEED = 11; /*ٶ*/
+ public const int PICNAME_ITEM_CARCHAN = 12; /**/
+ public const int PICNAME_ITEM_PIC_NUMBER = 13; //ͼƬ
+ public const int PICNAME_ITEM_CAR_NUMBER = 14; //
+
+ public const int PICNAME_ITEM_SPEED_LIMIT_VALUES = 15; //ֵ
+ public const int PICNAME_ITEM_ILLEGAL_CODE = 16; //Υ
+ public const int PICNAME_ITEM_CROSS_NUMBER = 17; //·ڱ
+ public const int PICNAME_ITEM_DIRECTION_NUMBER = 18; //
+
+ public const int PICNAME_MAXITEM = 15;
+ //ͼƬ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PICTURE_NAME
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PICNAME_MAXITEM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byItemOrder; /* 鶨ļĹ */
+ public byte byDelimiter; /*ָһΪ'_'*/
+ }
+
+
+ //2013-09-27
+ public const int PICNAME_ITEM_PARK_DEV_IP = 1; /*豸IP*/
+ public const int PICNAME_ITEM_PARK_PLATE_NO = 2;/*ƺ*/
+ public const int PICNAME_ITEM_PARK_TIME = 3; /*ʱ*/
+ public const int PICNAME_ITEM_PARK_INDEX = 4; /*λ*/
+ public const int PICNAME_ITEM_PARK_STATUS = 5; /*λ״̬*/
+
+ //ͼƬչ 2013-09-27
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PICTURE_NAME_EX
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PICNAME_MAXITEM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byItemOrder; /* 鶨ļĹ */
+ public byte byDelimiter; /*ָһΪ'_'*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /**/
+ }
+
+ /* ץͼ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SERIAL_CATCHPIC_PARA
+ {
+ public byte byStrFlag; /*ݿʼ*/
+ public byte byEndFlag; /**/
+ public ushort wCardIdx; /*ʼλ*/
+ public uint dwCardLen; /*ų*/
+ public uint dwTriggerPicChans; /*ͨţλӵ1λʼƣ0x2ʾһͨ*/
+ }
+
+ //DVRץͼãߣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_JPEGCFG_V30
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_JPEGPARA[] struJpegPara; /*ÿͨͼ*/
+ public ushort wBurstMode; /*ץͼʽ,λ.0x1=봥0x2=ƶⴥ 0x4=2320x8=4850x10=紥*/
+ public ushort wUploadInterval; /*ͼƬϴ()[0,65535]*/
+ public NET_DVR_PICTURE_NAME struPicNameRule; /* ͼƬ */
+ public byte bySaveToHD; /*Ƿ浽Ӳ*/
+ public byte byRes1;
+ public ushort wCatchInterval; /*ץͼ()[0,65535]*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_DVR_SERIAL_CATCHPIC_PARA struRs232Cfg;
+ public NET_DVR_SERIAL_CATCHPIC_PARA struRs485Cfg;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwTriggerPicTimes; /* ÿͨһδմ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMIN_V30, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwAlarmInPicChanTriggered; /*ץͨ,λãӵ1λʼ*/
+ }
+
+ //ץĴṹ()
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MANUALSNAP
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SPRCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHJC_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDefaultCHN; /*豸ʡݵĺּд*/
+ public byte byPlateOSD; /*0:ͳƲɫͼ,1:ͳƲɫͼ*/
+ public byte bySendJPEG1; /*0-ͽJPEGͼ,1-ͽJPEGͼ*/
+ public byte bySendJPEG2; /*0-ԶJPEGͼ,1-ԶJPEGͼ*/
+ public ushort wDesignedPlateWidth; /*ƿ*/
+ public byte byTotalLaneNum; /*ʶij*/
+ public byte byRes1; /**/
+ public ushort wRecognizedLane; /*ʶijţλʾbit0ʾ1Ƿʶ0-ʶ1-ʶ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LANERECT_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_RECT[] struLaneRect; /*ʶ*/
+ public uint dwRecogMode; /*ʶͣ
+ bit0-ʶ0-ʶ1-ʶ(βʶ)
+ bit1-ʶСʶ0-Сʶ1-ʶ
+ bit2-ɫʶ0-óɫʶڱʶСʶʱֹã1-ɫʶ
+ bit3-ũóʶ0-ũóʶ1-ũóʶ
+ bit4-ģʶ0-ģʶ1-ģʶ
+ bit5-֡λλ0-֡λ1-λ
+ bit6-֡ʶʶ0-֡ʶ1-ʶ
+ bit7-ϻ죺0-죬1- */
+ public byte bySendPRRaw; //Ƿԭͼ0-ͣ1-
+ public byte bySendBinImage; //Ƿͳƶֵͼ0-ͣ1-
+ public byte byDelayCapture; //ʱץĿ,λ֡
+ public byte byUseLED; //ʹLEDƣ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 68, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLCCFG
+ {
+ public uint dwSize;
+ public byte byPlcEnable; //ǷóȲĬã0-رգ1-
+ public byte byPlateExpectedBright; //ƵԤȣĬֵ50, Χ[0, 100]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public byte byTradeoffFlash; //ǷƵӰ: 0 - ; 1 - (Ĭ);
+ //ʹƲʱ, ǼƵǿЧӦ, ҪΪ1;Ϊ0
+ public byte byCorrectFactor; //ϵ, Χ[0, 100], Ĭֵ50 (tradeoff_flashлʱ,ָĬֵ
+ public ushort wLoopStatsEn; //ǷȦȣλʾ0-ͳƣ1-ͳ
+ public byte byPlcBrightOffset;// Ȳ(ȦģʽЧ)ȡֵΧ1~100
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 19, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEVICESTATECFG
+ {
+ public uint dwSize;
+ public ushort wPreviewNum; //ԤӸ
+ public ushort wFortifyLinkNum; //Ӹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LINK, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPADDR[] struPreviewIP; //ԤûIPַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_FORTIFY_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_IPADDR[] struFortifyIP; //ӵûIPַ
+ public uint dwVideoFrameRate; //֡ʣ0-ȫ; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20; 14-15; 15-18; 16-22;
+ public byte byResolution; //ֱ0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 5,16-VGA640*480, 17-UXGA1600*1200, 18-SVGA 800*600,19-HD720p1280*720,20-XVGA, 21-HD900p, 27-HD1080i, 28-2560*1920, 29-1600*304, 30-2048*1536, 31-2448*2048
+ public byte bySnapResolution; //ץķֱ0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 5,16-VGA640*480, 17-UXGA1600*1200, 18-SVGA 800*600,19-HD720p1280*720,20-XVGA, 21-HD900p, 27-HD1080i, 28-2560*1920, 29-1600*304, 30-2048*1536, 31-2448*2048
+ public byte byStreamType; //ͣ0-1-
+ public byte byTriggerType; //ģʽ0-Ƶ1-ͨ
+ public uint dwSDVolume; //SD
+ public uint dwSDFreeSpace; //SDʣռ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DRIVECHAN_NUM * MAX_COIL_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDetectorState; //״̬0-δʹã1-2-쳣
+ public byte byDetectorLinkState; //״̬0-δӣ1-
+ public byte bySDStatus; //SD״̬ 01ߣ2쳣3-sd
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_FORTIFY_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFortifyLevel; //ȼ0-ޣ1-һȼߣ2-ȼУ3-ȼͣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 116, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_POSTEPOLICECFG
+ {
+ public uint dwSize;
+ public uint dwDistance;//Ȧ,λcmȡֵΧ[0,20000]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SIGNALLIGHT_NUM, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwLightChan; //źŵͨ
+ public byte byCapSpeed;//־٣λkm/hȡֵΧ[0,255]
+ public byte bySpeedLimit;//ֵλkm/hȡֵΧ[0,255]
+ public byte byTrafficDirection;//0-ɶ1-2-3-ɱ
+ public byte byRes1; //
+ public ushort wLoopPreDist; /*ӳپ λ*/
+ public ushort wTrigDelay; /*Ӳʱʱ λ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 124, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//ֽ
+ }
+ /***************************** end *********************************************/
+ public const int IPC_PROTOCOL_NUM = 50; //ipc Э
+
+ //Э
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PROTO_TYPE
+ {
+ public uint dwType; /*ipcЭֵ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDescribe; /*Эֶ*/
+ }
+
+ //Эб
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPC_PROTO_LIST
+ {
+ public uint dwSize;
+ public uint dwProtoNum; /*ЧipcЭĿ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = IPC_PROTOCOL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PROTO_TYPE[] struProto; /*ЧipcЭ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ЭбV41
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPC_PROTO_LIST_V41
+ {
+ public uint dwSize;
+ public uint dwProtoNum; //ЧipcЭĿ
+ public IntPtr pBuffer; //Эб, dwProtoNum NET_DVR_PROTO_TYPEṹ
+ public uint dwBufferLen; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+
+ public const int MAX_ALERTLINE_NUM = 8; //
+
+ //Խѯ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TRAVERSE_PLANE_SEARCHCOND
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALERTLINE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_TRAVERSE_PLANE[] struVcaTraversePlane; //Խ
+ public uint dwPreTime; /*ܱǰʱ λ:*/
+ public uint dwDelayTime; /*ܱӳʱ λ:*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5656, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ public const int MAX_INTRUSIONREGION_NUM = 8; //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INTRUSION_SEARCHCOND
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_INTRUSIONREGION_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_INTRUSION[] struVcaIntrusion; //
+ public uint dwPreTime; /*ܱǰʱ λ:*/
+ public uint dwDelayTime; /*ܱӳʱ λ:*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5400, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_AREA_SMARTSEARCH_COND_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6144, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLen; //ṹ峤
+ /*[FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64 * 96, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMotionScope; // 0-96λʾ64У96*64С飬1-ƶ0-ƶ
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_TRAVERSE_PLANE_SEARCHCOND struTraversPlaneCond; //Խ
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_INTRUSION_SEARCHCOND struIntrusionCond; //
+ * */
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SMART_SEARCH_PARAM
+ {
+ public byte byChan; //ͨ
+ public byte bySearchCondType; //ܲNET_DVR_AREA_SMARTSEARCH_COND_UNION
+ /*0-ƶ 1-Խ⣬ 2-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_TIME struStartTime; //¼ʼʱ
+ public NET_DVR_TIME struEndTime; //¼ֹͣʱ
+ public NET_DVR_AREA_SMARTSEARCH_COND_UNION uSmartSearchCond; //ܲ
+ public byte bySensitivity; //ƶ,1 >80% 2 40%~80% 3 1%~40%
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SMART_SEARCH_RET
+ {
+ public NET_DVR_TIME struStartTime; //ƶⱨʼʱ
+ public NET_DVR_TIME struEndTime; //¼ֹͣʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //IPSAN ļĿ¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPSAN_SERACH_PARAM
+ {
+ public NET_DVR_IPADDR struIP; // IPSAN IPַ
+ public ushort wPort; // IPSAN ˿
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPSAN_SERACH_RET
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDirectory; // صļĿ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //DVR豸
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEVICECFG_V40
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDVRName; //DVR
+ public uint dwDVRID; //DVR ID,ң //V1.4(0-99), V1.5(0-255)
+ public uint dwRecycleRecord; //Ƿѭ¼,0:; 1:
+ //²ɸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber; //к
+ public uint dwSoftwareVersion; //汾,16λ汾,16λǴΰ汾
+ public uint dwSoftwareBuildDate; //,0xYYYYMMDD
+ public uint dwDSPSoftwareVersion; //DSP汾,16λ汾,16λǴΰ汾
+ public uint dwDSPSoftwareBuildDate; // DSP,0xYYYYMMDD
+ public uint dwPanelVersion; // ǰ汾,16λ汾,16λǴΰ汾
+ public uint dwHardwareVersion; // Ӳ汾,16λ汾,16λǴΰ汾
+ public byte byAlarmInPortNum; //DVR
+ public byte byAlarmOutPortNum; //DVR
+ public byte byRS232Num; //DVR 232ڸ
+ public byte byRS485Num; //DVR 485ڸ
+ public byte byNetworkPortNum; //ڸ
+ public byte byDiskCtrlNum; //DVR Ӳ̿
+ public byte byDiskNum; //DVR Ӳ̸
+ public byte byDVRType; //DVR, 1:DVR 2:ATM DVR 3:DVS ......
+ public byte byChanNum; //DVR ͨ
+ public byte byStartChan; //ʼͨ,DVS-1,DVR - 1
+ public byte byDecordChans; //DVR ·
+ public byte byVGANum; //VGAڵĸ
+ public byte byUSBNum; //USBڵĸ
+ public byte byAuxoutNum; //ڵĸ
+ public byte byAudioNum; //ڵĸ
+ public byte byIPChanNum; //ͨ 8λ8λbyHighIPChanNum
+ public byte byZeroChanNum; //ͨ
+ public byte bySupport; //λΪ0ʾ֧֣1ʾ֧֣
+ //bySupport & 0x1, ʾǷ֧
+ //bySupport & 0x2, ʾǷֱ֧
+ //bySupport & 0x4, ʾǷ֧ѹȡ
+ //bySupport & 0x8, ʾǷֶ֧
+ //bySupport & 0x10, ʾ֧ԶSADP
+ //bySupport & 0x20, ʾ֧Raid
+ //bySupport & 0x40, ʾ֧IPSAN
+ //bySupport & 0x80, ʾ֧rtp over rtsp
+ public byte byEsataUseage; //EsataĬ;0-Ĭϱݣ1-Ĭ¼
+ public byte byIPCPlug; //0-رռ弴ã1-弴
+ public byte byStorageMode; //0-ģʽ,1-, 2֡ģʽ
+ public byte bySupport1; //λΪ0ʾ֧֣1ʾ֧
+ //bySupport1 & 0x1, ʾǷ֧snmp v30
+ //bySupport1 & 0x2, ֻ֧طź
+ //bySupport1 & 0x4, Ƿֲ֧ȼ
+ //bySupport1 & 0x8, 豸Ƿֲ֧ʱչ
+ //bySupport1 & 0x10, ʾǷֶ֧33
+ //bySupport1 & 0x20, ʾǷ֧rtsp over http
+ public ushort wDevType;//豸ͺ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DEV_TYPE_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDevTypeName;//豸ͺ
+ public byte bySupport2; //չλΪ0ʾ֧֣1ʾ֧
+ //bySupport2 & 0x1, ʾǷ֧չOSDַ(ն˺ץĻչ)
+ public byte byAnalogAlarmInPortNum; //ģⱨ
+ public byte byStartAlarmInNo; //ģⱨʼ
+ public byte byStartAlarmOutNo; //ģⱨʼ
+ public byte byStartIPAlarmInNo; //IPʼ 0-Ч
+ public byte byStartIPAlarmOutNo; //IPʼ 0-Ч
+ public byte byHighIPChanNum; //ͨ8λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ public const int MAX_ZEROCHAN_NUM = 16;
+ //ͨѹò
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ZEROCHANCFG
+ {
+ public uint dwSize; //ṹ
+ public byte byEnable; //0-ֹͣͨ룬1-ʾͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwVideoBitrate; /*Ƶ 0- 1-16K() 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K
+ * 12-320K 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K
+ * 23-2048K
+ * λ(31λ)ó1ʾԶ, 0-30λʾֵ(MIN-32K MAX-8192K) */
+ public uint dwVideoFrameRate; //֡ 0-ȫ; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20,
+ //V2.014-15, 15-18, 16-22;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ͨŲ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ZERO_ZOOMCFG
+ {
+ public uint dwSize; //ṹ
+ public NET_VCA_POINT struPoint; //е
+ public byte byState; //ڵ״̬0-С1-Ŵ
+ public byte byPreviewNumber; //ԤĿ,0-1,1-4,2-9,3-16 òֻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOW_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPreviewSeq;//ͨϢ òֻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ public const int DESC_LEN_64 = 64;
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SNMPCFG
+ {
+ public uint dwSize; //ṹ
+ public byte byEnable; //0-SNMP1-ʾSNMP
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public ushort wVersion; //snmp 汾 v1 = 1, v2 =2, v3 =3豸Ŀǰ֧ v3
+ public ushort wServerPort; //snmpϢն˿ڣĬ 161
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byReadCommunity; //ͬ壬31,Ĭ"public"
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byWriteCommunity;//дͬ,31 ֽ,Ĭ "private"
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN_64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTrapHostIP; //ipַ֧IPV4 IPV6
+ public ushort wTrapHostPort; //trap˿
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTrapName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 70, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SNMPv3_USER
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUserName; // û
+ public byte bySecLevel; //ȫ 1-У 2-ȨУ 3-ȨУ
+ public byte byAuthtype; //֤ 0-MD5֤ 1-SHA֤ 2: none
+ public byte byPrivtype; //0: DES; 1: AES; 2: none;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAuthpass; //֤
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPrivpass; //
+ }
+
+ //snmpv30
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SNMPCFG_V30
+ {
+ public uint dwSize; //ṹ
+ public byte byEnableV1; //0-SNMP V11-ʾSNMP V1
+ public byte byEnableV2; //0-SNMP V21-ʾSNMP V2
+ public byte byEnableV3; //0-SNMP V31-ʾSNMP V3
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public ushort wServerPort; //snmpϢն˿ڣĬ 161
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byReadCommunity; //ͬ壬31,Ĭ"public"
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byWriteCommunity; //дͬ,31 ֽ,Ĭ "private"
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN_64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTrapHostIP; //ipַ֧IPV4 IPV6
+ public ushort wTrapHostPort; // trap˿
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_DVR_SNMPv3_USER struRWUser; // дû
+ public NET_DVR_SNMPv3_USER struROUser; // ֻû
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTrapName;
+ }
+
+ public const int PROCESSING = 0; //ڴ
+ public const int PROCESS_SUCCESS = 100; //
+ public const int PROCESS_EXCEPTION = 400; //쳣
+ public const int PROCESS_FAILED = 500; //ʧ
+ public const int PROCESS_QUICK_SETUP_PD_COUNT = 501; //һ3Ӳ
+
+ public const int SOFTWARE_VERSION_LEN = 48;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SADPINFO
+ {
+ public NET_DVR_IPADDR struIP; // 豸IPַ
+ public ushort wPort; // 豸˿ں
+ public ushort wFactoryType; // 豸
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = SOFTWARE_VERSION_LEN)]
+ public string chSoftwareVersion;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string chSerialNo; // к
+ public ushort wEncCnt; // ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr; // MAC ַ
+ public NET_DVR_IPADDR struSubDVRIPMask; // DVR IPַ
+ public NET_DVR_IPADDR struGatewayIpAddr; //
+ public NET_DVR_IPADDR struDnsServer1IpAddr; /* 1IPַ */
+ public NET_DVR_IPADDR struDnsServer2IpAddr; /* 2IPַ */
+ public byte byDns;
+ public byte byDhcp;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 158, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ public const int MAX_SADP_NUM = 256; //豸Ŀ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SADPINFO_LIST
+ {
+ public uint dwSize; // ṹС
+ public ushort wSadpNum; // 豸Ŀ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SADP_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SADPINFO[] struSadpInfo; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SADP_VERIFY
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PASSWD_LEN)]
+ public string chPassword;
+ public NET_DVR_IPADDR struOldIP;
+ public ushort wOldPort;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 62, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEO_CALL_COND
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEO_CALL_PARAM
+ {
+ public uint dwSize;
+ public uint dwCmdType; // 0-У1-ȡκУ2-κ 3-ܾ 4-峬ʱ 5-ͨ6-豸ͨУ7-ͻͨУ8ڻ
+ public ushort wPeriod; //ں, Χ[0,9]
+ public ushort wBuildingNumber; //¥
+ public ushort wUnitNumber; //Ԫ
+ public ushort wFloorNumber; //
+ public ushort wRoomNumber; //
+ public ushort wDevIndex; //豸
+ public byte byUnitType; //豸ͣ1-ſڻ2-3-ڻ4-Χǽ5-ſڻ6-ȷϻ7-8700ͻˣ8-4200ͻˣ9-APP
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 115, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_UNLOCK_RECORD_INFO
+ {
+ public byte byUnlockType; //ʽοUNLOCK_TYPE_ENUM
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byControlSrc; //ԴϢˢʱΪţʱΪөʯAPP˺ţά뿪ʱΪÿ͵ֻţΪ豸
+ public uint dwPicDataLen; //ͼƬݳ
+ public IntPtr pImage; //ͼƬָ
+ public uint dwCardUserID; //ֿID
+ public ushort nFloorNumber;//ˢʱЧΪ¥
+ public ushort wRoomNumber; //ԴϢˢʱЧΪţ
+ public ushort wLockID; //ſڻ0-ʾϽӵ1-ʾӿϽӵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = LOCK_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLockName; //ˢʱЧƣӦŲ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_SDK_EMPLOYEE_NO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEmployeeNo; //ţԱID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 136, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ϢĶִ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NOTICEDATA_RECEIPT_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NOTICE_NUMBER_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byNoticeNumber; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 224, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //֤¼豸δʵ֣
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AUTH_INFO
+ {
+ public byte byAuthResult; //֤0-Ч1-֤ɹ2-֤ʧ
+ public byte byAuthType; //֤ʽ0-Ч1-ָƣ2-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = ACS_CARD_NO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCardNo; //
+ public uint dwPicDataLen; //ͼƬݳȣ֤ʽbyAuthTypeΪʱЧ
+ public IntPtr pImage; //ͼƬָ루֤ʽbyAuthTypeΪʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 212, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLen;
+ }
+
+ //ӶԽ¼¼
+ public struct NET_DVR_VIDEO_INTERCOM_EVENT
+ {
+ public uint dwSize; //ṹС
+ public NET_DVR_TIME_EX struTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DEV_NUMBER_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDevNumber; //豸
+ public byte byEventType; //¼Ϣͣ1-¼2-ϢĶִ3-֤¼4-Ϣϴ5Ƿˢ¼6-ſڻ¼(ҪſڻܣˢʱŻϴ¼)
+ public byte byPicTransType; //ͼƬݴ䷽ʽ: 0-ƣ1-url
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON uEventInfo; //¼ϢݲοbyEventTypeȡֵ
+ public uint dwIOTChannelNo; //IOTͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 252, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //XMLӿ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_XML_CONFIG_INPUT
+ {
+ public uint dwSize;//ṹС
+ public IntPtr lpRequestUrl;//ַʽ
+ public uint dwRequestUrlLen;
+ public IntPtr lpInBuffer;//XMLʽ
+ public uint dwInBufferSize;
+ public uint dwRecvTimeOut;//ճʱʱ䣬λms0ʹĬϳʱ5s
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_XML_CONFIG_OUTPUT
+ {
+ public uint dwSize;//ṹС
+ public IntPtr lpOutBuffer;//XMLʽ
+ public uint dwOutBufferSize;
+ public uint dwReturnedXMLSize;//ʵXMLݴС
+ public IntPtr lpStatusBuffer;//ص״̬(XMLʽResponseStatus)ȡɹʱḳֵҪNULL
+ public uint dwStatusSize;//״̬С(ڴС)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHANNEL_GROUP
+ {
+ public uint dwSize;//ṹС
+ public uint dwChannel;//ͨ
+ public uint dwGroup; //ţ0ʼ0ʾ1飬1ʾ2飬
+ public byte byID;//豸ID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwPositionNo;//λţIPCΪ0IPD1ʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 56, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_TRAVERSE_PLANE_DETECTION
+ {
+ public uint dwSize;//ṹС
+ public byte byEnable;//ʹԽܣ0- 1-
+ public byte byEnableDualVca; //֧ܺ0- ã1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALERTLINE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_TRAVERSE_PLANE[] struAlertParam;//߲
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmSched;//ʱ䣬ÿ7죬ÿ8ʱ
+
+ public NET_DVR_HANDLEEXCEPTION_V40 struHandleException;//쳣ʽ
+
+ public uint dwMaxRelRecordChanNum;
+ public uint dwRelRecordChanNum;
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U4)]
+ public uint[] byRelRecordChan;
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struHolidayTime; //ղʱ䣬8ʱ
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_STD_CONFIG
+ {
+ public IntPtr lpCondBuffer;
+ public uint dwCondSize;
+ public IntPtr lpInBuffer;
+ public uint dwInSize;
+ public IntPtr lpOutBuffer;
+ public uint dwOutSize;
+ public IntPtr lpStatusBuffer;
+ public uint dwStatusSize;
+ public IntPtr lpXmlBuffer;
+ public uint dwXmlSize;
+ public byte byDataType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_THERMOMETRY_COND
+ {
+ public uint dwSize;
+ public uint dwChannel;
+ public ushort wPresetNo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 62, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_THERMOMETRY_TRIGGER_COND
+ {
+ public uint dwSize;
+ public uint dwChan;
+ public uint dwPreset;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EVENT_TRIGGER
+ {
+ public uint dwSize;
+ public NET_DVR_HANDLEEXCEPTION_V41 struHandleException;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRelRecordChan;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PRESETCHAN_INFO[] struPresetChanInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CRUISECHAN_INFO[] struCruiseChanInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PTZTRACKCHAN_INFO[] struPtzTrackInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_THERMOMETRY_ALARMRULE
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = THERMOMETRY_ALARMRULE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_THERMOMETRY_ALARMRULE_PARAM[] struThermometryAlarmRuleParam;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_THERMOMETRY_ALARMRULE_PARAM
+ {
+ public byte byEnabled;
+ public byte byRuleID;
+ public byte byRule;
+ public byte byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = NAME_LEN)]
+ public string szRuleName;
+ public float fAlert;
+ public float fAlarm;
+ public float fThreshold;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+
+
+ //¶ȱ¶Ⱥ¶ȱȽϱ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_THERMOMETRY_ALARM
+ {
+ public uint dwSize;
+ public uint dwChannel;//ͨ
+ public byte byRuleID;//ID
+ public byte byThermometryUnit;//µλ: 0-϶ȣ棩1-϶ȣH2-(K)
+ public ushort wPresetNo; //Ԥõ
+ public NET_PTZ_INFO struPtzInfo;//ptzϢ
+ public byte byAlarmLevel;//0-Ԥ 1-
+ public byte byAlarmType;/* 0-¶ 1-¶ 2-ƽ¶ 3-² 4-¶ͻ 5-¶ͻ*/
+ public byte byAlarmRule;//0-ڣ1-С
+ public byte byRuleCalibType;//궨 0-㣬1-2
+ public NET_VCA_POINT struPoint;//꣨궨ΪʱЧ
+ public NET_VCA_POLYGON struRegion;//궨ΪʱЧ
+ public float fRuleTemperature;/*ù¶,ȷСһλ(-40-1000),+100 */
+ public float fCurrTemperature;/*ǰ¶,ȷСһλ(-40-1000),+100 */
+ public uint dwPicLen;//ɼͼƬ
+ public uint dwThermalPicLen;//ȳͼƬ
+ public uint dwThermalInfoLen;//ȳϢ
+ public IntPtr pPicBuff; ///ɼͼƬָ
+ public IntPtr pThermalPicBuff;// ȳͼƬָ
+ public IntPtr pThermalInfoBuff; //ȳϢָ
+ public NET_VCA_POINT struHighestPoint;//ߡ¶λ꣨궨ΪߡʱЧ
+ public float fToleranceTemperature;/* ݲ¶,ȷСһλ(-40-1000),+100 */
+ public uint dwAlertFilteringTime;//¶Ԥȴʱ λ ΧΪ0-200룬ĬΪ0
+ public uint dwAlarmFilteringTime;//¶ȱȴʱ λ ΧΪ0-200룬ĬΪ0
+ public uint dwTemperatureSuddenChangeCycle;//¶ͻ¼ڣλ
+ public float fTemperatureSuddenChangeValue;//¶ͻֵ,ȷСһλ(0)
+ public byte byPicTransType; //ͼƬݴ䷽ʽ: 0-ƣ1-url
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 39, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_SDK_MANUALTHERM_BASICPARAM
+ {
+ public uint dwSize;
+ public ushort wDistance;//(m)[0, 10000]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public float fEmissivity;//( ȷСλ)[0.01, 1.00](ı)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_SDK_POINT_THERMOMETRY
+ {
+ public float fPointTemperature;/*µǰ¶, 궨Ϊ0-ʱЧȷСһλ(-40-1000),+100*10 */
+ public NET_VCA_POINT struPoint;//꣨궨Ϊ㡱ʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_SDK_REGION_THERMOMETRY
+ {
+ public float fMaxTemperature;//¶,ȷСһλ(-40-1000),+100*10 */
+ public float fMinTemperature;//¶,ȷСһλ(-40-1000),+100*10 */
+ public float fAverageTemperature;//ƽ¶,ȷСһλ(-40-1000),+100*10 */
+ public float fTemperatureDiff;//²,ȷСһλ(-40-1000),+100*10 */
+ public NET_VCA_POLYGON struRegion;//ߣ궨ΪߡߡʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_SDK_MANUALTHERM_RULE
+ {
+ public byte byRuleID;//ID 0-ʾЧ1ʼ listڲжЧԣ
+ public byte byEnable;//Ƿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] szRuleName;//
+ public byte byRuleCalibType;//궨 0-㣬1-2-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_SDK_POINT_THERMOMETRY struPointTherm;//£궨Ϊ0-ʱЧ
+ public NET_SDK_REGION_THERMOMETRY struRegionTherm; //£궨Ϊ1-2-ʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 512, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_SDK_MANUAL_THERMOMETRY
+ {
+ public uint dwSize;//ṹС
+ public uint dwChannel;//ͨ
+ public uint dwRelativeTime; // ʱֻ꣨
+ public uint dwAbsTime; // ʱֻ꣨
+ public byte byThermometryUnit;//µλ: 0-϶ȣ棩1-϶ȣH2-(K)
+ public byte byDataType;//״̬:0-У1-ʼ2-ֻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_SDK_MANUALTHERM_RULE struRuleInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 512, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+ /***************************** end *********************************************/
+
+ /*******************************ݽṹ begin********************************/
+ //ȡ豸Ϣӿڶ
+ public const int DESC_LEN_32 = 32; //ֳ
+ public const int MAX_NODE_NUM = 256; //ڵ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DESC_NODE
+ {
+ public int iValue;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN_32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDescribe; //ֶ
+ public uint dwFreeSpace; //ȡбר,λΪM
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISKABILITY_LIST
+ {
+ public uint dwSize; //ṹ
+ public uint dwNodeNum; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NODE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DESC_NODE[] struDescNode; //
+ }
+
+ //ݽб
+ public const int BACKUP_SUCCESS = 100; //
+ public const int BACKUP_CHANGE_DEVICE = 101; //豸豸
+
+ public const int BACKUP_SEARCH_DEVICE = 300; //豸
+ public const int BACKUP_SEARCH_FILE = 301; //¼ļ
+ public const int BACKUP_SEARCH_LOG_FILE = 302; //־ļ
+
+ public const int BACKUP_EXCEPTION = 400; //쳣
+ public const int BACKUP_FAIL = 500; //ʧ
+
+ public const int BACKUP_TIME_SEG_NO_FILE = 501; //ʱ¼ļ
+ public const int BACKUP_NO_RESOURCE = 502; //벻Դ
+ public const int BACKUP_DEVICE_LOW_SPACE = 503; //豸
+ public const int BACKUP_DISK_FINALIZED = 504; //¼̷
+ public const int BACKUP_DISK_EXCEPTION = 505; //¼쳣
+ public const int BACKUP_DEVICE_NOT_EXIST = 506; //豸
+ public const int BACKUP_OTHER_BACKUP_WORK = 507; //ݲڽ
+ public const int BACKUP_USER_NO_RIGHT = 508; //ûûвȨ
+ public const int BACKUP_OPERATE_FAIL = 509; //ʧ
+ public const int BACKUP_NO_LOG_FILE = 510; //Ӳ־
+
+ //ݹ̽ӿڶ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BACKUP_NAME_PARAM
+ {
+ public uint dwFileNum; //ļ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RECORD_FILE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_FINDDATA_V30[] struFileList; //ļб
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN_32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDiskDes; //ݴ
+ public byte byWithPlayer; //Ƿݲ
+ public byte byContinue; /*Ƿ 0 1*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 34, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BACKUP_TIME_PARAM
+ {
+ public int lChannel; //ʱ䱸ݵͨ
+ public NET_DVR_TIME struStartTime; //ݵʼʱ
+ public NET_DVR_TIME struStopTime; //ݵֹʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN_32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDiskDes; //ݴ
+ public byte byWithPlayer; //Ƿݲ
+ public byte byContinue; //Ƿ 0 1
+ public byte byDrawFrame; //0 ֡ 1 ֡
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 33, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+ /********************************* end *******************************************/
+ public enum COMPRESSION_ABILITY_TYPE
+ {
+ COMPRESSION_STREAM_ABILITY = 0, //ѹ
+ MAIN_RESOLUTION_ABILITY = 1, //ѹֱ
+ SUB_RESOLUTION_ABILITY = 2, //ѹֱ
+ EVENT_RESOLUTION_ABILITY = 3, //¼ѹֱ
+ FRAME_ABILITY = 4, //֡
+ BITRATE_TYPE_ABILITY = 5, //λ
+ BITRATE_ABILITY = 6, //λ
+ THIRD_RESOLUTION_ABILITY = 7, //ѹֱ
+ STREAM_TYPE_ABILITY = 8, //
+ PIC_QUALITY_ABILITY = 9, //ͼ
+ INTERVAL_BPFRAME_ABILITY = 10, //BP֡
+ VIDEO_ENC_ABILITY = 11, //Ƶ
+ AUDIO_ENC_ABILITY = 12, //Ƶ
+ VIDEO_ENC_COMPLEXITY_ABILITY = 13, //Ƶ븴Ӷ
+ FORMAT_ABILITY = 14, //װʽ
+ }
+
+ //б
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ABILITY_LIST
+ {
+ public uint dwAbilityType; // COMPRESSION_ABILITY_TYPE
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ public uint dwNodeNum; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NODE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DESC_NODE[] struDescNode; //
+ }
+
+ public const int MAX_ABILITYTYPE_NUM = 12; //
+
+ // ѹб
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSIONCFG_ABILITY
+ {
+ public uint dwSize; //ṹ
+ public uint dwAbilityNum; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ABILITYTYPE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ABILITY_LIST[] struAbilityNode; //
+ }
+
+ //ģʽA
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HOLIDATE_MODEA
+ {
+ public byte byStartMonth; // ʼ 1ʼ
+ public byte byStartDay; // ʼ 1ʼ
+ public byte byEndMonth; //
+ public byte byEndDay; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HOLIDATE_MODEB
+ {
+ public byte byStartMonth; // 1ʼ
+ public byte byStartWeekNum; // ڼ 1ʼ
+ public byte byStartWeekday; // ڼ
+ public byte byEndMonth; // 1ʼ
+ public byte byEndWeekNum; // ڼ 1ʼ
+ public byte byEndWeekday; // ڼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HOLIDATE_MODEC
+ {
+ public ushort wStartYear; //
+ public byte byStartMon; //
+ public byte byStartDay; //
+ public ushort wEndYear; //
+ public byte byEndMon; //
+ public byte byEndDay; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_HOLIDATE_UNION
+ {
+ //С 12ֽ
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwSize;
+ /*[FieldOffsetAttribute(0)]
+ public NET_DVR_HOLIDATE_MODEA struModeA; // ģʽA
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_HOLIDATE_MODEB struModeB; // ģʽB
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_HOLIDATE_MODEC struModeC; // ģʽC
+ * */
+ }
+
+ public enum HOLI_DATE_MODE
+ {
+ HOLIDATE_MODEA = 0,
+ HOLIDATE_MODEB,
+ HOLIDATE_MODEC
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HOLIDAY_PARAM
+ {
+ public byte byEnable; // Ƿ
+ public byte byDateMode; // ģʽ 0-ģʽA 1-ģʽB 2-ģʽC
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_DVR_HOLIDATE_UNION uHolidate; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byName; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ public const int MAX_HOLIDAY_NUM = 32;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HOLIDAY_PARAM_CFG
+ {
+ public uint dwSize; // ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HOLIDAY_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_HOLIDAY_PARAM[] struHolidayParam; // ղ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ձʽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HOLIDAY_HANDLE
+ {
+ public uint dwSize; // ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime; // ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 240, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HOLIDAY_RECORD
+ {
+ public uint dwSize;
+ public NET_DVR_RECORDDAY struRecDay; // ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_RECORDSCHED[] struRecordSched; // ¼ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ public const int MAX_LINK_V30 = 128;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ONE_LINK
+ {
+ public NET_DVR_IPADDR struIP; // ͻIP
+ public int lChannel; // ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LINK_STATUS
+ {
+ public uint dwSize; // ṹС
+ public ushort wLinkNum; // ӵĿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LINK_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_LINK[] struOneLink; // ӵĿͻϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ public const int MAX_BOND_NUM = 2;
+
+ //BONDINGýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_ONE_BONDING
+ {
+ public byte byMode;
+ public byte byUseDhcp;
+ public byte byMasterCard;
+ public byte byStatus;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NETWORK_CARD, ArraySubType = UnmanagedType.I1)]
+ public byte[] byBond;
+ public NET_DVR_ETHERNET_V30 struEtherNet;
+ public NET_DVR_IPADDR struGatewayIpAddr;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //BONDINGýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_DVR_NETWORK_BONDING
+ {
+ public uint dwSize;
+ public byte byEnable;
+ public byte byNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_BOND_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_ONE_BONDING[] struOneBond;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISK_QUOTA
+ {
+ public byte byQuotaType; // ,1 -
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public uint dwHCapacity; // Ĵ32λ λMB
+ public uint dwLCapacity; // Ĵ32λ λMB
+ public uint dwHUsedSpace; // ʹõĴ̴С32λ λMB
+ public uint dwLUsedSpace; // ʹõĴ̴С32λ λMB
+ public byte byQuotaRatio; // Ĵ̱,λ:%
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 21, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISK_QUOTA_CFG
+ {
+ public uint dwSize; // ṹС
+ public NET_DVR_DISK_QUOTA struPicQuota; // ͼƬ
+ public NET_DVR_DISK_QUOTA struRecordQuota; // ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TIMING_CAPTURE
+ {
+ public NET_DVR_JPEGPARA struJpegPara; // ʱץͼͼƬ
+ public uint dwPicInterval; //ʱץͼʱ,λs 1-1s 2-2s 3-3s 4-4s 5-5s
+ //6-10m 7-30m 8-1h 9-12h 10-24h
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_REL_CAPTURE_CHAN
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byChan; // λʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ public const int MAX_PIC_EVENT_NUM = 32;
+ public const int MAX_ALARMIN_CAPTURE = 16;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_REL_CAPTURE_CHAN_V40
+ {
+ public uint dwMaxRelCaptureChanNum; //ɴĹͨ-ֻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwChanNo; //Ĺץͼͨţֵʾý,0xffffffffʾЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EVENT_CAPTURE_V40
+ {
+ public NET_DVR_JPEGPARA struJpegPara; // ¼ץͼͼƬ
+ public uint dwPicInterval; // ¼ץͼʱ λΪ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_PIC_EVENT_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_REL_CAPTURE_CHAN_V40[] struRelCaptureChan; // ± 0 ƶⴥץͼ 1 Ƶڵץͼ 2 Ƶʧץͼ,3ʾPIRץͼ4ʾ߱ץͼ5ʾȱץͼ,6ʾץͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMIN_CAPTURE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_REL_CAPTURE_CHAN_V40[] struAlarmInCapture; // 봥ץͼ±0 1
+ public uint dwMaxGroupNum; //豸ֵ֧ÿ16
+ public byte byCapTimes; //ץͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 59, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EVENT_CAPTURE
+ {
+ public NET_DVR_JPEGPARA struJpegPara; // ¼ץͼͼƬ
+ public uint dwPicInterval; /*¼ץͼʱ λΪ 1-1s 2-2s 3-3s 4-4s 5-5s
+ * 6-10m 7-30m 8-1h 9-12h 10-24h*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_PIC_EVENT_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_REL_CAPTURE_CHAN[] struRelCaptureChan; /* ± 0 ƶⴥץͼ 1 Ƶڵץͼ,
+ * 2 Ƶʧץͼ,3ʾPIRץͼ4ʾ߱ץͼ
+ * 5ʾȱץͼ,6ʾץͼ 7ʾ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ALARMIN_CAPTURE, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_REL_CAPTURE_CHAN[] struAlarmInCapture; //봥ץͼ±0 1
+ public byte byCapTimes; //ץͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 59, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_JPEG_CAPTURE_CFG_V40
+ {
+ public uint dwSize; //ṹ峤
+ public NET_DVR_TIMING_CAPTURE struTimingCapture;
+ public NET_DVR_EVENT_CAPTURE_V40 struEventCapture;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_JPEG_CAPTURE_CFG
+ {
+ public uint dwSize; // ṹС
+ public NET_DVR_TIMING_CAPTURE struTimingCapture;
+ public NET_DVR_EVENT_CAPTURE struEventCapture;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CAPTURE_DAY
+ {
+ public byte byAllDayCapture; // Ƿȫץͼ
+ public byte byCaptureType; // ץͼͣ0-ʱץͼ1-ƶץͼ2-ץͼ3-ƶץͼ4-ƶͱץͼ6-ܱץͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CAPTURE_SCHED
+ {
+ public NET_DVR_SCHEDTIME struCaptureTime; // ץͼʱ
+ public byte byCaptureType; // ץͼͣ0-ʱץͼ1-ƶץͼ2-ץͼ3-ƶץͼ4-ƶͱץͼ6-ܱץͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //ͨץͼƻ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCHED_CAPTURECFG
+ {
+ public uint dwSize; //ṹ
+ public byte byEnable; //Ƿץͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CAPTURE_DAY[] struCaptureDay;//ȫץͼƻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CAPTURE_SCHED[] struCaptureSched;//ʱץͼƻ
+ public NET_DVR_CAPTURE_DAY struCaptureHoliday; //ץͼƻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TIMESEGMENT_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CAPTURE_SCHED[] struHolidaySched; //ʱμץͼƻ
+ public uint dwRecorderDuration; //ץͼʱ 0xffffffffʾֵЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FLOW_TEST_PARAM
+ {
+ public uint dwSize; //ṹС
+ public int lCardIndex; //
+ public uint dwInterval; //豸ϴʱ, λ:100ms
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FLOW_INFO
+ {
+ public uint dwSize; //ṹС
+ public uint dwSendFlowSize; //С,λkbps
+ public uint dwRecvFlowSize; //С,λkbps
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //¼ǩ
+ public const int LABEL_NAME_LEN = 40;
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORD_LABEL
+ {
+ public uint dwSize; // ṹС
+ public NET_DVR_TIME struTimeLabel; // ǩʱ
+ public byte byQuickAdd; // Ƿ ʱǩЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = LABEL_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sLabelName; // ǩ Ϊ40ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ public const int LABEL_IDENTIFY_LEN = 64;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LABEL_IDENTIFY
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = LABEL_IDENTIFY_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sLabelIdentify; // 64ֽڱʶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ public const int MAX_DEL_LABEL_IDENTIFY = 20;// ɾǩʶ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEL_LABEL_PARAM
+ {
+ public uint dwSize; // ṹС
+ public byte byMode; // λʾ,0x01ʾʶɾ
+ public byte byRes1;
+ public ushort wLabelNum; // ǩĿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DEL_LABEL_IDENTIFY, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_LABEL_IDENTIFY[] struIndentify; // ǩʶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 160, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MOD_LABEL_PARAM
+ {
+ public NET_DVR_LABEL_IDENTIFY struIndentify; //Ҫĵıǩʶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = LABEL_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sLabelName; //ĺıǩ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ǩṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FIND_LABEL
+ {
+ public uint dwSize; // ṹС
+ public int lChannel; // ҵͨ
+ public NET_DVR_TIME struStartTime; // ʼʱ
+ public NET_DVR_TIME struStopTime; // ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = LABEL_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sLabelName; // ¼ǩ ǩΪգֹʱбǩ
+ public byte byDrawFrame; //0:֡1֡
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 39, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ //ǩϢṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FINDLABEL_DATA
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = LABEL_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sLabelName; // ǩ
+ public NET_DVR_TIME struTimeLabel; // ǩʱ
+ public NET_DVR_LABEL_IDENTIFY struLabelIdentify; // ǩʶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ }
+
+ public const int CARDNUM_LEN_V30 = 40;
+ public const int PICTURE_NAME_LEN = 64;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FIND_PICTURE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PICTURE_NAME_LEN)]
+ public string sFileName;//ͼƬ
+ public NET_DVR_TIME struTime;//ͼƬʱ
+ public uint dwFileSize;//ͼƬĴС
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = CARDNUM_LEN_V30)]
+ public string sCardNum; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FIND_PICTURE_PARAM
+ {
+ public uint dwSize; // ṹС
+ public int lChannel; // ͨ
+ public byte byFileType;
+ public byte byNeedCard; // ǷҪ
+ public byte byProvince; //ʡֵ
+ public byte byEventType; // ¼ͣ01-ͨ¼2-Υȡ֤3-¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CARDNUM_LEN_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCardNum; //
+ public NET_DVR_TIME struStartTime;//ͼƬĿʼʱ
+ public NET_DVR_TIME struStopTime;// ͼƬĽʱ
+ //ITC3.7
+ public uint dwTrafficType; //ͼƬЧ ο VCA_OPERATE _TYPE
+ public uint dwVehicleType; // ο VCA_VEHICLE_TYPE
+ //ΥͲο VCA_ILLEGAL_TYPE ǰָ֧ѡ
+ public uint dwIllegalType;
+ public byte byLaneNo; //(1~99)
+ public byte bySubHvtType ;//0-,1-(ֳ֧Ƽʡݼ),2-ǻ,3-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LICENSE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sLicense; //ƺ
+ public byte byRegion; // ֵ 0-1-ŷ(Europe Region)2-(Russian Region)3-ŷ&˹(EU&CIS), 4-ж(Middle East),0xff-
+ public byte byCountry; // ֵգCOUNTRY_INDEX
+ public byte byArea; //
+ public byte byISO8601; //Ƿ8601ʱʽʱֶǷЧ0-ʱЧʱΪ豸ʱ 1-ʱЧ
+ public byte cStartTimeDifferenceH; //ʼʱUTCʱСʱ-12 ... +14 ʾʱ
+ public byte cStartTimeDifferenceM; //ʼʱUTCʱӣ-30, 0, 30, 45ʾʱ
+ public byte cStopTimeDifferenceH; //ʱUTCʱСʱ-12 ... +14ʾʱ
+ public byte cStopTimeDifferenceM; //ʱUTCʱӣ-30, 0, 30, 45ʾʱ
+ }
+
+ public const int MAX_RECORD_PICTURE_NUM = 50; //ͼƬ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BACKUP_PICTURE_PARAM
+ {
+ public uint dwSize; // ṹС
+ public uint dwPicNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RECORD_PICTURE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_FIND_PICTURE[] struPicture;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN_32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDiskDes;
+ public byte byWithPlayer;
+ public byte byContinue; /*Ƿ 0 1*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 34, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_COMPRESSION_LIMIT
+ {
+ public uint dwSize; //ṹС
+ public uint dwChannel; //ͨ
+ public byte byCompressType; //ȡѹ1,2,3,¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public NET_DVR_COMPRESSIONCFG_V30 struCurrentCfg; //ǰѹ
+ }
+
+ public const int STEP_READY = 0; //
+ public const int STEP_RECV_DATA = 1; //
+ public const int STEP_UPGRADE = 2; //ϵͳ
+ public const int STEP_BACKUP = 3; //ϵͳ
+ public const int STEP_SEARCH = 255; //ļ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEO_EFFECT
+ {
+ public uint dwBrightValue; //[0,255]
+ public uint dwContrastValue; //Աȶ[0,255]
+ public uint dwSaturationValue; //Ͷ[0,255]
+ public uint dwHueValue; //ɫ[0,255]
+ public uint dwSharpness; //[0,255]
+ public uint dwDenoising; //ȥ[0,255]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEO_INPUT_EFFECT
+ {
+ public uint dwSize; //ṹС
+ public ushort wEffectMode; //ģʽ 0- 1- 2- 3- 255-Զ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 146, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_DVR_VIDEO_EFFECT struVideoEffect; //ƵЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VIDEOPARA_V40
+ {
+ public uint dwChannel; // ͨ
+ public uint dwVideoParamType; // Ƶ 0- 1-Աȶ 2-Ͷ 3-ɫ 4- 5-ȥ
+ public uint dwVideoParamValue; //ӦƵֵΧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEFAULT_VIDEO_COND
+ {
+ public uint dwSize; // ṹС
+ public uint dwChannel; // ͨ
+ public uint dwVideoMode; // ģʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ENCODE_JOINT_PARAM
+ {
+ public uint dwSize; // ṹС
+ public byte byJointed; // 0 ûй 1 Ѿ
+ public byte byDevType; // 豸 1 豸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; // ֽ
+ public NET_DVR_IPADDR struIP; // ıȡ豸IPַ
+ public ushort wPort; // ıȡ豸˿ں
+ public ushort wChannel; // ıȡ豸ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VCA_CHAN_WORKSTATUS
+ {
+ public byte byJointed; // 0-ûй 1-Ѿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_IPADDR struIP; // ȡ豸IPַ
+ public ushort wPort; // ȡ豸˿ں
+ public ushort wChannel; // ȡ豸ͨ
+ public byte byVcaChanStatus; // 0 - δ 1 -
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 19, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VCA_DEV_WORKSTATUS
+ {
+ public uint dwSize; // ṹС
+ public byte byDeviceStatus; // 豸״̬0 - 1-
+ public byte byCpuLoad; // CPUʹ0-100 ֱʹðٷ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_VCA_CHAN, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_VCA_CHAN_WORKSTATUS[] struVcaChanStatus;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct UNION_VIDEOPLATFORM_V40
+ {
+ /*ӴڶӦͨӦĽϵͳIJλ(Ƶۺƽ̨нϵͳЧ)*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecoderId;
+ //ʾƵֱʣ1-D1,2-720P,3-1080P豸Ҫݴ//ֱʽнͨķ䣬1ó1080P豸4ͨ
+ //˽ͨ
+ public byte byDecResolution;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 143, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct UNION_NOTVIDEOPLATFORM_V40
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 160, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VGA_DISP_CHAN_CFG_V40
+ {
+ public uint dwSize;
+ public byte byAudio; /*ƵǷ*/
+ public byte byAudioWindowIdx; /*ƵӴ*/
+ public byte byVgaResolution; /*ֱʣȡ*/
+ public byte byVedioFormat; /*1:NTSC,2:PAL0-NULL*/
+ public uint dwWindowMode; /*ģʽȡ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecChan;/*ӴڹĽͨ*/
+ public byte byEnlargeStatus; /*ǷڷŴ״̬0Ŵ1Ŵ*/
+ public byte byEnlargeSubWindowIndex;//ŴӴں
+ public byte byScale; /*ʾģʽ0---ʵʾ1---ʾ( BNC )*/
+ /*ֹ壬0-Ƶۺƽ̨ڲʾͨã1-ʾͨ*/
+ public byte byUnionType;
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct struDiff
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 160, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ /*[FieldOffsetAttribute(0)]
+ public UNION_VIDEOPLATFORM_V40 struVideoPlatform;
+
+ [FieldOffsetAttribute(0)]
+ public UNION_NOTVIDEOPLATFORM_V40 struNotVideoPlatform;
+ * */
+ }
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 120, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_V6SUBSYSTEMPARAM
+ {
+ public byte bySerialTrans;//Ƿ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 35, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int NET_DVR_V6PSUBSYSTEMARAM_GET = 1501;//ȡV6ϵͳ
+ public const int NET_DVR_V6PSUBSYSTEMARAM_SET = 1502;//V6ϵͳ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CORRECT_DEADPIXEL_PARAM
+ {
+ public uint dwSize;
+ public uint dwCommand; //0-뻵ģʽ1-ӻ㣬2-滵㣬3-˳
+ public uint dwDeadPixelX; //X
+ public uint dwDeadPixelY; //Y
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ public const int MAX_REDAREA_NUM = 6; //̵
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_REDAREACFG
+ {
+ public uint dwSize;
+ public uint dwCorrectEnable; //ǷУܣ0-رգ1-
+ public uint dwCorrectLevel; //У1(У)-10(У),ĬΪ5
+ public uint dwAreaNum; //У
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_REDAREA_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_RECT[] struLaneRect; //У
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HISTORICDATACFG
+ {
+ public uint dwSize;
+ public uint dwTotalNum; //ʷݸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int INQUEST_MESSAGE_LEN = 44; //ѶصϢ
+ public const int INQUEST_MAX_ROOM_NUM = 2; //ѶҸ
+ public const int MAX_RESUME_SEGMENT = 2; //֧ͬʱָƬĿ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_ROOM
+ {
+ public byte byRoomIndex; //Ѷұ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_MESSAGE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = INQUEST_MESSAGE_LEN)]
+ public string sMessage; //صϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 46, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_SENSOR_DEVICE
+ {
+ public ushort wDeviceType; //ݲɼ豸ͺ:0- 1- 2-ز 3- 4- 5-ء6-ϡ7-ά˹
+ public ushort wDeviceAddr; //ݲɼ豸ַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 28, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_SENSOR_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = INQUEST_MAX_ROOM_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_INQUEST_SENSOR_DEVICE[] struSensorDevice;
+ public uint dwSupportPro; //֧Э,λʾ, °汾չֶ
+ //0x1: 0x2:ز 0x4:
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 120, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_ROOM_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = NAME_LEN)]
+ public string szCDName; //ƣ˫̹һ
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct uCalcMode
+ {
+ [FieldOffsetAttribute(0)]
+ public byte byBitRate; // byCalcTypeΪ0ʱЧ(0-321-482-643-804-965-128
+ //6-1607-1928-2249-25610-32011-38412-448
+ //13-51214-64015-76816-896ǰ16ֵ)17-102418-128019-1536
+ //20-179221-204822-307223-409624-8192
+ [FieldOffsetAttribute(0)]
+ public byte byInquestTime; // byCalcTypeΪ1ʱЧ0-1Сʱ, 1-2Сʱ,2-3Сʱ,3-4Сʱ, 4-6Сʱ,5-8Сʱ
+ //8-16Сʱ, 9-20Сʱ,10-22Сʱ,11-24Сʱ
+ }
+ public byte byCalcType; //¼0- 1-ʱ
+ public byte byAutoDelRecord; // ǷԶɾ¼0-ɾʱ¼ 1-ɾ
+ public byte byAlarmThreshold; // ֵ
+ public byte byInquestChannelResolution; //Ѷֱͨʣ0:720P 1:1080P
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_SYSTEM_INFO
+ {
+ public uint dwRecordMode; //¼ģʽ:1 ˫ģʽ 2 ֿģʽ 3 ˫˫ģʽҪ豸
+ public uint dwWorkMode; //ģʽ:0 ģʽ 1 ͨģʽ(Ŀǰֻбģʽ)
+ public uint dwResolutionMode; //豸ֱʣ0: 1:D1 2:720P 3:1080PѶôֶΣ
+ public NET_DVR_INQUEST_SENSOR_INFO struSensorInfo; //ʪȴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = INQUEST_MAX_ROOM_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_INQUEST_ROOM_INFO[] struInquestRoomInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_RESUME_SEGMENT
+ {
+ public NET_DVR_TIME struStartTime; //¼ʼʱ
+ public NET_DVR_TIME struStopTime; //¼ֹʱ
+ public byte byRoomIndex; //Ѷұ,1ʼ
+ public byte byDriveIndex; //¼,1ʼ
+ public ushort wSegmetSize; //ƬϵĴС, λM
+ public uint dwSegmentNo; //ƬڱѶе,1ʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_RESUME_EVENT
+ {
+ public uint dwResumeNum; //ָ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RESUME_SEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_INQUEST_RESUME_SEGMENT[] struResumeSegment;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 200, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INQUEST_DEVICE_VERSION
+ {
+ public byte byMainVersion; /*汾.
+ 0 : δ֪
+ 1 : 8000ѶDVR
+ ΰ汾: 1 : 8000HD-S
+ 2 : 8100ѶDVR
+ ΰ汾: 1 : Ѷ81SNL
+ 2 : Ѷ81SH
+ 3 : Ѷ81SFH
+ 3 : 8608ѶNVR
+ ΰ汾: 1 : DS-8608SN-SP
+ 2 : DS-8608SN-ST
+ */
+ public byte bySubVersion; //ߴΰ汾
+ public byte byUpgradeVersion; //汾,δΪ0
+ public byte byCustomizeVersion; //ư汾,ǶΪ0
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISK_RAID_INFO
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; //RaidǷ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 35, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SYNCHRONOUS_IPC
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; //ǷãΪǰIPCͬ豸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPC_PASSWD
+ {
+ public uint dwSize; //ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PASSWD_LEN)]
+ public string sOldPasswd; //IPCľ룬DVRDVR֤
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = PASSWD_LEN)]
+ public string sNewPasswd; //IPC
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ͨȡDVR״̬λbps
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DEVICE_NET_USING_INFO
+ {
+ public uint dwSize; //ṹС
+ public uint dwPreview; //Ԥ
+ public uint dwPlayback; //ط
+ public uint dwIPCModule; //IPC
+ public uint dwNetDiskRW; //̶д
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ }
+
+ //ͨDVRǰIPCIPַ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IPC_NETCFG
+ {
+ public uint dwSize; //ṹС
+ public NET_DVR_IPADDR struIP; //IPCIPַ
+ public ushort wPort; //IPCĶ˿
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 126)]
+ public string res;
+ }
+
+ //ʱ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_TIME_LOCK
+ {
+ public uint dwSize; //ṹС
+ public NET_DVR_TIME strBeginTime;
+ public NET_DVR_TIME strEndTime;
+ public uint dwChannel; //ͨ, 0xffʾͨ
+ public uint dwRecordType; //¼: 0xffffffffȫ0ʱ¼1-ƶ⣬23-ƶ⣬4-ƶ⣬5-6-ֶ¼7-¼(ͬļ)
+ public uint dwLockDuration; //ʱ,λ,0xffffffffʾ
+ public NET_DVR_TIME_EX strUnlockTimePoint; //ʱЧdwLockDurationΪʱʱ䵽ʱԶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LOCK_RETURN
+ {
+ public uint dwSize; //ṹС
+ public NET_DVR_TIME strBeginTime;
+ public NET_DVR_TIME strEndTime;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //67DVS
+ //֤
+ public enum NET_SDK_UPLOAD_TYPE
+ {
+ UPGRADE_CERT_FILE = 0,
+ UPLOAD_CERT_FILE = 1,
+ TRIAL_CERT_FILE = 2,
+ CONFIGURATION_FILE = 3
+ }
+
+ public enum NET_SDK_DOWNLOAD_TYPE
+ {
+ NET_SDK_DOWNLOAD_CERT = 0, //֤
+ NET_SDK_DOWNLOAD_IPC_CFG_FILE = 1,//IPCļ
+ NET_SDK_DOWNLOAD_BASELINE_SCENE_PIC = 2, //ػͼƬ
+ NET_SDK_DOWNLOAD_VQD_ALARM_PIC = 3, //VQDͼƬ
+ NET_SDK_DOWNLOAD_CONFIGURATION_FILE=4 //ļ
+ }
+
+ //״̬
+ public enum NET_SDK_DOWNLOAD_STATUS
+ {
+ NET_SDK_DOWNLOAD_STATUS_SUCCESS = 1, //سɹ
+ NET_SDK_DOWNLOAD_STATUS_PROCESSING, //
+ NET_SDK_DOWNLOAD_STATUS_FAILED, //ʧ
+ NET_SDK_DOWNLOAD_STATUS_UNKOWN_ERROR //δ֪
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BONJOUR_CFG
+ {
+ public uint dwSize; // ṹС
+ public byte byEnableBonjour; // Bonjourʹ 0 1ر
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFriendlyName; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SOCKS_CFG
+ {
+ public uint dwSize; // ṹС
+ public byte byEnableSocks; // ʹ 0ر 1
+ public byte byVersion; // SOCKS汾 4SOCKS4 5SOCKS5
+ public ushort wProxyPort; // ˿ڣĬ1080
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byProxyaddr; // IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUserName; // û SOCKS
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPassword; // SOCKS5
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LOCAL_ADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocalAddr; //ʹsocksΣʽΪ"ip/netmask;ip/netmask;"
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_QOS_CFG
+ {
+ public uint dwSize;
+ public byte byManageDscp; // ݵDSCPֵ [0-63]
+ public byte byAlarmDscp; // ݵDSCPֵ [0-63]
+ public byte byVideoDscp; // ƵݵDSCPֵ [0-63]byFlagΪ0ʱʾƵ
+ public byte byAudioDscp; // ƵݵDSCPֵ [0-63]byFlagΪ1ʱЧ
+ public byte byFlag; // 0Ƶһ1Ƶֿ
+ public byte byEnable;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 126, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_HTTPS_CFG
+ {
+ public uint dwSize;
+ public ushort wHttpsPort; // HTTPS˿
+ public byte byEnable; // ʹ 0ر 1
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 125, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //֤
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CERT_NAME
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_COUNTRY_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCountry; //Ҵ CN
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byState; //ʡ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLocality; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byOrganization; //֯
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUnit; //λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCommonName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOMAIN_NAME, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEmail;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CERT_PARAM
+ {
+ public uint dwSize;
+ public ushort wCertFunc; //֤࣬0-802.1x,1-HTTPS
+ public ushort wCertType; //֤ͣ0-CA1-Certificate,2-˽Կļ
+ public byte byFileType; //֤ļͣ0-PEM,1-PFX
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 35, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int UPLOAD_CERTIFICATE = 1; //ϴ֤
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CERT_INFO
+ {
+ public uint dwSize;
+ public NET_DVR_CERT_PARAM struCertParam; //֤
+ public uint dwValidDays; //ЧΪǩʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPasswd; //˽Կ
+ public NET_DVR_CERT_NAME struCertName; // ֤
+ public NET_DVR_CERT_NAME struIssuerName; // ֤鷢ƣǩ֤ϢȡʱЧ
+ public NET_DVR_TIME_EX struBeginTime; //֤鴴ʱ䣨ǩ֤ϢȡʱЧ
+ public NET_DVR_TIME_EX struEndTime; //ֹ֤ʱ䣨ǩ֤ϢȡʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] serialNumber; //֤ʶ루ǩ֤ϢȡʱЧ
+ public byte byVersion;
+ public byte byKeyAlgorithm; // 0-RSA 1-DSA
+ public byte byKeyLen; //ܳ 0-512 1-1024 2-2048
+ public byte bySignatureAlgorithm; //ǩ㷨ͣǩ֤ϢȡʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //channel record status
+ //***ͨ¼״̬*****//
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHANS_RECORD_STATUS
+ {
+ public byte byValid; //ǷЧ
+ public byte byRecord; /*(ֻ)¼, λʾ:0: ¼1¼ 2-
+ 3- 4-Ƶ 5-δ 6-浵
+ 7-ش 8-û 9-δ֤
+ 10-浵к¼ 11-¼شк¼*/
+ public ushort wChannelNO; //ͨ
+ public uint dwRelatedHD; //
+ public byte byOffLineRecord; //¼ 0-ر 1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 7, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_IP_ALARM_GROUP_NUM
+ {
+ public uint dwSize;
+ public uint dwIPAlarmInGroup; //IPͨ
+ public uint dwIPAlarmInNum; //IPͨ
+ public uint dwIPAlarmOutGroup; //IPͨ
+ public uint dwIPAlarmOutNum; //IPͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //****NVR end***//
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHAN_GROUP_RECORD_STATUS
+ {
+ public uint dwSize; //ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CHANS_RECORD_STATUS[] struChanStatus; //һ64
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECTCFG
+ {
+ public ushort wXCoordinate; /*ϽʼX*/
+ public ushort wYCoordinate; /*ϽY*/
+ public ushort wWidth; /*ο*/
+ public ushort wHeight; /*θ߶*/
+ }
+
+ /*Ϣ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WINCFG
+ {
+ public uint dwSize;
+ public byte byVaild;
+ public byte byInputIdx; /*Դ*/
+ public byte byLayerIdx; /*ͼ㣬0Ϊײ*/
+ public byte byTransparency; //ȣ0100
+ public NET_DVR_RECTCFG struWin;//ĿĴ(ʾǽ)
+ public ushort wScreenHeight;//
+ public ushort wScreenWidth;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALLWINCFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LAYERNUMS, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_WINCFG[] struWinCfg;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREENZOOM
+ {
+ public uint dwSize;
+ public uint dwScreenNum;//
+ public NET_DVR_POINT_FRAME struPointFrame;
+ public byte byLayer;//ͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //2011-04-18
+ /*Ϣ,99991ʼ */
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_CAMERAINFO
+ {
+ public uint dwGlobalCamId; /* camȫֱ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCamName; /*cam*/
+ public uint dwMatrixId; /*camӦı*/
+ public uint dwLocCamId; /*camӦڲ*/
+ public byte byValid; /*ǷЧ0-1-*/
+ public byte byPtzCtrl; /* Ƿɿأ0-1-*/
+ public byte byUseType; //*ʹͣ0-Ϊʹã1-BNC2-SP3,3-V6ˣ4-*/
+ public byte byUsedByTrunk;//ǰʹ״̬0-ûбʹã1-ʹ
+ public byte byTrunkReq; /*ֱ,D1Ϊλ1 - 1D12- 2D1ΪʹʱָǸߵĴ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_TIME struInstallTime;//װʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPurpose;/*;*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*Ϣ2048*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_MONITORINFO
+ {
+ public uint dwGloalMonId; /*mon ͳһ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sMonName;
+ public uint dwMatrixId; /*monھı*/
+ public uint dwLocalMonId; /*monڲ*/
+ public byte byValid; /*ǷЧ0-1-*/
+ public byte byTrunkType; /*ʹͣ0-Ϊʹã1-BNC2-SP3,3-V6ˣ4-*/
+ public byte byUsedByTrunk;//ǰʹ״̬0-ûбʹã1-ʹ
+ public byte byTrunkReq; /*ֱ, D1Ϊλ1- 1D12- 2D1ΪʹʱָǸߵĴ*/
+ public NET_DVR_TIME struInstallTime;//װʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPurpose;/*;*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_DIGITALMATRIX
+ {
+ public NET_DVR_IPADDR struAddress; /*豸Ϊ豸ʱIPϢ*/
+ public ushort wPort;
+ public byte byNicNum; /*0 - eth0, 1 - eth1, ˫ͨż*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 69, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_ANALOGMATRIX
+ {
+ public byte bySerPortNum; /*ӵĴں*/
+ public byte byMatrixSerPortType;/* صĴģļ̿(Э)ӻͨſڣЭ飩 0 --- ЭͨѶ 1 --- ͨѶ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_SINGLE_RS232 struRS232; //232ڲ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 200, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIXLIST
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwMatrixNum;//豸صľ
+ public IntPtr pBuffer;//Ϣ
+ public uint dwBufLen;//ָ볤ȣ
+ }
+
+ /*Ϣ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_UARTPARAM
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPortName;
+ public ushort wUserId; /*ûţ豸ΪʱһûȨ*/
+ public byte byPortType; /*ͣ0-RS232/1-RS485/2-RS422*/
+ public byte byFuncType; /*ӵ豸0-У1-̣2-ͨ(485ڲóͨ),3-ģ*/
+ public byte byProtocolType; /*ֵ֧Э, Ӽ豸ʱҪϢ,ȡ֧Эıż*/
+ public byte byBaudRate;
+ public byte byDataBits;
+ public byte byStopBits; /*ֹͣλ*/
+ public byte byParity; /*У*/
+ public byte byFlowCtrl; /*أأ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 22, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /*Ԥ*/
+ }
+
+ //256û1256
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_USERPARAM
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword;
+ public byte byRole;/*ûɫ:0-Ա,1-ԱֻһϵͳԱ255Ա*/
+ public byte byLevel; /*ͳһڲ,1- 255*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 18, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //255Դ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_RESOURSEGROUPPARAM
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byGroupName;
+ public byte byGroupType;/*0-CAM飬1-MON*/
+ public byte byRes1;
+ public ushort wMemNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 512, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwGlobalId;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //255û
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_USERGROUPPARAM
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sGroupName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 255, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wUserMember; /*ûԱ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 255, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wResorceGroupMember; /*ԴԱ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPermission;//Ȩޣ0-ptzȨޡлȨޡѯȨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_MATRIX_TRUNKPARAM
+ {
+ public uint dwSize;
+ public uint dwTrunkId;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sTrunkName;
+ public uint dwSrcMonId;
+ public uint dwDstCamId;
+ public byte byTrunkType; /*ʹ 1-BNC2-SP3˸壬3-SP3D1 4-V6ˣ5-*/
+ public byte byAbility; /*ʾ˵ĴԴ伸·*/
+ public byte bySubChan; /*Թ˸߶ԣʾͨ*/
+ public byte byLevel; /* 1-255*/
+ public ushort wReserveUserID; //ԤûID 1~256 0ʾͷԤ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 18, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_TRUNKLIST
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwTrunkNum;//豸صĸ
+ public IntPtr pBuffer;//Ϣ
+ public uint dwBufLen;//ָ볤ȣ
+ }
+
+ public const int MATRIX_PROTOCOL_NUM = 20; //ֵ֧Э
+ public const int KEYBOARD_PROTOCOL_NUM = 20; //ֵ֧Э
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PROTO_TYPE_EX
+ {
+ public ushort wType; /*ipcЭֵ*/
+ public ushort wCommunitionType; /*0ģ 1 2ģ⡢*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DESC_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDescribe; /*Эֶ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIXMANAGE_ABIILITY
+ {
+ public uint dwSize;
+ public uint dwMaxCameraNum;//Camera
+ public uint dwMaxMonitorNum;//
+ public ushort wMaxMatrixNum;//
+ public ushort wMaxSerialNum;//
+ public ushort wMaxUser;//û
+ public ushort wMaxResourceArrayNum;//Դ
+ public ushort wMaxUserArrayNum;//û
+ public ushort wMaxTrunkNum;//
+ public byte nStartUserNum;//ʼû
+ public byte nStartUserGroupNum;//ʼû
+ public byte nStartResourceGroupNum;//ʼԴ
+ public byte nStartSerialNum;//ʼں
+ public uint dwMatrixProtoNum; /*ЧľЭĿ0ʼ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MATRIX_PROTOCOL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PROTO_TYPE_EX[] struMatrixProto;/*Эб*/
+ public uint dwKeyBoardProtoNum; /*ЧļЭĿ0ʼ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MATRIX_PROTOCOL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PROTO_TYPE_EX[] struKeyBoardProto;/*Эб*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ץĹ()
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_SINGLE_FACESNAPCFG
+ {
+ public byte byActive; //Ƿ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public NET_VCA_SIZE_FILTER struSizeFilter; //ߴ
+ public NET_VCA_POLYGON struVcaPolygon; //ʶ
+ }
+
+ //ץĹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACESNAPCFG
+ {
+ public uint dwSize;
+ public byte bySnapTime; //ĿץĴ0-10
+ public byte bySnapInterval; //ץļλ֡
+ public byte bySnapThreshold; //ץֵ0-100
+ public byte byGenerateRate; //Ŀٶ,Χ[1, 5]
+ public byte bySensitive; //ĿȣΧ[1, 5]
+ public byte byReferenceBright; //2012-3-27ο[0,100]
+ public byte byMatchType; //2012-5-3ȶԱģʽ0-Ŀʧ1-ʵʱ
+ public byte byMatchThreshold; //2012-5-3ʵʱȶֵ0~100
+ public NET_DVR_JPEGPARA struPictureParam; //ͼƬṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_RULE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_SINGLE_FACESNAPCFG[] struRule; //ץĹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 100, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ʶṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_HUMAN_FEATURE
+ {
+ public byte byAgeGroup; //,μ HUMAN_AGE_GROUP_ENUM
+ public byte bySex; //Ա, 0-ʾδ֪㷨֧֣,1 C , 2 C Ů, 0xff-㷨֧֣ûʶ
+ public byte byEyeGlass; //Ƿ۾ 0-ʾδ֪㷨֧֣,1 C , 2 C ,0xff-㷨֧֣ûʶ
+ //ץͼƬʹ÷ʽbyAgeΪ15,byAgeDeviationΪ1,ʾʵͼƬΪ14-16֮
+ public byte byAge;// 0-ʾδ֪㷨֧֣,0xff-㷨֧֣ûʶ
+ public byte byAgeDeviation;//ֵ
+ public byte byEthnic; //ֶԤ,ݲ
+ public byte byMask; //Ƿ 0-ʾδ֪㷨֧֣,1 C , 2 Cͨ۾, 3 Cī,0xff-㷨֧֣ûʶ
+ public byte bySmile; //ǷЦ 0-ʾδ֪㷨֧֣,1 C Ц, 2 C Ц, 0xff-㷨֧֣ûʶ
+ public byte byFaceExpression; /*,μFACE_EXPRESSION_GROUP_ENUM*/
+ public byte byBeard; //, 0-֧֣1-ûкӣ2-кӣ0xff-unknowʾδ֪,㷨֧δ
+ public byte byRace; //, 0-֧֣1-ˣ2-ˣ3-,0xff-unknowʾδ֪,㷨֧δ
+ public byte byHat; //ñ, 0-֧,1-ñ,2-ñ,0xff-unknowʾδ֪,㷨֧δ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ץĸϢṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACESNAP_ADDINFO
+ {
+ //ο,ΪСͼ(ͷ)
+ public NET_VCA_RECT struFacePicRect;
+ public int iSwingAngle;//ת, -90~90
+ public int iTiltAngle;//, -90~90
+ public uint dwPupilDistance;//ͫ,ΧΪСֵΪ10,ֵΪǰֱʿ/1.6
+ public byte byBlockingState;//Ŀڵ״̬ 0-ʾδ֪㷨֧֣,1~ڵ,2~˲ʱڵ3~ڵ4~ڵ
+ public byte byFaceSnapThermometryEnabled;//ץIJʹ 1- 0-ر
+ public byte byIsAbnomalTemperature;//ץIJǷ¶쳣 1- 0-
+ public byte byThermometryUnit;//µλ: 0-϶ȣ棩1-϶ȣH2-(K)
+ public NET_DVR_TIME_EX struEnterTime; // ץ½ʱ
+ public NET_DVR_TIME_EX struExitTime; // ץ뿪ʱ
+ public float fFaceTemperature; // ¶ȣ - 20.0~150.0棬ȷС1λ
+ public float fAlarmTemperature;// ±ֵȷС1λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 472, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;// ֽ
+ }
+
+ //ץĽϴ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACESNAP_RESULT
+ {
+ public uint dwSize;
+ public uint dwRelativeTime;
+ public uint dwAbsTime;
+ public uint dwFacePicID;
+ public uint dwFaceScore;
+ public NET_VCA_TARGET_INFO struTargetInfo;
+ public NET_VCA_RECT struRect;
+ public NET_VCA_DEV_INFO struDevInfo;
+ public uint dwFacePicLen;
+ public uint dwBackgroundPicLen;
+ public byte bySmart; //IDS豸0(Ĭֵ)Smart Functiom Return 1
+ public byte byAlarmEndMark;//0-1-ǣֶνIDֶʹãʾIDӦ±ҪṩNVRʹãжϱȡʶͼƬУߵͼƬ
+ public byte byRepeatTimes; //ظ0-
+ public byte byUploadEventDataType;//ͼƬݳʽ0-ݣ1-URL
+ public NET_VCA_HUMAN_FEATURE struFeature; //
+ public float fStayDuration; //ͣʱ(λ: )
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sStorageIP; //洢IPַ
+ public ushort wStoragePort; //洢˿ں
+ public ushort wDevInfoIvmsChannelEx; //NET_VCA_DEV_INFObyIvmsChannelܱͬʾֵϿͻbyIvmsChannelܼݣ255¿ͻ˰汾ʹwDevInfoIvmsChannelEx
+ public byte byFacePicQuality;
+ public byte byUIDLen; // ϴıʶ
+ public byte byLivenessDetectionStatus;// ״̬0-1-δ֪(ʧ)2-3-4-δ
+ /*ϢʶλǷNET_VCA_FACESNAP_ADDINFOṹ壩,0-Ϣ, 1-иϢ*/
+ public byte byAddInfo;
+ public IntPtr pUIDBuffer; //ʶָ
+ public IntPtr pAddInfoBuffer;
+ public byte byTimeDiffFlag; /*ʱֶǷЧ 0-ʱЧ 1-ʱЧ */
+ public byte cTimeDifferenceH; /*UTCʱСʱ-12 ... +14 +ʾ,byTimeDiffFlagΪ1ʱЧ*/
+ public byte cTimeDifferenceM; /*UTCʱӣ-30, 30, 45 +ʾbyTimeDiffFlagΪ1ʱЧ*/
+ public byte byBrokenNetHttp; //־λ0-شݣ1-ش
+ public IntPtr pBuffer1;//ָͼͼƬ
+ public IntPtr pBuffer2;//ͼͼƬݣͨұͼӿڿԻȡͼ
+ }
+
+ //ⱨϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FACE_DETECTION
+ {
+ public uint dwSize;
+ public uint dwRelativeTime;
+ public uint dwAbsTime;
+ public uint dwBackgroundPicLen;
+ public NET_VCA_DEV_INFO struDevInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 30, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_RECT[] struFacePic; //ͼһֵڴͼͼ)ķֱ
+ public byte byFacePicNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 255, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ public IntPtr pBackgroundPicpBuffer;//ͼͼƬ
+ }
+
+ //齹
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEFOCUS_ALARM
+ {
+ public uint dwSize; /*ṹ*/
+ public NET_VCA_DEV_INFO struDevInfo;/*豸Ϣ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AUDIOEXCEPTION_ALARM
+ {
+ public uint dwSize; /*ṹ*/
+ public byte byAlarmType;//ͣ1-Ƶ쳣2-Ƶͻ
+ public byte byRes1;
+ public ushort wAudioDecibel;//ǿȣƵͻʱõ
+ public NET_VCA_DEV_INFO struDevInfo;/*豸Ϣ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_BUTTON_DOWN_EXCEPTION_ALARM
+ {
+ public uint dwSize; /*ṹ*/
+ public NET_VCA_DEV_INFO struDevInfo;/*豸Ϣ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FD_IMAGE_CFG
+ {
+ public uint dwWidth; //Ҷͼݿ
+ public uint dwHeight; //Ҷͼ߶
+ public uint dwImageLen; //Ҷͼݳ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public IntPtr pImage; //Ҷͼ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FD_PROCIMG_CFG
+ {
+ public uint dwSize; //ṹС
+ public byte byEnable; //Ƿ;
+ public byte bySensitivity; //ȣ[0,5]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 22, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //ֽ
+ public NET_VCA_SIZE_FILTER struSizeFilter; //ߴ
+ public NET_VCA_POLYGON struPolygon; //
+ public NET_VCA_FD_IMAGE_CFG struFDImage; //ͼƬϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_SUB_PROCIMG
+ {
+ public uint dwImageLen; //ͼƬݳ
+ public uint dwFaceScore; //,0-100
+ public NET_VCA_RECT struVcaRect; //ͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public IntPtr pImage; //ͼƬ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FD_PROCIMG_RESULT
+ {
+ public uint dwSize; //ṹС
+ public uint dwImageId; //ͼID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public uint dwSubImageNum; //ͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_TARGET_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_SUB_PROCIMG[] struProcImg; //ͼϢ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_PICMODEL_RESULT
+ {
+ public uint dwImageLen; //ͼƬݳ
+ public uint dwModelLen; //ģݳ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public IntPtr pImage; //ͼƬָ
+ public IntPtr pModel; //ģָ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_REGISTER_PIC
+ {
+ public uint dwImageID; //ͼID
+ public uint dwFaceScore; //,0-100
+ public NET_VCA_RECT struVcaRect; //ͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AREAINFOCFG
+ {
+ public ushort wNationalityID;//
+ public ushort wProvinceID;//ʡ
+ public ushort wCityID;//
+ public ushort wCountyID;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ //ԱϢṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_HUMAN_ATTRIBUTE
+ {
+ public byte bySex;//Ա0-У1-Ů
+ public byte byCertificateType;//֤ͣ0-֤1-֤
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HUMAN_BIRTHDATE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byBirthDate;//£磺201106
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byName; //
+ public NET_DVR_AREAINFOCFG struNativePlace;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCertificateNumber; //֤
+ public uint dwPersonInfoExtendLen;// ԱǩϢչ
+ public IntPtr pPersonInfoExtend; //ԱǩϢչϢ
+ public byte byAgeGroup;//ΣHUMAN_AGE_GROUP_ENUM紫0xffʾδ֪
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 11, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;//
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_HUMANATTRIBUTE_COND
+ {
+ public byte bySex; //Ա0-ã1-У2-Ů
+ public byte byCertificateType; //֤ͣ0-ã1-֤2-֤
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HUMAN_BIRTHDATE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byStartBirthDate; //ʼ£磺201106
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HUMAN_BIRTHDATE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEndBirthDate; //ֹ£201106
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byName; //
+ public NET_DVR_AREAINFOCFG struNativePlace; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCertificateNumber; //֤
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BLACKLIST_INFO
+ {
+ public uint dwSize;//ṹС
+ public uint dwRegisterID;//עIDţֻ
+ public uint dwGroupNo;//
+ public byte byType;//ڰ־0-ȫ1-2-
+ public byte byLevel;//ȼ0-ȫ1-ͣ2-У3-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+ public NET_VCA_HUMAN_ATTRIBUTE struAttribute;//ԱϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRemark;//עϢ
+ public uint dwFDDescriptionLen;//ݳ
+ public IntPtr pFDDescriptionBuffer;//ָ
+ public uint dwFCAdditionInfoLen;//ץĿ⸽Ϣ
+ public IntPtr pFCAdditionInfoBuffer;//ץĿ⸽Ϣָ루FCAdditionInfoаPTZ꣩
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;//
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BLACKLIST_PARA
+ {
+ public uint dwSize; //ṹС
+ public NET_VCA_BLACKLIST_INFO struBlackListInfo; //
+ public uint dwRegisterPicNum; //ͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HUMAN_PICTURE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_PICMODEL_RESULT[] struRegisterPic; //ͼƬϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BLACKLIST_COND
+ {
+ public Int32 lChannel; //ͨ
+ public uint dwGroupNo; //
+ public byte byType; //ڰ־0-ȫ1-2-
+ public byte byLevel; //ȼ0-ȫ1-ͣ2-У3-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public NET_VCA_HUMAN_ATTRIBUTE struAttribute; //ԱϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BLACKLIST_PIC
+ {
+ public uint dwSize; //ṹС
+ public uint dwFacePicNum; //ͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_HUMAN_PICTURE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_PICMODEL_RESULT[] struBlackListPic; //ƬϢ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FIND_PICTURECOND
+ {
+ public Int32 lChannel;//ͨ
+ public NET_DVR_TIME struStartTime;//ʼʱ
+ public NET_DVR_TIME struStopTime;//ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ public const int MAX_FACE_PIC_LEN = 6144; //ͼƬݳ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_SUB_SNAPPIC_DATA
+ {
+ public uint dwFacePicID; //ͼID
+ public uint dwFacePicLen; //ͼݳ
+ public NET_DVR_TIME struSnapTime; //ץʱ
+ public uint dwSimilarity; //ƶ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_FACE_PIC_LEN)]
+ public string sPicBuf; //ͼƬ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_ADVANCE_FIND
+ {
+ public uint dwFacePicID; //ͼƬID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 36, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_NORMAL_FIND
+ {
+ public uint dwImageID; //ͼID
+ public uint dwFaceScore; //
+ public NET_VCA_RECT struVcaRect; //ͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_VCA_FIND_SNAPPIC_UNION
+ {
+ //СΪ44ֽ
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 44, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ /*[FieldOffsetAttribute(0)]
+ public NET_VCA_NORMAL_FIND struNormalFind; //ͨ
+ [FieldOffsetAttribute(0)]
+ public NET_VCA_ADVANCE_FIND struAdvanceFind; //
+ * */
+ }
+
+ public enum VCA_FIND_SNAPPIC_TYPE
+ {
+ VCA_NORMAL_FIND = 0x00000000, //ͨ
+ VCA_ADVANCE_FIND = 0x00000001 //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FIND_PICTURECOND_ADVANCE
+ {
+ public Int32 lChannel;//ͨ
+ public NET_DVR_TIME struStartTime;//ʼʱ
+ public NET_DVR_TIME struStopTime;//ʱ
+ public byte byThreshold; //ֵ0-100
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 23, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public VCA_FIND_SNAPPIC_TYPE dwFindType;//ͣVCA_FIND_SNAPPIC_TYPE
+ public NET_VCA_FIND_SNAPPIC_UNION uFindParam; //
+ }
+
+ //ץϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACESNAP_INFO_ALARM
+ {
+ public uint dwRelativeTime; // ʱ
+ public uint dwAbsTime; // ʱ
+ public uint dwSnapFacePicID; //ץͼID
+ public uint dwSnapFacePicLen; //ץͼijȣΪ0ʾûͼƬ0ʾͼƬ
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public byte byFaceScore; //ָ֣ͼ,0-100
+ public byte bySex;//Ա0-δ֪1-У2-Ů
+ public byte byGlasses;//Ƿ۾0-δ֪1-ǣ2-
+ /*
+ * ʶηΧ[byAge-byAgeDeviation,byAge+byAgeDeviation]
+ */
+ public byte byAge;//
+ public byte byAgeDeviation;//ֵ
+ public byte byAgeGroup;//ΣHUMAN_AGE_GROUP_ENUM0xffʾδ֪
+ /*ͼͼƬȼ0-͵,1-е,2-ߵ,
+ 㷨ͼͼƬ,̬ͨȡڵȿӰʶܵۺĽ*/
+ public byte byFacePicQuality;
+ public byte byEthnic; //ֶԤ,ݲ
+ public uint dwUIDLen; // ϴıʶ
+ public IntPtr pUIDBuffer; //ʶָ
+ public float fStayDuration; //ͣʱ(λ: )
+ public IntPtr pBuffer1; //ץͼͼƬ
+ }
+
+
+ //Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BLACKLIST_INFO_ALARM
+ {
+ public NET_VCA_BLACKLIST_INFO struBlackListInfo;
+ public uint dwBlackListPicLen; //ͼijȣΪ0ʾûͼƬ0ʾͼƬ
+ public uint dwFDIDLen;// ID
+ public IntPtr pFDID; //Idָ
+ public uint dwPIDLen;// ͼƬID
+ public IntPtr pPID; //ͼƬIDָ
+ public ushort wThresholdValue; //ֵ[0,100]
+ public byte byIsNoSaveFDPicture;//0-ͼƬ,1-ͼƬ, ˵ͼƬ߽ģʱԭͼʱ,ֶη1,ʱͼƬٷ
+ public byte byRealTimeContrast;//Ƿʵʱ 0-ʵʱ 1-ʵʱ
+ public IntPtr pBuffer1;//ָͼƬָ
+ }
+
+ //ȶԽϴ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACESNAP_MATCH_ALARM
+ {
+ public uint dwSize; // ṹС
+ public float fSimilarity; //ƶȣ[0.001,1]
+ public NET_VCA_FACESNAP_INFO_ALARM struSnapInfo; //ץϢ
+ public NET_VCA_BLACKLIST_INFO_ALARM struBlackListInfo; //Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sStorageIP; //洢IPַ
+ public ushort wStoragePort; //洢˿ں
+ public byte byMatchPicNum; //ƥͼƬ0-豸ֵĬ0豸ֵΪ0ʱʾûƥͼƬϢ
+ public byte byPicTransType;//ͼƬݴ䷽ʽ: 0-ƣ1-url
+ public uint dwSnapPicLen;//豸ʶץͼƬ
+ public IntPtr pSnapPicBuffer;//豸ʶץͼƬָ
+ public NET_VCA_RECT struRegion;//Ŀ߽豸ʶץͼƬУͼ
+ public uint dwModelDataLen;//ģݳ
+ public IntPtr pModelDataBuffer;// ģָ
+ public byte byModelingStatus;// ģ״̬
+ public byte byLivenessDetectionStatus;//״̬0-1-δ֪ʧܣ2-3-4-δ
+ public byte cTimeDifferenceH; /*UTCʱСʱ-12 ... +14 +ʾ,0xffЧ*/
+ public byte cTimeDifferenceM; /*UTCʱӣ-30, 30, 45 +ʾ0xffЧ*/
+ public byte byMask; //ץͼǷ֣0-1-δ֪2-֣3-
+ public byte bySmile; //ץͼǷЦ0-1-δ֪2-Ц3-Ц
+ public byte byContrastStatus; //ȶԽ0-1-ȶԳɹ2-ȶʧ
+ public byte byBrokenNetHttp; //־λ0-شݣ1-ش
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BLACKLIST_INFO_ALARM_LOG
+ {
+ public NET_VCA_BLACKLIST_INFO struBlackListInfo; //Ϣ
+ public uint dwBlackListPicID; //ͼIDڲͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACESNAP_INFO_ALARM_LOG
+ {
+ public uint dwRelativeTime; // ʱ
+ public uint dwAbsTime; // ʱ
+ public uint dwSnapFacePicID; //ץͼID
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACESNAP_MATCH_ALARM_LOG
+ {
+ public uint dwSize; // ṹС
+ public float fSimilarity; //ƶȣ[0.001,1]
+ public NET_VCA_FACESNAP_INFO_ALARM_LOG struSnapInfoLog; //ץϢ
+ public NET_VCA_BLACKLIST_INFO_ALARM_LOG struBlackListInfoLog; //Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACEMATCH_PICCOND
+ {
+ public uint dwSize; // ṹС
+ public uint dwSnapFaceID; //ץͼID
+ public uint dwBlackListID; //ƥĺID
+ public uint dwBlackListFaceID; //ȶԵĺͼID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; // ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_FACEMATCH_PICTURE
+ {
+ public uint dwSize; // ṹС
+ public uint dwSnapFaceLen; //ץͼ
+ public uint dwBlackListFaceLen; //ȶԵĺͼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ public IntPtr pSnapFace; //ץͼͼƬ
+ public IntPtr pBlackListFace; //ȶԵĺͼ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_BLACKLIST_FASTREGISTER_PARA
+ {
+ public uint dwSize; //ṹС
+ public NET_VCA_BLACKLIST_INFO struBlackListInfo; //
+ public uint dwImageLen; //ͼݳ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 124, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public IntPtr pImage; //ͼ
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_SINGLE_PATH
+ {
+ public byte byActive; // Ƿ,0-,1-
+ public byte byType; //0-洢ץģ1-洢ȶԱ2-洢ץĺͺȶԱ0xff-Ч
+ public byte bySaveAlarmPic; //ǷڱıͼƬ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //
+ public uint dwDiskDriver; //̷ţ0ʼ
+ public uint dwLeftSpace; //ԤλΪG
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //洢·
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_SAVE_PATH_CFG
+ {
+ public uint dwSize; //ṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM_V30, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_SINGLE_PATH[] struPathInfo; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEV_ACCESS_CFG
+ {
+ public uint dwSize;
+ public NET_DVR_IPADDR struIP; //豸IPַ
+ public ushort wDevicePort; //˿ں
+ public byte byEnable; //Ƿã0-1-
+ public byte byRes1; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; //豸ĵ¼ʺ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; //豸ĵ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 60, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+ /********************************ʶ end****************************/
+ //ֱ
+ public const int NOT_AVALIABLE = 0;
+ public const int SVGA_60HZ = 52505660;
+ public const int SVGA_75HZ = 52505675;
+ public const int XGA_60HZ = 67207228;
+ public const int XGA_75HZ = 67207243;
+ public const int SXGA_60HZ = 84017212;
+ public const int SXGA2_60HZ = 84009020;
+ public const int _720P_60HZ = 83978300;
+ public const int _720P_50HZ = 83978290;
+ public const int _1080I_60HZ = 394402876;
+ public const int _1080I_50HZ = 394402866;
+ public const int _1080P_60HZ = 125967420;
+ public const int _1080P_50HZ = 125967410;
+ public const int _1080P_30HZ = 125967390;
+ public const int _1080P_25HZ = 125967385;
+ public const int _1080P_24HZ = 125967384;
+ public const int UXGA_60HZ = 105011260;
+ public const int UXGA_30HZ = 105011230;
+ public const int WSXGA_60HZ = 110234940;
+ public const int WUXGA_60HZ = 125982780;
+ public const int WUXGA_30HZ = 125982750;
+ public const int WXGA_60HZ = 89227324;
+ public const int SXGA_PLUS_60HZ = 91884860;
+
+ //ʾָͨģʽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISPWINDOWMODE
+ {
+ public byte byDispChanType;//ʾͨͣ0-VGA, 1-BNC, 2-HDMI, 3-DVI
+ public byte byDispChanSeq;//ʾͨ,1ʼVGAʾڼVGA
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_NUM, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDispMode;
+ }
+
+ //ʾͨϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISPINFO
+ {
+ public byte byChanNums;//ͨ
+ public byte byStartChan;//ʼͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SUPPORT_RES, ArraySubType = UnmanagedType.U1)]
+ public uint[] dwSupportResolution;//ֵ֧ķֱ
+ }
+
+ //ƴϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREENINFO
+ {
+ public byte bySupportBigScreenNums;//ƴ
+ public byte byStartBigScreenNum;//ƴʼ
+ public byte byMaxScreenX;//ƴģʽ
+ public byte byMaxScreenY;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_ABILITY_V41
+ {
+ public uint dwSize;
+ public byte byDspNums;//DSP
+ public byte byDecChanNums;//ͨ
+ public byte byStartChan;//ʼͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+
+ public NET_DVR_DISPINFO struVgaInfo;//VGAʾͨϢ
+ public NET_DVR_DISPINFO struBncInfo;//BNCʾͨϢ
+ public NET_DVR_DISPINFO struHdmiInfo;//HDMIʾͨϢ
+ public NET_DVR_DISPINFO struDviInfo;//DVIʾͨϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISPNUM_V41, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DISPWINDOWMODE[] struDispMode;
+ public NET_DVR_SCREENINFO struBigScreenInfo;
+ public byte bySupportAutoReboot; //Ƿ֧Զ0-֧֣1-֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 119, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ public const int MAX_WINDOWS = 16;//
+ public const int MAX_WINDOWS_V41 = 36;
+
+ public const int STARTDISPCHAN_VGA = 1;
+ public const int STARTDISPCHAN_BNC = 9;
+ public const int STARTDISPCHAN_HDMI = 25;
+ public const int STARTDISPCHAN_DVI = 29;
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_VIDEO_PLATFORM
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 160, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ /*[FieldOffsetAttribute(0)]
+ public VideoPlatform struVideoPlatform;
+ [FieldOffsetAttribute(0)]
+ public NotVideoPlatform struNotVideoPlatform;
+ * */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct VideoPlatform
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecoderId;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDecResolution;
+ public NET_DVR_RECTCFG struPosition; //ʾͨڵǽλ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 80, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NotVideoPlatform
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 160, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /*ʾͨýṹ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_VOUTCFG
+ {
+ public uint dwSize;
+ public byte byAudio; /*ƵǷ*/
+ public byte byAudioWindowIdx; /*ƵӴ*/
+ public byte byDispChanType; /*ʾͨͣ0-BNC1-VGA2-HDMI3-DVI4-YPbPr(뿨DECODER_SERVERר)*/
+ public byte byVedioFormat; /*1:NTSC,2:PAL0-NULL*/
+ public uint dwResolution;//ֱ
+ public uint dwWindowMode; /*ģʽȡ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecChan;/*ӴڹĽͨ,豸ֽ֧ԴԶʱ˲*/
+ public byte byEnlargeStatus; /*ǷڷŴ״̬0Ŵ1Ŵ*/
+ public byte byEnlargeSubWindowIndex;//ŴӴں
+ public byte byScale; /*ʾģʽ0---ʵʾ1---ʾ( BNC )*/
+ public byte byUnionType;/*ֹ,0-Ƶۺƽ̨ڲʾͨã1-ʾͨ*/
+ public NET_DVR_VIDEO_PLATFORM struDiff;
+ public uint dwDispChanNum; //ʾţ˲ȫȡʱЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 76, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*豸״̬*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISP_CHAN_STATUS_V41
+ {
+ public byte byDispStatus; /*ʾ״̬0δʾ1ʾ*/
+ public byte byBVGA; /*0-BNC1-VGA 2-HDMI3-DVI0xff-Ч*/
+ public byte byVideoFormat; /*Ƶʽ1:NTSC,2:PAL,0-NON*/
+ public byte byWindowMode; /*ģʽ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecChan; /*ӻĽͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFpsDisp; /*ÿӻʾ֡*/
+ public byte byScreenMode; /*Ļģʽ0-ͨ 1-*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwDispChan; /*ȡȫʾͨ״̬ʱЧʱ0*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*豸״̬*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DECODER_WORK_STATUS_V41
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_MATRIX_CHAN_STATUS[] struDecChanStatus; /*ͨ״̬*/
+ /*ʾͨ״̬*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISPNUM_V41, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_DISP_CHAN_STATUS_V41[] struDispChanStatus;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmInStatus; /*״̬*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAlarmOutStatus; /*״̬*/
+ public byte byAudioInChanStatus; /*Խ״̬*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 127, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /*******************************ļط-Զ̻ط*******************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_DEC_REMOTE_PLAY_V41
+ {
+ public uint dwSize;
+ public NET_DVR_IPADDR struIP; /* DVR IPַ */
+ public ushort wDVRPort; /* ˿ں */
+ public byte byChannel; /* ͨ */
+ public byte byReserve;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; /* û */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; /* */
+ public uint dwPlayMode; /* 0ļ 1ʱ*/
+ public NET_DVR_TIME StartTime;
+ public NET_DVR_TIME StopTime;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string sFileName;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /**/
+ }
+
+ public const int MAX_BIGSCREENNUM_SCENE = 100;
+
+ //ʾͨýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECTCFG_SCENE
+ {
+ public ushort wXCoordinate; /*ϽʼX*/
+ public ushort wYCoordinate; /*ϽY*/
+ public ushort wWidth; /*ο*/
+ public ushort wHeight; /*θ߶*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCENEDISPCFG
+ {
+ public byte byEnable;//Ƿã0-ã1-
+ public byte bySoltNum;//λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byDispChanNum;
+ public byte byAudio; /*ƵǷ,0-1-*/
+ public byte byAudioWindowIdx; /*ƵӴ*/
+ public byte byVedioFormat; /*1:NTSC,2:PAL0-NULL*/
+ public byte byWindowMode; /*ģʽȡ*/
+ public byte byEnlargeStatus; /*ǷڷŴ״̬0Ŵ1Ŵ*/
+ public byte byEnlargeSubWindowIndex;//ŴӴں
+ public byte byScale; /*ʾģʽ0-ʵʾ1-ʾ( BNC )*/
+ public uint dwResolution;//ֱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecChan;/*ӴڹĽͨ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byJoinDecoderId;/*λ*/
+ //ʾƵֱʣ1-D1,2-720P,3-1080P豸Ҫݴ//ֱʽнͨķ䣬1ó1080P豸4ͨ˽ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WINDOWS_V41, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDecResolution;
+ public byte byRow;//ڵе
+ public byte byColumn;//ڵе
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public NET_DVR_RECTCFG struDisp; //ǽʾλ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEV_CHAN_INFO_SCENE
+ {
+ public NET_DVR_IPADDR struIP; /* DVR IPַ */
+ public ushort wDVRPort; /* ˿ں */
+ public byte byChannel; /* ͨţ9000豸IPC룬ͨŴ33ʼ */
+ public byte byTransProtocol; /* Э0-TCP1-UDP 2-MCAST3-RTP*/
+ public byte byTransMode; /* ģʽ 0 1*/
+ public byte byFactoryType; /*ǰ豸*/
+ public byte byDeviceType; //豸ͣ1-IPC2- ENCODER
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; /* ½ʺ */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; /* */
+ }
+
+ /*ý*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_STREAM_MEDIA_SERVER_CFG_SCENE
+ {
+ public byte byValid; /*Ƿýȡ,0ʾЧ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_IPADDR struDevIP; /*ýַ*/
+ public ushort wDevPort; /*ý˿*/
+ public byte byTransmitType; /*Э0-TCP1-UDP */
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PU_STREAM_CFG_SCENE
+ {
+ public NET_DVR_STREAM_MEDIA_SERVER_CFG_SCENE streamMediaServerCfg;
+ public NET_DVR_DEV_CHAN_INFO_SCENE struDevChanInfo;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CYC_SUR_CHAN_ELE_SCENE
+ {
+ public byte byEnable; /* Ƿ 0 1*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_STREAM_MEDIA_SERVER_CFG_SCENE struStreamMediaSvrCfg;
+ public NET_DVR_DEV_CHAN_INFO_SCENE struDecChanInfo; /*ѲͨϢ*/
+ }
+
+ //Ѳṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_LOOP_DECINFO_SCENE
+ {
+ public ushort wPoolTime; /*ѯ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CYCLE_CHAN, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CYC_SUR_CHAN_ELE_SCENE[] struChanArray;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BIGSCREENCFG_SCENE
+ {
+ public byte byAllValid; /*ʹܱ־ */
+ public byte byAssociateBaseMap;//ĵͼţ0
+ public byte byEnableSpartan;//ʹܣ1-0-
+ public byte byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LAYERNUMS, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_WINCFG[] struWinCfg;
+ public NET_DVR_BIGSCREENCFG struBigScreen;
+
+ public void Init()
+ {
+ struBigScreen = new NET_DVR_BIGSCREENCFG();
+ struWinCfg = new NET_DVR_WINCFG[MAX_LAYERNUMS];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_SCENECFG
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSceneName;
+ public byte byBigScreenNums;//ĸֵͨȡ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public ushort wDecChanNums;//нͨĸ
+ public ushort wDispChanNums;//ʾͨĸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public IntPtr pBigScreenBuffer;//û, byBigScreenNumssizeof(NET_DVR_BIGSCREENCFG_SCENE)
+ public IntPtr pDecChanBuffer;//ͨû, wDecChanNumssizeof(NET_DVR_DECODECHANCFG_SCENE)
+ public IntPtr pDispChanBuffer;//ʾͨû, wDispChanNumssizeof(NET_DVR_SCENEDISPCFG)
+ public void Init()
+ {
+ sSceneName = new byte[NAME_LEN];
+ byRes1 = new byte[3];
+ byRes1 = new byte[12];
+ }
+ }
+ public const int NET_DVR_GET_ALLWINCFG = 1503; //ڲȡ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BIGSCREENASSOCIATECFG
+ {
+ public uint dwSize;
+ public byte byEnableBaseMap;//ʹܵͼʾ
+ public byte byAssociateBaseMap;//ĵͼţ0
+ public byte byEnableSpartan;//ʹܣ1-0-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 21, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /**************************************************************/
+ public const int MAX_WIN_COUNT = 224; //ֵ֧
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREEN_WINCFG{
+ public uint dwSize;
+ public byte byVaild;
+ public byte byInputType; //CAM_MDOE
+ public ushort wInputIdx; /*Դ*/
+ public uint dwLayerIdx; /*ͼ㣬0Ϊײ*/
+ public NET_DVR_RECTCFG struWin; //ĿĴ(ʾǽ)
+ public byte byWndIndex; //ں
+ public byte byCBD; //0-ޣ1-2-
+ public byte bySubWnd; //0ǣ1
+ public byte byRes1;
+ public uint dwDeviceIndex;//豸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_WINLIST
+ {
+ public uint dwSize;
+ public ushort wScreenSeq; //豸
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwWinNum; //豸صĴ
+ public IntPtr pBuffer; //ϢΪ224*sizeof(NET_DVR_WINCFG)
+ public uint dwBufLen; //ָ볤
+ }
+
+ public const int MAX_LAYOUT_COUNT = 16; //
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LAYOUTCFG
+ {
+ public uint dwSize;
+ public byte byValid; //ǷЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLayoutName; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_WIN_COUNT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCREEN_WINCFG[] struWinCfg; //ڴڲ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LAYOUT_LIST
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LAYOUT_COUNT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_LAYOUTCFG[] struLayoutInfo; //в
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int MAX_CAM_COUNT = 224;
+
+ public enum NET_DVR_CAM_MODE
+ {
+ NET_DVR_UNKNOW = 0,//Ч
+ NET_DVR_CAM_BNC,
+ NET_DVR_CAM_VGA,
+ NET_DVR_CAM_DVI,
+ NET_DVR_CAM_HDMI,
+ NET_DVR_CAM_IP,
+ NET_DVR_CAM_RGB,
+ NET_DVR_CAM_DECODER,
+ NET_DVR_CAM_MATRIX,
+ NET_DVR_CAM_YPBPR,
+ NET_DVR_CAM_USB,
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INPUTSTREAMCFG
+ {
+ public uint dwSize ;
+ public byte byValid ;
+ public byte byCamMode; //źԴͣNET_DVR_CAM_MODE
+ public ushort wInputNo; //źԴ0-224
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCamName; //źԴ
+ public NET_DVR_VIDEOEFFECT struVideoEffect; //Ƶ
+ public NET_DVR_PU_STREAM_CFG struPuStream; //ipʱʹ
+ public ushort wBoardNum ; //źԴڵİ忨
+ public ushort wInputIdxOnBoard; //źԴڰ忨ϵλ
+ public ushort wResolutionX; //ֱ
+ public ushort wResolutionY;
+ public byte byVideoFormat; //Ƶʽ0-ޣ1-NTSC2-PAL
+ public byte byNetSignalResolution; //; 1-CIF 2-4CIF 3-720P 4-1080P 5-500wp źԴķֱʣźԴʱ豸豸ֱԴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sGroupName; //źԴ
+ public byte byJointMatrix; // 0- 1-
+ public byte byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INPUTSTREAM_LIST
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CAM_COUNT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_INPUTSTREAMCFG[] struInputStreamInfo; //źԴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /**************************************************************/
+ /*ͨ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OUTPUTPARAM
+ {
+ public uint dwSize;
+ public byte byMonMode; /*ģʽ,1-BNC,2-VGA,3-DVI,4-HDMI*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwResolution; /*ֱʣȡֵ֧Ľ*/
+ public NET_DVR_VIDEOEFFECT struVideoEffect; /*ͨƵ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OUTPUTCFG
+ {
+ public uint dwSize;
+ public byte byScreenLayX; //-
+ public byte byScreenLayY; //-
+ public ushort wOutputChanNum; //ͨ0ʾ豸ֵ֧ͨȡֵʾʵͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_OUTPUTPARAM struOutputParam; /*ͨƵ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sWallName; //ǽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /**************************************************************/
+ public const int SCREEN_PROTOCOL_NUM = 20; //ֵ֧Э
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREENSERVER_ABILITY
+ {
+ public uint dwSize; /*ṹ*/
+ public byte byIsSupportScreenNum; /*ִ֧Ŀ*/
+ public byte bySerialNums; //ڸ
+ public byte byMaxInputNums;
+ public byte byMaxLayoutNums;
+ public byte byMaxWinNums;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 19, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byMaxScreenLayX;//-
+ public byte byMaxScreenLayY;//-
+ public ushort wMatrixProtoNum; /*ЧĴЭĿ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SCREEN_PROTOCOL_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PROTO_TYPE[] struScreenProto;/*Эб*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREENCONTROL_ABILITY
+ {
+ public uint dwSize; /*ṹ*/
+ public byte byLayoutNum; /* ָ*/
+ public byte byWinNum; /*Ļڸ*/
+ public byte byOsdNum; /*OSD*/
+ public byte byLogoNum; /*Logo*/
+ public byte byInputStreamNum; //Դ ---豸֧ͨԴԴ
+ public byte byOutputChanNum; //ͨ---豸֧ͨ
+ public byte byCamGroupNum; /**/
+ public byte byPlanNum; /*Ԥ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byIsSupportPlayBack; /*Ƿֻ֧ط*/
+ public byte byMatrixInputNum; //֧
+ public byte byMatrixOutputNum; //֧
+ public NET_DVR_DISPINFO struVgaInfo;//VGAϢ
+ public NET_DVR_DISPINFO struBncInfo;//BNCϢ
+ public NET_DVR_DISPINFO struHdmiInfo;//HDMIϢ
+ public NET_DVR_DISPINFO struDviInfo;//DVIϢ
+ public byte byMaxUserNums;//֧û
+ public byte byPicSpan; //ͼȣһŵͼɸǵĻ
+ public ushort wDVCSDevNum; //ֲʽ豸
+ public ushort wNetSignalNum; //Դ
+ public ushort wBaseCoordinateX;//
+ public ushort wBaseCoordinateY;
+ public byte byExternalMatrixNum; //Ӿ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 49, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*******************************ź״̬*******************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ANALOGINPUTSTATUS
+ {
+ public uint dwLostFrame; /*Ƶ붪֡*/
+ public byte byHaveSignal; /*ǷƵź*/
+ public byte byVideoFormat; /*Ƶʽ1NTSC,2PAL,0*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 46, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_INPUTSTATUS_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 52, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ /*[FieldOffsetAttribute(0)]
+ public NET_DVR_MATRIX_CHAN_STATUS struIpInputStatus;
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_ANALOGINPUTSTATUS struAnalogInputStatus;
+ * */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INPUTSTATUS
+ {
+ public ushort wInputNo; /*źԴ*/
+ public byte byInputType; //NET_DVR_CAM_MODE
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_INPUTSTATUS_UNION struStatusUnion;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREENINPUTSTATUS
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public uint dwNums; //豸صԴ״̬
+ public IntPtr pBuffer; //
+ public uint dwBufLen; //ָ볤ȣ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREENALARMCFG
+ {
+ public uint dwSize;
+ public byte byAlarmType; //ͣ1-Ӱγ2-Ӱ룬3-ϵͳ״̬쳣4-ϵͳָָ 5-Դ쳣 6-¶ȱ 7-FPGA汾ƥ 8-Ԥʼ 9-Ԥ 10- 11-IPַͻ12-쳣
+ public byte byBoardType; // 1- 2- 3-壬4-壬Ϊ1236ʱʹ
+ public byte bySubException; //쳣ʱ쳣 1- ֱı 2-˿ı3-ֱʴ4-ֱʸı䵼½Դ㣬رոԴӦڡ5-ֱʸı䣬ѿű1/88Χ6-ֱʻָ,7-ֱʸı䵼,豸رմ
+ public byte byRes1;
+ public ushort wStartInputNum; // 쳣Դ쳣㣩
+ public ushort wEndInputNum; // 쳣Դ쳣յ㣩
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MATRIX_CFG
+ {
+ public byte byValid; //жǷģǷЧ
+ public byte byCommandProtocol; //ģָ4֣
+ public byte byScreenType; //
+ public byte byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byScreenToMatrix; //ģĻĶӦϵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DIGITALSCREEN
+ {
+ public NET_DVR_IPADDR struAddress;/*豸Ϊ豸ʱIPϢ*/
+ public ushort wPort; //ͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 26, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ANALOGSCREEN
+ {
+ public byte byDevSerPortNum; /*豸Ĵں*/
+ public byte byScreenSerPort; /*ӴĴں*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 130, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_MATRIX_CFG struMatrixCfg;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_SCREEN_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 172, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+
+ /*[FieldOffsetAttribute(0)]
+ public NET_DVR_DIGITALSCREEN struDigitalScreen;
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_ANALOGSCREEN struAnalogScreen;
+ * */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREEN_SCREENINFO
+ {
+ public uint dwSize;
+ public byte byValid; //ǷЧ
+ public byte nLinkMode; //ӷʽ0-ڣ1-
+ public byte byDeviceType; //豸ͺţȡ
+ public byte byScreenLayX; //-
+ public byte byScreenLayY; //-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; /*¼û*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPassword; /*¼*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDevName; /*豸*/
+ public NET_DVR_SCREEN_UNION struScreenUnion;
+ public byte byInputNum; // Դ
+ public byte byOutputNum; // Դ
+ public byte byCBDNum; //CBD
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 29, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*******************************ͼϴ*******************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_BASEMAP_CFG
+ {
+ public byte byScreenIndex; //Ļ
+ public byte byMapNum; /*ָ˶ٿ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] res;
+ public ushort wSourWidth; /* ԭͼƬĿ */
+ public ushort wSourHeight; /* ԭͼƬĸ߶ */
+ }
+
+ /*******************************OSD*******************************/
+ public const int MAX_OSDCHAR_NUM = 256;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_OSDCFG
+ {
+ public uint dwSize;
+ public byte byValid; /*ǷЧ 0Ч 1Ч*/
+ public byte byDispMode; //ʾģʽ1-2-3-ģʽ
+ public byte byFontColorY; /*ɫY,0-255*/
+ public byte byFontColorU; /*ɫU,0-255*/
+ public byte byFontColorV; /*ɫV,0-255*/
+ public byte byBackColorY; /*ɫY,0-255*/
+ public byte byBackColorU; /*ɫU,0-255*/
+ public byte byBackColorV; /*ɫV,0-255*/
+ public ushort wXCoordinate; /*OSDĻϽλx*/
+ public ushort wYCoordinate; /*OSDĻϽλy*/
+ public ushort wWidth; /*OSD*/
+ public ushort wHeight; /*OSD߶*/
+ public uint dwCharCnt; /*ַĸ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_OSDCHAR_NUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wOSDChar; /*OSDַ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /*******************************ȡϢ*******************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SERIAL_CONTROL
+ {
+ public uint dwSize ;
+ public byte bySerialNum; // ڸ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySerial;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*******************************Ļ*******************************/
+ //ĻԴ
+ public enum INPUT_INTERFACE_TYPE
+ {
+ INTERFACE_VGA = 0,
+ INTERFACE_SVIDEO, // 2046NL֧֣2046NH֧
+ INTERFACE_YPBPR,
+ INTERFACE_DVI ,
+ INTERFACE_BNC ,
+ INTERFACE_DVI_LOOP,//(ͨ) 2046NH֧֣2046NL֧
+ INTERFACE_BNC_LOOP, //(ͨ) 2046NH֧֣2046NL.֧
+ INTERFACE_HDMI,
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INPUT_INTERFACE_CTRL
+ {
+ public byte byInputSourceType; //INPUT_INTERFACE_TYPE
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ʾԪɫ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISPLAY_COLOR_CTRL
+ {
+ public byte byColorType; //1- 2-Աȶ 3-Ͷ 4-
+ public char byScale; //-1 0+1ֵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 14, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ʾԪλÿ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DISPLAY_POSITION_CTRL
+ {
+ public byte byPositionType; //1-ˮƽλ 2-ֱλã
+ public char byScale; //-1 0+1ֵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 14, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_SCREEN_CONTROL_PARAM
+ {
+ /*[FieldOffsetAttribute(0)]
+ public NET_DVR_INPUT_INTERFACE_CTRL struInputCtrl;
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_DISPLAY_COLOR_CTRL struDisplayCtrl;
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_DISPLAY_POSITION_CTRL struPositionCtrl;
+ [FieldOffsetAttribute(0)]
+ * */
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREEN_CONTROL
+ {
+ public uint dwSize;
+ public uint dwCommand ; /* Ʒ 1- 2- 3-ĻԴѡ 4-ʾԪɫ 5-ʾԪλÿ*/
+ public byte byProtocol; //Э,1:LCD-S1,2:LCD-S2
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_SCREEN_CONTROL_PARAM struControlParam;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 52, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*******************************ĻV41*******************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SCREEN_CONTROL_V41
+ {
+ public uint dwSize;
+ public byte bySerialNo; //ں
+ public byte byBeginAddress; //ϽĻţ1ʼ
+ public byte byEndAddress; //½Ļţ1ʼ
+ public byte byProtocol; // Э 1-LCD-S1 , 2-LCD-S2 , 3-LCD-L1 4-LCD-DLP 5-LCD-S3 , 6-LCD-H1
+ public uint dwCommand ; /* Ʒ 1- 2- 3-ĻԴѡ 4-ʾԪɫ 5-ʾԪλÿ*/
+ public NET_DVR_SCREEN_CONTROL_PARAM struControlParam;
+ public byte byWallNo; // ǽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 51, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ /*******************************Ԥ*******************************/
+ public const int MAX_PLAN_ACTION_NUM = 32; //Ԥ
+ public const int DAYS_A_WEEK = 7; //һ7
+ public const int MAX_PLAN_COUNT = 16; //Ԥ
+
+ public enum NET_DVR_PLAN_OPERATE_TYPE
+ {
+ NET_DVR_SWITCH_LAYOUT = 1, // л Ĭ
+ NET_DVR_SCREEN_POWER_OFF, // رմĻʾ
+ NET_DVR_SCREEN_POWER_ON, // Ļʾ
+ }
+
+ /*ԤϢ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLAN_INFO
+ {
+ public byte byValid; // ǷЧ
+ public byte byType; // NET_DVR_PLAN_OPERATE_TYPE
+ public ushort wLayoutNo; // ֺ
+ public byte byScreenStyle; //Ļͺţػã1ǵ2Ǹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwDelayTime; // һʱ, λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CYCLE_TIME
+ {
+ public byte byValid;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_TIME_EX struTime;
+ }
+
+ /*Ԥ*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLAN_CFG
+ {
+ public uint dwSize;
+ public byte byValid; // ԤǷЧ
+ public byte byWorkMode; // Ԥģʽ 1ʾֶ2Զ3Ԥѭ
+ public byte byWallNo; //ǽţ1ʼ
+ public byte byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPlanName; //Ԥ
+ public NET_DVR_TIME_EX struTime; // ģʽΪԶʱʹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = DAYS_A_WEEK, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CYCLE_TIME[] struTimeCycle; /*ѭʱ䣬Ϊһڣꡢ¡ʹá磺struTimeCycle[0]еbyValidֵ1ʾִиԤȡֵΪ[0,6]0죬1һԴ*/
+ public uint dwWorkCount; // Ԥִд0Ϊһֱѭţֵʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_PLAN_ACTION_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_PLAN_INFO[] strPlanEntry; // Ԥִе
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*******************************ȡ豸״̬*******************************/
+ /*Ԥб*/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLAN_LIST
+ {
+ public uint dwSize;
+ public uint dwPlanNums; //豸źԴ
+ public IntPtr pBuffer; //ָdwInputSignalNumsNET_DVR_PLAN_CFGṹСĻ
+ public byte byWallNo; //ǽţ1ʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwBufLen; //仺ȣڵdwInputSignalNumsNET_DVR_PLAN_CFGṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*******************************Ԥ*******************************/
+ //ýṹΪͨÿƽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CONTROL_PARAM
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sDeviceID; //豸豸ID
+ public ushort wChan; //ͨ
+ public byte byIndex; //ȷʾʲô
+ public byte byRes1;
+ public uint dwControlParam;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ /*******************************ȡ豸״̬*******************************/
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DEVICE_RUN_STATUS
+ {
+ public uint dwSize;
+ public uint dwMemoryTotal; //ڴ λKbyte
+ public uint dwMemoryUsage; //ڴʹ λKbyte
+ public byte byCPUUsage; //CPUʹ 0-100
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 127, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //91ϵHD-SDIDVR Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ACCESS_CAMERA_INFO
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string sCameraInfo; // ǰϢ
+ public byte byInterfaceType; // ǰ˽ӿͣ1:VGA, 2:HDMI, 3:YPbPr 4:SDI 5:FC
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwChannel;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AUDIO_INPUT_PARAM
+ {
+ public byte byAudioInputType; //Ƶͣ0-mic in1-line in
+ public byte byVolume; //volume,[0-100]
+ public byte byEnableNoiseFilter; //Ƿ-أ-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.I1)]
+ public byte[] byres;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CAMERA_DEHAZE_CFG
+ {
+ public uint dwSize;
+ public byte byDehazeMode; //0-ã1-Զģʽ2-
+ public byte byLevel; //ȼ0-100
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_INPUT_SIGNAL_LIST
+ {
+ public uint dwSize;
+ public uint dwInputSignalNums; //豸źԴ
+ public IntPtr pBuffer; //ָdwInputSignalNumsNET_DVR_INPUTSTREAMCFGṹСĻ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwBufLen; //仺ȣڵdwInputSignalNumsNET_DVR_INPUTSTREAMCFGṹС
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //ȫ״̬
+ public const int PULL_DISK_SUCCESS = 1; // ȫ̳ɹ
+ public const int PULL_DISK_FAIL = 2; // ȫʧ
+ public const int PULL_DISK_PROCESSING = 3; // ֹͣ
+ public const int PULL_DISK_NO_ARRAY = 4; // в
+ public const int PULL_DISK_NOT_SUPPORT = 5; // ְ֧ȫ
+
+ //ɨ״̬
+ public const int SCAN_RAID_SUC = 1; // ɨгɹ
+ public const int SCAN_RAID_FAIL = 2; // ɨʧ
+ public const int SCAN_RAID_PROCESSING = 3; // ɨ
+ public const int SCAN_RAID_NOT_SUPPORT = 4; // ֧ɨ
+
+ //ǰ״̬
+ public const int SET_CAMERA_TYPE_SUCCESS = 1; // ɹ
+ public const int SET_CAMERA_TYPE_FAIL = 2; // ʧ
+ public const int SET_CAMERA_TYPE_PROCESSING = 3; // ڴ
+
+ //9000 2.2
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORD_TIME_SPAN_INQUIRY
+ {
+ public uint dwSize; //ṹС
+ public byte byType; //0 Ƶ¼, 1ͼƬͨ¼, 2ANRͨ¼, 3֡ͨ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_RECORD_TIME_SPAN
+ {
+ public uint dwSize; //ṹС
+ public NET_DVR_TIME strBeginTime; //ʼʱ
+ public NET_DVR_TIME strEndTime; //ʱ
+ public byte byType; //0 Ƶ¼, 1ͼƬͨ¼, 2ANRͨ¼, 3֡ͨ¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 35, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DRAWFRAME_DISK_QUOTA_CFG
+ {
+ public uint dwSize; //ṹС
+ public byte byPicQuota; //ͼƬٷֱ [0%, 30%]
+ public byte byRecordQuota; //ͨ¼ٷֱ [20%, 40%]
+ public byte byDrawFrameRecordQuota; //֡¼ٷֱ [30%, 80%]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 61, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //ֽ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_MANUAL_RECORD_PARA
+ {
+ public NET_DVR_STREAM_INFO struStreamInfo;
+ public uint lRecordType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //˿ӳýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NAT_PORT
+ {
+ public ushort wEnable;
+ public ushort wExtPort;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //˿ӳýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_NAT_CFG
+ {
+ public uint dwSize;
+ public ushort wEnableUpnp;
+ public ushort wEnableNat;
+ public NET_DVR_IPADDR struIpAddr;//ʱֹͣʱ
+ public NET_DVR_NAT_PORT struHttpPort;//ʱֹͣʱ
+ public NET_DVR_NAT_PORT struCmdPort;//ʱֹͣʱ
+ public NET_DVR_NAT_PORT struRtspPort;//ʱֹͣʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFriendName;
+ public byte byNatType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_NAT_PORT struHttpsPort;//ʱֹͣʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 76, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //Upnp˿ӳ״̬ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_UPNP_PORT_STATE
+ {
+ public uint dwEnabled;//ö˿Ƿʹӳ
+ public ushort wInternalPort;//ӳǰĶ˿
+ public ushort wExternalPort;//ӳĶ˿
+ public uint dwStatus;//˿ӳ״̬0- δЧ1- δЧӳԴ˿ĿĶ˿һ£2- δЧӳ˿ںѱʹã3- Ч
+ public NET_DVR_IPADDR struNatExternalIp;//ӳⲿַ
+ public NET_DVR_IPADDR struNatInternalIp;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ //Upnp˿ӳ״̬ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_UPNP_NAT_STATE
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_UPNP_PORT_STATE[] strUpnpPort;//˿ӳ״̬:0- web server˿ڣ1- ˿ڣ2- rtsp
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 200, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLAYCOND
+ {
+ public uint dwChannel;
+ public NET_DVR_TIME struStartTime;
+ public NET_DVR_TIME struStopTime;
+ public byte byDrawFrame; //0:֡1֡
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ //¼طŽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VOD_PARA
+ {
+ public uint dwSize; //ṹС
+ public NET_DVR_STREAM_INFO struIDInfo; //IDϢ
+ public NET_DVR_TIME struBeginTime;//طſʼʱ
+ public NET_DVR_TIME struEndTime;//طŽʱ
+ public IntPtr hWnd;//طŴ
+ public byte byDrawFrame;//Ƿ֡0- ֡1- ֡
+ public byte byVolumeType;//0-ͨ¼1-浵CVR豸ͨͨ¼浵ڱ¼
+ public byte byVolumeNum;//浵
+ public byte byRes1;//
+ public uint dwFileIndex;//浵ϵ¼ļ浵¼ʱصֵ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ATMFINDINFO
+ {
+ public byte byTransactionType; // 0-ȫ1-ѯ 2-ȡ 3- 4-룬5-תˣ 6-ѯ 7- 8-̳ 9-̿ 10-Զ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public uint dwTransationAmount ; // ;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct NET_DVR_SPECIAL_FINDINFO_UNION
+ {
+ [FieldOffsetAttribute(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLenth ;
+ /* [FieldOffsetAttribute(0)]
+ public NET_DVR_ATMFINDINFO struATMFindInfo; //ATMѯ
+ * */
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FILECOND_V40
+ {
+ public Int32 lChannel;
+ public uint dwFileType;
+ public uint dwIsLocked;
+ public uint dwUseCardNo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CARDNUM_LEN_OUT, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCardNumber;
+ public NET_DVR_TIME struStartTime;
+ public NET_DVR_TIME struStopTime;
+ public byte byDrawFrame; //0:֡1֡
+ public byte byFindType; //0:ѯͨ1ѯ浵
+ public byte byQuickSearch; //0:ͨѯ1٣ѯ
+ public byte bySpecialFindInfoType ; //רвѯ 0-Ч 1-ATMѯ
+ public uint dwVolumeNum; //浵
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = GUID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byWorkingDeviceGUID; //GUIDͨȡN+1õ
+ public NET_DVR_SPECIAL_FINDINFO_UNION uSpecialFindInfo ; //רвѯ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //¼
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SEARCH_EVENT_PARAM_V40
+ {
+ public ushort wMajorType; //0-ƶ⣬1-, 2-¼ 5-pos¼ 7-Ž¼
+ public ushort wMinorType; //- ͱ仯0xffffʾȫ
+ public NET_DVR_TIME struStartTime; //Ŀʼʱ䣬ֹͣʱ: ͬʱΪ(0, 0) ʾʱ俪ʼǰ4000¼
+ public NET_DVR_TIME struEndTime; //
+ public byte byLockType; // 0xff-ȫ0-δ1-
+ public byte byQuickSearch; // Ƿÿٲѯ0-ã1-ãٲѯ᷵ļС豸ݿвѯƵӲ̣
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 130, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ public UNION_EVENT_PARAM uSeniorParam;
+
+ public void Init()
+ {
+ byRes = new byte[130];
+ uSeniorParam.Init();
+ }
+ }
+
+ public const int SEARCH_EVENT_INFO_LEN_V40 = 800;
+
+ [StructLayout(LayoutKind.Explicit)]
+ public struct UNION_EVENT_PARAM
+ {
+ [FieldOffset(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SEARCH_EVENT_INFO_LEN_V40, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLen;
+ public void Init()
+ {
+ byLen = new byte[SEARCH_EVENT_INFO_LEN_V40];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struMotionParam
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wMotDetChanNo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 672, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public void Init()
+ {
+ wMotDetChanNo = new ushort[MAX_CHANNUM_V30];
+ byRes = new byte[672];
+ }
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struStreamIDParam
+ {
+ public NET_DVR_STREAM_INFO struIDInfo;
+ public uint dwCmdType;
+ public byte byBackupVolumeNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byArchiveLabel;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 656, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public void Init()
+ {
+ byRes1 = new byte[3];
+ byArchiveLabel = new byte[64];
+ byRes = new byte[656];
+ struIDInfo.Init();
+ }
+ }
+
+ //ҷؽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SEARCH_EVENT_RET_V40
+ {
+ public ushort wMajorType; //
+ public ushort wMinorType; //
+ public NET_DVR_TIME struStartTime; //¼ʼʱ
+ public NET_DVR_TIME struEndTime; //¼ֹͣʱ䣬¼ʱͿʼʱһ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V40, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wChan; //ͨţ0xffffʾЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 36, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public UNION_EVENT_RET uSeniorRet;
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public struct UNION_EVENT_RET
+ {
+ [FieldOffset(0)]
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 800, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLen;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struMotionRet
+ {
+ public uint dwMotDetNo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 796, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int NET_SDK_MAX_TAPE_INDEX_LEN = 32; //Ŵ
+ public const int NET_SDK_MAX_FILE_LEN = 256; //ļ
+
+ //id¼ѯ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct struStreamIDRet
+ {
+ public uint dwRecordType; //¼ 0-ʱ¼ 1-ƶ 2-¼ 3-|ƶ 4-&ƶ 5- 6-ֶ¼ 7- 8- 9-ܱ 10-ش¼
+ public uint dwRecordLength; //¼С
+ public byte byLockFlag; // ־ 0û 1
+ public byte byDrawFrameType; // 0dz֡¼ 1֡¼
+ public byte byPosition;// ļڴ洢λã0-ϣ1-λϣֱأ2-ŴڣҪѴлλϣ3-ڴŴУҪѴ̲嵽Ŵ
+ public byte byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFileName; //ļ
+ public uint dwFileIndex; // 浵ϵļ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_SDK_MAX_TAPE_INDEX_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTapeIndex; //ļڴŴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_SDK_MAX_FILE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byFileNameEx; //ļչ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 464, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_AES_KEY_INFO
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] sAESKey; /*Կ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; /*ֽ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_POE_CFG
+ {
+ public NET_DVR_IPADDR struIP; //IPַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ }
+
+ public const int MAX_PRO_PATH = 256; //Э·
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CUSTOM_PROTOCAL
+ {
+ public uint dwSize; //ṹС
+ public uint dwEnabled; //ǷøЭ0 1
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = DESC_LEN)]
+ public string sProtocalName; //ԶЭ, 16λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //,Эչ
+ public uint dwEnableSubStream; //Ƿ0 1
+ public byte byMainProType; //Э 1 RTSP
+ public byte byMainTransType; // 0Auto 1udp 2rtp over rtsp
+ public ushort wMainPort; //˿
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_PRO_PATH)]
+ public string sMainPath; //·
+ public byte bySubProType; //Э 1 RTSP
+ public byte bySubTransType; // 0Auto 1udp 2rtp over rtsp
+ public ushort wSubPort; //˿
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_PRO_PATH)]
+ public string sSubPath; //·
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 200, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2; //
+ }
+
+ //ԤV40ӿ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PREVIEWINFO
+ {
+ public Int32 lChannel;//ͨ
+ public uint dwStreamType; // ͣ0-1-2-33-4 Դ
+ public uint dwLinkMode;// 0TCPʽ,1UDPʽ,2ಥʽ,3 - RTPʽ4-RTP/RTSP,5-RSTP/HTTP
+ public IntPtr hPlayWnd;//Ŵڵľ,ΪNULLʾͼ
+ public bool bBlocked; //0-ȡ, 1-ȡ, SDKڲconnectʧܽ5sijʱܹ,ʺѯȡ.
+ public bool bPassbackRecord; //0-¼ش,1¼ش
+ public byte byPreviewMode;//Ԥģʽ0-Ԥ1-ӳԤ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = STREAM_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byStreamID;//IDlChannelΪ0xffffffffʱô˲
+ public byte byProtoType; //ӦòȡЭ飬0-˽Э飬1-RTSPЭ
+ public byte byRes1;
+ public byte byVideoCodingType; //ݱ 0-ͨñ 1-ȳ̽ԭʼݣ¶ݵļϢͨȥ㣬ԭʼʵ¶ֵ
+ public uint dwDisplayBufNum; //ſⲥŻ֡Χ1-500ʱĬΪ1
+ public byte byNPQMode; //NPQֱģʽǹý 0-ֱ 1-ý
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 215, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ ///ץĻ
+ ///
+ public const int MAX_OVERLAP_ITEM_NUM = 50; //ַ
+ public const int NET_ITS_GET_OVERLAP_CFG = 5072;//ȡַӲãITSնˣ
+ public const int NET_ITS_SET_OVERLAP_CFG = 5073;//ַӲãITSնˣ
+
+ //ַṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_OVERLAPCFG_COND
+ {
+ public uint dwSize;
+ public uint dwChannel;//ͨ
+ public uint dwConfigMode;//ģʽ0- նˣ1- ǰ(ֱǰ˻ն˽ǰ)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ //ַϢṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_OVERLAP_SINGLE_ITEM_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+ public byte byItemType;//
+ public byte byChangeLineNum;//ĻȡֵΧ[0,10]Ĭϣ0
+ public byte bySpaceNum;//ĿոȡֵΧ[0-255]Ĭϣ0
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ //ַýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_OVERLAP_ITEM_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_OVERLAP_ITEM_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_ITS_OVERLAP_SINGLE_ITEM_PARAM[] struSingleItem;//ַϢ
+ public uint dwLinePercent;
+ public uint dwItemsStlye;
+ public ushort wStartPosTop;
+ public ushort wStartPosLeft;
+ public ushort wCharStyle;
+ public ushort wCharSize;
+ public ushort wCharInterval;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//
+ public uint dwForeClorRGB;//ǰɫRGBֵbit0~bit7: Bbit8~bit15: Gbit16~bit23: RĬϣx00FFFFFF-
+ public uint dwBackClorRGB;//ɫRGBֵֻͼƬЧbit0~bit7: Bbit8~bit15: Gbit16~bit23: RĬϣx00000000-
+ public byte byColorAdapt;//ɫǷӦ0-1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 31, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//
+ }
+
+ //ַϢṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_OVERLAP_INFO_PARAM
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 128, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySite;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRoadNum;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byInstrumentNum;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDirection;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDirectionDesc;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLaneDes;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//ﱣƵѹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 44, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitoringSite1;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitoringSite2;//ﱣƵѹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//ﱣƵѹ
+ }
+
+ //ַṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_OVERLAP_CFG
+ {
+ public uint dwSize;
+ public byte byEnable;//Ƿã0- ã1-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;//ﱣƵѹ
+ public NET_ITS_OVERLAP_ITEM_PARAM struOverLapItem;//ַ
+ public NET_ITS_OVERLAP_INFO_PARAM struOverLapInfo;//ַϢ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//ﱣƵѹ
+ }
+
+ //ṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_SETUPALARM_PARAM
+ {
+ public uint dwSize;
+ public byte byLevel;//ȼ0- һȼߣ1- ȼУ2- ȼͣ
+ public byte byAlarmInfoType;//ϴϢ֧֣ͣܽͨ0- ϱϢNET_DVR_PLATE_RESULT1- ±Ϣ(NET_ITS_PLATE_RESULT)
+ public byte byRetAlarmTypeV40;
+ public byte byRetDevInfoVersion;
+ public byte byRetVQDAlarmType;
+ public byte byFaceAlarmDetection;
+ public byte bySupport;
+ public byte byBrokenNetHttp;
+ public ushort wTaskNo;
+ public byte byDeployType; //ͣ0-ͻ˲1-ʵʱ
+ public byte bySubScription; //ģλʾδIJϱ //ռλ //Bit7-ƶ˳Ƿͼ0-ͼ(V30ϱ)1-ͼ(V40ϱ)
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public byte byAlarmTypeURL;
+ //bit0-ʾץıϴINTER_FACESNAP_RESULT0-ʾƴ䣬1-ʾURL䣨豸ֵ֧£豸֧ݾ屨ж,ͬʱ豸Ҫ֧URLطǰǡƴ洢
+ //bit1-ʾEVENT_JSONͼƬݳͣ0-ʾƴ䣬1-ʾURL䣨豸ֵ֧£豸֧ݾ屨жϣ
+ //bit2 - ȶ(ΪCOMM_SNAP_MATCH_ALARM)ͼƬϴͣ0 - ƴ䣬1 - URL
+ //bit3 - Ϊ(ΪCOMM_ALARM_RULE)ͼƬϴͣ0 - ƴ䣬1 - URL䣬ֶ豸Ƿ֧֣ӦӲڵǷΪtrue
+ public byte byCustomCtrl;//Bit0- ʾָ֧ʻͼϴ: 0-ϴ,1-ϴ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_GATE_VEHICLE
+ {
+ public uint dwSize;
+ public uint dwMatchNo;
+ public byte byGroupNum;
+ public byte byPicNo;
+ public byte bySecondCam;
+
+ public byte byRes;
+ public ushort wLaneid;
+ public byte byCamLaneId;
+ public byte byRes1;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
+ public byte[] byAlarmReason;
+
+ public ushort wBackList;
+ public ushort wSpeedLimit;
+ public uint dwChanIndex;
+
+
+ public NET_DVR_PLATE_INFO struPlateInfo;
+
+ public NET_DVR_VEHICLE_INFO struVehicleInfo;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
+ public byte[] byMonitoringSiteID;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
+ public byte[] byDeviceID;
+
+
+ public byte byDir;
+ public byte byDetectType;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
+ public byte[] byRes2;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)]
+ public byte[] byCardNo;
+
+ public uint dwPicNum;
+
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.Struct)]
+ public NET_ITS_PICTURE_INFO[] struPicInfo;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
+ public byte[] bySwipeTime;
+
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 224)]
+ public byte[] byRes3;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_PICTURE_INFO
+ {
+ public uint dwDataLen;
+ public byte byType;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
+ public byte[] byRes1;
+ public uint dwRedLightTime;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
+ public byte[] byAbsTime;
+ public NET_VCA_RECT struPlateRect;
+ public NET_VCA_RECT struPlateRecgRect;
+ public IntPtr pBuffer;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_PLATE_RESULT
+ {
+ public uint dwSize; //ṹ
+ public uint dwMatchNo; //ƥ,(,,)ƥ
+ public byte byGroupNum; //ͼƬһץĵһͼƬʱƥݣ
+ public byte byPicNo; //ĵͼƬţյͼƬʾ;ճʱͼƬʱҪɾ
+ public byte bySecondCam; //ǷڶץģԶץĵԶǰץĵĺĿлõ
+ public byte byFeaturePicNo; //Ƶ羯ȡڼͼΪдͼ,0xff-ʾȡ
+ public byte byDriveChan; //
+ public byte byVehicleType; //ͣοVTR_RESULT
+ public byte byDetSceneID;//ⳡ[1,4], IPCĬ0
+ //ԣλʾ0- (ͨ)bit1- Ʊ공(ı־)bit2- ΣƷֵ0- 1-
+ //ýڵѲʹ,ʹbyYellowLabelCarbyDangerousVehiclesжǷƱ공ΣƷ
+ public byte byVehicleAttribute;
+ public ushort wIllegalType; //ΥͲù궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byIllegalSubType; //Υ
+ public byte byPostPicNo; //ΥʱȡڼͼƬΪͼ,0xff-ʾȡ
+ //ͨ(Чͨź豸ϴͨһ£ں˺ ͨһ)
+ public byte byChanIndex;
+ public ushort wSpeedLimit; //ޣʱЧ
+ public byte byChanIndexEx; //byChanIndexEx*256+byChanIndexʾʵͨš
+ public byte byRes2;
+ public NET_DVR_PLATE_INFO struPlateInfo; //Ϣṹ
+ public NET_DVR_VEHICLE_INFO struVehicleInfo; //Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 48, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitoringSiteID; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 48, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDeviceID; //豸
+ public byte byDir; //ⷽ1-У2-()3-˫4-ɶ5-,6-7-ɱϣ8-
+ public byte byDetectType; //ⷽʽ,1-ظд2-Ƶ3-֡ʶ4-״ﴥ
+ //ͣοITC_RELA_LANE_DIRECTION_TYPE
+ //òΪŶӦȷΨһԡ
+ public byte byRelaLaneDirectionType;
+ public byte byCarDirectionType; //ʻķ0ʾ£1ʾϣʵʳʻ֣
+ //wIllegalTypeΪʱʹøòwIllegalTypeΪֵʱwIllegalTypeΪòЧ
+ public uint dwCustomIllegalType; //ΥͶ(ûԶ)
+ /*Ϊ0~ָʽʱΪϵΥͣwIllegalTypedwCustomIllegalTypeЧֵΥ롣
+ * Ϊ1~ַʽʱpIllegalInfoBufЧϵΥͣwIllegalTypedwCustomIllegalTypeȻֵΥ*/
+ public IntPtr pIllegalInfoBuf; //ΥַϢṹָ룻ָNET_ITS_ILLEGAL_INFO
+ public byte byIllegalFromatType; //ΥϢʽͣ 0~ָʽ 1~ַʽ
+ public byte byPendant;// 0-ʾδ֪,1-2-
+ public byte byDataAnalysis; //0-δ, 1-ѷ
+ public byte byYellowLabelCar; //0-ʾδ֪, 1-ǻƱ공,2-Ʊ공
+ public byte byDangerousVehicles; //0-ʾδ֪, 1-ΣƷ,2-ΣƷ
+ //ֶΰPilotַΪʻCopilotַΪʻ
+ public byte byPilotSafebelt;//0-ʾδ֪,1-ϵȫ,2-ϵȫ
+ public byte byCopilotSafebelt;//0-ʾδ֪,1-ϵȫ,2-ϵȫ
+ public byte byPilotSunVisor;//0-ʾδ֪,1-,2-
+ public byte byCopilotSunVisor;//0-ʾδ֪, 1-,2-
+ public byte byPilotCall;// 0-ʾδ֪, 1-绰,2-绰
+ //0-բ1-δբ (רʷݺڰƥǷբɹı־)
+ public byte byBarrierGateCtrlType;
+ public byte byAlarmDataType;//0-ʵʱݣ1-ʷ
+ public NET_DVR_TIME_V30 struSnapFirstPicTime;//˵ʱ(ms)ץĵһͼƬʱ䣩
+ public uint dwIllegalTime;//Υʱ䣨ms = ץһͼƬʱ - ץĵһͼƬʱ
+ public uint dwPicNum; //ͼƬpicGroupNumͬϢͼƬͼƬϢstruVehicleInfoEx
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.Struct)]
+ public NET_ITS_PICTURE_INFO[] struPicInfo; //ͼƬϢ,Żص6ͼ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_ITS_PARK_VEHICLE
+ {
+ public uint dwSize;
+ public byte byGroupNum;
+ public byte byPicNo;
+ public byte byLocationNum;
+ public byte byParkError;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_PARKNO_LEN)]
+ public string byParkingNo;
+ public byte byLocationStatus;
+ public byte bylogicalLaneNum;
+ public ushort wUpLoadType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwChanIndex;
+ public NET_DVR_PLATE_INFO struPlateInfo;
+ public NET_DVR_VEHICLE_INFO struVehicleInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMonitoringSiteID;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDeviceID;
+ public uint dwPicNum;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.Struct)]
+ public NET_ITS_PICTURE_INFO[] struPicInfo;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DIAGNOSIS_UPLOAD
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = STREAM_ID_LEN)]
+ public string sStreamID; ///< IDС32ֽ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
+ public string sMonitorIP; ///< صip
+ public uint dwChanIndex; ///< صͨ
+ public uint dwWidth; ///< ͼ
+ public uint dwHeight; ///< ͼ߶
+ public NET_DVR_TIME struCheckTime; ///< ʱ(ϲںʱֶ)ʽ2012-08-06 13:00:00
+ public byte byResult; ///0-δ 1- 2-쳣 3-¼ʧ 4-ȡ쳣
+ public byte bySignalResult; ///< Ƶʧ 0-δ 1- 2-쳣
+ public byte byBlurResult; ///< ͼģ0-δ 1- 2-쳣
+ public byte byLumaResult; ///< ͼ0-δ 1- 2-쳣
+ public byte byChromaResult; ///< ƫɫ0-δ 1- 2-쳣
+ public byte bySnowResult; ///< ż0-δ 1- 2-쳣
+ public byte byStreakResult; ///< Ƹż0-δ 1- 2-쳣
+ public byte byFreezeResult; ///< 涳0-δ 1- 2-쳣
+ public byte byPTZResult; ///< ̨0-δ 1- 2-쳣
+ public byte byContrastResult; //Աȶ쳣0-δ⣬1-2-쳣
+ public byte byMonoResult; //ڰͼ0-δ⣬1-2-쳣
+ public byte byShakeResult; //Ƶ0-δ⣬1-2-쳣
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 256)]
+ public string sSNapShotURL; ///<ͼƬURLַ
+ public byte byFlashResult; //Ƶ0-δ⣬1-2-쳣
+ public byte byCoverResult; //Ƶڵ0-δ⣬1-2-쳣
+ public byte bySceneResult; //0-δ⣬1-2-쳣
+ public byte byDarkResult; //ͼ0-δ⣬1-2-쳣
+ public byte byStreamType; //ͣ0-Ч1-δ֪2-ͣ3-ǹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 59, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ public const int CID_CODE_LEN = 4;
+ public const int ACCOUNTNUM_LEN = 6;
+ public const int ACCOUNTNUM_LEN_32 = 32;
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CID_ALARM
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CID_CODE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCIDCode; //CID¼
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCIDDescribe; //CID¼
+ public NET_DVR_TIME_EX struTriggerTime; //ʱ
+ public NET_DVR_TIME_EX struUploadTime; //ϴʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = ACCOUNTNUM_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCenterAccount; //ʺ
+ public byte byReportType; //NET_DVR_ALARMHOST_REPORT_TYPE
+ public byte byUserType; //ûͣ0-û 1-û,2-ֻû,3-ϵͳû
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sUserName; //ûû
+ public ushort wKeyUserNo; //û 0xFFFFʾЧ
+ public byte byKeypadNo; //̺ 0xFFʾЧ
+ public byte bySubSysNo; //ϵͳ 0xFFʾЧ
+ public ushort wDefenceNo; // 0xFFFFʾЧ
+ public byte byVideoChanNo; //Ƶͨ 0xFFʾЧ
+ public byte byDiskNo; //Ӳ̺ 0xFFʾЧ
+ public ushort wModuleAddr; //ģַ 0xFFFFʾЧ
+ public byte byCenterType; //0-Ч, 1-˺(6),2-չ˺(9)
+ public byte byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = ACCOUNTNUM_LEN_32, ArraySubType = UnmanagedType.I1)]
+ public byte[] sCenterAccountV40; //˺V40,ʹôֶʱsCenterAccountЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 28, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_PTZ_INFO
+ {
+ public float fPan;
+ public float fTilt;
+ public float fZoom;
+ public uint dwFocus;// ۽۽Χһ0-100000
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ⱨ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_FIREDETECTION_ALARM
+ {
+ public uint dwSize; //ṹС
+ public uint dwRelativeTime; //ʱ
+ public uint dwAbsTime; //ʱ
+ public NET_VCA_DEV_INFO struDevInfo; //ǰ豸Ϣ
+ public ushort wPanPos;
+ public ushort wTiltPos;
+ public ushort wZoomPos;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public uint dwPicDataLen;//ץͼƬ
+ public IntPtr pBuffer; //ָ
+ public NET_VCA_RECT struRect;//
+ public NET_VCA_POINT struPoint;//¶ȵ
+ public ushort wFireMaxTemperature;//¶[300~4000]
+ public ushort wTargetDistance;//Ŀ[100m ~ 10000m]
+ public byte byStrategyType;//ͣ0~ⱨ1~Эͬ2~ϵͳ3~ָ㱨4~ָ
+ public byte byAlarmSubType;//͡0~ⱨ1~ⱨ2~̻𱨾
+ /*ǷPTZչ
+ 0~ãPTZֵwPanPoswTiltPoswZoomPosΪ
+ 1~ãPTZֵstruPtzPosExΪPTZ践ءstruPtzPosExֵתΪwPanPoswTiltPoswZoomPosֵ
+ */
+ public byte byPTZPosExEnable;
+ public byte byRes2;
+ public NET_PTZ_INFO struPtzPosEx;// ptzչ(ָ֧߾PTZֵȷСλ)
+ public uint dwVisiblePicLen;//ɼͼƬ
+ public IntPtr pVisiblePicBuf; //ɼͼƬָ
+ // pSmokeBufbyAlarmSubTypeΪ1ⱨ2̻𱨾ʱЧ
+ public IntPtr pSmokeBuf; //ⱨָ룬ָһNET_DVR_SMOKEDETECTION_ALARMṹ
+ public ushort wDevInfoIvmsChannelEx; //NET_VCA_DEV_INFObyIvmsChannelܱͬʾֵϿͻbyIvmsChannelܼݣ255¿ͻ˰汾ʹwDevInfoIvmsChannelEx
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 58, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ACS_EVENT_INFO
+ {
+ public uint dwSize;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = ACS_CARD_NO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCardNo; //ţΪ0Ч
+ public byte byCardType; //ͣ1-ͨ2-м˿3-4-Ѳ5-вȿ6-7-Ϊ0Ч
+ public byte byWhiteListNo; //,1-8Ϊ0Ч
+ public byte byReportChannel; //ϴͨ1-ϴ2-1ϴ3-2ϴΪ0Ч
+ public byte byCardReaderKind; //һ࣬0-Ч1-IC2-֤3-ά,4-ָͷ
+ public uint dwCardReaderNo; //ţΪ0Ч
+ public uint dwDoorNo; //ű(¥)Ϊ0Ч
+ public uint dwVerifyNo; //ؿ֤ţΪ0Ч
+ public uint dwAlarmInNo; //ţΪ0Ч
+ public uint dwAlarmOutNo; //ţΪ0Ч
+ public uint dwCaseSensorNo; //¼
+ public uint dwRs485No; //RS485ͨţΪ0Ч
+ public uint dwMultiCardGroupNo; //Ⱥ
+ public ushort wAccessChannel; //Աͨ
+ public byte byDeviceNo; //豸ţΪ0Ч
+ public byte byDistractControlNo;//ֿţΪ0Ч
+ public uint dwEmployeeNo; //ţΪ0Ч
+ public ushort wLocalControllerID; //͵ؿţ0-Ž1-64͵ؿ
+ public byte byInternetAccess; //ID1-1,2-2,3-1
+ public byte byType; //ͣ0:ʱ,1-24Сʱ,2-ʱ ,3-ڲ4-Կ 5- 6-ܽ 7-24Сʱ 8-24Сʱ9-24Сʱ,10-Žŷ11-Žŷ 0xff-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMACAddr; //ַΪ0Ч
+ public byte bySwipeCardType;//ˢͣ0-Ч1-ά
+ public byte byMask;//Ƿ֣0-1-δ֪2-֣3-
+ public uint dwSerialNo; //¼ˮţΪ0Ч
+ public byte byChannelControllerID; //ͨIDΪ0Ч1-ͨ2-ͨ
+ public byte byChannelControllerLampID; //ͨưIDΪ0ЧЧΧ1-255
+ public byte byChannelControllerIRAdaptorID; //ͨתӰIDΪ0ЧЧΧ1-255
+ public byte byChannelControllerIREmitterID; //ͨIDΪ0ЧЧΧ1-255
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ACS_EVENT_INFO_EXTEND
+ {
+ public int dwFrontSerialNo; //¼ˮţΪ0ЧֶΪ0ƽ̨dwSerialNoжǷʧ¼ֶβΪ0ƽ̨ݸֶκdwSerialNoֶιͬжǷʧ¼ҪڽĺdwSerialNo
+ public byte byUserType; //Աͣ0-Ч1-ͨˣˣ2-ÿͣ3-ˣ4-Ա
+ public byte byCurrentVerifyMode; //ǰ֤ʽ0-Ч1-ߣ2-ˢ+룬3-ˢ4-ˢ룬5-ָƣ6-ָ+룬7-ָƻˢ8-ָ+ˢ9-ָ+ˢ+룬10-ָƻˢ룬11-+ָƣ12-+룬13-+ˢ14-15-+룬16-ָƻ룬17-+ָƣ18-+ָ+룬19-+ָ+ˢ20-++ָƣ21-+22-+ˢ23-ָƻ24-ˢ룬25-ˢ26-ˢָƣ27-ˢָƻ
+ public byte byCurrentEvent; //ǷΪʵʱ¼0-Ч1-ǣʵʱ¼2-¼
+ public byte byPurePwdVerifyEnable; //豸Ƿִ֧֤ 0-֧֣1-֧
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_SDK_EMPLOYEE_NO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byEmployeeNo; //ţԱID豸˵ʹ˹ţԱIDֶΣbyEmployeeNoһҪݣbyEmployeeNoתΪdwEmployeeNoôֶҲҪݣϲƽ̨ͻ˵ȽbyEmployeeNoֶΣֶΪգٿǽdwEmployeeNoֶΣ
+ public byte byAttendanceStatus; //״̬0-δ,1-ϰ࣬2-°࣬3-ʼϢ4-Ϣ5-ʼӰ࣬6-Ӱ
+ public byte byStatusValue; //״ֵ̬
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_SDK_UUID_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byUUID; //UUIDֶνڶԽөʯƽ̨вŻʹã
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NET_DEV_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDeviceName; //豸к
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //չṹϢV20
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ACS_EVENT_INFO_EXTEND_V20
+ {
+ public byte byRemoteCheck; //ǷҪԶ̺飨0-Ч1-ҪĬϣ2-Ҫ
+ public byte byThermometryUnit; //µλ0-϶ȣĬϣ1-϶ȣ2-ģ
+ public byte byIsAbnomalTemperature; //ץIJǷ¶쳣1-ǣ0-
+ public byte byRes2;
+ public float fCurrTemperature; //¶ȣȷСһλ
+ public NET_VCA_POINT struRegionCoordinates; //¶
+ public ushort dwQRCodeInfoLen; //άϢȣΪ0DZʾ
+ public ushort dwVisibleLightDataLen; //ȳɼͼƬȣΪ0DZʾ
+ public ushort dwThermalDataLen; //ȳͼƬȣΪ0DZʾ
+ public IntPtr pQRCodeInfo; //άϢָ
+ public IntPtr pVisibleLightData; //ȳɼͼƬָ
+ public IntPtr pThermalData; //ȳͼƬָ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 1024, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ACS_ALARM_INFO
+ {
+ public uint dwSize;
+ public uint dwMajor; //ͣο궨
+ public uint dwMinor; //ͣο궨
+ public NET_DVR_TIME struTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sNetUser;//û
+ public NET_DVR_IPADDR struRemoteHostAddr ;//Զַ
+ public NET_DVR_ACS_EVENT_INFO struAcsEventInfo; //ϸ
+ public uint dwPicDataLen; //ͼƬݴСΪ0DZʾ
+ public IntPtr pPicData;
+ public ushort wInductiveEventType; //¼ͣ0-ЧͻжϸֵΪ0ֵͨ¼֣ͨԭбͣdwMajordwMinor
+ public byte byPicTransType; //ͼƬݴ䷽ʽ: 0-ƣ1-url
+ public byte byRes1; //ֽ
+ public uint dwIOTChannelNo; //IOTͨ
+ public IntPtr pAcsEventInfoExtend; //byAcsEventInfoExtendΪ1ʱʾָһNET_DVR_ACS_EVENT_INFO_EXTENDṹ
+ public byte byAcsEventInfoExtend; //pAcsEventInfoExtendǷЧ0-Ч1-Ч
+ public byte byTimeType; //ʱͣ0-豸ʱ䣬1-UTCʱ䣨struTimeʱ䣩
+ public byte byRes2; //ֽ
+ public byte byAcsEventInfoExtendV20; //pAcsEventInfoExtendV20ǷЧ0-Ч1-Ч
+ public IntPtr pAcsEventInfoExtendV20; //byAcsEventInfoExtendV20Ϊ1ʱʾָһNET_DVR_ACS_EVENT_INFO_EXTEND_V20ṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_DATE
+ {
+ public ushort wYear; //
+ public byte byMonth; //
+ public byte byDay; //
+ }
+
+ //֤Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ID_CARD_INFO
+ {
+ public uint dwSize; //ṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ID_NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byName; //
+ public NET_DVR_DATE struBirth; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ID_ADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byAddr; //סַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ID_NUM_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byIDNum; //֤
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_ID_ISSUING_AUTHORITY_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byIssuingAuthority; //ǩ
+ public NET_DVR_DATE struStartDate; //Чʼ
+ public NET_DVR_DATE struEndDate; //Чֹ
+ public byte byTermOfValidity; //ǷЧ 0-1-ǣЧֹЧ
+ public byte bySex; //Ա1-У2-Ů
+ public byte byNation; //壬1-""2-"ɹ"3-"",4-"",5-"ά",6-"",7-"",8-"׳",9-"",10-"",
+ //11-"",12-"",13-"",14-"",15-"",16-"",17-"",18-"",19-"",20-"",
+ //21-"",22-"",23-"ɽ",24-"",25-"ˮ",26-"",27-"",28-"",29-"¶",30-"",
+ //31-"Ӷ",32-"",33-"Ǽ",34-"",35-"",36-"ë",37-"",38-"",39-"",40-"",
+ //41-"",42-"ŭ",43-"α",44-"˹",45-"¿",46-"°",47-"",48-"ԣ",49-"",50-"",
+ //51-"",52-"״",53-"",54-"Ű",55-"",56-"ŵ"
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 101, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //չṹϢ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ID_CARD_INFO_EXTEND
+ {
+ public byte byRemoteCheck; //ǷҪԶ̺飨0-Ч1-ҪĬϣ2-Ҫ
+ public byte byThermometryUnit; //µλ0-϶ȣĬϣ1-϶ȣ2-ģ
+ public byte byIsAbnomalTemperature; //ץIJǷ¶쳣1-ǣ0-
+ public byte byRes2;
+ public float fCurrTemperature; //¶ȣȷСһλ
+ public NET_VCA_POINT struRegionCoordinates; //¶
+ public uint dwQRCodeInfoLen; //άϢȣΪ0DZʾ
+ public uint dwVisibleLightDataLen; //ȳɼͼƬȣΪ0DZʾ
+ public uint dwThermalDataLen; //ȳͼƬȣΪ0DZʾ
+ public IntPtr pQRCodeInfo; //άϢָ
+ public IntPtr pVisibleLightData; //ȳɼͼƬָ
+ public IntPtr pThermalData; //ȳͼƬָ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 1024, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //֤Ϣ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ID_CARD_INFO_ALARM
+ {
+ public uint dwSize; //ṹ
+ public NET_DVR_ID_CARD_INFO struIDCardCfg;//֤Ϣ
+ public uint dwMajor; //ͣο궨
+ public uint dwMinor; //ͣο궨
+ public NET_DVR_TIME_V30 struSwipeTime; //ʱ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byNetUser;//û
+ public NET_DVR_IPADDR struRemoteHostAddr;//Զַ
+ public uint dwCardReaderNo; //ţΪ0Ч
+ public uint dwDoorNo; //űţΪ0Ч
+ public uint dwPicDataLen; //ͼƬݴСΪ0DZʾ
+ public IntPtr pPicData;
+ public byte byCardType; //ͣ1-ͨ2-м˿3-4-Ѳ5-вȿ6-7-8-Ϊ0Ч
+ public byte byDeviceNo; // 豸ţΪ0ʱЧЧΧ1-255
+ public byte byMask; //Ƿ֣0-1-δ֪2-֣3-
+ public byte byRes2;
+ public uint dwFingerPrintDataLen; // ָݴСΪ0DZʾ
+ public IntPtr pFingerPrintData;
+ public uint dwCapturePicDataLen; // ץͼƬݴСΪ0DZʾ
+ public IntPtr pCapturePicData;
+ public uint dwCertificatePicDataLen; //֤ץͼƬݴСΪ0DZʾ
+ public IntPtr pCertificatePicData;
+ public byte byCardReaderKind; //һ࣬0-Ч1-IC2-֤3-ά,4-ָͷ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ public byte byIDCardInfoExtend; //pIDCardInfoExtendǷЧ0-Ч1-Ч
+ public IntPtr pIDCardInfoExtend; //byIDCardInfoExtendΪ1ʱʾָһNET_DVR_ID_CARD_INFO_EXTENDṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 172, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_VALID_PERIOD_CFG
+ {
+ public byte byEnable; //ʹЧڣ0-ʹܣ1ʹ
+ public byte byBeginTimeFlag; //Ƿʼʱı־0-ƣ1-
+ public byte byEnableTimeFlag; //Ƿֹʱı־0-ƣ1-
+ public byte byTimeDurationNo; //Ч,0ʼʱͨSDKøƿʱֻҪЧɣԼ
+ public NET_DVR_TIME_EX struBeginTime; //Чʼʱ
+ public NET_DVR_TIME_EX struEndTime; //Чڽʱ
+ public byte byTimeType; //ʱͣ0-豸ʱ䣨Ĭϣ1-UTCʱ䣨struBeginTimestruEndTimeֶЧ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 31, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CARD_CFG_V50
+ {
+ public uint dwSize;
+ public uint dwModifyParamType;
+ // ҪĵĿÿʱЧλʾÿλһֲ1ΪҪģ0Ϊ
+ // #define CARD_PARAM_CARD_VALID 0x00000001 //ǷЧ
+ // #define CARD_PARAM_VALID 0x00000002 //Чڲ
+ // #define CARD_PARAM_CARD_TYPE 0x00000004 //Ͳ
+ // #define CARD_PARAM_DOOR_RIGHT 0x00000008 //Ȩ
+ // #define CARD_PARAM_LEADER_CARD 0x00000010 //
+ // #define CARD_PARAM_SWIPE_NUM 0x00000020 //ˢ
+ // #define CARD_PARAM_GROUP 0x00000040 //Ⱥ
+ // #define CARD_PARAM_PASSWORD 0x00000080 //
+ // #define CARD_PARAM_RIGHT_PLAN 0x00000100 //Ȩƻ
+ // #define CARD_PARAM_SWIPED_NUM 0x00000200 //ˢ
+ // #define CARD_PARAM_EMPLOYEE_NO 0x00000400 //
+ // #define CARD_PARAM_NAME 0x00000800 //
+ // #define CARD_PARAM_DEPARTMENT_NO 0x00001000 //ű
+ // #define CARD_SCHEDULE_PLAN_NO 0x00002000 //Űƻ
+ // #define CARD_SCHEDULE_PLAN_TYPE 0x00004000 //Űƻ
+ // #define CARD_ROOM_NUMBER 0x00008000 //
+ // #define CARD_SIM_NO 0x00010000 //SIMţֻţ
+ // #define CARD_FLOOR_NUMBER 0x00020000 //¥
+ // #define CARD_USER_TYPE 0x00040000 //û
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = ACS_CARD_NO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCardNo; //
+ public byte byCardValid; //ǷЧ0-Ч1-ЧɾʱΪ0ɾȡʱֶʼΪ1
+ public byte byCardType; //ͣ1-ͨ2-м˿3-4-Ѳ5-вȿ6-7-8-9-Ա10-Ӧ11-ӦȨʱȨޣܿţĬͨ
+ public byte byLeaderCard; //ǷΪ1-ǣ0-
+ public byte byUserType; // 0 C ͨû1 - Աû;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOOR_NUM_256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byDoorRight; //Ȩ(¥ȨޡȨ)λʾ1ΪȨޣ0ΪȨޣӵλλʾţ1-NǷȨ
+ public NET_DVR_VALID_PERIOD_CFG struValid; //Чڲ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_GROUP_NUM_128, ArraySubType = UnmanagedType.I1)]
+ public byte[] byBelongGroup; //Ⱥ飬ֽڱʾ1-ڣ0-
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = CARD_PASSWORD_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCardPassword; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOOR_NUM_256*MAX_CARD_RIGHT_PLAN_NUM, ArraySubType = UnmanagedType.U2)]
+ public ushort[] wCardRightPlan; //ȨƻȡֵΪƻģţͬţͬƻģȨķʽ
+ public uint dwMaxSwipeTime; //ˢ0Ϊƣ
+ public uint dwSwipeTime; //ˢ
+ public ushort wRoomNumber; //
+ public ushort wFloorNumber; //
+ public uint dwEmployeeNo; //ţûID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byName; //
+ public ushort wDepartmentNo; //ű
+ public ushort wSchedulePlanNo; //Űƻ
+ public byte bySchedulePlanType; //Űƻͣ0-塢1-ˡ2-
+ public byte byRightType; //·Ȩͣ0-ͨȨޡ1-άȨޡ2-ȨޣӶԽ豸άȨšţţˢЧڲȨޣţөʯAPP˺ţͨȨһ£
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ public uint dwLockID; //ID
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_LOCK_CODE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byLockCode; //
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DOOR_CODE_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRoomCode; //
+ //λʾ0-Ȩޣ1-Ȩ
+ //0λʾ籨
+ //1λʾʾ
+ //2λʾƿͿ
+ //3λʾͨ
+ //4λʾ
+ //5λʾѲ
+ public uint dwCardRight; //Ȩ
+ public uint dwPlanTemplate; //ƻģ(ÿ)ʱǷãλʾ0--ã1-
+ public uint dwCardUserId; //ֿID
+ public byte byCardModelType; //0-գ1- MIFARE S502- MIFARE S703- FM1208 CPU4- FM1216 CPU5-CPU6-֤7- NFC
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 51, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes3;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = NAME_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] bySIMNum; //SIMţֻţ
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CHECK_FACE_PICTURE_COND
+ {
+ public uint dwSize;
+ public uint dwPictureNum; //ͼƬ
+ public byte byCheckTemplate; //0-УͼƬǷϷĬϣ1-УͼƬͽģǷƥ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 127, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LOCAL_GENERAL_CFG
+ {
+ public byte byExceptionCbDirectly; //0-̳ͨ߳쳣ص1-ֱ쳣صϲ
+ public byte byNotSplitRecordFile; //طźԤб浽¼ļƬ 0-ĬƬ1-Ƭ
+ public byte byResumeUpgradeEnable; //ʹܣ0-رգĬϣ1-
+ public byte byAlarmJsonPictureSeparate; //JSONݺͼƬǷ룬0-룬1-루COMM_ISAPI_ALARMصأ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes; //
+ public Int64 i64FileSize; //λByte
+ public uint dwResumeUpgradeTimeout; //ʱʱ䣬λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 236, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1; //Ԥ
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LOCAL_CHECK_DEV
+ {
+ public uint dwCheckOnlineTimeout; //Ѳʱλms СֵΪ30sֵ120sΪ0ʱʾĬֵ(120s)
+ public uint dwCheckOnlineNetFailMax; //ԭʧܵۼӴֵSDKŻصû쳣Ϊ0ʱʾʹĬֵ1
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 256, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARM_ISAPI_INFO
+ {
+ public IntPtr pAlarmData; //
+ public uint dwAlarmDataLen; // ݳ
+ public byte byDataType; // 0-invalid,1-xml,2-json
+ public byte byPicturesNumber; // ͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public IntPtr pPicPackData; // ͼƬ䳤
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ }
+ public const int MAX_FILE_PATH_LEN = 256; //ļ·
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARM_ISAPI_PICDATA
+ {
+ public uint dwPicLen;
+ public byte byPicType; //ͼƬʽ: 1- jpg
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_FILE_PATH_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] szFilename;
+ public IntPtr pPicData;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_EXTERNAL_DEVICE_STATE_UNION
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 512, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_ALARMHOST_EXTERNAL_DEVICE_STATE
+ {
+ public uint dwSize;
+ public byte byDevType; //1-UPS2-صԴ3-ϵͳ4-ʪȴ5-յ6-7-״̬, 8-ˮλ9-ﳾ10-ɼǡ11-ٴ״̬12-ͨչģ״̬13-ˮ״̬14-̫ܿ״̬15-SF6״̬16-״̬17-ɼϵͳ״̬18-ˮʼ״̬19-ȼϵͳ״̬20-״̬
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ public NET_DVR_EXTERNAL_DEVICE_STATE_UNION struDevState;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes2;
+ }
+
+ //豸
+ public const int REGIONTYPE = 0;//
+ public const int MATRIXTYPE = 11;//ڵ
+ public const int DEVICETYPE = 2;//豸
+ public const int CHANNELTYPE = 3;//ͨ
+ public const int USERTYPE = 5;//û
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LOG_MATRIX
+ {
+ public NET_DVR_TIME strLogTime;
+ public uint dwMajorType;
+ public uint dwMinorType;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sPanelUser;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_NAMELEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sNetUser;
+ public NET_DVR_IPADDR struRemoteHostAddr;
+ public uint dwParaType;
+ public uint dwChannel;
+ public uint dwDiskNumber;
+ public uint dwAlarmInPort;
+ public uint dwAlarmOutPort;
+ public uint dwInfoLen;
+ public byte byDevSequence;//λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMacAddr;//MACַ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber;//к
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = LOG_INFO_LEN - SERIALNO_LEN - MACADDR_LEN - 1)]
+ public string sInfo;
+ }
+
+ //Ƶۺƽ̨
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct tagVEDIOPLATLOG
+ {
+ public byte bySearchCondition;//0-λ1-к 2-MACַ
+ public byte byDevSequence;//λţ0-79ӦϵͳIJλţ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = SERIALNO_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] sSerialNumber;//к
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MACADDR_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byMacAddr;//MACַ
+ }
+
+ //ؼ
+ public enum IVS_PARAM_KEY
+ {
+ OBJECT_DETECT_SENSITIVE = 1,//Ŀ
+ BACKGROUND_UPDATE_RATE = 2,//ٶ
+ SCENE_CHANGE_RATIO = 3,//仯Сֵ
+ SUPPRESS_LAMP = 4,//ǷƳͷ
+ MIN_OBJECT_SIZE = 5,//ܼСĿС
+ OBJECT_GENERATE_RATE = 6,//Ŀٶ
+ MISSING_OBJECT_HOLD = 7,//Ŀʧʱ
+ MAX_MISSING_DISTANCE = 8,//Ŀʧپ
+ OBJECT_MERGE_SPEED = 9,//Ŀ꽻ʱĿںٶ
+ REPEATED_MOTION_SUPPRESS = 10,//ظ˶
+ ILLUMINATION_CHANGE = 11,//Ӱ仯ƿ
+ TRACK_OUTPUT_MODE = 12,//켣ģʽ0-Ŀģ1-Ŀĵײ
+ ENTER_CHANGE_HOLD = 13,//仯ֵ
+ RESUME_DEFAULT_PARAM = 255,//ָĬϹؼֲ
+ }
+
+ //궨ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LF_CALIBRATION_PARAM
+ {
+ public byte byPointNum;//Ч궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CALIB_PT, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_CB_POINT[] struCBPoint;//궨
+ }
+
+ //LF˫ýṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LF_CFG
+ {
+ public uint dwSize;//ṹ
+ public byte byEnable;//궨ʹ
+ public byte byFollowChan;// ƵĴͨ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ public NET_DVR_LF_CALIBRATION_PARAM struCalParam;//궨
+ }
+
+ //L/Fֶƽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LF_MANUAL_CTRL_INFO
+ {
+ public NET_VCA_POINT struCtrlPoint;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //L/FĿٽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LF_TRACK_TARGET_INFO
+ {
+ public uint dwTargetID;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_LF_TRACK_MODE
+ {
+ public uint dwSize;//ṹ
+ public byte byTrackMode;//ģʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//0
+ [StructLayoutAttribute(LayoutKind.Explicit)]
+ public struct uModeParam
+ {
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.U4)]
+ [FieldOffsetAttribute(0)]
+ public uint[] dwULen;
+ /*[FieldOffsetAttribute(0)]
+ public NET_DVR_LF_MANUAL_CTRL_INFO struManualCtrl;//ֶٽṹ
+ [FieldOffsetAttribute(0)]
+ public NET_DVR_LF_TRACK_TARGET_INFO struTargetTrack;//Ŀٽṹ
+ * */
+ }
+ }
+
+ // Long config callback type
+ public enum NET_SDK_CALLBACK_TYPE
+ {
+ NET_SDK_CALLBACK_TYPE_STATUS = 0, //ص״ֵ̬
+ NET_SDK_CALLBACK_TYPE_PROGRESS, //صֵ
+ NET_SDK_CALLBACK_TYPE_DATA //ص
+ }
+
+ // Long config status value
+ public enum NET_SDK_CALLBACK_STATUS_NORMAL
+ {
+ NET_SDK_CALLBACK_STATUS_SUCCESS = 1000, //ɹ
+ NET_SDK_CALLBACK_STATUS_PROCESSING, //
+ NET_SDK_CALLBACK_STATUS_FAILED, //ʧ
+ NET_SDK_CALLBACK_STATUS_EXCEPTION, //쳣
+ NET_SDK_CALLBACK_STATUS_LANGUAGE_MISMATCH, //Բƥ
+ NET_SDK_CALLBACK_STATUS_DEV_TYPE_MISMATCH, //豸Ͳƥ
+ NET_DVR_CALLBACK_STATUS_SEND_WAIT //͵ȴ
+ }
+ /********************************ӿڲṹ(end)*********************************/
+
+
+ #region ӿں
+ /********************************SDKӿں*********************************/
+
+ /*********************************************************
+ Function: NET_DVR_Init
+ Desc: ʼSDKSDKǰᡣ
+ Input:
+ Output:
+ Return: TRUEʾɹFALSEʾʧܡ
+ **********************************************************/
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_Init();
+
+ /*********************************************************
+ Function: NET_DVR_Cleanup
+ Desc: ͷSDKԴڽ֮ǰ
+ Input:
+ Output:
+ Return: TRUEʾɹFALSEʾʧ
+ **********************************************************/
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_Cleanup();
+
+
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRMessage(uint nMessage, IntPtr hWnd);
+
+ /*********************************************************
+ Function: EXCEPYIONCALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void EXCEPYIONCALLBACK(uint dwType, int lUserID, int lHandle, IntPtr pUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetExceptionCallBack_V30(uint nMessage, IntPtr hWnd, EXCEPYIONCALLBACK fExceptionCallBack, IntPtr pUser);
+
+
+ /*********************************************************
+ Function: MESSCALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate int MESSCALLBACK(int lCommand, string sDVRIP, string pBuf, uint dwBufLen);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRMessCallBack(MESSCALLBACK fMessCallBack);
+
+ /*********************************************************
+ Function: MESSCALLBACKEX
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate int MESSCALLBACKEX(int iCommand, int iUserID, string pBuf, uint dwBufLen);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRMessCallBack_EX(MESSCALLBACKEX fMessCallBack_EX);
+
+ /*********************************************************
+ Function: MESSCALLBACKNEW
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate int MESSCALLBACKNEW(int lCommand, string sDVRIP, string pBuf, uint dwBufLen, ushort dwLinkDVRPort);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRMessCallBack_NEW(MESSCALLBACKNEW fMessCallBack_NEW);
+
+ /*********************************************************
+ Function: MESSAGECALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate int MESSAGECALLBACK(int lCommand, System.IntPtr sDVRIP, System.IntPtr pBuf, uint dwBufLen, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRMessageCallBack(MESSAGECALLBACK fMessageCallBack, uint dwUser);
+
+
+ /*********************************************************
+ Function: MSGCallBack
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void MSGCallBack(int lCommand, ref NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRMessageCallBack_V30(MSGCallBack fMessageCallBack, IntPtr pUser);
+
+ public delegate bool MSGCallBack_V31(int lCommand, ref NET_DVR_ALARMER pAlarmer, IntPtr pAlarmInfo, uint dwBufLen, IntPtr pUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRMessageCallBack_V31(MSGCallBack_V31 fMessageCallBack, IntPtr pUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetSDKLocalCfg(int enumType, IntPtr lpInBuff);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetSDKLocalCfg(int enumType, IntPtr lpOutBuff);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetConnectTime(uint dwWaitTime, uint dwTryTimes);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetReconnect(uint dwInterval, int bEnableRecon);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetLocalIP(byte[] strIP, ref uint pValidNum, ref Boolean pEnableBind);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetValidIP(uint dwIPIndex, Boolean bEnableBind);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern uint NET_DVR_GetSDKVersion();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern uint NET_DVR_GetSDKBuildVersion();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern Int32 NET_DVR_IsSupport();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StartListen(string sLocalIP, ushort wLocalPort);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopListen();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_StartListen_V30(String sLocalIP, ushort wLocalPort, MSGCallBack DataCallback, IntPtr pUserData);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopListen_V30(Int32 lListenHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern Int32 NET_DVR_Login(string sDVRIP, ushort wDVRPort, string sUserName, string sPassword, ref NET_DVR_DEVICEINFO lpDeviceInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_Logout(int iUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern uint NET_DVR_GetLastError();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern IntPtr NET_DVR_GetErrorMsg(ref int pErrorNo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetShowMode(uint dwShowType, uint colorKey);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDVRIPByResolveSvr(string sServerIP, ushort wServerPort, string sDVRName, ushort wDVRNameLen, string sDVRSerialNumber, ushort wDVRSerialLen, IntPtr pGetIP);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDVRIPByResolveSvr_EX(string sServerIP, ushort wServerPort, byte[] sDVRName, ushort wDVRNameLen, byte[] sDVRSerialNumber, ushort wDVRSerialLen, byte[] sGetIP, ref uint dwPort);
+ //Ԥؽӿ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern Int32 NET_DVR_RealPlay(int iUserID, ref NET_DVR_CLIENTINFO lpClientInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern Int32 NET_SDK_RealPlay(int iUserLogID, ref NET_DVR_CLIENTINFO lpDVRClientInfo);
+ /*********************************************************
+ Function: REALDATACALLBACK
+ Desc: Ԥص
+ Input: lRealHandle ǰԤ
+ dwDataType
+ pBuffer ݵĻָ
+ dwBufSize С
+ pUser û
+ Output:
+ Return: void
+ **********************************************************/
+ public delegate void REALDATACALLBACK(Int32 lRealHandle, UInt32 dwDataType, IntPtr pBuffer, UInt32 dwBufSize, IntPtr pUser);
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+
+ /*********************************************************
+ Function: NET_DVR_RealPlay_V30
+ Desc: ʵʱԤ
+ Input: lUserID [in] NET_DVR_Login()NET_DVR_Login_V30()ķֵ
+ lpClientInfo [in] Ԥ
+ cbRealDataCallBack [in] ݻص
+ pUser [in] û
+ bBlocked [in] Ƿ01
+ Output:
+ Return: 1ʾʧܣֵΪNET_DVR_StopRealPlayȺľ
+ **********************************************************/
+ public static extern int NET_DVR_RealPlay_V30(int iUserID, ref NET_DVR_CLIENTINFO lpClientInfo, REALDATACALLBACK fRealDataCallBack_V30, IntPtr pUser, UInt32 bBlocked);
+
+ /*********************************************************
+ Function: NET_DVR_RealPlay_V40
+ Desc: ʵʱԤչӿڡ
+ Input: lUserID [in] NET_DVR_Login()NET_DVR_Login_V30()ķֵ
+ lpPreviewInfo [in] Ԥ
+ fRealDataCallBack_V30 [in] ݻص
+ pUser [in] û
+ Output:
+ Return: 1ʾʧܣֵΪNET_DVR_StopRealPlayȺľ
+ **********************************************************/
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_RealPlay_V40(int iUserID, ref NET_DVR_PREVIEWINFO lpPreviewInfo, REALDATACALLBACK fRealDataCallBack_V30, IntPtr pUser);
+
+ // [DllImport(@"..\bin\HCNetSDK.dll")]
+ // public static extern int NET_DVR_GetRealPlayerIndex(int lRealHandle);
+ /*********************************************************
+ Function: NET_DVR_StopRealPlay
+ Desc: ֹͣԤ
+ Input: lRealHandle [in] ԤNET_DVR_RealPlayNET_DVR_RealPlay_V30ķֵ
+ Output:
+ Return:
+ **********************************************************/
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopRealPlay(int iRealHandle);
+
+ /*********************************************************
+ Function: DRAWFUN
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void DRAWFUN(int lRealHandle, IntPtr hDc, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_RigisterDrawFun(int lRealHandle, DRAWFUN fDrawFun, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetPlayerBufNumber(Int32 lRealHandle, uint dwBufNum);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ThrowBFrame(Int32 lRealHandle, uint dwNum);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetAudioMode(uint dwMode);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_OpenSound(Int32 lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CloseSound();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_OpenSoundShare(Int32 lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CloseSoundShare(Int32 lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_Volume(Int32 lRealHandle, ushort wVolume);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SaveRealData(Int32 lRealHandle, string sFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopSaveRealData(Int32 lRealHandle);
+
+ /*********************************************************
+ Function: REALDATACALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void SETREALDATACALLBACK(int lRealHandle, uint dwDataType, IntPtr pBuffer, uint dwBufSize, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetRealDataCallBack(int lRealHandle, SETREALDATACALLBACK fRealDataCallBack, uint dwUser);
+
+ /*********************************************************
+ Function: STDDATACALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void STDDATACALLBACK(int lRealHandle, uint dwDataType, ref byte pBuffer, uint dwBufSize, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetStandardDataCallBack(int lRealHandle, STDDATACALLBACK fStdDataCallBack, uint dwUser);
+
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CapturePicture(Int32 lRealHandle, string sPicFileName);
+
+ //̬I֡
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MakeKeyFrame(Int32 lUserID, Int32 lChannel);//
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MakeKeyFrameSub(Int32 lUserID, Int32 lChannel);//
+
+ //̨ؽӿ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetPTZCtrl(Int32 lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetPTZCtrl_Other(Int32 lUserID, int lChannel);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZControl(Int32 lRealHandle, uint dwPTZCommand, uint dwStop);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZControl_Other(Int32 lUserID, Int32 lChannel, uint dwPTZCommand, uint dwStop);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_TransPTZ(Int32 lRealHandle, string pPTZCodeBuf, uint dwBufSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_TransPTZ_Other(int lUserID, int lChannel, string pPTZCodeBuf, uint dwBufSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZPreset(int lRealHandle, uint dwPTZPresetCmd, uint dwPresetIndex);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZPreset_Other(int lUserID, int lChannel, uint dwPTZPresetCmd, uint dwPresetIndex);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_TransPTZ_EX(int lRealHandle, string pPTZCodeBuf, uint dwBufSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZControl_EX(int lRealHandle, uint dwPTZCommand, uint dwStop);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZPreset_EX(int lRealHandle, uint dwPTZPresetCmd, uint dwPresetIndex);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZCruise(int lRealHandle, uint dwPTZCruiseCmd, byte byCruiseRoute, byte byCruisePoint, ushort wInput);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZCruise_Other(int lUserID, int lChannel, uint dwPTZCruiseCmd, byte byCruiseRoute, byte byCruisePoint, ushort wInput);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZCruise_EX(int lRealHandle, uint dwPTZCruiseCmd, byte byCruiseRoute, byte byCruisePoint, ushort wInput);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZTrack(int lRealHandle, uint dwPTZTrackCmd);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZTrack_Other(int lUserID, int lChannel, uint dwPTZTrackCmd);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZTrack_EX(int lRealHandle, uint dwPTZTrackCmd);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZControlWithSpeed(int lRealHandle, uint dwPTZCommand, uint dwStop, uint dwSpeed);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZControlWithSpeed_Other(int lUserID, int lChannel, uint dwPTZCommand, uint dwStop, uint dwSpeed);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZControlWithSpeed_EX(int lRealHandle, uint dwPTZCommand, uint dwStop, uint dwSpeed);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetPTZCruise(int lUserID, int lChannel, int lCruiseRoute, ref NET_DVR_CRUISE_RET lpCruiseRet);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZMltTrack(int lRealHandle, uint dwPTZTrackCmd, uint dwTrackIndex);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZMltTrack_Other(int lUserID, int lChannel, uint dwPTZTrackCmd, uint dwTrackIndex);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZMltTrack_EX(int lRealHandle, uint dwPTZTrackCmd, uint dwTrackIndex);
+
+ //ļط
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindFile(int lUserID, int lChannel, uint dwFileType, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextFile(int lFindHandle, ref NET_DVR_FIND_DATA lpFindData);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_FindClose(int lFindHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextFile_V30(int lFindHandle, ref NET_DVR_FINDDATA_V30 lpFindData);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextFile_V40(int lFindHandle, ref NET_DVR_FINDDATA_V40 lpFindData);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindFile_V30(int lUserID, ref NET_DVR_FILECOND pFindCond);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindFile_V40(int lUserID, ref NET_DVR_FILECOND_V40 pFindCond);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindFileByEvent_V40(int lUserID, ref NET_DVR_SEARCH_EVENT_PARAM_V40 lpSearchEventParam);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextEvent_V40(int lSearchHandle, ref NET_DVR_SEARCH_EVENT_RET_V40 lpSearchEventRet);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_FindClose_V30(int lFindHandle);
+
+ //2007-04-16Ӳѯŵļ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextFile_Card(int lFindHandle, ref NET_DVR_FINDDATA_CARD lpFindData);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindFile_Card(int lUserID, int lChannel, uint dwFileType, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_LockFileByName(int lUserID, string sLockFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_UnlockFileByName(int lUserID, string sUnlockFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_PlayBackByName(int lUserID, string sPlayBackFileName, IntPtr hWnd);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_PlayBackByTime(int lUserID, int lChannel, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime, System.IntPtr hWnd);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_PlayBackByTime_V40(int lUserID, ref NET_DVR_VOD_PARA pVodPara);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PlayBackControl(int lPlayHandle, uint dwControlCode, uint dwInValue, ref uint LPOutValue);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PlayBackControl_V40(int lPlayHandle, uint dwControlCode, IntPtr lpInBuffer, uint dwInValue, IntPtr lpOutBuffer, ref uint LPOutValue);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopPlayBack(int lPlayHandle);
+
+ /*********************************************************
+ Function: PLAYDATACALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void PLAYDATACALLBACK(int lPlayHandle, uint dwDataType, IntPtr pBuffer, uint dwBufSize, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetPlayDataCallBack(int lPlayHandle, PLAYDATACALLBACK fPlayDataCallBack, uint dwUser);
+
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PlayBackSaveData(int lPlayHandle, string sFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopPlayBackSave(int lPlayHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetPlayBackOsdTime(int lPlayHandle, ref NET_DVR_TIME lpOsdTime);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PlayBackCaptureFile(int lPlayHandle, string sFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetFileByName(int lUserID, string sDVRFileName, string sSavedFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetFileByTime(int lUserID, int lChannel, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime, string sSavedFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetFileByTime_V40(int lUserID, string sSavedFileName, ref NET_DVR_PLAYCOND pDownloadCond);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopGetFile(int lFileHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetDownloadPos(int lFileHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetPlayBackPos(int lPlayHandle);
+
+ //
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_Upgrade(int lUserID, string sFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetUpgradeState(int lUpgradeHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetUpgradeProgress(int lUpgradeHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CloseUpgradeHandle(int lUpgradeHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetNetworkEnvironment(uint dwEnvironmentLevel);
+
+ //Զ̸ʽӲ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FormatDisk(int lUserID, int lDiskNumber);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetFormatProgress(int lFormatHandle, ref int pCurrentFormatDisk, ref int pCurrentDiskPos, ref int pFormatStatic);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CloseFormatHandle(int lFormatHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetIPCProtoList(int lUserID, ref NET_DVR_IPC_PROTO_LIST lpProtoList);
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetIPCProtoList_V41(int lUserID, ref NET_DVR_IPC_PROTO_LIST_V41 lpProtoList);
+
+ //
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_SetupAlarmChan(int lUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CloseAlarmChan(int lAlarmHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_SetupAlarmChan_V30(int lUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_SetupAlarmChan_V41(int lUserID, ref NET_DVR_SETUPALARM_PARAM lpSetupParam);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CloseAlarmChan_V30(int lAlarmHandle);
+
+ //Խ
+ /*********************************************************
+ Function: VOICEDATACALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void VOICEDATACALLBACK(int lVoiceComHandle, string pRecvDataBuffer, uint dwBufSize, byte byAudioFlag, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_StartVoiceCom(int lUserID, VOICEDATACALLBACK fVoiceDataCallBack, uint dwUser);
+
+ /*********************************************************
+ Function: VOICEDATACALLBACKV30
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void VOICEDATACALLBACKV30(int lVoiceComHandle, IntPtr pRecvDataBuffer, uint dwBufSize, byte byAudioFlag, System.IntPtr pUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_StartVoiceCom_V30(int lUserID, uint dwVoiceChan, bool bNeedCBNoEncData, VOICEDATACALLBACKV30 fVoiceDataCallBack, IntPtr pUser);
+
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetVoiceComClientVolume(int lVoiceComHandle, ushort wVolume);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopVoiceCom(int lVoiceComHandle);
+
+ //ת
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_StartVoiceCom_MR(int lUserID, VOICEDATACALLBACK fVoiceDataCallBack, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_StartVoiceCom_MR_V30(int lUserID, uint dwVoiceChan, VOICEDATACALLBACKV30 fVoiceDataCallBack, IntPtr pUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_VoiceComSendData(int lVoiceComHandle, string pSendBuf, uint dwBufSize);
+
+ //㲥
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClientAudioStart();
+
+ /*********************************************************
+ Function: VOICEAUDIOSTART
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void VOICEAUDIOSTART(string pRecvDataBuffer, uint dwBufSize, IntPtr pUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClientAudioStart_V30(VOICEAUDIOSTART fVoiceAudioStart, IntPtr pUser);
+
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClientAudioStop();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_AddDVR(int lUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_AddDVR_V30(int lUserID, uint dwVoiceChan);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_DelDVR(int lUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_DelDVR_V30(int lVoiceHandle);
+
+
+ //ͨ
+ /*********************************************************
+ Function: SERIALDATACALLBACK
+ Desc: (ص)
+ Input:
+ Output:
+ Return:
+ **********************************************************/
+ public delegate void SERIALDATACALLBACK(int lSerialHandle, string pRecvDataBuffer, uint dwBufSize, uint dwUser);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SerialStart(int lUserID, int lSerialPort, SERIALDATACALLBACK fSerialDataCallBack, uint dwUser);
+
+ //485ΪͨʱҪָͨţΪͬͨ485ÿԲͬ(粨)
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SerialSend(int lSerialHandle, int lChannel, string pSendBuf, uint dwBufSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SerialStop(int lSerialHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SendTo232Port(int lUserID, string pSendBuf, uint dwBufSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SendToSerialPort(int lUserID, uint dwSerialPort, uint dwSerialIndex, string pSendBuf, uint dwBufSize);
+
+ // nBitrate = 16000
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern System.IntPtr NET_DVR_InitG722Decoder(int nBitrate);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern void NET_DVR_ReleaseG722Decoder(IntPtr pDecHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_DecodeG722Frame(IntPtr pDecHandle, ref byte pInBuffer, ref byte pOutBuffer);
+
+ //
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern IntPtr NET_DVR_InitG722Encoder();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_EncodeG722Frame(IntPtr pEncodeHandle, ref byte pInBuffer, ref byte pOutBuffer);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern void NET_DVR_ReleaseG722Encoder(IntPtr pEncodeHandle);
+
+ //Զ̿Ʊʾ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClickKey(int lUserID, int lKeyIndex);
+
+ //Զ̿豸ֶ¼
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StartDVRRecord(int lUserID, int lChannel, int lRecordType);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopDVRRecord(int lUserID, int lChannel);
+
+ //뿨
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_InitDevice_Card(ref int pDeviceTotalChan);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ReleaseDevice_Card();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_InitDDraw_Card(IntPtr hParent, uint colorKey);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ReleaseDDraw_Card();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_RealPlay_Card(int lUserID, ref NET_DVR_CARDINFO lpCardInfo, int lChannelNum);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ResetPara_Card(int lRealHandle, ref NET_DVR_DISPLAY_PARA lpDisplayPara);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_RefreshSurface_Card();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClearSurface_Card();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_RestoreSurface_Card();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_OpenSound_Card(int lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CloseSound_Card(int lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetVolume_Card(int lRealHandle, ushort wVolume);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_AudioPreview_Card(int lRealHandle, int bEnable);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetCardLastError_Card();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern System.IntPtr NET_DVR_GetChanHandle_Card(int lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CapturePicture_Card(int lRealHandle, string sPicFileName);
+
+ //ȡ뿨кŴ˽ӿЧGetBoardDetailӿڻ(2005-12-08֧)
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetSerialNum_Card(int lChannelNum, ref uint pDeviceSerialNo);
+
+ //־
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindDVRLog(int lUserID, int lSelectMode, uint dwMajorType, uint dwMinorType, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextLog(int lLogHandle, ref NET_DVR_LOG lpLogData);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_FindLogClose(int lLogHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindDVRLog_V30(int lUserID, int lSelectMode, uint dwMajorType, uint dwMinorType, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime, bool bOnlySmart);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextLog_V30(int lLogHandle, ref NET_DVR_LOG_V30 lpLogData);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_FindLogClose_V30(int lLogHandle);
+
+ //ֹ200485,113ӿ
+ //ATM DVR
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindFileByCard(int lUserID, int lChannel, uint dwFileType, int nFindType, ref byte sCardNumber, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime);
+
+
+ //2005-09-15
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CaptureJPEGPicture(int lUserID, int lChannel, ref NET_DVR_JPEGPARA lpJpegPara, string sPicFileName);
+
+ //JPEGץͼڴ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_CaptureJPEGPicture_NEW(int lUserID, int lChannel, ref NET_DVR_JPEGPARA lpJpegPara, byte[] sJpegPicBuffer, uint dwPicSize, ref uint lpSizeReturned);
+
+ //2006-02-16
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetRealPlayerIndex(int lRealHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetPlayBackPlayerIndex(int lPlayHandle);
+
+ //2006-08-28 704-640
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetScaleCFG(int lUserID, uint dwScale);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetScaleCFG(int lUserID, ref uint lpOutScale);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetScaleCFG_V30(int lUserID, ref NET_DVR_SCALECFG pScalecfg);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetScaleCFG_V30(int lUserID, ref NET_DVR_SCALECFG pScalecfg);
+
+ //2006-08-28 ATM˿
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetATMPortCFG(int lUserID, ushort wATMPort);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetATMPortCFG(int lUserID, ref ushort LPOutATMPort);
+
+ //2006-11-10 ֧Կ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_InitDDrawDevice();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ReleaseDDrawDevice();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_GetDDrawDeviceTotalNums();
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDDrawDevice(int lPlayPort, uint nDeviceNum);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZSelZoomIn(int lRealHandle, ref NET_DVR_POINT_FRAME pStruPointFrame);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_PTZSelZoomIn_EX(int lUserID, int lChannel, ref NET_DVR_POINT_FRAME pStruPointFrame);
+
+ //豸DS-6001D/DS-6001F
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StartDecode(int lUserID, int lChannel, ref NET_DVR_DECODERINFO lpDecoderinfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopDecode(int lUserID, int lChannel);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDecoderState(int lUserID, int lChannel, ref NET_DVR_DECODERSTATE lpDecoderState);
+
+ //2005-08-01
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDecInfo(int lUserID, int lChannel, ref NET_DVR_DECCFG lpDecoderinfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDecInfo(int lUserID, int lChannel, ref NET_DVR_DECCFG lpDecoderinfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDecTransPort(int lUserID, ref NET_DVR_PORTCFG lpTransPort);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDecTransPort(int lUserID, ref NET_DVR_PORTCFG lpTransPort);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_DecPlayBackCtrl(int lUserID, int lChannel, uint dwControlCode, uint dwInValue, ref uint LPOutValue, ref NET_DVR_PLAYREMOTEFILE lpRemoteFileInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StartDecSpecialCon(int lUserID, int lChannel, ref NET_DVR_DECCHANINFO lpDecChanInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopDecSpecialCon(int lUserID, int lChannel, ref NET_DVR_DECCHANINFO lpDecChanInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_DecCtrlDec(int lUserID, int lChannel, uint dwControlCode);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_DecCtrlScreen(int lUserID, int lChannel, uint dwControl);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDecCurLinkStatus(int lUserID, int lChannel, ref NET_DVR_DECSTATUS lpDecStatus);
+
+ //·
+ //2007-11-30 V211֧½ӿ //11
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixStartDynamic(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_DYNAMIC_DEC lpDynamicInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixStopDynamic(int lUserID, uint dwDecChanNum);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetDecChanInfo(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_DEC_CHAN_INFO lpInter);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetLoopDecChanInfo(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_LOOP_DECINFO lpInter);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetLoopDecChanInfo(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_LOOP_DECINFO lpInter);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetLoopDecChanEnable(int lUserID, uint dwDecChanNum, uint dwEnable);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetLoopDecChanEnable(int lUserID, uint dwDecChanNum, ref uint lpdwEnable);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetLoopDecEnable(int lUserID, ref uint lpdwEnable);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetDecChanEnable(int lUserID, uint dwDecChanNum, uint dwEnable);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetDecChanEnable(int lUserID, uint dwDecChanNum, ref uint lpdwEnable);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetDecChanStatus(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_DEC_CHAN_STATUS lpInter);
+
+ //2007-12-22 ֽ֧ӿ //18
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetTranInfo(int lUserID, ref NET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetTranInfo(int lUserID, ref NET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetRemotePlay(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_DEC_REMOTE_PLAY lpInter);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetRemotePlayControl(int lUserID, uint dwDecChanNum, uint dwControlCode, uint dwInValue, ref uint LPOutValue);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetRemotePlayStatus(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS lpOuter);
+
+ //2009-4-13
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixStartDynamic_V30(int lUserID, uint dwDecChanNum, ref NET_DVR_PU_STREAM_CFG lpDynamicInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetLoopDecChanInfo_V30(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_LOOP_DECINFO_V30 lpInter);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetLoopDecChanInfo_V30(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_LOOP_DECINFO_V30 lpInter);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetDecChanInfo_V30(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_DEC_CHAN_INFO_V30 lpInter);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetTranInfo_V30(int lUserID, ref NET_DVR_MATRIX_TRAN_CHAN_CONFIG_V30 lpTranInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetTranInfo_V30(int lUserID, ref NET_DVR_MATRIX_TRAN_CHAN_CONFIG_V30 lpTranInfo);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetDisplayCfg(int lUserID, uint dwDispChanNum, ref NET_DVR_VGA_DISP_CHAN_CFG lpDisplayCfg);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetDisplayCfg(int lUserID, uint dwDispChanNum, ref NET_DVR_VGA_DISP_CHAN_CFG lpDisplayCfg);
+
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_MatrixStartPassiveDecode(int lUserID, uint dwDecChanNum, ref NET_DVR_MATRIX_PASSIVEMODE lpPassiveMode);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSendData(int lPassiveHandle, System.IntPtr pSendBuf, uint dwBufSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixStopPassiveDecode(int lPassiveHandle);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_UploadLogo(int lUserID, uint dwDispChanNum, ref NET_DVR_DISP_LOGOCFG lpDispLogoCfg, System.IntPtr sLogoBuffer);
+
+ public const int NET_DVR_SHOWLOGO = 1;/*ʾLOGO*/
+ public const int NET_DVR_HIDELOGO = 2;/*LOGO*/
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_LogoSwitch(int lUserID, uint dwDecChan, uint dwLogoSwitch);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetDeviceStatus(int lUserID, ref NET_DVR_DECODER_WORK_STATUS lpDecoderCfg);
+
+ /*ʾͨ붨*/
+ //Ϻ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_RigisterPlayBackDrawFun(int lRealHandle, DRAWFUN fDrawFun, uint dwUser);
+
+
+ public const int DISP_CMD_ENLARGE_WINDOW = 1; /*ʾͨŴij*/
+ public const int DISP_CMD_RENEW_WINDOW = 2; /*ʾͨڻԭ*/
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixDiaplayControl(int lUserID, uint dwDispChanNum, uint dwDispChanCmd, uint dwCmdParam);
+
+ //end
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_RefreshPlay(int lPlayHandle);
+
+ //ָĬֵ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_RestoreConfig(int lUserID);
+
+ //
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SaveConfig(int lUserID);
+
+ //
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_RebootDVR(int lUserID);
+
+ //رDVR
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ShutDownDVR(int lUserID);
+
+ // begin
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDVRConfig(int lUserID, uint dwCommand, int lChannel, IntPtr lpOutBuffer, uint dwOutBufferSize, ref uint lpBytesReturned);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDVRConfig(int lUserID, uint dwCommand, int lChannel, System.IntPtr lpInBuffer, uint dwInBufferSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDVRWorkState_V30(int lUserID, IntPtr pWorkState);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDVRWorkState(int lUserID, ref NET_DVR_WORKSTATE lpWorkState);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetVideoEffect(int lUserID, int lChannel, uint dwBrightValue, uint dwContrastValue, uint dwSaturationValue, uint dwHueValue);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetVideoEffect(int lUserID, int lChannel, ref uint pBrightValue, ref uint pContrastValue, ref uint pSaturationValue, ref uint pHueValue);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClientGetframeformat(int lUserID, ref NET_DVR_FRAMEFORMAT lpFrameFormat);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClientSetframeformat(int lUserID, ref NET_DVR_FRAMEFORMAT lpFrameFormat);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetAtmProtocol(int lUserID, ref NET_DVR_ATM_PROTOCOL lpAtmProtocol);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetAlarmOut_V30(int lUserID, IntPtr lpAlarmOutState);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetAlarmOut(int lUserID, ref NET_DVR_ALARMOUTSTATUS lpAlarmOutState);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetAlarmOut(int lUserID, int lAlarmOutPort, int lAlarmOutStatic);
+
+ //ȡUPNP˿ӳ״̬
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetUpnpNatState(int lUserID, ref NET_DVR_UPNP_NAT_STATE lpState);
+
+ //Ƶ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClientSetVideoEffect(int lRealHandle, uint dwBrightValue, uint dwContrastValue, uint dwSaturationValue, uint dwHueValue);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_ClientGetVideoEffect(int lRealHandle, ref uint pBrightValue, ref uint pContrastValue, ref uint pSaturationValue, ref uint pHueValue);
+
+ //ļ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetConfigFile(int lUserID, string sFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetConfigFile(int lUserID, string sFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetConfigFile_V30(int lUserID, string sOutBuffer, uint dwOutSize, ref uint pReturnSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetConfigFile_EX(int lUserID, string sOutBuffer, uint dwOutSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetConfigFile_EX(int lUserID, string sInBuffer, uint dwInSize);
+
+ //־ļдӿ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetLogToFile(int bLogEnable, string strLogDir, bool bAutoDel);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetSDKState(ref NET_DVR_SDKSTATE pSDKState);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetSDKAbility(ref NET_DVR_SDKABL pSDKAbl);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetPTZProtocol(int lUserID, ref NET_DVR_PTZCFG pPtzcfg);
+
+ //ǰ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_LockPanel(int lUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_UnLockPanel(int lUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetRtspConfig(int lUserID, uint dwCommand, ref NET_DVR_RTSPCFG lpInBuffer, uint dwInBufferSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetRtspConfig(int lUserID, uint dwCommand, ref NET_DVR_RTSPCFG lpOutBuffer, uint dwOutBufferSize);
+
+ //Ƶۺƽ̨
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixGetSceneCfg(int lUserID, uint dwSceneNum, ref NET_DVR_MATRIX_SCENECFG lpSceneCfg);
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_MatrixSetSceneCfg(int lUserID, uint dwSceneNum, ref NET_DVR_MATRIX_SCENECFG lpSceneCfg);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetRealHeight(int lUserID, int lChannel, ref NET_VCA_LINE lpLine, ref Single lpHeight);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetRealLength(int lUserID, int lChannel, ref NET_VCA_LINE lpLine, ref Single lpLength);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SaveRealData_V30(int lRealHandle, uint dwTransType, string sFileName);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_EncodeG711Frame(uint iType, ref byte pInBuffer, ref byte pOutBuffer);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_DecodeG711Frame(uint iType, ref byte pInBuffer, ref byte pOutBuffer);
+
+ //2009-7-22 end
+
+ //ʼ 9000_1.1
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_EmailTest(int lUserID);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindFileByEvent(int lUserID, ref NET_DVR_SEARCH_EVENT_PARAM lpSearchEventParam);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextEvent(int lSearchHandle, ref NET_DVR_SEARCH_EVENT_RET lpSearchEventRet);
+
+ /*********************************************************
+ Function: NET_DVR_Login_V30
+ Desc:
+ Input: sDVRIP [in] 豸IPַ
+ wServerPort [in] 豸˿ں
+ sUserName [in] ¼û
+ sPassword [in] û
+ Output: lpDeviceInfo [out] 豸Ϣ
+ Return: -1ʾʧܣֵʾصûIDֵ
+ **********************************************************/
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern Int32 NET_DVR_Login_V30(string sDVRIP, Int32 wDVRPort, string sUserName, string sPassword, ref NET_DVR_DEVICEINFO_V30 lpDeviceInfo);
+
+ [DllImport(@"HCNetSDK.dll")]
+ public static extern int NET_DVR_Login_V40(ref NET_DVR_USER_LOGIN_INFO pLoginInfo, ref NET_DVR_DEVICEINFO_V40 lpDeviceInfo);
+ /*********************************************************
+ Function: NET_DVR_Logout_V30
+ Desc: ûע豸
+ Input: lUserID [in] ûID
+ Output:
+ Return: TRUEʾɹFALSEʾʧ
+ **********************************************************/
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_Logout_V30(Int32 lUserID);
+
+ [DllImportAttribute(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindNextLog_MATRIX(int iLogHandle, ref NET_DVR_LOG_MATRIX lpLogData);
+
+
+ [DllImportAttribute(@"..\bin\HCNetSDK.dll")]
+ public static extern int NET_DVR_FindDVRLog_Matrix(int iUserID, int lSelectMode, uint dwMajorType, uint dwMinorType, ref tagVEDIOPLATLOG lpVedioPlatLog, ref NET_DVR_TIME lpStartTime, ref NET_DVR_TIME lpStopTime);
+
+ [DllImportAttribute(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_STDXMLConfig(int iUserID, ref NET_DVR_XML_CONFIG_INPUT lpInputParam, ref NET_DVR_XML_CONFIG_OUTPUT lpOutputParam);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDeviceConfig(int lUserID, uint dwCommand, uint dwCount, IntPtr lpInBuffer, uint dwInBufferSize, IntPtr lpStatusList, IntPtr lpOutBuffer, uint dwOutBufferSize);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetDeviceConfig(int lUserID, uint dwCommand, uint dwCount, IntPtr lpInBuffer, uint dwInBufferSize, IntPtr lpStatusList, IntPtr lpInParamBuffer, uint dwInParamBufferSize);
+
+ [DllImportAttribute(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetSTDConfig(int iUserID, uint dwCommand, ref NET_DVR_STD_CONFIG lpConfigParam);
+
+ [DllImportAttribute(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetSTDConfig(int iUserID, uint dwCommand, ref NET_DVR_STD_CONFIG lpConfigParam);
+
+ public delegate void RemoteConfigCallback(uint dwType, IntPtr lpBuffer, uint dwBufLen, IntPtr pUserData);
+
+ [DllImportAttribute(@"HCNetSDK.dll")]
+ public static extern int NET_DVR_StartRemoteConfig(int lUserID, int dwCommand, IntPtr lpInBuffer, Int32 dwInBufferLen, RemoteConfigCallback cbStateCallback, IntPtr pUserData);
+
+ [DllImportAttribute(@"HCNetSDK.dll")]
+ public static extern bool NET_DVR_SendRemoteConfig(int lHandle, int dwDataType, IntPtr pSendBuf, int dwBufSize);
+
+ [DllImportAttribute(@"HCNetSDK.dll")]
+ public static extern bool NET_DVR_StopRemoteConfig(int lHandle);
+
+ /*********************************************************
+ Function: NET_DVR_GetDeviceAbility
+ Desc:
+ Input:
+ Output:
+ Return: TRUEʾɹFALSEʾʧܡ
+ **********************************************************/
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetDeviceAbility(int lUserID, uint dwAbilityType, IntPtr pInBuf, uint dwInLength, IntPtr pOutBuf, uint dwOutLength);
+
+ ///ȡؼ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetBehaviorParamKey(int lUserID, int lChannel, uint dwParameterKey, int nValue);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetBehaviorParamKey(int lUserID, int lChannel, uint dwParameterKey, ref int pValue);
+
+ //ȡ/ΪĿӽӿ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetVCADrawMode(int lUserID, int lChannel, ref NET_VCA_DRAW_MODE lpDrawMode);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetVCADrawMode(int lUserID, int lChannel, ref NET_VCA_DRAW_MODE lpDrawMode);
+
+ //˫ģʽýӿ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetLFTrackMode(int lUserID, int lChannel, ref NET_DVR_LF_TRACK_MODE lpTrackMode);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetLFTrackMode(int lUserID, int lChannel, ref NET_DVR_LF_TRACK_MODE lpTrackMode);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetCCDCfg(int lUserID, int lChannel, ref NET_DVR_CCD_CFG lpCCDCfg);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_SetCCDCfg(int lUserID, int lChannel, ref NET_DVR_CCD_CFG lpCCDCfg);
+
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_DVR_GetParamSetMode(int lUserID, ref uint dwParamSetMode);
+
+ #endregion
+
+ #region Ϣ¼
+ [DllImport("User32.dll", EntryPoint = "PostMessage")]
+ public static extern int PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
+ #endregion
+
+
+ //ʶ
+ public enum VCA_RECOGNIZE_SCENE
+ {
+ VCA_LOW_SPEED_SCENE = 0,//ͨշվСſڡͣ
+ VCA_HIGH_SPEED_SCENE = 1,//ͨڡٹ·ƶ)
+ VCA_MOBILE_CAMERA_SCENE = 2,//ƶӦã
+ }
+
+ //ʶ־
+ public enum VCA_RECOGNIZE_RESULT
+ {
+ VCA_RECOGNIZE_FAILURE = 0,//ʶʧ
+ VCA_IMAGE_RECOGNIZE_SUCCESS,//ͼʶɹ
+ VCA_VIDEO_RECOGNIZE_SUCCESS_OF_BEST_LICENSE,//ƵʶŽ
+ VCA_VIDEO_RECOGNIZE_SUCCESS_OF_NEW_LICENSE,//Ƶʶµij
+ VCA_VIDEO_RECOGNIZE_FINISH_OF_CUR_LICENSE,//Ƶʶƽ
+ }
+
+
+ //Ƶʶ
+ public enum VCA_TRIGGER_TYPE
+ {
+ INTER_TRIGGER = 0,// ģڲʶ
+ EXTER_TRIGGER = 1,// ⲿźŴȦ״ֶźţ
+ }
+
+ public const int MAX_CHINESE_CHAR_NUM = 64; //
+ //ƿɶ̬IJ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_PLATE_PARAM
+ {
+ public NET_VCA_RECT struSearchRect;//(һ)
+ public NET_VCA_RECT struInvalidateRect;//Чڲ (һ)
+ public ushort wMinPlateWidth;//С
+ public ushort wTriggerDuration;//֡
+ public byte byTriggerType;//ģʽ, VCA_TRIGGER_TYPE
+ public byte bySensitivity;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//0
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
+ public byte[] byCharPriority;// ȼ
+ }
+
+ /*wMinPlateWidth:òĬΪ80أòöڳƺӳʶ˵ĵ
+ ʶӰ죬ùôгСƾͻ©ʶгƿձϴѸòԴڼٶٳƵĴڱ½Ϊ80 ڸ½Ϊ120
+ wTriggerDuration ⲿźų֡京ǴӴźſʼʶֵ֡ڵٳΪ50100ٳΪ1525ƶʶʱҲⲿΪ1525Ըֳ
+ */
+ //ʶӽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_PLATEINFO
+ {
+ public VCA_RECOGNIZE_SCENE eRecogniseScene;//ʶ(ٺ)
+ public NET_VCA_PLATE_PARAM struModifyParam;//ƿɶ̬IJ
+ }
+
+ //ʶò
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_PLATECFG
+ {
+ public uint dwSize;
+ public byte byPicProType;//ʱͼƬʽ 0- 1-ϴ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;//Ϊ0
+ public NET_DVR_JPEGPARA struPictureParam;//ͼƬṹ
+ public NET_VCA_PLATEINFO struPlateInfo;//Ϣ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT_2, ArraySubType = UnmanagedType.Struct)]
+ public NET_DVR_SCHEDTIME[] struAlarmTime;//ʱ
+ public NET_DVR_HANDLEEXCEPTION_V30 struHandleType;//ʽ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_CHANNUM_V30, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRelRecordChan;//¼ͨ,Ϊ1ʾͨ
+ }
+
+ //ʶӽṹ
+ [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public struct NET_VCA_PLATE_INFO
+ {
+ public VCA_RECOGNIZE_RESULT eResultFlag;//ʶ־
+ public VCA_PLATE_TYPE ePlateType;//
+ public VCA_PLATE_COLOR ePlateColor;//ɫ
+ public NET_VCA_RECT struPlateRect;//λ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes;//Ϊ0
+ public uint dwLicenseLen;//Ƴ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_LICENSE_LEN)]
+ public string sLicense;//ƺ
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = MAX_LICENSE_LEN)]
+ public string sBelieve;//ʶַŶȣ"A12345", ŶΪ10,20,30,40,50,60,70ʾ""ȷĿֻ10%"A"ֵȷĿ20%
+ }
+
+ //Ƽ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_PLATE_RESULT
+ {
+ public uint dwSize;//ṹ
+ public uint dwRelativeTime;//ʱ
+ public uint dwAbsTime;//ʱ
+ public byte byPlateNum;//Ƹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes1;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_PLATE_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_PLATE_INFO[] struPlateInfo;//Ϣṹ
+ public uint dwPicDataLen;//ͼƬij Ϊ0ʾûͼƬ0ʾýṹͼƬ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes2;//Ϊ0 ͼƬĸ߿
+ public System.IntPtr pImage;//ָͼƬָ
+ }
+
+ //ܿ
+ [DllImport(@"..\bin\HCNetSDK.dll")]
+ public static extern bool NET_VCA_RestartLib(int lUserID, int lChannel);
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_LINE_SEGMENT
+ {
+ public NET_VCA_POINT struStartPoint;//ʾ߶ʱʾͷ
+ public NET_VCA_POINT struEndPoint;//ʾ߶ʱʾŲ
+ public float fValue;//߶ֵλ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //궨
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_VCA_LINE_SEG_LIST
+ {
+ public uint dwSize;//ṹ
+ public byte bySegNum;//궨
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = System.Runtime.InteropServices.UnmanagedType.I1)]
+ public byte[] byRes;//0
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_SEGMENT_NUM, ArraySubType = UnmanagedType.Struct)]
+ public NET_VCA_LINE_SEGMENT[] struSeg;
+ }
+
+ //2009-8-18 ץĻ
+ public const int PLATE_INFO_LEN = 1024;
+ public const int PLATE_NUM_LEN = 16;
+ public const int FILE_NAME_LEN = 256;
+
+ //liscense plate result
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_PLATE_RET
+ {
+ public uint dwSize;//ṹ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PLATE_NUM_LEN, ArraySubType = UnmanagedType.I1)]
+ public byte[] byPlateNum;//ƺ
+ public byte byVehicleType;//
+ public byte byTrafficLight;//0-̵ƣ1-
+ public byte byPlateColor;//ɫ
+ public byte byDriveChan;//
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
+ public byte[] byTimeInfo;/*ʱϢ*///plate_172.6.113.64_20090724155526948_197170484
+ //Ŀǰ17λȷms:20090724155526948
+ public byte byCarSpeed;/*λkm/h*/
+ public byte byCarSpeedH;/*cm/s8λ*/
+ public byte byCarSpeedL;/*cm/s8λ*/
+ public byte byRes;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PLATE_INFO_LEN - 36, ArraySubType = UnmanagedType.I1)]
+ public byte[] byInfo;
+ public uint dwPicLen;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct NET_DVR_CCD_CFG
+ {
+ public uint dwSize;//ṹ
+ public byte byBlc;/*ⲹ0-off; 1-on*/
+ public byte byBlcMode;/*blc0-Զ1-ϣ2-£3-4-ң5-УעblcΪ on ʱЧ*/
+ public byte byAwb;/*Զƽ0-Զ1; 1-Զ2; 2-Զ*/
+ public byte byAgc;/*Զ0-; 1-; 2-; 3-*/
+ public byte byDayNight;/*ҹת0 ɫ1ڰף2Զ*/
+ public byte byMirror;/*0-;1-;2-;3-*/
+ public byte byShutter;/*0-Զ; 1-1/25; 2-1/50; 3-1/100; 4-1/250;5-1/500; 6-1/1k ;7-1/2k; 8-1/4k; 9-1/10k; 10-1/100k;*/
+ public byte byIrCutTime;/*IRCUTлʱ䣬5, 10, 15, 20, 25*/
+ public byte byLensType;/*ͷ0-ӹȦ; 1-ԶȦ*/
+ public byte byEnVideoTrig;/*Ƶʹܣ1-֧֣0-֧֡ƵģʽƵٶȰbyShutterٶȣץͼƬĿٶȰbyCapShutterٶȣץɺԶڻƵģʽ*/
+ public byte byCapShutter;/*ץʱĿٶȣ1-1/25; 2-1/50; 3-1/100; 4-1/250;5-1/500; 6-1/1k ;7-1/2k; 8-1/4k; 9-1/10k; 10-1/100k; 11-1/150; 12-1/200*/
+ public byte byEnRecognise;/*1-֧ʶ0-֧ʶ*/
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct tagCAMERAPARAMCFG
+ {
+ public uint dwSize;
+ public uint dwPowerLineFrequencyMode;/*0-50HZ; 1-60HZ*/
+ public uint dwWhiteBalanceMode;/*0ֶƽ; 1Զƽ1ΧС; 2 Զƽ2Χ2200K-15000K;3Զ3*/
+ public uint dwWhiteBalanceModeRGain;/*ֶƽʱЧֶƽ R*/
+ public uint dwWhiteBalanceModeBGain;/*ֶƽʱЧֶƽ B*/
+ public uint dwExposureMode;/*0 ֶع 1Զع*/
+ public uint dwExposureSet;/* 0-USERSET, 1-Զx22-Զ43-Զ81/25, 4-1/50, 5-1/100, 6-1/250, 7-1/500, 8-1/750, 9-1/1000, 10-1/2000, 11-1/4000,12-1/10,000; 13-1/100,000*/
+ public uint dwExposureUserSet;/* ԶԶعʱ*/
+ public uint dwExposureTarget;/*ֶعʱ ΧManumalЧ룩*/
+ public uint dwIrisMode;/*0 ԶȦ 1ֶȦ*/
+ public uint dwGainLevel;/*棺0-100*/
+ public uint dwBrightnessLevel;/*0-100*/
+ public uint dwContrastLevel;/*0-100*/
+ public uint dwSharpnessLevel;/*0-100*/
+ public uint dwSaturationLevel;/*0-100*/
+ public uint dwHueLevel;/*0-100*/
+ public uint dwGammaCorrectionEnabled;/*0 dsibale 1 enable*/
+ public uint dwGammaCorrectionLevel;/*0-100*/
+ public uint dwWDREnabled;/*̬0 dsibale 1 enable*/
+ public uint dwWDRLevel1;/*0-F*/
+ public uint dwWDRLevel2;/*0-F*/
+ public uint dwWDRContrastLevel;/*0-100*/
+ public uint dwDayNightFilterType;/*ҹл0 day,1 night,2 auto */
+ public uint dwSwitchScheduleEnabled;/*0 dsibale 1 enable,()*/
+ //ģʽ1()
+ public uint dwBeginTime; /*0-100*/
+ public uint dwEndTime;/*0-100*/
+ //ģʽ2
+ public uint dwDayToNightFilterLevel;//0-7
+ public uint dwNightToDayFilterLevel;//0-7
+ public uint dwDayNightFilterTime;//(60)
+ public uint dwBacklightMode;/*ⲹ:0 USERSET 1 UP2 DOWN3 LEFT4 RIGHT5MIDDLE*/
+ public uint dwPositionX1;//X1
+ public uint dwPositionY1;//Y1
+ public uint dwPositionX2;//X2
+ public uint dwPositionY2;//Y2
+ public uint dwBacklightLevel;/*0x0-0xF*/
+ public uint dwDigitalNoiseRemoveEnable; /*ȥ룺0 dsibale 1 enable*/
+ public uint dwDigitalNoiseRemoveLevel;/*0x0-0xF*/
+ public uint dwMirror; /* 0 Left;1 Right,;2 Up;3Down */
+ public uint dwDigitalZoom;/*:0 dsibale 1 enable*/
+ public uint dwDeadPixelDetect;/*,0 dsibale 1 enable*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = UnmanagedType.U4)]
+ public uint[] dwRes;
+ }
+
+ public const int NET_DVR_GET_CCDPARAMCFG = 1067; //IPCȡCCD
+ public const int NET_DVR_SET_CCDPARAMCFG = 1068; //IPCCCD
+
+ //ͼǿ
+ //ͼǿȥ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct tagIMAGEREGION
+ {
+ public uint dwSize;//ܵĽṹ
+ public ushort wImageRegionTopLeftX;/* ͼǿȥx */
+ public ushort wImageRegionTopLeftY;/* ͼǿȥy */
+ public ushort wImageRegionWidth;/* ͼǿȥĿ */
+ public ushort wImageRegionHeight;/*ͼǿȥĸ*/
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ //ͼǿȥ뼶ȶʹ
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct tagIMAGESUBPARAM
+ {
+ public NET_DVR_SCHEDTIME struImageStatusTime;//ͼ״̬ʱ
+ public byte byImageEnhancementLevel;//ͼǿļ0-70ʾر
+ public byte byImageDenoiseLevel;//ͼȥļ0-70ʾر
+ public byte byImageStableEnable;//ͼȶʹܣ0ʾرգ1ʾ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 9, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ public const int NET_DVR_GET_IMAGEREGION = 1062; //ͼǿͼǿȥȡ
+ public const int NET_DVR_SET_IMAGEREGION = 1063; //ͼǿͼǿȥȡ
+ public const int NET_DVR_GET_IMAGEPARAM = 1064; // ͼǿͼ(ȥ롢ǿȶʹ)ȡ
+ public const int NET_DVR_SET_IMAGEPARAM = 1065; // ͼǿͼ(ȥ롢ǿȶʹ)
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct tagIMAGEPARAM
+ {
+ public uint dwSize;
+ //ͼǿʱβãտʼ
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DAYS * MAX_TIMESEGMENT, ArraySubType = UnmanagedType.Struct)]
+ public tagIMAGESUBPARAM[] struImageParamSched;
+ [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
+ public byte[] byRes;
+ }
+
+ #region ȡģؽṹӿ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct PLAY_INFO
+ {
+ public int iUserID; //עûID
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 20)]
+ public string strDeviceIP;
+ public int iDevicePort;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 32)]
+ public string strDevAdmin;
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string strDevPsd;
+ public int iChannel; //ͨ(0ʼ)
+ public int iLinkMode; //λ(31)Ϊ0ʾΪ1ʾ030λʾӷʽ: 0TCPʽ,1UDPʽ,2ಥʽ,3 - RTPʽ4-Ƶֿ(TCP)
+ public bool bUseMedia; //Ƿý
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 20)]
+ public string strMediaIP; //ýIPַ
+ public int iMediaPort; //ý˿ں
+ }
+
+
+ [DllImport("GetStream.dll")]
+ public static extern bool CLIENT_SDK_Init();
+
+ [DllImport("GetStream.dll")]
+ public static extern bool CLIENT_SDK_UnInit();
+
+
+ [DllImport("GetStream.dll")]
+ public static extern int CLIENT_SDK_GetStream(PLAY_INFO lpPlayInfo); //
+
+ [DllImport("GetStream.dll")]
+ public static extern bool CLIENT_SetRealDataCallBack(int iRealHandle, SETREALDATACALLBACK fRealDataCallBack, uint lUser); //
+
+ [DllImport("GetStream.dll")]
+ public static extern bool CLIENT_SDK_StopStream(int iRealHandle);
+
+ [DllImport("GetStream.dll")]
+ public static extern bool CLIENT_SDK_GetVideoEffect(int iRealHandle, ref int iBrightValue, ref int iContrastValue, ref int iSaturationValue, ref int iHueValue);
+
+ [DllImport("GetStream.dll")]
+ public static extern bool CLIENT_SDK_SetVideoEffect(int iRealHandle, int iBrightValue, int iContrastValue, int iSaturationValue, int iHueValue);
+
+ [DllImport("GetStream.dll")]
+ public static extern bool CLIENT_SDK_MakeKeyFrame(int iRealHandle);
+
+ #endregion
+
+
+ #region VOD㲥ſ
+
+ public const int WM_NETERROR = 0x0400 + 102; //쳣Ϣ
+ public const int WM_STREAMEND = 0x0400 + 103; //ļŽ
+
+ public const int FILE_HEAD = 0; //ļͷ
+ public const int VIDEO_I_FRAME = 1; //ƵI֡
+ public const int VIDEO_B_FRAME = 2; //ƵB֡
+ public const int VIDEO_P_FRAME = 3; //ƵP֡
+ public const int VIDEO_BP_FRAME = 4; //ƵBP֡
+ public const int VIDEO_BBP_FRAME = 5; //ƵB֡B֡P֡
+ public const int AUDIO_PACKET = 10; //Ƶ
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct BLOCKTIME
+ {
+ public ushort wYear;
+ public byte bMonth;
+ public byte bDay;
+ public byte bHour;
+ public byte bMinute;
+ public byte bSecond;
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct VODSEARCHPARAM
+ {
+ public IntPtr sessionHandle; //[in]VODͻ˾
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 50)]
+ public string dvrIP; // [in]DVRַ
+ public uint dvrPort; // [in]DVRĶ˿ڵַ
+ public uint channelNum; // [in]DVRͨ
+ public BLOCKTIME startTime; // [in]ѯĿʼʱ
+ public BLOCKTIME stopTime; // [in]ѯĽʱ
+ public bool bUseIPServer; // [in]ǷʹIPServer
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string SerialNumber; // [in]豸к
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct SECTIONLIST
+ {
+ public BLOCKTIME startTime;
+ public BLOCKTIME stopTime;
+ public byte byRecType;
+ public IntPtr pNext;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct VODOPENPARAM
+ {
+ public IntPtr sessionHandle; //[in]VODͻ˾
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 50)]
+ public string dvrIP; // [in]DVRַ
+ public uint dvrPort; // [in]DVRĶ˿ڵַ
+ public uint channelNum; // [in]DVRͨ
+ public BLOCKTIME startTime; // [in]ѯĿʼʱ
+ public BLOCKTIME stopTime; // [in]ѯĽʱ
+ public uint uiUser;
+ public bool bUseIPServer; // [in]ǷʹIPServer
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string SerialNumber; // [in]豸к
+
+ public VodStreamFrameData streamFrameData;
+ }
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct CONNPARAM
+ {
+ public uint uiUser;
+ public ErrorCallback errorCB;
+ }
+
+
+ // 쳣ص
+ public delegate void ErrorCallback(System.IntPtr hSession, uint dwUser, int lErrorType);
+ //֡ݻص
+ public delegate void VodStreamFrameData(System.IntPtr hStream, uint dwUser, int lFrameType, System.IntPtr pBuffer, uint dwSize);
+
+ //ģʼ
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODServerConnect(string strServerIp, uint uiServerPort, ref IntPtr hSession, ref CONNPARAM struConn, IntPtr hWnd);
+
+ //ģ
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODServerDisconnect(IntPtr hSession);
+
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODStreamSearch(IntPtr pSearchParam, ref IntPtr pSecList);
+
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODDeleteSectionList(IntPtr pSecList);
+
+ // IDʱδȡ
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODOpenStream(IntPtr pOpenParam, ref IntPtr phStream);
+
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODCloseStream(IntPtr hStream);
+
+ //IDʱδ
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODOpenDownloadStream(ref VODOPENPARAM struVodParam, ref IntPtr phStream);
+
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODCloseDownloadStream(IntPtr hStream);
+
+ // ʼ֡
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODStartStreamData(IntPtr phStream);
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODPauseStreamData(IntPtr hStream, bool bPause);
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODStopStreamData(IntPtr hStream);
+
+ // ʱ䶨λ
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODSeekStreamData(IntPtr hStream, IntPtr pStartTime);
+
+
+ // ʱ䶨λ
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODSetStreamSpeed(IntPtr hStream, int iSpeed);
+
+ // ʱ䶨λ
+ [DllImport("PdCssVodClient.dll")]
+ public static extern bool VODGetStreamCurrentTime(IntPtr hStream, ref BLOCKTIME pCurrentTime);
+
+ #endregion
+
+
+ #region ֡
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct PACKET_INFO
+ {
+ public int nPacketType; // packet type
+ // 0: file head
+ // 1: video I frame
+ // 2: video B frame
+ // 3: video P frame
+ // 10: audio frame
+ // 11: private frame only for PS
+
+
+ // [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)]
+ public IntPtr pPacketBuffer;
+ public uint dwPacketSize;
+ public int nYear;
+ public int nMonth;
+ public int nDay;
+ public int nHour;
+ public int nMinute;
+ public int nSecond;
+ public uint dwTimeStamp;
+ }
+
+
+
+ /******************************************************************************
+ * functionget a empty port number
+ * parameters
+ * return 0 - 499 : empty port number
+ * -1 : server is full
+ * comment
+ ******************************************************************************/
+ [DllImport("AnalyzeData.dll")]
+ public static extern int AnalyzeDataGetSafeHandle();
+
+
+ /******************************************************************************
+ * functionopen standard stream data for analyzing
+ * parameterslHandle - working port number
+ * pHeader - pointer to file header or info header
+ * returnTRUE or FALSE
+ * comment
+ ******************************************************************************/
+ [DllImport("AnalyzeData.dll")]
+ public static extern bool AnalyzeDataOpenStreamEx(int iHandle, byte[] pFileHead);
+
+
+ /******************************************************************************
+ * functionclose analyzing
+ * parameterslHandle - working port number
+ * return
+ * comment
+ ******************************************************************************/
+ [DllImport("AnalyzeData.dll")]
+ public static extern bool AnalyzeDataClose(int iHandle);
+
+
+ /******************************************************************************
+ * functioninput stream data
+ * parameterslHandle - working port number
+ * pBuffer - data pointer
+ * dwBuffersize - data size
+ * returnTRUE or FALSE
+ * comment
+ ******************************************************************************/
+ [DllImport("AnalyzeData.dll")]
+ public static extern bool AnalyzeDataInputData(int iHandle, IntPtr pBuffer, uint uiSize); //byte []
+
+
+ /******************************************************************************
+ * functionget analyzed packet
+ * parameterslHandle - working port number
+ * pPacketInfo - returned structure
+ * return-1 : error
+ * 0 : succeed
+ * 1 : failed
+ * 2 : file end (only in file mode)
+ * comment
+ ******************************************************************************/
+ [DllImport("AnalyzeData.dll")]
+ public static extern int AnalyzeDataGetPacket(int iHandle, ref PACKET_INFO pPacketInfo); //ҪpPacketInfoתPACKET_INFOṹ
+
+
+ /******************************************************************************
+ * functionget remain data from input buffer
+ * parameterslHandle - working port number
+ * pBuf - pointer to the mem which stored remain data
+ * dwSize - size of remain data
+ * return TRUE or FALSE
+ * comment
+ ******************************************************************************/
+ [DllImport("AnalyzeData.dll")]
+ public static extern bool AnalyzeDataGetTail(int iHandle, ref IntPtr pBuffer, ref uint uiSize);
+
+
+ [DllImport("AnalyzeData.dll")]
+ public static extern uint AnalyzeDataGetLastError(int iHandle);
+
+ #endregion
+
+
+ #region ¼
+
+ public const int DATASTREAM_HEAD = 0; //ͷ
+ public const int DATASTREAM_BITBLOCK = 1; //ֽ
+ public const int DATASTREAM_KEYFRAME = 2; //ؼ֡
+ public const int DATASTREAM_NORMALFRAME = 3; //ǹؼ֡
+
+
+ public const int MESSAGEVALUE_DISKFULL = 0x01;
+ public const int MESSAGEVALUE_SWITCHDISK = 0x02;
+ public const int MESSAGEVALUE_CREATEFILE = 0x03;
+ public const int MESSAGEVALUE_DELETEFILE = 0x04;
+ public const int MESSAGEVALUE_SWITCHFILE = 0x05;
+
+
+
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct STOREINFO
+ {
+ public int iMaxChannels;
+ public int iDiskGroup;
+ public int iStreamType;
+ public bool bAnalyze;
+ public bool bCycWrite;
+ public uint uiFileSize;
+
+ public CALLBACKFUN_MESSAGE funCallback;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct CREATEFILE_INFO
+ {
+ public int iHandle;
+
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string strCameraid;
+
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string strFileName;
+
+ public BLOCKTIME tFileCreateTime;
+ }
+
+ [StructLayoutAttribute(LayoutKind.Sequential)]
+ public struct CLOSEFILE_INFO
+ {
+ public int iHandle;
+
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string strCameraid;
+
+ [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string strFileName;
+
+ public BLOCKTIME tFileSwitchTime;
+ }
+
+
+
+ public delegate int CALLBACKFUN_MESSAGE(int iMessageType, System.IntPtr pBuf, int iBufLen);
+
+
+ [DllImport("RecordDLL.dll")]
+ public static extern int Initialize(STOREINFO struStoreInfo);
+
+ [DllImport("RecordDLL.dll")]
+ public static extern int Release();
+
+ [DllImport("RecordDLL.dll")]
+ public static extern int OpenChannelRecord(string strCameraid, IntPtr pHead, uint dwHeadLength);
+
+ [DllImport("RecordDLL.dll")]
+ public static extern bool CloseChannelRecord(int iRecordHandle);
+
+ [DllImport("RecordDLL.dll")]
+ public static extern int GetData(int iHandle, int iDataType, IntPtr pBuf, uint uiSize);
+
+ #endregion
+ }
+}
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCCore.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCCore.dll
new file mode 100644
index 000000000..ce2f70bbc
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCCore.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDK.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDK.dll
new file mode 100644
index 000000000..152d454cf
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDK.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/AnalyzeData.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/AnalyzeData.dll
new file mode 100644
index 000000000..1b8db2a39
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/AnalyzeData.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/AudioIntercom.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/AudioIntercom.dll
new file mode 100644
index 000000000..cd032acfd
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/AudioIntercom.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCAlarm.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCAlarm.dll
new file mode 100644
index 000000000..54e716ba7
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCAlarm.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCAlarm.lib b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCAlarm.lib
new file mode 100644
index 000000000..971d52b28
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCAlarm.lib differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCCoreDevCfg.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCCoreDevCfg.dll
new file mode 100644
index 000000000..d901cad37
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCCoreDevCfg.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCDisplay.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCDisplay.dll
new file mode 100644
index 000000000..f3429daaf
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCDisplay.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCGeneralCfgMgr.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCGeneralCfgMgr.dll
new file mode 100644
index 000000000..0acb3256f
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCGeneralCfgMgr.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCGeneralCfgMgr.lib b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCGeneralCfgMgr.lib
new file mode 100644
index 000000000..b2acf0082
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCGeneralCfgMgr.lib differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCIndustry.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCIndustry.dll
new file mode 100644
index 000000000..3d983716e
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCIndustry.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPlayBack.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPlayBack.dll
new file mode 100644
index 000000000..e27bc1808
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPlayBack.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPreview.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPreview.dll
new file mode 100644
index 000000000..a9da36a81
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPreview.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPreview.lib b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPreview.lib
new file mode 100644
index 000000000..355596dfa
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCPreview.lib differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCVoiceTalk.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCVoiceTalk.dll
new file mode 100644
index 000000000..575e4dd17
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/HCVoiceTalk.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/OpenAL32.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/OpenAL32.dll
new file mode 100644
index 000000000..ea91a5f52
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/OpenAL32.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/StreamTransClient.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/StreamTransClient.dll
new file mode 100644
index 000000000..b4af48532
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/StreamTransClient.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/SystemTransform.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/SystemTransform.dll
new file mode 100644
index 000000000..d890af2e8
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/SystemTransform.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/libiconv2.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/libiconv2.dll
new file mode 100644
index 000000000..978e2fa5f
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/HCNetSDKCom/libiconv2.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/Newtonsoft.Json.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/Newtonsoft.Json.dll
new file mode 100644
index 000000000..e4a63399d
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/Newtonsoft.Json.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/Newtonsoft.Json.xml b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/Newtonsoft.Json.xml
new file mode 100644
index 000000000..aa245c5e1
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/Newtonsoft.Json.xml
@@ -0,0 +1,11262 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets the naming strategy used to resolve how enum text is written.
+
+ The naming strategy used to resolve how enum text is written.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when serializing and deserializing.
+ The default value is true.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The naming strategy used to resolve how enum text is written.
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ true if special characters are encoded; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ The default JSON name table implementation.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Adds the specified string into name table.
+
+ The string to add.
+ This method is not thread-safe.
+ The resolved string.
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Base class for a table of atomized string objects.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the type used when serializing the property's collection items.
+
+ The collection's items type.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's property name table.
+
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Specifies how duplicate property names are handled when loading JSON.
+
+
+
+
+ Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used.
+
+
+
+
+ Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used.
+
+
+
+
+ Throw a when a duplicate property is encountered.
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a with the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets the with the specified name.
+ The exact name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The property name.
+ One of the enumeration values that specifies how the strings will be compared.
+ A matched with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+ The default value is .
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+ The default value is .
+
+ The JSON line info handling.
+
+
+
+ Gets or sets how duplicate property names in JSON objects are handled when loading JSON.
+ The default value is .
+
+ The JSON duplicate property name handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Gets or sets the comparison used to match property names while merging.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The comparison used to match property names while merging.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+ The initial path of the token. It is prepended to the returned .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets the internally resolved for the contract's type.
+ This converter is used as a fallback converter when no other converter is resolved.
+ Setting will always override this converter.
+
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets a value indicating whether has a value specified.
+
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ A kebab case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Hash code calculation
+
+
+
+
+
+ Object equality implementation
+
+
+
+
+
+
+ Compare to another NamingStrategy
+
+
+
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+ Specifies that an output will not be null even if the corresponding type allows it.
+
+
+ Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it.
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+
+ Gets the return value condition.
+
+
+ Specifies that an output may be null even if the corresponding type disallows it.
+
+
+ Specifies that null is allowed as an input even if the corresponding type disallows it.
+
+
+
+ Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
+ the associated parameter matches this value.
+
+
+
+ Gets the condition parameter value.
+
+
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/hlog.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/hlog.dll
new file mode 100644
index 000000000..fe2298ab0
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/hlog.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/hpr.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/hpr.dll
new file mode 100644
index 000000000..eef0d5561
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/hpr.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/libeay32.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/libeay32.dll
new file mode 100644
index 000000000..78da50855
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/libeay32.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/log4cxx.properties b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/log4cxx.properties
new file mode 100644
index 000000000..088bb0f9b
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/log4cxx.properties
@@ -0,0 +1,26 @@
+#ȱʡ־̨
+#FATALERRORWARNINFODEBUG ȼ˳ ģģ鶼ƥ䣬ô
+log4j.rootLogger=DEBUG, stdout
+#log4j.rootLogger=DEBUG
+##hlog.async=false
+##hlog.secret.show=true
+##hlog.secret.encrypt=false
+#log4j.loggerڿ־ɼɼݣThresholdڿ־
+
+#Ӧڿ̨
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%d][%t][%-5p]- %m%n
+
+log4j.logger.NPQ=TRACE, NPQ
+log4j.appender.NPQ=org.apache.log4j.RollingFileAppender
+log4j.appender.NPQ.File=./NPQLog/NPQ.log
+log4j.appender.NPQ.MaxFileSize=80MB
+log4j.appender.NPQ.MaxBackupIndex=12
+log4j.appender.NPQ.Append=false
+log4j.appender.NPQ.Threshold=TRACE
+log4j.appender.NPQ.layout=org.apache.log4j.PatternLayout
+log4j.appender.NPQ.layout.ConversionPattern=[%d][%t][%-5p]- %m%n
+log4j.additivity.NPQ = false
+#һλΪtrue ȿԿֿ̨ļ
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/ssleay32.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/ssleay32.dll
new file mode 100644
index 000000000..1a45a31ce
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/ssleay32.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/zlib1.dll b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/zlib1.dll
new file mode 100644
index 000000000..2efbd7a39
Binary files /dev/null and b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/zlib1.dll differ
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/文件部署说明.txt b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/文件部署说明.txt
new file mode 100644
index 000000000..0734c3820
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.JobService/海康考勤机必须文件/文件部署说明.txt
@@ -0,0 +1,3 @@
+1.部署海康考勤机时,将此文件夹内所有文件(包括HCNetSDKCom文件夹)复制到exe目录内
+2.务必保证考勤机与exe所在机器网络互通
+3.配置App.config文件下的appSettings节AttendancePhotoPath,存储考勤刷脸图片路径到数字化校园网站Resource\AttendancePhoto目录下
\ No newline at end of file