熵基门禁控制器二次SDK开发思路

dzkaiwen 2月前 247

/*
namespace zkpull
	
*/

dll = ..raw.loadDll("\res\plcommpro.dll");
//连接设备
Connect = function(ip, port) {
    if (!port) {
        port = 4370;
    }
    var contxt = "protocol=TCP,ipaddress=" + ip + ",port=" + port + ",timeout=4000,passwd=";
    var handle = dll.Connect(contxt);
    return handle;
    
}
//开门

ControlDevice = function(handle, OperationID) {
    
    var handle = dll.ControlDevice(handle, 1, 1, 1, 3, 0, "")
    return handle;
}
//设置数据
SetDeviceData = function(handle, TableName, Data, Options) {
    data = "TimezoneId=1 SunTime1=2300 SunTime2=0 SunTime3=0 MonTime1=2359 MonTime2=0 MonTime3=0 TueTime1=2359 TueTime2=0 TueTime3=0 WedTime1=2359 WedTime2=0 WedTime3=0 ThuTime1=2359 ThuTime2=0 ThuTime3=0 FriTime1=2359 FriTime2=0 FriTime3=0 SatTime1=2359 SatTime2=0 SatTime3=0 Hol1Time1=2359 Hol1Time2=0 Hol1Time3=0 Hol2Time1=2359 "
    TableName = "timezone" //权限表
    var handle = dll.SetDeviceData(handle, TableName, Data, Options)
    return handle;
}
//获取设备表数据
GetDeviceData = function(handle, TableName, FieldNames, Filter) {
    //TableName 数据表名,目前可用的表名参见附表四
    //FieldNames 字段名列表,多个字段之间用\t分开,“*”表示全部字段,此时返回数据字段的第一行是字段名
    //Filter 读取数据的条件,当单独一个“字段名 操作符 值”构成的字符串时,可以支持多个条件,使用\t分隔,按如下方式:
    import raw
    var sise = 1024;
    var ret = raw.buffer(sise);
    var handle = dll.GetDeviceData(handle, ret, sise, TableName, FieldNames, Filter, '')
    return ret;
    
}

SearchDevice = function() {
    import raw
    var ret = raw.buffer(1024);
    
    var handle = dll.SetDeviceData("UPD", "255.255.255.255", ret)
    import console
    console.varDump(ret)
    return ret;
    
}

SetDeviceParam = function(handle, item) {
    //设置IP地址为
    //var item="DeviceID=1,IPAddress=192.168.1.201,GATEIPAddress=192.168.1.1,NetMask=255.255.255.0,Door1SensorType=0,Door1Drivertime=1,Door1Intertime=1" ; 
    var ret = dll.SetDeviceParam(handle, item)
    import console
    console.log(ret)
    return ret;
    
}
GetDeviceParam = function(handle, Buffer, BufferSize, item) {
    
    var ret = raw.buffer(1024);
    //var item="DeviceID=1,IPAddress=192.168.1.201,GATEIPAddress=192.168.1.1,NetMask=255.255.255.0,Door1SensorType=0,Door1Drivertime=1,Door1Intertime=1" ; 
    var ret = dll.GetDeviceParam(handle, ret, 1024, item)
    import console
    console.log(ret)
    return ret;
    
}

//删除设备中的数据
DeleteDeviceData = function(handle, TableName, Data, Options) { //句柄,表名,条件,扩展
    if (!data) { //等于空的话.就是删除所有
        data = "*"
    }
    
    var ret = dll.DeleteDeviceData(handle, TableName, Data, '')
    import console
    console.log(ret)
    return ret;
}
//获取所有记录. 如果想实时.就
//""
GetRTLogExt = function(handle) {
    import raw
    var sise = 512;
    var ret = raw.buffer(sise);
    dll.GetRTLogExt(handle, ret, sise);
    return ret;
}
//获取版本
GetPullSDKVersion = function(handle) {
    dll.GetPullSDKVersion(handle, ret, sise);
    
}
Disconnect = function(handle) {
    
    //dll.Disconnect(handle);
    dll.DisconnectEx(handle);
    
}

PullLastError = function(handle) {
    
    var ret = dll.PullLastError(handle);
    return ret;
    
}

zk_err = function(id) {
	
    var ret = "";
    
    if (id = -1) {
        ret = "命令发送失败";
    }
    elseif(id = -2) {
        ret = "命令没有回应";
    }
    elseif(id = -3) {
        ret = "需要的缓存不足";
    }
    elseif(id = -4) {
        ret = "解压失败";
    }
    elseif(id = -5) {
        ret = "读取数据长度不对";
    }
    elseif(id = -6) {
        ret = "解压的长度和期望的长度不一致";
    }
    elseif(id = -7) {
        ret = "命令重复";
    }
    elseif(id = -8) {
        ret = "连接尚未授权";
    }
    elseif(id = -9) {
        ret = "数据错误,CRC校验失败";
    }
    elseif(id = -10) {
        ret = "数据错误,PullSDK无法解析";
    }
    elseif(id = -11) {
        ret = "数据参数错误";
    }
    elseif(id = -12) {
        ret = "命令执行错误";
    }
    elseif(id = -13) {
        ret = "命令错误,没有此命令";
    }
    elseif(id = -14) {
        ret = "通讯密码错误";
    }
    elseif(id = -15) {
        ret = "写文件失败";
    }
    
    
    return ret;
}

//Disconnect(124444)

/*****intellisense()

 Connect(ip, port))=连接设备
ControlDevice()=开门
SetDeviceData()=设备参数
GetDeviceData()=获取设备参数
SearchDevice()=查找设备
SetDeviceParam()=设备参数
DeleteDeviceData()=删除设备数据
GetRTLogExt()=获取进出记录
GetPullSDKVersion()=设备版本
Disconnect()=断开连接
PullLastError()=最后错误
zk_err()=ID转文本


end intellisense*****/


最新回复 (1)
  • netfox 2月前
    0 2

返回