Newer
Older
SensorHub / SensorHub.Utility / ApplicationContext.cs
root on 17 Sep 2021 21 KB first commit
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Data.OracleClient;
//using System.Data;
//namespace SensorHub.Utility
//{
//    public class ApplicationContext
//    {
//        private static ApplicationContext ap;

//        /*
//         * >119.254.110.71;2014!
//        **/
//        private static string SLIPCONFIG = "SL_BakServer";

//        /*
//         * SL_Start_Time=02:00
//         * SL_DenseData_Interval=3(3分钟上传一次)
//         * SL_DenseDate_Num=40(上传40次)
//         * SL_LooseData_StartTime=06:00
//         * SL_LooseDate_Interval=120(上传间隔120分钟一次)
//         * */
//        private static string SL_DenseData_StartTime = "SL_DenseData_StartTime";
//        private static string SL_DenseData_Interval = "SL_DenseData_Interval";
//        private static string SL_DenseData_Num = "SL_DenseData_Num";
//        private static string SL_LooseData_StartTime = "SL_LooseData_StartTime";
//        private static string SL_LooseDate_Interval = "SL_LooseDate_Interval";

//        private ApplicationContext()
//        { 
//        }

//        public static ApplicationContext getInstance()
//        {
//            if (ap == null)
//            {
//                ap = new ApplicationContext();
//            }
//            return ap;
//        }

//        public  string getSLIpConfig()
//        {
//            string dst = System.Configuration.ConfigurationSettings.AppSettings[SLIPCONFIG];
//            return dst;
//        }

//        //用于校时
//        public byte[] getDefaultLiquidConfigForCALI()
//        {

//            byte yy = byte.Parse(DateTime.Now.ToString("yy"));
//            byte MM = byte.Parse(DateTime.Now.ToString("MM"));
//            byte dd = byte.Parse(DateTime.Now.ToString("dd"));
//            byte HH = byte.Parse(DateTime.Now.ToString("HH"));
//            byte mm = byte.Parse(DateTime.Now.ToString("mm"));
//            byte ss = byte.Parse(DateTime.Now.ToString("ss"));
//            byte wk = byte.Parse("0" + ((int)DateTime.Now.DayOfWeek).ToString());


//            byte[] set2 = { 0x50, 
//                                0x00, 0x14,
//                                0x01,
//                                0x00, 0x00,0x34,
//                                0xC2,//C1用于配置,C2用于校时
//                                0x00, 0x05,//此数据帧用于校时,采集间隔无效
//                                0x01, 0x20,//此数据帧用于校时,发送次数无效
//                                ss,  mm,  HH,//秒、分、时
//                                wk,  dd,  MM,  yy,//星期、日、月、年
//                                0x03};
//            return set2;
//        }

//        public byte[] getDefaultLiquidConfigForUpdate()
//        {

//            byte yy = byte.Parse(DateTime.Now.ToString("yy"));
//            byte MM = byte.Parse(DateTime.Now.ToString("MM"));
//            byte dd = byte.Parse(DateTime.Now.ToString("dd"));
//            byte HH = byte.Parse(DateTime.Now.ToString("HH"));
//            byte mm = byte.Parse(DateTime.Now.ToString("mm"));
//            byte ss = byte.Parse(DateTime.Now.ToString("ss"));
//            byte wk = byte.Parse("0" + ((int)DateTime.Now.DayOfWeek).ToString());


//            byte[] set2 = { 0x50, 
//                                0x00, 0x14,
//                                0x01,
//                                0x00, 0x00,0x34,
//                                0xC1,//C1用于配置,C2用于校时
//                                0x00, 0x3C,//此数据帧用于校时,采集间隔无效
//                                0x00, 0x18,//此数据帧用于校时,发送次数无效
//                                ss,  mm,  HH,//秒、分、时
//                                wk,  dd,  MM,  yy,//星期、日、月、年
//                                0x03};
//            return set2;
//        }

