SCREA 发表于 2019-1-7 20:42:13

C#串口助手源代码(共六个打包下载)

C#串口助手源代码(共六个打包下载)

其实我想找一个多线程串口接收的例子,谁有啊

wt3333 发表于 2019-1-7 20:42:58

学习下 谢谢

qianj1986 发表于 2019-1-7 21:14:04

压缩包里面还有压缩包,而且是7z,能否把7z的换成ZIP或RAR的上传吗?

411412 发表于 2019-1-7 21:17:12

下载学习了

天下乌鸦一般黑 发表于 2019-1-7 21:28:34

多线程接收,你说的是串口接收和刷新界面分开吗?

jjj206 发表于 2019-1-7 21:32:46

收了谢谢楼主的分享

hyghyg1234 发表于 2019-1-7 22:03:47

什么叫多线程接收?

SCREA 发表于 2019-1-8 07:08:48

天下乌鸦一般黑 发表于 2019-1-7 21:28
多线程接收,你说的是串口接收和刷新界面分开吗?

对,接收解析执行和界面分开执行

SCREA 发表于 2019-1-8 07:09:04

hyghyg1234 发表于 2019-1-7 22:03
什么叫多线程接收?

刚回答了

SCREA 发表于 2019-1-8 07:10:03

天下乌鸦一般黑 发表于 2019-1-7 21:28
多线程接收,你说的是串口接收和刷新界面分开吗?

乌鸦嫌喜鹊白,喜鹊嫌乌鸦黑

kinsno 发表于 2019-1-8 09:03:38

我原来的一个,不晓得算不算是分开的啊,不过好象是分开的,哪天翻翻电脑找上来看看。。

SCREA 发表于 2019-1-8 09:22:45

kinsno 发表于 2019-1-8 09:03
我原来的一个,不晓得算不算是分开的啊,不过好象是分开的,哪天翻翻电脑找上来看看。。

...

先谢谢了,只有多线程异步才能解决高速通信问题

SCREA 发表于 2019-1-8 09:24:35

kinsno 发表于 2019-1-8 09:03
我原来的一个,不晓得算不算是分开的啊,不过好象是分开的,哪天翻翻电脑找上来看看。。

...

还有在串口接收事件中一次接收大于256字节,比如1024你能做到吗?

天下乌鸦一般黑 发表于 2019-1-8 09:45:20

SCREA 发表于 2019-1-8 07:10
乌鸦嫌喜鹊白,喜鹊嫌乌鸦黑

backgroundWorker可以实现吧

hyghyg1234 发表于 2019-1-8 09:45:32

SCREA 发表于 2019-1-8 09:24
还有在串口接收事件中一次接收大于256字节,比如1024你能做到吗?

我做过串口高速刷曲线的例子,不知道你是不是想要的这种。

hyghyg1234 发表于 2019-1-8 09:47:03

串口接收事件里面用一个list去接收数据,单独弄一个线程处理list,有数据就解析刷出来。

SCREA 发表于 2019-1-8 10:01:44

hyghyg1234 发表于 2019-1-8 09:47
串口接收事件里面用一个list去接收数据,单独弄一个线程处理list,有数据就解析刷出来。 ...

好办法,试试

SCREA 发表于 2019-1-8 10:02:58

天下乌鸦一般黑 发表于 2019-1-8 09:45
backgroundWorker可以实现吧

我小白不懂,大师讲明白些

天下乌鸦一般黑 发表于 2019-1-8 11:16:48

SCREA 发表于 2019-1-8 10:02
我小白不懂,大师讲明白些

同样小白。摸索着给公司做的测试软件,用串口和mschart实现实时绘图,大概8条线40-60hz的绘图频率吧,不太方便发出来,见谅了。
串口这部分参考的
https://blog.csdn.net/dddxxxx/article/details/53219879
backgroundWorker参考类似下面的帖子
http://www.cnblogs.com/sparkdev/p/5906272.html
可能会用到lock操作,防止多线程对同一个缓冲区进行操作,类似下面的帖子
https://www.cnblogs.com/wolf-sun/p/4209521.html
-------------------
多线程处理串口数据和刷新界面,思路是建立一个串口用的接收缓冲区,串口接收到数据只向缓冲区里放数据,建立一个backgroundWorker线程,在DoWork里不停检测这个缓冲区长度,只要长度超过定义的最小帧长度,就解析,解析的数据保存在内存里,解析后串口从缓冲区里删掉,在backgroundWorker的ProgressChanged里不停的刷新界面。

