Example #1
0
        private void ErrorForUI_EventHandler(object sender, ReceiveErrorEventArgs e)
        {
            string msg = e.Msg;

            //   if (this.IsHandleCreated && null != this.m_currentStation)
            if (this.IsHandleCreated)
            {
                try
                {
                    if (msg.Contains("TRU"))
                    {
                        AddLog(msg);
                        string[] str  = msg.Split(' ');
                        string   str1 = str[1];
                        //  uint str1 = uint.Parse(str[1]);
                        //   string strgprs=str1.ToString("X").PadLeft(8, '0');
                        //       item.m_modemId.ToString("X").PadLeft(8, '0')
                        CEntityStation entity = new CEntityStation();
                        entity = CDBDataMgr.Instance.GetStationByGprs_1(str1);
                        AddLog(String.Format("站点{0}对时成功!", entity.StationName));

                        m_dgvClock.UpdateStationStatus(entity.StationID, CDataGridViewSystemClock.EStationClockState.EAjustSuccess);
                    }
                    m_dgvClock.UpdateDataToUI();
                }
                catch (Exception exp) { Debug.WriteLine(exp.Message); }
            }
        }
Example #2
0
 public CStationComboBox(EStationBatchType batchType)
     : base()
 {
     InitComponent();
     InitUI(batchType);
     m_currentStation = null;
 }
Example #3
0
        //public static void sendMyTru(String stationid)
        //{
        //    CEntityStation entity = new CEntityStation();
        //    //  entity.StationID = "6018";
        //    entity = CDBDataMgr.Instance.GetStationById(stationid);
        //    //  entity.StationID = stationid;
        //    //  entity.GPRS = "60006018";
        //    Form1 f1 = new Form1();
        //    //  entity.GPRS = f1.getGPRSback(stationid);
        //    if (entity != null)
        //    {
        //        CPortDataMgr.Instance.SendHex(entity);
        //    }
        //}
        public static void sendMyTru(String stationid)
        {
            CEntityStation entity = new CEntityStation();

            //  entity.StationID = "6018";
            entity = CDBDataMgr.Instance.GetStationById(stationid);
            //  entity.StationID = stationid;
            //  entity.GPRS = "60006018";
            Form1 f1 = new Form1();

            //  entity.GPRS = f1.getGPRSback(stationid);
            if (entity != null)
            {
                CPortDataMgr.Instance.SendHex(entity);
            }
            else
            {
                CEntitySoilStation soilEntity = new CEntitySoilStation();
                soilEntity = CDBSoilDataMgr.Instance.GetSoilStationInfoByStationId(stationid);
                if (soilEntity != null)
                {
                    CPortDataMgr.Instance.SendSoilHex(soilEntity);
                }
            }
        }
Example #4
0
        /// <summary>
        /// 选择了列表框中的某一个站点
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EHListBoxSelected(object sender, EventArgs e)
        {
            this.TextChanged -= cmbStation_TextChanged;
            //this.Items.Clear();
            //this.Items.Add(m_listBoxStation.SelectedItem);
            //this.SelectedIndex = 0;
            this.Text = m_listBoxStation.SelectedItem.ToString();
            string[] idName = m_listBoxStation.SelectedItem.ToString().Split('|');

            // 匹配当前的站点赋值
            string stationId = idName[0].Substring(1).Trim();

            for (int i = 0; i < m_listStations.Count; ++i)
            {
                if (stationId == m_listStations[i].StationID)
                {
                    m_currentStation = m_listStations[i];
                    // 发消息
                    if (StationSelected != null)
                    {
                        StationSelected.Invoke(this, new CEventSingleArgs <CEntityStation>(m_currentStation));
                    }
                    break;
                }
            }
            this.TextChanged += new EventHandler(cmbStation_TextChanged);
            HideListBox();
        }
Example #5
0
 private CEntityStation m_currentStation;      //当前选中的测站
 public CStationComboBox()
     : base()
 {
     InitComponent();
     InitUI();
     m_currentStation = null;
 }
