package com.ycl.api.YS.config.image; 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_WHITE_BALANCE_INFO_S; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_WHITE_BALANCE_MODE_E; import javax.swing.*; /** * * @introduction White balance * @description Support IPC */ public class WhiteBlance { /** * * @introduction Get white balance configure information * @description Calling the interface of NETDEV_GetDevConfig * */ public static void getWhiteBlance() { 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_WHITE_BALANCE_INFO_S balanceInfo=new NETDEV_WHITE_BALANCE_INFO_S(); balanceInfo.write(); IntByReference dwBytesReturned = new IntByReference(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_IMAGE_WHITE_BALANCE, balanceInfo.getPointer(), balanceInfo.size(), dwBytesReturned ); if(bRet != true) { JOptionPane.showMessageDialog(null, "Get failed,maybe not support,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { balanceInfo.read(); int udwMode = balanceInfo.udwMode; NetDemo.jComboBoxWhiteBalance.setSelectedIndex(udwMode); if(udwMode==1||udwMode==5||udwMode==8) { NetDemo.textRedOffSet.setEditable(true); NetDemo.RedoffSetslider.setValue(balanceInfo.dwRedOffset); NetDemo.textBlueOffSet.setEditable(true); NetDemo.BlueoffSetslider.setValue(balanceInfo.dwBlueOffset); }else { NetDemo.textRedOffSet.setEditable(false); NetDemo.textBlueOffSet.setEditable(false); NetDemo.BlueoffSetslider.setValue(0); NetDemo.RedoffSetslider.setValue(0); } NetDemo.textRedOffSet.setText(String.valueOf(balanceInfo.dwRedOffset)); NetDemo.textBlueOffSet.setText(String.valueOf(balanceInfo.dwBlueOffset)); } } /** * * @introduction Set WhiteBlance * @description Calling the interface of NETDEV_SetDevConfig * */ public static void setWhiteBlance() { if(null == NetDemo.lpUserID) { JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return; } NETDEV_WHITE_BALANCE_INFO_S balanceInfo=new NETDEV_WHITE_BALANCE_INFO_S(); balanceInfo.write(); IntByReference dwBytesReturned = new IntByReference(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_IMAGE_WHITE_BALANCE, balanceInfo.getPointer(),balanceInfo.size(), dwBytesReturned ); if(bRet != true) { System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { balanceInfo.read(); int Mode=0; if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("AUTO")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_AUTO; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("TRIMMING")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_TRIMMING; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("INDOOR")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_INDOOR; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("OUTDOOR")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_OUTDOOR; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("MERCURYLAMP")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_AUTO_MERCURY_LAMP; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("NIGHT")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_NIGHT_TRIMMING; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("AUTONALAMP")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_AUTO_NA_LAMP; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("LOCK")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_LOCK; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("SELFADAPT")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_SELF_ADAPT_NIGHT_TRIMMING; }else if(NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("AUTOSECOND")) { Mode=NETDEV_WHITE_BALANCE_MODE_E.NETDEV_WBM_AUTO_SECOND; } balanceInfo.udwMode=Mode; String getRedTextString=NetDemo.textRedOffSet.getText(); int tRedTextString=0; try { tRedTextString=Integer.parseInt(getRedTextString); }catch(Exception n) { JOptionPane.showMessageDialog(null, "Red Parameter Exception"); NetDemo.textRedOffSet.setText(null); return; } balanceInfo.dwRedOffset=tRedTextString; String getBlueTextString=NetDemo.textBlueOffSet.getText(); int blueTextString=0; try { blueTextString=Integer.parseInt(getBlueTextString); }catch(Exception n) { JOptionPane.showMessageDialog(null, "Blue Parameter Exception"); NetDemo.textBlueOffSet.setText(null); return; } balanceInfo.dwBlueOffset=blueTextString; balanceInfo.write(); boolean bRet2 = NetDemo.netdevsdk.NETDEV_SetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID,NETDEV_CONFIG_COMMAND_E.NETDEV_SET_IMAGE_WHITE_BALANCE, balanceInfo.getPointer(), balanceInfo.size() ); if(bRet2 != true) { 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 success"); } } } /** * * @introduction Change white balance * @description * */ public static void comboxWhiteBlance() { 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; } if((NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("TRIMMING"))|| (NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("NIGHT"))|| (NetDemo.jComboBoxWhiteBalance.getItemAt(NetDemo.jComboBoxWhiteBalance.getSelectedIndex()).equals("SELFADAPT"))) { NetDemo.textRedOffSet.setEditable(true); NetDemo.textBlueOffSet.setEditable(true); NetDemo.BlueoffSetslider.setEnabled(true); NetDemo.RedoffSetslider.setEnabled(true); }else { NetDemo.textRedOffSet.setEditable(false); NetDemo.textBlueOffSet.setEditable(false); NetDemo.BlueoffSetslider.setEnabled(false); NetDemo.RedoffSetslider.setEnabled(false); } NETDEV_WHITE_BALANCE_INFO_S balanceInfo=new NETDEV_WHITE_BALANCE_INFO_S(); balanceInfo.write(); IntByReference dwBytesReturned = new IntByReference(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_IMAGE_WHITE_BALANCE, balanceInfo.getPointer(), balanceInfo.size(), dwBytesReturned ); if(bRet != true) { System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); return; }else { if(balanceInfo.udwMode==NetDemo.jComboBoxWhiteBalance.getSelectedIndex()) { int udwMode = balanceInfo.udwMode; NetDemo.jComboBoxWhiteBalance.setSelectedIndex(udwMode); NetDemo.textRedOffSet.setText(String.valueOf(balanceInfo.dwRedOffset)); NetDemo.textBlueOffSet.setText(String.valueOf(balanceInfo.dwBlueOffset)); } } } }