using FLY.Integrated.Client; using FLY.Integrated.IService; using MultiLayout.UiModule; using System; using System.Collections.Generic; 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 Unity; namespace FLY.Integrated.UI.Client.UiModule { /// <summary> /// UcIbcPanel.xaml 的交互逻辑 /// </summary> public partial class IbcPanel : UserControl { IUnityContainer container; IIntegratedSystemService integratedSystemService; FLY.OBJComponents.Client.SetPLCUpdatePlan setPlan; public IbcPanel() { InitializeComponent(); } [InjectionMethod] public void Init( IUnityContainer container, IIntegratedSystemService integratedSystemService) { this.container = container; this.integratedSystemService = integratedSystemService; this.DataContext = integratedSystemService.Ibc; //注册属性更新计划 setPlan = new FLY.OBJComponents.Client.SetPLCUpdatePlan( integratedSystemService.PLCos, integratedSystemService.Ibc, new string[] { "InletAirFreq", "InletAirFreqSet", "IsInletAirOn", "OutletAirFreq", "OutletAirFreqSet", "IsOutletAirOn", "IsOutletAirFreqChanged", "ExCoolFreq", "ExCoolFreqSet", "IsExCoolOn", "FilmWidth", "FilmWidthSet", "IsFilmWidthChanged", "ErrorCorrection", "IsIBCAuto" }); integratedSystemService.Ibc.PropertyChanged += IbcData_PropertyChanged; } private async void IbcData_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if ((integratedSystemService is IntegratedSystemServiceClient) && ((integratedSystemService as IntegratedSystemServiceClient).IsInPushValue)) { return; } if (e.PropertyName == "FilmWidthSet") { await Task.Delay(1000);//1s后触发通知 integratedSystemService.Ibc.IsFilmWidthChanged = true; } else if (e.PropertyName == "OutletAirFreqSet") { await Task.Delay(1000);//1s后触发通知 integratedSystemService.Ibc.IsOutletAirFreqChanged = true; } } private void btnK123Click(object sender, RoutedEventArgs e) { WdK123 w = new WdK123(); container.BuildUp(w); w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this); w.ShowDialog(); } private void btnOutletAirPlusClick(object sender, RoutedEventArgs e) { if (integratedSystemService.Ibc.OutletAirFreqSet < 49.9) integratedSystemService.Ibc.OutletAirFreqSet += 0.1f; } private void btnOutletAirMinusClick(object sender, RoutedEventArgs e) { if (integratedSystemService.Ibc.OutletAirFreqSet > 0.1) integratedSystemService.Ibc.OutletAirFreqSet -= 0.1f; } private void btnInletAirPlusClick(object sender, RoutedEventArgs e) { if (integratedSystemService.Ibc.InletAirFreqSet < 49.9) integratedSystemService.Ibc.InletAirFreqSet += 0.1f; } private void btnInletAirMinusClick(object sender, RoutedEventArgs e) { if (integratedSystemService.Ibc.InletAirFreqSet > 0.1) integratedSystemService.Ibc.InletAirFreqSet -= 0.1f; } private void btnExCoolPlusClick(object sender, RoutedEventArgs e) { if (integratedSystemService.Ibc.ExCoolFreqSet < 49.9) integratedSystemService.Ibc.ExCoolFreqSet += 0.1f; } private void btnExCoolMinusClick(object sender, RoutedEventArgs e) { if (integratedSystemService.Ibc.ExCoolFreqSet > 0.1) integratedSystemService.Ibc.ExCoolFreqSet -= 0.1f; } } public class UiModule2_IbcPanel : IUiModule2 { /// <summary> /// 控件标题 /// 它的值取决于culture /// </summary> public string Title => "综合.IBC调节"; public ComponentType Type => ComponentType.Graph; public bool IsUnique => true; /// <summary> /// 控件 /// 创建时,需要给它唯一ID,让加载自己的数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public FrameworkElement GetComponent(int id, IUnityContainer container) { return container.Resolve<IbcPanel>(); } /// <summary> /// 控件缩略图,用于编辑界面时,大致看看 /// 创建时,需要给它唯一ID,让加载自己的数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public FrameworkElement GetThumbnail() { return new System.Windows.Controls.Grid(); } /// <summary> /// 给出全部控件ID, 控件自行删除没有的参数 /// </summary> /// <param name="IDs"></param> public void MatchParam(int[] IDs) { } } }