76 lines
2.9 KiB
C#
76 lines
2.9 KiB
C#
using Aurora.Api;
|
|
using Aurora.Util.HislogPlus;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
using VisionCommon;
|
|
using VisionSequence.Pattern;
|
|
|
|
namespace MilUI {
|
|
/// <summary>
|
|
/// Interaction logic for PatternTestResultView.xaml
|
|
/// </summary>
|
|
public partial class VisionImageTestLogView : UserControl {
|
|
private readonly Logger _Logger = new Logger(typeof(VisionImageTestLogView).Name);
|
|
private FovInfo _FovInfo;
|
|
private eVisionTestType _VisionTestType;
|
|
private PatternInfo _PatternInfo;
|
|
public VisionImageTestLogView(FovInfo fovInfo, eVisionTestType visionTestType, PatternInfo patternInfo = null) {
|
|
_FovInfo = fovInfo;
|
|
_VisionTestType = visionTestType;
|
|
if (patternInfo != null) {
|
|
_PatternInfo = patternInfo;
|
|
}
|
|
|
|
InitializeComponent();
|
|
}
|
|
|
|
private async void dataGridFilePaths_SelectionChanged(object sender, SelectionChangedEventArgs e) {
|
|
if(e.AddedItems.Count > 0) {
|
|
var dataGrid = sender as DataGrid;
|
|
}
|
|
}
|
|
|
|
private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) {
|
|
var dataGrid = sender as DataGrid;
|
|
if (dataGrid.SelectedIndex != null) {
|
|
switch (_VisionTestType) {
|
|
case eVisionTestType.Pattern:
|
|
StartSingleTestGrabFindSeq(dataGrid.SelectedIndex);
|
|
break;
|
|
case eVisionTestType.Align:
|
|
case eVisionTestType.Calibration:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void StartSingleTestGrabFindSeq(int index) {
|
|
var visionImageTester = VisionImageTesterManagerBase.GetVisionImageTester(_FovInfo);
|
|
visionImageTester.SetCount(index);
|
|
var manualFixtureProcSeq = ManualGrabFindSeqManager.GetSeq(_FovInfo);
|
|
|
|
if (manualFixtureProcSeq == null) {
|
|
_Logger.FuncE("manualFixtureProcSeq is null.");
|
|
}
|
|
else {
|
|
while (manualFixtureProcSeq.RunState == SequenceRunState.Running || manualFixtureProcSeq.RunState == SequenceRunState.Finish) {
|
|
Thread.Sleep(10);
|
|
}
|
|
if (manualFixtureProcSeq.RunState == SequenceRunState.Idle) {
|
|
GrabFindSeqUtil.Clear(_FovInfo.ToSubSysInfo());
|
|
|
|
var fixtureSeqParam = new GrabFindProcSeqParams(
|
|
_FovInfo, _PatternInfo, eDisplayType.ImageTest, seqMode: eSeqMode.VisionImageTest);
|
|
manualFixtureProcSeq.Start(fixtureSeqParam);
|
|
}
|
|
else {
|
|
_Logger.FuncE("manualFixtureProcSeq is not idle.");
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
} |