Example #6
0
        public List <CEntityVoltage> QueryForRateMonthTable(CEntityStation station, DateTime startTime, DateTime endTime)
        {
            List <CEntityVoltage> results = new List <CEntityVoltage>();
            string stationID = station.StationID;

            try
            {
                CTF_TableName = "voltage" + startTime.Year.ToString() + startTime.Month.ToString() + (startTime.Day < 15 ? "A" : "B");
                CTT_TableName = "voltage" + endTime.Year.ToString() + endTime.Month.ToString() + (endTime.Day < 15 ? "A" : "B");
                string         sql          = "select * from " + CF_TableName + " where stationid = " + stationID + " and convert(VARCHAR, " + CN_DataTime + ", 120) LIKE '%00:00%' and datatime between '" + startTime + "' and '" + endTime + "' and messagetype = 8;";
                SqlDataAdapter adapter      = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection());
                DataTable      dataTableTmp = new DataTable();
                adapter.Fill(dataTableTmp);
                for (int i = 0; i < dataTableTmp.Rows.Count; ++i)
                {
                    CEntityVoltage res = new CEntityVoltage();
                    res.TimeCollect = DateTime.Parse(dataTableTmp.Rows[i][CN_DataTime].ToString());
                    res.type        = dataTableTmp.Rows[i][CN_TransType].ToString();
                    results.Add(res);
                }
            }
            catch
            {
            }
            return(results);
        }
        private void btn_StartAdjust_Click(object sender, EventArgs e)
        {
            var listStation = this.m_dgvClock.GetAllSelectedStation();

            if (0 == listStation.Count)
            {
                MessageBox.Show("请选择站点!");
                return;
            }
            this.btn_StartAdjust.Enabled = false;
            int i = 0;

            System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer()
            {
                Interval = 40000
            };
            AddLog("系统正在对时,请耐心等待!");
            timer.Tick += (s1, e1) =>
            {
                if (i >= listStation.Count)
                {
                    timer.Stop();
                    m_currentStation             = null;
                    this.btn_StartAdjust.Enabled = true;
                    return;
                }

                m_currentStation = listStation[i];
                Debug.WriteLine(" i = " + i + "      Name = " + m_currentStation.StationName);
                string sendMsg = CPortDataMgr.Instance.SendAdjustClock(m_currentStation);
                AddLog(sendMsg);
                i++;
            };
            timer.Start();
        }
        private CEntityStation GetStationInfoByDeviceNum(string deviceNum)
        {
            CEntityStation result = null;

            if (String.IsNullOrEmpty(deviceNum))
            {
                return(result);
            }

            var soilStationLists           = GetAllSoilStation();
            CEntitySoilStation soilStation = null;

            //foreach (var item in soilStationLists)
            //{
            //    if (deviceNum == item.StrDeviceNumber)
            //    {
            //        soilStation = item;
            //        break;
            //    }
            //}

            if (null != soilStation && !String.IsNullOrEmpty(soilStation.StationID))
            {
                result = CDBDataMgr.Instance.GetStationById(soilStation.StationID);
            }

            return(result);
        }
        /// <summary>
        /// 添加站点,不用
        /// </summary>
        //private void Add(CEntityStation entity)
        //{
        //    String sqlStr = GetInsertSQL(entity);
        //    ExecuteNonQuery(sqlStr);
        //}

        //private String GetInsertSQL(CEntityStation entity)
        //{
        //    String strStationID = entity.StationID;
        //    String strSubCenterID = entity.SubCenterID.HasValue ? entity.SubCenterID.Value.ToString() : "null";
        //    String strCName = String.Format("'{0}'", entity.StationName);
        //    String strCType = CEnumHelper.StationTypeToDBStr(entity.StationType);

        //    String strWaterBase = entity.DWaterBase.HasValue ? entity.DWaterBase.ToString() : "null";
        //    String strWaterMax = entity.DWaterMax.HasValue ? entity.DWaterMax.ToString() : "null";
        //    String strWaterMin = entity.DWaterMin.HasValue ? entity.DWaterMin.ToString() : "null";
        //    String strWaterChange = entity.DWaterChange.HasValue ? entity.DWaterChange.ToString() : "null";

        //    String strRainAccuracy = entity.DRainAccuracy.ToString();
        //    String strRainChange =entity.DRainChange.ToString();
        //    String strCommParam = entity.CommParam == null ? "null" : String.Format("'{0}'", entity.CommParam);
        //    String strGSM = entity.GSM == null ? "null" : String.Format("'{0}'", entity.GSM);

        //    String strGprs = entity.GPRS == null ? "null" : String.Format("'{0}'", entity.GPRS);
        //    String strPstv = entity.PSTV == null ? "null" : String.Format("'{0}'", entity.PSTV);
        //    String strBD = entity.BDSatellite == null ? "null" : String.Format("'{0}'", entity.BDSatellite);
        //    String strSerialPort = entity.SerialPort == null ? "null" : String.Format("'{0}'", entity.SerialPort);
        //    return String.Format(
        //        "INSERT INTO {0} ([{1}],[{2}],[{3}],[{4}],[{5}],[{6}],[{7}],[{8}],[{9}],[{10}],[{11}],[{12}],[{13}],[{14}],[{15}],[{16}]) VALUES ({17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{32})",

        //        CT_TableName,

        //        CN_StationID, CN_SubCenterID, CN_StationName, CN_StationType,
        //        CN_WaterBase, CN_WaterMax, CN_WaterMin, CN_WaterChange,
        //        CN_RainAccuracy, CN_RainChange, CN_CommParam, CN_GSM,
        //        CN_GPRS, CN_PSTV, CN_BDSatellite, CN_SerialPort,

        //        strStationID, strSubCenterID, strCName, strCType,
        //        strWaterBase, strWaterMax, strWaterMin, strWaterChange,
        //        strRainAccuracy, strRainChange, strCommParam, strGSM,
        //        strGprs, strPstv, strBD, strSerialPort
        //    );
        //}

        ///// <summary>
        ///// 删除分站点
        ///// </summary>
        //public void Delete(CEntityStation entity)
        //{
        //    String sqlStr = GetDeleteSQL(entity);
        //    ExecuteNonQuery(sqlStr);
        //}

        //private String GetDeleteSQL(CEntityStation entity)
        //{
        //    return String.Format("DELETE FROM {0} WHERE [{1}]={2}",
        //        CT_TableName,

        //        CN_StationID, entity.StationID
        //    );
        //}

        /// <summary>
        /// 修改站点信息
        /// </summary>
        //public void Update(CEntityStation entity)
        //{
        //    String sqlStr = GetUpdateSQL(entity);
        //    ExecuteNonQuery(sqlStr);
        //}

        private String GetUpdateSQL(CEntityStation entity)
        {
            String strStationID   = entity.StationID;
            String strSubCenterID = entity.SubCenterID.HasValue ? entity.SubCenterID.Value.ToString() : "null";
            String strCName       = String.Format("'{0}'", entity.StationName);
            String strCType       = CEnumHelper.StationTypeToDBStr(entity.StationType);

            String strWaterBase   = entity.DWaterBase.HasValue ? entity.DWaterBase.ToString() : "null";
            String strWaterMax    = entity.DWaterMax.HasValue ? entity.DWaterMax.ToString() : "null";
            String strWaterMin    = entity.DWaterMin.HasValue ? entity.DWaterMin.ToString() : "null";
            String strWaterChange = entity.DWaterChange.HasValue ? entity.DWaterChange.ToString() : "null";
            String strVoltageMin  = entity.DVoltageMin.HasValue ? entity.DVoltageMin.ToString() : "null";

            String strRainAccuracy = entity.DRainAccuracy.ToString();
            String strRainChange   = entity.DRainChange.HasValue ? entity.DRainChange.ToString() : "null";

            String strGSM  = entity.GSM == null ? "null" : String.Format("'{0}'", entity.GSM);
            String strGprs = entity.GPRS == null ? "null" : String.Format("'{0}'", entity.GPRS);

            String strBD       = entity.BDSatellite == null ? "null" : String.Format("'{0}'", entity.BDSatellite);
            String strBDMember = entity.BDMemberSatellite == null ? "null" : String.Format("'{0}'", entity.BDMemberSatellite);

            String strMaintran       = entity.Maintran == null ? "null" : String.Format("'{0}'", entity.Maintran);
            String strSubtran        = entity.Subtran == null ? "null" : String.Format("'{0}'", entity.Subtran);
            String strDataprotocol   = entity.Datapotocol == null ? "null" : String.Format("'{0}'", entity.Datapotocol);
            String strWatersensor    = entity.Watersensor == null ? "null" : String.Format("'{0}'", CEnumHelper.WaterSensorTypeToDBStr(entity.Watersensor));
            String strRainsensor     = entity.Rainsensor == null ? "null" : String.Format("'{0}'", CEnumHelper.RainSensorTypeToDBStr(entity.Rainsensor));
            String strReportinterval = entity.Reportinterval == null ? "null" : String.Format("'{0}'", entity.Reportinterval);

            //  String strSerialPort = entity.SerialPort == null ? "null" : String.Format("'{0}'", entity.SerialPort);

            //  string strBatchType = CEnumHelper.StationBatchTypeToDBStr(entity.BatchTranType);

            return(String.Format(
                       "UPDATE {0} SET [{1}]={2},[{3}]={4},[{5}]={6},[{7}]={8},[{9}]={10},[{11}]={12},[{13}]={14},[{15}]={16},[{17}]={18},[{19}]={20},[{21}]={22},[{23}]={24},[{25}]={26},[{27}]={28},[{29}]={30},[{31}]={32},[{33}]={34} ,[{35}]={36},[{37}]={38},[{39}]={40} WHERE [{41}]='{42}';",
                       CT_TableName,

                       CN_SubCenterID, strSubCenterID,
                       CN_StationName, strCName,
                       CN_StationType, strCType,
                       CN_WaterBase, strWaterBase,
                       CN_WaterMax, strWaterMax,
                       CN_WaterMin, strWaterMin,
                       CN_WaterChange, strWaterChange,
                       CN_RainAccuracy, strRainAccuracy,
                       CN_RainChange, strRainChange,
                       CN_GSM, strGSM,
                       CN_GPRS, strGprs,
                       CN_BDSatellite, strBD,
                       CN_BDMember, strBDMember,
                       CN_VoltageMin, strVoltageMin,
                       CN_Maintran, strMaintran,
                       CN_Subtran, strSubtran,
                       CN_Dataprotocol, strDataprotocol,
                       CN_Watersensor, strWatersensor,
                       CN_Rainsensor, strRainsensor,
                       CN_Reportinterval, strReportinterval,
                       CN_StationID, strStationID
                       ));
        }
