Esempio n. 1
0
        private void readData()
        {
            int read_pointer = 0;
            int count        = 0;

            InvokeLockReadDataButton invokeLockReadDataButton = new InvokeLockReadDataButton(lockReadDataButton);

            this.BeginInvoke(invokeLockReadDataButton, new Object[] { true });

            InvokeSerialSendText invokeSerialSendText = new InvokeSerialSendText(SendTextToSerial);

            this.BeginInvoke(invokeSerialSendText, new Object[] { "POINT" });
            if (autoReadDataConfirmedEvent.WaitOne())
            {
                string pattern = @"The current write_pointer is:";
                string result  = listString.Find(s => Regex.IsMatch(s, pattern));
                if (result != null)
                {
                    string[] parts = result.Split(':');
                    read_pointer = Convert.ToInt32(parts[1]);
                    this.BeginInvoke(invokeSerialSendText, new Object[] { "READ 0" });
                    if (autoReadDataConfirmedEvent.WaitOne())
                    {
                        listString.Clear();
                    }
                    for (int i = 0; i < read_pointer; i = i + 8)
                    {
                        this.BeginInvoke(invokeSerialSendText, new Object[] { "READ" });
                        if (autoReadDataConfirmedEvent.WaitOne())
                        {
                            string pattern2 = @"^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}";
                            listString = listString.FindAll(s => Regex.IsMatch(s, pattern2));
                            foreach (string s in listString)
                            {
                                count++;
                                string[] log_parts = s.Split(' ');
                                if (log_parts.Count() >= 4)
                                {
                                    LogLine line = new LogLine();
                                    line.index       = count;
                                    line.time        = Convert.ToDateTime(log_parts[0] + " " + log_parts[1]);
                                    line.temperature = Convert.ToSingle(log_parts[2]);
                                    line.moisture    = Convert.ToSingle(log_parts[3]);
                                    listLogLine.Add(line);
                                    InvokeRefreshData invokeRefreshData = new InvokeRefreshData(refreshData);
                                    this.BeginInvoke(invokeRefreshData, new object[] { line.index, line.time, line.temperature, line.moisture });
                                }
                            }
                            listString.Clear();
                        }
                    }
                }
            }
            this.BeginInvoke(invokeLockReadDataButton, new Object[] { false });
            InvokeAdjustChart invokeAdjustChart = new InvokeAdjustChart(adjustChart);

            this.BeginInvoke(invokeAdjustChart, new object[] {});
        }
Esempio n. 2
0
        private void setClockAndCleanSD()
        {
            System.DateTime currentTime = new System.DateTime();
            currentTime = System.DateTime.Now;
            InvokeSerialSendText invokeSerialSendText = new InvokeSerialSendText(SendTextToSerial);

            this.BeginInvoke(invokeSerialSendText, new Object[] { "CLOCK " + currentTime.Year
                                                                  + " " + currentTime.Month
                                                                  + " " + currentTime.Day
                                                                  + " " + currentTime.Hour
                                                                  + " " + currentTime.Minute
                                                                  + " " + currentTime.Second });
            if (autoReadDataConfirmedEvent.WaitOne())
            {
                listString.Clear();
                this.BeginInvoke(invokeSerialSendText, new Object[] { "DEL" });
                if (autoReadDataConfirmedEvent.WaitOne())
                {
                    this.BeginInvoke(invokeSerialSendText, new Object[] { "NEW" });
                }
            }
        }