様々なデータから、記録・ラップタイムが計算されるまでの仕組みを説明します。
Mulka2では、[手動計時]・[第1計時]・[第2計時]の3種類のデータを持っており、それらをもとに記録を計算しています。
それらは矛盾した値になっている場合がありますので、優先順位をつけて使用しています。
大きくは、[手動計時]>[第1計時]>[第2計時]という優先順位があり、それぞれの中で[所要時間]>[フィニッシュ時刻]という扱いになっています。
まず、[手動計時]の中に[所要時間]・[フィニッシュ時刻]のいずれかの値が入っていないかを確認します。 入っていれば、それらの値から最終的な所要時間・フィニッシュ時刻を決定します。
[所要時間]と[フィニッシュ時刻]の両方が入っている場合、[所要時間]の方が優先されます。 最終的なフィニッシュ時刻はスタート時刻+[所要時間]が採用され、手動計時の[フィニッシュ時刻]の値は無視されます。 ただし、スタート時刻のデータが無い場合は、例外的に[所要時間]・[フィニッシュ時刻]の両方の値が採用され、 スタート時刻は[フィニッシュ時刻]−[所要時間]であると処理されます。
どちらか片方のみに値が入っている場合は、それぞれの値からもう一方の値が計算で補完されます。
[所要時間]のみがある場合、フィニッシュ時刻=スタート時刻+[所要時間]となり、
[フィニッシュ時刻]のみある場合は、所要時間=[フィニッシュ時刻]−スタート時刻になります。
スタート時刻のデータが無い場合は補完が行われず、[フィニッシュ時刻]が無い場合には所要時間が計算できないため
「記録を計算できません」というエラーが表示されます。
[手動計時]の中に[所要時間]・[フィニッシュ時刻]のいずれかの値が入っていた場合には、 上記ステップで最終的な所要時間・フィニッシュ時刻が決まり、[第1計時]・[第2計時]にある [所要時間]・[フィニッシュ時刻]は使用されません。 [手動計時]の中に値が無かった場合には、[第1計時]の値を使って上記と同じ判断を行います。 [第1計時]の中に値が無ければ、[第2計時]の値を使用して同様のことを行います。
EカードやSIカードの読み取り結果は[第2計時]に格納されます。 [手動計時]や[第1計時]に[所要時間]または[フィニッシュ時刻]の値がある場合は、 EカードやSIカードのタイムは使用されず、[ペナチェック結果]のみが有効になる場合があります。
Eカードを使用した場合、リフトアップスタートかつパンチングフィニッシュの場合には [所要時間]にEカード内の記録が格納され、優先的に使用されます。 またパンチングフィニッシュの場合には、[フィニッシュ時刻]にEカード読み取りに使用したPCの時計から 逆算したフィニッシュ時刻が格納され、リレー競技などでリフトアップスタートではなかった場合にこのタイムが活用されます。
SIカードを使用した場合、パンチングフィニッシュの場合にのみ[フィニッシュ時刻]に値が格納されます。 パンチングスタートした場合でも[所要時間]には値は格納されません。 (パンチングスタートの時刻は後述のスタートゲート時刻に格納されます。)
光電管やオンラインフィニッシュコントロールのタイムは、[第1計時]や[第2計時]の[フィニッシュ時刻]に格納されます。 どちらに格納すべきかは、そのタイムの正確さによって決まります。
光電管を使用した場合、そのタイムは正確ですので[第1計時]に格納します。 この場合、EカードやSIカードの所要時間・フィニッシュ時刻は使用されません。
オンラインフィニッシュコントロールを使用した場合、そのタイムが正確であれば[第1計時]に、そうでなければ[第2計時]に格納します。 EMITの場合PCの時計を使いますが、これはそれほど正確ではないので[第2計時]に格納したほうが無難です。 [第2計時]に格納した場合、EカードやSIカードを読み取ることで、タイムは上書きされます。
スタート時刻に関するデータは、[スタートリスト指定時刻]・[スタートゲート時刻]・[チェンジオーバー時刻]の3種類があります。
優先順位は、[スタートゲート時刻]>[スタートリスト指定時刻]>[チェンジオーバー時刻]で、優先度のより高い値があれば
それがスタート時刻として採用されます。
なお、このスタート時刻は成績計算の起点となる時刻であり、選手が遅刻した場合の実際のスタート時刻を意味しない点に注意してください。
通常はスタートリストでスタート時刻が指定されていますので、その値[スタートリスト指定時刻]がそのまま採用されます。
リレー競技の場合は、2走以降の選手はスタート時刻が指定されておらず、前走者のフィニッシュ時刻がスタート時刻になります。
RelayTeam.datで前走者・次走者の関係が設定されていれば、前走者のフィニッシュ時刻が[チェンジオーバー時刻]として採用されます。
リスタートになった場合は、リスタート時刻を[スタートリスト指定時刻]に設定すると、前走者のフィニッシュ時刻ではなくリスタートの時刻が
その選手のスタート時刻として優先的に使用されるようになります。
スタートゲートを使用した場合、あるいはSIカードを利用してパンチングスタートをした場合には、その時刻が最優先でスタート時刻に採用されます。 この場合、事前に指定されたスタート時刻ではなく、実際にスタートした時刻から成績が計算されることに注意して下さい。 なお、パンチングスタートのタイムが採用されるのは、コース設定でリフトアップスタートに設定されている場合に限ります。
いずれにも値が入っていなかった場合、[所要時間]・[フィニッシュ時刻]のいずれにも値がある場合にはその差がスタート時刻になります。
(この場合は、優先度が混在しているデータも利用されます。)
EMITでリフトアップスタート・パンチングフィニッシュをした場合、[第2計時]の[所要時間]・[フィニッシュ時刻]両方に値がありますので
ここからスタート時刻が決定されます。
[手動計時]・[第1計時]・[第2計時]の[ペナチェック結果]をもとに、最終的なペナチェック結果を決定します。
優先順位は、これまでと同様に[手動計時]>[第1計時]>[第2計時]ですが、
所要時間とフィニッシュ時刻の決定に使用したデータとは別の優先順位のデータが使われる場合があります。
例えば、所要時間とフィニッシュ時刻は[第1計時]で決めたが、[第1計時]の[ペナチェック結果]に値が無い場合(通常そうなります)、
[第2計時]の[ペナチェック結果]に値があればそれが採用されます。
[手動計時]の[記録加算]に値がある場合は、最終的な所要時間やフィニッシュ時刻が補正されます。 最終的な所要時間は、今までのステップで算出されてきた値に対し[記録加算]の分だけ加算されます。 最終的なフィニッシュ時刻は、フィニッシュ時刻がスタート時刻+所要時間で計算されている場合に限り、[記録加算]の分だけ加算されます。 フィニッシュ時刻のデータが先に存在し、所要時間がフィニッシュ時刻−スタート時刻で計算されている場合には、スタート時刻が[記録加算]の分だけ減算されます。 このような過程で補正されるため、最終的に画面に表示されるフィニッシュ時刻は、[第1計時]・[第2計時]の[フィニッシュ時刻]とは異なる場合があります。
また、[第1計時]・[第2計時]の[非計測タイム]に値がある場合は、最終的な所要時間が補正されます。
今までのステップで算出されてきた最終的な所要時間に対し[非計測タイム]の分だけ減算されます。
[第1計時]・[第2計時]の両方に値がある場合は、[第1計時]の値のみが使用されます。
以上のステップで算出した、最終的な所要時間と最終的なペナチェック結果で、最終的な記録が決定されます。
最終的なペナチェック結果が空または「OK」の場合、最終的な所要時間が最終的な記録になります。
そうでない場合は、最終的なペナチェック結果が最終的な記録になります。
1番コントロールから最終コントロールまでの各ラップタイムは、Eカードに記録されている値がそのまま利用されます。
スタートから1番まで・最終コントロールからフィニッシュまでのラップタイムは条件によって計算方法が変わります。
1番コントロールから最終コントロールまでの各ラップタイムは、SIカードに記録されている値がそのまま利用されます。
スタートから1番までのラップタイムは、先ほどまでで決定したスタート時刻と SIカードに記録されている1番コントロールのパンチ時刻から計算します。 スタート時刻のデータが無い場合は、 SIカードに記録されているスタートパンチの時刻が代わりに利用されます。
最終コントロールからフィニッシュまでのラップタイムは、 SIカードに記録されている最終コントロールのパンチ時刻と、先ほどまでで決定した最終的なフィニッシュ時刻から計算します。 最終的なフィニッシュ時刻が無い場合には、 SIカードに記録されているフィニッシュパンチの時刻が代わりに利用されます。