Example #10
0
        //1009gm
        public List <CEntityVoltage> QueryForRateTable(CEntityStation station, DateTime date)
        {
            List <CEntityVoltage> results = new List <CEntityVoltage>();
            DateTime startTime            = date;
            DateTime endTime   = startTime.AddHours(23).AddMinutes(59).AddSeconds(59);
            string   stationID = station.StationID;

            try
            {
                string         sql          = "select * from " + CT_TableName + " where stationid = " + stationID + " and convert(VARCHAR, " + CN_DataTime + ", 120) LIKE '%00:00%' and datatime between '" + startTime + "' and '" + endTime + "'and messageType = 8;";
                SqlDataAdapter adapter      = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection());
                DataTable      dataTableTmp = new DataTable();
                adapter.Fill(dataTableTmp);
                for (int i = 0; i < dataTableTmp.Rows.Count; ++i)
                {
                    CEntityVoltage res = new CEntityVoltage();
                    res.TimeCollect = DateTime.Parse(dataTableTmp.Rows[i][CN_DataTime].ToString());
                    res.type        = dataTableTmp.Rows[i][CN_TransType].ToString();
                    results.Add(res);
                }
            }
            catch
            {
            }
            return(results);
        }
Example #11
0
        //private void btn_Save_Click_1(object sender, EventArgs e)
        //{
        //    //// 完成添加
        //    //if (AssertInputValid())
        //    //{
        //    //    this.Close();
        //    //    this.DialogResult = DialogResult.OK;
        //    //}

        //    // 完成添加
        //    CEntityStation station = GenerateStationFromUI();
        //    if (null == station)
        //    {
        //        return;
        //    }
        //    //  m_listStationAdded.Add(station);

        //    //  m_listStationCombination.Add(station);
        //    CDBDataMgr.GetInstance().m_mapStation.Add(station.StationID, station);
        //    //触发事件,并将修改后的文本回传
        //    AddStationEvent(station);
        //    this.Close();

        //    //InnerRefreshUI();

        //    //// 修改成功
        //    //btn_Save.Enabled = false;
        //    //btn_Revert.Enabled = false;
        //}

        private void btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                //// 完成添加
                //if (AssertInputValid())
                //{
                //    this.Close();
                //    this.DialogResult = DialogResult.OK;
                //}

                // 完成添加
                CEntityStation station = GenerateStationFromUI();
                if (null == station)
                {
                    return;
                }
                //  m_listStationAdded.Add(station);

                //  m_listStationCombination.Add(station);
                CDBDataMgr.GetInstance().m_mapStation.Add(station.StationID, station);
                //触发事件,并将修改后的文本回传
                AddStationEvent(station);
                //this.Close();
                this.Hide();
                MessageBox.Show("测站添加完成! ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
                //InnerRefreshUI();

                //// 修改成功
                //btn_Save.Enabled = false;
                //btn_Revert.Enabled = false;
            }
            catch (Exception ex) { }
        }
        /// <summary>
        /// 获取所有查询的测站
        /// </summary>
        /// <returns></returns>
        public List <CEntityStation> GetAllSelectedStation()
        {
            List <CEntityStation> listResults = new List <CEntityStation>();

            base.m_mutexDataTable.WaitOne();
            for (int i = 0; i < m_dataTable.Rows.Count; ++i)
            {
                // 获取编辑过的每一行
                string strChecked = m_dataTable.Rows[i][CS_Select].ToString();
                if (strChecked == "True")
                {
                    string         stationId = m_dataTable.Rows[i][CS_StationID].ToString();
                    CEntityStation station   = CDBDataMgr.Instance.GetStationById(stationId);
                    if (null != station)
                    {
                        listResults.Add(station);
                    }
                    //应该都会存在的
                }
                else
                {
                    // 没有选中
                }
            }
            base.m_mutexDataTable.ReleaseMutex();
            return(listResults);
        }
