Ejemplo n.º 1
0
        private void LoadAllHistoryData()
        {
            var probeName = "";
            var startTime = new DateTime();
            var endTime   = new DateTime();

            Invoke(new MethodInvoker(delegate
            {
                lblLoading.Visible   = true;
                btnQuery.Text        = @"查询中...";
                btnQuery.Enabled     = false;
                probeName            = lstProbeName.SelectedValue.ToString();
                startTime            = Convert.ToDateTime(dateTimeStart.Text);
                endTime              = Convert.ToDateTime(dateTimeEnd.Text);
                rbtnRealtime.Enabled = false;
                rbtnHistory.Enabled  = false;
            }));
            var datas = GasConcentrationProbeData.FindHistaryData(probeName, startTime, endTime);

            // load监控系统原始数据M历史数据
            LoadHistoryDataM(tChartM, datas);
            // load同一工序条件下瓦斯浓度变化值N历史数据
            LoadHistoryDataN(tChartN, datas);
            // loadT2瓦斯浓度平均增加值Q历史数据
            LoadHistoryDataT2(tChartT2);

            Invoke(new MethodInvoker(delegate
            {
                lblLoading.Visible   = false;
                btnQuery.Text        = @"查询";
                btnQuery.Enabled     = true;
                rbtnRealtime.Enabled = true;
                rbtnHistory.Enabled  = true;
            }));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     删除(必须实装)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (Alert.confirm(Const_GE.DEL_CONFIRM_MSG))
            {
                // 获取已选择明细行的索引
                var iSelIdxsArr = GetSelIdxs();

                var pkIdxArrList = new List <string[]>();

                for (var i = 0; i < iSelIdxsArr.Length; i++)
                {
                    // 获取主键
                    var iPk1 =
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[iSelIdxsArr[i], _primaryKey1Index].Text;
                    var iPk2 =
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[iSelIdxsArr[i], _primaryKey2Index].Text;

                    var strArr = new string[2];
                    strArr[0] = iPk1;
                    strArr[1] = iPk2;

                    pkIdxArrList.Add(strArr);
                }

                // 瓦斯浓度探头数据删除
                GasConcentrationProbeData.DeleteAll(pkIdxArrList);

                // 加载瓦斯浓度探头数据信息
                loadGasConcentrationProbeDataInfo();

                // 设置farpoint焦点(必须实装)
                fpGasConcentrationProbeDataInfo.Sheets[0].SetActiveCell(iSelIdxsArr[0], 0);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 ///     设置瓦斯浓度探头数据
 /// </summary>
 public void setGasConcentrationProbeData(string strPrimaryKey)
 {
     if (!Validator.IsEmpty(strPrimaryKey))
     {
         var data = GasConcentrationProbeData.TryFind(strPrimaryKey);
         // 数值
         if (data != null)
         {
             txtProbeValue.Text =
                 data.ProbeValue.ToString();
             // 时间
             dtpRecordTime.Text =
                 data.RecordTime.ToString("yyyy-MMMM-dd hh:mm:ss");
         }
     }
 }
Ejemplo n.º 4
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;
            }
        }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
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; // 启动定时器
        }
Ejemplo n.º 7
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);
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        ///     loadT2瓦斯浓度平均增加值Q历史数据
        /// </summary>
        private void LoadHistoryDataT2(TChart tChart)
        {
            var datas = GasConcentrationProbeData.FindHistaryData(
                T2Probe.ProbeId,
                Convert.ToDateTime(dateTimeStart.Text),
                Convert.ToDateTime(dateTimeEnd.Text)
                );
            var sqlCnt = 0;

            if (datas.Length > 0)
            {
                sqlCnt = datas.Length;
            }
            if (sqlCnt > 0)
            {
                tChart.Header.Text = "T2瓦斯浓度平均增加值Q";
                AddDataSet2TeeChart(tChart, datas, "T2");
            }
            else
            {
                //Alert.alert("没有T2瓦斯浓度数据!");
                tChart.Header.Text = "没有T2瓦斯浓度数据!";
            }
        }
