Files
Shi.Ji e31d3560bb 添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
2026-05-18 11:43:09 +08:00

241 lines
6.6 KiB
C#

using MainShell.Resources.CustomControl;
using Stylet;
using System;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
namespace MainShell.Manual.ViewModel.State
{
public class LogisticsOperationState : PropertyChangedBase
{
private SectionState _substrateLoad;
public SectionState SubstrateLoad
{
get { return _substrateLoad; }
set { SetAndNotify(ref _substrateLoad, value); }
}
private SectionState _chipLoad;
public SectionState ChipLoad
{
get { return _chipLoad; }
set { SetAndNotify(ref _chipLoad, value); }
}
private SectionState _substrateOut;
public SectionState SubstrateOut
{
get { return _substrateOut; }
set { SetAndNotify(ref _substrateOut, value); }
}
private SectionState _chipUnload;
public SectionState ChipUnload
{
get { return _chipUnload; }
set { SetAndNotify(ref _chipUnload, value); }
}
private MagazineMapViewModel _magazineMap;
public MagazineMapViewModel MagazineMap
{
get { return _magazineMap; }
set { SetAndNotify(ref _magazineMap, value); }
}
private string _feedbackTitle;
public string FeedbackTitle
{
get { return _feedbackTitle; }
set { SetAndNotify(ref _feedbackTitle, value); }
}
private bool _isScanning;
public bool IsScanning
{
get { return _isScanning; }
set { SetAndNotify(ref _isScanning, value); }
}
private int _scanProgress;
public int ScanProgress
{
get { return _scanProgress; }
set { SetAndNotify(ref _scanProgress, value); }
}
private bool _isManualWithoutEfem;
public bool IsManualWithoutEfem
{
get { return _isManualWithoutEfem; }
set { SetAndNotify(ref _isManualWithoutEfem, value); }
}
public string LastFeedbackTime
{
get
{
var last = FeedbackRecords.LastOrDefault();
return last == null ? "--:--:--" : last.Time.ToString("HH:mm:ss");
}
}
public ObservableCollection<FeedbackRecord> FeedbackRecords { get; } = new ObservableCollection<FeedbackRecord>();
public LogisticsOperationState()
{
FeedbackRecords.CollectionChanged += OnFeedbackRecordsChanged;
AddFeedback("内部物流动作已独立触发并完成。");
}
public void AddFeedback(string message, string level = "DEBUG")
{
FeedbackRecords.Add(new FeedbackRecord
{
Time = DateTime.Now,
Level = level,
Message = message
});
while (FeedbackRecords.Count > 3)
{
FeedbackRecords.RemoveAt(0);
}
}
private void OnFeedbackRecordsChanged(object sender, NotifyCollectionChangedEventArgs e)
{
OnPropertyChanged(nameof(LastFeedbackTime));
}
}
public class SectionState : PropertyChangedBase
{
private string _title;
public string Title
{
get { return _title; }
set { SetAndNotify(ref _title, value); }
}
private string _status;
public string Status
{
get { return _status; }
set { SetAndNotify(ref _status, value); }
}
private string _primaryActionText;
public string PrimaryActionText
{
get { return _primaryActionText; }
set { SetAndNotify(ref _primaryActionText, value); }
}
private string _secondaryActionText;
public string SecondaryActionText
{
get { return _secondaryActionText; }
set { SetAndNotify(ref _secondaryActionText, value); }
}
public ObservableCollection<IndicatorState> Indicators { get; } = new ObservableCollection<IndicatorState>();
public ObservableCollection<PhaseStepState> PhaseSteps { get; } = new ObservableCollection<PhaseStepState>();
}
public class PhaseStepState : PropertyChangedBase
{
private string _title;
public string Title
{
get { return _title; }
set { SetAndNotify(ref _title, value); }
}
private string _status;
public string Status
{
get { return _status; }
set { SetAndNotify(ref _status, value); }
}
private string _actionText;
public string ActionText
{
get { return _actionText; }
set { SetAndNotify(ref _actionText, value); }
}
private bool _isEnabled;
public bool IsEnabled
{
get { return _isEnabled; }
set { SetAndNotify(ref _isEnabled, value); }
}
private string _controlTag;
public string ControlTag
{
get { return _controlTag; }
set { SetAndNotify(ref _controlTag, value); }
}
private bool _requiresEfemCommunication;
public bool RequiresEfemCommunication
{
get { return _requiresEfemCommunication; }
set { SetAndNotify(ref _requiresEfemCommunication, value); }
}
private int _targetLayer = 1;
public int TargetLayer
{
get { return _targetLayer; }
set { SetAndNotify(ref _targetLayer, value); }
}
}
public class IndicatorState : PropertyChangedBase
{
private string _name;
public string Name
{
get { return _name; }
set { SetAndNotify(ref _name, value); }
}
private bool _isOn;
public bool IsOn
{
get { return _isOn; }
set { SetAndNotify(ref _isOn, value); }
}
}
public class FeedbackRecord : PropertyChangedBase
{
private DateTime _time;
public DateTime Time
{
get { return _time; }
set { SetAndNotify(ref _time, value); }
}
private string _level;
public string Level
{
get { return _level; }
set { SetAndNotify(ref _level, value); }
}
private string _message;
public string Message
{
get { return _message; }
set { SetAndNotify(ref _message, value); }
}
}
}