Example #13
0
        private void btn_StartAdjust_Click(object sender, EventArgs e)
        {
            var           listStation = this.m_dgvClock.GetAllSelectedStation();
            List <string> result      = new List <string>();

            label4.Text = "开始对时,只对当前所选择的在线站点进行对时!";

            this.btn_StartAdjust.Enabled = false;
            AddLog("系统正在对时,请耐心等待!");

            m_dgvClock.Hide();

            for (int i = 0; i < listStation.Count; i++)
            {
                m_currentStation = listStation[i];
                string sendMsg = CPortDataMgr.Instance.SendTcpBatchAdjustClock(m_currentStation);
            }

            //System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer()
            //{
            //    Interval = 1000
            //};

            //int m = 0;
            //timer.Tick += (s1, e1) =>
            //{
            //    if (m > 0)
            //    {
            //        timer.Stop();
            //        m_currentStation = null;
            //        this.btn_StartAdjust.Enabled = true;
            //        return;
            //    }
            //    for (int i = 0; i < listStation.Count; i++)
            //    {
            //        m_currentStation = listStation[i];
            //        string sendMsg = CPortDataMgr.Instance.SendAdjustClockFirst(m_currentStation);
            //        //    AddLog(sendMsg);
            //    }
            //    m = 1;
            //};
            //timer.Start();


            ////显示对时完成
            //System.Windows.Forms.Timer timer_1 = new System.Windows.Forms.Timer()
            //{
            //    Interval = 1000 * 60
            //};
            ////  this.label4.Text = "";
            //timer_1.Tick += (s1, e1) =>
            //{
            //    this.label4.Text = "对时完成!";
            //    AddLog("对时完成!");
            //    timer_1.Stop();
            //};
            //timer_1.Start();
            m_dgvClock.Show();
        }
        // 设置显示的雨量记录
        public void SetRain(List <FSFXData> listFsfx)
        {
            // 清空所有数据,是否一定要这样?好像可以考虑其它方式
            base.m_dataTable.Rows.Clear();
            // 判断状态值
            List <string[]>   newRows = new List <string[]>();
            List <EDataState> states  = new List <EDataState>();

            if (!m_bIsEditable)
            {
                // 只读模式
                for (int i = 0; i < listFsfx.Count; ++i)
                {
                    EDataState     state          = EDataState.ENormal; //默认所有数据都是正常的
                    string         strStationName = "";
                    string         strStationId   = "";
                    string         state_1        = CS_DataState_Normal;
                    CEntityStation station        = CDBDataMgr.Instance.GetStationById(listFsfx[i].StationID);
                    if (null != station)
                    {
                        strStationName = station.StationName;
                        strStationId   = station.StationID;
                    }

                    if (listFsfx[i].BState == 0)
                    {
                        // 不正常
                        state   = CExDataGridView.EDataState.EError;//红色显示
                        state_1 = CS_DataState_AbNormal;
                    }
                    else if (listFsfx[i].BState == 2)
                    {
                        // 不正常
                        state   = CExDataGridView.EDataState.EWarning;//黄色显示
                        state_1 = CS_DataState_Warning;
                    }
                    string[] newRow = new string[]
                    {
                        strStationId,
                        strStationName,
                        listFsfx[i].TimeCollect.ToString(CS_TimeFormat), /*采集时间*/
                        listFsfx[i].shfx.ToString(),                     /*瞬时风向*/
                        listFsfx[i].shfs.ToString(),                     /*瞬时风向*/
                        listFsfx[i].yxszdshfx.ToString(),                /*瞬时风向*/
                        listFsfx[i].yxszdshfs.ToString(),                /*瞬时风向*/
                        state_1,
                        listFsfx[i].avg10fx.ToString(),                  /*瞬时风向*/
                        listFsfx[i].avg10fs.ToString()                   /*瞬时风向*/
                        //CEnumHelper.ChannelTypeToUIStr(listFsfx[i].ChannelType), /*通讯方式*/
                        //CEnumHelper.MessageTypeToUIStr(listFsfx[i].MessageType) /*报文类型*/
                    };
                    newRows.Add(newRow);
                    states.Add(state);
                }
            }
            // 添加到集合的数据表中
            base.AddRowRange(newRows, states);
        }
