MobiFlight|FlyByWireA320NXによるVSの7セグメント表示

2022年5月9日
今回の開発環境 Window 11
MobiFlightバージョン9.3.2
Mega 2560 Arduino互換ボード

この表示は単純では無い。そのままMobiFlightで作成すると「-300」となり「0」が入らないとか、「-」の入れかたなど。

https://github.com/Mobiflight/MobiFlight-Connector/wiki/Tutorial-for-Airbus-VS-display-via-7-Segment-LED-Module

究極の目標

ここでは、FBW(FlyByWire)A32NXプロジェクトのAirbusA320でのV/S値を表示するプロセスについて説明します。
このチュートリアルに続いて、MobiFlight前提条件の使用法と、複数の値を1つのLEDモジュールに結合する方法を示します。

結果は次のようになります。実際の表示通りです。

これは、複数のMobiFlightデータ要素を構成することによって実現されます。

  • 数値データを移動せずに表示値を否定する
  • 10桁と1桁の小さなゼロ
  • V/Sが管理されている場合の適切な「ダッシュ」プレースホルダー

前提条件

このチュートリアルは、MobiFlightがすでに機能していて、Example 7 segment display の例を実行していることを前提としています。

必要なハードウェア:

  • 7セグメントLEDモジュール
  • MobiFlightがサポートするArduino

ソフトウェア:

使用するデータ要素

コンポジットディスプレイを作成するために必要なデータ要素は次のとおりです。 それぞれについては、以下の実装セクションで詳しく説明します。 同じLEDモジュール内の特定のLED文字にさまざまなデータソースを配置します。

Logical ElementSimConnect VariableTransformComparison SettingsUsageLED RangePrecondition
V/S Rate(L:A32NX_AUTOPILOT_VS_SELECTED)Abs($/100)Sim value for V/S2-3V/S is Managed = 0
V/S Rate (Dashes)Literal “–“Sim value for V/S2-3V/S is Managed = 1
V/S Small ZerosLiteral “oo”Two lower case o’s (not zeros)4-5V/S is Managed = 0
V/S Small Zeros (Dashes)Literal “–“Placeholder when V/S is Managed4-5V/S is Managed = 1
V/S SignConditional literal “-“Indicates when a V/S rate is negative1V/S is Managed = 0
V/S Sign (Dashes)Literal “-“Placeholder when V/S is Managed1V/S is Managed = 1
V/S is Managed(L:A32NX_FCU_VS_MANAGED)Indicates is the FCU is managing our V/S

重要:MobiFlightの前提条件の動作により、すべての文字にダッシュプレースホルダー( “——“)の単一のインスタンスを使用することはできません。 LEDの範囲ごとに値/プレースホルダーのペアが必要です(つまり、「V/S Rate:V/Sレート」と「V/Sレート(ダッシュ)」)

実装

まず、以下の赤枠を新規に作成する。V/Sの7セグメント表示だけでこれだけ必要になる。

