2

簡単な書き込みコマンドを使用して、Com5 の内部プリンターに文字列を書き込もうとしています。WriteLine メソッドは正常に出力されますが、Write はそうではありません。以下は、私が呼び出しているコードです。.NET 関数を呼び出すのは単純なラッパー関数です。

  public static void Write(string printString)
  {
     //intialize the com port
     SerialPort com5 = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);
     com5.Handshake = Handshake.XOnXOff;
     com5.Open();

     //write the text to the printer
     com5.Write(printString);
     Thread.Sleep(100);

     com5.Close();
  }

  public static void WriteLine(string printString)
  {
     //intialize the com port
     SerialPort com5 = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);
     com5.Handshake = Handshake.XOnXOff;
     com5.Open();

     //write the text to the printer
     com5.WriteLine(printString);
     Thread.Sleep(100);

     com5.Close();
  }
4

3 に答える 3

1

書かれているかどうかはどうやってわかりますか?もう一方の端がリッスンしているアプリである場合はどうなりますか? CrLfを探していますか?文字列に改行を追加して Write に送信して確認できますか? それが機能する場合は?Coz writeline と write はどちらも、新しい行を除いて同様に機能するはずです。

于 2013-07-16T17:27:14.153 に答える
0

SerialPort オブジェクトは、下位レベルでの読み取りと書き込みに Stream オブジェクトを使用します。プロパティ BaseStream を介してアクセスできます。おそらく、書き込み命令の前にストリームをフラッシュすると、ストリームが強制的に更新されます。

...
//write the text to the printer
com5.Write(printString);
com5.BaseStream.Flush();
Thread.Sleep(100);
...

アリシア。

于 2014-05-22T13:28:35.130 に答える