Example #15
0
        private void button1_Click(object sender, EventArgs e)
        {
            //    CPortDataMgr.Instance.StartGprs();
            CEntityStation entity = new CEntityStation();

            entity.StationID = "6018";
            entity.GPRS      = "60006018";
            CPortDataMgr.Instance.SendHex(entity);
        }
Example #16
0
        // 设置显示的雨量记录
        public void SetWaters(List <CEntityWaterSpeed> listWaterSpeed)
        {
            // 清空所有数据,是否一定要这样?好像可以考虑其它方式
            base.m_dataTable.Rows.Clear();
            // 判断状态值
            List <string[]>   newRows = new List <string[]>();
            List <EDataState> states  = new List <EDataState>();

            if (!m_bIsEditable)
            {
                string[] newRow;
                // 只读模式
                for (int i = 0; i < listWaterSpeed.Count; ++i)
                {
                    EDataState     state          = EDataState.ENormal; //默认所有数据都是正常的
                    string         strStationName = "";
                    string         strStationId   = "";
                    string         state_1        = CS_DataState_Normal;
                    CEntityStation station        = CDBDataMgr.Instance.GetStationById(listWaterSpeed[i].STCD);
                    if (null != station)
                    {
                        strStationName = station.StationName;
                        strStationId   = station.StationID;
                    }
                    newRow = new string[]
                    {
                        strStationId,
                        strStationName,                                                /*站名*/
                        listWaterSpeed[i].DT.ToString(CS_TimeFormat),                  /*采集时间*/
                        listWaterSpeed[i].W1.ToString(),                               /*水位*/
                        listWaterSpeed[i].AvgV1.ToString(),                            /*水位*/
                        listWaterSpeed[i].AvgV2.ToString(),                            /*水位*/
                        listWaterSpeed[i].AvgV3.ToString(),                            /*水位*/
                        listWaterSpeed[i].AvgV4.ToString(),                            /*水位*/
                        listWaterSpeed[i].Q.ToString(),                                /*流量*/
                        listWaterSpeed[i].rawQ.ToString(),                             /*流量*/
                        state_1,
                        listWaterSpeed[i].RevtDT.ToString(CS_TimeFormat),              /*接收时间*/
                        CEnumHelper.ChannelTypeToUIStr(listWaterSpeed[i].ChannelType), /*通讯方式*/
                        CEnumHelper.MessageTypeToUIStr(listWaterSpeed[i].MessageType), /*报文类型*/
                    };



                    newRows.Add(newRow);
                    states.Add(state);
                }
                // 添加到集合的数据表中
                base.AddRowRange(newRows, states);
            }
            else
            {
                // 添加到集合的数据表中
                base.AddRowRange(newRows, states);
            }
        }
