# WMPortRecvCallback

## 定義

  `#include <nitro/wm.h>`

      typedef struct WMPortRecvCallback
      {
          u16             apiid;
          u16             errcode;
          u16             state;
          u16             port;
          WMMpRecvBuf*    recvBuf;
          u16*            data;
          u16             length;
          u16             aid;
          u8              macAddress[6];
          u16             seqNo;
          void*           arg;
          u16             myAid;
          u16             connectedAidBitmap;
          u8              ssid[24];
          u16             reason;
          u16             rssi;
          u16             maxSendDataSize;
          u16             maxRecvDataSize;

      }WMPortRecvCallback;

## 要素

apiid | コールバック発生の元となったAPIのIDです。WMApiid列挙型と同義です。 ここではWM_APIID_PORT_RECVに固定となります。
errcode | 非同期処理の結果です。WMErrCode列挙型と同義です。
state | errcodeがWM_ERRCODE_SUCCESSの場合、コールバックの発生した要因種別が格納されます。発生しうる要因は以下の5つです。 WM_STATECODE_PORT_INIT、WM_STATECODE_PORT_RECV、WM_STATECODE_CONNECTED、WM_STATECODE_DISCONNECTED、WM_STATECODE_DISCONNECTED_FROM_MYSELF。
port | データを受信したポートが格納されます。
recvBuf | WMStartMPCallbackとの互換性のために用意されたメンバです。
data | データを受信したバッファのアドレスが格納されます。
length | 受信したデータの長さが格納されます。
aid | 受信したデータの送信元のAIDが格納されます。 WM_STATECODE_CONNECTEDの通知でも相手の端末のAIDが入っていることに注意してください。 子機ならば0（親機のAID）で固定です。
macAddress | stateがWM_STATECODE_CONNECTED、WM_STATECODE_DISCONNECTED、WM_STATECODE_DISCONNECTED_FROM_MYSELFの場合、 接続もしくは切断された子機のMACアドレスが格納されます。
seqNo | シーケンス番号が格納されます。
arg | WM_SetPortCallback( )で指定した引数が格納されます。
myAid | 自分のAIDが格納されます。
connectedAidBitmap | 接続中のAIDのビットマップが格納されます。
ssid | 子機がWM_StartConnect( ) で指定したssidが格納されます。 親機における、WM_STATECODE_CONNECTEDの通知の際にだけ有効です。
reason | stateがWM_STATECODE_DISCONNECTED、WM_STATECODE_DISCONNECTED_FROM_MYSELFの場合、切断された理由を示すコードが格納されます。 ライブラリ内部で使用されるデバッグ目的のメンバです。
rssi | データを受信した際の受信感度が格納されます。
maxSendDataSize | 現在の送信可能なデータサイズです。 親機として動作している場合には親機送信容量が、子機として動作している場合には子機送信容量が格納されます。
maxRecvDataSize | 現在の受信可能なデータサイズです。 親機として動作している場合には子機送信容量が、子機として動作している場合には親機送信容量が格納されます。

## 説明

WM_SetPortCallback( ) で設定したコールバック関数に渡される構造体です。

## 履歴

2009/01/27 rsv メンバの削除、rssi, maxSendDataSize, maxSendDataSize メンバの追加
2006/02/17 stateに返るコードに関する記述を修正
2005/11/14 誤って削除していた rsv メンバに関する記述を復元
2005/10/31 connectedAidBitmap, reason メンバの追加
2005/02/01 myAid と ssid メンバの説明を追加
2004/10/05 MACアドレスをu8型配列に統一
2004/09/13 WM_STATECODE_CHILD_CONNECTED を WM_STATECODE_CONNECTED に変更
2004/08/11 初版