メインコンテンツまでスキップ
バージョン: 20 R7 BETA

GET SERIAL PORT MAPPING

GET SERIAL PORT MAPPING ( numArray ; nameArray )

引数説明
numArrayInteger arrayポート番号の配列
nameArrayText arrayポート名の配列

説明

GET SERIAL PORT MAPPING コマンドはマシンのシリアルポート番号とシリアルポート名を、2つの配列numArraynameArrayに返します。

Mac OS Xでは、USBシリアルアダプターの使用時に、OSがポート番号を動的に割り当てるため、このコマンドが役立ちます。シリアルポートの実際のIDとは関係なく、その名前(固定)を用いてシリアルポートを取り扱うことができます。

Note: このコマンドは標準ポートでは、意味ある値を返しません。標準ポートを使用する場合は、SET CHANNELコマンドに旧方式である0または1のポート番号を指定してください。

例題

このプロジェクトメソッドは、割り当てられたシリアルポート番号に関係なく同じシリアルポートを取得するために使用できます:

 ARRAY TEXT($arrPortNames;0)
 ARRAY LONGINT($arrPortNums;0)
 var $vPortNum;$vFinalPortNum : Integer
 
  // シリアルポートの現在の番号を取得
 GET SERIAL PORT MAPPING($arrPortNums;$arrPortNames)
 $vPortNum:=Find in array($arrPortNames;vPortName)
  // vPortName には使用するポートの名前が格納されている;
  // この値はダイアログで設定したり、フィールドに格納されている
 If(arrPortNums{$vPortNum}=0)
    $vFinalPortNum:=0 // macOS 環境下での特殊なケース
 Else
    $vFinalPortNum:=arrPortNums{$vPortNum}+100
 End if
 SET CHANNEL($vFinalPortNum;params) // params には通信パラメタが格納されている
 ... // 処理を実行
 SET CHANNEL(11) // ポートを閉じる

参照

SET CHANNEL