■オプションポート15はパソコンで言うところのシリアルポートに該当します。
非同期のシリアル通信を行う汎用ポートで、このポートを利用してパソコンとの接続(CE-150TS などのレベルコンバータを利用)、モデムユニットの接続(CE-FMx)、デジタル携帯電話アダプタ(CE-DAx)の接続、ザウルス同士を接続(CE-400L) が行えます。
Windows 95に付属しているハイパーターミナルやWindows 3.1 のターミナルを使っても簡単に通信できますので、興味のある方は以下の設定を行って通信で得られるデータを覗いてみて下さい。
■Windows 95 のアクセサリ ハイパーターミナルの設定
- ハイパーターミナルを起動します。
- 接続の設定で適当な名前の入力とアイコンを選択します。
- 電話番号の入力の接続方法の入力で、Com X へダイレクトを選択します。
このとき選択する、Comm XはCE-150TS等を接続しているシリアルポートの名前(番号)です。- ポートの設定では、ビット/秒を指定します。
ビット/秒はザウルスのメニューに3回タッチしてオプションにタッチすると表示される、オプションポート15条件設定で選択できる転送スピードと同じです。
パソコン、ザウルスとも19200 にセットすればOKです。
また、フロー制御の項目はXon/Xoffにセットしておきます。
ここまで設定すると、ハイパーターミナルの画面が受信待ちの状態になります。
■Windows 3.1 のアクセサリ ターミナルの設定
- ターミナルを起動します。
- メニューの設定の中の通信条件の設定を選択します。
- シリアルポートはCE-150TS等を接続しているポートを選択します。
- 通信速度はハイパーターミナルと同じようにザウルスの設定に合わせて設定します。
- フロー制御はXon/Xoffを選択します。
ここまで設定すると、ターミナルの画面が受信待ちの状態になります。
◆データを受信してみる
- ザウルスとパソコンを接続し、ザウルス側は適当な画面を表示します。
- メニューに3回タッチし、オプションの中のオプションポート15での通信を選択します。
- 送信選択で、1データ送信を選択し、実行にタッチします。
- "I","SCRT","CLAS","MEM1","PRF1","CLSC"
"T","シークレット","ファイル名","自由帳内容","印字形式","分類コード"
"D"," ","まると","転送用テストデータ・ザウルスのレポートデータはこのようなデータ構造になっています。・",," "
このデータ例はレポートのデータを受信したものです。◆受信データを保存してみる
- 転送メニューの中のテキストファイルの受信を選択します。
- ファイル名の入力ボックスが表示されますので、適当な名前を入力します。
- 「制御コードを残す」という項目にチェック(v)を入れます。
- データ受信の方法でザウルスのデータを受信します。
- ザウルス側の送信が完了したら、ターミナルの中止をクリックします。
この作業によりザウルスから送信されたデータがファイルに保存されます。
◆保存したデータを送信してみる
●ターミナルの場合
- ザウルスを受信状態にします。
メニューに3回タッチ:オプション:オプションポート15での通信を選択し、受信選択で追加受信を選択ます。- 実行にタッチします。
- ターミナルの転送メニューの中のテキストファイルの送信を選択します。
- ファイル名の入力ボックスが表示されますので保存したファイルを指定します
- 行末の設定で、「LFを取り除く」にチェック(v)を入れます。
- OKボタンをクリックすると送信が始まります。
- 送信完了後、コントロールキー(Ctrl)を押しながら"Z"キーを押します。
(こうしないと送信が終わったと言う意味のEOF(文字コード1AH)が送信されないためです)
このようにオプションポート15による通信は特に専用プログラムを用意しなくても、一般的な通信ソフトでもできてしまいます。
■オプションポート15による通信のための専用プログラムを作る場合
受信に関しては、受信バッファを監視してデータが入っていれば読み出してファイルに出力するだけで大丈夫です。(ただし、適切にフロー制御を行う必要があります)
送信に関しては、少々タイミングを気にする必要があります。
◆フローコントロール
パソコンの送信速度に比べ、ザウルスの速度は遅く、かなりの頻度でXon/Xoffが発生します。
そのため、送信側でフロー制御を適切に行わないと送信バッファがオーバーフローしてデータの欠落を招く場合があります。
◆ブロック間ウエイト
通常の機能データに関しては気にする必要は無いのですが、バックアップデータ(PABACK形式)をザウルスに送信する際はデータブロック単位で約1秒のウエイトをおく必要があります。
これは転送したデータをザウルス内で各機能のためのデータに復元する必要があるためです。
もし、このウエイトを置かないとザウルス側で通信エラーになります。
◆EOF の付加
機能別通信の場合、全データの転送後1秒ウエイトを置きEOF(1AH)を送信します。
この場合も、ザウルス側の処理待ち時間があるらしく、即時EOF 送信を行うと通信エラーになる場合があります。
◆制御コードの存在
データをファイル化する場合、テキスト扱いではなくバイナリ扱いで処理して下さい。
データ中に制御コードに該当する文字(0x1Fなど)が含まれている場合があります。