Add FMS Condition Table, and half way create database
This commit is contained in:
22
Database.cs
22
Database.cs
@@ -22,6 +22,7 @@ namespace FAtoPA
|
|||||||
CreateFSMTable();
|
CreateFSMTable();
|
||||||
CreateModbusTable();
|
CreateModbusTable();
|
||||||
CreateVXTable();
|
CreateVXTable();
|
||||||
|
CreateConditionTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool CreateFSMTable()
|
private bool CreateFSMTable()
|
||||||
@@ -312,6 +313,27 @@ namespace FAtoPA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool CreateConditionTable()
|
||||||
|
{
|
||||||
|
using (var connection = new SQLiteConnection(connectionString))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
var conFMSCmd = connection.CreateCommand();
|
||||||
|
conFMSCmd.CommandText = "CREATE TABLE IF NOT EXISTS ConditionTable (No INTEGER AUTO INCREMENT, Condition TEXT, PASStatus TEXT)";
|
||||||
|
conFMSCmd.ExecuteNonQuery();
|
||||||
|
Debug.WriteLine("CreateConditionTable success");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine("Error CreateConditionTable, Exception : " + ex.Message);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private bool CreateVXTable()
|
private bool CreateVXTable()
|
||||||
{
|
{
|
||||||
//Debug.WriteLine("About to execute CreateVXTable");
|
//Debug.WriteLine("About to execute CreateVXTable");
|
||||||
|
|||||||
@@ -62,10 +62,10 @@
|
|||||||
BorderBrush="{TemplateBinding BorderBrush}"
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
BorderThickness="1 1 1 0"
|
BorderThickness="1 1 1 0"
|
||||||
CornerRadius="10,10,0,0"
|
CornerRadius="10,10,0,0"
|
||||||
|
|
||||||
Padding="8"
|
Padding="8"
|
||||||
Margin="2 2 0 0">
|
Margin="2 2 0 0">
|
||||||
<ContentPresenter
|
<ContentPresenter
|
||||||
|
x:Name="HeaderContent"
|
||||||
ContentSource="Header"
|
ContentSource="Header"
|
||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
VerticalAlignment="Center" />
|
VerticalAlignment="Center" />
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<DockPanel DockPanel.Dock="Left" Width="400">
|
<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 DockPanel.Dock="Bottom" Height="50" Margin="5">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
@@ -221,9 +221,9 @@
|
|||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Label Grid.Column="0" Content="SIID" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
<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"/>
|
<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 Grid.Column="2">
|
<Grid Grid.Column="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -248,14 +248,14 @@
|
|||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="AUTO"/>
|
<ColumnDefinition Width="AUTO"/>
|
||||||
</Grid.ColumnDefinitions>
|
</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"/>
|
<Label Margin="5,0" Content="Count : 0" Grid.Column="1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" x:Name="ConnectedModbusCount"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<ListBox x:Name="ConnectedModbusClients" Margin="5,0" />
|
<ListBox x:Name="ConnectedModbusClients" Margin="5,0" />
|
||||||
</DockPanel>
|
</DockPanel>
|
||||||
<DockPanel Grid.Row="1">
|
<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 DockPanel.Dock="Bottom" Height="50">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
@@ -293,11 +293,11 @@
|
|||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Label Grid.Column="0" Content="SIID" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
<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"/>
|
<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"/>
|
<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 Grid.Column="2">
|
<Grid Grid.Column="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -310,13 +310,32 @@
|
|||||||
<Button Grid.Column="2" Margin="5" x:Name="btnClearVX" Padding="5,0" Content="Clear Table" Click="btnClearVX_Click"/>
|
<Button Grid.Column="2" Margin="5" x:Name="btnClearVX" Padding="5,0" Content="Clear Table" Click="btnClearVX_Click"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<DataGrid MinRowHeight="50" x:Name="VXTable" AutoGenerateColumns="True" AutoGeneratingColumn="VXTable_AutoGeneratingColumn" />
|
<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>
|
</DockPanel>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</DockPanel>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="Settings">
|
<TabItem Header="Settings">
|
||||||
|
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical">
|
||||||
<GroupBox Header="Fire Alarm Settings">
|
<GroupBox>
|
||||||
|
<GroupBox.Header>
|
||||||
|
<TextBlock Text="Fire Alarm Settings" FontWeight="Bold" />
|
||||||
|
</GroupBox.Header>
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
<Button x:Name="btnApplyFSMConfig" Content="Apply Config" Click="ApplyFSMConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
|
<Button x:Name="btnApplyFSMConfig" Content="Apply Config" Click="ApplyFSMConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical">
|
||||||
@@ -352,7 +371,10 @@
|
|||||||
</DockPanel>
|
</DockPanel>
|
||||||
|
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
<GroupBox Header="Modbus Setting">
|
<GroupBox>
|
||||||
|
<GroupBox.Header>
|
||||||
|
<TextBlock Text="Modbus Setting" FontWeight="Bold" />
|
||||||
|
</GroupBox.Header>
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
<Button x:Name="btnApplyModbusConfig" Content="Apply Config" Click="ApplyModbusConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
|
<Button x:Name="btnApplyModbusConfig" Content="Apply Config" Click="ApplyModbusConfig" DockPanel.Dock="Right" Margin="5,0" Padding="5,0"/>
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical">
|
||||||
@@ -371,7 +393,10 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</DockPanel>
|
</DockPanel>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
<GroupBox Header="VX-3000">
|
<GroupBox>
|
||||||
|
<GroupBox.Header>
|
||||||
|
<TextBlock Text="VX-3000" FontWeight="Bold" />
|
||||||
|
</GroupBox.Header>
|
||||||
<DockPanel Margin="-1,0,1,0">
|
<DockPanel Margin="-1,0,1,0">
|
||||||
<Button x:Name="btnApplyVX3KConfig" Content="Apply Config" Margin="5,0" Padding="5,0" Click="ApplyVX3KConfig" DockPanel.Dock="Right"/>
|
<Button x:Name="btnApplyVX3KConfig" Content="Apply Config" Margin="5,0" Padding="5,0" Click="ApplyVX3KConfig" DockPanel.Dock="Right"/>
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical">
|
||||||
@@ -387,6 +412,7 @@
|
|||||||
</DockPanel>
|
</DockPanel>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</TabControl>
|
</TabControl>
|
||||||
|
|
||||||
|
|||||||
@@ -299,6 +299,12 @@ namespace FAtoPA.Net
|
|||||||
List<String> ConditionON = new List<string>();
|
List<String> ConditionON = new List<string>();
|
||||||
List<String> ConditionOFF = new List<string>();
|
List<String> ConditionOFF = new List<string>();
|
||||||
|
|
||||||
|
//add for example. delete if database condition done.
|
||||||
|
ConditionON.Add(SILogicalState.FIRE.ToString());
|
||||||
|
ConditionON.Add(SILogicalState.SMOKE.ToString());
|
||||||
|
ConditionOFF.Add(SILogicalState.NORMAL.ToString());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fsm.AddListener(new FSMTableUpdater(FsmTableMember, DetectedSIID, DetectedSIIDCount));
|
fsm.AddListener(new FSMTableUpdater(FsmTableMember, DetectedSIID, DetectedSIIDCount));
|
||||||
fsm.AddListener(new ModbusTriggerFromFSM(FsmTableMember, ModbusTableMember, modbusSlave, ModbusTranslationTable));
|
fsm.AddListener(new ModbusTriggerFromFSM(FsmTableMember, ModbusTableMember, modbusSlave, ModbusTranslationTable));
|
||||||
@@ -1085,7 +1091,6 @@ namespace FAtoPA.Net
|
|||||||
break;
|
break;
|
||||||
case "LastUpdate":
|
case "LastUpdate":
|
||||||
e.Column.Width = DataGridLength.Auto;
|
e.Column.Width = DataGridLength.Auto;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1113,6 +1118,8 @@ namespace FAtoPA.Net
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void VXTable_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
|
private void VXTable_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
|
||||||
{
|
{
|
||||||
Debug.WriteLine("VXTable_AutoGeneratingColumn : " + e.PropertyName);
|
Debug.WriteLine("VXTable_AutoGeneratingColumn : " + e.PropertyName);
|
||||||
@@ -1243,6 +1250,28 @@ namespace FAtoPA.Net
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConditionTable_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
|
||||||
|
{
|
||||||
|
Debug.WriteLine("ConditionTable_AutoGeneratingColumn : " + e.PropertyName);
|
||||||
|
switch (e.PropertyName)
|
||||||
|
{
|
||||||
|
case "No":
|
||||||
|
e.Column.Width = DataGridLength.Auto;
|
||||||
|
break;
|
||||||
|
case "Condition":
|
||||||
|
e.Column.Width = DataGridLength.Auto;
|
||||||
|
break;
|
||||||
|
case "PAS Status":
|
||||||
|
e.Column.Width = DataGridLength.Auto;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void VXTable_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user