通信制御命令

初めに一言…。

この章で説明する命令は使ったことないですし、わけあって使えないので間違ってる所があるかと思います。

その部分は「間違ってるぞ!」とお声をいただけると嬉しいです。

通信の制御に関する命令を使用するにはまずcomopenでポートを初期化する必要があります。

comopenでシリアル・パラレルポート番号を指定して通信可能な状態にすると、

最後には必ずcomcloseでポートの解放する必要があります。

comcloseを忘れて終了してしまうと、他のソフトで使用不能のままとなりますので絶対解放をしてください。

p1にポート番号を指定します。パラレルポートは0を、シリアルは1〜4を指定する(のでしょう...)。

…とパラレルは1〜4と書きましたが、COM1〜4ポートで実際に使われるのはCOM1,COM2だけです。

p2はプロトコルの指定で、下記のように指定します。

「ボーレート(baud) パリティビット(parity) データビット(data) ストップビット(stop)」。

ボーレートとは、1秒間に送信する0or1のデジタル信号数(bit)です。1200bpsだと1200/1秒となります。

パリティビットは送信データのエラーチェックの有無を指定します。

データビットは5〜8を利用するようですがすいませんがコレは良くわかってないです(^^;

ストップビットはデータの最後を表わすものです。

comopenのプロトコルですが普通はいじらなくてよいかと思います。

かと言って何も書かないのではなく「""」とダブルクォートだけ書いて空を明示してあげましょう。

…ということで初期化はコレくらいで置いておいて送受信に入ります。

まずはポートからデータ(文字列)の受信について説明します。

comgetではp2で指定した1〜64バイトを受信する事が出来、p1の変数に文字列が返ります。

comgetccomgetの1バイト限定型で、p1の変数に文字列が返ります。

それぞれ成功するとstatに受信サイズが入ります。0で空だったことを表します。

送信する方の命令computcomputcも上の送信版で、ほぼ同じかと思います。p2はないですけどね。

結果として返ってくるstatですが、0だった場合送信に失敗だったこと示します。

成功だと受信と同じく、送信したバイト数が入ります。

#include "hspext.as"
	sdim data,32
	objsize 80,25
	pos 200,100 : input data,240
	pos 360,150 : button "送信",send
	comopen 1,"baud=1200 parity=N data=8 stop=1"
	if stat : dialog "COM1 open error !",1 : end
	onexit *exit
	stop

*send
	if data=="" : stop
	comput data+"\r" ; 復帰コード付加
	if stat==0 : dialog "communication failure !" : else : dialog "transmitting success !"
	stop

*exit
	comclose
	end

実験できないのでわかりませんがコレで「atd電話番号」をモデムに送ればターミナルとなるそうです…。

それでは。