コード例 #1
0
        //public static string getT2Id(int tunnelId)
        //{
        //    StringBuilder sqlStr = new StringBuilder();
        //    sqlStr.Append("SELECT [PROBE_ID] FROM " + ProbeManageDbConstNames.TABLE_NAME);
        //    sqlStr.Append(" WHERE ");
        //    sqlStr.Append("TUNNEL_ID = " + tunnelId);
        //    sqlStr.Append(" AND [PROBE_NAME]='T2'");

        //    ManageDataBase db = new ManageDataBase(DATABASE_TYPE.GasEmissionDB);
        //    DataSet ds = db.ReturnDS(sqlStr.ToString());
        //    if (ds.Tables[0].Rows.Count <= 0)
        //        return string.Empty;
        //    else
        //    {
        //        return ds.Tables[0].Rows[0][0].ToString();
        //    }
        //}

        #region 实时监控

        /// <summary>
        ///     获取指定探头的最新实时数据
        /// </summary>
        /// <param name="iProbeId"></param>
        /// <returns></returns>
        /// <summary>
        ///     开始按钮Click事件
        ///     原始数据实时监控
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void _btnStart_Click(object sender, EventArgs e)
        {
            // 没有选择巷道
            if (tunnelId == Const.INVALID_ID)
            {
                Alert.alert(Const_GE.TUNNEL_NAME_MUST_INPUT);
                return;
            }

            // 没有选择探头
            if (cbxSensors.SelectedIndex < 0)
            {
                Alert.alert(Const_GE.PROBE_MUST_CHOOSE);
                return;
            }

            if (_btnStart.Text == "开始")
            {
                //this.timer2.Enabled = true;

                // 设置TeeChart1(监控系统原始数据M)
                TeeChartUtil.resetTeeChart(tChartM);
                // 设置TeeChart2(T2瓦斯浓度平均增加值Q)
                TeeChartUtil.resetTeeChart(tChartT2);
                // 设置TeeChart3(同一工序条件下瓦斯浓度变化值N)
                TeeChartUtil.resetTeeChart(tChartN);

                // 获取点击开始按钮时候的系统时间
                _StartTime = DateTime.Now;

                _btnStart.Text = "停止";

                timer1.Interval         = 15000;
                DEFAULT_DATA_SHOW_COUNT = 120;

                timer1.Enabled = true;
            }
            else
            {
                _btnStart.Text = "开始";
                timer1.Enabled = false;
            }

            // 清空datagridview
            _dgvData.Rows.Clear();
        }
コード例 #2
0
        // 更新M_N数据
        // 同一工序下,瓦斯浓度变化值N
        private void UpdateMnData()
        {
            if (CurrentProbe == null)
            {
                return;
            }
            var datas  = GasConcentrationProbeData.FindNewRealData(CurrentProbe.ProbeId, 2);
            var time   = datas[0].RecordTime;
            var value  = datas[0].ProbeValue;
            var value1 = datas[1].ProbeValue;

            var valueN = value - value1;

            // 判断是否是最新数据
            if (time != _lastTimeMn && _lastTimeMn != DateTime.MinValue)
            {
                _lastTimeMn = time;

                // 往DGV中填充数据
                dgvData.Rows.Add(value + "%", time);
                if (dgvData.Rows.Count > 0)
                {
                    // 定位滚动条
                    dgvData.FirstDisplayedScrollingRowIndex = dgvData.Rows.Count - 1;

                    // 瓦斯浓度超过安全范围
                    if (value >= YellowDataThreshold && value <= RedDataThreshold)
                    {
                        dgvData.Rows[dgvData.Rows.Count - 1].DefaultCellStyle.BackColor = Color.Yellow;
                    }
                    else if (value > RedDataThreshold)
                    {
                        dgvData.Rows[dgvData.Rows.Count - 1].DefaultCellStyle.BackColor = Color.Red;
                    }
                }

                TeeChartUtil.addSingleData2TeeChart(tChartM, DataCountPerFrame, time, value);
                TeeChartUtil.addSingleData2TeeChart(tChartN, DataCountPerFrame, time, valueN);
            }
            else
            {
                _lastTimeMn = time;
            }
        }
コード例 #3
0
        private void UpdateT2Data()
        {
            if (T2Probe.ProbeId == string.Empty)
            {
                return;
            }
            var datas  = GasConcentrationProbeData.FindNewRealData(T2Probe.ProbeId, 2);
            var time   = datas[0].RecordTime;
            var value0 = datas[0].ProbeValue;
            var value1 = datas[1].ProbeValue;

            // 判断是否是最新数据
            if (time == _lastTimeT2)
            {
                return;
            }
            _lastTimeT2 = time;

            var value = value1 - value0;

            TeeChartUtil.addSingleData2TeeChart(tChartT2, DataCountPerFrame, time, value);
        }
