Example #1
0
        /// <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);
        }
Example #2
0
//        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);
            }
        }
Example #3
0
        /// <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();
            }
        }
Example #4
0
        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();
            }
        }
Example #5
0
        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();
            }
        }
Example #6
0
        /// <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);
            }
        }
Example #7
0
        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();
        }
Example #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
                                );
                        }
                    }
                }
            }
        }
Example #9
0
        /// <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;
                }
            }
        }
Example #10
0
        /// <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);
            }
        }
Example #11
0
        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();
            }
        }
Example #12
0
        /// <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);
        }
Example #13
0
        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();
            }
        }
Example #14
0
        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();
            }
        }
Example #15
0
        /// <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;
            }
        }
Example #16
0
        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());
//            }
        }
Example #17
0
        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();
        }
Example #18
0
        /// <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());
            }
        }
Example #19
0
        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();
            }
        }
Example #20
0
        /// <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();
            }
        }
Example #21
0
        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();
            }
        }
Example #22
0
        //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();
        }
Example #23
0
        /// <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();
            }
        }
Example #24
0
 public void ReadLocalXgDataComplete()
 {
     XGDB.SaveXgTaskResult(this);
     Reset();
 }
Example #25
0
        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();
        }