私は現在、Mono 開発のために Delphi Prism を使用しています。したがって、ソフトウェアはクロスプラットフォームであり、主に Linux OS で実行できます。はじめに、ソフトウェアの基本機能であるシリアル通信とネットワーク通信を実装して実行をテストしました。
しかし、Mono のシリアル通信の実装を渡すことができないようです。インターネットやStackoverflowで検索したところ、Linux環境に対応したライブラリや.NETフレームワークはないようです。Stackoverflow で他の人から尋ねられた同様の質問がいくつかありますが、回答は実際にはサンプルを示していません。私はちょっと立ち往生しています。
これは、Mono シリアル通信用に書いたコードです。この1つのWebサイトにアクセスした後。
{$IFDEF LINUX}
if SerialPort1 = nil then
SerialPort1 := new System.Io.Ports.SerialPort();
SerialPort1.Close;
SerialPort1.BaudRate:=19200;
SerialPort1.DataBits:=8;
SerialPort1.DtrEnable:=true;
SerialPort1.Parity:=System.IO.Ports.Parity.Even;
SerialPort1.PortName:="/dev/ttyS0";
SerialPort1.ParityReplace:=63;
SerialPort1.ReadBufferSize:=4096;
SerialPort1.ReadTimeout:=1000;
SerialPort1.RtsEnable:=true;
SerialPort1.StopBits:=System.IO.Ports.StopBits.One;
SerialPort1.WriteTimeout:=1000;
SerialPort1.Open;
while (true) do
begin
CommByte[0]:=$FF;
CommByte[1]:=$04;
CommByte[2]:=$04;
CommByte[3]:=thechannel;
CommByte[4]:=mcommand;
CommByte[5]:=(CommByte[2] xor CommByte[3] xor CommByte[4]);
SerialPort1.Write(CommByte,0,6);
while SerialPort1.BytesToWrite>0 do;
Thread.Sleep(10);
Application.DoEvents;
end;
{$ENDIF}
しかし、Linux でこのコードを実行するたびに、Mono は「要求された機能は実装されていません」というメッセージ ボックスを表示します。理由がわかりません。これはMonoでも可能ですか?
RS232 通信用に Linux のシリアル ポートにアクセスする必要があります。
ありがとう、