Esempio n. 1
0
        private void LoadDataSub(int measureId, int sensorId)
        {
            var      keyDbName = DBManagerChild.GetDBName(sensorId);
            DateTime?dtS       = null;
            DateTime?dtE       = null;

            if (pnlFilter.Visible == true)
            {
                dtS = new DateTime(dtpSubDateS.Value.Year,
                                   dtpSubDateS.Value.Month,
                                   dtpSubDateS.Value.Day,
                                   (int)cboSubHourS.SelectedValue,
                                   (int)cboSubMimuteS.SelectedValue,
                                   (int)cboSubSecondS.SelectedValue,
                                   000);
                dtE = new DateTime(dtpSubDateE.Value.Year,
                                   dtpSubDateE.Value.Month,
                                   dtpSubDateE.Value.Day,
                                   (int)cboSubHourE.SelectedValue,
                                   (int)cboSubMimuteE.SelectedValue,
                                   (int)cboSubSecondE.SelectedValue,
                                   999);
            }

            dgvMeasureDetail.DataSource = AppManager.GetDBChildConnection(keyDbName).GetMeasureDetail(measureId.ToString(), chkView.Checked, dtS, dtE);

            if (dgvMeasureDetail.Rows.Count > 0)
            {
                dgvMeasureDetail.FirstDisplayedScrollingRowIndex = dgvMeasureDetail.Rows.Count - 1;
                dgvMeasureDetail.Rows[dgvMeasureDetail.Rows.Count - 1].Selected = true;
            }
        }
Esempio n. 2
0
        private void dgvMeasure_SelectionChanged(object sender, EventArgs e)
        {
            if (IsLoading)
            {
                return;
            }
            if (dgvMeasure.CurrentRow == null || dgvMeasure.CurrentRow.Index < 0)
            {
                return;
            }

            dgvMeasureDetail.DataSource = null;
            this.Cursor = Cursors.WaitCursor;
            DGVMeasureInfo item      = dgvMeasure.CurrentRow.DataBoundItem as DGVMeasureInfo;
            var            keyDbName = DBManagerChild.GetDBName(item.SensorId);
            var            lst       = AppManager.GetDBChildConnection(keyDbName).GetMeasureDetail(item.MeasureId.ToString(), true);

            int cnt = 1;

            lst = lst.Select(i =>
            {
                i.No = cnt++;
                return(i);
            }).ToList();
            dgvMeasureDetail.DataSource = lst;
            //if (dgvMeasureDetail.Rows.Count > 0)
            //{
            //    dgvMeasureDetail.Select();
            //    dgvMeasureDetail.FirstDisplayedScrollingRowIndex = 0;
            //    dgvMeasureDetail.Rows[0].Selected = true;
            //}
            this.Cursor = Cursors.Default;
        }
Esempio n. 3
0
        public static void Configure()
        {
            if (!_hasConfigure)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.ApplicationExit += (sender, e) =>
                {
                    //foreach (var dbChild in _dbChildContainer)
                    //{
                    //    if (dbChild.Value != null)
                    //    {
                    //        dbChild.Value.Dispose();
                    //    }
                    //}

                    //_dbChildContainer.Clear();
                    //_dbChildContainer = null;
                };

                // Config DB
                SQLiteManager.CreateDatabaseIfNotExists(_pathDB);
                using (var objDB = AppManager.GetConnection())
                {
                    var defValues = GetDefaultSetting();
                    objDB.SetDefaultValues(defValues);
                }
                using (var objDB = AppManager.GetConnection())
                {
                    ListBlock  = objDB.GetListBlock();
                    ListSensor = objDB.GetListSensor();
                }

                ListSensor.Select((sensor) => {
                    var pathDBSensor = PathFolderData + DBManagerChild.GetDBName(sensor.SensorId);
                    SQLiteManager.CreateDatabaseIfNotExists2(pathDBSensor);
                    GetDBChildConnection(DBManagerChild.GetDBName(sensor.SensorId));
                    return(sensor);
                }).ToList();

                //foreach (var sensor in ListSensor)
                //{
                //    var pathDBSensor = PathFolderData + DBManagerChild.GetDBName(sensor.SensorId);
                //    SQLiteManager.CreateDatabaseIfNotExists2(pathDBSensor);
                //    GetDBChildConnection(DBManagerChild.GetDBName(sensor.SensorId));
                //}

                // Config Log

                // Config Language
                LanguageHelper.LoadConfigDefaultLanguage();

                _hasConfigure = true;
            }
        }