Example #17
0
        public CStationDataAddForm()
        {
            InitializeComponent();
            InitUI();

            m_currentStation = null;
            m_entityRain     = null;
            m_entityVoltage  = null;
            m_entityWater    = null;

            FormHelper.InitUserModeEvent(this);
        }
Example #18
0
 //处理
 void form_MyEvent(CEntityStation station)
 {
     m_dgvStatioin.m_listAddedStation.Add(station);
     m_dgvStatioin.m_proxyStation.AddRange(m_dgvStatioin.m_listAddedStation);
     //m_dgvStatioin.Revert();
     // 重新加载
     CDBDataMgr.Instance.UpdateAllStation();
     m_dgvStatioin.Revert();
     m_dgvStatioin.UpdateDataToUI();
     //this.listBox1.Items.RemoveAt(index);
     //this.listBox1.Items.Insert(index, text);
 }
        /// <summary>
        /// 更新实时数据
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool UpdateRTD(CEntityRealTime entity)
        {
            // 根据ID进行分中心分发
            bool result = (m_dgvAllPage.DataGrid as CDataGridViewRTD).UpdateRTD(entity);
            // 获取每个站点分中心的ID
            CEntityStation station = CDBDataMgr.Instance.GetStationById(entity.StrStationID);

            if (m_mapSubCenterPage.ContainsKey(station.SubCenterID.Value))
            {
                result = result && (m_mapSubCenterPage[station.SubCenterID.Value].DataGrid as CDataGridViewRTD).UpdateRTD(entity);
            }
            return(result);
        }
Example #20
0
        private void tsButAddMap_Click(object sender, EventArgs e)
        {
            if (m_strCurrentStationId == null || m_strCurrentStationId.Equals(""))
            {
                MessageBox.Show("请先选中需要添加水位流量关系的测站");
                return;
            }
            // 将当前的站点显示
            CEntityStation station = CDBDataMgr.Instance.GetStationById(m_strCurrentStationId);

            listBox_StationName.TopIndex = listBox_StationName.FindString(GetDisplayStationName(station));
            //listBox_StationName.SelectedIndex = -1;
            m_dgvMap.AddNewRecord();
        }
        /// <summary>
        /// 添加实时数据
        /// </summary>
        /// <param name="entity"></param>
        public void AddRTD(CEntityRealTime entity)
        {
            // 根据ID进行分中心分发
            (m_dgvAllPage.DataGrid as CDataGridViewRTD).AddRTD(entity);

            // 获取每个站点分中心的ID
            CEntityStation station = CDBDataMgr.Instance.GetStationById(entity.StrStationID);

            if (m_mapSubCenterPage.ContainsKey(station.SubCenterID.Value))
            {
                (m_mapSubCenterPage[station.SubCenterID.Value].DataGrid as CDataGridViewRTD).AddRTD(entity);
            }
            //RefreshStationState();
            //(m_dgvAllPage.DataGrid as CDataGridViewRTD).RecalculateHeaderSize(); //计算表头宽度
        }
