プログラミング言語「ドリトル」

大阪電気通信大学 兼宗研究室

ユーザ用ツール

サイト用ツール


ch_protchcommunication

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
ch_protchcommunication [2019/03/15 16:13]
klab 作成
ch_protchcommunication [2019/03/16 03:22] (現在)
klab
ライン 1: ライン 1:
  
-## 文字のやりとり +ブリッジモードによるPC間通信プログラミング 
- プロッチを2台使うこで文字を送ることきる。文字の送受信はシリアルオブジェクトの**出力**文字を送信し**読む**で送信された文字を取得でき。プロッチ2台を繋ぐためには、ジャンパワイヤーなどの通信コード使。パソコンの接続は下図のように行う +プロッチを2台をブリッジ装置して利用することで、パソコン間で、文字情報による通信をができます
-{{:​pasted:​protch_chat_pc.jpg}}+
  
- ジャンパーワイヤーの配線についてようにすればよい +## 1)準備 
-{{:​pasted:​protch_chat.png}}+下記の手順で、パソコンとプロッチ同士を接続する。 
 +  - プロッチ2台をジャンパワイヤーなどで接続する。ジャンパーワイヤーの配線は下通り。{{:​pasted:​protch_chat.png}} 
 +  - ジャンパーワイヤーで接続したプロッチをUSBケーブルでパソコンと接続する。{{:​pasted:​protch_chat_pc.jpg}} 
 + 
 +  
 +## 2)一方通行の文字の送受信 
 + ここでは、メッセージを送信するコンピュータ(送信側PC)と、送信されたメッセージを受信するコンピュータ(受信側PC)に分け、 
 +それぞれのプログラムを作成する。 
 + 
 + 
 +### メッセージを送信する(送信側PC) 
 +メッセージの送信には、「通信端子」オブジェクトに対して**送信**を使う。 
 +下記は、「こんにちは」を送信するプログラムである。
  
-### メッセージを送信する 
- メッセージの送信には、シリアルオブジェクトの**出力**を使う。次のプログラムでは、「こんにちは」を送信している。 
 <​code>​ <​code>​
 システム! "​protchrm"​ 使う。 システム! "​protchrm"​ 使う。
ライン 17: ライン 26:
 </​code>​ </​code>​
  
-### メッセージを受信する + 
- メッセージの受信には、シリアルオブジェクトの**読む**を使う。取得した文字をラベルに書くことでドリトルの実行画面で確認できる。+### メッセージを受信する(受信側PC) 
 +メッセージの受信には、シリアルオブジェクトの**受信**を使う。 
 +取得した文字をラベルに書くことでドリトルの実行画面上に、受信したデータを表示することができる。 
 <​code>​ <​code>​
 システム! "​protchrm"​ 使う。 システム! "​protchrm"​ 使う。
ライン 30: ライン 42:
 プロッチ!転送。 プロッチ!転送。
 </​code>​ </​code>​
 +
  
 **シリアルオブジェクトの命令一覧** **シリアルオブジェクトの命令一覧**
 ^命令^機能^ ^命令^機能^
-|出力|文字を出力します| +|送信|相手に文字(メッセージ)を出力します| 
-|読む|された文字を取得します|+|受信|相手から最後に受た文字(メッセージ)を取得します|
  
-### チャットプログラム + 
- のプログラムでは、フィールドオブジェクト書い文字プロッチの左スイッッチの下により送信している。+### (応用例1)チャットプログラム 
 +送信と受信のプログラムを組み合わせることで、チャットアプリのような双方向のやりとりをするプログラムを作ることができる。\\ 
 +ここでは、下記のようなチャットプログラム(protch%%_%%chat.dtl)を作成する。 
 + 
 +{{:​pasted:​protch_serial2.png}} 
 + 
 +①のフィールドに相手に送りい内容を記述し、「送信」ボタンを押すことでその内容を送信る。\\ 
 +②には相手から受信しメッセージを表示する。 
 + 
 +上記のチャットアプリを実現するプログラムが下記となる。
  
 <​code>​ <​code>​
