# WM_StartScan

## 構文

      #include <nitro/wm.h>

      WMErrCode WM_StartScan( WMCallbackFunc callback , const WMScanParam* param );

## 引数

callback | 非同期処理が完了した時に呼び出されるコールバック関数を指定します。 このコールバックは割り込みハンドラ内から呼び出されます。
param | スキャン情報を示す構造体へのポインタを指定します。 スキャン結果の情報はparam->scanBufにARM7が直接書き出しますので、キャッシュに注意して下さい。

## 返り値

WMErrCode列挙型の処理結果を返します。

## 説明

この関数の使用は推奨されていません。AP や親機が複数台存在している無線環境下において、親機を見つけるのに数十秒といった長い時間を要することがあります。代わりに、複数のビーコン情報を一度に取得できる WM_StartScanEX 関数の利用を検討してください。

親機の探索を開始します。WMがIDLEステート、もしくはSCANステートの時にのみ実行可能であり、IDLEステートの場合はSCANステートに移行します。 APIの戻り値がWM_ERRCODE_OPERATINGであった場合、探索が完了した時にコールバックが発生します。
１回の呼び出しで取得できる親機情報は１台分のみです。複数台の親機情報を取得する為には何度もこの関数を呼び出す必要があり、 かつ同じ親機情報を取得する場合があります。 探索が完了した時点で親機が見つからなかった場合には、親機未発見を示すコールバックが発生します。 WM_EndScanを呼び出さずに連続して呼び出しても構いません。
基本的にはparamで指定した無線チャンネルのみ探索しますが、隣接するチャンネルの親機情報を拾う場合があります。全てのチャンネルの親機を探索する場合はWM_GetAllowedChannelで親機がいるチャンネルの目星をつけた上で、アプリケーション側で巡回してください。

## 参照

`WM_EndScan, WM_StartConnect, WM_Disconnect, WM_GetAllowedChannel`

## 履歴

2007/10/04 非推奨関数であることを明記
2005/06/08 コールバックが割り込みハンドラから呼び出される旨を補足
2004/10/22 返り値の型を変更
2004/09/21 説明の追加
2004/08/10 説明の修正
2004/08/02 構造体名の統一
2004/07/29 説明の追加等
2004/07/23 初版