98 lines
3.2 KiB
C#
98 lines
3.2 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using Aurora;
|
|
using Aurora.Api;
|
|
using Aurora.View;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Windows;
|
|
using VisionCommon;
|
|
using VisionSequence.Setup;
|
|
using VisionUI.Aligner;
|
|
|
|
namespace VisionUI.Setup {
|
|
/// <summary>
|
|
/// 캘리브레이션 로그 뷰 모델
|
|
/// </summary>
|
|
class CalLogViewModel : NotifyPropertyChangedBase {
|
|
private Logger _Logger = new Logger(typeof(CalLogViewModel).Name);
|
|
private SubSysInfo _SubSysInfo;
|
|
private CsvManager _CsvManager = new CsvManager();
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
#region Binding Properties
|
|
private ObservableCollection<PlanItem> mPlanListItems;
|
|
/// <summary>
|
|
/// 캘리브레이션 계획 아이템 컬렉션
|
|
/// </summary>
|
|
public ObservableCollection<PlanItem> PlanListItems {
|
|
get {
|
|
return mPlanListItems;
|
|
}
|
|
set {
|
|
mPlanListItems = value;
|
|
NotifyPropertyChanged("PlanListItems");
|
|
}
|
|
}
|
|
|
|
private DateTime selectedDate;
|
|
|
|
/// <summary>선택된 날짜</summary>
|
|
public DateTime SelectedDate { get => selectedDate; set { SetProperty(ref selectedDate, value); CalendarChanged(value); } }
|
|
#endregion
|
|
/// <summary>
|
|
/// 생성자
|
|
/// </summary>
|
|
/// <param name="subSysInfo">서브시스템 정보</param>
|
|
public CalLogViewModel(SubSysInfo subSysInfo) {
|
|
_SubSysInfo = subSysInfo;
|
|
PlanListItems = new ObservableCollection<PlanItem>();
|
|
SelectedDate = DateTime.Now.Date;
|
|
}
|
|
/// <summary>
|
|
/// 플랜 아이템컬렉션 설정
|
|
/// </summary>
|
|
/// <param name="plans">설정 할 플랜아이템 컬렉션</param>
|
|
public void SetPlan(ObservableCollection<PlanItem> plans) {
|
|
Application.Current.Dispatcher.Invoke(() => { PlanListItems = plans; });
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 현재 시간 기준으로 CSV 불러오기
|
|
/// </summary>
|
|
public void LoadCsvNow() {
|
|
DateTime dateTime = DateTime.Now;
|
|
LoadCsv(dateTime);
|
|
}
|
|
|
|
private void CalendarChanged(DateTime dateTime) {
|
|
LoadCsv(dateTime);
|
|
}
|
|
|
|
private void LoadCsv(DateTime date) {
|
|
try {
|
|
PlanListItems?.Clear();
|
|
List<CalResultItem> items = _CsvManager.LoadCsv<CalResultItem>(_SubSysInfo, date, eSaveDataType.Calibration);
|
|
if (items != null) {
|
|
foreach (CalResultItem item in items) {
|
|
PlanListItems.Add(CalItemManager.CalItemToPlanItem(item));
|
|
}
|
|
}
|
|
}
|
|
catch (Exception e) {
|
|
_Logger.FuncE(e.Message);
|
|
}
|
|
}
|
|
|
|
private void NotifyPropertyChanged(string propName) {
|
|
PropertyChanged?.Invoke(
|
|
this,
|
|
new PropertyChangedEventArgs(propName));
|
|
}
|
|
}
|
|
} |