データの送受信にCOM4シリアルポートを使用しています。私は要求が来ている - 私は要求がmydatastring = myrequeststringであることを確認する - これは正常に動作します。このイベントハンドラ中にcomポート経由でデータに返信しようとしていますが、もちろんアクセスは拒否されています。私の要求を受けてからデータを送信するにはどうすればいいですか?シリアルポート受信中にデータを送信イベント
void scScale_OnReceiving(object sender, DataStreamEventArgs e)
{
if(e.Response == myrequeststring)
{
scScale.Transmit(this.data);
}
}
EDIT scScaleの
関連部分 - それはSERIALPORTクライアントクラスでは、 - 基本的にSERIALPORTの詳細をカプセル化します。
関連するコード:
public bool OpenConn()
{
try
{
if (_serialPort == null)
_serialPort = new SerialPort(_port, _baudRate, Parity.None);
if (!_serialPort.IsOpen)
{
_serialPort.ReadTimeout = -1;
_serialPort.WriteTimeout = -1;
_serialPort.Open();
if (_serialPort.IsOpen)
{
serThread.Start(); /*Start The Communication Thread*/
IsOpen = true;
}
else
{
IsOpen = false;
}
}
}
catch (Exception ex)
{
return false;
}
return true;
}
public void Transmit(string packet)
{
_serialPort.Write(packet); // 0, packet.Length);
}
public void Transmit(byte[] packet)
{
_serialPort.Write(packet, 0, packet.Length);
}
public int Receive(byte[] bytes, int offset, int count)
{
int readBytes = 0;
if (count > 0)
{
readBytes = _serialPort.Read(bytes, offset, count);
}
return readBytes;
}
private void OnSerialReceiving(byte[] res)
{
if (OnReceiving != null)
{
OnReceiving(this, new DataStreamEventArgs(res));
}
}
SCSCALEがリンクでこのコード..です https://roofman.wordpress.com/2012/09/13/fast-serial-communication-for-c-real-time-applications/
送信者はシリアルポートですか?もしそうならキャストして代わりに使ってみてはどうですか? – Peter4499
scScaleとは何ですか?標準のWindowsシリアルポートには、Transmitメソッドがありません。 – dbasnett
@dbasnett - 関連するコードをいくつか追加しました。基本的にシリアルポートのカプセル化です。 – Ken