gamep 发表于 2019-1-8 14:10:41

收藏了做参考,感谢楼主分享

SCREA 发表于 2019-1-8 18:17:56

本帖最后由 SCREA 于 2019-1-8 20:12 编辑

天下乌鸦一般黑 发表于 2019-1-8 11:16
同样小白。摸索着给公司做的测试软件,用串口和mschart实现实时绘图,大概8条线40-60hz的绘图频率吧,不 ...

谢谢喜鹊
第一次用这个类就难住我了。 明明创建了AAA,但提示就是找不到{:mad:}

SCREA 发表于 2019-1-8 21:13:31

本帖最后由 SCREA 于 2019-1-8 21:46 编辑

天下乌鸦一般黑 发表于 2019-1-8 11:16
同样小白。摸索着给公司做的测试软件,用串口和mschart实现实时绘图,大概8条线40-60hz的绘图频率吧,不 ...

async/await 异步方法编程 能搞定,
串口接收事件 中 把数据push 进list
开个线程或异步编程 pop 数据, 解析数据

namespace TestInvoker
{
    public partial class Form1 : Form
    {
      public Form1()
      {
            InitializeComponent();
      }

      private void button1_Click(object sender, EventArgs e)
      {
            Thread thread = new Thread(new ThreadStart(StartSomeWorkFromUIThread));
            thread.IsBackground = true;
            thread.Start();
            //StartSomeWorkFromUIThread();
            //label1.Text = "Set value through another thread!";
      }

      private void StartSomeWorkFromUIThread()
      {
            if (this.InvokeRequired)
            {
                BeginInvoke(new EventHandler(RunsOnWorkerThread), null);
            }
            else
            {
                RunsOnWorkerThread(this, null);
            }
      }

      private void RunsOnWorkerThread(object sender, EventArgs e)
      {
            Thread.Sleep(2000);
            label1.Text = System.DateTime.Now.ToString();
      }
    }
}

elecfun 发表于 2019-1-9 00:58:31

可以参考开源项目Poderosa、Tera Term

kinsno 发表于 2019-2-23 17:24:04

本帖最后由 kinsno 于 2019-2-23 17:26 编辑

SCREA 发表于 2019-1-8 09:22
先谢谢了,只有多线程异步才能解决高速通信问题

好象还真不是。。N年前写的练手代码,今天看了代码,挫的一比,就不上传了。。我自己看了都惭愧。。没帮上楼主。

SCREA 发表于 2019-2-25 21:10:05

kinsno 发表于 2019-2-23 17:24
好象还真不是。。N年前写的练手代码,今天看了代码,挫的一比,就不上传了。。我自己看了都惭愧。。没帮 ...

C#多线程编程实战
这本书有意思

kinsno 发表于 2019-2-26 12:40:17

SCREA 发表于 2019-2-25 21:10
C#多线程编程实战
这本书有意思

你的问题,从这本书得到答案了吗?

文艺小青年 发表于 2019-2-26 15:38:05

学习下 谢谢

蛋定 发表于 2019-2-26 15:59:37

{:smile:}学习了

SCREA 发表于 2019-2-26 18:40:55

kinsno 发表于 2019-2-26 12:40
你的问题,从这本书得到答案了吗?

是的。
比如里面有 Concurrent queue 这种安全线程, 再用上 task, await等

jemmy 发表于 2019-3-2 13:12:01

谢谢楼主,刚好用来做学习资料。

yongke 发表于 2019-11-13 11:22:21

keyi用吗,看看?

michael3000 发表于 2019-12-21 05:04:03

学习谢谢!!!
页: [1]
查看完整版本: C#串口助手源代码(共六个打包下载)