コード例 #1
0
ファイル: frmAllGRRealDatas.cs プロジェクト: wwkkww1983/bt
        private void lvGrStRds_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            if (this.lvGrStRds.SelectedItems.Count > 0)
            {
                ListViewItem lvi = lvGrStRds.SelectedItems[0];
//                this.grRealDataDetail1.

                GRRealDataDetail a = grRealDataDetail1;
                a.Clear();
                string stName = //lvi.Text;
                                lvi.SubItems[1].Text;

                a.StationName = stName;
                GRRealData rd = GetLastestGRRD(stName);

                string ip, serverIP;

                if (GetIPAndServerIP(stName, out ip, out serverIP))
                {
                    a.IP       = ip;
                    a.ServerIP = serverIP;
                }

                if (rd != null)
                {
                    a.DateTime = rd.DT;

                    a.WaterLevel = rd.WatBoxLevel;
                    a.OpenDegree = rd.OpenDegree;

                    a.OneGivePress = rd.OneGivePress;
                    a.OneBackPress = rd.OneBackPress;
                    a.OneGiveTemp  = rd.OneGiveTemp;
                    a.OneBackTemp  = rd.OneBackTemp;
                    a.OneInst      = rd.OneInstant;
                    a.OneSum       = rd.OneAccum;

                    a.TwoGivePress    = rd.TwoGivePress;
                    a.TwoBackPress    = rd.TwoBackPress;
                    a.TwoGiveTemp     = rd.TwoGiveTemp;
                    a.TwoBackTemp     = rd.TwoBackTemp;
                    a.TwoInst         = rd.TwoInstant;
                    a.TwoSum          = rd.TwoAccum;
                    a.PressSubSet     = rd.TwoPressCha;
                    a.RePressSet      = rd.DrangeSet;
                    a.TwoGiveTempBase = rd.TwoGiveBaseTemp;
                    a.OutsideTemp     = rd.OutSideTemp;

                    a.RePump1    = GetPumpStateText(rd.GrPumpState.RecruitPump1);
                    a.RePump2    = GetPumpStateText(rd.GrPumpState.RecruitPump2);
                    a.CyclePump1 = GetPumpStateText(rd.GrPumpState.CyclePump1);
                    a.CyclePump2 = GetPumpStateText(rd.GrPumpState.CyclePump2);
                    a.CyclePump3 = GetPumpStateText(rd.GrPumpState.CyclePump3);
                    a.CheckException();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 处理自动上报的供热控制器实时数据,该数据可能是由于采集是返回数据超时引起
        /// </summary>
        /// <param name="remoteIP"></param>
        /// <param name="address"></param>
        /// <param name="innerDatas"></param>
        public void ProcessGrRealData(string remoteIP, int address, byte[] innerDatas)
        {
            GRRealData rd = GRRealData.Parse(innerDatas, address);

            if (rd != null)
            {
                CommTaskResultProcessor.Default.ProcessGRRealData(remoteIP, address, rd);
            }
        }
コード例 #3
0
ファイル: frmAllGRRealDatas.cs プロジェクト: wwkkww1983/bt
        /// <summary>
        /// 根据一个tbl.grrealdata.DataRow生成一个gr realdata对象
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        private GRRealData ParseGrRealData(DataRow row)
        {
            if (row == null)
            {
                return(null);
            }

            GRRealData rd = GRRealData.Parse(row);

            return(rd);
            //            GRRealData rd = new GRRealDat
        }
コード例 #4
0
ファイル: Test.cs プロジェクト: wwkkww1983/bt
        private void InsertGRRealDataToDb(string remoteIP, int address, GRRealData realData)
        {
            int        grStId  = XGDB.GetGRStationID(remoteIP, address);
            GRRealData GRDatas = realData; //new GRRealData();

            //            DBcon con=new DBcon();
            SqlConnection con = new SqlConnection(XGConfig.Default.ConnectionString /*XGDB.DbClient.Connection.ConnectionString*/);

            con.Open();

            SqlCommand cmd = new SqlCommand("AddGRDatas", con);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@p_grstation_id", grStId);

            cmd.Parameters.Add("@p_time", GRDatas.DT);//dtt);//
            cmd.Parameters.Add("@p_oneGiveTemp", GRDatas.OneGiveTemp);
            cmd.Parameters.Add("@p_oneBackTemp", GRDatas.OneBackTemp);
            cmd.Parameters.Add("@p_twoGiveTemp", GRDatas.TwoGiveTemp);
            cmd.Parameters.Add("@p_twoBackTemp", GRDatas.TwoBackTemp);
            cmd.Parameters.Add("@p_outsideTemp", GRDatas.OutSideTemp);
            cmd.Parameters.Add("@p_twoGiveBaseTemp", GRDatas.TwoGiveBaseTemp);
            //            cmd.Parameters.Add("@p_oneGivePress",GRDatas.OnwGivePress);
            cmd.Parameters.Add("@p_oneGivePress", GRDatas.OneGivePress);

            cmd.Parameters.Add("@p_oneBackPress", GRDatas.OneBackPress);
            cmd.Parameters.Add("@p_WatBoxLevel", GRDatas.WatBoxLevel);
            cmd.Parameters.Add("@p_twoGivePress", GRDatas.TwoGivePress);
            cmd.Parameters.Add("@p_twoBackPress", GRDatas.TwoBackPress);
            cmd.Parameters.Add("@p_oneInstant", GRDatas.OneInstant);
            cmd.Parameters.Add("@p_twoInstant", GRDatas.TwoInstant);
            cmd.Parameters.Add("@p_oneAccum", (int)GRDatas.OneAccum);
            cmd.Parameters.Add("@p_twoAccum", (int)GRDatas.TwoAccum);
            cmd.Parameters.Add("@p_openDegree", GRDatas.OpenDegree);
            cmd.Parameters.Add("@p_twoPressCha", GRDatas.TwoPressCha);

            //            GRPumpState GRState=new GRPumpState();
            GRPumpState GRState = GRDatas.GrPumpState;

//            MsgBox.Show( GRState.CyclePump1.ToString() );
            cmd.Parameters.Add("@p_pumpState1", GRState.CyclePump1);
            cmd.Parameters.Add("@p_pumpState2", GRState.CyclePump2);
            cmd.Parameters.Add("@p_pumpState3", GRState.CyclePump3);
            cmd.Parameters.Add("@p_addPumpState1", GRState.RecruitPump1);
            cmd.Parameters.Add("@p_addPumpState2", GRState.RecruitPump2);

            cmd.ExecuteNonQuery();
            cmd.Dispose();
            con.Close();
        }
コード例 #5
0
ファイル: frmAllGRRealDatas.cs プロジェクト: wwkkww1983/bt
        /// <summary>
        ///
        /// </summary>
        private void RefreshListView()
        {
            this.lvGrStRds.Items.Clear();
            IComparer comparer = this.lvGrStRds.ListViewItemSorter;

            this.lvGrStRds.ListViewItemSorter = null;


            GRStationLastRealDatasCollection grstRds = Singles.S.GRStRds;

            if (grstRds == null)
            {
                return;
            }


            // TODO: ?? Add remoteIP and serverIP
            //
            foreach (GRStationLastRealData grStRd in grstRds)
            {
                // TODO: 2007-10-23 added team column
                //
                string team = grStRd.GRStation.Team;
                if (team == null)
                {
                    team = string.Empty;
                }

//                ListViewItem lvi = lvGrStRds.Items.Add( grStRd.GRStation.StationName );
                ListViewItem lvi = lvGrStRds.Items.Add(team);
                if (grStRd.GRStation.ServerIP == XGConfig.Default.ServerIP)
                {
                    lvi.BackColor = Color.FromArgb(208, 255, 208);
                }
                GRRealData rd = grStRd.GRRealData;
                if (rd != null)
                {
                    string [] subItemTexts = GetSubItemTexts(grStRd.GRStation.StationName, grStRd.GRRealData);
                    lvi.SubItems.AddRange(subItemTexts);
                }
                else
                {
                    string[] subItemTexts = new string[] { grStRd.GRStation.StationName };
                    lvi.SubItems.AddRange(subItemTexts);
                }
            }

            this.lvGrStRds.ListViewItemSorter = comparer;
        }
コード例 #6
0
        /// <summary>
        /// 处理由自动上报数据处理器接收到的供热实时数据
        /// </summary>
        /// <param name="remoteIP"></param>
        /// <param name="address"></param>
        /// <param name="rd"></param>
        public void ProcessGRRealData(string remoteIP, int address, GRRealData rd)
        {
            ArgumentChecker.CheckNotNull(rd);

            InsertGRRealDataToDb(remoteIP, address, rd);

            GRAlarmData adFromRealData = rd.GrAlarmData;

            if (IsIncludeAlarm(adFromRealData))
            {
                ARDProcessor.Default.InsertGRAlarmDataToDb(remoteIP, address, adFromRealData);
            }

            Singles.S.GRStRds.ChangeWithRemoteIP(remoteIP, address, rd);
        }
コード例 #7
0
ファイル: frmAllGRRealDatas.cs プロジェクト: wwkkww1983/bt
        /// <summary>
        ///
        /// </summary>
        /// <param name="row"></param>
        private void ProcessGrrdRow(DataRow row)
        {
            string     remoteIP = row["ip"].ToString();
            string     stName   = row["name"].ToString();
            int        addr     = 0;
            GRRealData grRd     //=// ParseGrRealData ( row );
                = GRRealData.Parse(row);

            if (grRd != null)
            {
                //            string
                //            Singles.S.GRStRds.Add( new GRStationLastRealData (grSt, grRd ) );
                Singles.S.GRStRds.ChangeWithStName(stName, addr, grRd);
            }
        }
コード例 #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fromIP"></param>
        /// <param name="bs"></param>
        public void Process(string fromIP, byte[] bs)
        {
            GrDataPicker grdp = new GrDataPicker();

            byte[][] grdatas = grdp.Picker(bs);

            if (grdatas != null)
            {
                foreach (byte[] aGrData in grdatas)
                {
                    if (GRCommandMaker.IsRealData(aGrData))
                    {
                        GrRealDataParser grrdparser = new GrRealDataParser(aGrData);
                        GRRealData       rd         = grrdparser.ToValue() as GRRealData;
                        if (rd != null)
                        {
                            CommTaskResultProcessor.Default.ProcessGRRealData(
                                fromIP,
                                rd.FromAddress,
                                rd
                                );
                        }
                    }
                }
            }

            XgDataPicker xgdp = new XgDataPicker();

            byte[][] xgdatas = xgdp.Picker(bs);
            if (xgdatas != null)
            {
                foreach (byte[] aXgData in xgdatas)
                {
                    if (XGCommandMaker.IsXgRecord(aXgData))
                    {
                        XgRecordParser xgrp   = new XgRecordParser(aXgData);
                        XGData         xgdata = xgrp.ToValue() as XGData;
                        if (xgdata != null)
                        {
                            XGDB.InsertXGData(
                                fromIP, //cmd.Station.DestinationIP,
                                xgdata
                                );
                        }
                    }
                }
            }
        }
コード例 #9
0
ファイル: frmAllGRRealDatas.cs プロジェクト: wwkkww1983/bt
        /// <summary>
        ///
        /// </summary>
        /// <param name="r"></param>
        /// <returns></returns>
        private string [] GetSubItemTexts(string stName, GRRealData r)
        {
            //            r.DT.ToString();
            ArrayList s = new ArrayList();

            s.Add(stName);
            s.Add(r.DT.ToString());                     //时间

            s.Add(r.OneGivePress.ToString());           //一次供水压力
            s.Add(r.OneBackPress.ToString());           //一次回水压力
            s.Add(r.OneGiveTemp.ToString());            //一次供水温度
            s.Add(r.OneBackTemp.ToString());            //一次回水温度
            s.Add(r.OneInstant.ToString());             //一次瞬时流量
            s.Add(r.OneAccum.ToString());               //一次累计流量

            s.Add(r.TwoGivePress.ToString());           //二次供水压力
            s.Add(r.TwoBackPress.ToString());           //二次回水压力
            s.Add(r.TwoGiveTemp.ToString());            //二次供水温度
            s.Add(r.TwoBackTemp.ToString());            //二次回水温度
            s.Add(r.TwoInstant.ToString());             //二次瞬时流量
            s.Add(r.TwoAccum.ToString());               //二次累计流量
            s.Add(r.TwoGiveBaseTemp.ToString());        //二次供温基准


            s.Add(r.OpenDegree.ToString());             //调节阀开度
            s.Add(r.WatBoxLevel.ToString());            //水箱水位
            s.Add(r.DrangeSet.ToString());              //补水压力设定
            s.Add(r.DrangeSubSet.ToString());           //压差设定
            s.Add(r.OutSideTemp.ToString());            //室外温度

            GRPumpState ps = r.GrPumpState;

            s.Add(GetPumpStateText(ps.CyclePump1));      //循环泵
            s.Add(GetPumpStateText(ps.CyclePump2));      //
            s.Add(GetPumpStateText(ps.CyclePump3));      //
            s.Add(GetPumpStateText(ps.RecruitPump1));    //补水泵
            s.Add(GetPumpStateText(ps.RecruitPump2));    //

            string [] rs = (string [])s.ToArray(typeof(string));
            return(rs);
        }
コード例 #10
0
        public void ChangeWithStName(string stationName, int address, GRRealData grRd)
        {
            bool c = false;

            foreach (GRStationLastRealData strd in this)
            {
                if (strd.GRStation.StationName == stationName &&
                    strd.GRStation.Address == address)
                {
                    strd.GRRealData = grRd;
                    _strd           = strd;
                    c = true;
                }
            }

            if (c && this.Changed != null)
            {
                EventHandler temp = Changed;
                temp(this, EventArgs.Empty);
            }
        }
コード例 #11
0
        public void ChangeWithRemoteIP(string remoteIP, int address, GRRealData grRd)
        {
            bool c = false;

            foreach (GRStationLastRealData strd in this)
            {
                if (strd.GRStation.DestinationIP == remoteIP &&
                    strd.GRStation.Address == address)
                {
                    strd.GRRealData = grRd;
                    _strd           = strd;
                    c = true;
                }
            }

            if (c && this.Changed != null)
            {
                EventHandler temp = Changed;
                temp(this, EventArgs.Empty);
            }
        }
コード例 #12
0
        //private void ProcessGRRealDataCmd( int commPort , Communication.GRCtrl.GRRealDataCommand realDataCmd )
        /// <summary>
        /// 处理供热实时采集数据
        /// </summary>
        /// <param name="remoteIP"></param>
        /// <param name="realDataCmd"></param>
        private void ProcessGRRealDataCmd(string remoteIP, Communication.GRCtrl.GRRealDataCommand realDataCmd)
        {
            // save gr real data to db
            //
            GRRealData rd   = realDataCmd.GRRealData;
            int        addr = realDataCmd.Station.Address;

            // Save( commPort, addr, rd );
            InsertGRRealDataToDb(remoteIP, addr, rd);

            // Update Singles.S.OutSideTemperature
            //
            GRStation grSt = (GRStation)realDataCmd.Station;

            if (grSt.OSTWorkMode == OutSideTempWorkMode.CollByControllor)
            {
                Singles.S.OutSideTemperature = rd.OutSideTemp;
                //TODO: Write out side temperature to DB
                //
            }

            // process grAlarmData in grRealData
            //
            GRAlarmData adFromRealData = rd.GrAlarmData;

            if (IsIncludeAlarm(adFromRealData))
            {
                ARDProcessor.Default.InsertGRAlarmDataToDb(remoteIP, addr, adFromRealData);
            }

            // 2007.03.03 Added to singles.GrStRds
            //
//            GRStationLastRealData last = new GRStationLastRealData( grSt, rd );
//            Singles.S.GRStRds.Add( last );
            Singles.S.GRStRds.ChangeWithRemoteIP(grSt.DestinationIP, grSt.Address, rd);
        }
コード例 #13
0
 public GRStationLastRealData(GRStation grSt, GRRealData grRd)
 {
     ArgumentChecker.CheckNotNull(grSt);
     _grSt = grSt;
     _grRd = grRd;
 }