C# 串口数据侦听的实现

 

版权声明:

本文由sxwd_forever完成,首发于CSDN,未经许可,不得使用于任何商业用途.

欢迎转载,但请保持文章及版权声明完整。

如需联络请发邮件:sxwd_forever(AT)126.com

 

    相信很多和我一样需要编程操纵硬件的人都遇到过这样的问题,就是通过串口来接收硬件发来的数据,或是通过串口向硬件发送某种格式的命令。在C#平台上,编写串口通讯程序是一件非常简单的事情。废话少说,入正题~

    网上众多C#串口编程的例子,主要讨论的都是如何侦听串口数据(向串口写数据较为简单,略),仿照例子,我编写了如下代码来侦听数据:

 
using System.IO.Ports;
namespace SerialTest
{
  public class SerialTest
  {
    //串口对象
    private SerialPort _Comm = null;

    //串口控件初始化
    public void Init()
    {
      _Comm = new SerialPort();
      //串口参数设定
      _Comm.BaudRate = 9600;
      _Comm.Parity = Parity.None; //Parity为C#预定义枚举型变量
      _Comm.DataBits = 8;
      _Comm.StopBits = StopBits.One; //StopBits为C#预定义的枚举量
      _Comm.PortName = "COM1";//假定串口名为COM1

      //为控件添加事件处理函数 
      _Comm.DataReceived +=
        new SerialDataReceivedEventHandler(CommDataReceived);
      //串口控件成员变量,字面意思为接收字节阀值,
      //串口对象在收到这样长度的数据之后会触发事件处理函数
      //一般都设为1
      _Comm.ReceivedBytesThreshold = 1;
      try
      {
        _Comm.Open(); 
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,下面是一个简单的C# WinForm应用程序,用于通过TCP通信将XML序列化的数据上传到服务器。 在此示例中,我们假设您已经有了一个可以接收和处理XML数据的服务器。我们将使用System.Net.Sockets和System.Xml.Serialization命名空间来实现此任务。 1. 创建WinForm应用程序并添加以下命名空间: ``` using System.Net.Sockets; using System.Xml.Serialization; ``` 2. 创建一个名为Data的类,用于存储要上传的数据。 ``` public class Data { public string Name { get; set; } public int Age { get; set; } } ``` 3. 在WinForm的代码中,创建一个按钮并添加以下代码: ``` private void button1_Click(object sender, EventArgs e) { // 创建要上传的数据对象 Data data = new Data(); data.Name = "John"; data.Age = 30; // 将数据序列化为XML字符串 XmlSerializer serializer = new XmlSerializer(typeof(Data)); StringWriter writer = new StringWriter(); serializer.Serialize(writer, data); string xmlString = writer.ToString(); // 将XML字符串转换为字节数组 byte[] buffer = Encoding.UTF8.GetBytes(xmlString); // 创建TCP客户端并连接到服务器 TcpClient client = new TcpClient(); client.Connect("serverIP", 1234); // 将数据发送到服务器 NetworkStream stream = client.GetStream(); stream.Write(buffer, 0, buffer.Length); // 关闭连接 stream.Close(); client.Close(); } ``` 4. 将“serverIP”替换为服务器的IP地址,并将端口号更改为服务器正在侦听的端口。 5. 运行应用程序并单击按钮,即可将XML序列化的数据上传到服务器。 请注意,此示例仅用于演示目的,实际上您需要实现服务器端来接收和处理这些数据。此外,在实际应用程序中,您可能需要添加一些错误处理代码来处理连接错误和数据传输错误等情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值