Delete and Clear button in tables
This commit is contained in:
@@ -110,7 +110,7 @@
|
|||||||
<Button Grid.Column="2" Margin="5" x:Name="btnClearSIID" Content="Clear Table" Click="btnClearSIID_Click"/>
|
<Button Grid.Column="2" Margin="5" x:Name="btnClearSIID" Content="Clear Table" Click="btnClearSIID_Click"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<DockPanel DockPanel.Dock="Left" Width="300">
|
<DockPanel DockPanel.Dock="Left" Width="400">
|
||||||
<Label Content="Detected SIID" DockPanel.Dock="Top" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
<Label Content="Detected SIID" DockPanel.Dock="Top" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
||||||
<Grid DockPanel.Dock="Bottom" Height="50">
|
<Grid DockPanel.Dock="Bottom" Height="50">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
<Button Grid.Column="2" Margin="5" x:Name="btnClearModbus" Content="Clear Table" Click="btnClearModbus_Click"/>
|
<Button Grid.Column="2" Margin="5" x:Name="btnClearModbus" Content="Clear Table" Click="btnClearModbus_Click"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<DockPanel DockPanel.Dock="Left" Width="200">
|
<DockPanel DockPanel.Dock="Left" Width="400">
|
||||||
<Label Content="Connected Modbus Client" DockPanel.Dock="Top" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
<Label Content="Connected Modbus Client" DockPanel.Dock="Top" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
||||||
<Label Content="Count : 0" DockPanel.Dock="Bottom" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" x:Name="ConnectedModbusCount"/>
|
<Label Content="Count : 0" DockPanel.Dock="Bottom" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" x:Name="ConnectedModbusCount"/>
|
||||||
<ListBox x:Name="ConnectedModbusClients" />
|
<ListBox x:Name="ConnectedModbusClients" />
|
||||||
|
|||||||
@@ -817,21 +817,21 @@ namespace FAtoPA.Net
|
|||||||
|
|
||||||
private void btnDelSIID_Click(object sender, RoutedEventArgs e)
|
private void btnDelSIID_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
//int selectedindex = FSMTable.SelectedIndex;
|
if (FSMTable != null)
|
||||||
//if (selectedindex >= 0)
|
{
|
||||||
//{
|
var selected = FSMTable.SelectedItem as FSMData;
|
||||||
// FSMData selected = (FSMData)FSMTable.Items[selectedindex];
|
if (selected != null)
|
||||||
// MessageBoxResult result = MessageBox.Show("Delete SIID " + selected.ToString() + " ?", "Delete SIID", MessageBoxButton.YesNo);
|
{
|
||||||
// if (result == MessageBoxResult.Yes)
|
MessageBoxResult result = MessageBox.Show($"Are you sure want to delete SIID={selected.SIID}, Label={selected.Label}, Type={selected.Type} ?", "Delete SIID", MessageBoxButton.YesNo);
|
||||||
// {
|
if (result == MessageBoxResult.Yes)
|
||||||
// FsmTableMember.Remove(selected);
|
{
|
||||||
// database.RemoveFSMDatabySIID(selected.SIID);
|
FsmTableMember.Remove(selected);
|
||||||
// FSMSIID.Remove(selected.SIID);
|
database.RemoveFSMDatabySIID(selected.SIID);
|
||||||
// }
|
FSMSIID.Remove(selected.SIID);
|
||||||
//}
|
}
|
||||||
//else MessageBox.Show("Select a row in table to delete");
|
}
|
||||||
|
else MessageBox.Show("Select a row in table to delete");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnClearSIID_Click(object sender, RoutedEventArgs e)
|
private void btnClearSIID_Click(object sender, RoutedEventArgs e)
|
||||||
@@ -919,37 +919,21 @@ namespace FAtoPA.Net
|
|||||||
|
|
||||||
private void btnDelModbus_Click(object sender, RoutedEventArgs e)
|
private void btnDelModbus_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
String ssid = "";
|
if (ModbusTable != null)
|
||||||
String reg = "";
|
|
||||||
if (ModbusSIIDComboBox.SelectedItem != null)
|
|
||||||
{
|
{
|
||||||
ssid = (string)ModbusSIIDComboBox.SelectedItem;
|
var selected = ModbusTable.SelectedItem as ModbusData;
|
||||||
}
|
if (selected != null)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
MessageBox.Show("Invalid SIID"); return;
|
MessageBoxResult xx = MessageBox.Show($"Are you sure want to delete SIID={selected.SIID}, Register={selected.Register} ?", "Delete SIID", MessageBoxButton.YesNo);
|
||||||
}
|
if (xx == MessageBoxResult.Yes)
|
||||||
if (ModbusRegister.SelectedItem != null)
|
|
||||||
{
|
{
|
||||||
reg = (String)ModbusRegister.SelectedItem;
|
database.RemoveModbusDatabySIID(selected.SIID);
|
||||||
|
ModbusTableMember.Remove(selected);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox.Show("Invalid Register"); return;
|
|
||||||
}
|
}
|
||||||
MessageBoxResult result = MessageBox.Show("Delete SIID " + ssid + " Link with Register " + reg + " ?", "Delete Modbus Linkage", MessageBoxButton.YesNo);
|
else MessageBox.Show("Select a row in Table to delete");
|
||||||
if (result == MessageBoxResult.Yes)
|
|
||||||
{
|
|
||||||
if (database != null)
|
|
||||||
{
|
|
||||||
if (database.RemoveModbusDatabySIID(ssid))
|
|
||||||
{
|
|
||||||
ModbusTable.ItemsSource = database.GetModbusDatas();
|
|
||||||
}
|
|
||||||
else MessageBox.Show("Failed to delete from database");
|
|
||||||
}
|
|
||||||
else MessageBox.Show("Database is null");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnClearModbus_Click(object sender, RoutedEventArgs e)
|
private void btnClearModbus_Click(object sender, RoutedEventArgs e)
|
||||||
@@ -957,15 +941,8 @@ namespace FAtoPA.Net
|
|||||||
MessageBoxResult result = MessageBox.Show("Clear all Modbus Linkage ?", "Clear Modbus Linkage", MessageBoxButton.YesNo);
|
MessageBoxResult result = MessageBox.Show("Clear all Modbus Linkage ?", "Clear Modbus Linkage", MessageBoxButton.YesNo);
|
||||||
if (result == MessageBoxResult.Yes)
|
if (result == MessageBoxResult.Yes)
|
||||||
{
|
{
|
||||||
if (database != null)
|
database.ClearModbusTable();
|
||||||
{
|
ModbusTableMember.Clear();
|
||||||
if (database.ClearModbusTable())
|
|
||||||
{
|
|
||||||
ModbusTable.ItemsSource = database.GetModbusDatas();
|
|
||||||
}
|
|
||||||
else MessageBox.Show("Failed to clear database");
|
|
||||||
}
|
|
||||||
else MessageBox.Show("Database is null");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1017,45 +994,19 @@ namespace FAtoPA.Net
|
|||||||
|
|
||||||
private void btnDelVX_Click(object sender, RoutedEventArgs e)
|
private void btnDelVX_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
String ssid = "";
|
if (VXTable != null)
|
||||||
int id = 0;
|
|
||||||
int cin = 0;
|
|
||||||
if (VXSIIDComboBox.SelectedItem != null)
|
|
||||||
{
|
{
|
||||||
ssid = (string)VXSIIDComboBox.SelectedItem;
|
var selected = VXTable.SelectedItem as VXData;
|
||||||
}
|
if (selected != null)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
MessageBox.Show("Invalid SIID"); return;
|
var result = MessageBox.Show($"Delete SIID={selected.SIID}, ID={selected.FrameID}, CIN={selected.CIN} ?", "Delete SIID", MessageBoxButton.YesNo);
|
||||||
}
|
|
||||||
if (VXFrame.SelectedItem != null)
|
|
||||||
{
|
|
||||||
id = (int)VXFrame.SelectedItem;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox.Show("Invalid ID"); return;
|
|
||||||
}
|
|
||||||
if (VXCIN.SelectedItem != null)
|
|
||||||
{
|
|
||||||
cin = (int)VXCIN.SelectedItem;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox.Show("Invalid CIN"); return;
|
|
||||||
}
|
|
||||||
MessageBoxResult result = MessageBox.Show("Delete SIID " + ssid + " Link with Frame " + id + " CIN " + cin + " ?", "Delete VX Linkage", MessageBoxButton.YesNo);
|
|
||||||
if (result == MessageBoxResult.Yes)
|
if (result == MessageBoxResult.Yes)
|
||||||
{
|
{
|
||||||
if (database != null)
|
database.RemoveVXDatabySIID(selected.SIID);
|
||||||
{
|
VXTableMember.Remove(selected);
|
||||||
if (database.RemoveVXDatabySIID(ssid))
|
|
||||||
{
|
|
||||||
VXTable.ItemsSource = database.GetVXDatas();
|
|
||||||
}
|
}
|
||||||
else MessageBox.Show("Failed to delete from database");
|
|
||||||
}
|
}
|
||||||
else MessageBox.Show("Database is null");
|
else MessageBox.Show("Select a row in Table to delete");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1064,15 +1015,8 @@ namespace FAtoPA.Net
|
|||||||
MessageBoxResult result = MessageBox.Show("Clear all VX Linkage ?", "Clear VX Linkage", MessageBoxButton.YesNo);
|
MessageBoxResult result = MessageBox.Show("Clear all VX Linkage ?", "Clear VX Linkage", MessageBoxButton.YesNo);
|
||||||
if (result == MessageBoxResult.Yes)
|
if (result == MessageBoxResult.Yes)
|
||||||
{
|
{
|
||||||
if (database != null)
|
database.ClearVXTable();
|
||||||
{
|
VXTableMember.Clear();
|
||||||
if (database.ClearVXTable())
|
|
||||||
{
|
|
||||||
VXTable.ItemsSource = database.GetVXDatas();
|
|
||||||
}
|
|
||||||
else MessageBox.Show("Failed to clear database");
|
|
||||||
}
|
|
||||||
else MessageBox.Show("Database is null");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1234,6 +1178,7 @@ namespace FAtoPA.Net
|
|||||||
l.Margin = new Thickness(5, 0, 5, 0);
|
l.Margin = new Thickness(5, 0, 5, 0);
|
||||||
l.TextWrapping = TextWrapping.Wrap;
|
l.TextWrapping = TextWrapping.Wrap;
|
||||||
UpdateLabel(l, client);
|
UpdateLabel(l, client);
|
||||||
|
l.Tag = client;
|
||||||
connectedlist.Items.Add(l);
|
connectedlist.Items.Add(l);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1266,6 +1211,7 @@ namespace FAtoPA.Net
|
|||||||
|
|
||||||
public void TXRXStatusUpdate(ModbusClientRecord client)
|
public void TXRXStatusUpdate(ModbusClientRecord client)
|
||||||
{
|
{
|
||||||
|
connectedlist.Dispatcher.Invoke(() => {
|
||||||
foreach (var item in connectedlist.Items)
|
foreach (var item in connectedlist.Items)
|
||||||
{
|
{
|
||||||
TextBlock l = (TextBlock)item;
|
TextBlock l = (TextBlock)item;
|
||||||
@@ -1275,11 +1221,14 @@ namespace FAtoPA.Net
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateLabel(TextBlock l, ModbusClientRecord client)
|
private void UpdateLabel(TextBlock l, ModbusClientRecord client)
|
||||||
{
|
{
|
||||||
l.Text = client.remoteEP + " TX: " + client.TXBytes + " RX: " + client.RXBytes + "TXOK: " + client.TXResponse + " RXOK: " + client.RXValidRequest;
|
|
||||||
|
l.Text = client.remoteEP + "/TX: " + client.TXBytes + "/RX: " + client.RXBytes + "/TXOK: " + client.TXResponse + "/RXOK: " + client.RXValidRequest+"/RXFAIL: "+client.RXInvalidRequest;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -364,9 +364,6 @@ namespace FAtoPA
|
|||||||
|
|
||||||
if (readcount >= 12)
|
if (readcount >= 12)
|
||||||
{
|
{
|
||||||
Debug.WriteLine($"Read from {key}, size={readcount}");
|
|
||||||
String cmdString = BitConverter.ToString(cmd);
|
|
||||||
Debug.WriteLine($"cmd={cmdString}");
|
|
||||||
|
|
||||||
client.RXBytes += (uint)readcount;
|
client.RXBytes += (uint)readcount;
|
||||||
UInt16 transactionID = GetTransactionID(cmd);
|
UInt16 transactionID = GetTransactionID(cmd);
|
||||||
@@ -375,9 +372,7 @@ namespace FAtoPA
|
|||||||
Byte unitID = GetUnitID(cmd);
|
Byte unitID = GetUnitID(cmd);
|
||||||
Byte functionCode = GetFunctionCode(cmd);
|
Byte functionCode = GetFunctionCode(cmd);
|
||||||
byte[] payload = GetModbusPayload(cmd);
|
byte[] payload = GetModbusPayload(cmd);
|
||||||
Debug.WriteLine($"TransactionID={transactionID}, ProtocolID={protocolID}, Length={length}, UnitID={unitID}, FunctionCode={functionCode}, Payload={payload.Length}");
|
|
||||||
String payloadstring = BitConverter.ToString(payload);
|
|
||||||
Debug.WriteLine($"Payload={payloadstring}");
|
|
||||||
if (protocolID == 0 && length == payload.Length + 2 && unitID == 1)
|
if (protocolID == 0 && length == payload.Length + 2 && unitID == 1)
|
||||||
{
|
{
|
||||||
if (functionCode == 3)
|
if (functionCode == 3)
|
||||||
@@ -495,6 +490,7 @@ namespace FAtoPA
|
|||||||
client.TXBytes += (uint)response.Length;
|
client.TXBytes += (uint)response.Length;
|
||||||
client.TXResponse++;
|
client.TXResponse++;
|
||||||
}
|
}
|
||||||
|
if (_event != null) _event.TXRXStatusUpdate(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (readcount == 0) break; // connection closed
|
else if (readcount == 0) break; // connection closed
|
||||||
|
|||||||
Reference in New Issue
Block a user