private void Form1_Load(object sender, EventArgs e)
{
var s = SerialPort.GetPortNames().OrderBy(r => r);
foreach (var item in s)
{
comCOM.Items.Add(item);
}
if (comCOM.Items.Count > )
comCOM.SelectedIndex = ; var rates = new object[] { , , , , , , };
comBaudRate.Items.AddRange(rates);
comBaudRate.SelectedIndex = ; txtDataBits.Text = ""; var paritys = Enum.GetNames(typeof(Parity));
comParity.Items.AddRange(paritys);
comParity.SelectedIndex = ; var stops = Enum.GetNames(typeof(StopBits));
comStopBits.Items.AddRange(stops);
comStopBits.SelectedIndex = ;
} private void btnOpen_Click(object sender, EventArgs e)
{
ClostCom();
toolInfo.Text = string.Empty;
try
{
serialPort1.PortName = comCOM.Text;
serialPort1.BaudRate = Math.Max(, ConvertHelper.ToInt(comBaudRate.Text));
serialPort1.DataBits = Math.Max(, ConvertHelper.ToInt(txtDataBits.Text));
serialPort1.Parity = (Parity)Enum.Parse(typeof(Parity), comParity.Text);
serialPort1.StopBits = (StopBits)Enum.Parse(typeof(StopBits), comStopBits.Text);
serialPort1.Open();
toolComState.BackColor = Color.Green;
txtInfo.Text = DateTime.Now.ToString("HH:mm") + " 打开串口成功!\r\n";
}
catch (Exception ex)
{
toolInfo.Text = "打开串口失败!";
txtInfo.Text = DateTime.Now.ToString("HH:mm") + " 打开串口失败:" + ex.Message + "\r\n";
}
} private void ClostCom()
{
try
{
serialPort1.Close();
toolComState.BackColor = SystemColors.Control;
}
catch { }
} private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep();
byte[] buffer = new byte[serialPort1.ReadBufferSize];
int len = serialPort1.Read(buffer, , buffer.Length); Invoke((MethodInvoker)delegate
{
toolInfo.Text = string.Empty;
if (txtInfo.Lines.Length > )
txtInfo.Text = string.Format("{0} {1} 接收到:{2}", DateTime.Now.ToString("HH:mm"), serialPort1.PortName, GetByte(buffer, len));
else
{
var s = txtInfo.Text;
txtInfo.Text = string.Format("{0} {1} 接收到:{2}\r\n{3}", DateTime.Now.ToString("HH:mm"), serialPort1.PortName, GetByte(buffer, len), s);
}
});
} private string GetByte(byte[] buffer, int len)
{
StringBuilder sb = new StringBuilder();
for (int i = ; i < len; i++)
{
var item = buffer[i];
sb.Append(item.ToString("x2") + " ");
}
sb.AppendLine();
sb.Append(Encoding.Default.GetString(buffer));
sb.AppendLine();
return sb.ToString();
}

有个 BUG:文本框始终只有一行内容。

虚拟串口工具下载:下载地址

[转][SerialPort]测试用例的更多相关文章

  1. TFS 测试用例步骤数据统计

    TFS系统集成了一套BI系统,基于SQL Server的Analysis Service进行实现的.通过这几年的深入使用,能够感触到这个数据数据仓库模型是多么的优秀,和微软官方提供的数据仓库示例Adv ...

  2. 如何使用RobotFramework编写好的测试用例

    如何使用Robot Framework编写优秀的测试用例 概述 命名 测试套件命名 测试用例命名 关键字命名 setup和teardown的命名 文档 测试套件文档 测试用例文档 用户关键字文档 测试 ...

  3. Vertica 导出数据测试用例

    需求:构建简单的测试用例,完成演示Vertica导出数据的功能. 测试用例:导出test业务用户t_jingyu表中的数据. 一.初始化测试环境 二.导出数据 2.1 vsql命令说明帮助 2.2 导 ...

  4. Appium简单测试用例

    工程目录如下: 封装初始化androiddriver 方法 import org.openqa.selenium.remote.DesiredCapabilities; import java.io. ...

  5. SerialPort 串口开发

    private SerialPort sPort = new SerialPort(); //串行端口资源 /// <summary> /// 函数功能:打开串口/关闭串口 /// < ...

  6. C#SerialPort如何读取串口数据并显示在TextBox上

    SerialPort中串口数据的读取与写入有较大的不同.由于串口不知道数据何时到达,因此有两种方法可以实现串口数据的读取.一.线程实时读串口:二.事件触发方式实现. 由于线程实时读串口的效率不是十分高 ...

  7. qunit 前端脚本测试用例

    首先引用qunit 测试框架文件 <link rel="stylesheet" href="qunit-1.22.0.css"> <scrip ...

  8. [注意]SerialPort操作PCI-1621D多串口卡,出现异常"参数不正确"

    开发LED大屏显示.40-20mA模拟量输出的时候,经常要与串口打交道.但是Windows自带的SerialPort串口操作组件貌似兼容性 不是太好,或是SerialPort本身有BUG,在操作PCI ...

  9. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

随机推荐

  1. HTML学习笔记01(标签)

    <html> <head> <meta charset = "utf-8"> <!--字符集编码设置-->   <title& ...

  2. Docker CE安装

    #添加账户docker useradd docker passwd docker (密码docker) #设置sudo权限 visudo root ALL=(ALL) ALL 后添加一行: docke ...

  3. cocos2dx翻牌效果示例

    实现类似翻扑克牌的效果 代码如下: OrbitCamera* rotate1; OrbitCamera* rotate2; if(towardRight){//向右翻转 rotate1=OrbitCa ...

  4. JVM 性能调优 -Xmx、-Xms、-Xss

    1. -Xmx  设置应用程序(不是JVM)内存可用大小 ( 如果程序要花很大内存的话,可以修改缺省配置,但是不能超过机器的内存),即最大可用Heap的大小. 2. -Xms  设置初始Heap的大小 ...

  5. 博客作业06--结构体&指针

    1.本章学习总结 1.1思维导图 1.2.本章学习体会 结构体突破了数组的局限,把不同类型有内在联系的数据汇聚成一个整体,这种新的构造数据类型,提供了更便利的手段,更好的实现代码功能.通过代码建立文件 ...

  6. Linux常用文件操作命令

    一.进入文件夹  格式:cd [目录名称]  常用选项: cd /  进入当前目录 cd .. 返回上一级目录.  cd ../.. 将当前目录向上移动两级.  cd - 返回最近访问目录. 二.显示 ...

  7. [Java Web学习]JDBC事务处理

    1. Spring中加入数据库的bean <bean id="dataSource" class="org.apache.commons.dbcp.BasicDat ...

  8. QT5.10+VS2013 TCP 一对一简单C/S架构通信

    ---恢复内容开始--- QT~俺老孙又回来啦~ 买的那本书上面关于tcp的内容就七八页,而且都是过于简单的东西,想进一步就要度娘很久很麻烦,还是喜欢看书(嘿嘿嘿~) 大致的思路就是两个项目,一个cl ...

  9. IIC详解

    (1)概述 I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距 ...

  10. 关于笔记本安装parrot和kali的一些问题(花屏,息屏,屏幕不能休眠)

    新入手了个笔记本,还是想跟原来一样装回熟悉的kali环境中,结果我的天啊,这一路坑,简直了. 写下我遇到的问题吧,算是给大家提供一些解决方法. 1.安装kali和parrot出现无法引导的grub的情 ...