package com.ycl.api.YS.config.video; import com.sun.jna.ptr.IntByReference; import com.ycl.api.YS.NetDemo; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_CONFIG_COMMAND_E; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_VIDEO_SNAPSHOT_S; import javax.swing.*; import java.util.InputMismatchException; /** * * @introduction SnapShot configure * @description Support IPC */ public class SnapShot { /** * * @introduction Get snapshot configure information * @description Calling the interface of NETDEV_GetDevConfig * */ public static void getSnapShot() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return ; } if(NetDemo.ChannelID == 0){ JOptionPane.showMessageDialog(null, "Please select an online channel after login."); return ; } NETDEV_VIDEO_SNAPSHOT_S snapshotInfo =new NETDEV_VIDEO_SNAPSHOT_S(); IntByReference dwBytesReturned = new IntByReference(); snapshotInfo.write(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_SNAPSHOT_CFG, snapshotInfo.getPointer(),snapshotInfo.size(),dwBytesReturned); if(bRet != true) { JOptionPane.showMessageDialog(null, "Get data failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); } else { snapshotInfo.read(); if(snapshotInfo.bIsEnabled==1) { NetDemo.chckbxEnableGetPicture.setSelected(true); }else { NetDemo.chckbxEnableGetPicture.setSelected(false); } NetDemo.textFieldSnapshotWidth.setText(String.valueOf(snapshotInfo.stResolution.dwWidth)); NetDemo.textFieldSnapshotHeight.setText(String.valueOf(snapshotInfo.stResolution.dwHeight)); NetDemo.textFieldPictureMaxSize.setText(String.valueOf(snapshotInfo.udwPictureMaxSize)); NetDemo.textFieldSnapshotInterval.setText(String.valueOf(snapshotInfo.udwSnapshotInterval)); NetDemo.textFieldSnapshotNum.setText(String.valueOf(snapshotInfo.udwSnapshotNum)); } } /** * * @introduction Set snapshot configure information * @description Calling the interface of NETDEV_SetDevConfig * */ public static void setSnapShot() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return ; } if(NetDemo.ChannelID == 0){ JOptionPane.showMessageDialog(null, "Please select an online channel after login."); return ; } NETDEV_VIDEO_SNAPSHOT_S snapshotInfo =new NETDEV_VIDEO_SNAPSHOT_S(); IntByReference dwBytesReturned = new IntByReference(); snapshotInfo.write(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_SNAPSHOT_CFG, snapshotInfo.getPointer(),snapshotInfo.size(),dwBytesReturned); if(bRet != true) { JOptionPane.showMessageDialog(null, "Get data failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; } else { snapshotInfo.read(); if(NetDemo.chckbxEnableGetPicture.isSelected()) { snapshotInfo.bIsEnabled=1; }else { snapshotInfo.bIsEnabled=0; } String gettextFieldSnapshotWidth=NetDemo.textFieldSnapshotWidth.getText(); int SnapshotWidth=0; if(gettextFieldSnapshotWidth==null||gettextFieldSnapshotWidth.equals("")) { JOptionPane.showMessageDialog(null, "Please input width"); return; } try { SnapshotWidth=Integer.parseInt(gettextFieldSnapshotWidth); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "Width is null or transformation Exception"); NetDemo.textFieldSnapshotWidth.setText(null); System.out.println("Width is null or transformation Exception"); return; } if(SnapshotWidth<0) { NetDemo.textFieldSnapshotWidth.setText(null); JOptionPane.showMessageDialog(null, "Width can not less than 0"); return; } String gettextFieldSnapshotHeight=NetDemo.textFieldSnapshotHeight.getText(); int shotHeight=0; if( gettextFieldSnapshotHeight==null||gettextFieldSnapshotHeight.equals("")) { JOptionPane.showMessageDialog(null, "Please input height"); return; } try { shotHeight=Integer.parseInt(gettextFieldSnapshotHeight); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "Height is null or transformation Exception"); NetDemo.textFieldSnapshotHeight.setText(null); return; } if(shotHeight<0) { NetDemo.textFieldSnapshotHeight.setText(null); JOptionPane.showMessageDialog(null, "Height can not less than 0"); return; } String gettextFieldPictureMaxSize=NetDemo.textFieldPictureMaxSize.getText(); int PictureMaxSize=0; if(gettextFieldPictureMaxSize==null||gettextFieldPictureMaxSize.equals("")) { JOptionPane.showMessageDialog(null, "Please input MaxSize"); return; } try { PictureMaxSize=Integer.parseInt(gettextFieldPictureMaxSize); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "MaxSize is null or transformation Exception"); NetDemo.textFieldPictureMaxSize.setText(null); return; } if(PictureMaxSize<0) { NetDemo.textFieldPictureMaxSize.setText(null); JOptionPane.showMessageDialog(null, "MaxSize can not less than 0"); return; } String gettextFieldSnapshotInterval=NetDemo.textFieldSnapshotInterval.getText(); int shotInterval=1; if(gettextFieldSnapshotInterval==null||gettextFieldSnapshotInterval.equals("")) { JOptionPane.showMessageDialog(null, "Please input Interval"); return; } try { shotInterval=Integer.parseInt(gettextFieldSnapshotInterval); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "Interval is null or transformation Exception"); NetDemo.textFieldSnapshotInterval.setText(null); return; } if(shotInterval<1) { NetDemo.textFieldSnapshotInterval.setText(null); JOptionPane.showMessageDialog(null, "Interval can not less than 1"); return; } if(shotInterval>60) { NetDemo.textFieldSnapshotInterval.setText(null); JOptionPane.showMessageDialog(null, "Interval can not more than sixty"); return; } String gettextFieldSnapshotNum=NetDemo.textFieldSnapshotNum.getText(); int shotNum=1; if(gettextFieldSnapshotNum==null||gettextFieldSnapshotNum.equals("")) { JOptionPane.showMessageDialog(null, "Please input num"); return; } try { shotNum=Integer.parseInt(gettextFieldSnapshotNum); }catch(NumberFormatException |InputMismatchException e2) { JOptionPane.showMessageDialog(null, "Num is null or transformation Exception"); NetDemo.textFieldSnapshotNum.setText(null); return; } if(shotNum<1||shotNum>3) { NetDemo.textFieldSnapshotNum.setText(null); JOptionPane.showMessageDialog(null, "Num should between 1 and 3"); return; } snapshotInfo.udwPictureMaxSize=PictureMaxSize; snapshotInfo.stResolution.dwWidth=SnapshotWidth; snapshotInfo.stResolution.dwHeight=shotHeight; snapshotInfo.udwSnapshotNum=shotNum; snapshotInfo.udwSnapshotInterval=shotInterval; snapshotInfo.write(); boolean bRet2 = NetDemo.netdevsdk.NETDEV_SetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_SET_SNAPSHOT_CFG, snapshotInfo.getPointer(), snapshotInfo.size()); if(!bRet2) { JOptionPane.showMessageDialog(null, "Set data failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_SetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { JOptionPane.showMessageDialog(null, "Set scuess"); NetDemo.jButtonGetSnapshot.doClick(); } } } }