//        public byte[] getDefaultSLConfig()
//        {
//            byte yy = byte.Parse(DateTime.Now.ToString("yy"));
//            byte MM = byte.Parse(DateTime.Now.ToString("MM"));
//            byte dd = byte.Parse(DateTime.Now.ToString("dd"));
//            byte HH = byte.Parse(DateTime.Now.ToString("HH"));
//            byte mm = byte.Parse(DateTime.Now.ToString("mm"));
//            byte ss = byte.Parse(DateTime.Now.ToString("ss"));
//            byte wk = byte.Parse("0" + ((int)DateTime.Now.DayOfWeek).ToString());

//            string denseStartTime = System.Configuration.ConfigurationSettings.AppSettings[SL_DenseData_StartTime];
//            string denseInterval = System.Configuration.ConfigurationSettings.AppSettings[SL_DenseData_Interval];
//            string denseNum = System.Configuration.ConfigurationSettings.AppSettings[SL_DenseData_Num];
//            string looseStartTime = System.Configuration.ConfigurationSettings.AppSettings[SL_LooseData_StartTime];
//            string looseInterval = System.Configuration.ConfigurationSettings.AppSettings[SL_LooseDate_Interval];

//            byte[] set = { 
//                            0xFF, 0x02, 0x16, 0xA1, 
//                            Convert.ToByte(denseStartTime.Substring(0,2)),
//                            Convert.ToByte(denseStartTime.Substring(2,2)),
//                            Convert.ToByte(denseInterval),
//                            Convert.ToByte(denseNum),
//                            0x04,0x00,
//                            0x05,0x00,
//                            Convert.ToByte(looseStartTime.Substring(0,2)),
//                            Convert.ToByte(looseStartTime.Substring(2,2)),
//                            Convert.ToByte(looseInterval),
//                            ss,mm,HH,
//                            wk,dd,MM,yy,
//                            0x41,0xB1,0x03
//                        };
//            return set;
//        }

//        public byte[] getSLNoiseDefaultConfig()
//        {
//            byte[] set = { 
//                            0xFF, 
//                            0x02,
//                            0x01,
//                            0x00,0x1C,
//                            0x00,0x00,0x32,
//                            0xC1,
//                            0x02,0x00,
//                            0x05,
//                            0x1E,
//                            0x05,0x00,
//                            0x05,0x00,
//                            0x08,0x00,
//                            0x3C,
//                            StringUtil.SEC,StringUtil.MIN,StringUtil.HOR,
//                            StringUtil.WEEK,StringUtil.DAY,StringUtil.MON,StringUtil.YEAR,
//                            0x03};
//            return set;
//        }

//        public byte[] getLSNoiseCALIConfig()
//        {
//            byte[] set = { 
//                            0xFF, 
//                            0x02,
//                            0x01,
//                            0x00,0x1C,
//                            0x00,0x00,0x32,
//                            0xC2,//表示该配置帧无效,仅用于校时
//                            0x03,0x00,//凌晨3点钟开始采集密集噪声
//                            0x03,//3分钟采集一次
//                            0x28,//采集40个。
//                            0x05,0x00,
//                            0x05,0x00,
//                            0x06,0x00,//早晨六点开始采集松散噪声。
//                            0x3C,
//                            StringUtil.SEC,StringUtil.MIN,StringUtil.HOR,
//                            StringUtil.WEEK,StringUtil.DAY,StringUtil.MON,StringUtil.YEAR,
//                            0x03};
//            return set;
//        }

//        public byte[] getLSSectionCloseConfig()
//        {
//            byte[] sectionClose = { 
//                0xFF, 
//                0x00,0x09, 
//                0x02, 
//                0x00,0x00,0x32, 
//                0x00, 
//                0x03 };
//            return sectionClose;
//        }

//        public byte[] getLSNoiseDefaultConfig()
//        {
//            byte[] set = { 
//                            0xFF,
//                            0x02,
//                            0x01,
//                            0x00,0x1C,
//                            0x00,0x00,0x32,
//                            0xC1,
//                            0x03,0x00,//凌晨3点钟开始采集密集噪声
//                            0x03,//3分钟采集一次
//                            0x28,//采集40个。
//                            0x05,0x00,
//                            0x05,0x00,
//                            0x06,0x00,//早晨六点开始采集松散噪声。
//                            0x3C,
//                            StringUtil.SEC,StringUtil.MIN,StringUtil.HOR,
//                            StringUtil.WEEK,StringUtil.DAY,StringUtil.MON,StringUtil.YEAR,
//                            0x03};
//            return set;
//        }