Esempio n. 4
0
        private void UpdateMesureEndForSensor(object sender)
        {
            var obj      = (QueueProcessorThread <List <MeasureDetail> >)sender;
            var sensorId = ConvertHelper.CnvNullToInt(obj.Name);

            if (sensorId > 0)
            {
                var measureResult = ListSensorChild.Where(i => i.SensorId == sensorId).Select(i => i.Result_Measure).FirstOrDefault() == (int)clsConst.emMeasureResult.Fail ? (int)clsConst.emMeasureResult.Fail : (int)clsConst.emMeasureResult.Pass;
                AppManager.GetDBChildConnection(DBManagerChild.GetDBName(sensorId)).UpdateEndTimeMeasure(mappingSensorMeasureId[sensorId], DateTime.Now, measureResult);
                Console.WriteLine("End sensor: " + DBManagerChild.GetDBName(sensorId));
            }
        }
Esempio n. 5
0
        private void InsertMesureForSensor()
        {
            foreach (var sensor in this.ListSensorChild)
            {
                var keyDbName = DBManagerChild.GetDBName(sensor.SensorId);
                mappingSensorMeasureId.Add(sensor.SensorId, AppManager.GetDBChildConnection(keyDbName).InsertMeasure(sensor));
                mappingSensorMeasureData.Add(sensor.SensorId, new List <MeasureDetail>());
                mappingSensorProcessorInsert.Add(sensor.SensorId, new QueueProcessorThread <List <MeasureDetail> >()
                {
                    Name = sensor.SensorId.ToString(),
                });
                mappingSensorProcessorInsert[sensor.SensorId].ProcessItem     += InsertMesureDetailForSensor;
                mappingSensorProcessorInsert[sensor.SensorId].ProcessQueueEnd += UpdateMesureEndForSensor;
                mappingSensorProcessorInsert[sensor.SensorId].Start();

                mappingSensorProcessorException.Add(sensor.SensorId, new QueueProcessorThread <DSF602Exception>()
                {
                    Name = sensor.SensorId.ToString(),
                });

                mappingSensorProcessorException[sensor.SensorId].ProcessItem += ExceptionForSensor;
                mappingSensorProcessorException[sensor.SensorId].Start();
            }
        }
Esempio n. 6
0
        private void dgvMeasure_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvMeasure.CurrentRow == null || dgvMeasure.CurrentRow.Index < 0)
            {
                return;
            }
            int rowIndex = dgvMeasure.CurrentRow.Index;
            int colIndex = dgvMeasure.CurrentCell.ColumnIndex;

            var measureid = ConvertHelper.CnvNullToInt(dgvMeasure.Rows[rowIndex].Cells[MeasureID.Index].Value);
            var sensorid  = ConvertHelper.CnvNullToInt(dgvMeasure.Rows[rowIndex].Cells[SensorID.Index].Value);

            this.SetModeWaiting();

            try
            {
                if (colIndex == dgvMeasure.Columns[colDelete.Index].Index)
                {
                    // Delete
                    if (!clsCommon.ComfirmMsg("MSG_COMFIRM_DELETE"))
                    {
                        ClearSelectionDgv(dgvMeasure);
                        return;
                    }

                    var keyDbName       = DBManagerChild.GetDBName(sensorid);
                    var measureOfSensor = AppManager.GetDBChildConnection(keyDbName)
                                          .DeleteMeasure(measureid);

                    LoadData();
                }
                else
                {
                    // Load filter
                    var dtStartTime    = CnvDBToDateTimePickerValue(dgvMeasure.Rows[rowIndex].Cells[StartTime.Index].Value);
                    var dtEndTime      = CnvDBToDateTimePickerValue(dgvMeasure.Rows[rowIndex].Cells[EndTime.Index].Value);
                    var intMeasureType = ConvertHelper.CnvNullToInt(dgvMeasure.Rows[rowIndex].Cells[MeasureType.Index].Value);

                    ResultDetail.Visible = intMeasureType == (int)emMeasureType.AlarmTest;
                    pnlFilter.Enabled    = true;

                    dtpSubDateS.Value           = dtStartTime;
                    cboSubHourS.SelectedValue   = dtStartTime.Hour;
                    cboSubMimuteS.SelectedValue = dtStartTime.Minute;
                    cboSubSecondS.SelectedValue = dtStartTime.Second;

                    dtpSubDateE.Value           = dtEndTime;
                    cboSubHourE.SelectedValue   = dtEndTime.Hour;
                    cboSubMimuteE.SelectedValue = dtEndTime.Minute;
                    cboSubSecondE.SelectedValue = dtEndTime.Second;

                    LoadDataSub(measureid, sensorid);
                }
            }
            catch (Exception ex)
            {
                ShowMsg(MessageBoxIcon.Error, LanguageHelper.GetValueOf("MSG_ERR_PROCESS"));
            }
            finally
            {
                this.SetModeWaiting(false);
            }
        }
