commit 21/11/2024
This commit is contained in:
@@ -188,23 +188,23 @@ namespace FAtoPA.Net
|
||||
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
Debug.WriteLine("Window Closing");
|
||||
timer1s?.Stop();
|
||||
fsm?.Stop();
|
||||
modbusSlave?.Stop();
|
||||
vx3k?.Disconnect();
|
||||
timer1s.Stop();
|
||||
fsm.Stop();
|
||||
modbusSlave.Stop();
|
||||
vx3k.Disconnect();
|
||||
}
|
||||
|
||||
private void btnStartStopFSM_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (FSM.Started)
|
||||
{
|
||||
fsm?.Stop();
|
||||
fsm.Stop();
|
||||
btnStartStopFSM.Content = "Start FSM Connection";
|
||||
FSM.Started = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
fsm?.Start();
|
||||
fsm.Start();
|
||||
btnStartStopFSM.Content = "Stop FSM Connection";
|
||||
FSM.Started = true;
|
||||
}
|
||||
@@ -214,7 +214,7 @@ namespace FAtoPA.Net
|
||||
{
|
||||
if (ModbusSlave.Started)
|
||||
{
|
||||
modbusSlave?.Stop();
|
||||
modbusSlave.Stop();
|
||||
btnStartStopModbus.Content = "Start Modbus Connection";
|
||||
ModbusSlave.Started = false;
|
||||
}
|
||||
@@ -222,7 +222,7 @@ namespace FAtoPA.Net
|
||||
{
|
||||
if (config != null)
|
||||
{
|
||||
modbusSlave?.Start(config.Modbus_ListenPort);
|
||||
modbusSlave.Start(config.Modbus_ListenPort);
|
||||
btnStartStopModbus.Content = "Stop Modbus Connection";
|
||||
ModbusSlave.Started = true;
|
||||
|
||||
@@ -235,7 +235,7 @@ namespace FAtoPA.Net
|
||||
{
|
||||
if (VX3K.Started)
|
||||
{
|
||||
vx3k?.Disconnect();
|
||||
vx3k.Disconnect();
|
||||
btnStartStopVX.Content = "Start VX Connection";
|
||||
VX3K.Started = false;
|
||||
}
|
||||
@@ -243,7 +243,7 @@ namespace FAtoPA.Net
|
||||
{
|
||||
if (config != null)
|
||||
{
|
||||
vx3k?.Connect(config.VX_TargetIP, config.VX_TargetPort);
|
||||
vx3k.Connect(config.VX_TargetIP, config.VX_TargetPort);
|
||||
btnStartStopVX.Content = "Stop VX Connection";
|
||||
VX3K.Started = true;
|
||||
}
|
||||
@@ -795,25 +795,21 @@ namespace FAtoPA.Net
|
||||
|
||||
private void btnDelSIID_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SIID selected = GetSIID();
|
||||
if (selected != null)
|
||||
int selectedindex = FSMTable.SelectedIndex;
|
||||
if (selectedindex >= 0)
|
||||
{
|
||||
FSMData selected = (FSMData)FSMTable.Items[selectedindex];
|
||||
MessageBoxResult result = MessageBox.Show("Delete SIID " + selected.ToString() + " ?", "Delete SIID", MessageBoxButton.YesNo);
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
if (database != null)
|
||||
{
|
||||
if (database.RemoveFSMDatabySIID(selected.ToString()))
|
||||
{
|
||||
FSMTable.ItemsSource = database.GetFSMDatas();
|
||||
FSMSIID.Remove(selected.ToString());
|
||||
}
|
||||
else MessageBox.Show("Failed to delete from database");
|
||||
}
|
||||
else MessageBox.Show("Database is null");
|
||||
FsmTableMember.Remove(selected);
|
||||
database.RemoveFSMDatabySIID(selected.SIID);
|
||||
|
||||
}
|
||||
}
|
||||
else MessageBox.Show("Invalid Selection");
|
||||
else MessageBox.Show("Select a row in table to delete");
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void btnClearSIID_Click(object sender, RoutedEventArgs e)
|
||||
@@ -821,16 +817,9 @@ namespace FAtoPA.Net
|
||||
MessageBoxResult result = MessageBox.Show("Clear all SIID ?", "Clear SIID", MessageBoxButton.YesNo);
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
if (database != null)
|
||||
{
|
||||
if (database.ClearFSMTable())
|
||||
{
|
||||
FSMTable.ItemsSource = database.GetFSMDatas();
|
||||
FSMSIID.Clear();
|
||||
}
|
||||
else MessageBox.Show("Failed to clear database");
|
||||
}
|
||||
else MessageBox.Show("Database is null");
|
||||
FsmTableMember.Clear();
|
||||
database.ClearFSMTable();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1136,6 +1125,27 @@ namespace FAtoPA.Net
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void AddSelectedSIID(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var lbl = DetectedSIID.SelectedItem;
|
||||
if (lbl != null && lbl is Label)
|
||||
{
|
||||
Label selected = (Label)lbl;
|
||||
if (selected.Tag is NodeData)
|
||||
{
|
||||
NodeData data = (NodeData)selected.Tag;
|
||||
FSMData fSMData = new FSMData(data.SIID.ToString(), true, data.Description);
|
||||
if (database.AddFSMData(fSMData))
|
||||
{
|
||||
FsmTableMember.Add(fSMData);
|
||||
database.AddFSMData(fSMData);
|
||||
}
|
||||
else MessageBox.Show("Failed to add to database");
|
||||
}
|
||||
else MessageBox.Show("Selected SIID dont have NodeData");
|
||||
} else MessageBox.Show("No SIID Selected");
|
||||
}
|
||||
}
|
||||
|
||||
// event handler for VX3K
|
||||
@@ -1282,10 +1292,10 @@ namespace FAtoPA.Net
|
||||
// Class ini untuk update Table FSM
|
||||
class FSMTableUpdater : FSMResultInterface
|
||||
{
|
||||
// dari database
|
||||
ObservableCollection<FSMData> data;
|
||||
ListBox listbox;
|
||||
Label countlabel;
|
||||
int count = 0;
|
||||
public FSMTableUpdater(ObservableCollection<FSMData> data, ListBox listbox, Label countlabel)
|
||||
{
|
||||
this.data = data;
|
||||
@@ -1295,23 +1305,33 @@ namespace FAtoPA.Net
|
||||
|
||||
public void DiscoveredSIID(string SIID, NodeData type)
|
||||
{
|
||||
Debug.WriteLine("Discovered SIID : " + SIID + " Type : " + type);
|
||||
count++;
|
||||
countlabel.Dispatcher.Invoke(() => countlabel.Content = "Count : " + count);
|
||||
listbox.Dispatcher.Invoke(() => listbox.Items.Add(new Label() { Content = SIID + " : " + type.ToString() }));
|
||||
Debug.WriteLine("Discovered SIID : " + SIID + " Type : " + type.Description);
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
listbox.Items.Add(new Label() { Content = $"{SIID} : {type.Label} : {type.Description}", Tag = type });
|
||||
countlabel.Content = "Count : " + listbox.Items.Count;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void NewState(string SIID, NodeState previous, NodeState current)
|
||||
{
|
||||
Debug.WriteLine("New State : " + SIID + " Previous : " + previous + " Current : " + current);
|
||||
|
||||
//FSMData dd = data.First(d => d.SIID == SIID);
|
||||
//if (dd != null)
|
||||
//{
|
||||
// dd.LastUpdate = DateTime.Now.ToString();
|
||||
// dd.Value = current.LogicalState ?? "Unknown";
|
||||
//}
|
||||
Debug.WriteLine("New State : " + SIID + " Previous : " + previous?.LogicalState + " Current : " + current.LogicalState);
|
||||
if (data != null)
|
||||
{
|
||||
foreach (var dd in data)
|
||||
{
|
||||
if (dd.SIID.Equals(SIID))
|
||||
{
|
||||
dd.LastUpdate = DateTime.Now.ToString();
|
||||
dd.Value = current.LogicalState ?? "Unknown";
|
||||
Debug.WriteLine($"Changing row in FSM Table for SIID={SIID} Value={dd.Value}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Debug.WriteLine($"FSM Table dont have row with SIID={SIID}");
|
||||
|
||||
}
|
||||
|
||||
@@ -1320,6 +1340,7 @@ namespace FAtoPA.Net
|
||||
// Class ini untuk Update Modbus Register dari FSM Update
|
||||
class ModbusTriggerFromFSM : FSMResultInterface
|
||||
{
|
||||
// dari database
|
||||
ObservableCollection<FSMData> source;
|
||||
ObservableCollection<ModbusData> data;
|
||||
ModbusSlave slave;
|
||||
|
||||
Reference in New Issue
Block a user