• 大小: 16KB
    文件类型: .cs
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C#
  • 标签: C#  c#log存储  

资源简介

c#串口通讯log存储及实时波形绘制代码,工具比较实用,这里只有源代码,设计窗口的设计还需要大家自行根据我博客中的图片进行修改

资源截图

代码片段和文件信息

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.Threading;
using System.IO.Ports;
using System.IO;
using System.Collections;
using System.Windows.Forms.DataVisualization.Charting;
using System.Text.Regularexpressions;

namespace WindowsFormsApp1
{
    public partial class IO_Setting_Form : Form
    {
        private SerialPort ComDevice = new SerialPort();

        private Queue dataQueue = new Queue(100);
        private Queue stringdataQueue = new Queue(100);
        private int num = 5;

        public IO_Setting_Form()
        {
            InitializeComponent();
            InitralConfig();
        }
        private void Form2_Load(object sender EventArgs e)
        {
            textBoxUpSpec.Text = “10“;
            textBoxBottomSpec.Text = “0“;
            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
            AddParameters();
            InitChart();
        }

        private void InitralConfig()
        {
            //查询主机上存在的串口
            comboBox_Port.Items.AddRange(SerialPort.GetPortNames());

            if (comboBox_Port.Items.Count > 0)
            {
                comboBox_Port.SelectedIndex = 0;
            }
            else
            {
                comboBox_Port.Text = “未检测到串口“;
            }
            comboBox_BaudRate.SelectedIndex = -1;
            comboBox_DataBits.SelectedIndex = -1;
            comboBox_StopBits.SelectedIndex = -1;
            comboBox_CheckBits.SelectedIndex = -1;
            //pictureBox_Status.BackgroundImage = Properties.Resources.red;
            //this.pictureBox_Status.Image = Image.FromFile(Application.StartupPath “\\red.PNG“);
            this.pictureBox_Status.Image = Image.FromFile(“D:/VS_Files/WindowsFormsApplication1/WindowsFormsApplication1/Icon/red.png“);

            //向ComDevice.DataReceived(是一个事件)注册一个方法Com_DataReceived,当端口类接收到信息时时会自动调用Com_DataReceived方法
            ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived);
        }

        /// 
        /// 一旦ComDevice.DataReceived事件发生,就将从串口接收到的数据显示到接收端对话框
        /// 

        /// 
        /// 
        /// 
        char[] ch1={};
        private void Com_DataReceived(object sender SerialDataReceivedEventArgs e)
        {

            //开辟接收缓冲区
            byte[] Buffer = new byte[ComDevice.BytesToRead];

            //从串口读取数据
            ComDevice.Read(Buffer 0 Buffer.Length);

            //实现数据的解码与显示
            AddData(Buffer);
            /*
            string str1 = new ASCIIEncoding().GetString(Buffer);
            for (int i = 0; i < str1.Length; i++)
            {
                if (stringdataQueue.Count > 100)
                {
 

评论

共有 条评论