【解決方法】SerialPort クラスと SAS プロトコル。

プログラミングQA

[ad_1]

こんにちは、

カジノゲーム機用の小さなSASプロトコルエミュレータを作成しようとしています。 私はプロジェクトの開始段階にあり、C# については少し初心者です。

SerialPort クラスについてたくさん読みましたが、それが私のニーズを満たすかどうかわかりません。

rs232 でゲーム機と通信する方法の一部を次に示します。

「ホストとゲーム マシン間の通信は、 モードで 19.2k ボーで動作するシリアル データ リンクを通じて行われます。11 ビットのデータ パケットは、1 つのスタート ビット、8 つのデータ ビット、9 番目の「ウェイクアップ」ビット、および 1 つのストップで構成されます。少し”

「ウェイクアップ モードでは、ホストはメッセージの最初のバイトをゲーム マシンに送信するたびに、9 番目の (ウェイクアップ) ビットを設定します。メッセージ内のすべての追加バイトについては、このビットはクリアされます。ゲーム マシンはウェイクアップ ビットを使用して決定します。受信したバイトが新しいメッセージの最初のバイトであるか、現在のメッセージの追加バイトであるか

「ゲーム機は、ループ ブレーク状態を報告する場合を除き、ホストに応答するときにすべてのバイトのウェイクアップ ビットをクリアします…」

「注: ウェイクアップ モードを直接サポートしていない UART/DUART の場合は、ウェイクアップ ビットの代わりにパリティ ビットを使用できます。」

SerialPort クラスについて読んだとき、バイト単位でメッセージを送信できる関数がいくつかありました。 しかし、ウェイクアップ モードで最初のバイトをどのように作成できるのかわかりません。 または、バイト内のパリティを自由に変更します。 fontion がすべて自分でやってくれると思います。

これを行うには独自のクラスを作成する必要があるかもしれません。 それとも、SerialPort クラスで同様のことを試した人はいますか?

何か問題はありますか?

マーティン

解決策 1

使用
ボーレート = 19200;
データビット = 8;
パリティ = パリティ.マーク;
StopBits = StopBits.One;
ハンドシェイク = ハンドシェイク。なし。
DtrEnable = false;
RtsEnable = false;
DiscardNull = false;

[ad_2]

コメント

タイトルとURLをコピーしました