CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
構造体 nn::pia::clone::CloneProtocol::Setting

初期化時に指定する設定構造体です。 [詳細]

Public 型

enum  ClockPriorityJudgeMethod {
  ClockPriorityJudgeMethod_Simple = 0,
  ClockPriorityJudgeMethod_Impartial,
  ClockPriorityJudgeMethod_UserDefine
}
 別のステーション間で同時刻に起こった事柄を、どちらが先に起こった事として扱うかを判定する方法を表します。 [詳細]
 
enum  ClockType {
  ClockType_Rtc = 0,
  ClockType_Frame
}
 何を基準として時刻を進めるかを表します。 [詳細]
 

Public メソッド

 Setting ()
 デフォルトコンストラクタです。
 

Public 変数

int ackBufferNum
 Ack 用バッファの数を指定します。
 
uint32_t clockPerFrame
 1 フレームあたりに進める時刻の値を指定します。
 
float clockPerSec
 1 秒あたりに進める時刻の値を指定します。
 
ClockPriorityJudgeFunction clockPriorityJudgeFunction
 別のステーション間で同時刻に起こった事柄を、どちらが先に起こった事として扱うかを判定する関数を指定します。
 
ClockPriorityJudgeMethod clockPriorityJudgeMethod
 別のステーション間で同時刻に起こった事柄を、どちらが先に起こった事として扱うかを判定する方法を指定します。
 
float clockRegulationRate
 時刻の再調整を行う際に、時刻の進め方を加速/減速する割合を指定します。
 
ClockType clockType
 時刻を進める基準を指定します。
 
uint32_t dataCompressionLevel
 送信データの圧縮レベルを指定します。
 

説明

初期化時に指定する設定構造体です。

通信するステーション間で同じ値を指定する必要があります。

列挙型

別のステーション間で同時刻に起こった事柄を、どちらが先に起こった事として扱うかを判定する方法を表します。

列挙型の値:
ClockPriorityJudgeMethod_Simple 

ステーション ID の値の小さいステーションで起こった事柄の方が先として扱います。

ClockPriorityJudgeMethod_Impartial 

時刻ごとに優先順を変えることにより、長期的にはステーション間で有利不利が出ないように判定します。

ClockPriorityJudgeMethod_UserDefine 

判定方法をアプリケーションで指定します。

何を基準として時刻を進めるかを表します。

列挙型の値:
ClockType_Rtc 

RTC を基準に時刻を進めます。

ClockType_Frame 

CloneProtocol::UpdateClock() の呼び出し回数を基準に時刻を進めます。

コンストラクタとデストラクタ

nn::pia::clone::CloneProtocol::Setting::Setting ( )
inline

デフォルトコンストラクタです。

デフォルト値で初期化されます。

変数

int nn::pia::clone::CloneProtocol::Setting::ackBufferNum

Ack 用バッファの数を指定します。

バッファ 1 個につき、約 1.5 KB のメモリを消費します。1 以上の値を指定する必要があります。実際に通信中に使用されたバッファの数の最大値は、CloneProtocol::GetAckBufferUsedNumMax() で取得できます。

参照
GetAckBufferUsedNumMax
uint32_t nn::pia::clone::CloneProtocol::Setting::clockPerFrame

1 フレームあたりに進める時刻の値を指定します。

CloneProtocol::Setting::clockTypeCloneProtocol::Setting::ClockType_Frame 以外を指定した場合は、この設定は無視されます。

参照
clockType
float nn::pia::clone::CloneProtocol::Setting::clockPerSec

1 秒あたりに進める時刻の値を指定します。

CloneProtocol::Setting::clockTypeCloneProtocol::Setting::ClockType_Rtc 以外を指定した場合は、この設定は無視されます。

参照
clockType
ClockPriorityJudgeFunction nn::pia::clone::CloneProtocol::Setting::clockPriorityJudgeFunction

別のステーション間で同時刻に起こった事柄を、どちらが先に起こった事として扱うかを判定する関数を指定します。

CloneProtocol::Setting::clockPriorityJudgeMethodCloneProtocol::Setting::ClockPriorityJudgeMethod_UserDefine 以外を指定した場合は、この設定は無視されます。

参照
clockPriorityJudgeMethod;
ClockPriorityJudgeMethod nn::pia::clone::CloneProtocol::Setting::clockPriorityJudgeMethod

別のステーション間で同時刻に起こった事柄を、どちらが先に起こった事として扱うかを判定する方法を指定します。

CloneProtocol::Setting::ClockPriorityJudgeMethod_UserDefine を指定した場合は、判定関数を CloneProtocol::Setting::clockPriorityJudgeFunction に指定する必要があります。

参照
clockPriorityJudgeFunction
float nn::pia::clone::CloneProtocol::Setting::clockRegulationRate

時刻の再調整を行う際に、時刻の進め方を加速/減速する割合を指定します。

CloneProtocol::RegulateClock() で時刻を再調整する際、ここで指定した割合だけ通常時の時刻の進み方より速く/遅く時刻を進めます。 例えば 0.1 を指定した場合、他のステーションより時刻が遅れている場合は、通常時と比べ 110% の速さで時刻が進みます。 逆に他のステーションより時刻が進んでいる場合は、通常時と比べ 90% の速さで時刻が進みます。

ClockType nn::pia::clone::CloneProtocol::Setting::clockType

時刻を進める基準を指定します。

CloneProtocol::Setting::ClockType_Rtc を指定した場合は、RTC を基準に時刻を進めます。 開始時に時刻調整がされた後はステーション間で時刻がずれることを考慮する必要はありませんが、 CloneProtocol::UpdateClock() の呼び出しのタイミングによって、1 フレームあたりに進む時刻が一定ではなくなります。 時刻を進める速さを clockPerSec で指定する必要があります。

CloneProtocol::Setting::ClockType_Frame を指定した場合は、通常は CloneProtocol::UpdateClock() 呼び出しあたりに進む時刻の値が一定になります。 ただし、処理落ちなどで CloneProtocol::UpdateClock() の呼び出し回数がステーション間でずれた場合に、 ステーション間で時刻が一致しなくなる可能性があります。 時刻を進める速さを clockPerFrame で指定する必要があります。

時刻管理の詳細についてはプログラミングマニュアルを参照してください。

参照
clockPerSec
clockPerFrame
uint32_t nn::pia::clone::CloneProtocol::Setting::dataCompressionLevel

送信データの圧縮レベルを指定します。

CloneProtocol::CompressionLevelNone を指定すると圧縮を行いません。 CloneProtocol::CompressionLevelLow が速度重視、CloneProtocol::CompressionLevelHigh が圧縮率重視となります。 CloneProtocol::CompressionLevelMiddle はその中間です。 デフォルト値は CloneProtocol::CompressionLevelNone です。 これらの値以外はサポート対象外です。 プラットフォームの CPU 性能によって処理時間が大きく変動します。