C萼口通信プログラムの例を詳しく説明する。
System.IO.Portsの名前空間で一番重要なのはSerialPort類です。
C〓〓〓シリアルポート通信プログラムの作成のためのSerialPortオブジェクト
SerialPortオブジェクトを作成することで、シリアル通信の全プロセスをプログラムで制御することができます。
私たちが使うSerialPortのような方法:
ReadLine():入力バッファから新しい行の値を読んで、もしないなら、NULLWriteLineに戻ります。出力バッファOpenに書き込みます。新しいシリアル接続Closeを開きます。():クローズします。
SerialPort sp = new SerialPort ();
デフォルトでは、DataBits値は8、StopBitsは1、通信ポートはCOM 1です。これらは下の属性で再設定できます。BaudRate:シリアルポートの波特率StopBits:各バイトの停止ビット数ReadTimeout:読み取り動作が完了していない場合の停止時間。単位、ミリ秒は他にも多くの公共属性があります。自分でMSDNを調べます。
C〓〓〓のシリアルポートの通信のプログラムのシリアルポートのハードウェアの知識を創建します。
データ伝送の際、各バイトのデータは単一のケーブルで伝送される。パケットは開始ビットを含み、データは終了します。スタートビットが流れると、後からデータが流れます。5、6、7位か8位かもしれません。設定次第です。送信と受信は同じ波数率とデータビット数を設定しなければならない。
C〓〓〓を創建して口の通信のプログラムの猫のモードがありません
Modemモードのないケーブルは、単純に転送と受信線を交差させるだけです。DTR&DSRも、RTS&CTSと交差する必要があります。ここで、私たち三本の線があります。2と3を相互接続し、両端の5 pinを接続する。
C萼口通信プログラムの例を作成します。
デフォルトの属性を使いたいなら、「Save Stuts」ボタンを押して、属性を変えたいなら「Property」を押します。設定が終わったら、通信できます。
メインウィンドウのコード
#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.IO.Ports;
#endregion
namespace Serialexpample
{
partial class Form1 : Form
{
//create instance of property page
//property page is used to set values for stop bits and
//baud rate
PropertyPage pp = new PropertyPage();
//create an Serial Port object
SerialPort sp = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void propertyButton_Click(object sender, EventArgs e)
{
//show property dialog
pp.ShowDialog();
propertyButton.Hide();
}
private void sendButton_Click(object sender, EventArgs e)
{
try
{
//write line to serial port
sp.WriteLine(textBox.Text);
//clear the text box
textBox.Text = "";
}
catch (System.Exception ex)
{
baudRatelLabel.Text = ex.Message;
}
}
private void ReadButton_Click(object sender, EventArgs e)
{
try
{
//clear the text box
textBox.Text = "";
//read serial port and displayed the data in text box
textBox.Text = sp.ReadLine();
}
catch (System.Exception ex)
{
baudRatelLabel.Text = ex.Message;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
MessageBox.Show("Do u want to Close the App");
sp.Close();
}
private void startCommButton_Click(object sender, EventArgs e)
{
startCommButton.Hide();
sendButton.Show();
readButton.Show();
textBox.Show();
}
//when we want to save the status(value)
private void saveStatusButton_Click_1(object sender, EventArgs e)
{
//display values
//if no property is set the default values
if (pp.bRate == "" && pp.sBits == "")
{
dataBitLabel.Text = "BaudRate = " +
sp.BaudRate.ToString();
readTimeOutLabel.Text = "StopBits = " +
sp.StopBits.ToString();
}
else
{
dataBitLabel.Text = "BaudRate = " +
pp.bRate;
readTimeOutLabel.Text = "StopBits = " + pp.sBits;
} // C#
parityLabel.Text = "DataBits = " +
sp.DataBits.ToString();
stopBitLabel.Text = "Parity = " +
sp.Parity.ToString();
readTimeOutLabel.Text = "ReadTimeout = " +
sp.ReadTimeout.ToString();
if (propertyButton.Visible == true)
propertyButton.Hide();
saveStatusButton.Hide();
startCommButton.Show();
try
{
//open serial port
sp.Open();
//set read time out to 500 ms
sp.ReadTimeout = 500;
}
catch (System.Exception ex)
{
baudRatelLabel.Text = ex.Message;
}
}
}
}
Cバイト通信プログラムの属性設定ダイアログコードを作成します。
#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
#endregion
namespace Serialexpample
{
partial class PropertyPage : Form
{
//variables for storing values of baud rate and stop bits
private string baudR = "";
private string stopB = "";
//property for setting and getting baud rate and stop bits
public string bRate
{
get
{
return baudR;
}
set
{
baudR = value;
}
}
public string sBits
{
get
{
return stopB;
}
set
{
stopB = value;
}
}
public PropertyPage()
{
InitializeComponent();
}
private void cancelButton_Click(object sender, EventArgs e)
{
this.bRate = "";
this.sBits = "";
//close form
this.Close();
}
private void okButton_Click_1(object sender, EventArgs e)
{
//here we set the value for stop bits and baud rate.
this.bRate = BaudRateComboBox.Text;
this.sBits = stopBitComboBox.Text;
//
this.Close();
}
}
}
C((zhi)シリアルポート通信プログラムの作成に関する内容をここに紹介します。C(zhi)シリアルポート通信プログラムを作成する手順と注意すべき事項を知ってほしいです。