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[] {}); }
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" }); } } }