//        public byte[] getLSFlowDefaultConfig()
//        {
//            byte[] set = { 0x3A, 
//                            0x00, 0x0D, 
//                            0x01, 
//                            0x00, 0x00, 0x31, 
//                            0xC1, 
//                            0x00, 0x05,//默认五分钟采集一次
//                            0x01, 0x20, //默认一天发送288次
//                            0x03 };
//            return set;
//        }

//        public byte[] getLSPressDefaultConfig()
//        {
//            byte[] set = { 0x40, 
//                             0x00, 0x0D, 
//                             0x01, 
//                             0x00, 0x00, 0x33, 
//                             0xC1, 
//                             0x00, 0x05, 
//                             0x00, 0x90, 
//                             0x03 };
//            return set;
//        }

//        public byte[] getLiquidEndSectionConfig()
//        {
//            byte[] set = { 0x50, 
//                                 0x00, 0x09,
//                                 0x02,
//                                 0x00, 0x00,0x34,
//                                 0x00,
//                                 0x03};
//            return set;
//        }

//        //查询雨量计设备Id号的请求帧
//        public byte[] getYuLiangCheckIdConfig()
//        { 
//            byte[] set ={0x48,
//                              0x43,
//                              0x00,0x6E,
//                              0x00,0x00,
//                              0x00,
//                              0x00,0x00,0x00,0x00,0x00,0x00,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        //雨量计当前时间的请求帧
//        public byte[] getYuLiangTime()
//        {
//            byte[] set ={0x48,
//                              0x43,
//                              0xFF,0xFF,
//                              0x00,0x00,
//                              0x02,
//                              0x00,0x00,0x00,0x00,0x00,0x00,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        //更新雨量计的请求帧
//        public byte[] getUpdateTime()
//        {
//            byte yy = byte.Parse(DateTime.Now.ToString("yy"));
//            byte MM = byte.Parse(DateTime.Now.ToString("MM"));
//            byte dd = byte.Parse(DateTime.Now.ToString("dd"));
//            byte HH = byte.Parse(DateTime.Now.ToString("HH"));
//            byte mm = byte.Parse(DateTime.Now.ToString("mm"));
//            byte ss = byte.Parse(DateTime.Now.ToString("ss"));
//            byte wk = byte.Parse("0" + ((int)DateTime.Now.DayOfWeek).ToString());
            
//            byte[] set ={0x48,
//                              0x43,
//                              0x00,0x6E,
//                              0x00,0x00,
//                              0x05,
//                              yy,MM,dd,HH,mm,ss,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        //擦除一小时雨量请求帧
//        public byte[] getDeleteOneHourYuLiang()
//        {
//            byte[] set ={0x48,
//                              0x43,
//                              0xFF,0xFF,
//                              0x00,0x00,
//                              0x07,
//                              0x03,0x00,0x00,0x00,0x00,0x00,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        public byte[] getDeleteTotalYuLiang()
//        {
//            byte[] set ={0x48,
//                              0x43,
//                              0xFF,0xFF,
//                              0x00,0x00,
//                              0x07,
//                              0x00,0x00,0x00,0x00,0x00,0x00,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        //获取当前分钟 前一分钟雨量次数 和所有累计雨量次数的请求帧
//        public byte[] getMinuteYuliangCount()
//        {
//            byte[] set ={0x48,
//                              0x43,
//                              0x00,0x6E,
//                              0x00,0x00,
//                              0x10,
//                              0x00,0x00,0x00,0x00,0x00,0x00,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        //获取当前小时雨量次数的请求帧
//        public byte[] getCurrentHourYuLiangCount()
//        {
//            byte[] set ={0x48,
//                              0x43,
//                              0xFF,0xFF,
//                              0x00,0x00,
//                              0x11,
//                              0x00,0x00,0x00,0x00,0x00,0x00,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        //获取三个小时雨量次数的请求帧
//        public byte[] getCurrentTHourYuLiangCount()
//        {
//            byte[] set ={0x48,
//                              0x43,
//                              0xFF,0xFF,
//                              0x00,0x00,
//                              0x12,
//                              0x00,0x00,0x00,0x00,0x00,0x00,
//                              0x00,0x00,
//                              0xAF};
//            return set;
//        }

