void InitDetection() { //IO监测 if (Config.IOCard.Enable) { IOCard = new IOCard(); IOCard.OnTrayIn += () => { TrayInDate = DateTime.Now; Machine.TrayIn(); UpdateUi(); }; IOCard.OnTrayOut += () => { Machine.TrayOut(); UpdateUi(); }; IOCard.OnTrigger += () => { int?index = Machine.NowTray?.NewColumn(); if (index == null) { return; } Trigger.TriggerOn((int)index); UpdateUi(); }; IOCard.OnMachineStart += () => { OnPropertyChanged(nameof(StopVisibility)); }; IOCard.OnMachineStop += () => { OnPropertyChanged(nameof(StopVisibility)); }; if (IOCard is IOCard ioCard) { ioCard.OnMoni += () => { MoniVisibility = Visibility.Visible; OnPropertyChanged(nameof(MoniVisibility)); } } ; } //相机监测 else { } } void UpdateUi() { Application.Current.Dispatcher.Invoke(new Action(() => { OnPropertyChanged(nameof(NowTray)); OnPropertyChanged(nameof(TraySpeed)); })); }
void InitTrigger() { Trigger = new Trigger(SocketHelper.visionClient); Trigger.OnLog += ShowLog; Trigger.OnRead += (cam, stageId, data) => { if (cam == 1 && data.Count > 7) { double.TryParse(data[7], out double px); IOCard.AddTriggerDelay(px); } if (Machine.NowTray == null) { LogError.Log.Debug($"Not Find Tray! \r\nTrayID:{Machine.NowTrayId} {cam} {stageId} {data.ToJson()}"); return; } Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); Product product;// = Machine.NowTray.Add(cam, stageId, data); lock (TriggerDataObject) { product = Machine.NowTray.Add(cam, stageId, data); if (product == null) { return; } if (!product.Success || product.IsRepeat) { Machine.AddCount(product); return; } } stopwatch.Stop(); //LogRead.Log.Debug($"{stageId} {cam} 锁时长:{stopwatch.Elapsed.TotalMilliseconds}"); Task.Run(() => { //LogRead.Log.Debug($" {stageId} {cam} 读码完成"); new Trace().PostData(Machine, product); }); }; }
private void Button_Click_1(object sender, RoutedEventArgs e) { IOCard.MoniMachine(IOCard.IsRuning); }
private void Button_Click(object sender, RoutedEventArgs e) { IOCard.MoniTray(2); }