海康威视SDK动态库python调用实现告警布防

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from ctypes import *
import sys
from ctypes.wintypes import DWORD
from ctypes.wintypes import WORD
from ctypes.wintypes import LONG
from ctypes.wintypes import BYTE


# 报警信息列表,报一次在回调中加1次记录
alarm_info = []
fun_ctype = WINFUNCTYPE  # 指针函数类型

if 'linux' in sys.platform:
    fun_ctype = CFUNCTYPE

class NET_DVR_DEVICEINFO_V30(Structure):
    pass
NET_DVR_DEVICEINFO_V30._fields_ = [
    ('sSerialNumber', BYTE * 48),  # 序列号
    ('byAlarmInPortNum', BYTE),  # 报警输入个数
    ('byAlarmOutPortNum', BYTE),  # 报警输出个数
    ('byDiskNum', BYTE),  # 硬盘个数
    ('byDVRType', BYTE),  # 设备类型, 1:DVR 2:ATM DVR 3:DVS
    ('byChanNum', BYTE),  # 模拟通道个数
    ('byStartChan', BYTE),  # 起始通道号,例如DVS-1,DVR - 1
    ('byAudioChanNum', BYTE),  # 语音通道数
    ('byIPChanNum', BYTE),  # 最大数字通道个数,低位
    ('byZeroChanNum', BYTE),  # 零通道编码个数 //2010-01-16
    ('byMainProto', BYTE),  # 主码流传输协议类型 0-private, 1-rtsp,2-同时支持private和rtsp
    ('bySubProto', BYTE),  # 子码流传输协议类型0-private, 1-rtsp,2-同时支持private和rtsp
    ('bySupport', BYTE),  # 能力,位与结果为0表示不支持,1表示支持
    ('bySupport1', BYTE),  # 能力集扩充,位与结果为0表示不支持,1表示支持
    ('bySupport2', BYTE),  # 能力,位与结果为0表示不支持,非0表示支持
    ('wDevType', WORD),  # 设备型号
    ('bySupport3', BYTE),  # 能力集扩展,位与结果为0表示不支持,1表示支持
    ('byMultiStreamProto', BYTE),  # 是否支持多码流,按位表示,0-不支持,1-支持,bit1-码流3,bit2-码流4,bit7-主码流,bit-8子码流
    ('byStartDChan', BYTE),  # 起始数字通道号,0表示无效
    ('byStartDTalkChan', BYTE),  # 起始数字对讲通道号,区别于模拟对讲通道号,0表示无效
    ('byHighDChanNum', BYTE),  # 数字通道个数,高位
    ('bySupport4', BYTE),  # 能力集扩展,位与结果为0表示不支持,1表示支持
    ('byLanguageType', BYTE),  # 支持语种能力,按位表示,每一位0-不支持,1-支持
    ('byVoiceInChanNum', BYTE),  # 音频输入通道数
    ('byStartVoiceInChanNo', BYTE),  # 音频输入起始通道号 0表示无效
    ('bySupport5', BYTE),  # 按位表示,0-不支持,1-支持,bit0-支持多码流
    ('bySupport6', BYTE),  # 能力,按位表示,0-不支持,1-支持
    ('byMirrorChanNum', BYTE),  # 镜像通道个数,<录播主机中用于表示导播通道
    ('wStartMirrorChanNo', WORD),  # 起始镜像通道号
    ('bySupport7', BYTE),  # 能力,按位表示,0-不支持,1-支持
    ('byRes2', BYTE),
]
LPNET_DVR_DEVICEINFO_V30 = POINTER(NET_DVR_DEVICEINFO_V30)


class tagNET_DVR_DEVICEINFO_V40(Structure):
    pass
tagNET_DVR_DEVICEINFO_V40._fields_ = [
    ('struDeviceV30', NET_DVR_DEVICEINFO_V30),  # 设备信息结构体
    ('bySupportLock', BYTE),  # 设备支持锁定功能,该字段由SDK根据设备返回值来赋值的
    ('byRetryLoginTime', BYTE),  # 剩余可尝试登陆的次数,用户名,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值