Esempio n. 7
0
        private void LoadData()
        {
            var dtStart = new DateTime(dtpStart.Value.Year, dtpStart.Value.Month, dtpStart.Value.Day, 0, 0, 0);
            var dtEnd   = new DateTime(dtpEnd.Value.Year, dtpEnd.Value.Month, dtpEnd.Value.Day, 23, 59, 59);

            var strSDate = dtStart.ToString(clsConst.cstrDateTimeFormatNoMiliSecond);
            var strEDate = dtEnd.ToString(clsConst.cstrDateTimeFormatNoMiliSecond);
            int intUser  = cmbUser.SelectedValue != null?ConvertHelper.CnvNullToInt(cmbUser.SelectedValue) : SELECT_ALL;

            int intResult = cmbResult.SelectedValue != null?ConvertHelper.CnvNullToInt(cmbResult.SelectedValue) : SELECT_ALL;

            pnlFilter.Enabled           = false;
            dgvMeasureDetail.DataSource = null;

            var            lstAllSensor = AppManager.ListSensor;
            var            lstBlock     = AppManager.ListBlock;
            List <Measure> lstMeasure   = new List <Measure>();

            if ((int)cmbBlock.SelectedValue < 0)
            {
                //foreach (var sensor in lstAllSensor)
                //{
                //    var keyDbName = DBManagerChild.GetDBName(sensor.SensorId);
                //    var measureOfSensor = AppManager.GetDBChildConnection(keyDbName)
                //                                 .GetAllMeasure(strSDate, strEDate, intUser, intResult);
                //    lstMeasure = measureOfSensor.Concat(lstMeasure).ToList();
                //}

                lstAllSensor.Select((sensor) =>
                {
                    var keyDbName = DBManagerChild.GetDBName(sensor.SensorId);
                    lstMeasure.AddRange(AppManager.GetDBChildConnection(keyDbName).GetAllMeasure(strSDate, strEDate, intUser, intResult));
                    return(sensor);
                }).ToList();
            }
            else if ((int)cmbSensor.SelectedValue < 0)
            {
                //var lstSensorOfBlock = lstAllSensor.FindAll(i => i.OfBlock == (int)cmbBlock.SelectedValue);

                //foreach (var item in lstSensorOfBlock)
                //{
                //    var keyDbName = DBManagerChild.GetDBName(item.SensorId);
                //    var measureOfSensor = AppManager.GetDBChildConnection(keyDbName)
                //                                 .GetAllMeasure(strSDate, strEDate, intUser, intResult);
                //    lstMeasure = measureOfSensor.Concat(lstMeasure).ToList();
                //}

                lstAllSensor.Where(i => i.OfBlock == (int)cmbBlock.SelectedValue).Select((sensor) =>
                {
                    var keyDbName = DBManagerChild.GetDBName(sensor.SensorId);
                    lstMeasure.AddRange(AppManager.GetDBChildConnection(keyDbName).GetAllMeasure(strSDate, strEDate, intUser, intResult));
                    return(sensor);
                }).ToList();
            }
            else
            {
                var keyDbName = DBManagerChild.GetDBName((int)cmbSensor.SelectedValue);
                lstMeasure.AddRange(AppManager.GetDBChildConnection(keyDbName).GetAllMeasure(strSDate, strEDate, intUser, intResult));
            }

            var query = (from m in lstMeasure
                         join u in _mUsers on m.UserId equals u.UserId
                         join s in lstAllSensor on m.SensorId equals s.SensorId
                         join b in lstBlock on s.OfBlock equals b.BlockId
                         select new DGVMeasureInfo
            {
                MeasureId = m.MeasureId,
                SensorId = m.SensorId,
                Alarm_Value = m.Alarm_Value,
                FullName = u.UserName,
                SensorName = s.SensorName,
                BlockName = b.BlockName,
                Measure_Result = m.Measure_Result,
                Start_time = m.Start_time,
                End_time = m.End_time
            }).OrderBy(x => x.MeasureId).ToList();

            dgvMeasure.DataSource = query;

            if (dgvMeasure.Rows.Count > 0)
            {
                dgvMeasure.Select();
                dgvMeasure.FirstDisplayedScrollingRowIndex          = dgvMeasure.Rows.Count - 1;
                dgvMeasure.Rows[dgvMeasure.Rows.Count - 1].Selected = true;
            }
        }