Ejemplo n.º 9
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);
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        ///     提交
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            // 验证
            if (!check())
            {
                DialogResult = DialogResult.None;
                return;
            }
            DialogResult = DialogResult.OK;

            // 创建一个瓦斯浓度探头数据实体
            var gasConcentrationProbeDataEntity = new GasConcentrationProbeData();

            // 探头编号
            gasConcentrationProbeDataEntity.Probe.ProbeId = Convert.ToString(_lstProbeName.SelectedValue);
            // 探头数值
            double dProbeValue = 0;

            if (double.TryParse(txtProbeValue.Text.Trim(), out dProbeValue))
            {
                gasConcentrationProbeDataEntity.ProbeValue = dProbeValue;
            }
            // 记录时间
            gasConcentrationProbeDataEntity.RecordTime = dtpRecordTime.Value;
            // 记录类型
            gasConcentrationProbeDataEntity.RecordType = Const_GE.RECORDTYPE_PEOPLE;

            OPERATION_TYPE opType;
            var            bResult = false;

            if (_bllType == "add")
            {
                // 瓦斯浓度探头数据登录
                gasConcentrationProbeDataEntity.CreateAndFlush();
                bResult = true;
                opType  = OPERATION_TYPE.ADD;

                if (bResult)
                {
                    #region 通知服务器预警数据已更新

                    var workingfaceEnt = selectTunnelUserControl1.SelectedTunnel.WorkingFace;
                    var msg            = new UpdateWarningDataMsg(workingfaceEnt.WorkingFaceId,
                                                                  selectTunnelUserControl1.SelectedTunnel.TunnelId,
                                                                  DayReportHc.TableName, opType, gasConcentrationProbeDataEntity.RecordTime);
                    SocketUtil.SendMsg2Server(msg);

                    #endregion
                }
            }
            else
            {
                // 主键
                gasConcentrationProbeDataEntity.ProbeDataId = Convert.ToInt32(_iPK);
                // 探头管理信息修改
                gasConcentrationProbeDataEntity.SaveAndFlush();
                opType = OPERATION_TYPE.UPDATE;

                #region 通知服务器预警数据已更新

                var workingfaceEnt = selectTunnelUserControl1.SelectedTunnel.WorkingFace;
                var msg            = new UpdateWarningDataMsg(workingfaceEnt.WorkingFaceId,
                                                              selectTunnelUserControl1.SelectedTunnel.TunnelId,
                                                              DayReportHc.TableName, opType, gasConcentrationProbeDataEntity.RecordTime);
                SocketUtil.SendMsg2Server(msg);

                #endregion
            }


            // 添加\修改成功的场合
            if (bResult)
            {
                // 如何探头编号发生改变则不更新管理画面的farpoint
                if (GasConcentrationProbeDataManamement._probeId != Convert.ToString(_lstProbeName.SelectedValue))
                {
                    GasConcentrationProbeDataManamement._iDisposeFlag = Const.DISPOSE_FLAG_ZERO;
                }
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        ///     加载瓦斯浓度探头数据信息
        /// </summary>
        private void loadGasConcentrationProbeDataInfo()
        {
            Invoke(new MethodInvoker(delegate
            {
                // 修改按钮设为不可用(必须实装)
                _btnQuery.Text    = "查询中...";
                _btnQuery.Enabled = false;
                btnUpdate.Enabled = false;
                // 删除按钮设为不可用(必须实装)
                btnDelete.Enabled = false;
                // 全选/全不选checkbox设为未选中(必须实装)
                _chkSelAll.Checked = false;
                _lblNoData.Visible = true;
                _lblNoData.Text    = "查询数据中...";
                dataPager1.Enabled = false;
            }));
            // 清空HashTabl(必须实装)
            _htSelIdxs.Clear();

            // 删除farpoint明细部(必须实装)
            // 解决修改、删除某条数据后,重新load的时候,选择列checkbox不恢复成默认(不选择)的BUG
            // 解决删除全部数据后,再添加一行,报错的BUG
            Invoke(new MethodInvoker(delegate
            {
                if (fpGasConcentrationProbeDataInfo.Sheets[0].Rows.Count != _iRowDetailStartIndex)
                {
                    fpGasConcentrationProbeDataInfo.Sheets[0].Rows.Remove(_iRowDetailStartIndex, _iRowCount);
                }
                else
                {
                    _iRowCount = 0;
                }
            }));

            var dtTimeStart = _dateTimeStart.Value;
            var dtTimeEnd   = _dateTimeEnd.Value;

            // 根据探头编号和开始结束时间,获取特定探头和特定时间段内的【瓦斯浓度探头数据】(必须实装)
            var iRecordCount =
                GasConcentrationProbeData.SelectAllGasConcentrationProbeDataByProbeIdAndTime(_probeId, dtTimeStart,
                                                                                             dtTimeEnd).Length;

            var iStartIndex = 0;
            var iEndIndex   = 0;

            Invoke(new MethodInvoker(delegate
            {
                if (iRecordCount > 0)
                {
                    _gbPage.Enabled = true;
                }
                else
                {
                    _gbPage.Enabled = false;
                }


                // 调用分页控件初始化方法(必须实装)
                dataPager1.PageControlInit(iRecordCount);

                // 获取要检索数据的开始位置和结束位置 (必须实装)
                iStartIndex = dataPager1.getStartIndex();
                iEndIndex   = dataPager1.getEndIndex();
            }));
            //// 获取开始位置和结束位置之间的数据(必须实装)
            //// 说明:如果画面当前显示的件数是10,那么init时开始位置为1,结束位置为10,点击下一页后,开始位置变为11,结束位置变为20
            var datas = GasConcentrationProbeData.SlicedSelectAllGasConcentrationProbeDataByProbeIdAndTime(
                iStartIndex, iEndIndex, _probeId, dtTimeStart, dtTimeEnd);

            // 当前检索件数(必须实装)
            var iSelCnt = datas.Length;

            Invoke(new MethodInvoker(delegate
            {
                // 重新设定farpoint显示行数 (必须实装)
                fpGasConcentrationProbeDataInfo.Sheets[0].Rows.Count = _iRowDetailStartIndex + iSelCnt;
            }));

            // 检索件数 > 0 的场合
            if (iSelCnt > 0)
            {
                // 设置处理标识位
                _iDisposeFlag = Const.DISPOSE_FLAG_ONE;

                // 当前检索件数(必须实装)
                _iRowCount = iSelCnt;

                // 循环结果集
                for (var i = 0; i < iSelCnt; i++)
                {
                    var index = 0;
                    // 选择
                    Invoke(new MethodInvoker(delegate
                    {
                        var objCheckCell = new CheckBoxCellType();
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, index].CellType =
                            objCheckCell;

                        // 探头数据编号
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                            datas[i].ProbeDataId.ToString();
                        // 探头编号
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                            datas[i].Probe.ProbeId;
                        // 探头数值
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                            datas[i].ProbeValue.ToString();
                        // 记录时间
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                            datas[i].RecordTime.ToString("yyyy-MMMM-dd hh:mm:ss");
                        // 记录类型
                        fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                            datas[i].RecordType;
                        // 探头信息取得
                        //DataSet dsProbe = ProbeManageBLL.selectProbeManageInfoByProbeId(strProbeId);

                        if (datas[i].Probe != null)
                        {
                            // 探头名称

                            fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                                datas[i].Probe.ProbeName;

                            // 探头类型
                            fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                                datas[i].Probe.ProbeType.ProbeTypeName;

                            // 探头描述
                            fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text =
                                datas[i].Probe.ProbeDescription;

                            // 矿井名称
                            if (datas[i].Probe.Tunnel != null)
                            {
                                fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text
                                    = datas[i].Probe.Tunnel.WorkingFace.MiningArea.Horizontal.Mine.MineName;
                                // 水平
                                fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text
                                    = datas[i].Probe.Tunnel.WorkingFace.MiningArea.Horizontal.HorizontalName;
                                // 采区
                                fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text
                                    = datas[i].Probe.Tunnel.WorkingFace.MiningArea.MiningAreaName;
                                // 工作面
                                fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text
                                    = datas[i].Probe.Tunnel.WorkingFace.WorkingFaceName;
                                // 巷道名称
                                fpGasConcentrationProbeDataInfo.Sheets[0].Cells[_iRowDetailStartIndex + i, ++index].Text
                                    = datas[i].Probe.Tunnel.TunnelName;
                            }
                        }
                    }));
                }
            }
            else
            {
                // 显示无数据提示信息
                Invoke(new MethodInvoker(delegate
                {
                    _lblNoData.Text    = "提示:无数据!";
                    _lblNoData.Visible = true;
                }));
            }
            Invoke(new MethodInvoker(delegate
            {
                _lblNoData.Visible = false;
                _lblNoData.Text    = "查询数据中...";
                _btnQuery.Text     = "查询";
                _btnQuery.Enabled  = true;
                dataPager1.Enabled = true;
            }));
        }