using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace FLY.DownBlowing.UI.Server { /// /// PgMain.xaml 的交互逻辑 /// public partial class PgMain : Page { FLY.DownBlowing.Server.TDGage gage; public PgMain() { InitializeComponent(); } public void Init(FLY.DownBlowing.Server.TDGage gage) { this.gage = gage; FLY.OBJComponents.Server.PLCProxySystem plsos = gage.mData.PLCos as FLY.OBJComponents.Server.PLCProxySystem; this.itemcontrol.ItemsSource = plsos.PLCs; this.gbRotary.DataContext = gage.rotarySystem; } private void btnSetupClick(object sender, RoutedEventArgs e) { WdSetup w = new WdSetup(); w.Owner = App.Current.MainWindow; w.ShowDialog(); } private void btnMoreClick(object sender, RoutedEventArgs e) { Button button = sender as Button; var plc = button.Tag as Modbus.WithThread.ModbusMapper_Client; WdDRList w = new WdDRList(); w.Init(plc); w.ShowDialog(); } private void btnRotaryClick(object sender, RoutedEventArgs e) { WdRotary w = new WdRotary(); w.Init(gage.rotarySystem); w.ShowDialog(); } } public class PgMainVmUt : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public List PLCs { get; set; } public PgMainVmUt() { PLCs = new List() { new ModbusMapperClientView(){ ActUpdateInterval = TimeSpan.FromMilliseconds( 623), Client = new TcpClientView(){ IsConnected = true, RemoteAddr = "127.168.50.1:502" }, DRCnt = 130, DRNeedUpdateCnt = 30, ErrorCnt = 2 }, new ModbusMapperClientView(){ ActUpdateInterval = TimeSpan.FromMilliseconds(2623), Client = new TcpClientView(){ IsConnected = false, RemoteAddr = "127.168.50.2:502" }, DRCnt = 45, DRNeedUpdateCnt = 40, ErrorCnt = 2 }, new ModbusMapperClientView(){ ActUpdateInterval = TimeSpan.FromMilliseconds(123), Client = new TcpClientView(){ IsConnected = true, RemoteAddr = "127.168.50.3:502" }, DRCnt = 10, DRNeedUpdateCnt = 3, ErrorCnt = 0 } }; } } public class ModbusMapperClientView : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; /// /// 实际更新间隔 /// public TimeSpan ActUpdateInterval { get; set; } public int ErrorCnt { get; set; } public int DRNeedUpdateCnt { get; set; } public int DRCnt { get; set; } public TcpClientView Client { get; set; } } public class TcpClientView : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public string RemoteAddr { get; set; } public bool IsConnected { get; set; } } }