//        //获取埃德尔设备的默认配置信息

//        public byte[] getDefaultADSettting(String version, String devId, String pduType, String seq)
//        {
//            //获取版本号
//            String hiVer = version.Substring(0, 1);
//            String lowVer = version.Substring(1, 1);
//            byte btVer = (byte)((CodeUtils.String2Byte(hiVer)) * 16 + CodeUtils.String2Byte(lowVer));

//            //获取设备ID
//            byte[] btDevs = new byte[4];
//            for (int i = 0; i < 4; i++)
//            {
//                btDevs[i] = CodeUtils.String2Byte(devId.Substring(2 * i, 2));
//            }

//            //获取pduType
//            byte btPduType = CodeUtils.String2Byte(pduType);
//            byte dstPduType = (byte)(0xB0 | (0x0f & btPduType));

            
//            //获取系统时间的tag 长度为2个字节!
//            byte[] sysTag = { 0x10,0x00,0x00,0x51,0x00,0x06,
//            StringUtil.YEAR, StringUtil.MON, StringUtil.DAY, StringUtil.HOR, StringUtil.MIN, StringUtil.SEC };

//            //获取iptag信息
//            String adIp = System.Configuration.ConfigurationSettings.AppSettings["AD_IP"];
//            String adPort = System.Configuration.ConfigurationSettings.AppSettings["AD_PORT"];
//            byte[] btIp = ASCIIEncoding.ASCII.GetBytes(adIp);
           
//            Int16 ipLen0 = (Int16)btIp.Length;
//            byte[] btiplens0 = BitConverter.GetBytes(ipLen0);
//            byte[] iplens = new byte[2];
//            iplens[0] = btiplens0[1];
//            iplens[1] = btiplens0[0];

//            byte[] ipOid = {0x10,0x00,0x00,0x22};
//            byte[] ipTag = new byte[4 + 2 + btIp.Length];
//            ipOid.CopyTo(ipTag, 0);
//            iplens.CopyTo(ipTag, 4);
//            btIp.CopyTo(ipTag, 6);

//            //获取porttag信息
//            byte[] btAdPort = ASCIIEncoding.ASCII.GetBytes(adPort);
//            Int16 portLen = (Int16)btAdPort.Length;
//            byte[] btportlens0 = BitConverter.GetBytes(portLen);
//            byte[] portlens = new byte[2];
//            portlens[0] = btportlens0[1];
//            portlens[1] = btportlens0[0];

//            byte[] btPortOid = { 0x10, 0x00, 0x00, 0x23 };
//            byte[] portTag = new byte[4 + 2 + btAdPort.Length];
//            btPortOid.CopyTo(portTag, 0);
//            portlens.CopyTo(portTag, 4);
//            btAdPort.CopyTo(portTag, 6);

//            //总长度计算
//            Int16 totalLen = (Int16)(4 + 1 + 1 + sysTag.Length + ipTag.Length + portTag.Length);
//            byte[] btlens0 = BitConverter.GetBytes(totalLen);
//            byte[] btlens = new byte[2];
//            btlens[0] = btlens0[1];
//            btlens[1] = btlens0[0];

//            //crc之前的byte类型数据
//            byte[] bfsrc = new byte[totalLen + 2 + 1 + 1];
//            bfsrc[0] = 0xA3;
//            bfsrc[1] = btVer;
//            btlens.CopyTo(bfsrc, 2);
//            btDevs.CopyTo(bfsrc,4);
//            bfsrc[8] = dstPduType;
//            bfsrc[9] = CodeUtils.String2Byte(seq);
//            sysTag.CopyTo(bfsrc, 10);
//            ipTag.CopyTo(bfsrc, 10 + sysTag.Length);
//            portTag.CopyTo(bfsrc, 10 + sysTag.Length+ipTag.Length);


