WinCE SerialPort

直接上代码

窗体加载
1 private void Form1_Load( object sender, EventArgs e)
2 {
3 serialPort1.PortName = " COM3 " ;
4 serialPort1.BaudRate = 9600 ;
5 serialPort1.DataBits = 8 ;
6 serialPort1.Open();
7 if (serialPort1.IsOpen)
8 {
9 serialPort1.PortName + " 端口已打开 "
10 }
11 else
12 {
13 serialPort1.PortName + " 端口打开 失败 "
14 }
15 }
SerialPort DataReceived
private void serialPort1_DataReceived( object sender, SerialDataReceivedEventArgs e)
{
System.Threading.Thread.Sleep(
120 );
int bytes = serialPort1.BytesToRead;
byte [] buffer = new byte [bytes];
if (bytes == 0 )
{
return ; }
serialPort1.Read(buffer,
0 , bytes);
RfidLoad(ByteToStr(buffer));
}
委托
public void RfidLoad( string msg)
{
this .Invoke( new EventHandler( delegate
{
try
{
if ( ! string .IsNullOrEmpty(msg))
{
if ( ! listBox1.Items.Contains(msg))
{
listBox1.Items.Add(msg);
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}));
}
转换
public string ByteToStr( byte [] value)
{
string item = string .Empty;
if (((value.Length > 8 ) && (value.Length >= ((((value[ 4 ] >> 3 ) + 1 ) * 2 ) + 4 ))) && ((((value[ 2 ] & 0x7f ) == 0x10 ) || ((value[ 2 ] & 0x7f ) == 0x11 )) && (value[ 3 ] != 1 )))
{
int num = ((value[ 4 ] >> 3 ) + 1 ) * 2 ;
bool flag = false ;
for ( int i = 0 ; i < num; i ++ )
{
if ( ! flag)
{
if (value[ 4 + i] == 0xff )
{
flag
= true ;
}
else
{
item
+= Convert.ToString(( int )(value[ 4 + i] >> 4 ), 0x10 ) + Convert.ToString(( int )(value[ 4 + i] & 15 ), 0x10 );
}
}
else
{
flag
= false ;
item
+= Convert.ToString(( int )(value[ 4 + i] >> 4 ), 0x10 ) + Convert.ToString(( int )(value[ 4 + i] & 15 ), 0x10 );
}
}
}
if ( ! string .IsNullOrEmpty(item))
{
return item.ToUpper().Substring( 4 , 24 );
}
return item;
}


转载于:https://www.cnblogs.com/macheal/archive/2011/06/11/2078545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值