-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.go
224 lines (214 loc) · 15.7 KB
/
config.go
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
package main
const (
ABILITY_DEVALL_INFO = 26
DH_SERIALNO_LEN = 48
DH_MAX_SNMP_COMMON_LEN = 64 // snmp 读写数据长度
DH_DEV_SNMP_CFG = 0x005f
DH_DEV_TIMECFG = 0x0008
)
type EM_LOGIN_SPAC_CAP_TYPE int
const (
EM_LOGIN_SPEC_CAP_TCP EM_LOGIN_SPAC_CAP_TYPE = iota // TCP登陆, 默认方式
EM_LOGIN_SPEC_CAP_ANY // 无条件登陆
EM_LOGIN_SPEC_CAP_SERVER_CONN // 主动注册的登入
EM_LOGIN_SPEC_CAP_MULTICAST // 组播登陆
EM_LOGIN_SPEC_CAP_UDP // UDP方式下的登入
EM_LOGIN_SPEC_CAP_MAIN_CONN_ONLY // 只建主连接下的登入
EM_LOGIN_SPEC_CAP_SSL // SSL加密方式登陆
EM_LOGIN_SPEC_CAP_INTELLIGENT_BOX EM_LOGIN_SPAC_CAP_TYPE = iota + 9 // 登录智能盒远程设备
EM_LOGIN_SPEC_CAP_NO_CONFIG // 登录设备后不做取配置操作
EM_LOGIN_SPEC_CAP_U_LOGIN // 用U盾设备的登入
EM_LOGIN_SPEC_CAP_LDAP // LDAP方式登录
EM_LOGIN_SPEC_CAP_AD // AD(ActiveDirectory)登录方式
EM_LOGIN_SPEC_CAP_RADIUS // Radius 登录方式
EM_LOGIN_SPEC_CAP_SOCKET_5 // Socks5登陆方式
EM_LOGIN_SPEC_CAP_CLOUD // 云登陆方式
EM_LOGIN_SPEC_CAP_AUTH_TWICE // 二次鉴权登陆方式
EM_LOGIN_SPEC_CAP_TS // TS码流客户端登陆方式
EM_LOGIN_SPEC_CAP_P2P // 为P2P登陆方式
EM_LOGIN_SPEC_CAP_MOBILE // 手机客户端登陆
EM_LOGIN_SPEC_CAP_INVALID // 无效的登陆方式
)
const (
EN_FTP = iota // FTP 按位,1:传送录像文件 2:传送抓图文件
EN_SMTP // SMTP 按位,1:报警传送文本邮件 2:报警传送图片 3:支持健康邮件功能
EN_NTP // NTP 按位:1:调整系统时间
EN_AUTO_MAINTAIN // 自动维护 按位:1:重启 2:关闭 3:删除文件
EN_VIDEO_COVER // 区域遮挡 按位:1:多区域遮挡
EN_AUTO_REGISTER // 主动注册 按位:1:注册后sdk主动登陆
EN_DHCP // DHCP 按位:1:DHCP
EN_UPNP // UPNP 按位:1:UPNP
EN_COMM_SNIFFER // 串口抓包 按位:1:CommATM
EN_NET_SNIFFER // 网络抓包 按位: 1:NetSniffer
EN_BURN // 刻录功能 按位:1:查询刻录状态
EN_VIDEO_MATRIX // 视频矩阵 按位:1:是否支持视频矩阵 2:是否支持SPOT视频矩阵 3:是否支持HDMI视频矩阵
EN_AUDIO_DETECT // 音频检测 按位:1:是否支持音频检测
EN_STORAGE_STATION // 存储位置 按位:1:Ftp服务器(Ips) 2:SMB 3:NFS 4:ISCSI 16:DISK 17:U盘
EN_IPSSEARCH // IPS存储查询 按位:1:IPS存储查询
EN_SNAP // 抓图 按位:1:分辨率2:帧率3:抓图方式4:抓图文件格式5:图画质量
EN_DEFAULTNIC // 支持默认网卡查询 按位 1:支持
EN_SHOWQUALITY // CBR模式下显示画质配置项 按位 1:支持
EN_CONFIG_IMEXPORT // 配置导入导出功能能力 按位 1:支持
EN_LOG // 是否支持分页方式的日志查询 按位 1:支持
EN_SCHEDULE // 录像设置的一些能力 按位 1:冗余 2:预录 3:录像时间段
EN_NETWORK_TYPE // 网络类型按位表示 1:以态网 2:无线局域 3:CDMA/GPRS 4:CDMA/GPRS多网卡配置
EN_MARK_IMPORTANTRECORD // 标识重要录像 按位:1:设置重要录像标识
EN_ACFCONTROL // 活动帧率控制 按位:1:支持活动帧率控制, 2:支持定时报警类型活动帧率控制(不支持动检),该能力与ACF能力互斥
EN_MULTIASSIOPTION // 多路辅码流 按位:1:支持三路辅码流, 2:支持辅码流编码压缩格式独立设置
EN_DAVINCIMODULE // 组件化模块 按位:1,时间表分开处理 2:标准I帧间隔设置
EN_GPS // GPS功能 按位:1:Gps定位功能
EN_MULTIETHERNET // 支持多网卡查询 按位 1:支持
EN_LOGIN_ATTRIBUTE // Login属性 按位:1:支持Login属性查询
EN_RECORD_GENERAL // 录像相关 按位:1,普通录像;2:报警录像;3:动态检测录像;4:本地存储;5:远程存储;6:冗余存储;7:本地紧急存储;8:支持区分主辅码流的远程存储
EN_JSON_CONFIG // Json格式配置:按位:1支持Json格式, 2: 使用F6的NAS配置, 3: 使用F6的Raid配置, 4:使用F6的MotionDetect配置, 5:完整支持三代配置(V3),通过F6命令访问
EN_HIDE_FUNCTION // 屏蔽功能:按位:1,屏蔽PTZ云台功能, 2: 屏蔽3G的保活时段功能
EN_DISK_DAMAGE // 硬盘坏道信息支持能力: 按位:1,硬盘坏道信息查询支持能力
EN_PLAYBACK_SPEED_CTRL // 支持回放网传速度控制:按位:1,支持回放加速
EN_HOLIDAYSCHEDULE // 支持假期时间段配置:按位:1,支持假期时间段配置
EN_FETCH_MONEY_TIMEOUT // ATM取钱超时
EN_BACKUP_VIDEO_FORMAT // 备份支持的格式,按位:1:DAV, 2:ASF
EN_QUERY_DISK_TYPE // 支持硬盘类型查询
EN_CONFIG_DISPLAY_OUTPUT // 支持设备显示输出(VGA等)配置,按位: 1:画面分割轮巡配置
EN_SUBBITRATE_RECORD_CTRL // 支持扩展码流录像控制设置, 按位:1-辅码流录像控制设置
EN_IPV6 // 支持IPV6设置, 按位:1-IPV6配置
EN_SNMP // SNMP(简单网络管理协议)
EN_QUERY_URL // 支持获取设备URL地址, 按位: 1-查询配置URL地址
EN_ISCSI // ISCSI(Internet小型计算机系统接口配置)
EN_RAID // 支持Raid功能
EN_HARDDISK_INFO // 支持磁盘信息F5查询
EN_PICINPIC // 支持画中画功能 按位:1,画中画设置; 2,画中画预览、录像存储、查询、下载;3,支持画中画编码配置,同时支持画中画通道查询
EN_PLAYBACK_SPEED_CTRL_SUPPORT // 同 EN_PLAYBACK_SPEED_CTRL ,只为了兼容协议
EN_LF_XDEV // 支持24、32、64路LF-X系列,标注这类设备特殊的编码能力计算方式
EN_DSP_ENCODE_CAP // F5 DSP编码能力查询
EN_MULTICAST // 组播能力查询
EM_NET_LIMIT // 网络限制能力查询,按位,1-网络发送码流大小限
EM_COM422 // 串口422
EM_PROTOCAL_FRAMEWORK // 是否支持三代协议框架(需要实现listMethod(),listService()),通过F6命令访问
EM_WRITE_DISK_OSD // 刻录OSD叠加, 按位, 1-刻录OSD叠加配置
EM_DYNAMIC_MULTI_CONNECT // 动态多连接, 按位, 1-请求视频数据应答
EM_CLOUDSERVICE // 云服务,按位,1-支持私有云服务
EM_RECORD_INFO // 录像信息上报, 按位, 1-录像信息主动上报, 2-支持录像帧数查询
EN_DYNAMIC_REG // 主动注册能力,按位,1-支持动态主动注册
EM_MULTI_PLAYBACK // 多通道预览回放,按为,1-支持多通道预览回放
EN_ENCODE_CHN // 编码通道, 按位, 1-支持纯音频通道, 2-监视支持音视频分开获取
EN_SEARCH_RECORD // 录像查询, 按位, 1-支持异步查询录像, 2-支持三代协议查询录像
EN_UPDATE_MD5 // 支持升级文件传输完成后做MD5验证,1-支持MD5验证
)
var (
names = []string{
EN_FTP: "FTP",
EN_SMTP: "SMTP",
EN_NTP: "NTP",
EN_AUTO_MAINTAIN: "Automatic Maintenance",
EN_VIDEO_COVER: "Area Coverage",
EN_AUTO_REGISTER: "Active Registration",
EN_DHCP: "DHCP",
EN_UPNP: "UPNP",
EN_COMM_SNIFFER: "Serial packet capture",
EN_NET_SNIFFER: "Network Capture",
EN_BURN: "Burn function",
EN_VIDEO_MATRIX: "Video Matrix",
EN_AUDIO_DETECT: "Audio Detection",
EN_STORAGE_STATION: "Storage Location",
EN_IPSSEARCH: "IPS Storage Query",
EN_SNAP: "Snapshot",
EN_DEFAULTNIC: "Support default network card query",
EN_SHOWQUALITY: "Display quality configuration items in CBR mode",
EN_CONFIG_IMEXPORT: "Configuration import and export capabilities",
EN_LOG: "Whether support paging log query",
EN_SCHEDULE: "Some capabilities for recording settings",
EN_NETWORK_TYPE: "Network type bitwise representation",
EN_MARK_IMPORTANTRECORD: "Mark important recordings",
EN_ACFCONTROL: "Active Frame Rate Control",
EN_MULTIASSIOPTION: "Multiple sub-streams",
EN_DAVINCIMODULE: "Componentized Module",
EN_GPS: "GPS function",
EN_MULTIETHERNET: "Support multi-NIC query",
EN_LOGIN_ATTRIBUTE: "Login attribute",
EN_RECORD_GENERAL: "Recording related",
EN_JSON_CONFIG: "Json format configuration",
EN_HIDE_FUNCTION: "Hide function",
EN_DISK_DAMAGE: "Hard disk bad sector information support capability",
EN_PLAYBACK_SPEED_CTRL: "Support playback speed control of network transmission",
EN_HOLIDAYSCHEDULE: "Support holiday time period configuration",
EN_FETCH_MONEY_TIMEOUT: "ATM withdrawal timed out",
EN_BACKUP_VIDEO_FORMAT: "Backup Supported Formats",
EN_QUERY_DISK_TYPE: "Support disk type query",
EN_CONFIG_DISPLAY_OUTPUT: "Support device display output (VGA, etc.) configuration",
EN_SUBBITRATE_RECORD_CTRL: "Support extended stream recording control settings",
EN_IPV6: "Support IPV6 settings",
EN_SNMP: "SNMP (Simple Network Management Protocol)",
EN_QUERY_URL: "Support to get device URL address",
EN_ISCSI: "ISCSI (Internet Small Computer System Interface Configuration)",
EN_RAID: "Support Raid function",
EN_HARDDISK_INFO: "Support disk information F5 query",
EN_PICINPIC: "Support picture-in-picture function",
EN_PLAYBACK_SPEED_CTRL_SUPPORT: "Same as EN_PLAYBACK_SPEED_CTRL",
EN_LF_XDEV: "Support 24, 32, 64 LF-X series",
EN_DSP_ENCODE_CAP: "F5 DSP encoding capability query",
EN_MULTICAST: "Multicast Capability Query",
EM_NET_LIMIT: "Network limit capability query",
EM_COM422: "Serial port 422",
EM_PROTOCAL_FRAMEWORK: "Whether to support the third generation protocol framework",
EM_WRITE_DISK_OSD: "Write OSD Overlay",
EM_DYNAMIC_MULTI_CONNECT: "Dynamic Multi-Connection",
EM_CLOUDSERVICE: "Cloud Service",
EM_RECORD_INFO: "Report video information",
EN_DYNAMIC_REG: "Active Registration Capability",
EM_MULTI_PLAYBACK: "Multi-channel preview playback",
EN_ENCODE_CHN: "Encoding Channel",
EN_SEARCH_RECORD: "Recording query",
EN_UPDATE_MD5: "Support MD5 verification after upgrade file transfer is completed, 1-support MD5 verification",
}
)
type NET_PARAM struct {
nWaittime int32 // 等待超时时间(毫秒为单位),为0默认5000ms
nConnectTime int32 // 连接超时时间(毫秒为单位),为0默认1500ms
nConnectTryNum int32 // 连接尝试次数,为0默认1次
nSubConnectSpaceTime int32 // 子连接之间的等待时间(毫秒为单位),为0默认10ms
nGetDevInfoTime int32 // 获取设备信息超时时间,为0默认1000ms
nConnectBufSize int32 // 每个连接接收数据缓冲大小(字节为单位),为0默认250*1024
nGetConnInfoTime int32 // 获取子连接信息超时时间(毫秒为单位),为0默认1000ms
nSearchRecordTime int32 // 按时间查询录像文件的超时时间(毫秒为单位),为0默认为3000ms
nsubDisconnetTime int32 // 检测子链接断线等待时间(毫秒为单位),为0默认为60000ms
byNetType byte // 网络类型, 0-LAN, 1-WAN
byPlaybackBufSize byte // 回放数据接收缓冲大小(M为单位),为0默认为4M
bDetectDisconnTime byte // 心跳检测断线时间(单位为秒),为0默认为60s,最小时间为2s
bKeepLifeInterval byte // 心跳包发送间隔(单位为秒),为0默认为10s,最小间隔为2s
nPicBufSize int32 // 实时图片接收缓冲大小(字节为单位),为0默认为2*1024*1024
bReserved [4]byte // 保留字段字段
}
// 设备信息扩展
type NET_DEVICEINFO_Ex struct {
sSerialNumber [DH_SERIALNO_LEN]byte // 序列号
nAlarmInPortNum int32 // DVR报警输入个数
nAlarmOutPortNum int32 // DVR报警输出个数
nDiskNum int32 // DVR硬盘个数
nDVRType int32 // DVR类型,见枚举NET_DEVICE_TYPE
nChanNum int32 // DVR通道个数
byLimitLoginTime byte // 在线超时时间,为0表示不限制登陆,非0表示限制的分钟数
byLeftLogTimes byte // 当登陆失败原因为密码错误时,通过此参数通知用户,剩余登陆次数,为0时表示此参数无效
bReserved [2]byte // 保留字节,字节对齐
nLockLeftTime int32 // 当登陆失败,用户解锁剩余时间(秒数), -1表示设备未设置该参数
Reserved [24]byte // 保留
}
type DHDEV_NET_SNMP_CFG struct {
bEnable int // SNMP使能
iSNMPPort int32 // SNMP端口
szReadCommon [DH_MAX_SNMP_COMMON_LEN]byte // 读共同体
szWriteCommon [DH_MAX_SNMP_COMMON_LEN]byte // 写共同体
szTrapServer [64]byte // trap地址
iTrapPort int32 // trap端口
bSNMPV1 byte // 设备是否开启支持版本1格式,0不使能;1使能
bSNMPV2 byte // 设备是否开启支持版本2格式,0不使能;1使能
bSNMPV3 byte // 设备是否开启支持版本3格式,0不使能;1使能
szReserve [125]byte
}
type NET_TIME struct {
dwYear uint32 // 年
dwMonth uint32 // 月
dwDay uint32 // 日
dwHour uint32 // 时
dwMinute uint32 // 分
dwSecond uint32 // 秒
}