using Newtonsoft.Json;
using PropertyChanged;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BDU.Models
{
[AddINotifyPropertyChangedInterface]
public class StepModel
{
#region 构造函数
public StepModel()
{
}
public StepModel(StepModel source)
{
if (source == null) return;
ID = source.ID;
Index = source.Index;
Name = source.Name;
StepType = source.StepType;
LoopCount = source.LoopCount;
LoopStartStepId = source.LoopStartStepId;
OKExpression = source.OKExpression;
OKGotoStepID = source.OKGotoStepID;
NGGotoStepID = source.NGGotoStepID;
Description = source.Description;
IsUsed = source.IsUsed;
if (source.Method != null)
{
Method = new(source.Method);
}
if (source.SubProgram != null)
{
SubProgram = new(source.SubProgram);
}
}
#endregion
public Guid? ID { get; set; } = Guid.NewGuid();
public bool IsUsed { get; set; } = true;
public int Index { get; set; }
public string? Name { get; set; }
public string? StepType { get; set; }
public MethodModel? Method { get; set; }
public ProgramModel? SubProgram { get; set; }
///
/// 仅LoopStart使用
///
public int? LoopCount { get; set; }
///
/// 运行时循环计数
///
[JsonIgnore]
public int? CurrentLoopCount { get; set; }
///
/// 仅LoopEnd使用,关联LoopStart
///
public Guid? LoopStartStepId { get; set; }
///
/// 初始:-1 运行中:0 成功:1 异常:2
///
[JsonIgnore]
public int Result { get; set; } = -1;
[JsonIgnore]
public int? RunTime { get; set; }
public string? OKExpression { get; set; }
///
/// 默认为0/0不跳转,第一位为OK跳转的步骤序号,第二位为NG跳转的步骤序号
///
public string GotoSettingString { get; set; } = "";
public Guid? OKGotoStepID { get; set; }
public Guid? NGGotoStepID { get; set; }
public string? Description { get; set; }
[JsonIgnore]
public bool? isBrokenpoint { get; set; }
}
}