//            String strCrc = String.Format("{0:X}", (int)CodeUtils.CRC16_AD(bfsrc));
//            byte[] btcrc = { CodeUtils.String2Byte(strCrc.Substring(0, 2)), CodeUtils.String2Byte(strCrc.Substring(2, 2)) };

//            byte[] afcrc = new byte[bfsrc.Length + 2];
//            bfsrc.CopyTo(afcrc, 0);
//            btcrc.CopyTo(afcrc, bfsrc.Length);

//            return CodeUtils.adEncode(afcrc);
            
//        }
        
//        /*
//        private static string ADDefaultSetting = "ADDefaultSetting";
//        public string getDefaultADSetting()
//        {
//            string adDefaultSetting = System.Configuration.ConfigurationSettings.AppSettings[ADDefaultSetting];
//            String[] settings = adDefaultSetting.Split(',');
//            string result = getSystemTimeTag();

//            //make sure the first tag is system time tag
//            foreach (String setting in settings)
//            {
//                String[] temp = setting.Split(':');
//                String oid = temp[0];
//                String len = temp[1];
//                String value = temp[2];
//                result = result + oid + len + value;
//            }
//            return "";
//        }
//        private String getSystemTimeTag()
//        {
//            //获取第一个系统时间的tag
//            String year = (Convert.ToString(StringUtil.YEAR, 16)).Length != 2 ? 0 + Convert.ToString(StringUtil.YEAR, 16) : Convert.ToString(StringUtil.YEAR, 16);
//            String month = (Convert.ToString(StringUtil.YEAR, 16)).Length != 2 ? 0 + Convert.ToString(StringUtil.MON, 16) : Convert.ToString(StringUtil.MON, 16);
//            String day = (Convert.ToString(StringUtil.YEAR, 16)).Length != 2 ? 0 + Convert.ToString(StringUtil.DAY, 16) : Convert.ToString(StringUtil.DAY, 16);

//            String hour = (Convert.ToString(StringUtil.YEAR, 16)).Length != 2 ? 0 + Convert.ToString(StringUtil.HOR, 16) : Convert.ToString(StringUtil.HOR, 16);
//            String min = (Convert.ToString(StringUtil.YEAR, 16)).Length != 2 ? 0 + Convert.ToString(StringUtil.MIN, 16) : Convert.ToString(StringUtil.MIN, 16);
//            String sec = (Convert.ToString(StringUtil.YEAR, 16)).Length != 2 ? 0 + Convert.ToString(StringUtil.SEC, 16) : Convert.ToString(StringUtil.SEC, 16);

//            return "10000051"+"06"+year + month + day + hour + min + sec;

//        }
//        */

//        /**
//         *sequeceName:需要更新的序列名称
//         *key:主键字段名称
//         *tableName:表名称
//         */
//        public void updateSequence(String sequeceName, String key, String tableName)
//        {
//             OracleTransaction tran = null;
//             using (OracleConnection conn = new OracleConnection(OracleHelper.ConnectionStringOrderDistributedTransaction))
//             {
//                 try
//                 {
//                      conn.Open();
//                      tran = conn.BeginTransaction();

//                      String DROP_SEQUENCE = "drop sequence " + sequeceName;
//                      OracleHelper.ExecuteNonQuery(tran, CommandType.Text, DROP_SEQUENCE, null);

//                      String SQL_MAX_KEY = "select max(" + key + ")" + " from " + tableName;

//                      object max = OracleHelper.ExecuteScalar(tran,
//                      CommandType.Text, SQL_MAX_KEY, null);
                      
//                      int intMax = max.ToString() == "" ? 1 : Convert.ToInt32(max)+1;
                      
//                      //TODO LIST:创建序列
//                      String CREATE_SEQUENCE = "create sequence " + sequeceName + " minValue 1 maxValue 999999999999999999999999999" +
//                          " start with " + intMax + " increment by 1 cache 20";
                      
//                      OracleHelper.ExecuteNonQuery(tran, CommandType.Text, CREATE_SEQUENCE, null);
                      
//                      tran.Commit();

//                 }
//                 catch (Exception e)
//                {
//                    if (null != tran)
//                    {
//                        tran.Rollback();
//                    }
//                }
//             }
//        }
//    }
//}