c#串口通讯问题 刚接了任务,要调用另一家公司写的485接口,直接向学校的门锁下发白名单和接收返回值和谁刷了卡的winform程序。由于一直是搞B/S开发,winform的没怎么搞过(还要考虑点对点还是TCP方式) 分只有那么多了!求高手指导 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C# 的 Serialport 对象 用来实现串口通信 ,去MSDN查查SerialPort的相关资料吧! 最近写的一个类,using System;using System.Collections.Generic;using System.Text;using System.Threading;using System.IO.Ports;namespace Common{ public class SerialPortWrapper : IDisposable { private System.IO.Ports.SerialPort serialPort; #region serial port properties private int _baudRate; public int BaudRate { get { return _baudRate; } set { _baudRate = value; } } private System.IO.Ports.Parity _parity; public System.IO.Ports.Parity Parity { get { return _parity; } set { _parity = value; } } private System.IO.Ports.StopBits _stopBits; public System.IO.Ports.StopBits StopBits { get { return _stopBits; } set { _stopBits = value; } } private int _dataBits; public int DataBits { get { return _dataBits; } set { _dataBits = value; } } private string _portName; public string PortName { get { return _portName; } set { _portName = value; } } private System.IO.Ports.Handshake handshake; public System.IO.Ports.Handshake _Handshake { get { return handshake; } set { handshake = value; } } #endregion private string receivedData; public string ReceivedData { get { return receivedData; } set { receivedData = value; } } private Communication.Request receivedRequest; public Communication.Request ReceivedRequest { get { return receivedRequest; } set { receivedRequest = value; } } private string requestString; public string RequestString { get { return requestString; } set { requestString = value; } } public SerialPortWrapper() { receivedData = string.Empty; } public bool OpenPort() { try { if (serialPort == null) { serialPort = new System.IO.Ports.SerialPort(this.PortName, this.BaudRate, this.Parity, this.DataBits, this.StopBits); serialPort.Handshake = this.handshake; serialPort.ReceivedBytesThreshold = 1; serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); } if (!serialPort.IsOpen) { serialPort.Open(); } } catch (Exception e) { } return serialPort.IsOpen; } void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; byte[] buf = new byte[sp.BytesToRead]; sp.Read(buf, 0, buf.Length); //string dataReceived = sp.ReadExisting(); string dataReceived = new System.Text.UTF8Encoding().GetString(buf); receivedData += dataReceivedHex; } public bool Send(byte[] data) { try { if (serialPort != null) { if (serialPort.IsOpen) { serialPort.Write(data, 0, data.Length); return true; } } } catch (Exception ex) { } return false; } #region IDisposable Members public void Dispose() { if (serialPort != null) { if (serialPort.IsOpen) { serialPort.Close(); } serialPort.Dispose(); } } #endregion }} 他们应该有接口的,还有demo 是不是直接引用他们提供的.dll文件就可以了 扫描RFID问题 由于目标机器积极拒绝,无法连接 Stream sw = request.GetRequestStream报错怎么屏蔽掉呀? web应用程序如何调用本地电脑中的Winform 程序?? 一个非常奇怪而有意思的错误,让我哭笑不得 服务程序“异常捕捉”的问题,急用。。。 简单的c#程序 那位兄弟有ASP(C#).NET+SQL SERVER 2000的三层结构的OA,给小弟来一份.谢谢了!!!!!!!!! C# web form 如何调用mediaplay Google地图标记自定义图标 C# 控制台输出菱形图案 进程问题 C#可枚举的接口(IEnumerable)
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.IO.Ports;
namespace Common
{
public class SerialPortWrapper : IDisposable
{
private System.IO.Ports.SerialPort serialPort; #region serial port properties
private int _baudRate;
public int BaudRate
{
get { return _baudRate; }
set { _baudRate = value; }
} private System.IO.Ports.Parity _parity;
public System.IO.Ports.Parity Parity
{
get { return _parity; }
set { _parity = value; }
} private System.IO.Ports.StopBits _stopBits;
public System.IO.Ports.StopBits StopBits
{
get { return _stopBits; }
set { _stopBits = value; }
} private int _dataBits;
public int DataBits
{
get { return _dataBits; }
set { _dataBits = value; }
} private string _portName;
public string PortName
{
get { return _portName; }
set { _portName = value; }
} private System.IO.Ports.Handshake handshake; public System.IO.Ports.Handshake _Handshake
{
get { return handshake; }
set { handshake = value; }
}
#endregion private string receivedData; public string ReceivedData
{
get { return receivedData; }
set { receivedData = value; }
} private Communication.Request receivedRequest; public Communication.Request ReceivedRequest
{
get { return receivedRequest; }
set { receivedRequest = value; }
} private string requestString; public string RequestString
{
get { return requestString; }
set { requestString = value; }
} public SerialPortWrapper()
{
receivedData = string.Empty;
} public bool OpenPort()
{
try
{
if (serialPort == null)
{
serialPort = new System.IO.Ports.SerialPort(this.PortName, this.BaudRate, this.Parity, this.DataBits, this.StopBits);
serialPort.Handshake = this.handshake; serialPort.ReceivedBytesThreshold = 1; serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
} if (!serialPort.IsOpen)
{
serialPort.Open();
}
}
catch (Exception e)
{
} return serialPort.IsOpen;
} void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
byte[] buf = new byte[sp.BytesToRead];
sp.Read(buf, 0, buf.Length);
//string dataReceived = sp.ReadExisting(); string dataReceived = new System.Text.UTF8Encoding().GetString(buf); receivedData += dataReceivedHex;
} public bool Send(byte[] data)
{
try
{
if (serialPort != null)
{
if (serialPort.IsOpen)
{
serialPort.Write(data, 0, data.Length);
return true;
}
}
}
catch (Exception ex)
{
} return false;
} #region IDisposable Members public void Dispose()
{
if (serialPort != null)
{
if (serialPort.IsOpen)
{
serialPort.Close();
} serialPort.Dispose();
}
} #endregion
}
}