昨天想试试霍尼韦尔的扫码枪,扫码枪有两种模式,键盘模式和串口模式,
1、键盘模式直接插上就行了,就像一个键盘一样不需要任何驱动,扫出来的数据直接落到PC的输入焦点上。就像一个键盘一样,只能输入字符。
2、而串口模式,则是安装驱动以后,能够虚拟成一个COM口,
如果我们用扫码枪给应用程序输入数据的时候肯定是不行的,因为程序需要能够在后台运行的时候也能用扫码枪作为数据输入的。这就需要用串口模式了。
今天我写程序的时候,问题是怎么也不能触发,DataReceived事件,最后发现问题所在,几个要点
1、串口必须New新实例,必须和能够正确获取硬件串口的名称。
2、sp.ReceivedBytesThreshold = 1; 这个是默认值就是1,就是有一个字节的数据就触发事件。
3、sp.RtsEnable = true;sp.DtrEnable = true;这两个属性必须得正确设置,哈
我就是因为第3个原因一直不不能正确触发事件。记得添加事件绑定代码啊。
public partial class Form1 : Form
{
SerialPort sp;
bool bIsReading = false;
// Dynamic d = new Dynamic();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
bool b = false;
try
{
sp = new SerialPort();
sp.BaudRate = 115200;
sp.DataBits = 8;
sp