Add FMS Condition Table, and half way create database

This commit is contained in:
2024-11-28 17:12:54 +07:00
parent f33ba0127f
commit fd4caf028b
3 changed files with 160 additions and 83 deletions

View File

@@ -61,11 +61,11 @@
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1 1 1 0"
CornerRadius="10,10,0,0"
CornerRadius="10,10,0,0"
Padding="8"
Margin="2 2 0 0">
<ContentPresenter
x:Name="HeaderContent"
ContentSource="Header"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
@@ -187,7 +187,7 @@
</Grid>
</Grid>
<DockPanel DockPanel.Dock="Left" Width="400">
<Label Content="Detected SIID" Margin="5,0" DockPanel.Dock="Top" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<Label Content="Detected SIID" Margin="5,0" DockPanel.Dock="Top" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontWeight="Bold"/>
<Grid DockPanel.Dock="Bottom" Height="50" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
@@ -221,9 +221,9 @@
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="SIID" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<ComboBox Grid.Column="1" x:Name="ModbusSIIDComboBox" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5,0,5,0" ItemsSource="{Binding FSMSIID, IsAsync=True}" SelectedIndex="0"/>
<ComboBox Grid.Column="1" x:Name="ModbusSIIDComboBox" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding FSMSIID, IsAsync=True}" SelectedIndex="0"/>
<Label Grid.Column="2" Content="Register" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<ComboBox Grid.Column="3" x:Name="ModbusRegister" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5,0,5,0" ItemsSource="{Binding ModbusRegisters, IsAsync=True}" SelectedIndex="0" />
<ComboBox Grid.Column="3" x:Name="ModbusRegister" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding ModbusRegisters, IsAsync=True}" SelectedIndex="0" />
</Grid>
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
@@ -248,14 +248,14 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="AUTO"/>
</Grid.ColumnDefinitions>
<Label Margin="5,0" Content="Connected Modbus Client" Grid.Column="0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<Label Margin="5,0,5,0" Content="Connected Modbus Client" Grid.Column="0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontWeight="Bold" Height="26" VerticalAlignment="Top"/>
<Label Margin="5,0" Content="Count : 0" Grid.Column="1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" x:Name="ConnectedModbusCount"/>
</Grid>
<ListBox x:Name="ConnectedModbusClients" Margin="5,0" />
</DockPanel>
<DockPanel Grid.Row="1">
<Label Content="FA Status to Register Definition" DockPanel.Dock="Top" HorizontalContentAlignment="Center"/>
<Label Content="FA Status to Register Definition" DockPanel.Dock="Top" HorizontalContentAlignment="Center" FontWeight="Bold"/>
<Grid DockPanel.Dock="Bottom" Height="50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
@@ -293,11 +293,11 @@
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="SIID" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<ComboBox Grid.Column="1" x:Name="VXSIIDComboBox" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5,0" ItemsSource="{Binding FSMSIID, IsAsync=True}" SelectedIndex="0"/>
<ComboBox Grid.Column="1" x:Name="VXSIIDComboBox" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding FSMSIID, IsAsync=True}" SelectedIndex="0"/>
<Label Grid.Column="2" Content="Frame" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<ComboBox Grid.Column="3" x:Name="VXFrame" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5,0" ItemsSource="{Binding VX3KID, IsAsync=True}" SelectedIndex="0"/>
<ComboBox Grid.Column="3" x:Name="VXFrame" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding VX3KID, IsAsync=True}" SelectedIndex="0"/>
<Label Grid.Column="4" Content="C-IN" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
<ComboBox Grid.Column="5" x:Name="VXCIN" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5,0" ItemsSource="{Binding VX3KCIN, IsAsync=True}" SelectedIndex="0" />
<ComboBox Grid.Column="5" x:Name="VXCIN" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding VX3KCIN, IsAsync=True}" SelectedIndex="0" />
</Grid>
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
@@ -310,83 +310,109 @@
<Button Grid.Column="2" Margin="5" x:Name="btnClearVX" Padding="5,0" Content="Clear Table" Click="btnClearVX_Click"/>
</Grid>
</Grid>
<DataGrid MinRowHeight="50" x:Name="VXTable" AutoGenerateColumns="True" AutoGeneratingColumn="VXTable_AutoGeneratingColumn" />
</DockPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<Label Content="TOA VX-3000" FontWeight="Bold" DockPanel.Dock="Top"/>
<DataGrid MinRowHeight="50" x:Name="VXTable" AutoGenerateColumns="True" AutoGeneratingColumn="VXTable_AutoGeneratingColumn" SelectionChanged="VXTable_SelectionChanged" />
</DockPanel>
<DockPanel Grid.Row="1">
<Label Content="FSM Condition" FontWeight="Bold" DockPanel.Dock="Top"/>
<DataGrid MinRowHeight="50" Grid.Row="1" x:Name="ConditionTable" AutoGenerateColumns="True" AutoGeneratingColumn="ConditionTable_AutoGeneratingColumn"/>
</DockPanel>
</Grid>
</DockPanel>
</TabItem>
<TabItem Header="Settings">
<StackPanel Orientation="Vertical">
<GroupBox Header="Fire Alarm Settings">
<DockPanel>
<Button x:Name="btnApplyFSMConfig" Content="Apply Config" Click="ApplyFSMConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="NetGroup" Width="150"/>
<TextBox x:Name="FSMConfig_NetGroup" Text="1" Padding="5,0" MinWidth="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_NetGroup_PreviewTextInput" TextChanged="FSMConfig_NetGroup_TextChanged"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel Orientation="Vertical">
<GroupBox>
<GroupBox.Header>
<TextBlock Text="Fire Alarm Settings" FontWeight="Bold" />
</GroupBox.Header>
<DockPanel>
<Button x:Name="btnApplyFSMConfig" Content="Apply Config" Click="ApplyFSMConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="NetGroup" Width="150"/>
<TextBox x:Name="FSMConfig_NetGroup" Text="1" Padding="5,0" MinWidth="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_NetGroup_PreviewTextInput" TextChanged="FSMConfig_NetGroup_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="NetNode" Width="150"/>
<TextBox x:Name="FSMConfig_NetNode" Padding="5,0" Text="1" MinWidth="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_NetNode_PreviewTextInput" TextChanged="FSMConfig_NetNode_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="PNA" Width="150"/>
<TextBox x:Name="FSMConfig_PNA" Padding="5,0" Text="1" MinWidth="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_PNA_PreviewTextInput" TextChanged="FSMConfig_PNA_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Local IP Address" Width="150"/>
<TextBox x:Name="FSMConfig_LocalIP" Padding="5,0" Text="0.0.0.0" MinWidth="75" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_LocalIP_PreviewTextInput" TextChanged="FSMConfig_LocalIP_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Use Multicast" Width="150"/>
<CheckBox x:Name="FSM_UseMulticast" Content="No" IsChecked="False" VerticalAlignment="Center"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Multicast Address" Width="150"/>
<TextBox x:Name="FSMConfig_MulticastAddress" Padding="5,0" Text="239.192.0.1" MinWidth="75" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_MulticastAddress_PreviewTextInput" TextChanged="FSMConfig_MulticastAddress_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Multicast Port" Width="150"/>
<TextBox x:Name="FSMConfig_MulticastPort" Padding="5,0" Text="25000" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_MulticastPort_PreviewTextInput" TextChanged="FSMConfig_MulticastPort_TextChanged"/>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="NetNode" Width="150"/>
<TextBox x:Name="FSMConfig_NetNode" Padding="5,0" Text="1" MinWidth="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_NetNode_PreviewTextInput" TextChanged="FSMConfig_NetNode_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="PNA" Width="150"/>
<TextBox x:Name="FSMConfig_PNA" Padding="5,0" Text="1" MinWidth="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_PNA_PreviewTextInput" TextChanged="FSMConfig_PNA_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Local IP Address" Width="150"/>
<TextBox x:Name="FSMConfig_LocalIP" Padding="5,0" Text="0.0.0.0" MinWidth="75" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_LocalIP_PreviewTextInput" TextChanged="FSMConfig_LocalIP_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Use Multicast" Width="150"/>
<CheckBox x:Name="FSM_UseMulticast" Content="No" IsChecked="False" VerticalAlignment="Center"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Multicast Address" Width="150"/>
<TextBox x:Name="FSMConfig_MulticastAddress" Padding="5,0" Text="239.192.0.1" MinWidth="75" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_MulticastAddress_PreviewTextInput" TextChanged="FSMConfig_MulticastAddress_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Content="Multicast Port" Width="150"/>
<TextBox x:Name="FSMConfig_MulticastPort" Padding="5,0" Text="25000" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="FSMConfig_MulticastPort_PreviewTextInput" TextChanged="FSMConfig_MulticastPort_TextChanged"/>
</StackPanel>
</StackPanel>
</DockPanel>
</DockPanel>
</GroupBox>
<GroupBox Header="Modbus Setting">
<DockPanel>
<Button x:Name="btnApplyModbusConfig" Content="Apply Config" Click="ApplyModbusConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="Listen Port"/>
<TextBox x:Name="ModbusListenPort" Text="502" Padding="5,0" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="ModbusListenPort_PreviewTextInput" TextChanged="ModbusListenPort_TextChanged"/>
</GroupBox>
<GroupBox>
<GroupBox.Header>
<TextBlock Text="Modbus Setting" FontWeight="Bold" />
</GroupBox.Header>
<DockPanel>
<Button x:Name="btnApplyModbusConfig" Content="Apply Config" Click="ApplyModbusConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="Listen Port"/>
<TextBox x:Name="ModbusListenPort" Text="502" Padding="5,0" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="ModbusListenPort_PreviewTextInput" TextChanged="ModbusListenPort_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="Device ID"/>
<TextBox x:Name="ModbusDeviceID" Padding="5,0" Text="1" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="ModbusDeviceID_PreviewTextInput" TextChanged="ModbusDeviceID_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="Max. Register"/>
<TextBox x:Name="ModbusMaxRegister" Padding="5,0" Text="2000" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="ModbusMaxRegister_PreviewTextInput" TextChanged="ModbusMaxRegister_TextChanged"/>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="Device ID"/>
<TextBox x:Name="ModbusDeviceID" Padding="5,0" Text="1" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="ModbusDeviceID_PreviewTextInput" TextChanged="ModbusDeviceID_TextChanged"/>
</DockPanel>
</GroupBox>
<GroupBox>
<GroupBox.Header>
<TextBlock Text="VX-3000" FontWeight="Bold" />
</GroupBox.Header>
<DockPanel Margin="-1,0,1,0">
<Button x:Name="btnApplyVX3KConfig" Content="Apply Config" Margin="5,0" Padding="5,0" Click="ApplyVX3KConfig" DockPanel.Dock="Right"/>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="VX-3000 IP" />
<TextBox x:Name="VX3K_IP" Padding="5,0" Text="192.168.14.1" MinWidth="75" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="VX3K_IP_PreviewTextInput" TextChanged="VX3K_IP_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="VX-3000 Port" />
<TextBox x:Name="VX3K_Port" Padding="5,0" Text="5000" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="VX3K_Port_PreviewTextInput" TextChanged="VX3K_Port_TextChanged" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="Max. Register"/>
<TextBox x:Name="ModbusMaxRegister" Padding="5,0" Text="2000" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="ModbusMaxRegister_PreviewTextInput" TextChanged="ModbusMaxRegister_TextChanged"/>
</StackPanel>
</StackPanel>
</DockPanel>
</GroupBox>
<GroupBox Header="VX-3000">
<DockPanel Margin="-1,0,1,0">
<Button x:Name="btnApplyVX3KConfig" Content="Apply Config" Margin="5,0" Padding="5,0" Click="ApplyVX3KConfig" DockPanel.Dock="Right"/>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="VX-3000 IP" />
<TextBox x:Name="VX3K_IP" Padding="5,0" Text="192.168.14.1" MinWidth="75" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="VX3K_IP_PreviewTextInput" TextChanged="VX3K_IP_TextChanged"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Label Width="150" Content="VX-3000 Port" />
<TextBox x:Name="VX3K_Port" Padding="5,0" Text="5000" MinWidth="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewTextInput="VX3K_Port_PreviewTextInput" TextChanged="VX3K_Port_TextChanged" />
</StackPanel>
</StackPanel>
</DockPanel>
</GroupBox>
</StackPanel>
</DockPanel>
</GroupBox>
</StackPanel>
</ScrollViewer>
</TabItem>
</TabControl>