import os
import ctypes
import datetime
import time
#获取所有的库文件到一个列表
path = "/home/caobin/chike/chike/CH_HCNetSDK_V5.2.7.4_build20170606_Linux64/lib/"
so_list = []
def add_so(path,so_list):
files = os.listdir(path)
for file in files:
if not os.path.isdir(path+file):
if file.endswith(".so"): so_list.append(path+file)
else:
add_so(path+file+"/",so_list)
add_so(path,so_list)
for lib in so_list:
print(lib)
lUserID = 0
m_lAlarmHandle = 0
def callCpp(func_name,*args):
for so_lib in so_list:
# print(so_lib)
try:
lib = ctypes.cdll.LoadLibrary(so_lib)
try:
value = eval("lib.%s"%func_name)(*args)
print("调用的库:"+so_lib)
print("执行成功,返回值:"+str(value))
return value
except:
continue
except:
print("库文件载入失败:"+so_lib)
continue
print("没有找到接口!")
return False
#定义结构体
class LPNET_DVR_DEVICEINFO_V30(ctypes.Structure):
_fields_ = [
("sSerialNumber", ctypes.c_byte * 48),
("byAlarmInPortNum", ctypes.c_byte),
("byAlarmOutPortNum", ctypes.c_byte),
("byDiskNum", ctypes.c_byte),
("byDVRType", ctypes.c_byte),
("byChanNum", ctypes.c_byte),
("byStartChan", ctypes.c_byte),
("byAudioChanNum", ctypes.c_byte),
("byIPChanNum", ctypes.c_byte),
("byZeroChanNum", ctypes.c_byte),
("byMainProto", ctypes.c_byte),
("bySubProto", ctypes.c_byte),
("bySupport", ctypes.c_byte),
("bySupport1", ctypes.c_byte),
("bySupport2", ctypes.c_byte),
("wDevType", ctypes.c_u