コード例 #4
0
        /// <summary>
        ///     开始实时监控
        /// </summary>
        private void StartRealTimeCurveMonitoring()
        {
            // 检查是否选择了巷道和传感器
            if (!Check())
            {
                return;
            }

            // reset Tee Chart

            TeeChartUtil.resetTeeChart(tChartM);  // tChart1, 监控系统原始数据M
            TeeChartUtil.resetTeeChart(tChartT2); // tChart2, T2瓦斯浓度平均增加值Q
            TeeChartUtil.resetTeeChart(tChartN);  // tChart3, 同一工序条件下瓦斯浓度变化值N

            // 清空datagridview
            dgvData.Rows.Clear();

            // 获取指定探头的旧数据 ----------用来填充曲线。
            var dsData = GasConcentrationProbeData.FindHistaryDataTop(CurrentProbe.ProbeId, DataCountPerFrame);

            AddDataSet2TeeChart(tChartM, dsData, "M");
            AddDataSet2TeeChart(tChartN, dsData, "N");
            if (!String.IsNullOrEmpty(T2Probe.ProbeId))
            {
                var ds = GasConcentrationProbeData.FindHistaryDataTop(T2Probe.ProbeId, DataCountPerFrame);
                AddDataSet2TeeChart(tChartT2, ds, "T2");
            }

            if (dgvData.Rows.Count > 0)
            {
                // 定位滚动条
                dgvData.FirstDisplayedScrollingRowIndex = dgvData.Rows.Count - 1;
            }
            // 获取旧数据 ---------- End

            timer1.Enabled = true; // 启动定时器
        }
コード例 #5
0
        // 更新M_N数据
        // 同一工序下,瓦斯浓度变化值N
        private void updateMNData()
        {
            var datas  = GasConcentrationProbeData.FindNewRealData(currentProbeId, 2);
            var time   = datas[0].RecordTime;
            var time1  = datas[1].RecordTime;
            var value  = datas[0].ProbeValue;
            var value1 = datas[1].ProbeValue;

            var valueN = value - value1;

            // 判断是否是最新数据
            if (time != _LastTimeMN)
            {
                _LastTimeMN = time;

                // 往DGV中填充数据
                _dgvData.Rows.Add(value + "%", time);
                if (_dgvData.Rows.Count > 0)
                {
                    // 定位滚动条
                    _dgvData.FirstDisplayedScrollingRowIndex = _dgvData.Rows.Count - 1;

                    // 瓦斯浓度超过安全范围
                    if (value >= yellowDataThreshold && value <= redDataThreshold)
                    {
                        _dgvData.Rows[_dgvData.Rows.Count - 1].DefaultCellStyle.BackColor = Color.Yellow;
                    }
                    else if (value > redDataThreshold)
                    {
                        _dgvData.Rows[_dgvData.Rows.Count - 1].DefaultCellStyle.BackColor = Color.Red;
                    }
                }

                TeeChartUtil.addSingleData2TeeChart(tChartM, DEFAULT_DATA_SHOW_COUNT, time, value);
                TeeChartUtil.addSingleData2TeeChart(tChartN, DEFAULT_DATA_SHOW_COUNT, time, valueN);
            }
        }
コード例 #6
0
        /// <summary>
        ///     获取指定探头的最新2行实时数据
        /// </summary>
        /// <param name="iProbeId"></param>
        /// <returns></returns>
        //public static DataSet getLatest2RowsData(string iProbeId)
        //{
        //    StringBuilder sqlStr = new StringBuilder();
        //    sqlStr.Append("SELECT TOP 2 * FROM " + GasConcentrationProbeDataDbConstNames.TABLE_NAME);
        //    sqlStr.Append(" WHERE " + GasConcentrationProbeDataDbConstNames.PROBE_ID + " = " + iProbeId);
        //    sqlStr.Append(" ORDER BY " + GasConcentrationProbeDataDbConstNames.PROBE_DATA_ID + " DESC");

        //    ManageDataBase db = new ManageDataBase(DATABASE_TYPE.GasEmissionDB);
        //    DataSet ds = db.ReturnDS(sqlStr.ToString());
        //    return ds;
        //}
        private void updateT2Data()
        {
            if (_T2Id == string.Empty)
            {
                tChartT2.Header.Text = "该巷道没有设置T2传感器.";
                return;
            }

            var datas  = GasConcentrationProbeData.FindNewRealData(_T2Id, 2);
            var time   = datas[0].RecordTime;
            var value0 = datas[0].ProbeValue;
            var value1 = datas[1].ProbeValue;

            // 判断是否是最新数据
            if (time != _LastTimeT2)
            {
                _LastTimeT2 = time;

                var value = value1 - value0;
                t2DeltaSumValue += value;
                value            = t2DeltaSumValue / ++t2DataCount;
                TeeChartUtil.addSingleData2TeeChart(tChartT2, DEFAULT_DATA_SHOW_COUNT, time, value);
            }
        }