Skip to content

Commit

Permalink
feat: sdk state
Browse files Browse the repository at this point in the history
  • Loading branch information
Rennbon committed Apr 28, 2020
1 parent f1d83d8 commit d071466
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 0 deletions.
38 changes: 38 additions & 0 deletions example/sdk_state.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import logging
import os
import time
import sys
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
PathProject = os.path.split(rootPath)[0]
sys.path.append(rootPath)
sys.path.append(PathProject)

from hkws import base_adapter, config

# 初始化配置文件
cnf = config.Config()
path = os.path.join('../local_config.ini')
cnf.InitConfig(path)

# 初始化SDK适配器
adapter = base_adapter.BaseAdapter()
userId = adapter.common_start(cnf)
if userId < 0:
logging.error("初始化Adapter失败")
os._exit(0)

print("Login successful,the userId is ", userId)
v = adapter.get_sdk_version()
print("version:", v)
bv = adapter.get_sdk_build_version()
print("build version", bv)
res, state = adapter.get_sdk_state()
if res:
print(state.dwTotalLoginNum)

res2, abl = adapter.get_sdk_abl()
if res2:
print(abl.dwMaxLoginNum)
adapter.logout(userId)
adapter.sdk_clean()
17 changes: 17 additions & 0 deletions hkws/base_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,23 @@ def get_sdk_version(self):
def get_sdk_build_version(self):
return self.call_cpp("NET_DVR_GetSDKBuildVersion")

# 获取当前SDK状态信息失败
def get_sdk_state(self):
op = base.NET_DVR_SDKSTATE()
pSDKState = byref(op)
res = self.call_cpp("NET_DVR_GetSDKState", pSDKState)
if not res:
self.print_error("NET_DVR_GetSDKState 获取当前SDK状态信息失败: the error code is ")
return res, op

# 获取当前SDK的功能信息
def get_sdk_abl(self):
op = base.NET_DVR_SDKABL()
pSDKAbl = byref(op)
res = self.call_cpp("NET_DVR_GetSDKAbility", pSDKAbl)
if not res:
self.print_error("NET_DVR_GetSDKAbility 获取当前SDK功能信息失败: the error code is ")
return res, op
# 激活设备
def activate_device(self, ip="192.168.1.1", port=8000, pwd="123456"):

Expand Down
35 changes: 35 additions & 0 deletions hkws/model/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,3 +170,38 @@ class NET_DVR_ACTIVATECFG(Structure):
("sPassword", h_BYTE * PASSWD_LEN),
("byRes", h_BYTE * 108)
]


# SDK状态信息结构体
class NET_DVR_SDKSTATE(Structure):
_fields_ = [
("dwTotalLoginNum", h_DWORD), # 当前注册用户数
("dwTotalRealPlayNum", h_DWORD), # 当前实时预览的路数
("dwTotalPlayBackNum", h_DWORD), # 当前回放或下载的路数
("dwTotalAlarmChanNum", h_DWORD), # 当前建立报警通道的路数
("dwTotalFormatNum", h_DWORD), # 当前硬盘格式化的路数
("dwTotalFileSearchNum", h_DWORD), # 当前文件搜索的路数
("dwTotalLogSearchNum", h_DWORD), # 当前日志搜索的路数
("dwTotalSerialNum", h_DWORD), # 当前建立透明通道的路数
("dwTotalUpgradeNum", h_DWORD), # 当前升级的路数
("dwTotalVoiceComNum", h_DWORD), # 当前语音转发的路数
("dwTotalBroadCastNum", h_DWORD), # 当前语音广播的路数
(" dwRes", h_DWORD*10), # 保留,置为0
]

# SDK功能信息结构体
class NET_DVR_SDKABL(Structure):
_fields_ = [
("dwMaxLoginNum", h_DWORD), # 最大注册用户数
("dwMaxRealPlayNum", h_DWORD), # 最大实时预览的路数
("dwMaxPlayBackNum", h_DWORD), # 最大回放或下载的路数
("dwMaxAlarmChanNum", h_DWORD), # 最大建立报警通道的路数
("dwMaxFormatNum", h_DWORD), # 最大硬盘格式化的路数
("dwMaxFileSearchNum", h_DWORD), # 最大文件搜索的路数
("dwMaxLogSearchNum", h_DWORD), # 最大日志搜索的路数
("dwMaxSerialNum", h_DWORD), # 最大建立透明通道的路数
("dwMaxUpgradeNum", h_DWORD), # 最大升级的路数
("dwMaxVoiceComNum", h_DWORD), # 最大语音转发的路数
("dwMaxBroadCastNum", h_DWORD), # 最大语音广播的路数
(" dwRes", h_DWORD*10), # 保留,置为0
]

0 comments on commit d071466

Please sign in to comment.