Example #22
0
 /// <summary>
 /// 站点和数据协议的对应
 /// 1.如果是gprs信道,则关联gprs号和数据协议的对应
 /// 2.如果是gsm信道,则关联gsm号码和数据协议的对应
 /// 3.如果是beidou信道,则关联beidou号码和数据协议的对应
 /// </summary>
 /// <param name="channnel"></param>
 private void initStations()
 {
     m_listStations      = m_proxyStation.QueryAll();
     m_listSoillStations = m_proxySoliStation.QueryAllSoilStation();
     //水雨情、墒情中gprs号码 gsm号码 北斗号码都是不重复的
     //1.初始化水情信息对应
     for (int i = 0; i < m_listStations.Count; i++)
     {
         CEntityStation station = new CEntityStation();
         station = m_listStations[i];
         if (station.GPRS != null && station.GPRS.Trim().Length > 0)
         {
             stationGprsMap[station.GPRS.Trim()] = station.Datapotocol;
             hexGprsMap[station.GPRS.Trim()]     = "Hex"; // 或者ASCII
         }
         if (station.GSM != null && station.GSM.Trim().Length > 0)
         {
             stationGsmMap[station.GSM.Trim()] = station.Datapotocol;
             hexGsmMap[station.GPRS.Trim()]    = "Hex"; // 或者ASCII
         }
         if (station.BDSatellite != null && station.BDSatellite.Trim().Length > 0)
         {
             stationBeidouMap[station.BDSatellite.Trim()] = station.Datapotocol;
             hexBeidouMap[station.BDSatellite.Trim()]     = "Hex"; // 或者ASCII
         }
     }
     //2.初始化墒情信息对应
     for (int i = 0; i < m_listSoillStations.Count; i++)
     {
         CEntitySoilStation soilStation = new CEntitySoilStation();
         soilStation = m_listSoillStations[i];
         if (soilStation.GPRS != null && soilStation.GPRS.Trim().Length > 0)
         {
             stationGprsMap[soilStation.GPRS.Trim()] = soilStation.Datapotocol;
             hexGprsMap[soilStation.GPRS.Trim()]     = "Hex"; // 或者ASCII
         }
         if (soilStation.GSM != null && soilStation.GSM.Trim().Length > 0)
         {
             stationGsmMap[soilStation.GSM.Trim()] = soilStation.Datapotocol;
             hexGsmMap[soilStation.GSM.Trim()]     = "Hex"; // 或者ASCII
         }
         if (soilStation.BDSatellite != null && soilStation.BDSatellite.Trim().Length > 0)
         {
             stationBeidouMap[soilStation.GPRS.Trim()]    = soilStation.Datapotocol;
             hexBeidouMap[soilStation.BDSatellite.Trim()] = "Hex"; // 或者ASCII
         }
     }
 }
        //115 gm
        public List <CEntityStation> getAllGprs_1()
        {
            List <CEntityStation> results = new List <CEntityStation>();
            string         sql            = "select distinct  Gprs,stationid from " + CT_TableName + ";";
            SqlDataAdapter adapter        = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection());
            DataTable      dataTableTmp   = new DataTable();

            adapter.Fill(dataTableTmp);
            for (int rowid = 0; rowid < dataTableTmp.Rows.Count; ++rowid)
            {
                CEntityStation result = new CEntityStation();
                result.GPRS      = dataTableTmp.Rows[rowid][0].ToString();
                result.StationID = dataTableTmp.Rows[rowid][1].ToString();
                results.Add(result);
            }
            return(results);
        }
Example #24
0
        public TruList BatchTime(StationList list)
        {
            CProtocolEventManager.DownForTru += BatchForTru_EventHandler;
            truReturnList = new List <string>();
            TruList truList = new TruList();

            m_timer_1.Start();

            foreach (var id in list.Ids)
            {
                CEntityStation station = CDBDataMgr.Instance.GetStationById(id);
                CPortDataMgr.Instance.SendAdjustClock(station);
            }


            while (true)
            {
                // 等待
                if (timeDown_1)
                {
                    foreach (var id in list.Ids)
                    {
                        if (this.truReturnList.Contains(id))
                        {
                            truList.TruData.Add(new TruData()
                            {
                                StationId = id, Tru = true
                            });
                        }
                        else
                        {
                            truList.TruData.Add(new TruData()
                            {
                                StationId = id, Tru = false
                            });
                        }
                    }
                    break;
                }
            }

            m_timer_1.Stop();
            CProtocolEventManager.DownForTru -= DownForTru_EventHandler;
            return(truList);
        }
