# WMStartScanExCallback

## 定義

  `#include <nitro/wm.h>`

      typedef struct WMStartScanExCallback
      {
          u16         apiid;
          u16         errcode;
          u16         wlCmdID;
          u16         wlResult;
          u16         state;
          u16         channelList;
          u16         bssDescCount;
          WMBssDesc*  bssDesc[ 16 ];
          u16         linkLevel[ 16 ];

      } WMStartScanExCallback;

## 要素

apiid | コールバック発生の元となったAPIのIDです。WMApiid列挙型と同義です。 ここではWM_APIID_START_SCANに固定となります。
errcode | 非同期処理の結果です。WMErrCode列挙型と同義です。
wlCmdID | errcodeがWM_ERRCODE_FAILEDの場合、無線ファームウェアでエラーとなったコマンドのIDが格納されます。
wlResult | errcodeがWM_ERRCODE_FAILEDの場合、無線ファームウェアでエラーとなった要因コードが格納されます。
state | errcodeがWM_ERRCODE_SUCCESSの場合、コールバックの発生した要因種別が格納されます。発生しうる要因は以下の2つです。 WM_STATECODE_PARENT_NOT_FOUND、WM_STATECODE_PARENT_FOUND。
channelList | 親機の発見・未発見に関わらず、スキャンしたチャンネルのリストがビットフィールド形式で格納されます。
bssDescCount | stateがWM_STATECODE_PARENT_FOUNDの場合に、発見した親機の数が格納されます。
bssDesc | stateがWM_STATECODE_PARENT_FOUNDの場合に、発見したそれぞれの親機情報が格納されているバッファへのポインタ配列が格納されます。 発見した親機により親機情報のデータ長はそれぞれ異なる場合があり、かつ限られた大きさのバッファに効率的に情報を退避する為に、発見された親機情報はバッファ内に詰めて格納されます。 この為、このメンバはWMBssDesc型の配列の先頭へのポインタではなく、WMBssDesc型へのポインタの配列となっている点に注意して下さい。 それぞれの親機情報のデータ実体のサイズは、`WMBssDesc.length` ( ハーフワード(u16)単位 ) に示されます。
linkLevel | stateがWM_STATECODE_PARENT_FOUNDの場合に、発見したそれぞれの親機のリンク強度配列が格納されます。

## 説明

WM_StartScanEx( )に対するコールバック関数に渡される構造体です。

## 履歴

2005/03/02 bssDescメンバについて説明追記
2005/02/14 初版