网上电玩城捕鱼

网上电玩城捕鱼

电玩城捕鱼机公司这点需要特别注意/span{this.Invoke(new MethodInvoker(delegate

作者:apefpi 发布时间:2019-08-15 06:11

正在一个项目中,需要从串口通讯的磁卡读卡器中读取刷卡的卡号,以便后续的业务操作。该刷卡器的型号为:SMR-RU2,运用USB接入电脑,通过USB转串口,Windows会根据USB口分配器固定的串口号。本人运用了.net中自带的SerialPort串口监控控件来读取磁卡读卡器所读取的卡号,下面讲述详尽细节。

运用SerialPort承受串口信号:

起首正在创建一个From,并且正在工具箱中拖入SerialPort控件,正在这里我命名为mySerialPort,并拖进一个TextBox,一遍显示信号数据。

接着初始化SerialPort控件,代码如下:

<span> </span>/// 初始化控件 /// </summary> /// <param></param> private void InitMySerialPort(String portName) { if (mySerialPort != null) { mySerialPort.PortName = portName;//端口号,这里能够电脑曾经连接的COM口,如COM1; mySerialPort.DataBits = 8;//设置每个字节的数据位,正在这里我设置为8位,可认为7位 mySerialPort.DiscardNull = false; mySerialPort.DtrEnable = false; mySerialPort.Handshake = Handshake.None; mySerialPort.Parity = Parity.None; mySerialPort.ParityReplace = Convert.ToByte("63"); mySerialPort.RtsEnable = false; mySerialPort.StopBits = StopBits.One; } if (!mySerialPort.IsOpen) { mySerialPort.Open();//翻初步口,举行监控 } mySerialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);//这个事务为最闭键点,一朝端口收到信号,就会触发该事务,这个事务便是真正读取信号,以便做接下的业务。 }

末了加上承受信号的事务:

public void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { string s = ""; int count = mySerialPort.BytesToRead; byte[] data = new byte[count]; mySerialPort.Read(data, 0, count); foreach (byte item in data) { s += Convert.ToChar(item); } if (this.InvokeRequired)//由于长短创建线程接见<span>textBox1,以是要运用代理句柄。要不然会扔异常,这点需要出格留神</span> { this.Invoke(new MethodInvoker(delegate { this.textBox1.Text = s; })); } else { this.textBox1.Text = s; } }