搜索
bottom↓
回复: 31

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

  [复制链接]

出0入4汤圆

发表于 2019-1-7 20:42:13 | 显示全部楼层 |阅读模式
C#串口助手源代码(共六个打包下载)

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出5入8汤圆

发表于 2019-1-7 20:42:58 | 显示全部楼层
学习下 谢谢

出20入12汤圆

发表于 2019-1-7 21:14:04 | 显示全部楼层
压缩包里面还有压缩包,而且是7z,能否把7z的换成ZIP或RAR的上传吗?

出0入0汤圆

发表于 2019-1-7 21:17:12 来自手机 | 显示全部楼层
下载学习了

出20入62汤圆

发表于 2019-1-7 21:28:34 | 显示全部楼层
多线程接收,你说的是串口接收和刷新界面分开吗?

出0入0汤圆

发表于 2019-1-7 21:32:46 | 显示全部楼层
收了谢谢楼主的分享

出0入0汤圆

发表于 2019-1-7 22:03:47 | 显示全部楼层
什么叫多线程接收?

出0入4汤圆

 楼主| 发表于 2019-1-8 07:08:48 | 显示全部楼层
天下乌鸦一般黑 发表于 2019-1-7 21:28
多线程接收,你说的是串口接收和刷新界面分开吗?

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

出0入4汤圆

 楼主| 发表于 2019-1-8 07:09:04 | 显示全部楼层
hyghyg1234 发表于 2019-1-7 22:03
什么叫多线程接收?

刚回答了

出0入4汤圆

 楼主| 发表于 2019-1-8 07:10:03 | 显示全部楼层
天下乌鸦一般黑 发表于 2019-1-7 21:28
多线程接收,你说的是串口接收和刷新界面分开吗?

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

出0入0汤圆

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

出0入4汤圆

 楼主| 发表于 2019-1-8 09:22:45 来自手机 | 显示全部楼层
kinsno 发表于 2019-1-8 09:03
我原来的一个,不晓得算不算是分开的啊,不过好象是分开的,哪天翻翻电脑找上来看看。。

...

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

出0入4汤圆

 楼主| 发表于 2019-1-8 09:24:35 来自手机 | 显示全部楼层
kinsno 发表于 2019-1-8 09:03
我原来的一个,不晓得算不算是分开的啊,不过好象是分开的,哪天翻翻电脑找上来看看。。

...

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

出20入62汤圆

发表于 2019-1-8 09:45:20 | 显示全部楼层
SCREA 发表于 2019-1-8 07:10
乌鸦嫌喜鹊白,喜鹊嫌乌鸦黑

backgroundWorker可以实现吧

出0入0汤圆

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

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

出0入0汤圆

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

出0入4汤圆

 楼主| 发表于 2019-1-8 10:01:44 来自手机 | 显示全部楼层
hyghyg1234 发表于 2019-1-8 09:47
串口接收事件里面用一个list去接收数据,单独弄一个线程处理list,有数据就解析刷出来。 ...

好办法,试试

出0入4汤圆

 楼主| 发表于 2019-1-8 10:02:58 来自手机 | 显示全部楼层
天下乌鸦一般黑 发表于 2019-1-8 09:45
backgroundWorker可以实现吧

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

出20入62汤圆

发表于 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里不停的刷新界面。

出0入0汤圆

发表于 2019-1-8 14:10:41 | 显示全部楼层
收藏了做参考,感谢楼主分享

出0入4汤圆

 楼主| 发表于 2019-1-8 18:17:56 | 显示全部楼层
本帖最后由 SCREA 于 2019-1-8 20:12 编辑
天下乌鸦一般黑 发表于 2019-1-8 11:16
同样小白。摸索着给公司做的测试软件,用串口和mschart实现实时绘图,大概8条线40-60hz的绘图频率吧,不 ...


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

 楼主| 发表于 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 数据, 解析数据

  1. namespace TestInvoker
  2. {
  3.     public partial class Form1 : Form
  4.     {
  5.         public Form1()
  6.         {
  7.             InitializeComponent();
  8.         }

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

  17.         private void StartSomeWorkFromUIThread()
  18.         {
  19.             if (this.InvokeRequired)
  20.             {
  21.                 BeginInvoke(new EventHandler(RunsOnWorkerThread), null);
  22.             }
  23.             else
  24.             {
  25.                 RunsOnWorkerThread(this, null);
  26.             }
  27.         }

  28.         private void RunsOnWorkerThread(object sender, EventArgs e)
  29.         {
  30.             Thread.Sleep(2000);
  31.             label1.Text = System.DateTime.Now.ToString();
  32.         }
  33.     }
  34. }
复制代码

出0入134汤圆

发表于 2019-1-9 00:58:31 | 显示全部楼层
可以参考开源项目Poderosa、Tera Term

出0入0汤圆

发表于 2019-2-23 17:24:04 | 显示全部楼层
本帖最后由 kinsno 于 2019-2-23 17:26 编辑
SCREA 发表于 2019-1-8 09:22
先谢谢了,只有多线程异步才能解决高速通信问题


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

出0入4汤圆

 楼主| 发表于 2019-2-25 21:10:05 | 显示全部楼层
kinsno 发表于 2019-2-23 17:24
好象还真不是。。N年前写的练手代码,今天看了代码,挫的一比,就不上传了。。我自己看了都惭愧。。没帮 ...

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

出0入0汤圆

发表于 2019-2-26 12:40:17 | 显示全部楼层
SCREA 发表于 2019-2-25 21:10
C#多线程编程实战
这本书有意思

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

出0入0汤圆

发表于 2019-2-26 15:38:05 | 显示全部楼层
学习下 谢谢

出250入8汤圆

发表于 2019-2-26 15:59:37 | 显示全部楼层
学习了

出0入4汤圆

 楼主| 发表于 2019-2-26 18:40:55 | 显示全部楼层
kinsno 发表于 2019-2-26 12:40
你的问题,从这本书得到答案了吗?

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

出0入0汤圆

发表于 2019-3-2 13:12:01 | 显示全部楼层
谢谢楼主,刚好用来做学习资料。

出0入10汤圆

发表于 2019-11-13 11:22:21 | 显示全部楼层
keyi用吗,看看?

出0入0汤圆

发表于 2019-12-21 05:04:03 | 显示全部楼层
学习谢谢!!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 23:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表