Skip to content

Commit

Permalink
Merge pull request #29 from metindikbas/add-tug-velocity
Browse files Browse the repository at this point in the history
Add tug velocity
  • Loading branch information
metindikbas authored Jan 25, 2021
2 parents f58b21c + 91d0e20 commit 742aec8
Show file tree
Hide file tree
Showing 12 changed files with 216 additions and 118 deletions.
5 changes: 4 additions & 1 deletion PushbackHelper/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@
<value>0</value>
</setting>
<setting name="WindowHeight" serializeAs="String">
<value>400</value>
<value>440</value>
</setting>
<setting name="TugSpeed" serializeAs="String">
<value>25</value>
</setting>
</PushbackHelper.Properties.Settings>
</userSettings>
Expand Down
3 changes: 2 additions & 1 deletion PushbackHelper/Definitions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ enum EventsEnum
KEY_TUG_HEADING,
KEY_TOGGLE_JETWAY,
KEY_REQUEST_FUEL,
KEY_TOGGLE_AIRCRAFT_EXIT
KEY_TOGGLE_AIRCRAFT_EXIT,
KEY_PARKING_BRAKES
}
enum NotificationGroupsEnum
{
Expand Down
40 changes: 28 additions & 12 deletions PushbackHelper/ExitManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@ class ExitManager
private bool _mainExit;
private bool _cargoExit;
private bool _emergencyExit;
public bool? MainExitEnabled { get; private set; }
public bool? CargoExitEnabled { get; private set; }
public bool? EmergencyExitEnabled { get; private set; }
public bool MainExit { get { return _mainExit; } private set { _mainExit = value; ExitEvent?.Invoke(ExitType.Main, _mainExit); } }
public bool CargoExit { get { return _cargoExit; } private set { _cargoExit = value; ExitEvent?.Invoke(ExitType.Cargo, _cargoExit); } }
public bool EmergencyExit { get { return _emergencyExit; } private set { _emergencyExit = value; ExitEvent?.Invoke(ExitType.Emergency, _emergencyExit); } }
private double[] exitTypeArray;
private double[] exitOpenArray;
private readonly double[] exitTypeArray;
private readonly double[] exitOpenArray;
private uint mainExitIndex;
private uint emergencyExitIndex;
private uint cargoExitIndex;
Expand Down Expand Up @@ -49,7 +52,7 @@ public void ToggleExit(ExitType exitType)
myManager.TransmitEvent(EventsEnum.KEY_TOGGLE_AIRCRAFT_EXIT, emergencyExitIndex + 1);
}
}
private void MyManager_DataRxEvent(RequestsEnum request, SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE data)
private void MyManager_DataRxEvent(RequestsEnum request, SIMCONNECT_RECV_SIMOBJECT_DATA data)
{
try
{
Expand All @@ -70,29 +73,42 @@ private void MyManager_DataRxEvent(RequestsEnum request, SIMCONNECT_RECV_SIMOBJE
* Exit type 2 = Emergency
* Exit type 99 = Unused
*/
if (exitTypeArray[3] == 0) //Type A320
if (exitTypeArray[1] == 0 && exitTypeArray[2] == 0 && exitTypeArray[3] == 0 && exitTypeArray[4] == 1 && exitTypeArray[5] == 1 && exitTypeArray[6] == 2 && exitTypeArray[7] == 2 && exitTypeArray[8] == 99) //Type A320
{
mainExitIndex = 0;
emergencyExitIndex = 3;
cargoExitIndex = 5;
MainExitEnabled = true;
CargoExitEnabled = true;
EmergencyExitEnabled = true;
ExitEvent?.Invoke(ExitType.Unknown, false);
}
else if (exitTypeArray[13] == 1) //Type 747
else if (exitTypeArray[1] == 0 && exitTypeArray[2] == 2 && exitTypeArray[3] == 2 && exitTypeArray[4] == 2 && exitTypeArray[5] == 2 && exitTypeArray[6] == 2 && exitTypeArray[7] == 2 && exitTypeArray[8] == 2) //Type 747
{
mainExitIndex = 10;
emergencyExitIndex = 1;
cargoExitIndex = 12;
MainExitEnabled = true;
CargoExitEnabled = true;
EmergencyExitEnabled = true;
ExitEvent?.Invoke(ExitType.Unknown, false);
}
else if (exitTypeArray[10] == 1) //Type 787
else if (exitTypeArray[1] == 0 && exitTypeArray[2] == 2 && exitTypeArray[3] == 2 && exitTypeArray[4] == 2 && exitTypeArray[5] == 2 && exitTypeArray[6] == 0 && exitTypeArray[7] == 0 && exitTypeArray[8] == 1) //Type 787
{
mainExitIndex = 0;
emergencyExitIndex = 7;
cargoExitIndex = 8;
MainExitEnabled = true;
CargoExitEnabled = true;
EmergencyExitEnabled = true;
ExitEvent?.Invoke(ExitType.Unknown, false);
}
else
{
mainExitIndex = 0;
emergencyExitIndex = 1;
cargoExitIndex = 2;
MainExitEnabled = false;
CargoExitEnabled = false;
EmergencyExitEnabled = false;
ExitEvent?.Invoke(ExitType.Unknown, false);
}
}
else if (request == RequestsEnum.ExitOpenRequest)
Expand All @@ -105,9 +121,9 @@ private void MyManager_DataRxEvent(RequestsEnum request, SIMCONNECT_RECV_SIMOBJE
i++;
}

MainExit = exitOpenArray[mainExitIndex] > .5;
CargoExit = exitOpenArray[cargoExitIndex] > .5;
EmergencyExit = exitOpenArray[emergencyExitIndex] > .5;
MainExit = exitOpenArray[mainExitIndex] > .2;
CargoExit = exitOpenArray[cargoExitIndex] > .2;
EmergencyExit = exitOpenArray[emergencyExitIndex] > .2;
}
}
catch (Exception) { }
Expand Down
Binary file modified PushbackHelper/Images/Xd/Main.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 25 additions & 13 deletions PushbackHelper/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
WindowStyle="None" ResizeMode="CanResizeWithGrip"
WindowStartupLocation="CenterScreen"
Width="300"
Height="400"
Focusable="False" Icon="favicon.ico">
Height="440"
Focusable="False" Icon="favicon.ico" Background="{x:Null}">

