package com.ycl.api.YS.config.basic; 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_DAY_IN_WEEK_E; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_DST_CFG_S; import com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_DST_OFFSET_TIME; import javax.swing.*; /** * * @introduction DST configuration * @description Support IPC/NVR/VMS */ public class DST { /** * * @introduction Get DST * @description Calling the interface of NETDEV_GetDevConfig * */ public static void getDst() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first.error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return ; } IntByReference dwBytesReturned = new IntByReference(); NETDEV_DST_CFG_S dstInfo=new NETDEV_DST_CFG_S(); dstInfo.write(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_DST_CFG, dstInfo.getPointer(),dstInfo.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 { dstInfo.read(); if(dstInfo.bEnableDST==0) { NetDemo.chckbxEnableSummerTime.setSelected(false); }else { NetDemo.chckbxEnableSummerTime.setSelected(true); } int beginMonth = dstInfo.stTimeDSTCfg.stBeginTime.dwMonth; NetDemo.comboBoxDstBeginMonth.setSelectedIndex(beginMonth-1); int endMonth = dstInfo.stTimeDSTCfg.stEndTime.dwMonth; NetDemo.comboBoxDSTENDMonth.setSelectedIndex(endMonth-1); int beginDayInWeek = dstInfo.stTimeDSTCfg.stBeginTime.dwDayInWeek; if(beginDayInWeek==0) { NetDemo.comboBoxDSTBeginTimeWeek.setSelectedIndex(6); }else { NetDemo.comboBoxDSTBeginTimeWeek.setSelectedIndex(beginDayInWeek-1); } int endDayInWeek = dstInfo.stTimeDSTCfg.stEndTime.dwDayInWeek; if(endDayInWeek==0) { NetDemo.comboBoxDSTEndTimeWeek.setSelectedIndex(6); }else { NetDemo.comboBoxDSTEndTimeWeek.setSelectedIndex(endDayInWeek-1); } int beginWeekInMonth = dstInfo.stTimeDSTCfg.stBeginTime.dwWeekInMonth; NetDemo.comboBoxBeginTimeWeekNum.setSelectedIndex(beginWeekInMonth-1); int endWeekInMonth = dstInfo.stTimeDSTCfg.stEndTime.dwWeekInMonth; NetDemo.comboBoxDSTEndTimeWeekNum.setSelectedIndex(endWeekInMonth-1); int beginHour = dstInfo.stTimeDSTCfg.stBeginTime.dwHour; NetDemo.comboBoxDSTBeginTimeHour.setSelectedIndex(beginHour); int endHour = dstInfo.stTimeDSTCfg.stEndTime.dwHour; NetDemo.comboBoxDSTEndTimeHour.setSelectedIndex(endHour); int OffsetTime = dstInfo.stTimeDSTCfg.dwOffsetTime; NetDemo.comboBoxDSTBias.setSelectedIndex((OffsetTime/30)-1); } } /** * * @introduction Set DST * @description Calling the interface of NETDEV_SetDevConfig * */ public static void setDst() { if(null == NetDemo.lpUserID){ JOptionPane.showMessageDialog(null, "Please Login device first.error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); return ; } IntByReference dwBytesReturned = new IntByReference(); NETDEV_DST_CFG_S dstInfo=new NETDEV_DST_CFG_S(); dstInfo.write(); boolean bRet = NetDemo.netdevsdk.NETDEV_GetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_GET_DST_CFG, dstInfo.getPointer(),dstInfo.size(),dwBytesReturned); if(bRet != true) { System.out.printf("NETDEV_GetDevConfig failed:%d\n", NetDemo.netdevsdk.NETDEV_GetLastError()); } else { dstInfo.read(); if(NetDemo.chckbxEnableSummerTime.isSelected()) { dstInfo.bEnableDST=1; }else { dstInfo.bEnableDST=0; } int beginMonth=0; switch (NetDemo.comboBoxDstBeginMonth.getItemAt(NetDemo.comboBoxDstBeginMonth.getSelectedIndex())) { case "January": beginMonth = 1; break; case "February": beginMonth = 2; break; case "March": beginMonth = 3; break; case "April": beginMonth = 4; break; case "May": beginMonth = 5; break; case "June": beginMonth = 6; break; case "July": beginMonth = 7; break; case "August": beginMonth = 8; break; case "September": beginMonth = 9; break; case "October": beginMonth = 10; break; case "November": beginMonth = 11; break; case "December": beginMonth = 12; break; } dstInfo.stTimeDSTCfg.stBeginTime.dwMonth=beginMonth; int weekInMonth=0; switch (NetDemo.comboBoxBeginTimeWeekNum.getItemAt(NetDemo.comboBoxBeginTimeWeekNum.getSelectedIndex())) { case "First": weekInMonth = 1; break; case "Second": weekInMonth = 2; break; case "Third": weekInMonth = 3; break; case "Fourth": weekInMonth = 4; break; case "Last": weekInMonth = 5; break; } dstInfo.stTimeDSTCfg.stBeginTime.dwWeekInMonth=weekInMonth; int dayInWeek=0; switch (NetDemo.comboBoxDSTBeginTimeWeek.getItemAt(NetDemo.comboBoxDSTBeginTimeWeek.getSelectedIndex())) { case "Mon": dayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_MONDAY; break; case "Tue": dayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_TUESDAY; break; case "Wed": dayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_WEDNESDAY; break; case "Thu": dayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_THURSDAY; break; case "Fri": dayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_FRIDAY; break; case "Sat": dayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_SATURDAY; break; case "Sun": dayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_SUNDAY; break; } dstInfo.stTimeDSTCfg.stBeginTime.dwDayInWeek=dayInWeek; int BeginHour=0; switch (NetDemo.comboBoxDSTBeginTimeHour.getItemAt(NetDemo.comboBoxDSTBeginTimeHour.getSelectedIndex())) { case "00": BeginHour = 0; break; case "01": BeginHour = 1; break; case "02": BeginHour = 2; break; case "03": BeginHour = 3; break; case "04": BeginHour = 4; break; case "05": BeginHour = 5; break; case "06": BeginHour = 6; break; case "07": BeginHour = 7; break; case "08": BeginHour = 8; break; case "09": BeginHour = 9; break; case "10": BeginHour = 10; break; case "11": BeginHour = 11; break; case "12": BeginHour = 12; break; case "13": BeginHour = 13; break; case "14": BeginHour = 14; break; case "15": BeginHour = 15; break; case "16": BeginHour = 16; break; case "17": BeginHour = 17; break; case "18": BeginHour = 18; break; case "19": BeginHour = 19; break; case "20": BeginHour = 20; break; case "21": BeginHour = 21; break; case "22": BeginHour = 22; break; case "23": BeginHour = 23; break; } dstInfo.stTimeDSTCfg.stBeginTime.dwHour=BeginHour; int EedMonth=0; switch (NetDemo.comboBoxDSTENDMonth.getItemAt(NetDemo.comboBoxDSTENDMonth.getSelectedIndex())) { case "January": EedMonth = 1; break; case "February": EedMonth = 2; break; case "March": EedMonth = 3; break; case "April": EedMonth = 4; break; case "May": EedMonth = 5; break; case "June": EedMonth = 6; break; case "July": EedMonth = 7; break; case "August": EedMonth = 8; break; case "September": EedMonth = 9; break; case "October": EedMonth = 10; break; case "November": EedMonth = 11; break; case "December": EedMonth = 12; break; } dstInfo.stTimeDSTCfg.stEndTime.dwMonth=EedMonth; int EndWeekInMonth=0; switch (NetDemo.comboBoxDSTEndTimeWeekNum.getItemAt(NetDemo.comboBoxDSTEndTimeWeekNum.getSelectedIndex())) { case "First": EndWeekInMonth = 1; break; case "Second": EndWeekInMonth = 2; break; case "Third": EndWeekInMonth = 3; break; case "Fourth": EndWeekInMonth = 4; break; case "Last": EndWeekInMonth = 5; break; } dstInfo.stTimeDSTCfg.stEndTime.dwWeekInMonth=EndWeekInMonth; int EnddayInWeek=0; switch (NetDemo.comboBoxDSTEndTimeWeek.getItemAt(NetDemo.comboBoxDSTEndTimeWeek.getSelectedIndex())) { case "Mon": EnddayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_MONDAY; break; case "Tue": EnddayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_TUESDAY; break; case "Wed": EnddayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_WEDNESDAY; break; case "Thu": EnddayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_THURSDAY; break; case "Fri": EnddayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_FRIDAY; break; case "Sat": EnddayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_SATURDAY; break; case "Sun": EnddayInWeek = NETDEV_DAY_IN_WEEK_E.NETDEV_WEEK_SUNDAY; break; } dstInfo.stTimeDSTCfg.stEndTime.dwDayInWeek=EnddayInWeek; int EndHour=0; switch (NetDemo.comboBoxDSTEndTimeHour.getItemAt(NetDemo.comboBoxDSTEndTimeHour.getSelectedIndex())) { case "00": BeginHour = 0; break; case "01": EndHour = 1; break; case "02": EndHour = 2; break; case "03": EndHour = 3; break; case "04": EndHour = 4; break; case "05": EndHour = 5; break; case "06": EndHour = 6; break; case "07": EndHour = 7; break; case "08": EndHour = 8; break; case "09": EndHour = 9; break; case "10": EndHour = 10; break; case "11": EndHour = 11; break; case "12": EndHour = 12; break; case "13": EndHour = 13; break; case "14": EndHour = 14; break; case "15": EndHour = 15; break; case "16": EndHour = 16; break; case "17": EndHour = 17; break; case "18": EndHour = 18; break; case "19": EndHour = 19; break; case "20": EndHour = 20; break; case "21": EndHour = 21; break; case "22": EndHour = 22; break; case "23": EndHour = 23; break; } dstInfo.stTimeDSTCfg.stEndTime.dwHour=EndHour; int offsetTime=30; switch (NetDemo.comboBoxDSTBias.getItemAt(NetDemo.comboBoxDSTBias.getSelectedIndex())) { case "30mins": offsetTime = NETDEV_DST_OFFSET_TIME.NETDEV_DST_OFFSET_TIME_30MIN; break; case "60mins": offsetTime = NETDEV_DST_OFFSET_TIME.NETDEV_DST_OFFSET_TIME_60MIN; break; case "90mins": offsetTime = NETDEV_DST_OFFSET_TIME.NETDEV_DST_OFFSET_TIME_90MIN; break; case "120mins": offsetTime = NETDEV_DST_OFFSET_TIME.NETDEV_DST_OFFSET_TIME_120MIN; break; } dstInfo.stTimeDSTCfg.dwOffsetTime=offsetTime; dstInfo.write(); boolean bRet2 = NetDemo.netdevsdk.NETDEV_SetDevConfig(NetDemo.lpUserID, NetDemo.ChannelID, NETDEV_CONFIG_COMMAND_E.NETDEV_SET_DST_CFG, dstInfo.getPointer(), dstInfo.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()); }else { JOptionPane.showMessageDialog(null, "Set success"); NetDemo.jButtonGetSummerTime.doClick(); } } } }