Example #25
0
        //  public static void SendTru(){
        //这个就是我们的函数,我们把要对控件进行的操作放在这里
        public void SendTru(string str)
        {
            DelUserHandler handler = new DelUserHandler(SendTru);
            //this.Invoke(handler, new object[] { SendTru });
            CEntityStation entity = new CEntityStation();

            entity.StationID = "6018";
            entity.GPRS      = "60006018";
            CPortDataMgr.Instance.SendHex(entity);
            //Button btn1 = new Button();
            //btn1.PerformClick();
            // button1_Click(this, null);
            // button1.InvokeMember("click");
            //CEntityStation entity = new CEntityStation();
            //entity.StationID = "6018";
            //entity.GPRS = "60006018";
            //CPortDataMgr.Instance.SendHex(entity);
        }
        private CEntityStation FindStationByBeidouID(string bid)
        {
            if (this.StationLists == null)
            {
                throw new Exception("北斗卫星模块未初始化站点!");
            }

            CEntityStation result = null;

            foreach (var station in this.StationLists)
            {
                if (station.BDSatellite.Equals(bid, StringComparison.OrdinalIgnoreCase))
                {
                    result = station;
                    break;
                }
            }
            return(result);
        }
        //1009
        public CEntityStation QueryByGprs(string gprsID)
        {
            // List<CEntityStation> results = new List<CEntityStation>();
            CEntityStation result       = new CEntityStation();
            string         sql          = "select * from " + CT_TableName + " where " + CN_GPRS + " = '" + gprsID + "';";
            SqlDataAdapter adapter      = new SqlDataAdapter(sql, CDBManager.GetInstacne().GetConnection());
            DataTable      dataTableTmp = new DataTable();

            adapter.Fill(dataTableTmp);
            if (dataTableTmp.Rows.Count == 1)
            {
                result.StationID   = dataTableTmp.Rows[0][CN_StationID].ToString();
                result.GPRS        = dataTableTmp.Rows[0][CN_GPRS].ToString();
                result.StationName = dataTableTmp.Rows[0][CN_StationName].ToString();
                result.SubCenterID = int.Parse(dataTableTmp.Rows[0][CN_SubCenterID].ToString());
                // results.Add(result);
            }
            return(result);
        }
        private CEntityStation FindStationBySID(string sid)
        {
            if (this.m_stationLists == null)
            {
                throw new Exception("GPRS模块未初始化站点!");
            }

            CEntityStation result = null;

            foreach (var station in this.m_stationLists)
            {
                if (station.StationID.Equals(sid))
                {
                    result = station;
                    break;
                }
            }
            return(result);
        }
        // 添加新列
        public void AddNewRow(CEntityStation entity)
        {
            // 记录超过1000条,或者时间超过1分钟,就将当前的数据写入数据库
            m_mutexDataTable.WaitOne(); //等待互斥量
            DataRow row = m_tableDataAdded.NewRow();

            row[CN_StationID]      = entity.StationID;
            row[CN_SubCenterID]    = entity.SubCenterID;
            row[CN_StationName]    = entity.StationName;
            row[CN_StationType]    = (Int32)entity.StationType;
            row[CN_WaterBase]      = entity.DWaterBase;
            row[CN_WaterMax]       = entity.DWaterMax;
            row[CN_WaterMin]       = entity.DWaterMin;
            row[CN_WaterChange]    = entity.DWaterChange;
            row[CN_RainAccuracy]   = entity.DRainAccuracy;
            row[CN_RainChange]     = entity.DRainChange;
            row[CN_GSM]            = entity.GSM;
            row[CN_GPRS]           = entity.GPRS;
            row[CN_BDSatellite]    = entity.BDSatellite;
            row[CN_BDMember]       = entity.BDMemberSatellite;
            row[CN_VoltageMin]     = entity.DVoltageMin;
            row[CN_Maintran]       = entity.Maintran;
            row[CN_Subtran]        = entity.Subtran;
            row[CN_Dataprotocol]   = entity.Datapotocol;
            row[CN_Watersensor]    = entity.Watersensor;
            row[CN_Rainsensor]     = entity.Rainsensor;
            row[CN_Reportinterval] = entity.Reportinterval;

            m_tableDataAdded.Rows.Add(row);
            if (m_tableDataAdded.Rows.Count >= CDBParams.GetInstance().AddBufferMax)
            {
                // 如果超过最大值,写入数据库
                Task task = new Task(() => { AddDataToDB(); });
                task.Start();
            }
            else
            {
                // 没有超过缓存最大值,开启定时器进行检测,多次调用Start()会导致重新计数
                m_addTimer.Start();
            }
            m_mutexDataTable.ReleaseMutex();
        }
Example #30
0
 public void SetCurrentStation(CEntityStation station, bool bNotify = true)
 {
     // 设置当前的站点
     if (station == null)
     {
         return;
     }
     m_currentStation  = station;
     this.TextChanged -= cmbStation_TextChanged;
     this.Text         = GetDisplayStationName(station);
     this.TextChanged += cmbStation_TextChanged;
     if (bNotify)
     {
         // 发消息
         if (StationSelected != null)
         {
             StationSelected.Invoke(this, new CEventSingleArgs <CEntityStation>(m_currentStation));
         }
     }
 }