.Net Com口通信编程例子

        private string _sComPortNumber;
private bool _bFoundPortNumber;
private System.Windows.Forms.Control _oStaticShow;
private System.IO.Ports.SerialPort _oCIMControler;

/// <summary>
/// COM口名
/// </summary>
public string ComPortName { get { return _sComPortNumber; } }
/// <summary>
/// 编码
/// </summary>
public Encoding StringEncoding { get; set; }
/// <summary>
/// 比特率
/// </summary>
public int BaudRate { get; set; }
/// <summary>
/// 数据位
/// </summary>
public int DataBits { get; set; }
/// <summary>
/// 奇偶检验
/// </summary>
public System.IO.Ports.Parity Parity { get; set; }
/// <summary>
/// 停止位
/// </summary>
public System.IO.Ports.StopBits StopBits { get; set; }

private bool OpenPortAndSendMsg()
{
foreach (string tmpName in System.IO.Ports.SerialPort.GetPortNames())
{
foreach (string sCurrentMachinePortNumber in System.IO.Ports.SerialPort.GetPortNames())
{
try
{
if (_bFoundPortNumber == false)
{
System.IO.Ports.SerialPort otmpsp
= new System.IO.Ports.SerialPort();
otmpsp.DataReceived
+= new System.IO.Ports.SerialDataReceivedEventHandler(otmpsp_DataReceived);
otmpsp.PortName
= sCurrentMachinePortNumber;
otmpsp.BaudRate
= this.BaudRate;
otmpsp.DataBits
= this.DataBits;
otmpsp.Parity
= this.Parity;
otmpsp.StopBits
= this.StopBits;
otmpsp.Open();

//写数据************************
otmpsp.Write(new byte[] { 2 }, 0, 1);
string Command = "ST";
otmpsp.Write(Command);
otmpsp.Write(
new byte[] { 3 }, 0, 1);
otmpsp.Write(
new byte[] { 6 }, 0, 1);
otmpsp.Write(
new byte[] { 5 }, 0, 1);
//****************************

System.Threading.Thread.Sleep(
500);

otmpsp.Close();
}
else
{
return true;
}
}
catch (Exception ex)
{
}
}
}
return false;
}

void otmpsp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
System.IO.Ports.SerialPort oSenderObject
= sender as System.IO.Ports.SerialPort;
if (oSenderObject.BytesToWrite > 0)
{
oSenderObject.BaseStream.Flush();
}
int iReadFlag = oSenderObject.BytesToRead;
while (iReadFlag > 0)
{
string sReturn = oSenderObject.ReadExisting();
if (sReturn.Contains(""))
{
_bFoundPortNumber
= true;
_sComPortNumber
= oSenderObject.PortName;
}
iReadFlag
= oSenderObject.BytesToRead;
}
}

转载于:https://www.cnblogs.com/ZC_Mo-Blog/archive/2011/07/18/2109457.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值