0

アプリケーションに必要なシリアルポート機能を処理するシリアルポートライブラリを作成するように依頼されました。ライブラリのメソッド openComportToTuneSuite ()がメインのWindowsフォームから呼び出され、 comport.DataReceived時に「 portMessageReceivedFromTuneSuite」メソッドを割り当てるなど、通信用にシリアルポートが設定されます。イベントが発生します。すべてがうまく機能しているようです。ただし、DataReceivedメソッド(以下のコード内の「_response」)から返されたデータをメインのウィンドウフォームに表示する方法を解決できません。このメソッドは、ライブラリ内にEventHandlerを設定した結果として呼び出され、メインのWindowsフォームからの特定のメソッド呼び出し(応答を返すことができる)の結果ではないため、_responseが返送される機会はありません。アプリケーションに。

誰かが、サポートライブラリからメインウィンドウフォームに呼び出されたDataReceivedメソッドから受信したデータを表示する方法について正しい方向に私を導いてくれませんか?

ライブラリメソッド

 public string openComportToTuneSuite()
    {    
       _tuneSuiteComport.BaudRate = 19200;
       _tuneSuiteComport.DataBits = 8;
       _tuneSuiteComport.StopBits = StopBits.One;
       _tuneSuiteComport.Parity = Parity.None;
       _tuneSuiteComport.PortName = "COM11";
       _tuneSuiteComport.Handshake = Handshake.None;
       _tuneSuiteComport.RtsEnable = true;
       _tuneSuiteComport.Open();
       _tuneSuiteComport.DataReceived += portMessageReceivedFromTuneSuite;
    }


   private void portMessageReceivedFromTuneSuite(object sender, SerialDataReceivedEventArgs e)
    {
        string _response = "";
        var responseFromChronos = _tuneSuiteComport.ReadExisting();
        var responseArray = responseFromChronos.Split('\r');
        foreach (var response in responseArray)
        {
            _response = _response + response.ToString() + Environment.NewLine;
        }
        //return _response;
        return;
    }
4

0 に答える 0