まず、7セグメントモジュールが構成されていることを確認します。 これには、メインウインドウの[MobiFlight Modulesをクリック。
この例では、「VS7seg Display」という名前を使用します。

V/S Rate

「Output」のマッピングを「V/S Rate」として作成、右のEditボタンでマッピング開始。

「V/S Rate」という名前で新しいマッピングを作成します。
上記の表(使用するデータ要素)に従って、「(L:A32NX_AUTOPILOT_VS_SELECTED)」のSimConnect変数を使用。 値は常に数百で表されるため、値を100で割って、シムの10と1の値を無視します。さらに、MobiFlightは基になる値を右にシフトするため、手動で独自の符号値を指定します。 負の符号に対応するためのディスプレイ。 したがって、 Abs($/100)の変換を含めます。

ここで、前に作成した7セグメントモジュールを指定し、適切な範囲を指定します。必ず、「Use Left Padding」を値「0」でチェックしてください(これにより、値2は02として変換表示されます) :

Testボタンで、ディスプレイが機能していることを確認することができます。ディスプレイには4桁と3桁が表示され、この時点ではまだマイナス記号は表示されません。08となっているがテストボタンでは12と表示される。 この数値は実際にMSFS2020を起動して数値を08にした場合になります。

image

V/S Sign(V/S負符号)

次に、「V/S Sign」という名前で新しいマッピングを作成します。 このマッピングには、SimConnect “(L:A32NX_AUTOPILOT_VS_SELECTED)”をもう一度使用します。 [Compare]タブで、値がゼロ未満の場合は負の符号を表示します。それ以外の場合は、引用符なしの1つのスペース””の空白の文字列値を表示します。 (次のスクリーンショットでは、カーソルの直前の[else set to]フィールドに空白が入力されていることがわかります)

注意!:else set it toのところは必ず空白(半角スペース)を入れること。これで7セグが何も表示しない設定になる。

[Display]タブで、位置に数字1を指定します。

 

これで、シム内でV / Sレートを負の値に変更したときに、位置1に負の符号が適切に表示されることをテストできます。

しかしTestボタンを使っても上の設定で1を指定しているので1としか表示されない。これは実際にMSFS2020を起動して4桁目があ0になる必要があるので、Testボタンでは確認する方法は無い、そのまま進める。

image

VS Small Zeros(小さなゼロ)

これは簡単なものです。 新しいマッピング「V/S Small Zeros」を作成し、変数タイプとしてSimConnectを選択しますが、リテラル値を表示するため、変数を指定しないでください。

[Compare]タブで、[if current value is]がゼロに等しい場合(この場合は常にtrue)、[比較設定 set it to]を変更して「oo」(アルファベットから2つの小文字のo文字)を入力します。

次に、[表示]タブに移動し、位置を4および5として指定します:

この時点で、構成を実行し、シム内で負のV/S値を設定すると、次のように表示されます:

ここでもTestボタンを押しても下2桁で12としか表示されない。

image

VS is Managed

もうすぐです! ここで、V / Sが管理されている場合は、表示されている値をダッシュに置き換えます。 注:すべてのLED文字位置を同時に置き換えることはできません。 これは、フィールドグループ1、2-3、4-5ごとに管理モードと非管理モードを「ペアリング」する方法で実行する必要があります。

まず、マッピングを作成して、V/Sが管理されているかどうかを判断します。

「(L:A32NX_FCU_VS_MANAGED)」のSimConnect変数を使用して、「VS is Managed」構成を作成します。

これで、これを使用して前提条件を(ペアで)作成し、マネージドモードで各フィールドグループを文字通りのダッシュで交換できます。 フィールドの1つであるV/Sレート(文字2〜3)についてこれを説明します。

「V/S Rate」マッピングを編集し、「V/S is Managed」が0に等しい場合にのみマッピングを処理するための前提条件を追加します。

このルールの前提条件を定義します。 前提条件がtrueの場合にのみ、現在の構成が適用されます。 これは便利です。 マルチラジオ用。

ここで、リテラルの「-」値とペアにします(置き換えるフィールドは2桁の長さであるため、2つのダッシュ)。 上記と同じ「比較」トリック(小さなゼロの場合)を使用して、変数が指定されていないSimConnectタイプの新しいマッピング「V/S Rate (Dashes)」を作成し、2つのダッシュを表示します。

[表示]タブで、値を「ペアリング」しているのと同じ表示フィールドを選択します。

次に、[前提条件]タブで、この構成が「V/Sが管理されている」が1に等しい場合にのみ評価されることを示します。

これは、V / Sレートが管理モードのときに、V / Sレートフィールド(数字2〜3)がダッシュに正しく置き換えられていることをテストする良い機会です。

image

残りのプレースホルダー(Placeholders)を完成させる

後残りはV/S Small Zeros (Dahes)とV/S Sign (Dahes)の2つがある。

何も設定しない
小さい0は2つあるのでダッシュも2つ入れる

ダッシュが表示されるのはV/S is Managedが1のときだから1を指定する。

最後にV/S Sign (Dashes)を作成

何も設定しない
負のサインは1つだけなのでダッシュも1つ入れる
ダッシュが表示されるのはV/S is Managedが1のときだから1を指定する。

プロセスが完了すると、正の上昇率のプラス記号を除いて、シムに正確にマップするV / Sインジケーターが表示されます(プラス記号は通常の7セグメントLEDディスプレイでは表示できません)。

以上で完成です。