ライン 43: ライン 65:
 最初に実行=「 最初に実行=「
   送信フィールド=フィールド! 作る。   送信フィールド=フィールド! 作る。
-  受信エリア=テキストエリア! 作る。+  送信ボタン=ボタン!”送信”作る。 
 +  受信エリア=スト! 作る。 
 +  送信ボタン:動作=「通信端子!(送信フィールド!読む)送信」
 」。 」。
  
 繰り返し実行=「 繰り返し実行=「
-  「(左スイッチ接触?)=はい」!なら「 +  受信値=通信端子! 受信。 
-    端子! (フィールド! 読む)送信+  受信値!=””」! なら「 
 +    エリア! ()書く。
   」実行。   」実行。
 +」。
 +
 +プロッチ!転送。
 +</​code>​
 +
 +
 +
 +### (応用例)自動応答装置?
 +次のプログラム(protch%%_%%serial1.dtl)では、フィールドオブジェクトに書いた文字をプロッチの左スイッッチの押下により送信している。また、「危険」の文字が送られてきた場合に、LEDが点灯し、ピーポーと危険を通知する。
 +
 +<​code>​
 +システム!"​protchrm"​使う。
 +最初に実行=「
 +  送信フィールド=フィールド! 作る。
 +  送信ボタン=ボタン!”送信”作る。
 +  受信エリア=リスト! 作る。
 +  送信ボタン:動作=「通信端子!(送信フィールド!読む)送信」。
 +」。
 +
 +繰り返し実行=「
   受信値=通信端子! 受信。   受信値=通信端子! 受信。
   「受信値!=””」! なら「   「受信値!=””」! なら「
     受信エリア! (受信値)書く。     受信エリア! (受信値)書く。
 +  」実行。
 +
 +  「受信値=="​危険"​」!なら「
 + 左ライト!点灯。
 + 右ライト!点灯。
 + ブザー!”シ~ソ~シ~ソ~”演奏。
 + 左ライト!消灯。
 + 右ライト!消灯。
   」実行。   」実行。
 」。 」。
 +
 プロッチ!転送。 プロッチ!転送。
 </​code>​ </​code>​
- 上記のプログラムを実行すると下図のような実行画面が現れる。①はフィールドに記述した文字を「送信」ボタンを押すことで送信する。②は送られてきた文字が書かれる。 
  
-{{:​pasted:​protch_serial.png}}+ 
 +### (応用例)入退室状況管理 
 +次のプログラム(protch%%_%%serial2.dtl)左スイッチを押すと、「時間」と「来た」を送信し、右スイッチを押すと「時間」と「出た」を送信する。 
 + 
 + 
 +<​code>​ 
 +//​送信側のプログラム 
 +システム!"​protchrm"​使う。 
 +最初に実行=「 
 +    動作表示=ラベル!作る。 
 +」。 
 + 
 +繰り返し実行=「 
 +  「(左スイッチ!接触?)==はい」!なら「 
 +    動作表示!”左スイッチを押しました。”書く。 
 +    通信端子! ((システム!時刻?)+"​に来ました!"​)送信 
 +  」実行。 
 +  「(右スイッチ!接触?)==はい」!なら「 
 +    動作表示!”右スイッチを押しました。”書く。 
 +    通信端子! ((システム!時刻?)+"​に出ました!"​)送信 
 +  」実行。 
 +」。 
 +プロッチ!転送。 
 +</​code>​ 
 + 
 +<​code>​ 
 +//​受信プログラム 
 +システム!"​protchrm"​使う。 
 +最初に実行=「 
 +  受信エリア=リスト! 作る。 
 +」。 
 + 
 +繰り返し実行=「 
 +  受信値=通信端子! 受信。 
 +  「受信値!=””」! なら「 
 +    受信エリア! (受信値)書く。 
 +  」実行。 
 +」。 
 +プロッチ!転送。 
 + 
 +</​code>​
ch_protchcommunication.1552634015.txt.gz · 最終更新: 2019/03/15 16:13 by klab