[[← 69 章に戻る|Palm OS Programmer's API Reference/69]] [[↑トップへ|Palm OS Programmer's API Reference]] [[71 章に進む →|Palm OS Programmer's API Reference/71]] ---- {{anchor top}} この章の索引 *{{goto シリアル マネージャ データ構造体,シリアル マネージャ データ構造体}} **{{goto DeviceInfoType,DeviceInfoType}} **{{goto SrmCtlEnum,SrmCtlEnum}} **{{goto SrmOpenConfigType,SrmOpenConfigType}} *{{goto シリアル マネージャ定数,シリアル マネージャ定数}} **{{goto Port Constants,Port Constants}} **{{goto Serial Capabilities Constants,Serial Capabilities Constants}} **{{goto Serial Settings Constants,Serial Settings Constants}} **{{goto Status Constants,Status Constants}} **{{goto Line Error Constants,Line Error Constants}} *{{goto シリアル マネージャ関数,シリアル マネージャ関数}} **{{goto SrmClearErr,SrmClearErr}} **{{goto SrmClose,SrmClose}} **{{goto SrmControl,SrmControl}} **{{goto SrmCustomControl,SrmCustomControl}} **{{goto SrmExtOpen,SrmExtOpen}} **{{goto SrmExtOpenBackground,SrmExtOpenBackground}} **{{goto SrmGetDeviceCount,SrmGetDeviceCount}} **{{goto SrmGetDeviceInfo,SrmGetDeviceInfo}} **{{goto SrmGetStatus,SrmGetStatus}} **{{goto SrmOpen,SrmOpen}} **{{goto SrmOpenBackground,SrmOpenBackground}} **{{goto SrmPrimeWakeupHandler,SrmPrimeWakeupHandler}} **{{goto SrmReceive,SrmReceive}} **{{goto SrmReceiveCheck,SrmReceiveCheck}} **{{goto SrmReceiveFlush,SrmReceiveFlush}} **{{goto SrmReceiveWait,SrmReceiveWait}} **{{goto SrmReceiveWindowClose,SrmReceiveWindowClose}} **{{goto SrmReceiveWindowOpen,SrmReceiveWindowOpen}} **{{goto SrmSend,SrmSend}} **{{goto SrmSendCheck,SrmSendCheck}} **{{goto SrmSendFlush,SrmSendFlush}} **{{goto SrmSendWait,SrmSendWait}} **{{goto SrmSetReceiveBuffer,SrmSetReceiveBuffer}} **{{goto SrmSetWakeupHandler,SrmSetWakeupHandler}} *{{goto シリアル マネージャ アプリケーション定義関数,シリアル マネージャ アプリケーション定義関数}} **{{goto WakeupHandlerProcPtr,WakeupHandlerProcPtr}} ---- !!!70 シリアル マネージャ この章はシリアル マネージャ API のための参照資源を提供します。 *{{goto シリアル マネージャ データ構造体,シリアル マネージャ データ構造体}} *{{goto シリアル マネージャ定数,シリアル マネージャ定数}} *{{goto シリアル マネージャ関数,シリアル マネージャ関数}} *{{goto シリアル マネージャ アプリケーション定義関数,シリアル マネージャ アプリケーション定義関数}} ヘッダ ファイル {{span style='color:blue;font-family:monospace;',SerialMgr.h}} がシリアル マネージャ API を定義しています。ファイル {{span style='color:blue;font-family:monospace;',SystemResources.h}} はいくつかのシリアル ポート定数を定義しています。シリアル マネージャについての追加情報は、''Palm OS Programmer's Companion, vol. II,「通信」'' の[[「シリアル通信」|Palm OS Programmer's Companion Volume II/5]]を参照してください。 !!{{anchor シリアル マネージャ データ構造体}}シリアル マネージャ データ構造体 {{goto top,^TOP^}} !{{anchor DeviceInfoType}}DeviceInfoType 構造体 {{goto top,^TOP^}} '''目的''' {{span style='color:blue;font-family:monospace;',DeviceInfoType}} 構造体はシリアル デバイスについての情報を定義します。この構造体は {{goto SrmGetDeviceInfo,SrmGetDeviceInfo()}} 関数によって返されます。 '''Prototype''' typedef struct DeviceInfoType { UInt32 serDevCreator; UInt32 serDevFtrInfo; UInt32 serDevMaxBaudRate; UInt32 serDevHandshakeBaud; Char *serDevPortInfoStr; UInt8 reserved[8]; } DeviceInfoType; typedef DeviceInfoType *DeviceInfoPtr; '''フィールド''' *{{span style='color:blue;font-family:monospace;',serDevCreator}} **シリアル ドライバのための 4 文字の作成者 ID *{{span style='color:blue;font-family:monospace;',serDevFtrInfo}} **このシリアル ハードウェアの特性を定義するフラグ。これらのフラグについての説明は {{goto Serial Capabilities Constants,Serial Capabilities Constans}} を参照してください。 *{{span style='color:blue;font-family:monospace;',serDevMaxBaudRate}} **このデバイスの最大ボー レート *{{span style='color:blue;font-family:monospace;',serDevHandshakeBaud}} **このレートを超えるボー レートではハードウェア ハンドシェイクが推奨されます。 *{{span style='color:blue;font-family:monospace;',serDevPortInfoStr}} **シリアル ハードウェアまたは仮想デバイスの説明 !{{anchor SrmCtlEnum}}SrmCtlEnum 列挙体 {{goto top,^TOP^}} '''目的''' {{span style='color:blue;font-family:monospace;',SrmCtlEnum}} 列挙体はシリアル制御操作を指定します。{{goto SrmControl,SrmControl}} 呼び出しの {{span style='color:blue;font-family:monospace;',op}} パラメータにこれらの列挙体の 1 つを指定します。 '''Prototype''' typedef enum SrmCtlEnum { srmCtlFirstReserved = 0, srmCtlSetBaudRate, srmCtlGetBaudRate, srmCtlSetFlags, srmCtlGetFlags, srmCtlSetCtsTimeout, srmCtlGetCtsTimeout, srmCtlStartBreak, srmCtlStopBreak, srmCtlStartLocalLoopback, srmCtlStopLocalLoopback, srmCtlIrDAEnable, srmCtlIrDADisable, srmCtlRxEnable, srmCtlRxDisable, srmCtlEmuSetBlockingHook, srmCtlUserDef, srmCtlGetOptimalTransmitSize, srmCtlSetDTRAsserted, srmCtlGetDTRAsserted, srmCtlSetYieldPortCallback, srmCtlSetYieldPortRefCon, srmCtlSystemReserved = 0x7000 srmCtlCustom = 0x8000, srmCtlLAST } SrmCtlEnum; '''定数''' *{{span style='color:blue;font-family:monospace;',srmCtlSetBaudRate}} **シリアル ハードウェアの現在のボー レートをセットします。 *{{span style='color:blue;font-family:monospace;',srmCtlGetBaudRate}} **シリアル ハードウェアの現在のボー レートを取得します。 *{{span style='color:blue;font-family:monospace;',srmCtlSetFlags}} **シリアル ハードウェアのための現在のフラグをセットします。{{goto Serial Settings Constants,Serial Settings Constants}} の中で説明されているセットからフラグを指定します。 *{{span style='color:blue;font-family:monospace;',srmCtlGetFlags}} **シリアル ハードウェアのための現在のフラグを取得します。 *{{span style='color:blue;font-family:monospace;',srmCtlSetCtsTimeout}} **ハードウェア ハンドシェイクのための現在の CTS タイムアウト値をセットします。 *{{span style='color:blue;font-family:monospace;',srmCtlGetCtsTimeout}} **ハードウェア ハンドシェイクのための現在の CTS タイムアウト値を取得します。 *{{span style='color:blue;font-family:monospace;',srmCtlStartBreak}} **RS-232 ブレイク信号をオンにします。呼び出し人には、信号をオン、オフし、信号が実行可能なブレイクを生成するのに十分なほど長くオンされていることを保証する責任があります。 *{{span style='color:blue;font-family:monospace;',srmCtlStopBreak}} **RS-232 ブレイク信号をオフにします。 *{{span style='color:blue;font-family:monospace;',srmCtlStartLocalLoopback}} **ローカル ループバック テストを開始します。 *{{span style='color:blue;font-family:monospace;',srmCtlStopLocalLoopback}} **ローカル ループバック テストを停止します。 *{{span style='color:blue;font-family:monospace;',srmCtlIrDAEnable}} **このシリアル ポートでの IrDA 通信を使用可能にします。 ---- '''NOTE:''' VZ プロセッサで IrDA 通信を使用可能にすることはできません。 ---- *{{span style='color:blue;font-family:monospace;',srmCtlIrDADisable}} **このシリアル ポートでの IrDA 通信を使用不可にします。 *{{span style='color:blue;font-family:monospace;',srmCtlRxEnable}} **(IrDA のための)レシーバを使用可能にします。 *{{span style='color:blue;font-family:monospace;',srmCtlRxDisable}} **(IrDA のための)レシーバを使用不可にします。 *{{span style='color:blue;font-family:monospace;',srmCtlEmuSetBlockingHook}} **フック(訳者注: 原文は hook)ルーチンの遮断をセットします。これはエミュレート モードのみで使用可能であり、実際のデバイスではサポートされません。 *{{span style='color:blue;font-family:monospace;',srmCtlUserDef}} **これは、サード-パーティ ハードウェア開発者がシリアル ドライバのハードウェア定義情報をセット、取得するために使用することができる、ユーザ定義関数です。この操作コードはドライバの適切な制御関数をそのユーザ定義操作コードと一緒に呼び出し、パラメータは直接シリアル ドライバに渡されます。この関数をハンドルしないシリアル ドライバは {{span style='color:blue;font-family:monospace;',serErrBadParam}} エラーを返します。{{br}}{{span style='color:blue;font-family:monospace;',srmCtlUserDef}} 操作コードは、{{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} が満たされる場合、カスタム操作コードを定義することによって抑制されます。 *{{span style='color:blue;font-family:monospace;',srmCtlGetOptimalTransmitSize}} **ポートにデータ パックを伝送するのに最も効率の良いバッファサイズを問い合わせます。この操作コードが返すのはエラー(バッファが必要ない)、0 (バッファが必要だが、アプリケーションはバッファ サイズを選択できない)、または 0 より大きな数(推奨されるバッファ サイズ)です。 *{{span style='color:blue;font-family:monospace;',srmCtlSetDTRAsserted}} **DTR 信号を使用可能または使用不可にします。これはすべてのハードウェアでサポートされるわけではありません。 *{{span style='color:blue;font-family:monospace;',srmCtlGetDTRAsserted}} **ポートに DTR 信号が使用可能かそれとも使用不可かを問い合わせます。 *{{span style='color:blue;font-family:monospace;',srmCtlSetYieldPortCallback}} **あるポートがオープンになっているときに、シリアル マネージャが他のポートをオープンしようと試みた場合に呼び出される関数をセットします。この操作コードはシステムのみが使用します。 *{{span style='color:blue;font-family:monospace;',srmCtlSetYieldPortRefCon}} **ポート置換コールバック関数に渡すデータ。システムのみが使用します。 *{{span style='color:blue;font-family:monospace;',srmCtlSystemReserved}} **0x7000 から 0x8000 までの予約操作コード。システムのみが使用します。 *{{span style='color:blue;font-family:monospace;',srmCtlCustom}} **0x8000 より大きな予約操作コード。特定デイバスが使用します。 '''互換性''' カスタム制御操作コードは、{{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} と {{goto 4.0 New Feature Set,4.0 New Feature Set Palm OS Programmer's API Reference/B}} の両方が満たされる場合にのみ、サポートされます。 !{{anchor SrmOpenConfigType}}SrmOpenConfigType 構造体 {{goto top,^TOP^}} {{span style='color:blue;font-family:monospace;',SrmOpenConfigType}} 構造体はシリアル ポートをオープンするためのパラメータを指定します。この構造体は {{goto SrmExtOpen,SrmExtOpen()}} にパラメータとして渡されます。 '''Prototype''' typedef struct SrmOpenConfigType { UInt32 baud; UInt32 function; MemPtr drvrDataP; UInt16 drvrDataSize; UInt32 sysReserved1; UInt32 sysReserved2; } SrmOpenConfigType; '''フィールド''' *{{span style='color:blue;font-family:monospace;',baud}} **接続をオープンするためのボー レート。ボー レートを要求しないシリアル ドライバはこのフィールドを無視します。 *{{span style='color:blue;font-family:monospace;',function}} **ポートがオープンされた理由。ポートをオープンするアプリケーションの作成者 ID または以下に示す値の 1 つを指定します。 {{div_begin style="margin-left:5em;"}} *{{span style='color:blue;font-family:monospace;',}} *{{span style='color:blue;font-family:monospace;',serFncUndefined}} **定義されていない機能。これはこのフィールドのデフォルト値です。 *{{span style='color:blue;font-family:monospace;',serFncPPPSession}} **PPP インターフェイスのために使用される接続。 *{{span style='color:blue;font-family:monospace;',serFncSLIPSession}} **SLIP セッションのために使用される接続。 *{{span style='color:blue;font-family:monospace;',serFncDebugger}} **デバッグ セッションのために使用される接続。 *{{span style='color:blue;font-family:monospace;',serFncHotSync}} **HotSync 操作のために使用される接続。 *{{span style='color:blue;font-family:monospace;',serFncConsole}} **デバッグ コンソールへの接続。 *{{span style='color:blue;font-family:monospace;',serFncTelephony}} **電話ライブラリへの接続。 {{div_end}} **{{span style='color:blue;font-family:monospace;',function}} フィールドは、アプリケーションが使用している、異なるセットアップ タスクを実行する USB や Bluetooth などのプロトコルによって使用されます。RS-232 ドライバはこのフィールドを無視します。 *{{span style='color:blue;font-family:monospace;',drvrDataP}} **ドライバ指定データ ブロックへのポインタ。 *{{span style='color:blue;font-family:monospace;',drvrDataSize}} **{{span style='color:blue;font-family:monospace;',drvrDataP}} によって指されるデータ ブロックのサイズ。 *{{span style='color:blue;font-family:monospace;',sysReserved1}} **将来使用するために予約されています。 *{{span style='color:blue;font-family:monospace;',sysReserved2}} **将来使用するために予約されています。 '''互換性''' この構造体は、{{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} と {{goto 4.0 New Feature Set,4.0 New Feature Set|Palm OS Programmer's API Reference/B}} の両方が満たされる場合にのみ、定義されます。 !{{anchor シリアル マネージャ定数}}シリアル マネージャ定数 {{goto top,^TOP^}} !{{anchor Port Constants}}Port Constants {{goto top,^TOP^}} {{goto SrmOpen,SrmOpen()}}, {{goto SrmOpenBackground,SrmOpenBackground()}}, {{goto SrmExtOpen,SrmExtOpen()}} または {{goto SrmExtOpenBackground,SrmExtOpenBackground()}} の中でオープンするポートを指定するとき、論理ポート定数、物理ポート定数、または仮想ポート定数のどれかを使用することができますが、論理ポート定数を使用できるときはそれを使用することが強く推奨されます。 '''論理シリアル ポート定数''' ,'''定数''','''定数''','''説明''' ,"{{span style='color:blue;font-family:monospace;',serPortLocalHotSync}}",0x8000,物理 HotSync ポート。シリアル マネージャは自動的にこのポートが USB または RS-232 のどちらかを検出します。 ,"{{span style='color:blue;font-family:monospace;',serPortCradlePort}}",0x8000,選択されている(原文: Cradle)ポート。シリアル マネージャは自動的にこのポートが USB または RS-232 のどちらかを検出します。たいていのアプリケーションはポートとしてこの値を指定すべきです。 ,"{{span style='color:blue;font-family:monospace;',serPortIrPort}}",0x8001,IR ポート。これはプロトコルのサポートが無い生の IrDA です。 ,"{{span style='color:blue;font-family:monospace;',serPortConsolePort}}",0x8002,USB または RS-232 のどちらかであるデバッグ コンソール ポート。両方が使用可能な場合 USB が優先されます。 ,"{{span style='color:blue;font-family:monospace;',serPortCradleRS232Port}}",0x8003,選択された(原文: cradle)RS-232 ポート。アプリケーションが RS-232 通信のみを使用することを保証したい場合にこのポートを指定します。 ,"{{span style='color:blue;font-family:monospace;',serPortCradleRS232Port}}",0x8004,選択された(原文: cradle)USB ポート。アプリケーションが USB 通信のみを使用することを保証したい場合にこのポートを指定します。 '''互換性''' USB ポートは、{{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、サポートされます。 '''物理シリアル ポート定数''' 物理ポート定数は、デバイスの物理ハードウェアを参照する 4 文字の定数を指定します。物理ポート定数を使用することは推奨されません。なぜなら、それらが指定するハードウェアはある特定のデバイスでは存在しないかもしれないからです。 ,'''物理ポート''','''値''','''説明''' ,"{{span style='color:blue;font-family:monospace;',sysFileCUart328}}",'u328',"68328 UART を使用する選択された(原文: Cradle)ポート。このポートは、{{goto SrmControl,SrmControl()}} 呼び出しを使って RS-232 と IrDA モード間で切り替えることができます。" ,"{{span style='color:blue;font-family:monospace;',sysFileCUart328EZ}}",'u8EZ',"68328EZ UART を使用する選択された(原文: Cradle)ポート。このポートもまた RS-232 と IrDA モード間で切り替えることができます。" ,"{{span style='color:blue;font-family:monospace;',sysFileCUart650}}",'u650',"Palm Personal または Palm Professional デバイスのためのアップグレード カード上の IR ポートを指定します。このポートは {{span style='color:blue;font-family:monospace;',SrmControl}} 呼び出しのように生の IR ポートを提供しますが、アップグレード カードを持つデバイス上にのみ存在するポートです。" '''仮想シリアル ポート定数''' 仮想ポート定数は、仮想ポートを同定する 4 文字の定数を指定します。仮想ポートはハードウェア インターフェイスをシミュレートします。仮想ポートは特定のハードウェアに結び付けられません。 ,'''仮想ポート''','''値''','''説明''' ,"{{span style='color:blue;font-family:monospace;',sysFileCVirtIrComm}}",'ircm',IRComm プロトコルを使用する IrDA リンクを張る仮想シリアル ケーブル。これは、他の IRComm デバイスと通信するためにのみ使用することができます。 ,"{{span style='color:blue;font-family:monospace;',sysFileCVirtRfComm}}",'rfcm',RFCOMM (Bluetooth) 仮想ポート プラグ-イン。 ,"{{span style='color:blue;font-family:monospace;',sysFileCBtConnectPanelHelper}}",'btcp',Bluetooth 接続パネル ヘルパ アプリケーション。 '''互換性''' {{span style='color:blue;font-family:monospace;',sysFileCVirtIrComm}} 以外の仮想ポート定数は、{{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} と {{goto 4.0 New Feature Set,4.0 New Feature Set|Palm OS Programmer's API Reference/B}} の両方が満たされ、かつ、{{goto 5.0 New Feature Set,5.0 New Feature Set|Palm OS Programmer's API Reference/B}} が満たされない場合にのみ、定義されます。 !{{anchor Serial Capabilities Constants}}Serial Capabilities Constants {{goto top,^TOP^}} シリアル能力定数フラグ(原文: serial capabilities constant flags)はシリアル ハードウェアの能力を説明します。これらのフラグは {{goto DeviceInfoType,DeviceInfoType}} 構造体の {{span style='color:blue;font-family:monospace;',serDevFtrInfo}} フィールドの中にセットされます。 ,'''定数''','''値''','''説明''' ,"{{span style='color:blue;font-family:monospace;',serDevCradlePort}}",0x00000001,シリアル ハードウェアは、Palm デバイスの選択された(原文: cradle)コネクタから、RS-232 シリアルを制御します。 ,"{{span style='color:blue;font-family:monospace;',serDevRS232Serial}}",0x00000002,シリアル ハードウェアは、RS-232 ライン ドライバを持ちます。 ,"{{span style='color:blue;font-family:monospace;',serDevIRDACapable}}",0x00000004,シリアル ハードウェアは、IR ライン ドライバを持ち、IrDA モード シリアル信号を生成します。 ,"{{span style='color:blue;font-family:monospace;',serDevModemPort}}",0x00000008,シリアル ハードウェアは、モデム接続をドライブします。 ,"{{span style='color:blue;font-family:monospace;',serDevCncMgrVisible}}",0x00000010,シリアル デバイス ポート名文字列は、接続パネルの中に表示されます。 ,"{{span style='color:blue;font-family:monospace;',serDevConsolePort}}",0x00000020,シリアル デバイスは、デフォルトのコンソール ポートです。 ,"{{span style='color:blue;font-family:monospace;',serDevUSBCapable}}",0x00000040,シリアル ハードウェアは、Palm デバイスの選択された(原文: cradle)コネクタから、USB シリアルを制御します。 '''互換性''' USB ポートは、{{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、サポートされます。 !{{anchor Serial Settings Constants}}Serial Settings Constants {{goto top,^TOP^}} シリアル設定定数はさまざまなシリアル ハードウェア設定に関係するビット フラグを同定します。どの設定が使用されるかを制御するために、操作コード {{span style='color:blue;font-family:monospace;',srmCtlSetFlags}} と一緒に {{goto SrmControl,SrmControl()}} を使用します。 ,'''定数''','''値''','''説明''' ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagStopBitsM}}",0x00000001,停止ビットフィールドのためのマスク ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagStopBits1}}",0x00000000,1 停止ビット(デフォルト) ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagStopBits2}}",0x00000001,2 停止ビット ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagParityOnM}}",0x00000002,パリティ オンのためのマスク ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagParityOnEvenM}}",0x00000004,パリティ イーブン(偶数)のためのマスク ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagXonXoffM}}",0x00000008,Xon/Xoff フロー制御(実装されていません)のためのマスク ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagRTSAutoM}}",0x00000010,RTS 受信フロー制御のためのマスク。これはデフォルトです。 ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagCTSAutoM}}",0x00000020,CTS 伝送フロー制御のためのマスク ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagBitsPerCharM}}",0x000000C0,文字ごとのビット(訳者補足: 数)のためのマスク ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagBitsPerChar5}}",0x00000000,文字ごとに 5 ビット ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagBitsPerChar6}}",0x00000040,文字ごとに 6 ビット ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagBitsPerChar7}}",0x00000080,文字ごとに 7 ビット ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagBitsPerChar8}}",0x000000C0,文字ごとに 8 ビット ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagFlowControlIn}}",0x00000100,"受信バッファがソフトウェア オーバラン(受信データの取りこぼし)するのを防ぎます。このフラグと {{span style='color:blue;font-family:monospace;',srmSettingsFlagRTSAutoM}} がセットされているとき、これはデフォルトのケースですが、シリアル マネージャは RTS に、伝送デバイスが受信バッファが一杯になってもデータを送り続けるのを、防がせます。一旦アプリケーションがバッファからのデータを受け取ると、RTS はデータ受信を最下位するのを許可します。" ,,,この特性はソフトウェアがライン エラーをオーバラン(受信データの取りこぼし)するのを効果的に防ぎますが、RTS ラインが定義された CTS タイムアウト値よりも長くなる場合、伝送デバイス上で CTS タイムアウトを引き起こすかもしれません。 ,"{{span style='color:blue;font-family:monospace;',srmSettingsFlagRTSInactive}}",0x00000200,"このフラグがセットされていて、かつ、{{span style='color:blue;font-family:monospace;',srmSettingsFlagRTSAutoM}} がセットされていない場合、RTS は不活性(フロー(訳者補足: 制御)がオフ)の状態で保持されます。" !{{anchor Status Constants}}Status Constants {{goto top,^TOP^}} 状態定数はシリアル信号の状態に関係するビット フラグを同定します。これらは {{goto SrmGetStatus,SrmGetStatus()}} 関数によって返されます。 ,'''定数''','''値''','''説明''' ,"{{span style='color:blue;font-family:monospace;',srmStatusCtsOn}}",0x00000001,CTS ラインがアクティブです。 ,"{{span style='color:blue;font-family:monospace;',srmStatusRtsOn}}",0x00000002,RTS ラインがアクティブです。 ,"{{span style='color:blue;font-family:monospace;',srmStatusDsrOn}}",0x00000004,DSR ラインがアクティブです。 ,"{{span style='color:blue;font-family:monospace;',srmStatusBreakSigOn}}",0x00000008,ブレイク信号がアクティブです。 !{{anchor Line Error Constants}}Line Error Constants {{goto top,^TOP^}} ライン エラー定数はポート上で起こるかもしれないライン エラーに関係するビット フラグを同定します。これらは {{goto SrmGetStatus,SrmGetStatus()}} 関数によって返されます。 ,'''定数''','''値''','''説明''' ,"{{span style='color:blue;font-family:monospace;',serLineErrorParity}}",0x0001,パリティ エラー ,"{{span style='color:blue;font-family:monospace;',serLineErrorHWOverrun}}",0x0002,ハードウェア オーバラン(受信データの取りこぼし) ,"{{span style='color:blue;font-family:monospace;',serLineErrorFraming}}",0x0004,フレーム エラー ,"{{span style='color:blue;font-family:monospace;',serLineErrorBreak}}",0x0008,ブレイク信号が発生 ,"{{span style='color:blue;font-family:monospace;',serLineErrorHShake}}",0x0010,ライン ハンドシェイク エラー ,"{{span style='color:blue;font-family:monospace;',serLineErrorSWOverrun}}",0x0020,ソフトウェア オーバラン(受信データの取りこぼし) ,"{{span style='color:blue;font-family:monospace;',serLineErrorCarrierLost}}",0x0040,信号落ちキャリアの検出 !!{{anchor シリアル マネージャ関数}}シリアル マネージャ関数 {{goto top,^TOP^}} !{{anchor SrmClearErr}}SrmClearErr 関数 {{goto top,^TOP^}} '''目的''' ライン エラーのポートをクリアします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmClearErr ( UInt16 portId ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランドのポートではありません。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 !{{anchor SrmClose}}SrmClose 関数 {{goto top,^TOP^}} '''目的''' シリアル ポートをクローズし、そのポートを、フォアグランド ポートかバックグランド ポートかに関係なく、他のアプリケーションが使用できるようにします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmClose ( UInt16 portId ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portId}} **クローズするポートのポート ID '''返り値'' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **シリアル ポートはオープンしていません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスが見つかりませんでした。 '''コメント''' フォアグランド ポートがクローズされようとしていて、かつ、バックグランド ポートが存在する場合、他のフォアグランド ポートがオープンされない限り、バックグランド ポートにアクセスが行きます。 フォアグランド ポートがクローズされようとしていて、かつ、置き換えられるポートが存在する場合、他のフォアグランド ポートがオープンされてその置き換えられるポートがさらに置き換えられない限り、その置き換えられるポートにアクセスが行きます。フォアグランド ポートがクローズされようとしているときに、置き換えられるポートとバックグランド ポートの両方が存在する場合、置き換えられるポートがバックグランド ポートよりも優先されます。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmOpen,SrmOpen()}}, {{goto SrmOpenBackground,SrmOpenBackground()}} !{{anchor SrmControl}}SrmControl 関数 {{goto top,^TOP^}} '''目的''' シリアル制御関数を実行します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmControl ( UInt16 portId, UInt16 op, void *valueP, UInt16 *valueLenP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ op}} **実行される制御操作。{{goto SrmCtlEnum,SrmCtlEnum}} 列挙体の 1 つを指定します。 *{{span style='color:blue;font-family:monospace;',←→ valueP}} **操作のために使用される値へのポインタ。詳細はコメントを参照してください。 *{{span style='color:blue;font-family:monospace;',←→ valueLenP}} **{{span style='color:blue;font-family:monospace;',*valueP}} のサイズへのポインタ。詳細はコメントを参照してください。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadParam}} **無効な操作コードが指定されました。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **シリアル ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスが見つかりませんでした。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **指定された操作コードは現在のコンフィグレーションではサポートされません。 '''コメント''' {{goto 表 70.1,表 70.1}} は各操作コードの {{span style='color:blue;font-family:monospace;',valueP}} と {{span style='color:blue;font-family:monospace;',valueLenP}} パラメータに渡されるものを示しています。リストに挙がっていない制御コードはこれらのパラメータを使用しません。制御コードの完全なリストは、{{goto SrmCtlEnum,SrmCtlEnum}} を参照してください。 {{anchor 表 70.1}}'''表 70.1 SrmControl パラメータ''' ,'''操作コード''','''パラメータ''' ,"{{span style='color:blue;font-family:monospace;',srmCtlSetBaudRate}}","{{span style='color:blue;font-family:monospace;',→ valueP}} = {{span style='color:blue;font-family:monospace;',UInt32}} へのポインタ(ボー レート){{br}}{{span style='color:blue;font-family:monospace;',→ valueLenP}} = {{span style='color:blue;font-family:monospace;',UInt32}} のサイズへのポインタ" ,"{{span style='color:blue;font-family:monospace;',srmCtlGetBaudRate}}","{{span style='color:blue;font-family:monospace;',← valueP}} = {{span style='color:blue;font-family:monospace;',UInt32}} へのポインタ(ボー レート){{br}}{{span style='color:blue;font-family:monospace;',← valueLenP}} = {{span style='color:blue;font-family:monospace;',UInt16}} へのポインタ" ,"{{span style='color:blue;font-family:monospace;',srmCtlSetFlags}}","{{span style='color:blue;font-family:monospace;',→ valueP}} = {{span style='color:blue;font-family:monospace;',UInt32}} へのポインタ(ビット フィールド: {{goto Serial Settings Constants,Serial Settings Constants}} を参照してください){{br}}{{span style='color:blue;font-family:monospace;',→ valueLenP}} = {{span style='color:blue;font-family:monospace;',sizeof(UInt32)}} へのポインタ" ,"{{span style='color:blue;font-family:monospace;',srmCtlGetFlags}}","{{span style='color:blue;font-family:monospace;',← valueP}} = {{span style='color:blue;font-family:monospace;',UInt32}} へのポインタ(ビット フィールド){{br}}{{span style='color:blue;font-family:monospace;',← valueLenP}} = {{span style='color:blue;font-family:monospace;',UInt16}} へのポインタ" ,"{{span style='color:blue;font-family:monospace;',srmCtlSetTimeout}}","{{span style='color:blue;font-family:monospace;',→ valueP}} = {{span style='color:blue;font-family:monospace;',UInt32}} へのポインタ(タイムアウト値){{br}}{{span style='color:blue;font-family:monospace;',→ valueLenP}} = {{span style='color:blue;font-family:monospace;',sizeof(UInt32)}} へのポインタ" ,"{{span style='color:blue;font-family:monospace;',srmCtlGetTimeout}}","{{span style='color:blue;font-family:monospace;',← valueP}} = {{span style='color:blue;font-family:monospace;',UInt32}} へのポインタ(タイムアウト値){{br}}{{span style='color:blue;font-family:monospace;',← valueLenP}} = {{span style='color:blue;font-family:monospace;',UInt16}} へのポインタ" ,"{{span style='color:blue;font-family:monospace;',srmCtlUserDef}}","{{span style='color:blue;font-family:monospace;',←→ valueP}} = シリアルまたは仮想ポートに渡されるポインタ{{br}}{{span style='color:blue;font-family:monospace;',←→ valueLenP}} = {{span style='color:blue;font-family:monospace;',sizeof(UInt32)}} へのポインタ{{br}}シリアル ドライバのために、これらのポインタはドライバの制御関数に渡され、関数の返り時には関数の返り値を(もしあれば)保持します。" ,"{{span style='color:blue;font-family:monospace;',srmCtlGetOptimalTransmitSize}}","{{span style='color:blue;font-family:monospace;',← valueP}} = {{span style='color:blue;font-family:monospace;',UInt32}} へのポインタ{{br}}{{span style='color:blue;font-family:monospace;',← valueLenP}} = {{span style='color:blue;font-family:monospace;',sizeof(UInt32)}} へのポインタ{{br}}{{span style='color:blue;font-family:monospace;',SrmControl}} によってエラーが返される場合、バッファリングは行われるべきではありません。{{span style='color:blue;font-family:monospace;',valueP}} が 0 を指す場合。バッファリングが用供されますが、伝送アプリケーションはバッファ サイズを決定することはできません。{{span style='color:blue;font-family:monospace;',valueP}} が 0 よりも大きな数を指す場合、この数のバイト数のブロックにデータを送ろうと試みます。この数がこのデバイス特有の最も効率の良いブロック サイズです。" ,"{{span style='color:blue;font-family:monospace;',srmCtlSetDTRAsserted}}","{{span style='color:blue;font-family:monospace;',→ valueP}} = DTR を使用可能または使用不可のどちらかに指定するブール値へのポインタ{{br}}{{span style='color:blue;font-family:monospace;',→ valueLenP}} = {{span style='color:blue;font-family:monospace;',sizeof(Boolean)}} へのポインタ" ,"{{span style='color:blue;font-family:monospace;',srmCtlGetDTRAsserted}}","{{span style='color:blue;font-family:monospace;',← valueP}} = DTR が使用可能かどうかを示すブール値へのポインタ{{br}}{{span style='color:blue;font-family:monospace;',← valueLenP}} = {{span style='color:blue;font-family:monospace;',UInt16}} へのポインタ" '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmCutomControl,SrmCustomControl()}} !{{anchor SrmCustomControl}}SrmCustomControl 関数 {{goto top,^TOP^}} '''目的''' カスタム シリアル制御関数を実行します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmCustomControl ( UInt16 portId, UInt16 opCode, UInt32 creator, void *valueP, UInt16 *valueLenP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ opCode}} **実行される操作コード。操作コードは {{span style='color:blue;font-family:monospace;',srmCtlCustom}} よりも大きくなければなりません。 *{{span style='color:blue;font-family:monospace;',→ creator}} **操作コードを定義するデバイスの作成者 ID。作成者 ID と操作コードの組み合わせは実行される操作を一意に同定します。 *{{span style='color:blue;font-family:monospace;',←→ valueP}} **操作のために使用される値へのポインタ。 *{{span style='color:blue;font-family:monospace;',←→ valueLenP}} **{{span style='color:blue;font-family:monospace;',*valueP}} のサイズへのポインタ。 '''返り値''' この関数は、仮想ドライバがそのドライバ特有の制御コードを作成するための機構であり、シリアル マネージャを使用するインターフェイスを持つ新しいテクノロジをサポートすることを可能にするものです。 この関数は単純に {{span style='color:blue;font-family:monospace;',opCode}} と {{span style='color:blue;font-family:monospace;',valueP}} パラメータをポートのための仮想ドライバに転送します。仮想ドライバは、{{span style='color:blue;font-family:monospace;',opCode}} または {{span style='color:blue;font-family:monospace;',valueP}} の中の入力が無効の場合、それ自身のエラー コードを返すかもしれません。 '''互換性''' {{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} と {{goto 4.0 New Feature Set,4.0 New Feature Set|Palm OS Programmer's API Reference/B}} の両方が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmControl,SrmControl()}} !{{anchor SrmExtOpen}}SrmExtOpen 関数 {{goto top,^TOP^}} '''目的''' フォアグランド ポート接続を指定されたコンフィグレーションと一緒にオープンします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmExtOpen ( UInt32 port, SrmOpenConfigType *configP, UInt16 configSize, UInt16 *newPortIdP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ port}} **オープンされる 4 文字のポート名('ircm' や 'u328' など)または論理ポート番号。({{goto Port Constants,Port Constants}} を参照してください。) *{{span style='color:blue;font-family:monospace;',→ configP}} **シリアル ポートのプロパティを指定するコンフィグレーション構造体へのポインタ。({{goto SrmOpenConfigType,SrmOpenConfigType}} を参照してください。) *{{span style='color:blue;font-family:monospace;',→ configSize}} **{{span style='color:blue;font-family:monospace;',configP}} によって指されるコンフィグレーション構造体のサイズ。 *{{span style='color:blue;font-family:monospace;',← newPortIdP}} **他のシリアル マネージャ関数に渡されるポート ID を保持します。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **{{span style='color:blue;font-family:monospace;',port}} パラメータは無効なポートを指定しています。 *{{span style='color:blue;font-family:monospace;',serErrBadParam}} **{{span style='color:blue;font-family:monospace;',configP}} パラメータは {{span style='color:blue;font-family:monospace;',NULL}} です。 *{{span style='color:blue;font-family:monospace;',serErrAlreadyOpen}} **シリアル マネージャはすでにオープンされたポートを持っています。 *{{span style='color:blue;font-family:monospace;',memErrNotEnoughSpace}} **ポートをオープンするのに使用できるメモリが十分にありませんでした。 '''コメント''' 必要とされるよりも長くポートをオープンさせた状態にしないでください。オープンされたシリアル ポートはデバイスのバッテリからより多くのエネルギーを消費します。 {{span style='color:blue;font-family:monospace;',configP}} パラメータの中で指定される値は作成される接続のタイプに依存します。RS-232 接続では、目的ではなくボー レートを指定します。USB 接続では、ボー レートではなく目的を指定します。 新たにオープンされたポートはそのライン エラーをクリアし、デフォルトの CTS タイムアウトをセット(定数 {{span style='color:blue;font-family:monospace;',srmDefaultCTSTimeout}} によって指定される)し、512 バイトのキューを配置し、1 停止ビット、文字ごとに 8 ビット、RTS、それにフロー制御を使用可能にします。受信キュー サイズを増加させるには、{{goto SrmSetReceiveBuffer,SrmSetReceiveBuffer()}} を使用します。シリアル ポートの設定を変更するには、{{goto SrmControl,SrmControl()}} を使用します。 '''互換性''' {{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} と {{goto 4.0 New Feature Set,4.0 New Feature Set|Palm OS Programmer's API Reference/B}} の両方が満たされる場合にのみ、実装されます。{{span style='color:blue;font-family:monospace;',SrmExtOpen}} 関数は {{goto SrmOpen,SrmOpen()}} 関数と置き換わります。 '''参照''' {{goto SrmOpen,SrmOpen()}}, {{goto SrmExtOpenBackground,SrmExtOpenBackground()}} !{{anchor SrmExtOpenBackground}}SrmExtOpenBackground 関数 {{goto top,^TOP^}} '''目的''' 指定されたコンフィグレーションと一緒にバックグランドでポートをオープンします。バックグランド ポートは、他のタスクが {{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} 呼び出しでポートをオープンすると、制御を譲ります。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmExtOpenBackground ( UInt32 port, SrmOpenConfigType *configP, UInt16 configSize, UInt16 *newPortIdP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ port}} **オープンされる物理または論理ポート番号。追加情報は、{{goto Port Constants,Port Constants}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ configP}} **シリアル ポートのプロパティを指定するコンフィグレーション構造体へのポインタ。{{goto SrmOpenConfigType,SrmOpenConfigType}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ configSize}} **{{span style='color:blue;font-family:monospace;',configP}} によって指されるコンフィグレーション構造体のサイズ。 *{{span style='color:blue;font-family:monospace;',← newPortIdP}} **他のシリアル マネージャ関数に渡されるポート ID を保持します。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrAlreadyOpen}} **ポートはすでにバックグランドでオープンされています。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **このタイプのポートはバックグランドでオープンすることができません。 *{{span style='color:blue;font-family:monospace;',serErrBadParam}} **{{span style='color:blue;font-family:monospace;',configP}} パラメータは {{span style='color:blue;font-family:monospace;',NULL}} です。 *{{span style='color:blue;font-family:monospace;',memErrNotEnoughSpace}} **ポートをオープンするのに使用できるメモリが十分にありませんでした。 '''コメント''' この関数は、他のタスクがポートを使用していないときだけデータを受信するためにシリアル デバイスを使用するタスクをサポートするために、提供されます。 他のタスクがフォアグランド接続をオープンした結果としてバックグランド ポートが強制的にハードウェアの制御を放棄させられた場合、バックグランド ポートのためのすべてのバッファは消去されます。このアクティブなタスク(訳者補足: フォアグランド タスク)がポートをクローズした後に、ポートのアクティブな制御はバックグランド タスクに返されます。ただ 1 つのタスクのみがポートのバックグランドでの所有者になれます。 バックグランド ポートは機能を制限されることに注意してください; それらはデータを受信し、そのポートを所有しているクライアントに何のデータが受信されたかを知らせることしかできません。 {{span style='color:blue;font-family:monospace;',configP}} パラメータに指定される値は作成される接続のタイプに依存します。RS-232 接続では、目的ではなくボー レートを指定します。USB 接続では、ボー レートではなく目的を指摘します。 '''互換性''' {{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} と {{goto 4.0 New Feature Set,4.0 New Feature Set|Palm OS Programmer's API Reference/B}} の両方が満たされる場合にのみ、実装されます。{{span style='color:blue;font-family:monospace;',SrmExtOpenBackground}} 関数は {{goto SrmOpenBackground,SrmOpenBackground()}} 関数と置き換わります。 '''参照''' {{goto SrmOpen,SrmOpen()}}, {{goto SrmExtOpen,SrmExtOpen()}} !{{anchor SrmGetDeviceCount}}SrmGetDeviceCount 関数 {{goto top,^TOP^}} '''目的''' 使用可能なシリアル でバースの数を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmGetDeviceCount ( UInt16 *numOfDevicesP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',← numOfDevicesP}} **シリアル デバイスの数が返されるアドレスへのポインタ '''返り値''' *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmGetDeviceInfo,SrmGetDeviceInfo()}} !{{anchor SrmGetDeviceInfo}}SrmGetDeviceInfo() 関数 {{goto top,^TOP^}} '''目的''' シリアル デバイスについての情報を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmGetDeviceInfo ( UInt32 deviceID, DeviceInfoType *deviceInfoP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ deviceID}} **情報を取得されるシリアル デバイスの ID。0 ベースのインデックス(0, 1, 2, ...)、{{goto SrmOpen,SrmOpen()}} や {{goto SrmExtOpen,SrmExtOpen()}} によって返される有効なポート ID、または 4 文字のポート名('u328', 'u650' や 'ircm' など)を渡すことができます。{{goto Port Constants,Port Constants}} を参照してください。 *{{span style='color:blue;font-family:monospace;',← deviceInfoP}} **デバイスについての情報が返される {{goto DeviceInfoType,DeviceInfoType}} 構造体へのポインタ。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル マネージャはいずれのシリアル デバイスも見つけることができませんでした。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmGetDeviceCount,SrmGetDeviceCount()}} !{{anchor SrmGetStatus}}SrmGetStatus 関数 {{goto top,^TOP^}} '''目的''' シリアル ハードウェアについての状態情報を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmGetStatus ( UInt16 portId, UInt32 *statusFieldP, UInt16 *lineErrsP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',← statusFieldP}} **ポートのハードウェア状態情報が返されるアドレスへのポインタ。これは {[goto Status Constants,Status Constants}} で説明されているフラグを使用する 32 ビットのフィールドです。 *{{span style='color:blue;font-family:monospace;',← lineErrsP}} **ポートのライン エラーの数(番号)が返されるアドレスへのポインタ。ライン エラー フラグは {{goto Line Error Constants,Line Error Constants}} で説明されています。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートは置き換えられたポートです。(訳者補足: アクティブでないポートと言いたいと思われる。) *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' 通常、{{span style='color:blue;font-family:monospace;',SrmGetStatus}} は、送信と受信関数のどれかが {{span style='color:blue;font-family:monospace;',serErrLineErr}} エラー コードを返した場合に、ポートのライン エラーを取得するために呼び出されます。 '''互換性''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID !{{anchor SrmOpen}}SrmOpen 関数 {{goto top,^TOP^}} '''目的''' フォアグランド ポートを、指定されたポート名または論理ポート番号と一緒に、オープンします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmOpen ( UInt32 port, UInt32 baud, UInt16 *newPortIdP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ port}} **オープンされるポートの 4 文字のポート名またはポート番号。追加情報は {{goto Port Constants,Port Constants}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ baud}} **ポートの初期ボー レート。 *{{span style='color:blue;font-family:monospace;',← newPortIdP}} **他のシリアル マネージャ関数に渡されるポート ID を保持します。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrAlreadyOpen}} **このポートはすでにフォアグランドでオープンされています。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',memErrNotEnoughSpace}} **ポートをオープンするために使用可能なメモリが十分にありませんでした。 '''コメント''' ただ 1 つのアプリケーションまたはタスクのみが、いかなる場合でも、ある 1 つのシリアル ポートにアクセスを持つ可能性があります。 必要とされるよりも長くポートをオープンしたままにしておかないでください。オープンされたシリアル ポートはデバイスのバッテリからより多くのエネルギーを消費します。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 {{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、{{span style='color:blue;font-family:monospace;',SrmOpen}} 関数は {{goto SrmExtOpen,SrmExtOpen()}} 関数によって置き換えられます。{{span style='color:blue;font-family:monospace;',SrmOpen}} の下位互換はサポートされません。 '''参照''' {{goto SrmOpenBackground,SrmOpenBackground()}} !{{anchor SrmOpenBackground}}SrmOpenBackground 関数 {{goto top,^TOP^}} '''目的''' タスクがポートをオープン、初期化、使用することを許可します。しかし、他のタスクが {{goto SrmOpen,SrmOpen()}} 呼び出しを使ってポートをオープンすると、そのポートの制御を譲ります。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmOpenBackground ( UInt32 port, UInt32 baud, UInt16 *newPortIdP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ port}} **オープンされるポートの 4 文字のポート名または論理ポート番号。追加情報は、{{goto Port Constants,Port Constants}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ boud}} **ポートの初期ボー レート。 *{{span style='color:blue;font-family:monospace;',← newPortId}} **他のシリアル マネージャ関数に渡されるポート ID を保持します。 '''返り値''' *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrAlreadyOpen}} **{{span style='color:blue;font-family:monospace;',serErrAlreadyOpen}} **このポートはすでにバックグランドでオープンされています。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',memErrNotEnoughSpace}} **ポートをオープンするのに使用可能なメモリが十分にありませんでした。 '''コメント''' この関数は、他のタスクがポートを使用していないときだけデータを受信するためにシリアル デバイスを使用するタスクをサポートするために、提供されます。 他のタスクがフォアグランド接続をオープンした結果としてバックグランド ポートが強制的にハードウェアの制御を放棄させられた場合、バックグランド ポートのためのすべてのバッファは消去されます。このアクティブなタスク(訳者補足: フォアグランド タスク)がポートをクローズした後に、ポートのアクティブな制御はバックグランド タスクに返されます。ただ 1 つのタスクのみがポートのバックグランドでの所有者になれます。 バックグランド ポートは機能を制限されることに注意してください; それらはデータを受信し、そのポートを所有しているクライアントに何のデータが受信されたかを知らせることしかできません。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 {{goto New Serial Manager Feature Set Version 2,New Serial Manager Feature Set Version 2|Palm OS Programmer's API Reference/B}} が満たされる場合、{{span style='color:blue;font-family:monospace;',SrmOpenBackground()}} 関数は {{goto SrmExtOpenBackgournd,SrmExtOpenBackground()}} によって置き換えられます。{{span style='color:blue;font-family:monospace;',SrmOpenBackground()}} の下位互換はサポートされません。{{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} が満たされる場合、この関数は実装されません。 !{{anchor SrmPrimeWakeupHandler}}SrmPrimeWakeupHandler 関数 {{goto top,^TOP^}} '''目的''' ウェイクアップ ハンドラ関数の呼び出しを引き起こす受信されるバイト数をセットします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmPrimeWakeupHandler ( UInt16 portId, UInt16 minBytes ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ minBytes}} **ウェイクアップ ハンドラが呼び出される前に受信されなければいけないバイト数。通常、これは 1 にセットされます。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' この関数は {{goto SrmSetWakeupHandler,SrmSetWakeupHandler()}} によってインストールされたウェイクアップ ハンドラに十分なデータを与えます。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmSetWakeupHandler,SrmSetWakeupHandler()}}, {{goto WakeupHandlerProcPtrWakeupHandlerProcPtr()}} !{{anchor SrmReceive}}Sr,Receive 関数 {{goto top,^TOP^}} '''目的''' 指定された数のバイトを受信します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' UInt32 SrmReceive ( UInt16 portId, void *rcvBufP, UInt32 count, Int32 timeout, Err *errP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',← rcvBufP}} **受信されたデータが返されるバッファへのポインタ。 *{{span style='color:blue;font-family:monospace;',→ count}} **データ バッファの長さ(バイト数)。これは受信されるバイトの数を指定します。 *{{span style='color:blue;font-family:monospace;',→ timeout}} **シリアル マネージャが要求されたデータのブロックを受信するために待つ時間の量(システム チェック数(原文: in ticks))。タイムアウトの終了時点で、その時間までに受信されたデータが返されます。 *{{span style='color:blue;font-family:monospace;',← errP}} **エラー コード。 '''返り値''' 実際に受信されたデータのバイト数を返します。 '''コメント''' {{span style='color:blue;font-family:monospace;',errP}} に収められて返されるエラー コードは以下の通りです。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrTimeOut}} **指定されたタイムアウト期間内にデータを受信することができませんでした。 *{{span style='color:blue;font-family:monospace;',serErrConfigurationFailed}} **ポートはコンフィグレーションする時間を必要としていて、コンフィグレーションは失敗しました、 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrConfigurationFailed}} **ポートはポート自身をコンフィグレーションできませんでした。 *{{span style='color:blue;font-family:monospace;',serErrLineErr}} **データ受信中にライン エラーが起こりました。正確なライン エラーを取得するには {{goto SrmGetStatus,SrmGetStatus()}} を使用します。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスが見つかりませんでした。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmReceiveCheck,SrmReceiveCheck()}}, {{goto SrmReceiveFlush,SrmReceiveFlush()}}, {{goto SrmReceiveWait,SrmReceiveWait()}} !{{anchor SrmReceiveCheck}}SrmReceiveCheck 関数 {{goto top,^TOP^}} '''目的''' 受信 FIFO(訳者注: FIFO 型メモリのこと)をチェックし、シリアル受信キュー(訳者注: FIFO 型メモリのこと)の中のバイト数を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmReceiveCheck ( UInt16 portId, UInt32 *numBytesP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',← numBytesP}} **受信キューの中のバイト数 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrLineErr}} **ライン エラーが起こりました。正確なライン エラーを取得するには {{goto SrmGetStatus,SrmGetStatus()}} を使用します。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmReceive,SrmReceive()}}, {{goto SrmReceiveFlush,SrmReceiveFlush()}}, {[goto SrmReceiveWait,SrmReceiveWait()}} !{{anchor SrmReceiveFlush}}SrmReceiveFlush 関数 {{goto top,^TOP^}} '''目的''' 受信 FIFO(訳者注: FIFO 型メモリ)を消去します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmReceiveFlush ( UInt16 portId, Int32 timeout ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ timeout}} **タイムアウト値(システム チェック数(原文: in ticks)) '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' {{span style='color:blue;font-family:monospace;',timeout}} 値は、この関数がポートを消去した後に消去されるデータがさらに現れるかどうか確認するため、この関数を一定のシステム チェック回数分だけ強制的に待たせます。タイムアウト期間内に追加のデータが到着した場合、ポートは再び消去され、タイムアウト カウンタはリセットされて再度待機します。関数は、最後のポートの消去から完全なタイムアウト期間の間ポートによってバイトが受信されないことが確認された後にのみ、終了します。この待ち状態を避けるためには、タイムアウト期間に 0 を指定します。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmReceive,SrmReceive()}}, {{goto SrmReceiveCheck,SrmReceiveCheck()}}, {{goto SrmReceiveWait,SrmReceiveWait()}} !{{anchor SrmReceiveWait}}SrmReceiveWait 関数 {{goto top,^TOP^}} '''目的''' いくつかのバイト数のデータがシリアル受信キューに到着するまで待ち、それから返ります。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmReceiveWait ( UInt16 portId, UInt32 bytes, Int32 timeout ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ bytes}} **待つためのバイト数。 *{{span style='color:blue;font-family:monospace;',→ timeout}} **タイムアウト値(システム チェック数(原文: in ticks)) '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrTimeOut}} **指定されたタイムアウト期間内にデータを受信することができなかった。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrBadParam}} **バイト数パラメータが受信キューのサイズを超えています。受信キューのサイズを増やすには {{goto SrmSetReceiveBuffer,SrmSetReceiveBuffer()}} を使用します。 *{{span style='color:blue;font-family:monospace;',serErrLineErr}} **データの受信中にライン エラーが起こりました。正確なライン エラーを取得するには {{goto SrmGetStatus,SrmGetStatus()}} を使用します。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' この関数がエラー無しで返る場合、アプリケーションは受信キューの中に現在あるバイト数をチェックする({{goto SrmReceiveCheck,SrmReceiveCheck()}} を使用して)こともできますし、バッファを指定して {{goto SrmReceive,SrmReceive()}} を呼び出すことによってデータを受信することもできます。 ウェイクアップ ハンドラの内部から {{span style='color:blue;font-family:monospace;',SrmReceiveWait}} を呼び出さないでください。そうした場合、{{span style='color:blue;font-family:monospace;',serErrTimeOut}} エラーが返されます。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmReceive,SrmReceive()}}, {{goto SrmReceiveCheck,SrmReceiveCheck()}}, {{goto SrmReceiveFlush,SrmReceiveFlush()}} !{{anchor SrmReceiveWindowClose}}SrmReceiveWindowClose 関数 {{goto top,^TOP^}} '''目的''' シリアル マネージャの受信キューへの直接のアクセスをクローズします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmReceiveWindowClose ( UInt16 portId, UInt32 bytesPulled ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ bytesPulles}} **アプリケーションが受信キューから読み込むバイト数。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' アプリケーションが受信キューから受け取ることを必要としているのと同じ量のバイトを読み込んだ、または、使用可能なすべてのバイトを読み込んだとき、この関数を呼び出します。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmReceiveWindowOpen,SrmReceiveWindowOpen()}} !{{anchor SrmReceiveWindowOpen}}SrmReceiveWindowOpen 関数 {{goto top,^TOP^}} '''目的''' シリアル マネージャの受信キューへの直接のアクセスを提供します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmReceiveWindowOpen ( UInt16 portId, UInt8 **bufPP, UInt32 *sizeP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',← bufPP}} **受信バッファへのポインタへのポインタ *{{span style='color:blue;font-family:monospace;',← sizeP}} **バッファの使用可能なバイト数 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrLineErr}} **キューの中のデータはライン エラーを保持しています。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' この関数は、シリアル マネージャによってコピーされたバッファを削除するために、アプリケーションにシリアル マネージャの受信キューへの直接のアクセスをさせます。このアクセスは、受信データへの「バック ドア」ルートです。バッファからデータを受信した後、アプリケーションは {{goto SrmReceiveWindowClose,SrmReceiveWindowClose()}} を呼び出さなくてはなりません。 受信バッファ全体を空にすることを望むアプリケーションは、返されるバッファ サイズが 0 になるまで、繰り返し {{span style='color:blue;font-family:monospace;',SrmReceiveWindowOpen}} と {{span style='color:blue;font-family:monospace;',SrmReceiveWindowClose}} 関数を呼び出すべきです。 ---- '''重要:''' 一旦アプリケーションが {{span style='color:blue;font-family:monospace;',SrmReceiveWindowOpen}} を呼び出すと、{{goto SrmReceive,SrmReceive()}} または {{goto SrmReceiveWait,SrmReceiveWait()}} を呼び出す通常の方法でデータを受信しようと試みるべきではありません。なぜなら、これらの関数は受信キューへの直接のアクセスと衝突するからです。 ---- '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmReceiveWindowClose,SrmReceiveWindowClose()}} !{{anchor SrmSend}}SrmSend 関数 {{goto top,^TOP^}} '''目的''' データのブロックを指定されたポートから送ります。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' UInt32 SrmSend ( UInt16 portId, const void *bufP, UInt32 count, Err *errP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ bufP}} **送られるデータへのポインタ *{{span style='color:blue;font-family:monospace;',→ count}} **データ バッファの長さ。バイト数。 *{{span style='color:blue;font-family:monospace;',← errP}} **エラー コード。詳細はコメントを参照してください。 '''返り値''' 実際に送られたデータのバイト数を返します。 '''コメント''' {{span style='color:blue;font-family:monospace;',SrmSend}} が返るとき、{{span style='color:blue;font-family:monospace;',errP}} パラメータに収められて返される値をチェックすべきです。{{span style='color:blue;font-family:monospace;',errNone}} の場合、データ バッファ全体が送られました。{{span style='color:blue;font-family:monospace;',errNone}} ではない場合、結果はエラーが起こる前に送られたバイト数になります。起こり得るエラーは以下の通りです。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrTimeOut}} **指定された CTS タイムアウト期間内にデータを送ることができませんでした。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 *{{span style='color:blue;font-family:monospace;',serErrConfigurationFailed}} **ポート コンフィグレーションは失敗しました。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmSendCheck,SrmSendCheck()}}, {{goto SrmSendFlush,SrmSendFlush()}}, {{goto SrmSendWait,SrmSendWait()}} !{{anchor SrmSendCheck}}SrmSendCheck 関数 {{goto top,^TOP^}} '''目的''' 伝送 FIFO をチェックし、送られずに残ったバイト数を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmSendCheck ( UInt16 portId, UInt32 *numBytesP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',← numBytesP}} **FIFO キューの中に残されたバイト数 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' すべてのシリアル マネージャがこの特性(訳者注: この関数?)をサポートするわけではありません。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmSend,SrmSend()}}, {{goto SrmSendFlush,SrmSendFlush()}}, {{goto SrmSendWait,SrmSendWait()}} !{{anchor SrmSendFlush}}SrmSendFlush 関数 {{goto top,^TOP^}} '''目的''' 伝送 FIFO を消去します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmSendFlush ( UInt16 portId ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmSend,SrmSend()}}, {{goto SrmSendCheck,SrmSendCheck()}}, {{goto SrmSendWait,SrmSendWait()}} !{{anchor SrmSendWait}}SrmSendWait 関数 {{goto top,^TOP^}} '''目的''' 前のデータが伝送 FIFO から送られるまで待ち、それから返ります。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmSendWait ( UInt16 portId ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrTimeOut}} **CTS タイムアウト期間内にデータを送ることができませんでした。 *{{span style='color:blue;font-family:monospace;',serErrNotSupported}} **ポートはフォアグランド ポートではありません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' ソフトウェアが {{goto SrmSend,SrmSend()}} によってすべてのデータが伝送されたときを検出する必要がある場合、この関数を呼び出すことを考えてください。{{span style='color:blue;font-family:monospace;',SrmSend}} 関数は、すべてのデータが伝送されるか、タイムアウトが起こるまで、(訳者補足: この関数を)ブロックします。それに続く {{span style='color:blue;font-family:monospace;',SrmSendWait}} 呼び出しは、伝送される対象のすべてのデータ キューが伝送されるか、もう 1 つの CTS タイムアウトが起こる(CTS ハンドシェイクが使用可能になっている場合)まで、(訳者補足: その次のルーチン)をブロックします。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmSend,SrmSend()}}, {{goto SrmSendCheck,SrmSendCheck()}}, {{goto SrmSendFlush,SrmSendFlush()}} !{{anchor SrmSetReceiveBuffer}}SrmSetReceiveBuffer 関数 {{goto top,^TOP^}} '''目的''' 新しいバッファをシリアル マネージャの受信キューにインストールします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmSetReceiveBuffer ( UInt16 portId, void *bufP, UInt16 bufSize ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ bufP}} **新しい受信バッファへのポインタ。{{span style='color:blue;font-family:monospace;',burSize}} が {{span style='color:blue;font-family:monospace;',NULL}} の場合無視されます。 *{{span style='color:blue;font-family:monospace;',→ bufSize}} **新しい受信バッファのサイズ(バイト数)。このバッファを削除して、新しいデフォルトのバッファ(512 バイト)を割り当てるには、{{span style='color:blue;font-family:monospace;',NULL}} を指定します。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',memErrNotEnoughSpace}} **デフォルトのバッファを割り当てるのに十分なメモリがありません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' この関数に渡すバッファは、シリアル ポートをオープンしている間、割り当てを受けたままでいなければなりません。シリアル ポートをクローズする前に、{{span style='color:blue;font-family:monospace;',bufP}} と {{span style='color:blue;font-family:monospace;',bufSize}} 引数として {{span style='color:blue;font-family:monospace;',NULL}} と一緒に {{span style='color:blue;font-family:monospace;',SrmSetReceiveBuffer}} を呼び出すことによってデフォルトのキューに戻さなければなりません。 ---- '''重要:''' アプリケーションは、ポートをクローズする前(または新しい受信キューを配置する前)に、デフォルトのバッファをインストールしなくてはなりません。 ---- '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 !{{anchor SrmSetWakeupHandler}}SrmSetWakeupHandler 関数 {{goto top,^TOP^}} '''目的''' ウェイクアップ ハンドラをインストールします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' Err SrmSetWakeupHandler ( UInt16 portId, WakeupHandlerProcPtr procP, UInt32 refCon ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ portID}} **{{goto SrmOpen,SrmOpen()}} または {{goto SrmExtOpen,SrmExtOpen()}} から返されるポート ID *{{span style='color:blue;font-family:monospace;',→ procP}} **{{goto WakeupHandlerProcPtr,WakeupHandlerProcPtr()}} 関数へのポインタ。ハンドラを削除するには {{span style='color:blue;font-family:monospace;',NULL}} を指定します。 *{{span style='color:blue;font-family:monospace;',→ refCon}} **ウェイクアップ ハンドラ関数に渡されるユーザ定義データ。これはポインタにもそれ以外にもなり得ます。 '''返り値''' この関数は以下のエラー コードを返します。 *{{span style='color:blue;font-family:monospace;',errNone}} **エラーはありません。 *{{span style='color:blue;font-family:monospace;',serErrBadPort}} **このポートは存在しません。 *{{span style='color:blue;font-family:monospace;',serErrNotOpen}} **ポートはオープンされていません。 *{{span style='color:blue;font-family:monospace;',serErrNoDevicesAvail}} **シリアル デバイスは見つかりませんでした。 '''コメント''' ウェイクアップ ハンドラは、指定されたポート上に受信されるために準備されたデータがあるときならいつでも呼び出されることを望むアプリケーションの中の関数です。 ウェイクアップ ハンドラ関数は、{{goto SrmPrimeWakeupHandler,SrmPrimeWakeupHandler()}} によって 0 よりも大きなバイト数を与えられるまで、アクティブにはなりません。ウェイクアップ ハンドラが呼び出されるたびに、それは再度呼び出されるために({{span style='color:blue;font-family:monospace;',SrmPrimeWakeupHandler}} によって)データを与えられなければなりません。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmPrimeWakeupHandler,SrmPrimeWakeupHandler()}}, {{goto WakeupHandlerProcPtr,WakeupHandlerProcPtr()}} !!{{anchor シリアル マネージャ アプリケーション定義関数}}シリアル マネージャ アプリケーション定義関数 {{goto top,^TOP^}} !{{anchor WakeupHandlerProcPtr}}WakeupHandlerProcPtr 関数 {{goto top,^TOP^}} '''目的''' シリアル マネージャの割り込み関数によっていくつかのバイト数かが受信された後に呼び出されます。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SerialMgr.h}} '''Prototype''' void ( *WakeupHandlerProcPtr )( UInt32 refCon ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ refCon}} **{{goto SrmSetWakeupHandler,SrmSetWakeupHandler()}} 関数から渡されるユーザ定義データ '''返り値''' 返り値はありません。 '''コメント''' このハンドラ関数は {{goto SrmSetWakeupHandler,SrmSetWakeupHandler()}} 呼び出しによってインストールされます。それが呼び出された後に、{{goto SrmPrimeWakeupHandler,SrmPrimeWakeupHandler()}} によってバイト数が指定されます。 ---- '''重要:''' ウェイクアップ ハンドラは割り込み時の間に呼び出されるため、それらは {{goto SrmReceive,SrmReceive()}} を含むいかなる Palm OS 関数も呼び出すことができません。そうした場合、いずれかの形でシステムをブロックすることになるかもしれません。ウェイクアップ ハンドラはまた、割り込み遅れを小さくするために、非常に短時間で終了するものであるべきです。 ---- ウェイクアップ ハンドラの 2 つの共通な実装は以下のことを含みます。 *{{goto EvtWakeup,EvtWakeup()|Palm OS Programmer's API Reference/53}} の呼び出し。これは、いずれかの返されるべき {{span style='color:blue;font-family:monospace;',EvtGetEvent}} の保留を引き起こし、それから現在のアプリケーションに {{span style='color:blue;font-family:monospace;',nilEvent}} を送ります。 *ブロックすることなしに受信キューへの直接のアクセスを取得するために {{goto SrmReceiveWindowOpen,SrmReceiveWindowOpen()}} と {{goto SrmReceiveWindowClose,SrmReceiveWindowClose()}} を使用する。 '''互換性''' {{goto New Serial Manager Feature Set Version 1,New Serial Manager Feature Set Version 1|Palm OS Programmer's API Reference/B}} が満たされる場合にのみ、実装されます。 '''参照''' {{goto SrmPrimeWakeupHandler,SrmPrimeWakeupHandler()}}, {{goto SrmSetWakeupHandler,SrmSetWakeupHandler()}} ---- [[← 69 章に戻る|Palm OS Programmer's API Reference/69]] [[↑トップへ|Palm OS Programmer's API Reference]] [[71 章に進む →|Palm OS Programmer's API Reference/71]]