近两天开发symbol 扫描枪的驱动程序,经过两天的调研发现,USB口的扫描枪是输入设备,相当于鼠标一样,只要页面上有输入焦点,那么输入设备就会触发keydown事件,在控件的keydown事件事件里的两个参数里就会把上传的数据捕获到。
Byte[] codes = new Byte[512];
Int32 i = 0;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
codes[i] = (Byte)e.KeyValue;
i++;
}
用户的需求是不想切换输入焦点,只要扫描设备就能把数据读取上来并存入数据库,研究了一下RS232的通讯方式,原来232的通信只要设置好通讯方式(通过扫描一维码就设置好了),设备扫描时就会主动将扫描到的一维码主动上传到串口上,通过串口的数据接收事件就能收到数据了,细节是接收事件中以什么方式去接收数据,原来设备还有个可以设置扫描完成后在数据末端加上回车换行的功能,,遂将设备按照说明设置好,这个设备很特殊设置时不用测试软件来设置,只要扫描一下条码就好了,在接收事件的时候按照预先设置好的回车换行结束符去接收数据,圆满完成任务。