1
0
Fork 0
mirror of https://github.com/hawkeye-stan/msfs-popout-panel-manager.git synced 2024-11-22 22:00:11 +00:00
msfs-popout-panel-manager/DomainModel/SimConnect/HudBarData737.cs

95 lines
2.6 KiB
C#
Raw Normal View History

2023-07-12 22:41:31 +00:00
using MSFSPopoutPanelManager.DomainModel.Profile;
using MSFSPopoutPanelManager.Shared;
using System;
using System.Reflection;
namespace MSFSPopoutPanelManager.DomainModel.SimConnect
{
public class HudBarData737 : ObservableObject, IHudBarData
{
public HudBarType HudBarType => HudBarType.PMDG_737;
public double ElevatorTrim { get; set; }
public double AileronTrim { get; set; }
public double RudderTrim { get; set; }
public double Flap { get; set; }
public double ParkingBrake { get; set; }
public double GearLeft { get; set; }
public double GearCenter { get; set; }
public double GearRight { get; set; }
public double SimRate { get; set; }
public string ElevatorTrimFormatted => Math.Round(ElevatorTrim / 10, 2).ToString("F2");
public string AileronTrimFormatted => Math.Round(AileronTrim / 16384 * 57, 2).ToString("F2");
public string RudderTrimFormatted => Math.Round(RudderTrim * 2 * 10, 2).ToString("F2");
public string FlapFormatted => MapFlap(Flap);
public string ParkingBrakeFormatted => ParkingBrake > 0 ? "Engaged" : "Disengaged";
public string GearLeftFormatted => MapGear(GearLeft);
public string GearCenterFormatted => MapGear(GearCenter);
public string GearRightFormatted => MapGear(GearRight);
private string MapFlap(double flap)
{
switch (Convert.ToInt32(flap))
{
case 0:
return "0";
case 1:
return "1";
case 2:
return "2";
case 3:
return "5";
case 4:
return "10";
case 5:
return "15";
case 6:
return "25";
case 7:
return "30";
case 8:
return "40";
default:
return "5";
}
}
private string MapGear(double gear)
{
if (gear == 100)
return "DOWN";
if (gear == 0)
return "UP";
return "MOVING";
}
public void Clear()
{
Type type = this.GetType();
PropertyInfo[] properties = type.GetProperties();
for (int i = 0; i < properties.Length; ++i)
{
if (properties[i].SetMethod != null)
properties[i].SetValue(this, 0);
}
}
}
}