package com.ycl.api.YS;
|
|
|
import com.sun.jna.Pointer;
|
import com.sun.jna.ptr.IntByReference;
|
import com.ycl.api.DH.utils.DHApi;
|
import com.ycl.api.YS.lib.NetDEVSDKLib;
|
import com.ycl.api.YS.login.Login;
|
import com.ycl.platform.domain.result.OSDResult;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.nio.charset.StandardCharsets;
|
|
import static com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_LOGIN_PROTO_E.NETDEV_LOGIN_PROTO_ONVIF;
|
|
@Slf4j
|
public class YSApi {
|
|
public static OSDResult getOsd(String ip, String userName, String password){
|
log.info("ip:{},用户:{},密码:{}",ip,userName,password);
|
//登录
|
NetDEVSDKLib.NETDEV_DEVICE_LOGIN_INFO_S stDevLoginInfo = new NetDEVSDKLib.NETDEV_DEVICE_LOGIN_INFO_S();
|
NetDEVSDKLib.NETDEV_SELOG_INFO_S stSELogInfo = new NetDEVSDKLib.NETDEV_SELOG_INFO_S();
|
// System.arraycopy(userName.getBytes(), 0, stDevLoginInfo.szUserName, 0, userName.getBytes().length);
|
// System.arraycopy(password.getBytes(), 0, stDevLoginInfo.szPassword, 0, password.getBytes().length);
|
// System.arraycopy(ip.getBytes(), 0, stDevLoginInfo.szIPAddr, 0, ip.getBytes().length);
|
stDevLoginInfo.szUserName = userName.getBytes();
|
stDevLoginInfo.szPassword = password.getBytes();
|
stDevLoginInfo.szIPAddr = ip.getBytes();
|
stDevLoginInfo.dwPort = 80;
|
//登录协议
|
stDevLoginInfo.dwLoginProto = NETDEV_LOGIN_PROTO_ONVIF;
|
log.info("SDK传参ip:{},用户:{},密码:{}",stDevLoginInfo.szIPAddr,stDevLoginInfo.szUserName,stDevLoginInfo.szPassword);
|
Pointer lpUserID = YSInit.netdevsdk.NETDEV_Login_V30(stDevLoginInfo, stSELogInfo);
|
|
log.info("登录返回id:{}",lpUserID);
|
if(lpUserID !=null) {
|
log.info("登录成功");
|
//获取osd
|
NetDEVSDKLib.NETDEV_VIDEO_OSD_CFG_S stOSDInfo = new NetDEVSDKLib.NETDEV_VIDEO_OSD_CFG_S();
|
stOSDInfo.write();
|
IntByReference dwBytesReturned = new IntByReference();
|
|
boolean bRet = YSInit.netdevsdk.NETDEV_GetDevConfig(lpUserID, 0, NetDEVSDKLib.NETDEV_CONFIG_COMMAND_E.NETDEV_GET_OSDCFG, stOSDInfo.getPointer(), 616, dwBytesReturned);
|
if (!bRet) {
|
log.error("error code"+YSInit.netdevsdk.NETDEV_GetLastError());
|
return null;
|
}
|
stOSDInfo.read();
|
for (NetDEVSDKLib.NETDEV_OSD_TEXT_OVERLAY_S osd : stOSDInfo.astTextOverlay) {
|
String text = new String(osd.szOSDText, StandardCharsets.UTF_8);
|
log.info("text:" + text);
|
}
|
//登出
|
YSInit.netdevsdk.NETDEV_Logout(lpUserID);
|
}else {
|
log.error("error code"+YSInit.netdevsdk.NETDEV_GetLastError());
|
}
|
return null;
|
}
|
public static void demo(){
|
Login.loginIn();
|
}
|
}
|