/// <summary> /// 处理巡更控制器的自动上报数据 /// </summary> /// <param name="remoteIP"></param> /// <param name="address"></param> /// <param name="innerDatas"></param> /// <returns></returns> public XGData ProcessXGARD(string remoteIP, int address, byte[] innerDatas) { Record r = Record.Analyze(innerDatas); //return new XGData( r.CardSN, address, r.DateTime, true ); if (r != null) { XGData xgData = new XGData(r.CardSN, address, r.DateTime, true); // TODO: save xg ard and Match XgTask with the xgdata // // insert ard xg data to db // XGDB.InsertXGData(remoteIP, xgData); // insert a new task to taskScheduler, the task remove the last ard xgdata // XGStation xgst = Singles.S.GetXGStation(remoteIP, address); if (xgst == null) { xgst = new XGStation("xgst" + DateTime.Now, remoteIP, address); } CommCmdBase cmd = new AutoReportCommand(xgst); Task task = new Task(cmd, new ImmediateTaskStrategy()); Singles.S.TaskScheduler.Tasks.Add(task); return(xgData); } return(null); }
// static public void InsertXGData( XGData data ) // { // //2007.03.11 replace with InsertXGData ( string remoteIP, XGData data ) // throw new NotImplementedException ( "insertXGData( XGData data" ); // // ArgumentChecker.CheckNotNull( data ); // string s = string.Format( @"insert into tbl_xgdata(station_address, card_sn, station_time, // computer_time, isAuto) // values({0}, '{1}', '{2}', '{3}', {4})", data.FromAddress, data.CardSN, data.XGStationDateTime, // data.DateTime, data.IsAutoReport ? 1 : 0 ); // // DbClient.ExecuteNonQuery( s ); // } /// <summary> /// insert a xg data to tbl_xgdata /// </summary> /// <param name="remoteIP"> form gprs station ip</param> /// <param name="data"> xg data </param> static public void InsertXGData(string remoteIP, XGData data) { ArgumentChecker.CheckNotNull(data); // find xgstation_id with remoteIP, id not find xgstation_id then return // int xgStId = XGDB.GetXGStaionID(remoteIP, data.FromAddress); // 2007-10-25 Added not find xgStId // if (xgStId == 0) { return; } // find card_id and person with card sn, if not find // card sn then the sn to tbl_card and return the id // int cardId; string person; bool b = XGDB.GetCardIdAndPerson(data.CardSN, true, out cardId, out person); if (b) { // insert xgdata to tbl_xgdata // string sql = string.Format(@"insert into tbl_xgdata ( xgstation_id, card_id, xgtime, person ) values ( {0}, {1}, '{2}', '{3}')", xgStId, cardId, data.XGStationDateTime, person); DbClient.ExecuteNonQuery(sql); } }
/// <summary> /// /// </summary> private void DeleteSelectRow() { //TODO: delete xgdata row // int row = dataGridXGData.CurrentRowIndex; if (row == -1) { return; } DialogResult dr = MsgBox.ShowQuestion(GT.TIP_DELELE_DATAGRID_ROW); if (dr == DialogResult.Yes) { int id = int.Parse(this.dataGridXGData [row, 0].ToString()); // XGDB.DeleteXGTask( id ); XGDB.DeleteXGData(id); DataTable tbl = (DataTable)this.dataGridXGData.DataSource; DataRow [] delRows = tbl.Select("xgdata_id = " + id); foreach (DataRow r in delRows) { tbl.Rows.Remove(r); } // XGDB.Resolve(); } }
private void btnDelete_Click(object sender, System.EventArgs e) { int row = dataGridGPRSStation.CurrentRowIndex; if (row == -1) { return; } if (!XGConfig.Default.IsEnableMCS) { MsgBox.Show("删除功能已被禁用!"); return; } DialogResult dr = MsgBox.ShowQuestion(GT.TIP_DELELE_DATAGRID_ROW); if (dr == DialogResult.Yes) { int id = int.Parse(dataGridGPRSStation[row, 0].ToString()); XGDB.DeleteGPRSStation(id); LoadXGStationFromDB(); //XGDB.Resolve(); } }
private void EditCard() { int row = dataGridCards.CurrentRowIndex; if (row == -1) { return; } int id = Convert.ToInt32(dataGridCards[row, 0]); string sn = dataGridCards[row, 1].ToString(); string person = dataGridCards[row, 2].ToString(); string team = dataGridCards[row, 3].ToString(); string remark = dataGridCards[row, 4].ToString(); frmCardItem f = new frmCardItem(); f.AdeState = ADEState.Edit; f.EditId = id; f.CardSN = sn; f.Person = person; f.Remark = remark; f.Team = team; if (f.ShowDialog() == DialogResult.OK) { Card c = new Card(f.CardSN, f.Person, f.Remark); c.Tag = f.Team; XGDB.UpdateCard(id, c); LoadCardFromDB(); XGDB.Resolve(); } }
/// <summary> /// /// </summary> /// <param name="remoteIP"></param> /// <param name="address"></param> /// <param name="ad"></param> public void InsertGRAlarmDataToDb(string remoteIP, int address, GRAlarmData ad) { ArgumentChecker.CheckNotNull(ad); int grStId = XGDB.GetGRStationID(remoteIP, address); if (grStId != -1) { InsertGRAlarmDataToDB(grStId, ad); } }
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", GRDatas.OneAccum); cmd.Parameters.Add("@p_twoAccum", GRDatas.TwoAccum); cmd.Parameters.Add("@p_openDegree", GRDatas.OpenDegree); cmd.Parameters.Add("@p_twoPressCha", GRDatas.TwoPressCha); // GRPumpState GRState=new GRPumpState(); GRPumpState GRState = GRDatas.GrPumpState; 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> /// <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="cmd"></param> private void ProcessReadRecordCmd(ReadRecordCommand cmd) { if (cmd.XGData != null) { // 2007.03.11 Modify // //XGDB.InsertXGData ( cmd.XGData ); XGDB.InsertXGData(cmd.Station.DestinationIP, cmd.XGData); XGTask[] matchedXgTasks = Singles.S.XGScheduler.Tasks.MatchXGData(cmd.XGData); foreach (XGTask t in matchedXgTasks) { t.IsComplete = true; } } }
/// <summary> /// /// </summary> /// <param name="cmd"></param> private void ProcessReadRecordCmd(ReadRecordCommand cmd) { XGData xgData = cmd.XGData; if (xgData != null) { // XGDB.InsertXGData ( cmd.XGData ); // XGTask[] matchedXgTasks = Singles.S.XGScheduler.Tasks.MatchXGData( cmd.XGData ); // foreach ( XGTask t in matchedXgTasks ) // { // t.IsComplete = true; // ?TODO: save complete task to db // XGDB.InsertXGData(cmd.Station.DestinationIP, xgData); } }
private void btnAdd_Click(object sender, System.EventArgs e) { frmGprsStationItem f = new frmGprsStationItem(); if (f.ShowDialog(this) == DialogResult.OK) { string stName = f.StationName; int gr_addr = f.GrAddress; int xg_addr = f.XgAddress; // int cp = f.CommPort; int cp = 0; string remark = f.Remark; int client = XGConfig.Default.ClientAorB; string ipAddr = f.IpAddress; string team = f.Team; string addDrug = f.AddDrug; float heatArea = f.Area; string serverIP = f.ServerIpAddress; int teamOrder = GetTeamOrder(f.Team); string insertGprsStationSql = string.Format( @"insert into tbl_gprs_station (name, commport, client, remark, ip, team, addDrug, heatArea, serverIp, teamorder ) values( '{0}', {1}, {2}, '{3}', '{4}', '{5}', '{6}', {7}, '{8}', {9})", stName, cp, client, remark, ipAddr, team, addDrug, heatArea, serverIP, teamOrder); XGDB.DbClient.ExecuteNonQuery(insertGprsStationSql); int gprsStationId = XGDB.QueryLastId("tbl_gprs_station", "gprs_station_id"); XGStation st = new XGStation(stName, ipAddr, xg_addr); st.Tag = gprsStationId; XGDB.InsertXGStation(st); //int xgStationId = XGDB.QueryLastId("tbl_xgstation","xgstation_id"); GRStation grSt = new GRStation(stName, gr_addr, ipAddr); grSt.Tag = gprsStationId; XGDB.InsertGRStation(grSt); //int grStationId = XGDB.QueryLastId("tbl_grstation", "grstation_id" ); LoadXGStationFromDB(); //XGDB.Resolve(); } }
/// <summary> /// 处理供热自动上报报警数据 /// </summary> /// <param name="source"></param> /// <param name="address"></param> /// <param name="innerDatas"></param> /// <returns></returns> //public GRAlarmData ProcessGRARD( int sourceCommPort, int address, byte[] innerDatas ) public GRAlarmData ProcessGRARD(string remoteIP, int address, byte[] innerDatas) { GRAlarmData alarm = GRAlarmData.Parse(innerDatas, address); InsertGRAlarmDataToDb(remoteIP, address, alarm); //TODO: // string grStName = XGDB.GetGRStationName(remoteIP); frmGRAlarmDataPopUp f = frmGRAlarmDataPopUp.Default; f.AddGrAlarmData(grStName, remoteIP, address, alarm); // f = new frmGRAlarmDataPopUp(); return(alarm); }
private void btnDelete_Click(object sender, System.EventArgs e) { int id = GetSelectedId(); if (id == -1) { return; } DialogResult dr = MsgBox.ShowQuestion(GT.TIP_DELELE_DATAGRID_ROW); if (dr == DialogResult.Yes) { XGDB.DeleteCard(id); LoadCardFromDB(); XGDB.Resolve(); } }
private void btnDelete_Click(object sender, System.EventArgs e) { int row = dataGridXGTasK.CurrentRowIndex; if (row == -1) { return; } DialogResult dr = MsgBox.ShowQuestion(GT.TIP_DELELE_DATAGRID_ROW); if (dr == DialogResult.Yes) { int id = int.Parse(dataGridXGTasK[row, 0].ToString()); XGDB.DeleteXGTask(id); LoadXGTaskFromDB(); XGDB.Resolve(); } }
/// <summary> /// 任务取消激活事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void XGTask_Inactive(object sender, EventArgs e) { if (_isComplete) { XGDB.SaveXgTaskResult(this); Reset(); } else { //_xgTaskResult = XGTaskResult.CreateFailResult( this ); //Record[] records = ReadAndClearXgData(); //TODO: xgtask inactive! // XGData[] datas = ReadAndClearXgData(); _isWatingLocalXgData = true; } }
public MainClass() { // try // { if (Utilities.Diagnostics.HasPreInstance()) { MsgBox.Show(GT.TEXT_PROGRAM_RUNNING, GT.TEXT_TIP, System.Windows.Forms.MessageBoxIcon.Exclamation); return; } if (InitialGlobal() == false) { return; } XGDB.Resolve(); if (XGConfig.Default.ShowLogForm) { frmLogs.Default.Show(); } btGRMain.frmMain fMain = new btGRMain.frmMain(); fMain.UIEventHandler += new UICOMM.BTGRUIEventHandler(UIEventProcessor.Default.Process); CollStateDisplay collStateDis = new CollStateDisplay(fMain.GprsCollStateSbr); Singles.S.CollStateDisPlay = collStateDis; // test entry point // new Test.T(); System.Windows.Forms.Application.Run(fMain); // } // catch(Exception ex ) // { // MessageBox.Show(ex.ToString()); // } }
private void btnOK_Click(object sender, System.EventArgs e) { if (!CheckCardSN(CardSN)) { //remove comment // MsgBox.Show("卡号错误!" + Environment.NewLine + "卡号长度必须为16位,并且只能由数字或 A - F 的字母组成!"); return; } bool snExist; snExist = XGDB.CheckCardSNExist(CardSN.Trim(), _editId); if (snExist) { MsgBox.Show("卡号已经存在!"); return; } DialogResult = DialogResult.OK; Close(); }
/// <summary> /// /// </summary> private void AddCard() { try { frmCardItem f = new frmCardItem(); if (f.ShowDialog(this) == DialogResult.OK) { Card c = new Card(f.CardSN, f.Person, f.Remark); //2007.03.30 Added Team // c.Tag = f.Team; XGDB.InsertCard(c); LoadCardFromDB(); XGDB.Resolve(); } } catch (Exception ex) { MsgBox.Show(ex.ToString()); } }
private void btnAdd_Click(object sender, System.EventArgs e) { frmXGTaskItem f = new frmXGTaskItem(); if (f.ShowDialog(this) == DialogResult.OK) { string person = f.Person; string cardsn = f.CardSN; string stName = f.XgStationName; XGTime time = f.XGTime; XGDB.InsertXGTask(stName, person, time); //XGStation xgstation = GetXGStation( stName ); //Card card = GetCard( cardsn ); // //XGTask task = new XGTask( xgstation, card, time ); //XGDB.InsertXGTask( task ); LoadXGTaskFromDB(); XGDB.Resolve(); } }
/// <summary> /// stop recruit pump operation /// </summary> private void StopRePump(bool isStop) { GRStation st = GetGRStation(); if (st != null && IsConnected(st.DestinationIP)) { // bool isStop = chkStop.Checked; GRRePumpOpCmd c = new GRRePumpOpCmd(st, isStop ? PumpOP.Stop : PumpOP.Start); string op = string.Format("{0}补水泵", isStop ? "停止" : "启动"); XGDB.InsertCtrlLog(DateTime.Now, st.StationName, op, "xd"); CreateImmediateTaskAndExecute(c); } else { ShowNotConnectedMsg(); } }
private void btnEdit_Click(object sender, System.EventArgs e) { int row = dataGridXGTasK.CurrentRowIndex; if (row == -1) { return; } int id = int.Parse(dataGridXGTasK[row, 0].ToString()); string stName = dataGridXGTasK[row, 1].ToString(); string person = dataGridXGTasK[row, 2].ToString(); string cardsn = dataGridXGTasK[row, 3].ToString(); string beginTs = dataGridXGTasK[row, 4].ToString(); string endTs = dataGridXGTasK[row, 5].ToString(); //XGTime time = new XGTime( DateTime.Parse ( DateTime.Now.Date.ToString() + " " + beginTs ), // DateTime.Parse ( DateTime.Now.Date.ToString() + " " + endTs ) ); XGTime time = new XGTime(DateTime.Parse(beginTs), DateTime.Parse(endTs)); frmXGTaskItem f = new frmXGTaskItem(); f.AdeState = ADEState.Edit; f.EditId = id; f.XgStationName = stName; f.Person = person; f.CardSN = cardsn; f.XGTime = time; if (f.ShowDialog(this) == DialogResult.OK) { XGDB.UpdateXGTask(id, f.XgStationName, f.Person, f.XGTime); LoadXGTaskFromDB(); // 2007.01.30 Added // XGDB.Resolve(); } }
//private bool CheckExist( string sn ) //{ // sn = sn.Trim(); // return XGDB.CheckCardSNExist(.CheckCardSNExist( sn ); //} private void btnOK_Click(object sender, System.EventArgs e) { if (!CheckStationName(XGStationName)) { MsgBox.Show("站名错误!"); return; } if (!CheckAddress(txtAddress.Text)) { return; } bool nameExist; nameExist = XGDB.CheckXGStationNameExist(XGStationName.Trim(), _editId); if (nameExist) { MsgBox.Show("站名已经存在!"); return; } DialogResult = DialogResult.OK; Close(); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEdit_Click(object sender, System.EventArgs e) { int row = dataGridGPRSStation.CurrentRowIndex; if (row == -1) { return; } int id = int.Parse(dataGridGPRSStation[row, 0].ToString()); string name = dataGridGPRSStation[row, 1].ToString(); string team = dataGridGPRSStation[row, 2].ToString(); string addDrag = dataGridGPRSStation[row, 3].ToString(); float area = GetArea(dataGridGPRSStation[row, 4].ToString()); //int.Parse ( dataGridGPRSStation[ row, 4 ].ToString() ); string ip = dataGridGPRSStation[row, 5].ToString(); int grAddr = int.Parse(dataGridGPRSStation[row, 6].ToString()); int xgAddr = int.Parse(dataGridGPRSStation[row, 7].ToString()); string serverIP = dataGridGPRSStation[row, 8].ToString(); string remark = dataGridGPRSStation[row, 9].ToString(); //frmXGStationItem f = new frmXGStationItem(); frmGprsStationItem f = new frmGprsStationItem(); f.AdeState = ADEState.Edit; f.EditId = id; f.StationName = name; f.IpAddress = ip; f.GrAddress = grAddr; f.XgAddress = xgAddr; f.Remark = remark; f.Team = team; f.Area = area; f.AddDrug = addDrag; f.ServerIpAddress = serverIP; if (f.ShowDialog(this) == DialogResult.OK) { // edit gprs station // int grId, xgId; // get grstaion id // bool b = getGrXgID(id, out grId, out xgId); System.Diagnostics.Debug.Assert(b, "read gr xg id"); // update grstation name graddress with id // XGDB.UpdateGrStation(grId, f.StationName, grAddr); // get xgstation id // // update xgstation name xgaddress with xgid // XGDB.UpdateXGStation(xgId, f.StationName, xgAddr); // update gprs station name, ip ,commport, remark ,client // XGDB.UpdateGprsStation(id, f.StationName, f.IpAddress, f.Remark, f.Team, f.AddDrug, f.Area, f.ServerIpAddress, this.GetTeamOrder(f.Team)); LoadXGStationFromDB(); } }
public void ReadLocalXgDataComplete() { XGDB.SaveXgTaskResult(this); Reset(); }
private void btnOK_Click(object sender, System.EventArgs e) { int grAddr, xgAddr; float area; //, cpn; // check gprs staion name // if (StationName == string.Empty) { MsgBox.Show("站名不能为空!"); return; } // check gr address // try { grAddr = GrAddress; } catch { MsgBox.Show("供热控制器地址错误!"); return; } // check xg address // try { xgAddr = XgAddress; } catch { MsgBox.Show("巡更控制器地址错误!"); return; } //// check commport // // try // { // cpn = CommPort; // } // catch // { // MsgBox.Show("串口号错误!"); // return ; // } // check ip address // try { if (IpAddress.Length == 0) { MsgBox.Show("IP地址不能为空!"); return; } System.Net.IPAddress.Parse(IpAddress); } catch { MsgBox.Show("IP地址错误"); return; } try { if (ServerIpAddress.Length == 0) { MsgBox.Show("服务器IP地址不能为空!"); return; } System.Net.IPAddress.Parse(ServerIpAddress); } catch { MsgBox.Show("服务器IP地址错误"); return; } try { area = this.Area; } catch { MsgBox.Show("供热面积错误"); return; } // check station name not use // bool nameExist = XGDB.CheckGprsStationNameExist(StationName.Trim(), EditId, XGConfig.Default.ClientAorB); if (nameExist) { MsgBox.Show("站名已经存在!"); return; } // check commport not use // // bool cpExist = XGDB.CheckGprsStationCommPortExist( CommPort, EditId, XGConfig.Default.ClientAorB ); // if ( cpExist ) // { // MsgBox.Show( "串口号已经存在!" ); // return ; // } this.DialogResult = DialogResult.OK; Close(); }