完成スクリプト
//プリンタより1バイトの印刷許可用データを受信する。
if([r:EXT_SIO_RECV]==1) //受信格納したデータ数が1のとき
{
_strset(databuf0, "") //データバッファ0を初期化
IO_READ_EX([p:EXT_SIO], databuf0, 1) //データバッファ0へデータ読出し
_dlcopy([w:[#MEMLINK]0100], databuf0, 0, 1)
//内部デバイスにデータバッファ0からの値を格納
}
endif
//印刷許可用データから印刷を開始するかどうかを判断する
if([b:[#MEMLINK]005000]==1 and [b:[#MEMLINK]000100]==0x31) //プリンタ開始スイッチがONかつ
{ //1バイトの印刷許可データが1(ASCII)のとき
Call INIT //通信初期化関数の呼出
Call PINIT //プリンタ初期化関数の呼出
Call Print //印字データ送信、プリンタ開始関数の呼出
clear([b:[#MEMLINK]005000]) //プリンタ開始スイッチOFF
}
endif
if([b:[#MEMLINK]005000]==1 and [b:[#MEMLINK]000100]==0x30) //プリンタ開始スイッチがONかつ
{ //1バイトの印刷許可データが0(ASCII)のとき
clear([b:[#MEMLINK]005000]) //プリンタ開始スイッチOFF
}
endif
動作概要
プリンタ開始ボタン(内部デバイス005000)がONすると、プリンタからの1バイトの印刷許可用データから印刷を開始するかどうかを判断します。
印刷許可用データは、プリンタの仕様例として以下の動作を行うものとします。
印刷準備OK : 0x31(ASCIIコードの“1”)を接続機器に対して送信する。
印刷準備NG : 0x30(ASCIIコードの“0”)を接続機器に対して送信する。
印刷許可用データをdatabuf0に受け取った表示器は、以降のスクリプト処理でこのデータを利用しやすい内部デバイス100に移動させます。
内部デバイス100が0x31(ASCIIコードの“1”)の場合は印刷を開始し、0x30(ASCIIコードの“0”)の場合は始めに戻って0x31のデータを受け取るまでこの処理を繰り返します。