private void btn_MoistureAgg_click(object sender, RoutedEventArgs e) { if (!mySerialPort.IsOpen) { OpenCon_Port_local(mySerialPort, BaudRate); } Sensor_input_Helper.Command_MoisturAggregate(mySerialPort); }
public void ProcessSensorData_local(object sender, SerialDataReceivedEventArgs args) { try { /* * "\u0002129\u0003A1" * \u0002128\u0003A0\r\u0002122\u00039A\r * \u0002129\u0003A1\r\u0002116\u00039D\r * \u0002125\u00039D\r\u0002123\u00039B" * 1. Split character by Y */ Thread.Sleep(1000);// this solves the problem if (data_Average.Count() == counter_interval && current_interval > 0 && counter_interval > 0) { mySerialPort.DiscardInBuffer(); mySerialPort.DiscardOutBuffer(); mySerialPort.Close(); Application.Current.Dispatcher.Invoke(new Action(() => { string Replace_Average = ","; string temp_average; float average = 0; foreach (data_measure_2 data in data_Average) { temp_average = data.Measures; temp_average = temp_average.Replace(Replace_Average, ""); average = average + float.Parse(temp_average); } float final_average = average / 10 / data_Average.Count(); string final_average_str = final_average.ToString(); //final_average_str = String.Concat(final_average_str.Substring(0, final_average_str.Length - 1) // , ".", final_average_str.Substring(final_average_str.Length - 1, 1)); Average_Final.Text = final_average_str; MessageBox.Show("All Measurement Finish", application_name); })); } else { byte[] readBuffer = new byte[mySerialPort.ReadBufferSize]; int readLen = mySerialPort.Read(readBuffer, 0, readBuffer.Length); string readStr = string.Empty; readStr = Encoding.UTF8.GetString(readBuffer, 0, readLen); //readStr = Encoding.UTF8.GetString(readBuffer,0,readLen); readStr = readStr.Trim(); Console.WriteLine("ReadStr adalah: " + readStr); char[] delimiter_r = { '\r' }; string[] Measures_With_U = readStr.Split(delimiter_r); List <string> Measure_Results = new List <string>(); List <string> AllText = new List <string>(); foreach (var Measure in Measures_With_U) { //Test_Isengs = GetWords(Measure); string Result_Parsing = GetWords(Measure).FirstOrDefault(); Console.WriteLine("Result Parsing adalah: " + Result_Parsing); //Measure_Results.Add(Result_Parsing); string[] charactersToReplace = new string[] { @"\t", @"\n", @"\r", " ", "<CR>", "<LF>" }; if (Result_Parsing != "" && Result_Parsing != null) { foreach (string s in charactersToReplace) { Result_Parsing = Result_Parsing.Replace(s, ""); } } if (Result_Parsing != "" && Result_Parsing != null && !Result_Parsing.Trim().ToLower().Contains("r")) { StatusListen = true; Console.WriteLine("Nilai Measure adalah: " + Result_Parsing); if (Result_Parsing.Contains("-") || (Result_Parsing.Length) > 4) { AllText = GetWords(Measure); //Result_Parsing = AllText[1]; Result_Parsing = AllText[1].Substring(5, 3); Result_Parsing = String.Concat(Result_Parsing.Substring(0, Result_Parsing.Length - 1) , ".", Result_Parsing.Substring(Result_Parsing.Length - 1, 1)); //data_measure_2 data_final_update = data_Average.Add(new data_measure_2(100, Result_Parsing, (DateTime.Now).ToString())); //data_Average.Add(data_final_update); } else { Result_Parsing = String.Concat(Result_Parsing.Substring(0, Result_Parsing.Length - 1) , ".", Result_Parsing.Substring(Result_Parsing.Length - 1, 1)); data_measure_2 data_final_update = new data_measure_2(counter_data + 1, Result_Parsing, (DateTime.Now).ToString()); data_finals_update.Add(data_final_update); data_finals_update_2.Add(data_final_update); //var result = from db.MyTable.Where(d => (double)d.Price >= minValue && (double)d.Price <= maxValue) var data_Grid_1 = data_finals_update.Where(p => p.Id > 0 && p.Id <= 1 * NumberGrain_Frekuensi); data_Grid_1_list_a = data_Grid_1.ToList(); data_Grid_1_list_b = data_Grid_1.ToList(); var data_Grid_2 = data_finals_update.Where(p => p.Id > 1 * NumberGrain_Frekuensi && p.Id <= 2 * NumberGrain_Frekuensi); data_Grid_2_list_a = data_Grid_2.ToList(); data_Grid_2_list_b = data_Grid_2.ToList(); var data_Grid_3 = data_finals_update.Where(p => p.Id > 2 * NumberGrain_Frekuensi && p.Id <= 3 * NumberGrain_Frekuensi); data_Grid_3_list_a = data_Grid_3.ToList(); data_Grid_3_list_b = data_Grid_3.ToList(); var data_Grid_4 = data_finals_update.Where(p => p.Id > 3 * NumberGrain_Frekuensi && p.Id <= 4 * NumberGrain_Frekuensi); data_Grid_4_list_a = data_Grid_4.ToList(); data_Grid_4_list_b = data_Grid_4.ToList(); var data_Grid_5 = data_finals_update.Where(p => p.Id > 4 * NumberGrain_Frekuensi && p.Id <= 5 * NumberGrain_Frekuensi); data_Grid_5_list_a = data_Grid_5.ToList(); data_Grid_5_list_b = data_Grid_5.ToList(); //data_pdfhistories = (data_pdfhistories_var.OrderBy(p => p.Id)).ToList(); //data_finals_ori.Add(data_final_ori); //Data_Receive_Grid.ItemsSource = data_finals_ori; counter_data = counter_data + 1; } Application.Current.Dispatcher.Invoke(new Action(() => { //MessageBox.Show("Port is opened. Start Collecting Data", application_name); //this.DataContext = this; Data_Receive_Grid_1.ItemsSource = data_Grid_1_list_a; Data_Receive_Grid_1.ItemsSource = data_Grid_1_list_b; Data_Receive_Grid_2.ItemsSource = data_Grid_2_list_a; Data_Receive_Grid_2.ItemsSource = data_Grid_2_list_b; Data_Receive_Grid_3.ItemsSource = data_Grid_3_list_a; Data_Receive_Grid_3.ItemsSource = data_Grid_3_list_b; //var x = data_Average[0] != null ? 12 : (int?)null; //if (val % 2 == 1) { output = “Number is odd”; } else { output = “Number is even”; } if (data_Average.Count() == 1) { Average_1.Text = data_Average[0].Measures; } else { ; } if (data_Average.Count() == 2) { Average_2.Text = data_Average[1].Measures; } else { ; } if (data_Average.Count() == 3) { Average_3.Text = data_Average[2].Measures; } else { ; } if (data_Average.Count() == 4) { Average_4.Text = data_Average[3].Measures; } else { ; } })); } else if (data_finals_update.Count % NumberGrain_Frekuensi == 0 && data_finals_update.Count > 0 && StatusListen == true) { Sensor_input_Helper.Command_MoisturAggregate(mySerialPort); if (data_Average.Count() == current_interval + 1) { mySerialPort.DiscardInBuffer(); mySerialPort.DiscardOutBuffer(); mySerialPort.Close(); StatusListen = false; /* * Application.Current.Dispatcher.Invoke(new Action(() => * { * //MessageBox.Show("Port is opened. Start Collecting Data", application_name); * //this.DataContext = this; * //RunSensor(); * * MessageBox.Show("Please Wait Time Interval", application_name); * * })); */ Thread.Sleep(delay); OpenCon_Port_local(mySerialPort, BaudRate); //string start_command = String.Concat(ResultGrain," ", ResultMeasure); //mySerialPort.DiscardInBuffer(); //mySerialPort.DiscardOutBuffer(); //Sensor_input_Helper.Command_Write(mySerialPort, ResultMeasure); //StatusListen = true; current_interval = current_interval + 1; Sensor_input_Helper.Command_Write(mySerialPort, ResultGrain); Sensor_input_Helper.Command_Write(mySerialPort, ResultMeasure); //MessageBox.Show("Start Next Sequence", application_name); /*Application.Current.Dispatcher.Invoke(new Action(() => * { * //MessageBox.Show("Port is opened. Start Collecting Data", application_name); * //this.DataContext = this; * //RunSensor(); * //Sensor_input_Helper.Command_Write(mySerialPort, ResultGrain); * //Sensor_input_Helper.Command_Write(mySerialPort, ResultMeasure); * MessageBox.Show("Start Next Sequence", application_name); * * }));*/ } Console.WriteLine("Nilai Else If adalah: " + Result_Parsing); } else { Console.WriteLine("Nilai Else adalah: " + Result_Parsing); } } } } catch (Exception ex) { Trace.TraceError(ex.Message); Console.WriteLine(ex); //return ""; } }