<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.Common" version="2.4.0" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.CSharp" version="2.4.0" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.CSharp.Scripting" version="2.4.0" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.Scripting" version="2.4.0" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.Scripting.Common" version="2.4.0" targetFramework="net461" />
<package id="System.AppContext" version="4.3.0" targetFramework="net461" />
<package id="System.Collections" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Immutable" version="1.3.1" targetFramework="net461" />
<package id="System.Console" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.FileVersionInfo" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.StackTrace" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
<package id="System.Dynamic.Runtime" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization" version="4.3.0" targetFramework="net461" />
<package id="System.IO" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Linq" version="4.3.0" targetFramework="net461" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Metadata" version="1.4.2" targetFramework="net461" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime" version="4.3.0" tar<UserControl x:Class="Tango.MachineStudio.UI.Views.ConnectedMachineView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:integration="clr-namespace:Tango.Integration.ExternalBridge;assembly=Tango.Integration"
xmlns:integ="clr-namespace:Tango.Integration.Operation;assembly=Tango.Integration"
xmlns:emulations="clr-namespace:Tango.Emulations.ExternalBridge;assembly=Tango.Emulations"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" Width="800" Height="540" Background="{StaticResource Dialog.Background}" DataContext="{Binding ConnectedMachineViewVM, Source={StaticResource Locator}}" Foreground="{StaticResource MainWindow.Foreground}">
<UserControl.Resources>
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"></converters:BooleanToVisibilityConverter>
<converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter"></converters:BooleanToVisibilityInverseConverter>
<converters:BooleanInverseConverter x:Key="BooleanInverseConverter"></converters:BooleanInverseConverter>
<converters:ByteArrayToFileSizeConverter x:Key="ByteArrayToFileSizeConverter" />
</UserControl.Resources>
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid>
<StackPanel Orientation="Horizontal" Margin="10">
<ContentControl Content="{Binding ApplicationManager.ConnectedMachine}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}">
<Image Source="/Images/external-bridge-signalr.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
</DataTemplate>
<DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}">
<Image Source="/Images/external-bridge-tcp.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
</DataTemplate>
<DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}">
<Image Source="/Images/external-bridge-usb.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
</DataTemplate>
<DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}">
<Image Source="/Images/external-bridge-emulator.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
<TextBlock Text="Machine Connection" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="20"></TextBlock>
</StackPanel>
</Grid>
<Grid Grid.Row="1" Margin="10 0 10 10">
<Grid.RowDefinitions>
<RowDefinition Height="1*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid d:DataContext="{d:DesignInstance Type=integ:MachineOperator, IsDesignTimeCreatable=False}">
<ContentControl Content="{Binding ApplicationManager.ConnectedMachine}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}">
<controls:TableGrid RowHeight="22">
<TextBlock FontWeight="SemiBold" Text="Serial Number:" />
<TextBlock Text="{Binding SerialNumber}" />
<TextBlock FontWeight="SemiBold" Text="Name:" />
<TextBlock Text="{Binding Machine.Name}" />
<TextBlock FontWeight="SemiBold" Text="Organization:" />
<TextBlock Text="{Binding Machine.Organization.Name}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Time:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineWorkTime}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Meters:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineMeters}" />
<TextBlock FontWeight="SemiBold" Text="Embedded Software Version:" />
<TextBlock Text="{Binding DeviceInformation.Version}" />
<TextBlock FontWeight="SemiBold" Text="Address:" />
<TextBlock Text="{Binding Adapter.Address}" />
<TextBlock FontWeight="SemiBold" Text="Total Bytes Sent:" />
<TextBlock Text="{Binding Adapter.TotalBytesSent,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Total Bytes Received:" />
<TextBlock Text="{Binding Adapter.TotalBytesReceived,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Transfer Rate:" />
<TextBlock>
<Run Text="{Binding Adapter.TransferRate,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Diagnostics Frame Rate:" />
<TextBlock>
<Run Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DiagnosticsFrameProvider.FrameRate,Mode=OneWay,IsAsync=True}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Enable Diagnostics:" />
<ToggleButton IsChecked="{Binding EnableDiagnostics}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Embedded Debug Logs:" />
<ToggleButton IsChecked="{Binding EnableEmbeddedDebugging}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable KeepAlive:" />
<ToggleButton IsChecked="{Binding UseKeepAlive}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Events:" />
<ToggleButton IsChecked="{Binding EnableEventsNotification}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Application Logs:" />
<ToggleButton IsChecked="{Binding EnableApplicationLogs}" HorizontalAlignment="Left"></ToggleButton>
</controls:TableGrid>
</DataTemplate>
<DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}">
<controls:TableGrid RowHeight="22">
<TextBlock FontWeight="SemiBold" Text="Serial Number:" />
<TextBlock Text="{Binding SerialNumber}" />
<TextBlock FontWeight="SemiBold" Text="Name:" />
<TextBlock Text="{Binding Machine.Name}" />
<TextBlock FontWeight="SemiBold" Text="Organization:" />
<TextBlock Text="{Binding Machine.Organization.Name}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Time:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineWorkTime}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Meters:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineMeters}" />
<TextBlock FontWeight="SemiBold" Text="Embedded Software Version:" />
<TextBlock Text="{Binding DeviceInformation.Version}" />
<TextBlock FontWeight="SemiBold" Text="IP Address:" />
<TextBlock Text="{Binding IPAddress}" />
<TextBlock FontWeight="SemiBold" Text="Total Bytes Sent:" />
<TextBlock Text="{Binding Adapter.TotalBytesSent,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Total Bytes Received:" />
<TextBlock Text="{Binding Adapter.TotalBytesReceived,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Transfer Rate:" />
<TextBlock>
<Run Text="{Binding Adapter.TransferRate,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Diagnostics Frame Rate:" />
<TextBlock>
<Run Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DiagnosticsFrameProvider.FrameRate,Mode=OneWay,IsAsync=True}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Enable Diagnostics:" />
<ToggleButton IsChecked="{Binding EnableDiagnostics}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Embedded Debug Logs:" />
<ToggleButton IsChecked="{Binding EnableEmbeddedDebugging}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable KeepAlive:" />
<ToggleButton IsChecked="{Binding UseKeepAlive}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Events:" />
<ToggleButton IsChecked="{Binding EnableEventsNotification}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Application Logs:" />
<ToggleButton IsChecked="{Binding EnableApplicationLogs}" HorizontalAlignment="Left"></ToggleButton>
</controls:TableGrid>
</DataTemplate>
<DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}">
<controls:TableGrid RowHeight="22">
<TextBlock FontWeight="SemiBold" Text="Serial Number:" />
<TextBlock Text="{Binding SerialNumber}" />
<TextBlock FontWeight="SemiBold" Text="Name:" />
<TextBlock Text="{Binding Machine.Name}" />
<TextBlock FontWeight="SemiBold" Text="Organization:" />
<TextBlock Text="{Binding Machine.Organization.Name}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Time:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineWorkTime}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Meters:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineMeters}" />
<TextBlock FontWeight="SemiBold" Text="Embedded Software Version:" />
<TextBlock Text="{Binding DeviceInformation.Version}" />
<TextBlock FontWeight="SemiBold" Text="FPGA Version:" />
<TextBlock TextTrimming="CharacterEllipsis">
<TextBlock.ToolTip>
<TextBlock>
<Run Text="{Binding DeviceInformation.FPGA1Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA2Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA3Version}"></Run>
</TextBlock>
</TextBlock.ToolTip>
<Run Text="{Binding DeviceInformation.FPGA1Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA2Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA3Version}"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="COM Port:" />
<TextBlock Text="{Binding ComPort}" />
<TextBlock FontWeight="SemiBold" Text="Device:" />
<TextBlock Text="{Binding Device}" />
<TextBlock FontWeight="SemiBold" Text="Total Bytes Sent:" />
<TextBlock Text="{Binding Adapter.TotalBytesSent,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Total Bytes Received:" />
<TextBlock Text="{Binding Adapter.TotalBytesReceived,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Transfer Rate:" />
<TextBlock>
<Run Text="{Binding Adapter.TransferRate,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Diagnostics Frame Rate:" />
<TextBlock>
<Run Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DiagnosticsFrameProvider.FrameRate,Mode=OneWay,IsAsync=True}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Enable Diagnostics:" />
<ToggleButton IsChecked="{Binding EnableDiagnostics}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Embedded Debug Logs:" />
<ToggleButton IsChecked="{Binding EnableEmbeddedDebugging}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable KeepAlive:" />
<ToggleButton IsChecked="{Binding UseKeepAlive}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Events:" />
<ToggleButton IsChecked="{Binding EnableEventsNotification}" HorizontalAlignment="Left"></ToggleButton>
</controls:TableGrid>
</DataTemplate>
<DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}">
<controls:TableGrid RowHeight="22">
<TextBlock FontWeight="SemiBold" Text="Address:" />
<TextBlock Text="{Binding Adapter.Address}" />
<TextBlock FontWeight="SemiBold" Text="Serial Number:" />
<TextBlock Text="{Binding SerialNumber}" />
<TextBlock FontWeight="SemiBold" Text="Name:" />
<TextBlock Text="{Binding Machine.Name}" />
<TextBlock FontWeight="SemiBold" Text="Organization:" />
<TextBlock Text="{Binding Machine.Organization.Name}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Time:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineWorkTime}" />
<TextBlock FontWeight="SemiBold" Text="Total Dye Meters:" />
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineMeters}" />
<TextBlock FontWeight="SemiBold" Text="Embedded Software Version:" />
<TextBlock Text="{Binding DeviceInformation.Version}" />
<TextBlock FontWeight="SemiBold" Text="FPGA Version:" />
<TextBlock TextTrimming="CharacterEllipsis">
<TextBlock.ToolTip>
<TextBlock>
<Run Text="{Binding DeviceInformation.FPGA1Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA2Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA3Version}"></Run>
</TextBlock>
</TextBlock.ToolTip>
<Run Text="{Binding DeviceInformation.FPGA1Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA2Version}"></Run> •
<Run Text="{Binding DeviceInformation.FPGA3Version}"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Total Bytes Sent:" />
<TextBlock Text="{Binding Adapter.TotalBytesSent,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Total Bytes Received:" />
<TextBlock Text="{Binding Adapter.TotalBytesReceived,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
<TextBlock FontWeight="SemiBold" Text="Transfer Rate:" />
<TextBlock>
<Run Text="{Binding Adapter.TransferRate,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Diagnostics Frame Rate:" />
<TextBlock>
<Run Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DiagnosticsFrameProvider.FrameRate,Mode=OneWay,IsAsync=True}"></Run>
<Run Text="/ sec"></Run>
</TextBlock>
<TextBlock FontWeight="SemiBold" Text="Enable Diagnostics:" />
<ToggleButton IsChecked="{Binding EnableDiagnostics}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Embedded Debug Logs:" />
<ToggleButton IsChecked="{Binding EnableEmbeddedDebugging}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable KeepAlive:" />
<ToggleButton IsChecked="{Binding UseKeepAlive}" HorizontalAlignment="Left"></ToggleButton>
<TextBlock FontWeight="SemiBold" Text="Enable Events:" />
<ToggleButton IsChecked="{Binding EnableEventsNotification}" HorizontalAlignment="Left"></ToggleButton>
</controls:TableGrid>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
</Grid>
<Grid Grid.Row="1" Grid.ColumnSpan="2">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Height="40" VerticalAlignment="Bottom">
</StackPanel>
</Grid>
<Grid Grid.Row="1" Grid.ColumnSpan="2">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<Button DockPanel.Dock="Bottom" Height="40" Width="170" Command="{Binding UploadHardwareConfigurationCommand}" ToolTip="Upload the current hardware configuration stored for this machine">UPLOAD HW CONFIG</Button>
<Button DockPanel.Dock="Bottom" Height="40" Width="140" Command="{Binding DisconnectCommand}" Margin="10 0 0 0">DISCONNECT</Button>
</StackPanel>
</Grid>
<Grid Grid.Column="1">
<DockPanel>
<StackPanel>
<Button FontSize="11" Height="40" Width="140" Command="{Binding ResetCommand}" Background="Transparent" BorderBrush="{StaticResource DarkGrayBrush}" Foreground="{StaticResource DarkGrayBrush}" Margin="0 2" ToolTip="Reset the embedded device">RESET</Button>
<Button FontSize="11" Height="40" Width="140" Command="{Binding TurnOffHeatersCommand}" Background="Transparent" BorderBrush="{StaticResource DarkGrayBrush}" Foreground="{StaticResource DarkGrayBrush}" Margin="0 2" ToolTip="Resets the current process parameters in the embedded device">
<TextBlock TextWrapping="Wrap" TextAlignment="Center">
TURN OFF HEATERS
</TextBlock>
</Button>
</StackPanel>
</DockPanel>
</Grid>
</Grid>
</Grid>
</Grid>
</UserControl>