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(); } } }
/// <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); } }
/// <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 }
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(); }
/// <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; }
/// <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); }
/// <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); } }
/// <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 ); } } } } }
/// <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); }
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); } }
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); } }
//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); }
public GRStationLastRealData(GRStation grSt, GRRealData grRd) { ArgumentChecker.CheckNotNull(grSt); _grSt = grSt; _grRd = grRd; }