<Window.Resources>
<BitmapImage x:Key="xd_main" UriSource="Images/Xd/Main.png"/>
Expand Down Expand Up @@ -111,19 +111,14 @@
</Style.Triggers>
</Style>
</Window.Resources>

<Window.Background>
<ImageBrush x:Name="imageBrush" ImageSource="{StaticResource xd_main}"></ImageBrush>
</Window.Background>


<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="3*"/>
<RowDefinition Height="7*"/>
<RowDefinition Height="15*"/>
</Grid.RowDefinitions>
<Border BorderBrush="Black" Background="Transparent" MouseDown="Border_MouseDown" Grid.RowSpan="2"/>
<Viewbox Grid.Row="0" Viewbox.Stretch="Uniform">
<Grid>
<Grid Background="#474747">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4"/>
<ColumnDefinition Width="80"/>
Expand All @@ -140,8 +135,12 @@
<RowDefinition Height="35"/>
<RowDefinition Height="4"/>
<RowDefinition Height="35"/>
<RowDefinition Height="22"/>
<RowDefinition Height="4"/>
<RowDefinition Height="35"/>
<RowDefinition Height="23"/>
</Grid.RowDefinitions>

<Border BorderBrush="Black" Background="Transparent" MouseDown="Border_MouseDown" Grid.ColumnSpan="9" Grid.RowSpan="7"/>
<Button x:Name="btnTug" Grid.Column="1" Grid.Row="1" Width="80" Height="35" Style="{DynamicResource xdButtonStyle}" IsTabStop="False" Cursor="Hand" Click="BtnTug_Click">
<Label x:Name="lblTug" Foreground="LightGray" Content="TUG" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Button>
Expand All @@ -161,11 +160,23 @@
<Button x:Name="btnOpenCargoDoor" Grid.Column="5" Grid.Row="3" Width="80" Height="35" Style="{DynamicResource xdButtonStyle}" IsTabStop="False" Cursor="Hand" Click="BtnAircraftDoorCargo_Click">
<TextBlock x:Name="lblCargoDoor" Foreground="LightGray" HorizontalAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center">CARGO<LineBreak/>DOOR</TextBlock>
</Button>
<Label x:Name="lblSimStatus" Grid.Column="0" Grid.Row = "5" Grid.ColumnSpan="9" Content="DISCONNECTED" FontSize="9" Foreground="LightGray" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Button x:Name="btnParkingBrake" Grid.Column="1" Grid.Row="5" Width="80" Height="35" Style="{DynamicResource xdButtonStyle}" IsTabStop="False" Cursor="Hand" Click="BtnParkingBrake_Click">
<TextBlock x:Name="lblParkingBrake" Foreground="LightGray" HorizontalAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center">PARKING<LineBreak/>BRAKE</TextBlock>
</Button>
<Slider x:Name="speedSlider" Margin="10,15,10,5" Grid.Column="3" Grid.Row="5" Grid.ColumnSpan="3" ValueChanged="SpeedSlider_ValueChanged">
<Slider.LayoutTransform>
<ScaleTransform CenterX="0" CenterY="0" ScaleX="1" ScaleY="0.75"/>
</Slider.LayoutTransform>
</Slider>
<TextBlock x:Name="textSlider" Margin="0,5,0,0" Text="TUG SPEED" Grid.Column="3" Grid.Row="5" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="9" Foreground="LightGray" FontFamily="Arial"/>
<Label x:Name="lblSimStatus" Grid.Column="0" Grid.Row = "7" Grid.ColumnSpan="9" Content="DISCONNECTED" FontSize="9" Foreground="LightGray" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Viewbox>
<Viewbox Grid.Row="1" Viewbox.Stretch="Uniform">
<Grid>
<Grid.Background>
<ImageBrush x:Name="imageBrush" ImageSource="{StaticResource xd_main}"></ImageBrush>
</Grid.Background>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="180"/>
Expand All @@ -177,6 +188,7 @@
<RowDefinition Height="60"/>
</Grid.RowDefinitions>

