74 lines
2.4 KiB
C#
74 lines
2.4 KiB
C#
using Aurora.Api.Devices;
|
|
using System;
|
|
using System.Linq;
|
|
using VisionCommon.DB.Align;
|
|
|
|
namespace VisionCommon.DB {
|
|
public class VisionAlignDBAgent : VisionDBAgentBase<VisionAlignDB> {
|
|
private static DateTime _LastCalledTime;
|
|
#region 자동 SeqId 할당
|
|
private static int _SeqId = -1;
|
|
public static int GetSeqId() {
|
|
if (_LastCalledTime.Date != DateTime.Now.Date) {
|
|
_LastCalledTime = DateTime.Now;
|
|
ResetSeqId();
|
|
}
|
|
return _SeqId;
|
|
}
|
|
public static void ResetSeqId() => _SeqId = -1;
|
|
public static void SetSeqId(int seqID) { _SeqId = seqID; }
|
|
public static void RaiseSeqId() {
|
|
if (_LastCalledTime.Date != DateTime.Now.Date) {
|
|
_LastCalledTime = DateTime.Now;
|
|
ResetSeqId();
|
|
}
|
|
else {
|
|
_SeqId++;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
public VisionAlignDBAgent(eVisionDBKey dbKey = eVisionDBKey.VisionAlign) : base(dbKey) {
|
|
_LastCalledTime = DateTime.Now;
|
|
}
|
|
#region EventObservable
|
|
internal override void OnDBActivated() {
|
|
if (CheckServiceActivate()) { // dobule check
|
|
_LastCalledTime = DateTime.Now;
|
|
var lastItem = _Service.GetData(new QueryOption() { IsDescending = true, Limit = 1 })?.LastOrDefault();
|
|
if ((lastItem as VisionAlignDB) != null && (lastItem as VisionAlignDB).TimeStamp.Value.Date == DateTime.Now.Date) {
|
|
SetSeqId((lastItem as VisionAlignDB).SeqId++);
|
|
}
|
|
else {
|
|
ResetSeqId();
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region UtilAPI
|
|
public VisionAlignDB CreateDBItem(AlignInfo alignInfo, eSeqMode alignSeqMode, int seqId = -1) {
|
|
return new VisionAlignDB(alignInfo, alignSeqMode, seqId == -1 ? GetSeqId() : seqId);
|
|
}
|
|
|
|
public void AllocCurrentSeqId(ref VisionAlignDB dbData) {
|
|
if(dbData != null) {
|
|
dbData.SeqId = GetSeqId();
|
|
}
|
|
}
|
|
|
|
public void AllocNextSeqId(VisionAlignDB dbData) {
|
|
if (dbData != null) {
|
|
RaiseSeqId();
|
|
dbData.SeqId = GetSeqId();
|
|
}
|
|
}
|
|
|
|
public void ConvertToDB(AlignResult alignResult, ref VisionAlignDB dbData) {
|
|
|
|
|
|
}
|
|
#endregion
|
|
}
|
|
}
|