Exemplo n.º 1
0
        private void getData()
        {
            bool isOver = false;

            while (!isOver)
            {
                lock (port.Lockbuffer)
                {
                    if (port.DateList.Count < 1)
                    {
                        continue;
                    }
                    for (int i = 0; i < port.DateList.Count; i++)
                    {
                        byte[] data = port.DateList.Dequeue();
                        Trace.WriteLine(PLAASerialPort.byteToHexStr(data));
                        // 数据帧
                        if (data.Length == 19)
                        {
                            Equipment eqoo = mainList.Find(c => c.Address == data[1] && c.SensorType == (EM_HighType)data[2] && c.GasType == data[3]);
                            if (eqoo == null)
                            {
                                continue;
                            }

                            EquipmentData ed = new EquipmentData();

                            ed.AddTime = Parse.GetDateTime(data, 9);
                            //  DateTime format_dt;
                            //  DateTime.TryParse(ed.AddTime,out format_dt);
                            //  ed.AddTime = format_dt;
                            ed.Chroma      = (float)Math.Round(Parse.GetFloatValue(data, 5), eqoo.Point);
                            ed.EquipmentID = eqoo.ID;
                            ed.UnitType    = data[4];
                            if (!InputDataDal.AddOne(ed))
                            {
                                LogLib.Log.GetLogger(this).Warn("插入数据库错误");
                            }

                            this.Invoke(new Action <string>(addText), string.Format("{0},{1},浓度:{2},时间:{3}\r\n", eqoo.Name, eqoo.GasName, ed.Chroma, ed.AddTime));
                        }
                        else if (data.Length == 6) // 结束桢
                        {
                            isOver           = true;
                            port.IsInputData = false;
                            this.Invoke(new Action <string>(addText), "上传完成----------------------------------------------------");

                            this.Invoke(new Action <string>(c => simpleButton1.Text = c), "开始上传");
                            break;
                        }
                    }
                }

                Thread.Sleep(200);
            }
        }
Exemplo n.º 2
0
 private void btn_ClearDB_Click(object sender, EventArgs e)
 {
     if (Gloabl.Userinfo.Level != EM_UserType.Admin)
     {
         XtraMessageBox.Show("只有管理员才能删除数据");
         return;
     }
     if (XtraMessageBox.Show("数据记录将要被清空(全部设备),是否继续", "注意", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
     {
         return;
     }
     InputDataDal.DeleteAll();
     gridControl2.DataSource = null;
     chartControl2.Series[0].Points.Clear();
     XtraMessageBox.Show("数据已清空");
 }
Exemplo n.º 3
0
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            if (Gloabl.Userinfo.Level != EM_UserType.Admin)
            {
                XtraMessageBox.Show("只有管理员才能删除数据");
                return;
            }

            if (comboBoxEdit1.Text.Trim() == string.Empty)
            {
                XtraMessageBox.Show("请先查询数据");
                return;
            }
            if (comboBoxEdit4.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;
            }
            Equipment eq = mainList.Find(c => c.Name == comboBoxEdit1.Text.Trim() && c.GasName == comboBoxEdit4.Text.Trim());

            int total = InputDataDal.DeleteByTime(eq.ID, dateEdit1.DateTime, dateEdit2.DateTime);

            gridControl2.DataSource = null;
            chartControl2.Series[0].Points.Clear();
            XtraMessageBox.Show(string.Format("本次删除{0}条数据", total));
        }
Exemplo n.º 4
0
        private void simpleButton5_Click(object sender, EventArgs e)
        {
            string           SensorName = comboBoxEdit1.Text;
            List <Equipment> eq         = mainList.FindAll(c => c.Name == SensorName);

            if (Gloabl.Userinfo.Level != EM_UserType.Admin)
            {
                XtraMessageBox.Show("只有管理员才能删除数据");
                return;
            }
            if (XtraMessageBox.Show(SensorName + ":数据将要被清空(当前设备),是否继续", "注意", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
            {
                return;
            }

            foreach (Equipment item in eq)
            {
                InputDataDal.DeleteByEquipmentID(item.ID);
            }
            gridControl2.DataSource = null;
            chartControl2.Series[0].Points.Clear();
            loadData();
            XtraMessageBox.Show(SensorName + ":数据已清空");
        }
Exemplo n.º 5
0
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            gridControl2.DataSource = null;
            chartControl2.Series[0].Points.Clear();
            if (comboBoxEdit1.Text.Trim() == string.Empty)
            {
                XtraMessageBox.Show("请选择设备名称");
                return;
            }
            if (comboBoxEdit4.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;
            }
            Equipment eq = mainList.Find(c => c.Name == comboBoxEdit1.Text.Trim() && c.GasName == comboBoxEdit4.Text.Trim());
            //9.17格式化日期和时间
            //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 = InputDataDal.GetListByTime(eq.ID, str1, str2);
            //9.17格式化日期和时间
            List <EquipmentData> data = InputDataDal.GetListByTime(eq.ID, dateEdit1.DateTime, dateEdit2.DateTime);

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

            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();

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

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

            setX(data);
        }