Witajcie!
Jako, że prowadzę ciąg artykułów o zestawie FRDM-KL46Z nieodłącznym narzędziem
dla nas będzie prosty terminal do wizualizacji danych z naszej płytki.
W sieci można znaleźć wiele różnych programów typu terminal ale ja jak zawsze
wole swoje narzędzie - zresztą człowiek zawsze się nauczy czegoś nowego :)
Terminal, który przedstawiam nie jest jakimś tam super programem ma jedynie za
zadanie wyświetlenie naszych wyników. Oczywiście narzędzie to przyda nam się
w przyszłości gdzie na pewno jeszcze zajdzie potrzeba użycia go nie koniecznie z
opisywaną płytką.
Nasz terminal zapamiętuje ostatnie ustawienia portu COM oraz prędkości BaudRate
co jest fajne ponieważ nie trzeba za każdym razem rozwijać comboboxów i wybierać
portu jak i prędkości.
Myślę, że z czasem zostaną dodane inne funkcje na potrzeby opisywanych programów.
Poniżej kod w c#:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace serial_receive { public partial class Form1 : Form { public Form1() { InitializeComponent(); button1.Text = "Otwórz"; button1.BackColor = Color.Green; string[] porty = SerialPort.GetPortNames(); foreach (var ports in porty) { comboBox1.Items.Add(ports); } comboBox1.Text = Properties.Settings.Default.port; comboBox2.Text = Properties.Settings.Default.baud; } private string rxString; private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { rxString = serialPort1.ReadExisting(); this.Invoke(new EventHandler(displayText)); } private void displayText(object o, EventArgs e) { richTextBox1.AppendText(rxString); } private void Form1_Load(object sender, EventArgs e) { } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Close(); } else { serialPort1.PortName = comboBox1.SelectedItem.ToString(); } } int flaga = 0; private void button1_Click(object sender, EventArgs e) { flaga++; if (flaga == 1) { button1.Text = "Zamknij"; button1.BackColor = Color.Red; try { serialPort1.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } if (flaga != 1) { button1.Text = "Otwórz"; button1.BackColor = Color.Green; try { serialPort1.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } flaga = 0; } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Properties.Settings.Default.port = comboBox1.SelectedItem.ToString(); Properties.Settings.Default.baud = comboBox2.Text; Properties.Settings.Default.Save(); if (serialPort1.IsOpen) serialPort1.Close(); } } }Program można pobrać tutaj:
link
Brak komentarzy:
Prześlij komentarz