using Aitex.Core.UI.MVVM; 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; using MECF.Framework.Simulator.Core.Driver; namespace MECF.Framework.Simulator.Core.Robots { /// /// BrooksMag7View.xaml 的交互逻辑 /// public partial class BrooksMag7RobotTesterView : UserControl { public BrooksMag7RobotTesterView() { InitializeComponent(); this.DataContext = new BrooksMag7ViewModel(); this.Loaded += SxFxView_Loaded; } private void SxFxView_Loaded(object sender, RoutedEventArgs e) { (DataContext as BrooksMag7ViewModel).Start(); } } class BrooksMag7ViewModel : TimerViewModelBase { public ICommand ClearLogCommand { get; set; } public ICommand EnableCommand { get; set; } public ICommand DisableCommand { get; set; } public ICommand HomeCommand { get; set; } public ICommand PickCommand { get; set; } public ICommand PlaceCommand { get; set; } public bool IsEnableEnable { get { return !_robot.IsEnabled; } } public bool IsEnableDisable { get { return _robot.IsEnabled; } } public ObservableCollection< TransactionLogItem> TransactionLogItems { get; set; } private BrooksMag7RobotSimulator _robot; public BrooksMag7ViewModel() : base("BrooksMag7ViewModel") { ClearLogCommand = new DelegateCommand(ClearLog); //EnableCommand = new DelegateCommand(Enable); //DisableCommand = new DelegateCommand(Disable); TransactionLogItems = new ObservableCollection(); _robot = new BrooksMag7RobotSimulator(); //HomeCommand = new DelegateCommand(HomeAll); //PickCommand = new DelegateCommand(Pick); //PlaceCommand = new DelegateCommand(Place); _robot.MessageOut += _robot_MessageOut; _robot.MessageIn += _robot_MessageIn; } //private void HomeAll(string obj) //{ // _robot.HomeAll(); //} //private void Pick(string obj) //{ // _robot.Pick(); //} //private void Place(string obj) //{ // _robot.Place(); //} //private void Disable(string obj) //{ // _robot.Disable(); //} //private void Enable(string obj) //{ // _robot.Enable(); //} private void ClearLog(string obj) { TransactionLogItems.Clear(); } private void _robot_MessageIn(string obj) { Application.Current.Dispatcher.Invoke(new Action(() => { TransactionLogItems.Add(new TransactionLogItem() { Incoming = obj, OccurTime = DateTime.Now.ToString("HH:mm:ss.fff") }); })); } private void _robot_MessageOut(string obj) { Application.Current.Dispatcher.Invoke(new Action(() => { TransactionLogItems.Add(new TransactionLogItem() { Outgoing = obj, OccurTime = DateTime.Now.ToString("HH:mm:ss.fff") }); })); } protected override void Poll() { Application.Current.Dispatcher.Invoke(new Action(() => { InvokeAllPropertyChanged(); })); } } }