97 lines
3.4 KiB
C#
97 lines
3.4 KiB
C#
using Aurora;
|
|
using Aurora.Api;
|
|
using Aurora.Api.Devices;
|
|
using VisionCommon;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using VisionSequence.Setup;
|
|
using DevExpress.Xpo.Logger;
|
|
|
|
namespace VisionUI.Setup {
|
|
/// <summary>
|
|
/// 센터 튜닝 뷰 모델
|
|
/// </summary>
|
|
class CenterTuningViewModel : INotifyPropertyChanged {
|
|
private Logger Log = new Logger("CenterTuningViewModel");
|
|
private SubSysInfo _SubSysInfo;
|
|
private int CurrCnt;
|
|
private CsvManager _CsvManager = new CsvManager();
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
private CenterTuningSettingViewModel centerTuningSettingViewModel;
|
|
/// <summary>센터 튜닝 세팅 뷰 모델</summary>
|
|
public CenterTuningSettingViewModel CenterTuningSettingViewModel {
|
|
get { return centerTuningSettingViewModel; }
|
|
set {
|
|
centerTuningSettingViewModel = value;
|
|
NotifyPropertyChanged("CenterTuningSettingViewModel");
|
|
}
|
|
}
|
|
|
|
private CenterTuningLogViewModel centerTuningLogViewModel;
|
|
/// <summary>센터 튜닝 로그 뷰 모델</summary>
|
|
public CenterTuningLogViewModel CenterTuningLogViewModel {
|
|
get { return centerTuningLogViewModel; }
|
|
set {
|
|
centerTuningLogViewModel = value;
|
|
NotifyPropertyChanged("CenterTuningLogViewModel");
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 생성자
|
|
/// </summary>
|
|
/// <param name="subSysInfo">서브시스템 정보</param>
|
|
public CenterTuningViewModel(SubSysInfo subSysInfo) {
|
|
_SubSysInfo = subSysInfo;
|
|
|
|
CenterTuningSettingViewModel = new CenterTuningSettingViewModel(_SubSysInfo);
|
|
CenterTuningLogViewModel = new CenterTuningLogViewModel(_SubSysInfo);
|
|
CenterTuningSettingViewModel.AlignDelta += AddAlignDelta;
|
|
CenterTuningSettingViewModel.SequenceStart += SequenceStart;
|
|
//CenterTuningSettingViewModel.CancelSequence += SequenceStop;
|
|
}
|
|
|
|
private void SequenceStart(object sender, EventArgs e) {
|
|
CurrCnt = 0;
|
|
CenterTuningLogViewModel.CenterTuningLogItems.Clear();
|
|
}
|
|
|
|
private void AddAlignDelta(object sender, Position e) {
|
|
try {
|
|
var log = new CenterTuningLogItem() {
|
|
CurrentCnt = ++CurrCnt,
|
|
DeltaX = e.X,
|
|
DeltaY = e.Y,
|
|
DeltaT = e.T
|
|
};
|
|
var centerTuningLog = CenterTuningLogItemManager.GetCenterTuningLogItem(_SubSysInfo, log);
|
|
|
|
Application.Current.Dispatcher.Invoke(() => {
|
|
CenterTuningLogViewModel.CenterTuningLogItems.Add(centerTuningLog); });
|
|
|
|
_CsvManager.SaveCsv(_SubSysInfo, centerTuningLog, eSaveDataType.CenterTuning);
|
|
}
|
|
catch (Exception ex) {
|
|
Log.FuncE($"{ex.Message}");
|
|
}
|
|
}
|
|
|
|
private void OnCompleted(SequenceActionResult SeqResult) {
|
|
|
|
}
|
|
|
|
private void NotifyPropertyChanged(string propName) {
|
|
PropertyChanged?.Invoke(
|
|
this,
|
|
new PropertyChangedEventArgs(propName));
|
|
}
|
|
}
|
|
}
|