• (串口通信编程) 开源串口调试助手Common (Com Monitor)


      最新的文档见这里:http://blog.twofei.com/566/

      我写的串口调试助手程序以及源代码.

      警告:请勿将本软件源代码用于任何商业用途。

      其实吧, 我写的这个串口软件绝对比网上流传的一些串口调试软件好用很多, 对于软件,我本身并没有作
      太多推广, 一些功能我由于懒也没有文档化; 如果您正在使用, 也觉得我说得没错, 还望您帮忙推广一下. 感激!

          本程序最近正在使用C++完全重构, github上面的源代码无法通过编译~~
      敬请期待最新版本!
     

          微云你就一坑货, 说了的链接永久有效呢?


          源代码:https://github.com/movsb/common.git

      声明:本软件为开源软件,绝对不包含任何对系统不利的代码,对于360的那种行为,我不想说什么.

      软件界面:
      
      

    -------------------------------------------------------------------------------------------------------------------------

        说明: 更新信息可能不会再更新到这里, 请到GitHub上面查看.


      更新:
    2014-07-07:
        ①优化:接收数据时,如果最后一个字符是'\r'或'\n',则会在一定时间内等待接收所有'\r','\n'字符,避免导致读取'\r\n'可能造成的两次换行
        ②更改:除已经提到的那三种情况, 还有使用'\r\n\r'三个字符作为换行符使用的, 已增加支持

    2014-07-07:
        ①修复:回车换行字符'\r','\n','\r\n'均能达到换行效果
        ②修复:一开始"忽略回车"等无法点击问题
        ③优化:简化对数据中包含'\0'的数据的处理
        ④增加:简洁界面模式时把工具栏放到左边
        ⑤更改:只显示接收区按下的"回车"字符为"<Enter>",其它不显示
        ⑥增加:接收区增加一个"清空数据"菜单

    2014-07-06 1.17:
        ①增加:允许从接收区输入字符并发送(更友好的类交互模式)
        会显示的字符包括:
          ' '     <Space>
          '\b'   <Backspace>
          '\t'   <Tab>
          '\r'   <Enter>


      感觉输入效果还不错:

        ②更改:更改了字符接收区/发送区的字体为Consolas等宽字体,不再使用原来的Courier字体
        ③增加:简洁模式 - 此模式下大部分界面元素会被隐藏, 有时候这样更舒服
        见上图所示, 左下角为"简洁模式"开关, 开启简洁模式后就像上图, 是不是很简洁?
        ④增加:主窗口的自动界面布局(允许拖动改变窗口大小,控件坐标自动调整)
        ⑤更改:默认使用的模式改为:字符接收+字符发送

    2014-07-05 1.16 (未对外发布):
        ①字符接收数据时,增加对控制字符Backspace的支持(即'\b'),效果就是向前删除一个字符
        
        ②修复一处中文检测错误(原来是对的, 不知道什么时候改错了
        ③删除了窗体大小调整(下个版本即将使用自动布局)


    2014-03-03 1.15:
      更新:支持手动输入非标准波特率
      改进:增加了几个功能快捷键,比如Alt+S为发送,....
      优化:修正:如果接收缓冲区有未显示的数据,则会在按下继续显示时进行提示,而不是原来的在接收到下一次的数据时进行提示;
      
        
    2013-11-02 1.14:
       更新:修改了原来的命令发送模式的界面,现在变得更加友好了
         如下图, 先选择要发送的命令列表文件:
           choose_file.png
        点击打开, 将会打开如下界面:
          interface.png

          1.上面的代码是我测试蓝牙芯片用到的命令列表文件, 点击"发送命令"就会发送对应的一条命令
           2.16进制还是原来的要求, 2个一组即可; 对于字符数据:默认开启转义字符功能, 比如 '\n' 就代表换行,
            支持字符型转义字符有6个, \n,\r,\\,\t,\a,\v,\b, 那些可见的字符不需要转义, 比如引号,问号...
            支持的16进制转义字符格式:\x??  - 其中, 一个?代表一个16进制字符, 以上4个字符组成一个16进制值,缺一不可
          3.文本框中的数据可以在发送时随时修改,回车键可看到效果, (但修改的内容目前不能更新到原来的本地文件上)
          4.注意到数据类型后面的"双击改变"几个字样, 也就是说通过双击, 可以改变那条命令的解析格式
          5.数据大小是指最终要被发送的数据的大小, 而不是转义前的大小
        
        命令文件的格式举例:
            C:初始化SPP库:at+init\r\n
            C:查询任意访问码的蓝牙设备:at+iac=9e8b33\r\n
            C:查询设备类为0x1f1f的蓝牙设备:at+class=1f1f\r\n
            C:设置查询模式:at+inqm=1,9,48\r\n
            C:过滤,查询周边蓝牙设备:at+inq\r\n
            H:16进制测试:12 45 67 4f

          分为3部分组成, 两者之间用冒号隔开:
            第1部分:C或者H(大写), 代表数据是16进制还是字符数据
            第2部分:命令的名字
            第3部分:数据对应的数据

      BUG修复:
        上一个版本在发送数据前忘记检查串口是否已经打开了, 已修复~
    ----------------------------------------------------------------------------------------------------------
    2012-12-24 1.0.0.0:
        发布第1个版本
    2012-12-26:
        自动识别当前存在,插入,移除的串口号
    2013-01-11 1.0.0.1:
        增加保存接收区数据到文件(16进制/文本形式)
        增加从文件读数据到发送区(16进制/文本形式)
        增加暂停显示功能
        增加复制发送/接收区数据到剪贴板
    2013-01-18 1.0.0.2:
        修复:文本文件,16二进制文件读取错误
        修复:程序内部缓冲区满后使程序进入死循环
        修复:文本字符方式显示接收的数据时产生不正确的换行符的错误,若要产生换行符, 请使用"\n"
    2013-02-08 1.0.0.3:
        内部程序作了许多的优化工作,包含数据的发送方式等
        修复接收数据时鼠标在接收区的文本选择造成的干扰
    2013-02-14 1.0.0.4:
        增加显示出0~127号ASCII对应8,10,16进制功能
    2013-02-24 1.0.0.5,今天元宵节:
        更改原来的1~64串口列表到自动检测计算机上的可用串口
    2013-02-27 1.0.0.6:
        若发送文本,则自动发送被自动取消(若自动发送选项已打开)
        在显示模式下不允许对接收区数据进行选择操作
        提供硬件支持的串口设备设置
        为用户提供串口超时设置
        提供手动设置DTR/RTS引脚电平
    2013-03-01  1.0.0.7:
        修改原计算器(系统)为表达式求值计算器(简单版本)
    2013-03-03:
        添加:<其它>菜单添加<设备管理器>
        修改:在关闭串口后自动发送前面的钩不再自动取消(如果已经选中)
        修改:串口被关闭/移除后串口列表回到第一个串口设备的BUG
    2013-03-04:
        修改:现在在串口列表中可以显示串口在设备管理器中的名字了
        修正:无法显示 MSP430-FETUIF Debugger 的串口号(现在调用SetupApi更新列表)
    2013-03-05:
        为了方便数据的统计与显示,16进制内容与字符内容被显示到不同的编辑框中
    2013-03-09 1.0.0.8:
        修正在使用SetupApi枚举串口设备时未检测并口设备而造成的内存异常访问错误
        减少在某些波特率(如:19200bps)下丢包严重的情况(如:MSP430串口),有时候还是会发生,等待修复.某些软件(如:SComAssistant采用每
    次只读一个字节的办法效果还行, 就是速度有点慢. 我改成了WaitCommEvent函数调用了(原来是Pending ReadFile),减少了CPU占用(有些串口驱动并不总是支持同步操作.
        以前只管ReadFile+输出nRead字节,这里错误,ReadFile并不保证读取到要求的数据量后才返回,这里会导致严重丢包,WriteFile亦然.
        速度减慢,但数据更完整
    2013-03-10 1.0.0.9:
        修正:因为在格式化字符串的最后少写了一句 *pb = '\0',导致接收区数据显示错误!
      修复:对utils.hex2chs和add_text作了大量修改,大大减少数据丢包,貌似没有丢包?,细节处理参见源程序
      1.0.0.8版本因为内部原因速度严重减慢, 1.0.0.9回到原来的快速!
    2013-03-18:
        更正:若为字符显示方式,16进制方式保存不被允许,因为格式基本上不满足!
    2013-03-23 1.10:
        添加:工作模式中,右键点击接收区字符文本框可以使能中文显示模式(不推荐),由于中文字符由
        两个字节构成,所以:一旦在某一次接收过程中只
    接收到了中文字符的一个字节,那么数据就会显示出错, 这个无法避免, 所以建议尽量不使能中文显示模式.
        修正:用C语言的人们都习惯使用'\n'作为换行符,我也这样使用,
    但偏偏Windows的编辑框以'\r\n'作为换行符,没有办法,我不得
    不把所有的'\n'换成'\r\n',效率必然会下降,而且我不得不计算出
    \n的个数先 --> 为了计算所需缓冲区的大小.
        添加:现在可以显示出还未被发送出去的数据计数.
        添加:新增计时器,打开串口后开始计时,关闭后停止计时.
    2013-03-25:
        修正:大大减少中文乱码的问题.细节处理见代码.
        增加:字符串转16进制数组功能,工具菜单里面.

    2013-04-04:
        修正:无法复制接收区字符文本的BUG.
        小提示:在选择串口时,如果没有任何可用的串口,则进行提示更新.
    2013-04-07:
        修改:完全修改了utils.str2hex的实现,大大增加了16进制输入的灵活性.
    现在的要求:每个16进制值由两个相邻字符组成,无其它限制.(以前是2个相邻字符+一个空格)
    2013-04-11:
        发送字符数据时,对于换行,只发送'\n',不再发送'\r\n',注意:结尾的'\0\'不被发送!
    2013-04-13:
        修正:更改发送与接收方式为异步方式.
        添加:简单波形显示.
    2013-04-23:
        修正:发送与接收方式改回同步方式!坑~
        修正:当发送操作达到100次时无法继续发送的BUG!
        修改:优化内部线程同步机制,避免程序停止工作(失去响应)!
        优化:优化自动发送数据的方式,提高精度,减小内存/CPU占用!
        小提示:在加载/保存文件时,若不清楚打开/保存方式,可以查看简单的帮助信息!
    2013-05-11:明天母亲节
        修正:终于找到一个比较好的办法来处理自动发送用到的重复数据了,呵呵,时间下限减少到10ms
    2013-07-05:
        临时修正:选择从文件加载并取消后, 串口号选择的ComboBox会消失不见,不知道原因,临时已解决
    2013-07-14:
        改进:程序内部改进内存分配算法,避免因程序错误造成内存泄漏
    2013-07-20 1.12:
    2013-09-10 1.13 今天教师节:
         增加:现在可以手动编写待发送的命令文件,并发送命令了 - 在发送文件时选择 命令文件, 格式见博客后面的介绍
         增加:字符发送模式下,可以选择取消回车换行符的发送,可以选择插入转义字符
            1.支持的字符型转义字符:
                \r,\n,\t,\v,\a,\b,\\
            2.支持的16进制转义字符格式:
                \x?? - 其中一个问号代表一个16进制字符, 不可省略其一,
                必需保证4个字符的格式
            3.'?',''','"', 等print-able字符不需要转义


      女孩不哭 @ 2012-12-27 14:47:59 @ http://www.cnblogs.com/memset
     

  • 相关阅读:
    使用jQuery操作DOM(ppt练习)
    使用jQuery操作dom(追加和删除样式-鼠标移入移出)练习
    Serializable接口
    过滤选择器(接上)
    内容过滤选择器
    基本过滤选择器
    IO流
    C语言打印100到200之间的素数
    续上篇结尾应用异或关系改变两个变量的值
    将两个整型变量的值互换的方法
  • 原文地址:https://www.cnblogs.com/memset/p/common.html
Copyright © 2020-2023  润新知