package com.ycl.api.YS.config.network; import com.ycl.api.YS.NetDemo; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_PROTOCOL_TYPE_E; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_UPNP_NAT_STATE_S; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_UPNP_PORT_STATE_S; import javax.swing.*; import java.util.InputMismatchException; /** * * @introduction Port mapping * @description Only support IPC */ public class OnvifPort { /** * * @introduction Get port * @description Calling the interface of NETDEV_GetDevConfig * */ public static void getPort() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } NETDEV_UPNP_NAT_STATE_S stNatState = new NETDEV_UPNP_NAT_STATE_S(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetUpnpNatState(NetDemo.lpUserID, stNatState); if(bRet != true) { JOptionPane.showMessageDialog(null, "error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_GetUpnpNatState failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } stNatState.read(); for(int i =0; i < stNatState.dwSize; i++) { switch (stNatState.astUpnpPort[i].eType) { case NETDEV_PROTOCOL_TYPE_E.NETDEV_PROTOCOL_TYPE_HTTP: NetDemo.jTextFieldNetworkPortHTTP.setText(String.valueOf(stNatState.astUpnpPort[i].dwPort)); if(stNatState.astUpnpPort[i].bEnbale == 1) { NetDemo.jComboBoxNetworkPortHTTP.setSelectedIndex(1); }else { NetDemo.jComboBoxNetworkPortHTTP.setSelectedIndex(2); } break; case NETDEV_PROTOCOL_TYPE_E.NETDEV_PROTOCOL_TYPE_HTTPS: NetDemo.jTextFieldNetworkPortHTTPS.setText(String.valueOf(stNatState.astUpnpPort[i].dwPort)); if(stNatState.astUpnpPort[i].bEnbale == 1) { NetDemo.jComboBoxNetworkPortHTTPS.setSelectedIndex(1); }else { NetDemo.jComboBoxNetworkPortHTTPS.setSelectedIndex(2); } break; case NETDEV_PROTOCOL_TYPE_E.NETDEV_PROTOCOL_TYPE_RTSP: NetDemo.jTextFieldNetworkPortRTSP.setText(String.valueOf(stNatState.astUpnpPort[i].dwPort)); if(stNatState.astUpnpPort[i].bEnbale == 1) { NetDemo.jComboBoxNetworkPortRTSP.setSelectedIndex(1); }else { NetDemo.jComboBoxNetworkPortRTSP.setSelectedIndex(2); } break; default: break; } } } /** * * @introduction Set port * @description Calling the interface of NETDEV_SetDevConfig * */ public static void setPort() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } NETDEV_UPNP_NAT_STATE_S stNatState = new NETDEV_UPNP_NAT_STATE_S(); stNatState.dwSize = 3; for(int i = 0; i < 3; i++) { stNatState.astUpnpPort[i] = new NETDEV_UPNP_PORT_STATE_S(); } stNatState.astUpnpPort[0].eType = NETDEV_PROTOCOL_TYPE_E.NETDEV_PROTOCOL_TYPE_HTTP; String FieldNetworkPortHTTP= NetDemo.jTextFieldNetworkPortHTTP.getText(); if(FieldNetworkPortHTTP==null||FieldNetworkPortHTTP.equals("")) { JOptionPane.showMessageDialog(null, "Please input httpport"); return; } int getFieldNetworkPortHTTP=0; try { getFieldNetworkPortHTTP=Integer.parseInt(FieldNetworkPortHTTP); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "Http port is null or transformation Exception"); NetDemo.jTextFieldNetworkPortHTTP.setText(null); return; } if(getFieldNetworkPortHTTP==0) { JOptionPane.showMessageDialog(null, "Http port can not use"); NetDemo.jTextFieldNetworkPortHTTP.setText(null); return; } if(getFieldNetworkPortHTTP>65535||getFieldNetworkPortHTTP<0) { JOptionPane.showMessageDialog(null, "Http port should between 0 and 65535"); NetDemo.jTextFieldNetworkPortHTTP.setText(null); return; } stNatState.astUpnpPort[0].dwPort = getFieldNetworkPortHTTP; if(NetDemo.jComboBoxNetworkPortHTTP.getSelectedIndex() == 1) { stNatState.astUpnpPort[0].bEnbale = 1; }else { stNatState.astUpnpPort[0].bEnbale = 0; } stNatState.astUpnpPort[1].eType = NETDEV_PROTOCOL_TYPE_E.NETDEV_PROTOCOL_TYPE_HTTPS; String FieldNetworkPortHTTPS= NetDemo.jTextFieldNetworkPortHTTPS.getText(); if(FieldNetworkPortHTTPS==null||FieldNetworkPortHTTPS.equals("")) { JOptionPane.showMessageDialog(null, "Please input httpsport"); return; } int getFieldNetworkPortHTTPS=0; try { getFieldNetworkPortHTTPS=Integer.parseInt(FieldNetworkPortHTTPS); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "Https port is null or transformation Exception"); NetDemo.jTextFieldNetworkPortHTTPS.setText(null); return; } if(getFieldNetworkPortHTTPS==0) { JOptionPane.showMessageDialog(null, "Https port can not use"); NetDemo.jTextFieldNetworkPortHTTPS.setText(null); return; } if(getFieldNetworkPortHTTPS<0 || getFieldNetworkPortHTTPS>65535) { JOptionPane.showMessageDialog(null, "Https port should between 0 and 65535"); NetDemo.jTextFieldNetworkPortHTTPS.setText(null); return; } stNatState.astUpnpPort[1].dwPort = getFieldNetworkPortHTTPS; if(NetDemo.jComboBoxNetworkPortHTTPS.getSelectedIndex() == 1) { stNatState.astUpnpPort[1].bEnbale = 1; }else { stNatState.astUpnpPort[1].bEnbale = 0; } stNatState.astUpnpPort[2].eType = NETDEV_PROTOCOL_TYPE_E.NETDEV_PROTOCOL_TYPE_RTSP; String FieldNetworkPortRTSP= NetDemo.jTextFieldNetworkPortRTSP.getText(); if(FieldNetworkPortRTSP==null||FieldNetworkPortRTSP.equals("")) { JOptionPane.showMessageDialog(null, "Please input rtspport"); return; } int getFieldNetworkPortRTSP=0; try { getFieldNetworkPortRTSP=Integer.parseInt(FieldNetworkPortRTSP); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "RTSP port is null or transformation Exception"); NetDemo.jTextFieldNetworkPortRTSP.setText(null); return; } if(getFieldNetworkPortRTSP==0) { JOptionPane.showMessageDialog(null, "RTSP port can not use"); NetDemo.jTextFieldNetworkPortRTSP.setText(null); return; } if(getFieldNetworkPortRTSP<0 ||getFieldNetworkPortRTSP>65535) { JOptionPane.showMessageDialog(null, "RTSP port is more than range"); NetDemo.jTextFieldNetworkPortRTSP.setText(null); return; } stNatState.astUpnpPort[2].dwPort = getFieldNetworkPortRTSP; if(NetDemo.jComboBoxNetworkPortRTSP.getSelectedIndex() == 1) { stNatState.astUpnpPort[2].bEnbale = 1; } else { stNatState.astUpnpPort[2].bEnbale = 0; } stNatState.write(); boolean bRet = NetDemo.netdevsdk.NETDEV_SetUpnpNatState(NetDemo.lpUserID, stNatState); if(bRet != true) { if(NetDemo.netdevsdk.NETDEV_GetLastError()==-1) { JOptionPane.showMessageDialog(null, "Set success"); }else { System.out.printf("NETDEV_SetUpnpNatState failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } }else { JOptionPane.showMessageDialog(null, "Set success"); } } }