using Aitex.Core.UI.MVVM; using Aitex.Core.Utilities; using CyberX8_Simulator.Devices; using MECF.Framework.Simulator.Core.Commons; using MECF.Framework.Simulator.Core.Driver; using System; using System.Collections.Generic; using System.Collections.ObjectModel; 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 CyberX8_Simulator.Views { /// /// WagoView.xaml 的交互逻辑 /// public partial class WagoView : UserControl { public WagoView() { InitializeComponent(); this.Loaded += OnViewLoaded; } private void OnViewLoaded(object sender, RoutedEventArgs e) { (DataContext as TimerViewModelBase)?.Start(); } } class WagoViewModel : SocketDeviceViewModel { #region 属性 public string Title { get { return "Wago Simulator"; } } private string _DOSelectedItem; [IgnorePropertyChange] public string DOSelectedItem { get { return _DOSelectedItem; } set { _DOSelectedItem = value; } } private int _DOInputValue; [IgnorePropertyChange] public int DOInputValue { get { return _DOInputValue; } set { _DOInputValue = value; } } private string _DISelectedItem; [IgnorePropertyChange] public string DISelectedItem { get { return _DISelectedItem; } set { _DISelectedItem = value; } } private int _DIInputValue; [IgnorePropertyChange] public int DIInputValue { get { return _DIInputValue; } set { _DIInputValue = value; } } private string _AOSelectedItem; [IgnorePropertyChange] public string AOSelectedItem { get { return _AOSelectedItem; } set { _AOSelectedItem = value; } } private short _AOInputValue; [IgnorePropertyChange] public short AOInputValue { get { return _AOInputValue; } set { _AOInputValue = value; } } private string _AISelectedItem; [IgnorePropertyChange] public string AISelectedItem { get { return _AISelectedItem; } set { _AISelectedItem = value; } } private short _AIInputValue; [IgnorePropertyChange] public short AIInputValue { get { return _AIInputValue; } set { _AIInputValue = value; } } #endregion public ObservableCollection DONameItems { get; set; } public ObservableCollection DINameItems { get; set; } public ObservableCollection AONameItems { get; set; } public ObservableCollection AINameItems { get; set; } public ObservableCollection DigitalInputSelected { get; set; } private WagoSocketSimulator _sim; public ICommand SetDICommand { get; set; } public ICommand SetDOCommand { get; set; } public ICommand SetAICommand { get; set; } public ICommand SetAOCommand { get; set; } public WagoViewModel(string str) : base("WagoViewModel") { InitData(); SetDICommand = new DelegateCommand(SetDIAction); SetDOCommand = new DelegateCommand(SetDOAction); SetAICommand = new DelegateCommand(SetAIAction); SetAOCommand = new DelegateCommand(SetAOAction); int.TryParse(str, out int port); _sim = new WagoSocketSimulator(port); Init(_sim); } private void SetDIAction(object obj) { _sim.UpdataDIBytes(DISelectedItem, DIInputValue); } private void SetDOAction(object obj) { _sim.UpdataDOBytes(DOSelectedItem, DOInputValue); } private void SetAIAction(object obj) { _sim.UpdataAIShorts(AISelectedItem, AIInputValue); } private void SetAOAction(object obj) { _sim.UpdataAOShorts(AISelectedItem, AIInputValue); } private void InitData() { DigitalInputSelected = new ObservableCollection { 0, 1 }; DONameItems = new ObservableCollection { "DO1","DO2","DO3","c_LoaderA_LS_Vacuum","DO4","DO5","DO6","DO7","DO8" ,"DO9","DO10","DO11","DO12","DO12","DO13","DO14","DO15","DO16","DO17","DO18", "c_LOADERA_DOOR_UNLOCK","DO20","DO21"}; DINameItems = new ObservableCollection { "r_Cassette_1_150","r_Cassette_1_100"}; AONameItems = new ObservableCollection { "AO0", "AO1" }; AINameItems = new ObservableCollection { "AI0", "AI1" }; } } }