送信をするには?

[マスタ側]

BYTE Srbuf[10];

 

Cmd[0] = 2;                        //リスナの数+1(ここではリスナは1台)

   Cmd[1] = TalkerAdrs;               //データを送信する機器アドレス(自分自身のアドレス)

   Cmd[2] = ListenerAdrs;                //データを受信する機器アドレス

Ret = GpTalk(Cmd, Srlen, Srbuf);   //Srlen = データの長さ:Srbuf = データが格納されているバッファ

 

[スレーブ側]

BYTE Srbuf[10];

 

Cmd[0] = 0;                        //マルチラインメッセージは無いのでこのように記述します。

Ret = GpTalk(Cmd, Srlen, Srbuf);   //Srlen = データの長さ:Srbuf = データが格納されているバッファ

 

image\Line.gif

説明:送信を行うには大変なプログラムを書かなければいけないと思うかもしれませんが、実際には数行で済んでしまいます。流れとしてはマスタ、リスナの指定、送信データは何かを記述するだけです。まずは配列Cmdを作成します。

Cmd[0] = 2;               //リスナの数+1(ここではリスナは1台)

Cmd[1] = TalkerAdrs;      //データを送信する機器アドレス(自分自身のアドレス)

Cmd[2] = ListenerAdrs;    //データを受信する機器アドレス

もしリスナが2台であればCmd[3]を追加し、Cmd[0] = 3にすればいいことになります。

 

次に送信部分ですがGpTalk関数を使います。GpTalk関数の記述は次のようになっています。

GpTalk(Cmd, Srlen, Srbuf);

はじめのRetはGpTalkの戻り値が入ってきます。GpTalk関数の中は1番目の引数では配列Cmdの先頭のアドレスを指定します。

Srlenの値はSrbufに代入したデータ数(バイト数)を超えないように注意してください。超えてしまった場合には相手機器に対し無効なデータを送ってしまったり、プログラムが不測の動作をする場合があります。

以上で送信の作成は終りです。