gpt4 book ai didi

c# - 如何确定我们从串口c#接收到所有数据

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:25 25 4
gpt4 key购买 nike

当我们从串行端口上连接的设备接收到所有数据时,我们如何知道 C# 中的 SerialPort 类?

这是我的代码。我怎么知道我收到了设备的所有数据?

private void button1_Click(object sender, RoutedEventArgs e)
{
p = new SerialPort("COM5");
if (!p.IsOpen)
{
try
{
p.Open();
p.DataReceived += new SerialDataReceivedEventHandler(p_DataReceived);
p.PinChanged += new SerialPinChangedEventHandler(p_PinChanged);
Data = "Port ouvert";
}
catch (Exception ex)
{
Data = string.Format("Erreur ouverture du port : {0}", ex.Message);
}
}}


void p_DataReceived(object sender, SerialDataReceivedEventArgs e)
{

var serial = (SerialPort)sender;

string line = serial.ReadExisting();

string data = string.Format("Donné recu : {0}",line);
Data = data;
strb.Append(line);

}

最佳答案

你想象如何接收到所有数据?该设备可以随时向您发送更多内容。

例如,我们有一个医疗设备,用于将文本行发送到串行连接的打印机(其中一种老式针式打印机能够一次打印一行并保持在同一页上),我们将打印机替换为计算机并制作了一个软件,能够在 TextArea 中附加来自串行端口的文本行。

通过这种方式,您应该监听串行端口并检测以正确的换行符代码终止的新行并处理该新行,但您必须保持连接并查看之后是否有其他数据。

我会说这取决于你的设备,如果你知道一旦它完成某个操作会向你发送一个特殊代码然后检查该代码,否则只需保持连接并收听所有传入数据。

关于c# - 如何确定我们从串口c#接收到所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7300606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com