Next: Byte Packing, Previous: Misc Network, Up: Processes [Contents][Index]
Emacsはシリアルポートと対話できます。インタラクティブなM-x
serial-termの使用にたいしては端末ウィンドウをオープンして、Lispプログラムmake-serial-processにたいしてはプロセスオブジェクトを作成します。
シリアルポートはクローズと再オープンなしで実行時に設定することができます。関数serial-process-configureによりスピード、バイトサイズ、およびその他のパラメーターを変更できます。serial-termで作成された端末ウィンドウではモードラインをクリックして設定を行うことができます。
シリアル接続はプロセスオブジェクトとして表されて、サブプロセスやネットワークプロセスと同様の方法で使用できます。これによりデータの送受信やシリアルポートの設定ができます。しかしシリアルプロセスオブジェクトにプロセスIDはありません。それにたいしてシグナルの送信はできずステータスコードは他のタイプのプロセスオブジェクトとは異なります。プロセスオブジェクトへのdelete-process、またはプロセスバッファーにたいするkill-bufferは接続をクローズしますが、そのシリアルポートに接続されたデバイスに影響はありません。
関数process-typeはシリアルポート接続を表すプロセスオブジェクトにたいするシンボルserialをリターンします。
シリアルポートはGNU/LinuxやUnix、そしてMS Windowsのシステムで利用できます。
新たなバッファー内でシリアルポートにたいする端末エミュレーターを開始する。portは接続先のシリアルポートの名前。たとえばUnixではこれは/dev/ttyS0のようになるだろう。MS WindowsではCOM1や\\.\COM10のようになるかもしれない(Lisp文字列ではバックスラッシュは2重にすること)。
speedはビット毎秒でのシリアルポートのスピード。一般的な値は9600。そのバッファーはTermモードになる。このバッファーで使用するコマンドについてはTerm
Mode in The GNU Emacs
Manualを参照のこと。モードラインメニューからスピードと設定を変更できる。line-modeが非nilならterm-line-mode、それ以外はterm-raw-modeを使用する。
この関数はプロセスとバッファーを作成する。引数はキーワード/引数ペアーで指定する。以下は意味のあるキーワードのリストで、最初の2つ(portとspeed)は必須:
:port portこれはシリアルポートの名前。UnixやGNUシステムでは/dev/ttyS0のようなファイル名、WindowsではCOM1、COM9より高位のポートでは\\.\COM10のようになるかもしれない(Lisp文字列ではバックスラッシュは2重にすること)。
:speed speedビット毎秒でのシリアルポートのスピード。この関数はserial-process-configureを呼び出すことによりスピードを操作する。この関数の更なる詳細については以降のドキュメントを参照のこと。
:name nameそのプロセスの名前。nameが与えられなければportがプロセス名の役目も同様に果たす。
:buffer bufferそのプロセスに関連付けられたバッファー。値はバッファー、またはそれがバッファーの名前であるような文字列かもしれない。出力を処理するために出力ストリームやフィルター関数を指定しなければ、プロセス出力はそのバッファーの終端に出力される。bufferが与えられなければ、そのプロセスバッファーの名前は:nameキーワードから取得される。
:coding codingcodingはこのプロセスにたいする読み書きに使用されるコーディングシステムを指定する。codingがコンス(decoding
.
encoding)なら読み取りにdecoding、書き込みにはencodingが使用される。指定されない場合のデフォルトはデータ自身から判断されるコーディングシステム。
:noquery query-flagプロセスqueryフラグをquery-flagに初期化する。Query Before Exitを参照のこと。未指定の場合のフラグのデフォルトはnil。
:stop boolboolが非nilならstoppedの状態でプロセスを開始する。stopped状態ではシリアルプロセスは入力データを受け付けないが出力データの送信は可能。stopped状態のクリアーはcontinue-process、セットはstop-processで行う。
:filter filterプロセスフィルターとしてfilterをインストールする。
:sentinel sentinelプロセスセンチネルとしてsentinelをインストールする。
:plist plistプロセスの初期plistとしてplistをインストールする。
:bytesize:parity:stopbits:flowcontrolこれらはmake-serial-processが呼び出すserial-process-configureにより処理される。
後の設定により変更され得るオリジナルの引数リストは関数process-contactを通じて利用可能。
以下は例:
(make-serial-process :port "/dev/ttyS0" :speed 9600)
この関数はシリアルポート接続を設定する。引数はキーワード/引数ペアーで指定する。与えられない属性はそのプロセスのカレントの設定(関数process-contactを通じて利用可能)から再初期化されるか、妥当なデフォルトにセットされる。以下の引数が定義されている:
:process process:name name:buffer buffer:port port設定するプロセスを識別するために、これらの引数のいずれかが与えられる。これらの引数が何も与えられなければカレントバッファーのプロセスが使用される。
:speed speedビット毎秒、別名ボーレート(baud
rate)によるシリアルポートのスピード。値には任意の数字が可能だが、ほとんどのシリアルポートは1200から115200の間の数少ない定義済みの値でのみ機能して、もっとも一般的な値は9600。speedがnilなら、この関数は他のすべての引数を無視してそのポートを設定しない。これは接続を通じて送信された‘AT’コマンドでのみ設定可能な、Bluetooth/シリアル変換アダプターのような特殊なシリアルポートで有用かもしれない。speedにたいする値nilはmake-serial-processかserial-termの呼び出しにより、すでにオープン済みの接続にたいしてのみ有効。
:bytesize bytesizeビット/バイトでの数値で7か8を指定できる。bytesizeが与えられない、またはnilの場合のデフォルトは8。
:parity parity値にはnil (パリティなし)、シンボルodd (奇数パリティ)、シンボルeven
(偶数パリティ)を指定できる。parityが与えられない場合のデフォルトはパリティなし。
:stopbits stopbits各バイトの送信を終了するために使用されるストップビットの数値。stopbitsには1か2が可能。stopbitsが与えられない、またはnilの場合のデフォルトは1。
:flowcontrol flowcontrolこの接続にたいして使用するフロー制御のタイプでnil (フロー制御を使用しない)、シンボルhw
(RTS/CTSハードウェアフロー制御)、シンボルsw
(XON/XOFFソフトウェアフロー制御)のいずれか。flowcontrolが与えられない場合のデフォルトはフロー制御なし。
シリアルポートの初期設定のためにmake-serial-processは内部的にserial-process-configureを呼び出す。