# WMParentParam

## 定義

  `#include <nitro/wm.h>`

      typedef struct WMParentParam
      {
          u16*    userGameInfo;
          u16     userGameInfoLength;
          u16     padding
          u32     ggid;
          u16     tgid;
          u16     entryFlag;
          u16     maxEntry;
          u16     multiBootFlag;
          u16     KS_Flag;
          u16     CS_Flag;
          u16     beaconPeriod;
          u16     rsv1[4];
          u16     rsv2[8];
          u16     channel;
          u16     parentMaxSize;
          u16     childMaxSize;
          u16     rsv[4];

      } WMParentParam;

## 要素

userGameInfo | ユーザーゲーム情報へのポインタです。
userGameInfoLength | ユーザーゲーム情報のバイト単位でのサイズです。最大で 112 バイトまで指定することが出来ます。
ggid | ゲームグループIDです。タイトルやシリーズごとに割り当てられます。4バイトのデータとして指定して下さい。
tgid | テンポラリーグループIDです。親機として活動を開始する度に異なる値である必要があります。
entryFlag | 子機からの接続を許可するフラグです。0 か 1 を指定して下さい。1 の場合に、子機からの接続を許可します。
maxEntry | 接続を許可する子機の数です。この数を越えて子機が接続してきた場合、接続が拒否されます。 最大15台までの子機と接続することが可能ですので、1 〜 15 の値を指定して下さい。
multiBootFlag | マルチブート親機であることを示すフラグです。0 か 1 を指定して下さい。 1 の場合に、マルチブート用のデータを送信する親機として活動します。 なお、マルチブート親機となる場合は MB ライブラリにより自動的に 1 に設定されますので、通常は 0 を指定して下さい。
KS_Flag | 過去との互換性のために用意されているフィールドです。0を指定してください。
CS_Flag | 過去との互換性のために用意されているフィールドで、現在は使用されていません。
beaconPeriod | 子機に対するブロードキャストデータ(当構造体のデータ)を定期的に送信する間隔をms単位で指定します。10 〜 1000 の値を指定して下さい。 通常はWM_GetDispersionBeaconPeriod( )にて取得した値を指定して下さい。
rsv1 rsv2 | 予約された領域です。これらのメンバは将来削除される可能性があります。
channel | 親機として活動する無線チャンネルを指定します。 1 〜 13 の値の内、WM_GetAllowedChannel( )にて使用許可を確認できたチャンネルを指定して下さい。
parentMaxSize | MP 通信の親機送信容量のデフォルト値を指定します。送信容量は2の倍数である必要があります。 最大で 512 バイトまでの値を指定できます。
childMaxSize | MP 通信の子機送信容量のデフォルト値を指定します。送信容量は2の倍数である必要があります。 最大で 512 バイトまでの値を指定できます。

## 説明

親機として活動を開始する際に設定すべき情報をまとめた構造体です。
userGameInfoにはユーザ定義の自由なデータをセットすることができます。WM_SetGameInfo( )で後から変更することが可能です。
userGameInfoLengthは最大でWM_SIZE_USER_GAMEINFOバイトです（現時点では112バイト）。
entryFlagはWM_SetEntry( )で後から変更することが可能です。
beaconPeriodをあまり短く設定すると、通常のMP通信が阻害されます。数百msに設定するのが標準的です。
channelはWM_GetAllowedChannel( )で許可されたチャンネルの中から1つを選んで指定してください。
parentMaxSize および childMaxSize は親子それぞれの送信容量のデフォルト値を指定しますが、プログラミングガイドラインに記載されている通りの制限があります。 無線通信時間計算シートを用いて、1回のMP通信にかかる時間が 5600μs を超えないように設定してください。
KS_Flag は過去との互換のために残されているフィールドです。0 を指定するようにしてください。 なお、過去との互換のため、KS_Flagを 1 に設定すると内部的に parentMaxSizeに 36+6、childMaxSizeに 2+4 が加算されます。

## 履歴

2005/12/08 キーシェアリング関連の記述を削除
2005/12/08 送信容量は偶数である必要があることを明記
2005/12/06 「最大送信サイズ」を「送信容量のデフォルト値」に変更
2005/03/14 リンク先のミスを訂正
2005/03/02 構造体メンバの指定可能範囲について追記
2004/11/12 userGameInfoLength の単位について追記
2004/10/18 beaconPeriodに指定すべき値について追記
2004/10/04 ゲームグループIDをu32型に変更
2004/09/24 説明の追加
2004/09/21 説明の追加
2004/08/27 構造体メンバの変更に伴う修正
2004/08/02 構造体名の統一
2004/07/29 初版