first commit
This commit is contained in:
152
DHSoftware/productModel.cs
Normal file
152
DHSoftware/productModel.cs
Normal file
@ -0,0 +1,152 @@
|
||||
using DH.Devices.Vision;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static OpenCvSharp.AgastFeatureDetector;
|
||||
|
||||
namespace DHSoftware
|
||||
{
|
||||
public class productModel
|
||||
{
|
||||
}
|
||||
/// <summary>
|
||||
/// 产品结果数据
|
||||
/// </summary>
|
||||
public class ProductData : IDisposable
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 物件编号
|
||||
/// </summary>
|
||||
public readonly uint PieceNumber;
|
||||
public readonly string DetYime;
|
||||
public double Distance = 0;
|
||||
public string Id { get; set; } = "P" + DateTime.Now.ToString("HHmmssfff");
|
||||
public string BatchNO { get; set; }
|
||||
public DateTime? ResultTime { get; set; } = null;
|
||||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
public DateTime? BlowOutTime { get; set; } = null;
|
||||
|
||||
public List<DetectStationResult> ResultCollection { get; set; } = new List<DetectStationResult>();
|
||||
|
||||
object _resultLock = new object();
|
||||
|
||||
public ResultState ProductResult { get; set; }
|
||||
|
||||
public string ProductLabelCategory { get; set; }
|
||||
|
||||
public string ProductLabel { get; set; }
|
||||
|
||||
// public List<DiskPosition> DiskPositions { get; set; } = new List<DiskPosition>();
|
||||
|
||||
// public List<ITriggerSet> TriggerSettings { get; set; }
|
||||
// public List<ITriggerSet> TriggerSettings { get; set; }
|
||||
/// <summary>
|
||||
/// 存放的是工位存放的图片和相机ID和相机数量
|
||||
/// </summary>
|
||||
// public List<ModuleProductData> ModuleProductDatas { get; set; } = new List<ModuleProductData>();
|
||||
|
||||
// volatile ITriggerSet CurTrigger = null;
|
||||
|
||||
public int CurAxisNum = -1;
|
||||
public int CurStartPosition = -1;
|
||||
public int NextTriggerAxisNum = -1;
|
||||
|
||||
|
||||
private object _inferenceLock = new object();
|
||||
private volatile int InferenceLeft = -1;
|
||||
|
||||
private CountdownEvent _countdownEvent;
|
||||
|
||||
public bool IsA2B { get; set; } = false;
|
||||
|
||||
|
||||
public ProductData(uint pieceNumber)
|
||||
{
|
||||
PieceNumber = pieceNumber;
|
||||
}
|
||||
//双转盘模组
|
||||
public ProductData( string batchNO, uint pieceNumber, int inferenceLeft = -1) : this(pieceNumber)
|
||||
{
|
||||
InferenceLeft = inferenceLeft;
|
||||
_countdownEvent = new CountdownEvent(inferenceLeft);
|
||||
|
||||
BatchNO = batchNO;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void InferenceOne(Action preAction = null, Action postAction = null)
|
||||
{
|
||||
//lock (_inferenceLock)
|
||||
//{
|
||||
// Interlocked.Decrement(ref InferenceLeft);
|
||||
//}
|
||||
|
||||
preAction?.Invoke();
|
||||
_countdownEvent.Signal();
|
||||
postAction?.Invoke();
|
||||
}
|
||||
|
||||
public bool InferenceFinished()
|
||||
{
|
||||
//lock (_inferenceLock)
|
||||
//{
|
||||
// return 0 == InferenceLeft;
|
||||
//}
|
||||
return _countdownEvent.CurrentCount == 0; // 判断计数器是否为 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
object _compareLock = new object();
|
||||
object _curTriggerLock = new object();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 将该料设为TBD
|
||||
/// </summary>
|
||||
private void SetToTBD()
|
||||
{
|
||||
//检测数量不足TBD
|
||||
ProductResult = ResultState.B_NG;
|
||||
ProductLabelCategory = ResultState.B_NG.GetEnumDescription();
|
||||
// ProductLabel = ResultState.ShortageTBD.GetEnumDescription();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public ProductData GetProductData()
|
||||
{
|
||||
ProductData p = new ProductData(PieceNumber)
|
||||
{
|
||||
Id = Id,
|
||||
BatchNO = BatchNO,
|
||||
ResultTime = ResultTime,
|
||||
|
||||
BlowOutTime = BlowOutTime,
|
||||
ProductResult = ProductResult,
|
||||
ProductLabelCategory = ProductLabelCategory,
|
||||
ProductLabel = ProductLabel,
|
||||
};
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user