WCM_StartupAsync

構文


#include <nitroWiFi/wcm.h>

s32   WCM_StartupAsync( WCMConfig* config , WCMNotify notify );
				

説明

無線通信機能の起動シーケンスを開始する非同期関数です。
非同期処理が正常に開始された場合に内部状態は WCM_PHASE_WAIT から WCM_PHASE_WAIT_TO_IDLE に変化し、 非同期処理が正常に完了した際に WCM_PHASE_IDLE となります。当関数はこれらの内部状態である時のみ実行することができます。
内部状態が WCM_PHASE_WAIT である時に呼び出した場合のみ、引数として指定した設定がライブラリの内部動作に反映されます。 notify で指定したコールバック関数は、当関数呼び出しに伴って発生した非同期処理の終了通知だけでなく、 以後の全ての非同期的な処理通知が発生する度に呼び出されます。

返り値が WCM_RESULT_ACCEPT であった場合には、対応する非同期処理通知が必ず一回発生し、コールバック関数が呼び出されます。

引数

config WCMConfigの WCM ライブラリ内部動作設定構造体へのポインタを指定します。 内部で使用される DMA 番号、及び無線アクセスポイントの自動探索時の動作設定を行うことができます。 NULL を指定した場合は、デフォルトの設定値が用いられます。
notify 非同期処理通知が発生した際に呼び出されるコールバック関数を指定します。NULL を指定した場合は通知が行われなくなります。
なお、このコールバックは割り込みハンドラ内から呼び出されます。

返り値

以下のいずれかの処理結果を返します。

WCM_RESULT_ACCEPT 非同期シーケンス開始要求が受け付けられ、正常に非同期処理が開始されたことを示します。 非同期処理が終了した際に必ず一回コールバック関数が呼び出されます。
WCM_RESULT_PROGRESS 当関数によって開始された非同期シーケンスが既に実行中であり、多重呼び出しであったことを示します。 多重に呼び出しても非同期処理終了通知は一回しか発生しません。
WCM_RESULT_SUCCESS 無線通信機能の起動シーケンスが既に完了しており、内部状態が WCM_PHASE_IDLE であったことを示します。 非同期処理は開始されませんので、非同期処理終了通知も発生しません。
WCM_RESULT_FAILURE WCM ライブラリが初期化されていない、内部状態が WCM_PHASE_WAITWCM_PHASE_WAIT_TO_IDLEWCM_PHASE_IDLE のいずれかでない、 などの原因で処理に失敗したことを示します。ARM7 への PXI 処理要求の発行に失敗した場合にもこの返り値となりますが、内部状態は WCM_PHASE_IRREGULAR となりますので、 リトライすることはできません。
WCM_RESULT_WMDISABLE 無線通信機能を起動しようとした際に、ARM7 側にて無線ドライバが動作していないため処理が実行できないことを示します。 ARM7 コンポーネントが ichneumon である場合は、WVR ライブラリによって無線ドライバが強制停止されている可能性があります。
また、無線通信を禁止されているニンテンドーDS 本体で処理を実行しようとした場合にもこの返り値となります。
WCM_RESULT_FATAL_ERROR 復旧不可能なエラーが発生したことを示します。内部状態は WCM_PHASE_FATAL_ERROR となり、以後変更されません。

非同期処理結果

notify で指定したコールバック関数に以下のいずれかの非同期処理結果が渡されます。 通知種別は WCM_NOTIFY_STARTUP に固定となります。

WCM_RESULT_SUCCESS 非同期処理に成功し、無線機能が正常に起動されたことを示します。内部状態は WCM_PHASE_IDLE となります。
WCM_RESULT_FAILURE 非同期処理の途中で WM ライブラリから何らかのエラー通知を受けたことを示します。内部状態は WCM_PHASE_IRREGULAR となります。
WCM_RESULT_FAITAL_ERROR 非同期処理の途中で復旧不可能なエラーが発生したことを示します。内部状態は WCM_PHASE_FATAL_ERROR となり、以後変更されません。

参照

WCM_Init, WCM_CleanupAsync, WCM_TerminateAsync, WCMConfig, WCMNotify

履歴

2005/09/10 WCM_RESULT_WMDISABLE について説明を追記
2005/07/22 初版