目录
一 设计原型
二 后台源码
一 设计原型
二 后台源码
using HardwareCommunications;
using System.IO.Ports;
using System.Windows;namespace PortTest
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}SerialCommunication s = new SerialCommunication(new SerialPortParameter(){Port = "COM1",DataBits = 8,StopBits = StopBits.One,Baudrate = 115200,Parity = Parity.None,ConnectionTimeout = 3000,});SerialCommunication s2 = new SerialCommunication(new SerialPortParameter(){Port = "COM1",DataBits = 8,StopBits = StopBits.One,Baudrate = 115200,Parity = Parity.None,ConnectionTimeout = 3000,}, "\r\n");private void Button_Click(object sender, RoutedEventArgs e){s.Open();s.Send("hello");s.Close();}private void Button_Click_1(object sender, RoutedEventArgs e){//s.Open();//string data= s.Receive(1024);//string data= s.ReadExisting();//string data= s.ReadLine();s2.Open();string data = s2.Receive();s2.DataReadWriteTimeoutEvent += S2_DataReadWriteTimeoutEvent;s2.DataReceiveEvent += S2_DataReceiveEvent;log.Text = data;s.Close();}private void S2_DataReceiveEvent(object sender, string data){count++;Dispatcher.Invoke(new Action(() =>{log3.Text = data + ":" + count;}));}int count = 0;private void S2_DataReadWriteTimeoutEvent(object sender, string errorInfo){count++;Dispatcher.Invoke(new Action(() =>{log2.Text = errorInfo + count;}));}}
}
<Window x:Class="PortTest.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:PortTest"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><Grid.RowDefinitions><RowDefinition/><RowDefinition/><RowDefinition/><RowDefinition/><RowDefinition/></Grid.RowDefinitions><Button Content="发送" FontSize="30" Click="Button_Click"/><Button Content="接收" FontSize="30" Click="Button_Click_1" Grid.Row="1"/><TextBox x:Name="log" Grid.Row="2"/><TextBox x:Name="log2" Grid.Row="3"/><TextBox x:Name="log3" Grid.Row="4"/></Grid>
</Window>