トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

ゼミのお話/ロボット工学者養成所/一覧/シリアル通信によるデバイス制御/プログラム骨子の説明 の変更点

-12行目
--#define SERIAL_PORT     "/dev/ttyAM1"
---今回使用するシリアルインターフェース
-21行目
--fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY);
---シリアルインターフェースを"fd"の名前で使えるようにする.
-28-32行目
--struct termios oldtio, newtio
---非同期通信ポートを制御するための汎用ターミナルインタフェース(ここではシリアルポート)の設定を司る変数.詳しくは後ほど説明.
--tcgetattr(fd, &oldtio);
---シリアルインターフェース"fd"から,現在の設定を読み込みoldtioに保存
--newtio = oldtio
---現在の設定をnewtioにコピー.以後,newtioの設定を変え,tcsetattr(fd,&newtio)などでシリアルインターフェース"fd"の設定変更を行う.最後にtcsetattr(fd, TCSANOW, &oldtio)にてシリアルインターフェース"fd"を初期の設定に戻す.大まかな流れは後ほど説明.
-38-39行目
--cfsetispeed(&newtio, B115200);
---newtioの中の入力に関する通信速度の設定
--cfsetospeed(&newtio, B115200);
---newtioの中の出力に関する通信速度の設定
-42行目
--cfsetspeed(&newtio, B115200);
---36-38行目と同じことをしている.こちらは入出力を一度に設定している.
-45-46行目
--tcflush(fd, TCIFLUSH);
---シリアルインターフェースの送受信データをクリア
~tcsetattrの実行のために必要.
--tcsetattr(fd, TCSANOW, &newtio);
---newtioを用いてシリアルインターフェース"fd"を設定.
-51行目
--write(fd, buf , sizeof(buf));
---シリアルインターフェース"fd"にsize(buf)分のデータbufを送信
-54-55行目
--tcsetattr(fd, TCSANOW, &oldtio);
---シリアルインターフェース"fd"を初期の設定(oldtio)に戻す
--close(fd);
---シリアルインターフェースと名前"fd"の繋がりを開放.