Exemple #1
0
 private void button_Add_Click(object sender, EventArgs e)
 {
     if (Validate(textBox_Val.Text.Trim()) && comboBox_STCD.SelectedValue != null)
     {
         Service.Model.YY_DATA_AUTO model = new Service.Model.YY_DATA_AUTO();
         model.STCD            = comboBox_STCD.SelectedValue.ToString();
         model.TM              = DateTime.Parse(dateTimePicker_Add.Text);
         model.CorrectionVALUE = decimal.Parse(textBox_Val.Text.Trim());
         model.DATAVALUE       = decimal.Parse(textBox_Val.Text.Trim());
         model.DOWNDATE        = DateTime.Now;
         model.NFOINDEX        = 5;
         model.ItemID          = comboBox_Item.SelectedValue.ToString();
         //model.DATATYPE = "";
         bool b = PublicBD.db.AddRealTimeData(model);
         if (b)
         {
             dateTimePicker_Add.ResetText();
             textBox_Val.Text = "";
             DevComponents.DotNetBar.MessageBoxEx.Show("数据添加成功!", "[提示]", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         else
         {
             DevComponents.DotNetBar.MessageBoxEx.Show("数据添加失败!", "[提示]", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
 }
Exemple #2
0
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex != -1 && e.ColumnIndex != -1)
            {
                Service.Model.YY_DATA_AUTO model = new Service.Model.YY_DATA_AUTO();
                model.STCD = dataGridView1.Rows[e.RowIndex].Cells["Column1"].Value.ToString();
                model.TM   = (DateTime)dataGridView1.Rows[e.RowIndex].Cells["Column5"].Value;//此字段为记录原始采集时间(精确到毫秒的主键)

                decimal CorrectionVALUE;
                if (decimal.TryParse(dataGridView1.Rows[e.RowIndex].Cells["Column4"].Value.ToString(), out CorrectionVALUE))
                {
                    model.CorrectionVALUE = CorrectionVALUE;
                }
                else
                {
                    model.CorrectionVALUE = null;
                }

                model.DOWNDATE = DateTime.Now;
                model.NFOINDEX = 5;
                model.ItemID   = dataGridView1.Rows[e.RowIndex].Cells["Column9"].Value.ToString();
                //model.DATATYPE = "";
                string Where = "where stcd='" + model.STCD + "' and ItemID='" + model.ItemID + "' and  TM='" + model.TM.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
                if (PublicBD.DB == "ORACLE")
                {
                    Where = "where stcd='" + model.STCD + "' and ItemID='" + model.ItemID + "' and  TM=to_date('" + model.TM.ToString() + "','yyyy-MM-dd HH24:MI:SS')";
                }
                if (dataGridView1.Columns[e.ColumnIndex].HeaderText == "删 除")
                {
                    bool b = PublicBD.db.DelRealTimeData(Where);
                    if (b)
                    {
                        Search();
                        DevComponents.DotNetBar.MessageBoxEx.Show("数据删除成功!", "[提示]", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        DevComponents.DotNetBar.MessageBoxEx.Show("数据删除失败!", "[提示]", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

                if (dataGridView1.Columns[e.ColumnIndex].HeaderText == "更 新")
                {
                    bool b = PublicBD.db.UdpRealTimeData(model, Where);
                    if (b)
                    {
                        Search();
                        DevComponents.DotNetBar.MessageBoxEx.Show("数据更新成功!", "[提示]", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        DevComponents.DotNetBar.MessageBoxEx.Show("数据更新失败!", "[提示]", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }
Exemple #3
0
        private string AddDataToAQ(Service.Model.YY_DATA_AUTO model)
        {
            string message  = "";
            string FileName = "Info" + DateTime.Now.ToString("yyyy-MM-dd");

            string append = "";

            try
            {
                if (client != null)
                {
                    byte[] b     = (new System.Text.ASCIIEncoding()).GetBytes(model.TM.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz") + "," + model.DATAVALUE);
                    var    Item  = from il in list where il.ItemID == model.ItemID select il;
                    string QW_ts = Item.First().ItemName + "@" + model.STCD;

                    if (TimeSeriesList != null && TimeSeriesList.Count > 0)
                    {
                        if (model.DATATYPE == 2011)
                        {
                            var TS = from Ts in TimeSeriesList where Ts.QWService == QW_ts && (Ts.DataType == "" || Ts.DataType == "2011") select Ts;
                            if (TS.Count() > 0)
                            {
                                append = client.AppendTimeSeriesAsync(authToken, Guid.Parse(TS.First().AQ), b); //NGAQ上数
                            }
                        }
                        else
                        {
                            var TS = from Ts in TimeSeriesList where Ts.QWService == QW_ts && Ts.DataType == model.DATATYPE.ToString()  select Ts;
                            if (TS.Count() > 0)
                            {
                                append = client.AppendTimeSeriesAsync(authToken, Guid.Parse(TS.First().AQ), b); //NGAQ上数
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                message = "站号:" + model.STCD + "   监测项:" + model.ItemID + "   监测时间:" + model.TM + "   监测值:" + model.DATAVALUE + "-----失败";
                Service._51Data.SystemError.SystemLog(FieldPath, FileName, message);

                Console.Write(e.ToString());
                append = "";
                lock (ToAqDataQueue)
                {
                    ToAqDataQueue.Enqueue(model);
                }
            }
            return(append);
        }
Exemple #4
0
 public void Resave(Service.Model.YY_DATA_AUTO model)
 {
     AddDataToAQ(model);
 }
Exemple #5
0
        /// <summary>
        /// 上传监测数据报
        /// </summary>
        /// <param name="data"></param>
        /// <param name="NFOINDEX"></param>
        /// <param name="Server"></param>
        internal static void Process_DATA(string data, Service.ServiceEnum.NFOINDEX NFOINDEX, object Server)
        {
            DataModel DM       = pd.UnPack(data);
            DateTime  DOWNDATE = DateTime.Now;

            #region tcp回复
            if ((int)NFOINDEX == 1)
            {
                TcpService.TcpServer        TS = Server as TcpService.TcpServer;
                List <TcpService.TcpSocket> Ts = TS.Ts;

                var tcps = from t in Ts where t.STCD == DM.Code && t.TCPSOCKET != null select t;
                List <TcpService.TcpSocket> Tcps = tcps.ToList <TcpService.TcpSocket>();


                if (Tcps.Count() > 0)
                {
                    byte[] sendData = Encoding.ASCII.GetBytes(DM.Reply);
                    Tcps.First().TCPSOCKET.Send(sendData);
                    //回复通知界面
                    Service.ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, DM.Code, "回复数据", sendData, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text);
                }
            }
            #endregion
            #region udp回复
            if ((int)NFOINDEX == 2)
            {
                UdpService.UdpServer        US = Server as UdpService.UdpServer;
                List <UdpService.UdpSocket> Us = US.Us;
                var udps = from u in Us where u.STCD == DM.Code && u.IpEndPoint != null select u;



                if (udps.Count() > 0)
                {
                    byte[] sendData = Encoding.ASCII.GetBytes(DM.Reply);
                    US.UDPClient.Send(sendData, sendData.Length, udps.First().IpEndPoint);
                    Service.ServiceBussiness.WriteQUIM("UDP", US.ServiceID, DM.Code, "回复数据", sendData, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text);
                }
            }
            #endregion

            if (DM.Item_data.Count() > 0)
            {
                for (int i = 0; i < DM.Item_data.Count(); i++)
                {
                    string ItemName = GetItemName(DM.Item_data[i].Item);

                    #region //入实时表
                    Service.Model.YY_DATA_AUTO model = new Service.Model.YY_DATA_AUTO();

                    model.STCD            = DM.Code;
                    model.TM              = DM.Datetime;                         //监测时间
                    model.ItemID          = DM.Item_data[i].Item;                //监测项
                    model.DOWNDATE        = DOWNDATE;
                    model.DATAVALUE       = decimal.Parse(DM.Item_data[i].Data); //值
                    model.CorrectionVALUE = model.DATAVALUE;
                    //存入数据库,2015.8.25添加,请检查数据库YY_DATA_AUTO表是否建立STTYPE字段
                    model.STTYPE   = DM.PacketCode.ToString();
                    model.NFOINDEX = (int)NFOINDEX;
                    //数据类型暂存包号 2016.6.6
                    //model.DATATYPE = DM.PacketCode;


                    Service.PublicBD.db.AddRealTimeData(model);
                    //////////////////////////////////////////////////////////
                    /////////////////////////////////////////////////////////
                    /////////////////////////////////////////////////////////
                    #region tcp通知界面
                    if ((int)NFOINDEX == 1)
                    {
                        TcpService.TcpServer TS = Server as TcpService.TcpServer;
                        //回复通知界面
                        Service.ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);

                        var list = from rtu in TS.Ts where rtu.STCD == DM.Code select rtu;
                        if (list.Count() > 0)
                        {
                            list.First().CanSend = false;
                        }
                    }
                    #endregion
                    #region udp通知界面
                    if ((int)NFOINDEX == 2)
                    {
                        UdpService.UdpServer US = Server as UdpService.UdpServer;
                        Service.ServiceBussiness.WriteQUIM("UDP", US.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                        var list = from rtu in US.Us where rtu.STCD == DM.Code select rtu;
                        if (list.Count() > 0)
                        {
                            list.First().CanSend = false;
                        }
                    }
                    #endregion
                    #region gsm通知界面
                    if ((int)NFOINDEX == 3)
                    {
                        GsmService.GsmServer GS = Server as GsmService.GsmServer;
                        Service.ServiceBussiness.WriteQUIM("GSM", GS.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                    }
                    #endregion
                    #region com通知界面
                    if ((int)NFOINDEX == 4)
                    {
                        ComService.ComServer CS = Server as ComService.ComServer;
                        Service.ServiceBussiness.WriteQUIM("COM", CS.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                    }
                    #endregion

                    #endregion
                }
            }
        }
Exemple #6
0
        /// <summary>
        /// 上传监测数据报
        /// </summary>
        /// <param name="data"></param>
        /// <param name="NFOINDEX"></param>
        /// <param name="Server"></param>
        internal static void Process_FD(string data, Service.ServiceEnum.NFOINDEX NFOINDEX, object Server)
        {
            DataModel DM = pd.UnPack(data);

            #region 数据报信息
            string PacketType = "";
            switch (DM.PacketType)
            {
            case "01":
                PacketType = "定时报";
                break;

            case "02":
                PacketType = "加报";
                break;

            default:
                PacketType = "手动召测";
                break;
            }

            //TCP
            if ((int)NFOINDEX == 1)
            {
                TcpService.TcpServer TS = Server as TcpService.TcpServer;

                string Explain = "接收到数据报(" + PacketType + "),报头(" + DM.TiltleCode + "),RTU地址(" + DM.Code + ") 测量时间(" + DM.Datetime + ")  计算算法(" + DM.Algorithm + ")  测流历时(" + DM.Take + "秒)  左岸系数(" + DM.LeftBank + ")  右岸系数(" + DM.RightBank + ")   起算水位(" + DM.StartStage + ")   断面面积(" + DM.Section + "平方米)  参与计算的探头数量/探头数量(" + DM.ComputeSensorCount + "/" + DM.SensorCount + ")";
                Service.ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, DM.Code, Explain, new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
            }
            #endregion

            DateTime DOWNDATE = DateTime.Now;
            if (DM.Item_data.Count() > 0)
            {
                for (int i = 0; i < DM.Item_data.Count(); i++)
                {
                    string ItemName = GetItemName(DM.Item_data[i].Item);

                    #region //入实时表
                    Service.Model.YY_DATA_AUTO model = new Service.Model.YY_DATA_AUTO();

                    model.STCD            = DM.Code;
                    model.TM              = DM.Datetime;          //监测时间
                    model.ItemID          = DM.Item_data[i].Item; //监测项
                    model.DOWNDATE        = DOWNDATE;
                    model.DATAVALUE       = DM.Item_data[i].Data; //值
                    model.CorrectionVALUE = model.DATAVALUE;
                    model.NFOINDEX        = (int)NFOINDEX;



                    Service.PublicBD.db.AddRealTimeData(model);
                    //////////////////////////////////////////////////////////
                    /////////////////////////////////////////////////////////
                    /////////////////////////////////////////////////////////
                    #region tcp通知界面
                    if ((int)NFOINDEX == 1)
                    {
                        TcpService.TcpServer TS = Server as TcpService.TcpServer;
                        //回复通知界面
                        Service.ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);

                        var list = from rtu in TS.Ts where rtu.STCD == DM.Code select rtu;
                        if (list.Count() > 0)
                        {
                            list.First().CanSend = false;
                        }
                    }
                    #endregion
                    #region udp通知界面
                    if ((int)NFOINDEX == 2)
                    {
                        UdpService.UdpServer US = Server as UdpService.UdpServer;
                        Service.ServiceBussiness.WriteQUIM("UDP", US.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                        var list = from rtu in US.Us where rtu.STCD == DM.Code select rtu;
                        if (list.Count() > 0)
                        {
                            list.First().CanSend = false;
                        }
                    }
                    #endregion
                    #region gsm通知界面
                    if ((int)NFOINDEX == 3)
                    {
                        GsmService.GsmServer GS = Server as GsmService.GsmServer;
                        Service.ServiceBussiness.WriteQUIM("GSM", GS.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                    }
                    #endregion
                    #region com通知界面
                    if ((int)NFOINDEX == 4)
                    {
                        ComService.ComServer CS = Server as ComService.ComServer;
                        Service.ServiceBussiness.WriteQUIM("COM", CS.ServiceID, DM.Code, "接收到数据报数据,数据特征[" + ItemName + "-" + DM.Item_data[i].Item + "],时间[" + DM.Datetime + "],值[" + DM.Item_data[i].Data + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                    }
                    #endregion

                    #endregion
                }
            }
        }
        /// <summary>
        /// 上传污染物小时数据
        /// </summary>
        /// <param name="data"></param>
        /// <param name="NFOINDEX"></param>
        /// <param name="Server"></param>
        internal static void Process_2061(string data, Service.ServiceEnum.NFOINDEX NFOINDEX, object Server)
        {
            try
            {
                if (pd.GetValidataLength(data))
                {
                    string   MN       = pd.GetMN(data);
                    DateTime DOWNDATE = DateTime.Now;

                    CN_DataList CD = pd.GetValues(data);

                    //获得回复----------------------------------
                    if (true)
                    {
                        #region tcp回复
                        if ((int)NFOINDEX == 1)
                        {
                            TcpService.TcpServer        TS = Server as TcpService.TcpServer;
                            List <TcpService.TcpSocket> Ts = TS.Ts;

                            var tcps = from t in Ts where t.STCD == MN && t.TCPSOCKET != null select t;
                            List <TcpService.TcpSocket> Tcps = tcps.ToList <TcpService.TcpSocket>();
                            //没有该测站信息,不能向下执行,上“生成回复数据”没成功。
                            if ("" == null)//生成回复报失败----------------------
                            {
                                Service.ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, MN, "生成回复报出现异常!", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                                return;
                            }

                            if (Tcps.Count() > 0)
                            {
                                byte[] sendData = new byte[] { };  //回复报的内容-------------------------------------
                                Tcps.First().TCPSOCKET.Send(sendData);
                                //回复通知界面
                                Service.ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, MN, "回复数据", sendData, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                            }
                        }
                        #endregion
                        #region udp回复
                        if ((int)NFOINDEX == 2)
                        {
                            UdpService.UdpServer        US = Server as UdpService.UdpServer;
                            List <UdpService.UdpSocket> Us = US.Us;
                            var udps = from u in Us where u.STCD == MN && u.IpEndPoint != null select u;

                            //没有该测站信息,不能向下执行,上“生成回复数据”没成功。
                            if ("" == null)//生成回复报失败----------------------
                            {
                                Service.ServiceBussiness.WriteQUIM("UDP", US.ServiceID, MN, "生成回复报出现异常!", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                                return;
                            }

                            if (udps.Count() > 0)
                            {
                                byte[] sendData = new byte[] { };  //回复报的内容-------------------------------------
                                US.UDPClient.Send(sendData, sendData.Length, udps.First().IpEndPoint);
                                Service.ServiceBussiness.WriteQUIM("UDP", US.ServiceID, MN, "回复数据", sendData, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                            }
                        }
                        #endregion
                    }

                    if (CD.DM.Count() > 0)
                    {
                        for (int i = 0; i < CD.DM.Count(); i++)
                        {
                            string ItemName = null;

                            #region //入实时表
                            Service.Model.YY_DATA_AUTO model = new Service.Model.YY_DATA_AUTO();

                            model.STCD            = MN;
                            model.TM              = CD.TM;              //监测时间
                            model.ItemID          = CD.DM[i].ItemCode;  //监测项
                            model.DOWNDATE        = DOWNDATE;
                            model.DATAVALUE       = CD.DM[i].DATAVALUE; //值
                            model.CorrectionVALUE = CD.DM[i].DATAVALUE;
                            //存入数据库,2015.8.25添加,请检查数据库YY_DATA_AUTO表是否建立STTYPE字段
                            model.STTYPE   = CD.ST;
                            model.NFOINDEX = (int)NFOINDEX;
                            model.DATATYPE = int.Parse(CD.CN);
                            #region                                                                                                                       //2061*100 + 1  =206101 =小时数据累计值 (参考HJT212_2005.ParseData.Key)
                            model.DATATYPE = model.DATATYPE * 100 + Convert.ToInt32(Enum.Parse(typeof(HJT212_2005.ParseData.Key), CD.DM[i].KEY));
                            model.TM       = model.TM.AddMilliseconds(10 * Convert.ToInt32(Enum.Parse(typeof(HJT212_2005.ParseData.Key), CD.DM[i].KEY))); //避免主键冲突
                            #endregion

                            #region 环保212协议特殊添加
                            string s4 = model.DATATYPE.ToString().Substring(0, 4);
                            string s2 = model.DATATYPE.ToString().Substring(4, 2);

                            switch (s4)
                            {
                            case "2031":
                                ItemName = "日";
                                break;

                            case "2051":
                                ItemName = "分钟";
                                break;

                            case "2061":
                                ItemName = "小时";
                                break;
                            }

                            switch (s2)
                            {
                            case "01":
                                ItemName += "|累计|";
                                break;

                            case "02":
                                ItemName += "|最大|";
                                break;

                            case "03":
                                ItemName += "|最小|";
                                break;

                            case "04":
                                ItemName += "|平均|";
                                break;
                            }

                            #endregion

                            ItemName += GetItemName(CD.DM[i].ItemCode);
                            Service.PublicBD.db.AddRealTimeData(model);
                            //////////////////////////////////////////////////////////
                            /////////////////////////////////////////////////////////
                            /////////////////////////////////////////////////////////
                            #region tcp通知界面
                            if ((int)NFOINDEX == 1)
                            {
                                TcpService.TcpServer TS = Server as TcpService.TcpServer;
                                //回复通知界面
                                Service.ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, MN, "接收到小时数据,数据特征[" + ItemName + "-" + CD.DM[i].ItemCode + "],时间[" + CD.TM + "],值[" + CD.DM[i].DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);

                                var list = from rtu in TS.Ts where rtu.STCD == MN select rtu;
                                if (list.Count() > 0)
                                {
                                    list.First().CanSend = false;
                                }
                            }
                            #endregion
                            #region udp通知界面
                            if ((int)NFOINDEX == 2)
                            {
                                UdpService.UdpServer US = Server as UdpService.UdpServer;
                                Service.ServiceBussiness.WriteQUIM("UDP", US.ServiceID, MN, "接收到小时数据,数据特征[" + ItemName + "-" + CD.DM[i].ItemCode + "],时间[" + CD.TM + "],值[" + CD.DM[i].DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                                var list = from rtu in US.Us where rtu.STCD == MN select rtu;
                                if (list.Count() > 0)
                                {
                                    list.First().CanSend = false;
                                }
                            }
                            #endregion
                            #region gsm通知界面
                            if ((int)NFOINDEX == 3)
                            {
                                GsmService.GsmServer GS = Server as GsmService.GsmServer;
                                Service.ServiceBussiness.WriteQUIM("GSM", GS.ServiceID, MN, "接收到小时数据,数据特征[" + ItemName + "-" + CD.DM[i].ItemCode + "],时间[" + CD.TM + "],值[" + CD.DM[i].DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                            }
                            #endregion
                            #region com通知界面
                            if ((int)NFOINDEX == 4)
                            {
                                ComService.ComServer CS = Server as ComService.ComServer;
                                Service.ServiceBussiness.WriteQUIM("COM", CS.ServiceID, MN, "接收到小时数据,数据特征[" + ItemName + "-" + CD.DM[i].ItemCode + "],时间[" + CD.TM + "],值[" + CD.DM[i].DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text);
                            }
                            #endregion

                            #endregion
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error(DateTime.Now + "2061操作异常" + ex.ToString());
            }
        }