private void ReceiverReplyParse(string data, int index) { char[] charsToTrim = { '\r', '\n' }; try { switch (Int32.Parse(data[6].ToString())) { case 0: //receiver name LogConsole.AppendText(DateTime.Now.ToString() + " Channel " + index + " Receiver name: " + data.Substring(8) + Environment.NewLine); receiver_model[index] = data.Substring(8).TrimEnd(charsToTrim); break; case 1: //FW ver LogConsole.AppendText(DateTime.Now.ToString() + " Channel " + index + " FW version: " + data.Substring(8) + Environment.NewLine); receiver_FW[index] = data.Substring(8).TrimEnd(charsToTrim); break; case 2: //Receiver ID LogConsole.AppendText(DateTime.Now.ToString() + " Channel " + index + " Receiver ID: " + data.Substring(8) + Environment.NewLine); receiver_ID[index] = data.Substring(8).TrimEnd(charsToTrim); break; default: LogConsole.AppendText(DateTime.Now.ToString() + " Channel " + index + " " + data + Environment.NewLine); break; } } catch (Exception ex) { LogConsole.AppendText(DateTime.Now.ToString() + " Channel " + index + ex.Message + Environment.NewLine); } }
//write output to log //couldbe used in the future to incorporate a log file private void WriteToLog(string value) { string dateTimeFormat = string.Format("{0:yyyy-MM-dd:HH-mm-ss}", DateTime.Now); LogConsole.AppendText(string.Format("{0} {1}{2}", dateTimeFormat, value, "\n")); File.AppendAllText("Lab2.log", string.Format("{0} {1}{2}", dateTimeFormat, value, "\n")); }
private void ComListing() { try { using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE Caption like '%(COM%'")) { var portnames = SerialPort.GetPortNames(); var ports = searcher.Get().Cast <ManagementBaseObject>().ToList().Select(p => p["Caption"].ToString()); var portList = portnames.Select(n => n + " - " + ports.FirstOrDefault(s => s.Contains(n + ")"))).ToList(); foreach (string s in portList) { LogConsole.AppendText(s + Environment.NewLine); //LogUpdate(s, 10); } /* * foreach (string s in portList) * { * LogConsole.AppendText(s.Substring(s.IndexOf("(")+1, s.IndexOf(")") - s.IndexOf("(")-1) + Environment.NewLine); * //LogUpdate(s, 10); * } */ } } catch (ManagementException e) { MessageBox.Show(e.Message); } }
public void TTFSWStop_Click(object sender, EventArgs e) { TTFSW_soltypeList.Enabled = true; TTFStartButton.Enabled = true; TTFStopButton.Enabled = false; Timeout1TextBox.Enabled = true; Timeout2TextBox.Enabled = true; Command1TextBox.Enabled = true; Command2TextBox.Enabled = true; NumberOfCyclesTextBox.Enabled = true; SyncCheckBox1.Enabled = true; aTimer.Enabled = false; aTimer.Close(); progressBar1.Value = 0; //this.BeginInvoke(new StatusUpdate(LogUpdate), new object[] { " progressBar1.Value = 0 ", 0 }); progressBar1.Refresh(); progressBar1.Update(); for (int i = 0; i < 8; i++) { TTFSWmode[i] = 0; if (rcv_connected[i] == true) { ButtonClose[i].Enabled = true; this.BeginInvoke(new StatusUpdate(STUpdate), new object[] { "Connected", i }); try { this.fstream[i].Close(); SendCommand2(i); } catch (Exception ex) { LogConsole.AppendText(DateTime.Now.ToString() + "File close error: " + ex.Message + Environment.NewLine); } fstream[i] = null; } else { ButtonOpen[i].Enabled = true; } } string data = TTF_Timeout1.ToString(); //saving statistics filename = "Result" + " " + DateTime.Now.ToString("yyyy-MM-dd HH.mm") + ".csv"; filename = @System.IO.Path.Combine(FilepathtextBox3.Text.ToString(), filename); WriteCSV(dataGridView1, filename); WriteCycles(); }
private void LoadScriptBtn_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK && !string.IsNullOrWhiteSpace(openFileDialog1.FileName)) { StreamReader Scriptreader = new StreamReader(openFileDialog1.FileName); string line; Command1TextBox.Text = ""; Command2TextBox.Text = ""; LogConsole.AppendText(DateTime.Now.ToString() + " Script file parsing sarted: " + openFileDialog1.FileName + Environment.NewLine); line = Scriptreader.ReadLine().Substring(11); Timeout1TextBox.Text = line; LogConsole.AppendText("Timeout 1: " + line + Environment.NewLine); line = Scriptreader.ReadLine().Substring(11); Timeout2TextBox.Text = line; LogConsole.AppendText("Timeout 2: " + line + Environment.NewLine); line = Scriptreader.ReadLine(); line = line.Substring(line.Length - 1); TTFSW_soltypeList.SelectedIndex = int.Parse(line); LogConsole.AppendText("Solution Type index: " + line + Environment.NewLine); line = Scriptreader.ReadLine().Substring(18); NumberOfCyclesTextBox.Text = line; LogConsole.AppendText("Number of cycles: " + line + Environment.NewLine); line = Scriptreader.ReadLine(); LogConsole.AppendText(line + Environment.NewLine); while ((line = Scriptreader.ReadLine()) != "Command 2:") { Command1TextBox.AppendText(line + Environment.NewLine); LogConsole.AppendText(line + Environment.NewLine); } LogConsole.AppendText(line + Environment.NewLine); while ((line = Scriptreader.ReadLine()) != null) { Command2TextBox.AppendText(line + Environment.NewLine); LogConsole.AppendText(line + Environment.NewLine); } } }
private void DrawGraph(int i) { // Получим панель для рисования GraphPane pane = zedGraphMain.GraphPane; // Создадим список точек PointPairList list = new PointPairList(); double xmin = double.Parse(MinPercentile_textBox.Text); double xmax = double.Parse(MaxPercentile_textBox.Text); double increment = double.Parse(Increment_textBox.Text); //LogConsole.AppendText(DateTime.Now.ToString() + "xmin=" + xmin+ "xmax=" + xmax + Environment.NewLine); //вычисляем перцентили для каждого канала List <double> ttfS_ = new List <double>(); List <double> ttfD_ = new List <double>(); List <double> ttfF_ = new List <double>(); List <double> ttfR_ = new List <double>(); foreach (TTFcycle TTFtemp in Cycles) { if (TTFtemp.channel == i) { ttfS_.Add(TTFtemp.TTFS); ttfD_.Add(TTFtemp.TTFD); ttfF_.Add(TTFtemp.TTFF); ttfR_.Add(TTFtemp.TTFR); } } if (ttfS_.Count + ttfD_.Count + ttfF_.Count + ttfR_.Count == 0) { return; } switch (CurrentMode) { case 0: // Заполняем список точек for (double x = xmax; x >= xmin; x -= increment) { // добавим в список точку if (Percentile(ttfR_.ToArray(), Math.Round(x, 2)) != Percentile(ttfR_.ToArray(), Math.Round(x + increment, 2))) { list.Add(Percentile(ttfS_.ToArray(), x), x); } } break; case 1: // Заполняем список точек for (double x = xmax; x >= xmin; x -= increment) { // добавим в список точку if (Percentile(ttfR_.ToArray(), Math.Round(x, 2)) != Percentile(ttfR_.ToArray(), Math.Round(x + increment, 2))) { list.Add(Percentile(ttfD_.ToArray(), x), x); } LogConsole.AppendText("Graph point" + " x=" + x + " y=" + Percentile(ttfD_.ToArray(), (x)) + Environment.NewLine); } break; case 2: // Заполняем список точек for (double x = xmax; x >= xmin; x -= increment) { // добавим в список точку if (Math.Round(Percentile(ttfR_.ToArray(), Math.Round(x, 2)), 2) != Math.Round(Percentile(ttfR_.ToArray(), Math.Round(x + increment, 2)), 2)) { list.Add(Math.Round(Percentile(ttfR_.ToArray(), Math.Round(x, 2)), 2), Math.Round(x, 2)); LogConsole.AppendText("Graph point" + " x=" + Math.Round(x, 2) + " y=" + Math.Round(Percentile(ttfR_.ToArray(), Math.Round(x, 2)), 2) + Environment.NewLine); } } break; default: break; } LineItem myCurve = pane.AddCurve(dataGridView1[12, i + 1].Value.ToString(), list, dataGridView1[11, i + 1].Style.BackColor, SymbolType.None); //myCurve.Line.IsSmooth = true; myCurve.Line.Width = 2; myCurve.Line.IsAntiAlias = true; // Вызываем метод AxisChange (), чтобы обновить данные об осях. // В противном случае на рисунке будет показана только часть графика, // которая умещается в интервалы по осям, установленные по умолчанию zedGraphMain.AxisChange(); // Обновляем график zedGraphMain.Invalidate(); }
void LogUpdate(string str, int i) { LogConsole.AppendText(DateTime.Now.ToString() + " Channel " + i + str + Environment.NewLine); }
public string SolType(string data, int i) { string[] parts = data.Split(','); if (parts[0].Equals("$GPGGA")) { rcv_connected[i] = true; if (int.TryParse(parts[6], out int SolTypeInt)) { try { timestamp_date = DateTime.ParseExact(parts[1], "HHmmss.ff", CultureInfo.InvariantCulture); } catch (FormatException) { LogConsole.AppendText(DateTime.Now.ToString() + " " + parts[6] + " " + "is not in the correct format. " + parts + Environment.NewLine); } timestamp[i] = timestamp_date.TimeOfDay.TotalSeconds; switch (SolTypeInt) { case 0: return("None Solution"); case 1: if (SolutionLabel[i].Text == "None Solution") { //ttfS[i] = time; ttfS[i] = timestamp[i] - ttf_stop_timestamp[i]; } if (TTFSW_soltypeList.SelectedIndex == 0) { if (TTFSWmode[i] == 0) { TTFSWmode[i] = 1; cycle_counter[i]++; } } return("Standalone"); case 2: { if (CurrentMode == 1) { if (TTFSWmode[i] == 0) { TTFSWmode[i] = 1; ttfD[i] = timestamp[i] - ttf_stop_timestamp[i]; cycle_counter[i]++; } } } return("DGNSS"); case 3: return("PPS"); case 4: { if (CurrentMode == 2) { if (TTFSWmode[i] == 0) { TTFSWmode[i] = 1; ttfR[i] = timestamp[i] - ttf_stop_timestamp[i]; cycle_counter[i]++; } } } return("RTK Fix"); case 5: if (SolutionLabel[i].Text == "Standalone" | SolutionLabel[i].Text == "None Solution" | SolutionLabel[i].Text == "DGNSS") { ttfF[i] = timestamp[i] - ttf_stop_timestamp[i]; } return("RTK Float"); default: return("N/A"); } } return("N/A"); } return("N/A"); }