示例#1
0
文件: MainForm.cs 项目: damoOnly/SD
        private void btn_DeleteData_Click(object sender, EventArgs e)
        {
            //if (Gloabl.Userinfo.Level != EM_UserType.Admin)
            //{
            //    XtraMessageBox.Show("只有管理员才能删除数据");
            //    return;
            //}

            if (comboBoxEdit_ID.Text.Trim() == string.Empty)
            {
                XtraMessageBox.Show("请先查询数据");
                return;
            }
            TimeSpan ts  = dateEdit_End.DateTime - dateEdit_Start.DateTime;
            TimeSpan ts1 = new TimeSpan(0, 0, 0, 1);

            if (ts < ts1)
            {
                XtraMessageBox.Show("请先查询数据");
                return;
            }
            if (XtraMessageBox.Show("数据将要被删除,是否继续", "注意", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
            {
                return;
            }
            Equipment eq = mainList.Find(c => c.Address == Convert.ToInt64(comboBoxEdit_ID.Text));

            int total = EquipmentDataDal.DeleteByTime(eq.ID, dateEdit_Start.DateTime, dateEdit_End.DateTime);

            gridControl_History.DataSource = null;
            chartControl_History.Series[0].Points.Clear();
            XtraMessageBox.Show(string.Format("本次删除{0}条数据", total));
        }
示例#2
0
        private static void GetData()
        {
            DateTime             start  = new DateTime(2018, 12, 6);
            DateTime             end    = new DateTime(2018, 12, 7);
            List <EquipmentData> result = EquipmentDataDal.GetListByTime(1, start, end);

            Console.WriteLine(result.Count);
        }
示例#3
0
文件: MainForm.cs 项目: damoOnly/SD
        private void btn_SearchHistory_Click(object sender, EventArgs e)
        {
            gridControl_History.DataSource = null;
            chartControl_History.Series[0].Points.Clear();


            if (comboBoxEdit_ID.Text.Trim() == string.Empty)
            {
                XtraMessageBox.Show("请选择设备名称");
                return;
            }
            TimeSpan ts  = dateEdit_End.DateTime - dateEdit_Start.DateTime;
            TimeSpan ts1 = new TimeSpan(0, 0, 0, 1);

            if (ts < ts1)
            {
                XtraMessageBox.Show("截止时间必须大于起始时间");
                return;
            }
            Equipment eq = mainList.Find(c => c.Address == Convert.ToInt64(comboBoxEdit_ID.Text));

            List <EquipmentData> data = EquipmentDataDal.GetListByTime(eq.ID, dateEdit_Start.DateTime, dateEdit_End.DateTime);

            if (data == null || data.Count < 1)
            {
                LogLib.Log.GetLogger(this).Warn("数据库中没有记录");
                return;
            }
            gridControl_History.DataSource = data;
            gridView_History.BestFitColumns();
            data.ForEach(c =>
            {
                chartControl_History.Series[0].Points.Add(new SeriesPoint(c.AddTime, c.Chroma));
            });

            float max = data.Max(c => c.Chroma);
            float min = data.Min(c => c.Chroma);

            // 更改曲线纵坐标描述
            SwiftPlotDiagram diagram_Tem = chartControl_History.Diagram as SwiftPlotDiagram;

            diagram_Tem.AxisY.Title.Text = eq.EName + ":" + eq.Unit;
            if (eq.Range > 0)
            {
                diagram_Tem.AxisY.Range.SetMinMaxValues(0, eq.Range);
            }

            setX(data);
        }
示例#4
0
 private void btn_ClearDB_Click(object sender, EventArgs e)
 {
     try
     {
         if (XtraMessageBox.Show("数据记录将要被清空(全部设备),是否继续", "注意", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
         {
             return;
         }
         EquipmentDataDal.DeleteAll();
         gridControl2.DataSource = null;
         chartControl2.Series[0].Points.Clear();
         XtraMessageBox.Show("数据已清空");
     }
     catch (Exception ex)
     {
         LogLib.Log.GetLogger(this).Warn(ex);
     }
 }
示例#5
0
        private static void AddData()
        {
            for (int i = 0; i < 10 * 100; i++)
            {
                List <EquipmentData> list = new List <EquipmentData>();
                DateTime             dt1  = DateTime.Now;
                DateTime             dt2  = DateTime.Now.AddDays(-30);
                for (int j = 0; j < 1000; j++)
                {
                    list.Add(new EquipmentData()
                    {
                        Chroma  = 5.11f,
                        AddTime = GetRandomTime(dt1, dt2),
                    });
                }

                EquipmentDataDal.AddList(1, list);

                Thread.Sleep(200);
            }
        }
示例#6
0
        // 删除所查数据
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            try
            {
                if (checkedComboBoxEdit1.Text.Trim() == string.Empty)
                {
                    XtraMessageBox.Show("请先查询数据");
                    return;
                }
                TimeSpan ts  = dateEdit2.DateTime - dateEdit1.DateTime;
                TimeSpan ts1 = new TimeSpan(0, 0, 0, 1);
                if (ts < ts1)
                {
                    XtraMessageBox.Show("请先查询数据");
                    return;
                }
                if (XtraMessageBox.Show("数据将要被删除,是否继续", "注意", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
                {
                    return;
                }
                int total = 0;
                foreach (CheckedListBoxItem item in checkedComboBoxEdit1.Properties.Items)
                {
                    if (item.CheckState == CheckState.Checked)
                    {
                        Equipment eq = mainList.Find(c => c.ID == Convert.ToInt32(item.Value));

                        total += EquipmentDataDal.DeleteByTime(eq.ID, dateEdit1.DateTime, dateEdit2.DateTime);
                    }
                }

                gridControl2.DataSource = null;
                chartControl2.Series.Clear();
                XtraMessageBox.Show(string.Format("本次删除{0}条数据", total));
            }
            catch (Exception ex)
            {
                LogLib.Log.GetLogger(this).Warn(ex);
            }
        }
示例#7
0
        private void simpleButton5_Click(object sender, EventArgs e)
        {
            try
            {
                if (XtraMessageBox.Show("数据将要被清空(当前设备),是否继续", "注意", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
                {
                    return;
                }

                foreach (CheckedListBoxItem item in checkedComboBoxEdit1.Properties.Items)
                {
                    if (item.CheckState != CheckState.Checked)
                    {
                        continue;
                    }
                    List <Equipment> eq = mainList.FindAll(c => c.ID == Convert.ToInt32(item.Value));
                    foreach (Equipment equipment in eq)
                    {
                        EquipmentDataDal.DeleteByEquipmentID(equipment.ID);
                        // dang qian jian ce she bei bu shan chu
                        if (equipment.IsDel)
                        {
                            EquipmentDal.DeleteOne(equipment);
                        }
                    }
                }

                gridControl2.DataSource = null;
                chartControl2.Series.Clear();
                loadData();
                XtraMessageBox.Show("数据已清空");
            }
            catch (Exception ex)
            {
                LogLib.Log.GetLogger(this).Warn(ex);
            }
        }
示例#8
0
文件: MainForm.cs 项目: damoOnly/SD
        // 切换曲线
        private void changeSeries(Equipment ep, bool isClear = true)
        {
            if (ep == null)
            {
                LogLib.Log.GetLogger(this).Warn("切换曲线时对象为空");
                return;
            }
            seriesOne.Name = ep.EName;
            seriesOne.Tag  = ep.ID;
            if (isClear)
            {
                seriesOne.Points.Clear();
            }

            SwiftPlotDiagram diagram_Tem = chartControl_Main.Diagram as SwiftPlotDiagram;

            diagram_Tem.AxisY.Title.Text = string.Format("浓度({0})", ep.Unit);
            diagram_Tem.AxisX.Range.SetMinMaxValues(minTime, maxTime);
            if (ep.Range > 0)
            {
                diagram_Tem.AxisY.Range.SetMinMaxValues(0, ep.Range);
            }

            List <EquipmentData> datalist = EquipmentDataDal.GetListByTime(ep.ID, minTime, maxTime);

            if (datalist == null)
            {
                return;
            }
            datalist.ForEach(c =>
            {
                SeriesPoint sp = new SeriesPoint(c.AddTime, c.Chroma);
                seriesOne.Points.Add(sp);
            });
            //datalist.Aggregate
        }
示例#9
0
文件: MainForm.cs 项目: damoOnly/SD
        // 读取主表类容
        private void readMain(Equipment eq)
        {
            Command cd = new Command(eq.Address, 0x00, 0x00, 3);

            if (Gloabl.IsAdmin)
            {
                this.Invoke(new Action <string>(addText), "W: " + Parse.byteToHexStr(cd.SendByte));
            }

            if (!CommandResult.GetResult(cd))
            {
                if (eq.lostNum >= 10)
                {
                    eq.IsConnect = false;
                }
                else
                {
                    eq.lostNum++;
                }
                return;
            }
            else
            {
                eq.IsConnect = true;
                eq.lostNum   = 0;
            }
            if (Gloabl.IsAdmin)
            {
                this.Invoke(new Action <string>(addText), "R: " + Parse.byteToHexStr(cd.ResultByte));
            }

            EquipmentData data = Parse.GetRealData(cd.ResultByte, eq);

            data.EquipmentID = eq.ID;

            // 添加数据库
            EquipmentDataDal.AddOne(data);

            eq.Chroma = data.Chroma;


            // 绘制曲线
            if (eq.ID == Convert.ToInt32(seriesOne.Tag))
            {
                this.Invoke(new Action <EquipmentData>(c => addPoint(c)), data);
            }
            if (eq.AlertType == 0)
            {
                eq.ChromaAlertStr = Gloabl.NormalStr;
            }
            else
            {
                // 报警记录
                if (eq.ChromaAlertStr != data.ChromaAlertStr)
                {
                    if (eq.ChromaAlertStr.Equals(Gloabl.NormalStr, StringComparison.OrdinalIgnoreCase))
                    {
                        Alert art = new Alert();
                        art.AlertName   = data.ChromaAlertStr;
                        art.EquipmentID = eq.ID;
                        eq.AlertObject  = AlertDal.AddOneR(art);
                    }
                    else
                    {
                        eq.AlertObject.EndTime = DateTime.Now;
                        AlertDal.UpdateOne(eq.AlertObject);
                        if (!eq.ChromaAlertStr.Equals(data.ChromaAlertStr, StringComparison.OrdinalIgnoreCase))
                        {
                            Alert art = new Alert();
                            art.AlertName   = data.ChromaAlertStr;
                            art.EquipmentID = eq.ID;
                            eq.AlertObject  = AlertDal.AddOneR(art);
                        }
                    }
                    eq.ChromaAlertStr = data.ChromaAlertStr;
                }
                else
                {
                    if (!eq.ChromaAlertStr.Equals(Gloabl.NormalStr, StringComparison.OrdinalIgnoreCase))
                    {
                        eq.AlertObject.EndTime = DateTime.Now;
                        if (!AlertDal.UpdateOne(eq.AlertObject))
                        {
                            Alert art = new Alert();
                            art.AlertName   = data.ChromaAlertStr;
                            art.EquipmentID = eq.ID;
                            eq.AlertObject  = AlertDal.AddOneR(art);
                        }
                    }
                }
            }
        }
示例#10
0
        private void Gethistorydata(object parm)
        {
            DataTable dataTable = (parm as List <object>)[0] as DataTable;

            Series[]   listSeries = (parm as List <object>)[1] as Series[];
            List <int> listeqid   = (parm as List <object>)[2] as List <int>;

            Stopwatch watch = new Stopwatch();

            watch.Start();
            List <EquipmentData> data = EquipmentDataDal.GetListByTime2(String.Join(",", listeqid), dateEdit1.DateTime, dateEdit2.DateTime);

            Trace.WriteLine("get database: " + watch.Elapsed);
            watch.Restart();
            IEnumerable <IGrouping <string, EquipmentData> > gridTable = data.GroupBy(c => c.AddTimeStr);

            foreach (var item in gridTable)
            {
                DataRow row = dataTable.NewRow();
                row[0] = item.Key;
                row[1] = item.FirstOrDefault().Unit;
                List <EquipmentData> list2 = item.OrderBy(c => c.ID).ToList();
                for (int i = 0; i < list2.Count; i++)
                {
                    row[i + 2] = list2[i].Chroma;
                }
                dataTable.Rows.Add(row);
            }
            Trace.WriteLine("table foreach: " + watch.Elapsed);
            watch.Restart();
            IEnumerable <IGrouping <int, EquipmentData> > chartTable = data.GroupBy(c => c.EquipmentID);

            foreach (var item in chartTable)
            {
                Series series = listSeries.FirstOrDefault(c => ((int)c.Tag) == item.Key);
                foreach (var item2 in item)
                {
                    series.Points.Add(new SeriesPoint(item2.AddTimeStr, item2.Chroma));
                }
            }

            Trace.WriteLine("series foreach: " + watch.Elapsed);
            watch.Restart();
            this.Invoke(new Action <DataTable>((datatable) => this.gridControl2.DataSource = datatable), dataTable);
            Trace.WriteLine("banding table: " + watch.Elapsed);
            watch.Restart();
            //gridView2.BestFitColumns();
            this.Invoke(new Action <Series[], IEnumerable <IGrouping <string, EquipmentData> > >((listseries, gridtable) =>
            {
                //chartControl2.
                this.chartControl2.Series.AddRange(listseries);
                Trace.WriteLine("bangding series: " + watch.Elapsed);
                watch.Stop();
                if (this.chartControl2.Series.Count <= 0)
                {
                    this.chartControl2.Series.Add(new Series("曲线", ViewType.SwiftPlot));
                }
                //// 更改曲线纵坐标描述
                SwiftPlotDiagram diagram_Tem     = this.chartControl2.Diagram as SwiftPlotDiagram;
                diagram_Tem.EnableAxisXScrolling = true;
                diagram_Tem.AxisY.Title.Text     = "浓度";

                setX(DateTime.Parse(gridtable.FirstOrDefault().Key), DateTime.Parse(gridtable.LastOrDefault().Key));
            }), listSeries, gridTable);
        }
示例#11
0
        // 查询数据
        private void simpleButton3_Click_1(object sender, EventArgs e)
        {
            try
            {
                gridControl2.DataSource = null;
                chartControl2.Series.Clear();
                gridView2.Columns.Clear();

                if (checkedComboBoxEdit1.Text.Trim() == string.Empty)
                {
                    XtraMessageBox.Show("请选择设备");
                    return;
                }
                TimeSpan ts  = dateEdit2.DateTime - dateEdit1.DateTime;
                TimeSpan ts1 = new TimeSpan(0, 0, 0, 1);
                if (ts < ts1)
                {
                    XtraMessageBox.Show("截止时间必须大于起始时间");
                    return;
                }

                DateTime  dt1       = DateTime.MinValue;
                DateTime  dt2       = DateTime.MaxValue;
                DataTable dataTable = new DataTable();
                // 列计数器
                int lolumnIndex = 1;
                // 最大的行值
                int maxRowNum = -1;
                foreach (CheckedListBoxItem item in checkedComboBoxEdit1.Properties.Items)
                {
                    if (item.CheckState != CheckState.Checked)
                    {
                        continue;
                    }
                    List <EquipmentData> data = EquipmentDataDal.GetListByTime(Convert.ToInt32(item.Value), dateEdit1.DateTime, dateEdit2.DateTime);
                    if (data == null || data.Count < 1)
                    {
                        continue;
                    }
                    // 还没有数据的时候,增加时间和单位列
                    if (dataTable.Columns.Count <= 0)
                    {
                        dataTable.Columns.Add("时间");
                        dataTable.Columns.Add("单位");
                    }
                    dataTable.Columns.Add(item.Description);

                    lolumnIndex++;
                    Series series = new Series(item.Description, ViewType.SwiftPlot);
                    series.ArgumentScaleType = ScaleType.DateTime;
                    // 行计数器
                    int rowNum = 0;
                    data.ForEach(c =>
                    {
                        series.Points.Add(new SeriesPoint(c.AddTime, c.Chroma));
                        DataRow dataRow;
                        if (rowNum > maxRowNum - 1)
                        {
                            dataRow = dataTable.NewRow();
                            dataTable.Rows.Add(dataRow);
                        }
                        else
                        {
                            dataRow = dataTable.Rows[rowNum];
                        }
                        // 说明需要增加时间和单位数据
                        if (lolumnIndex == 2 || rowNum > maxRowNum - 1)
                        {
                            dataRow[0] = c.AddTime;
                            dataRow[1] = c.Unit;
                        }
                        dataRow[lolumnIndex] = c.Chroma;
                        rowNum++;
                    });
                    maxRowNum = maxRowNum > rowNum ? maxRowNum : rowNum;
                    float max = data.Max(c => c.Chroma);
                    float min = data.Min(c => c.Chroma);
                    textEdit7.Text = max.ToString();
                    textEdit5.Text = min.ToString();
                    textEdit6.Text = ((max + min) / 2).ToString();

                    //data.Sort((customer1, customer2) => customer1.AddTime.CompareTo(customer2.AddTime));
                    //if (dt1 == DateTime.MinValue)
                    //{
                    //    dt1 = data.First().AddTime;
                    //}
                    //else
                    //{
                    //    dt1 = dt1 < data.First().AddTime ? dt1 : data.First().AddTime;
                    //}

                    //if (dt2 == DateTime.MaxValue)
                    //{
                    //    dt2 = data.Last().AddTime;
                    //}
                    //else
                    //{
                    //    dt2 = dt2 > data.Last().AddTime ? dt2 : data.Last().AddTime;
                    //}
                    chartControl2.Series.Add(series);
                }

                gridControl2.DataSource = dataTable;
                gridView2.BestFitColumns();
                if (chartControl2.Series.Count <= 0)
                {
                    chartControl2.Series.Add(new Series("曲线", ViewType.SwiftPlot));
                }
                //// 更改曲线纵坐标描述
                SwiftPlotDiagram diagram_Tem = chartControl2.Diagram as SwiftPlotDiagram;
                diagram_Tem.EnableAxisXScrolling = true;
                diagram_Tem.AxisY.Title.Text     = "浓度";


                //diagram_Tem.AxisX.DateTimeGridAlignment = DateTimeMeasurementUnit.Minute;
                //diagram_Tem.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Second;
                //diagram_Tem.AxisX.DateTimeOptions.Format = DateTimeFormat.LongTime;


                //diagram_Tem.AxisX.Range.ScrollingRange.Auto = false;
                //diagram_Tem.AxisX.Range.ScrollingRange.SetMinMaxValues(dt1.AddMinutes(-1), dt2.AddMinutes(1));
                //diagram_Tem.AxisX.Range.Auto = false;
                //diagram_Tem.AxisX.Range.SetMinMaxValues(dt1, dt1.AddMinutes(2));



                //if (dt1 != DateTime.MinValue && dt2 != DateTime.MaxValue)
                //{
                //    setX(dt1, dt2);
                //}


                //9.16从时间控件上获取的值,与数据库记录格式不统一,须做进一步处理
                //9.18格式化日期,以2015-0X-0X方式对齐

                //string str1 = dateEdit1.Text;
                //DateTime format_time1;
                //DateTime.TryParse(str1, out format_time1);
                //str1 = format_time1.ToString("yyyy-MM-dd HH:mm:ss");

                //string str2 = dateEdit2.Text;
                //DateTime format_time2;
                //DateTime.TryParse(str2, out format_time2);
                //str2 = format_time2.ToString("yyyy-MM-dd HH:mm:ss");
                //List<EquipmentData> data = EquipmentDataDal.GetListByTime(eq.ID, dateEdit1.DateTime, dateEdit2.DateTime)


                //if (eq.Max > 0)
                //{
                //    diagram_Tem.AxisY.Range.SetMinMaxValues(0, eq.Max);
                //}
                //chartControl2.Series.EndUpdate();
            }
            catch (Exception ex)
            {
                LogLib.Log.GetLogger(this).Warn(ex);
            }
        }