예제 #1
0
        private void AcquireData()
        {
            DateTime now = DateTime.Now;

            time = (double)((now.Hour * 60 + now.Minute) * 60 + now.Second) + now.Millisecond / 1000.0d;

            Signal signal = usart.Pop();

            if (signal.dataEastWest >= acquireEWDown && signal.dataEastWest <= acquireEWUp)
            {
                signal.dataEastWest = (acquireEWDown + acquireEWUp) / 2;
            }
            if (signal.dataNorthSouth >= acquireNSDown && signal.dataNorthSouth <= acquireNSUp)
            {
                signal.dataNorthSouth = (acquireNSDown + acquireNSUp) / 2;
            }
            if (signal.dataEastWest != 0 || signal.dataNorthSouth != 0)
            {
                Acquire_DataEastWest.Add(new DataPoint(time, signal.dataEastWest));
                Acquire_DataNorthSouth.Add(new DataPoint(time, signal.dataNorthSouth));

                var item = new
                {
                    listViewDataTime       = GetTimeString(now),
                    listViewDataEastWest   = signal.dataEastWest.ToString("F3"),
                    listViewDataNorthSouth = signal.dataNorthSouth.ToString("F3")
                };

                dataCount++;

                listViewData.Items.Add(item);

                listViewData.ScrollIntoView(item);
            }
        }
예제 #2
0
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (usart.IsOpen())
            {
                usart.Close();
            }

            connected   = false;
            acquisition = false;

            clockTimer.Stop();
            listViewData.Items.Clear();
            Acquire_DataEastWest.Clear();
            Acquire_DataNorthSouth.Clear();
        }
예제 #3
0
        private void AutoSaveData()
        {
            DateTime nowTime = DateTime.Now;

            if (nowTime.Second == 0 && nowTime.Minute % 10 == 0)
            {
                string filename = "";
                string buffer = "", tmp = "";
                filename += (nowTime.Hour / 10).ToString();
                filename += (nowTime.Hour % 10).ToString();
                filename += (nowTime.Minute / 10).ToString();
                filename += (nowTime.Minute % 10).ToString();

                for (int i = 0; i < listViewData.Items.Count; i++)
                {
                    tmp     = listViewData.Items[i].ToString();
                    tmp     = tmp.Replace("{ listViewDataTime = ", "");
                    tmp     = tmp.Replace(", listViewDataEastWest = ", " ");
                    tmp     = tmp.Replace(", listViewDataNorthSouth = ", " ");
                    tmp     = tmp.Replace(" }", "");
                    buffer += tmp + Environment.NewLine;
                }

                buffer = ZipUtil.Compress(buffer);

                if (!Directory.Exists("data"))
                {
                    try
                    {
                        Directory.CreateDirectory("data");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }

                if (nowTime.Hour == 0 && nowTime.Minute == 0)
                {
                    nowTime  = nowTime.AddDays(-1);
                    filename = "2400";
                }


                if (!Directory.Exists("data\\" + nowTime.ToString("yyyy.MM.dd")))
                {
                    try
                    {
                        Directory.CreateDirectory("data\\" + nowTime.ToString("yyyy.MM.dd"));
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }

                try
                {
                    FileStream fileStream = new FileStream("data\\" + nowTime.ToString("yyyy.MM.dd") + "\\" + filename + ".sdf", FileMode.Create);
                    byte[]     data       = Encoding.Default.GetBytes(buffer);
                    fileStream.Write(data, 0, data.Length);
                    fileStream.Flush();
                    fileStream.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

                // TODO: Compress day file

                listViewData.Items.Clear();
                Acquire_DataNorthSouth.Clear();
                Acquire_DataEastWest.Clear();

                TimeSpanAxis_Acquire_EW.Minimum = (nowTime.Hour * 60 + nowTime.Minute) * 60 + nowTime.Second;
                TimeSpanAxis_Acquire_EW.Maximum = (nowTime.Hour * 60 + nowTime.Minute) * 60 + nowTime.Second + 600;
                TimeSpanAxis_Acquire_NS.Minimum = (nowTime.Hour * 60 + nowTime.Minute) * 60 + nowTime.Second;
                TimeSpanAxis_Acquire_NS.Maximum = (nowTime.Hour * 60 + nowTime.Minute) * 60 + nowTime.Second + 600;
            }
        }