1
でサーバー側のシリアルポートからデータを送受信する方法サーバー側のシリアルポートからコマンドを送受信するasp.net mvc 5でプログラムを開発しようとしています。実際には、サーバーに接続されたハードウェアがあり、このハードウェアにコマンドを送信し、その応答を取得したいと考えています。asp.net mvc
これは、私がデータを送信するために使用する方法である:
public static void SendData(string data)
{
SerialPort port = new SerialPort(
"COM5", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.Write(data);
port.Close();
}
、これが私の方法で受信です:
public static void ReceiveData()
{
if (port != null && port.IsOpen)
port.Close();
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
port.Open();
}
public static void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int dataLength = port.BytesToRead;
byte[] data = new byte[dataLength];
int nbrDataRead = port.Read(data, 0, dataLength);
if (nbrDataRead == 0)
return;
Taxi.Controllers.ReceiveController.Decision(System.Text.Encoding.UTF8.GetString(data));
}
私は私の受信方法に問題があるし。ハードウェアが文字列を送信するたびに、インデックスビューで最後の文字が表示されます。 投稿された文字列のすべての文字を受け取る受信メソッドをどのように作成できるのでしょうか。
は、あなたが他の人がより良いあなたの質問に答えるために、これまでにしようとしているコードを入力してください。 –
私はそう思います...私は答えにとても近いです。私はこの記事で取り組んでいます。https://web.archive.org/web/20130709121945/http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_- in-C_2300 _-。NET.aspx –
今日の私の答えはあまりにも厳しいです。 – Snoopy