|
|
|||||||||
|
|||||||||
|
|
NW 50 - OT モデムスクリプトエンジンの使い方(更新日: 97 年 7 月 11 日)
Q: 現在、モデムを介してシリアル接続を確立する機能を必要とするソフトウェアを開発しています。ただし、モデムを設定するためにユーザに複雑な AT コマンドの入力を要求したり、CCL パーサを書かせたりするのではなく、ARA や Open Transport/PPP で使用される CCL スクリプトを提供しようと考えています。
A: 現在のところ、Open Transport Modem/Script エンジンへのサードパーティのアクセスに対する公式の SDK またはサポートは用意されていません。ただし、Open Transport API を使ってこの機能にアクセスすることは可能です (しかも非常に容易です)。
|
|
// Opentransport Modem/Script エンジンに対するコンフィギュレーション名 #define kScriptName "Script" // Modem/Script エンジンがインストールされているかどうか確認するには、
// Open Transport ベースの Modem ライブラリに対応する適切な Gestalt セレクタをチェックする #define gestaltOpenTptModem 'otmo' #define gestaltOpenTptModemPresent 0 #define gestaltOpenTptModemVersion 'otmv' #define kGestaltOpenTptModemVersion 0x01000080 // 注意: "stage" バイトに対する有効な値は次のようになる // development = 0x20, alpha = 0x40, beta = 0x60, final & release = 0x80 // 次は、Modem/Script Configurator のエラーコード。その他のコードが Open Transport や // オペレーティングシステムルーチンから返されることもある #define kModemNoError 0 #define kModemOutOfMemory -14000 #define kModemPreferencesMissing -14001 #define kModemScriptMissing -14002 “モデム”コントロールパネル経由でモデムのタイプを手動で設定するか、Modem Configuration 初期設定ファイルを自分でハックする必要があるため、モデム初期設定ファイルの内容を 知っておくことは後々役に立ちます。 // Modem Configuration 初期設定リソースファイルの定数 kModemConfigFileCreator = 'modm', kModemConfigFileType = 'mdpf', kModemConfigVersion = 0x00010000, kModemConfigExportType = 'mdex', kModemScriptType = 'mlts', // ARA 1.0/2.0 と同じ kModemScriptCreator = 'slnk', // ARA 1.0/2.0 と同じ // コンフィギュレーションリソースの定数 kModemConfigTypeModem = 'ccl ', // Modem config リソースのタイプ kModemSelectedConfigID = 1, // リソースの ID kModemSelectedConfigType = 'ccfg', // 現在選択されている CCL の ID kModemConfigNameType = 'cnam', // config name リソースのタイプ kModemConfigTypeLocks = 'lkmd', // lock リソースのタイプ kModemConfigFirstID = 128 // configuration リソースに対する最下位の ID // スクリプトファイル名の最大サイズ。FSSpec の "name" フィールドと同じ kMaxScriptNameSize = 64 // 各国共通のファイル名をリソースフォークから読み込めない場合にだけ使用するファイル名 #define kDefaultModemPrefsFileName "\pModem Preferences" // ダイヤルトーンモード enum { kDialToneNormal = 0, kDialToneIgnore = 1, kDialToneManual = 2 }; // Modem configuration 情報に対応する Modem Configuration // Resource のフォーマット typedef struct { UInt32 version; Boolean useModemScript; FSSpec modemScript; Boolean modemSpeakerOn; Boolean modemPulseDial; UInt32 modemDialToneMode; SInt8 lowerLayerName[kMaxProviderNameSize]; } RAConfigModem;
|
|
---------------------------------------------------------------------------- -- Vinnie Moscaritolo devsupport@apple.com [ Technical Q&A's : Communications & Collaboration : Networking : NW50 ] |
|