温馨提示×

C# DataReceived事件的监控与日志记录

c#
小樊
83
2024-08-08 21:06:42
栏目: 编程语言

在C#中,可以通过DataReceived事件来监控数据的接收情况,并将接收到的数据记录到日志中。以下是一个简单的示例代码:

using System;
using System.IO.Ports;

class Program
{
    static void Main()
    {
        SerialPort serialPort = new SerialPort("COM1", 9600);
        serialPort.DataReceived += SerialPort_DataReceived;
        serialPort.Open();

        Console.WriteLine("Press any key to stop monitoring...");
        Console.ReadKey();

        serialPort.Close();
    }

    private static void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort serialPort = (SerialPort)sender;
        string data = serialPort.ReadExisting();
        
        // 将接收到的数据记录到日志中
        LogData(data);
    }

    private static void LogData(string data)
    {
        using (StreamWriter sw = new StreamWriter("log.txt", true))
        {
            sw.WriteLine($"[{DateTime.Now}] Received: {data}");
        }
    }
}

在上面的示例中,我们首先创建了一个SerialPort对象并打开串口,然后通过DataReceived事件来监控数据的接收情况。当数据被接收时,会调用SerialPort_DataReceived方法将数据记录到日志中。日志文件将会在程序运行目录生成一个log.txt文件,并将接收到的数据以时间戳的形式记录在文件中。

通过以上示例,我们可以实现对数据的接收情况进行监控,并将接收到的数据记录到日志中,方便后续的分析和处理。

0