Esempio n. 8
0
        private void btnExport_Click(object sender, EventArgs e)
        {
            if (dgvMeasure.Rows.Count == 0)
            {
                ShowMsg(MessageBoxIcon.Warning, LanguageHelper.GetValueOf("MSG_WAR_DATA"));
                return;
            }

            if (dgvMeasure.CurrentCell == null)
            {
                ShowMsg(MessageBoxIcon.Warning, LanguageHelper.GetValueOf("MSG_WAR_EXCEL"));
                return;
            }

            var objMeasureS = dgvMeasure.CurrentRow.Cells[StartTime.Index].Value;
            var objMeasureE = dgvMeasure.CurrentRow.Cells[EndTime.Index].Value;
            var dtMeasureS  = objMeasureS != null && objMeasureS != DBNull.Value ? (DateTime?)objMeasureS : null;
            var dtMeasureE  = objMeasureE != null && objMeasureE != DBNull.Value ? (DateTime?)objMeasureE : null;

            var intSensorId    = ConvertHelper.CnvNullToInt(dgvMeasure.CurrentRow.Cells[SensorID.Index].Value);
            var intMeasureType = ConvertHelper.CnvNullToInt(dgvMeasure.CurrentRow.Cells[MeasureType.Index].Value);
            var intAlarmValue  = ConvertHelper.CnvNullToInt(dgvMeasure.CurrentRow.Cells[AlarmValue.Index].Value);
            var intResult      = ConvertHelper.CnvNullToInt(dgvMeasure.CurrentRow.Cells[Result.Index].Value);
            var intMeasureId   = ConvertHelper.CnvNullToInt(dgvMeasure.CurrentRow.Cells[MeasureID.Index].Value);
            var strUserName    = ConvertHelper.CnvNullToString(dgvMeasure.CurrentRow.Cells[User.Index].Value);
            var strDeviceName  = ConvertHelper.CnvNullToString(dgvMeasure.CurrentRow.Cells[SensorName.Index].Value);
            var emType         = intMeasureType == (int)emMeasureType.AlarmTest ? emMeasureType.AlarmTest : emMeasureType.WalkingTest;

            var         pathReport     = Path.GetTempPath() + @"\" + DateTime.Now.ToString(cstrDateTimeFormatNoMiliSecond2) + "xlsx";
            var         fileNameReport = (intMeasureType == (int)emMeasureType.AlarmTest ? REPORT_NAME_ALARM : REPORT_NAME_WALKING);
            CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

            fileNameReport = currentCulture + "_" + fileNameReport;
            var pathReportTemplate = AppManager.PathReportTemplate + fileNameReport;
            var cnn = 0;

            if (!File.Exists(pathReportTemplate))
            {
                pathReportTemplate = AppManager.PathReportTemplate + REPORT_NAME_ALARM;
                //ShowMsg(MessageBoxIcon.Warning, LanguageHelper.GetValueOf("MSG_WAR_EXCELTEMPLATE"));
                //return;
            }

            var threadExport = new Thread(() =>
            {
                this.SetModeWaiting();
                try
                {
                    using (var saveFileDialog = clsCommon.SaveExcelDialog(DateTime.Now.ToString(cstrDateTimeFormatNoMiliSecond2) + "_report"))
                    {
                        if (saveFileDialog.ShowDialog() != DialogResult.OK)
                        {
                            return;
                        }

                        File.Copy(pathReportTemplate, pathReport, true);

                        using (var objExport = new clsExportReport(pathReport))
                        {
                            // Header
                            objExport.WriteMeasureInfo(new MeasureInfo
                            {
                                MeasureId     = intMeasureId,
                                UserName      = strUserName,
                                ReportDate    = dtMeasureS,
                                MeasureStart  = dtMeasureS,
                                MeasureEnd    = dtMeasureE,
                                MeasureType   = emType,
                                MeasureResult = clsCommon.MeasureResultDisplay(intResult),
                                AlarmValue    = intAlarmValue,
                                DeviceName    = strDeviceName
                            });

                            // Detail
                            var keyDbName     = DBManagerChild.GetDBName(intSensorId);
                            var dataDetail    = AppManager.GetDBChildConnection(keyDbName).GetMeasureDetail(intMeasureId.ToString(), false, dtMeasureS, dtMeasureE);
                            var rowStarDetail = (emType == emMeasureType.AlarmTest ? clsExportReport.ROW_START_ALARM : clsExportReport.ROW_START_WALKING);

                            dataDetail.Select((measure) =>
                            {
                                if (objExport.WriteMeasureDetail(rowStarDetail, new clsConst.MeasureDetailExport
                                {
                                    No = ++cnn,
                                    Time = ConvertHelper.CnvStringToDateTimeNull(measure.Samples_time),
                                    Value = ConvertHelper.CnvNullToInt(measure.Actual_Value),
                                    Result = clsCommon.MeasureResultDisplay(measure.Detail_Result),
                                }, emType))
                                {
                                    rowStarDetail++;
                                }
                                return(measure);
                            }).ToList();
                        }

                        File.Copy(pathReport, saveFileDialog.FileName, true);

                        if (File.Exists(saveFileDialog.FileName))
                        {
                            if (!ComfirmMsg(LanguageHelper.GetValueOf("MSG_COMFIRM_EXCEL")))
                            {
                                return;
                            }

                            Process.Start(saveFileDialog.FileName);
                            return;
                        }
                        else
                        {
                            ShowMsg(MessageBoxIcon.Error, LanguageHelper.GetValueOf("MSG_ERR_EXCEL"), Text);
                            return;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error export to excel: " + ex.Message);
                }
                finally
                {
                    this.SetModeWaiting(false);
                }
            });

            threadExport.SetApartmentState(ApartmentState.STA);
            threadExport.Start();
        }
Esempio n. 9
0
        private void HandleWhenReceiveDataFromBlock(object sender, string[] data)
        {
            if (!this.IsRunning)
            {
                return;
            }

            var blockData   = AppManager.ListBlock.FirstOrDefault(i => i.BlockId == this.BlockData.BlockId);
            var lstSensorDB = AppManager.ListSensor.Where(i => i.OfBlock == this.BlockData.BlockId && i.Active == (int)clsConst.emBlockStatus.Active).ToList();

            var maxLenght = 0;

            if (lstSensorDB != null && lstSensorDB.Count > 0)
            {
                maxLenght = lstSensorDB.Select(i => i.SensorName.Length).Max();
            }

            foreach (var sensor in this.ListSensorChild)
            {
                //if (sensor.MeasureType == clsConst.MeasureMode_Decay && sensor.IsMeasuring == false)
                //{
                //    return;
                //}

                var sensorDB = lstSensorDB.FirstOrDefault(i => i.SensorId == sensor.SensorId);
                if (sensorDB == null)
                {
                    continue;
                }
                var tempPoint = data[sensor.Ordinal_Display - 1];
                if (data[sensor.Ordinal_Display - 1] == DSF602Const.ERR_DATA && ErrorsReceiveDataFromBlock != null)
                {
                    mappingSensorProcessorException[sensor.SensorId].Add(new DSF602Exception("SensorError NaN", DSF602ExceptionStatusCode.SensorError));
                    tempPoint     = "0";
                    sensor.Active = clsConst.NOT_ACTIVE;
                }

                //var keyDbName = DBManagerChild.GetDBName(sensor.SensorId);
                //var randomTest = new Random();
                var pointGraphTemp = ConvertHelper.CnvNullToFloat(tempPoint, 0); // + randomTest.Next(-500, 500);
                var rateConvert    = tempPoint.Replace("-", "").Length <= 7 ? 1000 : 10000;
                int pointGraph     = 0;
                if (Math.Abs(pointGraphTemp * rateConvert) > int.MaxValue)
                {
                    if (rateConvert == 1000)
                    {
                        pointGraph = 2000;
                    }
                    else
                    {
                        pointGraph = 20000;
                    }
                    pointGraph = pointGraphTemp > 0 ? pointGraph : -pointGraph;
                }
                else
                {
                    pointGraph = (int)(pointGraphTemp * rateConvert);
                }
                //Console.WriteLine(pointGraph);
                int alarmVal         = sensorDB.MeasureType == clsConst.MeasureMode_Ion ? clsConst.IonAlarmValue : sensorDB.Alarm_Value;
                var objMeasureDetail = new MeasureDetail
                {
                    SensorId      = sensor.SensorId,
                    MeasureId     = mappingSensorMeasureId[sensor.SensorId],
                    DBName        = DBManagerChild.GetDBName(sensor.SensorId),
                    Samples_time  = DateTime.Now,
                    Actual_Value  = pointGraph,
                    Detail_Result = Math.Abs(pointGraph) >= alarmVal ? (int)clsConst.emMeasureResult.Fail : (int)clsConst.emMeasureResult.Pass,
                };

                if (sensor.MeasureType != clsConst.MeasureMode_Decay)
                {
                    if (objMeasureDetail.Detail_Result == (int)clsConst.emMeasureResult.Fail)
                    {
                        sensor.Result_Measure = (int)clsConst.emMeasureResult.Fail;
                        sensor.Alarm          = true;
                    }
                }

                if (resetAlarm)
                {
                    sensor.Alarm = false;
                }

                //mappingSensorMeasureData[sensor.SensorId].Add(objMeasureDetail);


                if (sensor.MeasureType != clsConst.MeasureMode_Decay || sensor.MeasureState != clsConst.MeasureState.None)
                {
                    mappingSensorMeasureData[sensor.SensorId].Add(objMeasureDetail);
                }

                if (sensor.MeasureType != clsConst.MeasureMode_Decay && mappingSensorMeasureData[sensor.SensorId].Count == BATCH_PROCESS_SQL)
                {
                    mappingSensorProcessorInsert[sensor.SensorId].Add(mappingSensorMeasureData[sensor.SensorId].ToList());
                    mappingSensorMeasureData[sensor.SensorId].Clear();
                }

                if (sensor.MeasureType == clsConst.MeasureMode_Decay && sensor.MeasureState != clsConst.MeasureState.None)
                {
                    mappingSensorProcessorInsert[sensor.SensorId].Add(mappingSensorMeasureData[sensor.SensorId].ToList());
                    mappingSensorMeasureData[sensor.SensorId].Clear();
                }

                //var checkBatchProcessSql = sensor.MeasureType == clsConst.MeasureMode_Decay && sensor.MeasureState != clsConst.MeasureState.None;
                //checkBatchProcessSql = checkBatchProcessSql ? checkBatchProcessSql : mappingSensorMeasureData[sensor.SensorId].Count == BATCH_PROCESS_SQL;

                //if (checkBatchProcessSql)
                //{
                //    mappingSensorProcessorInsert[sensor.SensorId].Add(mappingSensorMeasureData[sensor.SensorId].ToList());
                //    mappingSensorMeasureData[sensor.SensorId].Clear();
                //}

                if (sensor.GraphData == null)
                {
                    sensor.GraphData = new DataSource();
                }

                int x = sensor.GraphData.Samples == null ? 0 : sensor.GraphData.Samples.Count;
                if (sensor.MeasureType != clsConst.MeasureMode_Decay || sensor.MeasureState != clsConst.MeasureState.None)
                {
                    sensor.GraphData.AddPoint(x, pointGraph, DateTime.Now, (int)sensor.MeasureState);
                }

                if (HandleReceiveMeasureDetail != null)
                {
                    sensorDB.GraphData = sensor.GraphData;
                    sensorDB.GraphName = sensorDB.SensorName.PadRight(maxLenght + 1, ' ');

                    //Task.Factory.StartNew(() =>
                    System.Threading.ThreadPool.QueueUserWorkItem(delegate
                    {
                        sensorDB.ActualValue = objMeasureDetail.Actual_Value;
                        //if (sensorDB.OfBlock == 1 && sensorDB.SensorId == 2)
                        //{
                        //    Console.WriteLine(sensorDB.Active);
                        //}
                        HandleReceiveMeasureDetail(sensorDB, objMeasureDetail);
                    });
                }
            }

            lock (_syncObjAlarm)
            {
                resetAlarm = false;
            }
        }
Esempio n. 10
0
        public void GetData(int currentBlock = -1)
        {
            try
            {
                if (frmMain != null && blockidActive == -1)
                {
                    blockidActive = frmMain.BlockActiceId;
                }

                cmbBlock.SelectedValue = currentBlock > -1 ? currentBlock : int.Parse("" + cmbBlock.SelectedValue);


                IsLoading = true;
                Cursor    = Cursors.WaitCursor;

                dgvMeasure.DataSource       = null;
                dgvMeasureDetail.DataSource = null;
                DateTime dtNow   = DateTime.Now;
                var      dtStart = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day, 0, 0, 0);
                var      dtEnd   = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day, 23, 59, 59);

                var          strSDate = dtStart.ToString(clsConst.cstrDateTimeFormatNoMiliSecond);
                var          strEDate = dtEnd.ToString(clsConst.cstrDateTimeFormatNoMiliSecond);
                List <MUser> _mUsers  = new List <MUser>();
                using (var objDB = AppManager.GetConnection())
                {
                    _mUsers = objDB.GetMUser();
                }
                int blockSelected  = int.Parse("" + cmbBlock.SelectedValue);
                int sensorSelected = int.Parse("" + cmbSensor.SelectedValue);
                var lstSen         = new List <SensorInfo>();

                List <Measure> lstMeasure = new List <Measure>();
                if (cmbBlock.SelectedValue == null || int.Parse("" + cmbBlock.SelectedValue) == -1)
                {
                    lstSen = lstAllSensor;
                }
                else
                {
                    if (cmbSensor.SelectedValue == null || int.Parse("" + cmbSensor.SelectedValue) == -1)
                    {
                        lstSen = cmbSensor.DataSource as List <SensorInfo>;
                    }
                    else
                    {
                        lstSen.Add(cmbSensor.SelectedItem as SensorInfo);
                    }
                }

                lstSen = lstSen.Where(i => i.SensorId != -1).ToList();
                foreach (SensorInfo sensor in lstSen)
                {
                    var keyDbName = DBManagerChild.GetDBName(sensor.SensorId);
                    lstMeasure.AddRange(AppManager.GetDBChildConnection(keyDbName).GetAllMeasure(strSDate, strEDate, AppManager.UserLogin.UserId, 1));
                }
                var cnt     = 1;
                var lstFail = (from max in (lstMeasure.GroupBy(g => new { g.SensorId, g.Measure_Result })
                                            .Select(grp => new
                {
                    grp.Key.SensorId,
                    grp.Key.Measure_Result,
                    MeasureId = grp.Max(i => i.MeasureId)
                })).ToList()
                               join sensor in lstSen on max.SensorId equals sensor.SensorId
                               join bl in lstBlock on sensor.OfBlock equals bl.BlockId
                               where (blockSelected == -1 || bl.BlockId == blockSelected) &&
                               (sensorSelected == -1 || sensor.SensorId == sensorSelected)
                               select new DGVMeasureInfo
                {
                    No = cnt++,
                    MeasureId = max.MeasureId,
                    BlockName = bl.BlockName,
                    SensorId = max.SensorId,
                    SensorName = sensor.SensorName,
                    Alarm_Value = lstMeasure.FirstOrDefault(i => i.MeasureId == max.MeasureId).Alarm_Value,
                    Measure_Result = max.Measure_Result,
                    MeasureDisplay = clsCommon.MeasureResultDisplay(1),
                    Start_time = lstMeasure.FirstOrDefault(i => i.MeasureId == max.MeasureId).Start_time,
                    End_time = lstMeasure.FirstOrDefault(i => i.MeasureId == max.MeasureId).End_time
                }).ToList();
                dgvMeasure.DataSource = lstFail;
            }
            finally
            {
                Cursor    = Cursors.Default;
                IsLoading = false;
                if (dgvMeasure.Rows.Count > 0)
                {
                    dgvMeasure.Select();
                    dgvMeasure.FirstDisplayedScrollingRowIndex = 0;
                    dgvMeasure.Rows[0].Selected = true;
                }
            }
        }