<Border BorderBrush="Black" Background="Transparent" MouseDown="Border_MouseDown" Grid.ColumnSpan="3" Grid.RowSpan="3"/>
<Label x:Name="lblPushbackStatus" Grid.Column="1" Grid.Row="1" Content="DISABLED" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="9" Foreground="LightGray" FontFamily="Arial"/>
<Button x:Name="btnLeft" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" Width="119" Height="53" Style="{DynamicResource xdCurvedButtonStyle}" IsTabStop="False" Cursor="Hand" Click="BtnLeft_Click">
<Button.LayoutTransform>
Expand Down
41 changes: 34 additions & 7 deletions PushbackHelper/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public MainWindow()
var height = Properties.Settings.Default.WindowHeight;

// Restore window location
if (top != 0 || left != 0 || height != 400)
if (top != 0 || left != 0 || height != 440)
{
WindowStartupLocation = WindowStartupLocation.Manual;
Top = top;
Expand All @@ -42,30 +42,37 @@ public MainWindow()
exitManager = new ExitManager(simConnectManager);
exitManager.ExitEvent += ExitManager_ExitEvent;
servicesManager = new ServicesManager(simConnectManager);
servicesManager.ParkingBrakeEvent += ServicesManager_ParkingBrakeEvent;
speedSlider.Value = Properties.Settings.Default.TugSpeed;
speedSlider.Minimum = 5;
speedSlider.Maximum = 50;
tugManager.SetSpeed(Properties.Settings.Default.TugSpeed);
btnOpenMainDoor.IsEnabled = false;
btnOpenCargoDoor.IsEnabled = false;
btnOpenEmergencyDoor.IsEnabled = false;

simConnectManager.Start();
}

protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
{
SetHeight(sizeInfo.NewSize.Height);
}
private void SetHeight(double height)
{
if (height < 100)
if (height < 110)
{
Width = 75;
Height = 100;
Height = 110;
}
else if (height > 800)
else if (height > 880)
{
Width = 600;
Height = 800;
Height = 880;
}
else
{
Height = height;
Width = height * .75;
Width = height * 15/22;
}
}
private void SimConnectManager_ConnectStatusEvent(bool Connected)
Expand Down Expand Up @@ -105,6 +112,7 @@ private void BtnClose_Click(object sender, RoutedEventArgs e)
Properties.Settings.Default.WindowTop = Top;
Properties.Settings.Default.WindowLeft = Left;
Properties.Settings.Default.WindowHeight = Height;
Properties.Settings.Default.TugSpeed = tugManager.SpeedFactor;
Properties.Settings.Default.Save();
// Stop
tugManager.Disable();
Expand Down Expand Up @@ -166,6 +174,10 @@ private void TugManager_TugStatusEvent(TugManager.TugStatus Status)
}
private void ExitManager_ExitEvent(ExitManager.ExitType Exit, bool ExitIsOpen)
{
btnOpenMainDoor.IsEnabled = exitManager.MainExitEnabled ?? false;
btnOpenCargoDoor.IsEnabled = exitManager.CargoExitEnabled ?? false;
btnOpenEmergencyDoor.IsEnabled = exitManager.EmergencyExitEnabled ?? false;

switch (Exit)
{
case ExitManager.ExitType.Main:
Expand All @@ -179,6 +191,13 @@ private void ExitManager_ExitEvent(ExitManager.ExitType Exit, bool ExitIsOpen)
break;
}
}
private void ServicesManager_ParkingBrakeEvent(bool value)
{
if(value)
lblParkingBrake.Foreground = new SolidColorBrush(Colors.Red);
else
lblParkingBrake.Foreground = new SolidColorBrush(Colors.LightGray);
}
private void BtnJetway_Click(object sender, RoutedEventArgs e)
{
servicesManager.ToggleJetway();
Expand Down Expand Up @@ -222,10 +241,18 @@ private void BtnAircraftDoorCargo_Click(object sender, RoutedEventArgs e)
{
exitManager.ToggleExit(ExitManager.ExitType.Cargo);
}
private void BtnParkingBrake_Click(object sender, RoutedEventArgs e)
{
servicesManager.ToggleParkingBrake();
}
private void Border_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
DragMove();
}
private void SpeedSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
tugManager.SetSpeed((uint)e.NewValue);
}
}
}
16 changes: 14 additions & 2 deletions PushbackHelper/Properties/Settings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion PushbackHelper/Properties/Settings.settings
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="WindowHeight" Type="System.Double" Scope="User">
<Value Profile="(Default)">400</Value>
<Value Profile="(Default)">440</Value>
</Setting>
<Setting Name="TugSpeed" Type="System.UInt32" Scope="User">
<Value Profile="(Default)">25</Value>
</Setting>
</Settings>
</SettingsFile>
17 changes: 3 additions & 14 deletions PushbackHelper/PushbackHelper.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -62,22 +62,14 @@
<HintPath>Resource\Microsoft.FlightSimulator.SimConnect.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
Expand Down Expand Up @@ -163,8 +155,5 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Loading

0 comments on commit 742aec8

Please sign in to comment.