| | |
| | | |
| | | import com.sun.jna.Pointer; |
| | | import com.sun.jna.ptr.IntByReference; |
| | | import com.ycl.api.DH.lib.ToolKits; |
| | | import com.ycl.api.DH.utils.DHApi; |
| | | import com.ycl.api.YS.lib.NetDEVSDKLib; |
| | | import com.ycl.api.YS.login.Login; |
| | | import com.ycl.api.YS.util.Common; |
| | | import com.ycl.platform.domain.result.OSDResult; |
| | | import com.ycl.utils.StringUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import javax.swing.*; |
| | | import javax.swing.table.DefaultTableModel; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Vector; |
| | | |
| | | 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); |
| | | 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(); |
| | | 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.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); |
| | | Pointer lpUserID = YSInit.netdevsdk.NETDEV_Login_V30(stDevLoginInfo, stSELogInfo); |
| | | if (lpUserID != null) { |
| | | OSDResult osdResult = new OSDResult(); |
| | | //获取通道 |
| | | int nMaxChlCount = 256; |
| | | IntByReference dwChlCount = new IntByReference(nMaxChlCount); |
| | | NetDEVSDKLib.NETDEV_VIDEO_CHL_DETAIL_INFO_EX_S[] stVideoChlList = (NetDEVSDKLib.NETDEV_VIDEO_CHL_DETAIL_INFO_EX_S[]) new NetDEVSDKLib.NETDEV_VIDEO_CHL_DETAIL_INFO_EX_S().toArray(nMaxChlCount); |
| | | boolean bRe = YSInit.netdevsdk.NETDEV_QueryVideoChlDetailListEx(lpUserID, dwChlCount, stVideoChlList); |
| | | if (!bRe) { |
| | | log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError()); |
| | | return null; |
| | | } |
| | | //获取时间 |
| | | NetDEVSDKLib.NETDEV_TIME_CFG_S stTimeCfg = new NetDEVSDKLib.NETDEV_TIME_CFG_S(); |
| | | stTimeCfg.write(); |
| | | boolean bRetime = NetDemo.netdevsdk.NETDEV_GetSystemTimeCfg(lpUserID, stTimeCfg); |
| | | if (!bRetime) { |
| | | log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError()); |
| | | return null; |
| | | } else { |
| | | stTimeCfg.read(); |
| | | String strTime = "" + stTimeCfg.stTime.dwYear + "-"; |
| | | if (stTimeCfg.stTime.dwMonth < 10) { |
| | | strTime += "0"; |
| | | } |
| | | strTime = strTime + stTimeCfg.stTime.dwMonth + "-"; |
| | | if (stTimeCfg.stTime.dwDay < 10) { |
| | | strTime += "0"; |
| | | } |
| | | strTime = strTime + stTimeCfg.stTime.dwDay + " "; |
| | | if (stTimeCfg.stTime.dwHour < 10) { |
| | | strTime += "0"; |
| | | } |
| | | strTime = strTime + stTimeCfg.stTime.dwHour + ":"; |
| | | if (stTimeCfg.stTime.dwMinute < 10) { |
| | | strTime += "0"; |
| | | } |
| | | strTime = strTime + stTimeCfg.stTime.dwMinute + ":"; |
| | | |
| | | log.info("登录返回id:{}",lpUserID); |
| | | if(lpUserID !=null) { |
| | | log.info("登录成功"); |
| | | if (stTimeCfg.stTime.dwSecond < 10) { |
| | | strTime += "0"; |
| | | } |
| | | strTime = strTime + stTimeCfg.stTime.dwSecond; |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | try { |
| | | osdResult.setOsdTime(format.parse(strTime)); |
| | | } catch (Exception e) { |
| | | log.error(ip + "时间解析有误"); |
| | | } |
| | | } |
| | | //获取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); |
| | | boolean bRet = YSInit.netdevsdk.NETDEV_GetDevConfig(lpUserID, stVideoChlList[0].dwChannelID, NetDEVSDKLib.NETDEV_CONFIG_COMMAND_E.NETDEV_GET_OSDCFG, stOSDInfo.getPointer(), 616, dwBytesReturned); |
| | | if (!bRet) { |
| | | log.error("error code"+YSInit.netdevsdk.NETDEV_GetLastError()); |
| | | log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError()); |
| | | return null; |
| | | } |
| | | stOSDInfo.read(); |
| | | //省份 |
| | | String name = new String(stOSDInfo.stNameOSD.szOSDText, StandardCharsets.UTF_8); |
| | | osdResult.setOSD1(name); |
| | | int num = 0; |
| | | for (NetDEVSDKLib.NETDEV_OSD_TEXT_OVERLAY_S osd : stOSDInfo.astTextOverlay) { |
| | | String text = new String(osd.szOSDText, StandardCharsets.UTF_8); |
| | | log.info("text:" + text); |
| | | String text = new String(osd.szOSDText, StandardCharsets.UTF_8).trim(); |
| | | if (num == 0) { |
| | | osdResult.setOSD2(text); |
| | | } else if (num == 1) { |
| | | osdResult.setOSD3(text); |
| | | } else if (num == 2) { |
| | | osdResult.setName(text); |
| | | } else if (num == 3) { |
| | | osdResult.setOSD4(text); |
| | | } |
| | | num++; |
| | | } |
| | | //登出 |
| | | YSInit.netdevsdk.NETDEV_Logout(lpUserID); |
| | | }else { |
| | | log.error("error code"+YSInit.netdevsdk.NETDEV_GetLastError()); |
| | | return osdResult; |
| | | } else { |
| | | log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError()); |
| | | } |
| | | return null; |
| | | } |
| | | public static void demo(){ |
| | | |
| | | public static void demo() { |
| | | Login.loginIn(); |
| | | } |
| | | } |