Palm Programmer's Laboratory
Palm OS Programmer's Companion Volume II/5-5
5-5 接続マネージャ
接続マネージャは、アプリケーションが接続プリファレンスパネルに含まれる接続プロファイルにアクセスしたり追加や削除をしたりできるようにします。Palm OS の初期リリースでは、モデムプリファレンスパネルがありました。接続パネルはモデムパネルの替わりです。この変更により、いろいろな接続(シリアルケーブル、赤外線、モデム、ネットワーク、など)をユーザが利用できるようになりました。
接続マネージャは、さまざまな接続形式の設定を保存する接続プロファイルを管理するために、接続パネルと同時に紹介されました。接続プロファイルは 特定の接続で使用されるハードウェアポートにおける情報やポートの詳細(速度、フローコントロール、モデム初期化文字列)、その他適切な情報を含みます。
接続マネージャは全ての Palm デバイスで利用できるわけではありません。接続マネージャをコールする前にそれが存在することを確認しなければいけません。もし接続マネージャフィーチャセット?が存在するなら、接続マネージャの拡張バージョンが利用できます。この拡張接続マネージャにより、携帯電話との通信を指定するプロファイルや、Bluetooth デバイスとの通信を指定するプロファイルが使えるようになります。それは更に拡張することができ、必要であればあなた固有のプロファイルパラメータを作成できます。
- 注
- 接続マネージャは Bluetooth 接続をサポートしますが、Bluetooth は追加のハードウェアとソフトウェアを必要とし、これを書いている時点ではそれは利用できません。
基本接続マネージャでプロファイルを作成するとき、各プロファイルパラメータは CncAddProfile 関数のパラメータとして渡されます。同様に、プロファイルの情報を要求するとき、各プロファイルパラメータは CncGetProfileInfo の出力パラメータで渡されます。
より新しく、拡張された接続マネージャは、基本接続マネージャより多くの種類の接続をサポートします。また、より多くの種類のプロファイルパラメータもサポートします。これにより、一つのパラメータで Listing 5.10 を使ってプロファイル情報を検索することができます。
Listing 5.10 ポート情報の検索
UInt16 dataSize; UInt32 portCreator; dataSize = kCncParamPortSize; err = CncProfileSettingGet(profileID, kCncParamPort, &portCreator, &dataSize);
プロファイルを作成するために、最初にユニークなプロファイル ID を入手してから、CncProfileCloseDB にあるように閉じるためにプロファイルパラメータを一つずつセットします。これらは必要とされるコールではありません。もし明示的にデータベースを開いたり閉じたりしなければ、各接続マネージャ関数はデータベースを開き、その仕事を行ない、データベースを閉じます。一連の接続マネージャコールの前に CncProfileOpenDB をコールし最後に CncProfileCloseDB をコールすることで、各関数がデータベースを開いたり閉じたりするオーバーヘッドを抑えることができます。
Listing 5.11 接続プロファイルの作成
// Open the Connection Manager profile database; err = CncProfileOpenDB(); // obtain new profile ID. err = CncProfileCreate(&profileId); if (!err) { // Create a name for the profile. err = CncProfileSettingSet(profileId, kCncParamName, myProfileName, StrLen(myProfileName)+1); // Set some other required parameters. port = serPortLocalHotSync; err = CncProfileSettingSet(profileId, kCncParamPort, &port, kCncParamPortSize); baud = 57600; err = CncProfileSettingSet(profileId, kCncParamBaud, &baud, kCncParamBaudSize); deviceKind = kCncDeviceKindSerial; err = CncProfileSettingSet(profileId, kCncParamDeviceKind, &deviceKind, kCncParamDeviceKindSize); } // close the profile database. err = CncProfileCloseDB();
拡張接続マネージャ API でも、接続内でユニークなプロファイルパラメータを作成できます。それには、CncDefineParamID マクロを使います。詳細は、Palm OS Programmer's API Reference を参照して下さい。