Random 类的一个有趣现象

前言 前两天在写“随机报数机”的时候,用到了 Random 类,来生成随机数,发现一个现象:有时候 Random 类出来的数字连着好几次都是一样的,我就在想,这个数字到底是不是“随机”生成的,于是做了一个小实验。 实验 代码思路:新建一个线程,线程无线循环,每循环一次,由 Random 类生成一个随机数,根据随机数的值,让与数值对应的 panel 控件向上移动一个单位,就形成了类似于柱状图实时统计的效果。 这个时候,Random random = new Random();  这句代码,放在不同 […]

串口数据被“拆包”问题

前言 写串口助手、上位机等与串口打交道的程序的时候,可能会遇到这么一个问题:串口数据“被“拆包”(“粘包”也是一样的原因)。 这种情况多发生在使用“串口转 USB ”线材的时候,我猜测与转换芯片或者硬件电路之类的有很大的关系。 因为用同一个串口助手软件,“ RS485/232 转 USB ”的线材会导致数据被“拆包”,而“ TTL 转 USB ”的线材则不会(我的实验现象)。 “拆包”现象如下图所示,下位机一次性向串口发送了 10 个字节的数据,但是串口助手(或者上位机)却分两次接收,实际上是读 […]

winform 与 3D 模型结合

前言 由于项目需要,需要在 windows 桌面软件里加入 3D 模型,做一些立体的演示。而 winform 不支持 3D 模型文件直接导入(wpf 请飘过)。经过各种搜索资料和试验,得出以下几条结论: 1,使用某些收费的控件可以导入 3D 模型(操作简单,但是价格不低,如果软件用户少就不合算) 2,可以考虑 openGL、DirectX(操作复杂,牵扯一些坐标、四元数、矩阵等专业技能,想做好不容易,如果有专攻这一方面的大牛合作那想必是极好的) 3,使用 unity 插件,加载 unity 工程 […]