From 2bda9c5f9ce29666e00cdf4abbc709c48a32ad34 Mon Sep 17 00:00:00 2001 From: ACW Date: Sun, 1 Mar 2026 16:31:46 +0900 Subject: [PATCH] =?UTF-8?q?Dummy=20data=20=EC=83=9D=EC=84=B1=20=EB=B0=8F?= =?UTF-8?q?=20Callback=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=B0=9B=EC=9D=84?= =?UTF-8?q?=20=EB=95=8C,=20\0,\n,\r=EB=93=B1..=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuroraCellTracker/CellTracker.cs | 12 +++++ .../DaekhonCoporation/CellTrackerDaekhon.cs | 2 +- .../AuroraLBAD/Services/StreamLightLBAD.cs | 2 +- .../ILSOS_CCW_H52A/Datas/CellInfoScheduler.cs | 2 +- .../ProcessObjects/ProcessManager.cs | 4 +- .../Sequences/SeqAutoRunCCWH52A.cs | 45 ++++++++++--------- 6 files changed, 42 insertions(+), 25 deletions(-) diff --git a/AuroraDevices/AuroraCellTracker/CellTracker.cs b/AuroraDevices/AuroraCellTracker/CellTracker.cs index fe385fc..724193a 100644 --- a/AuroraDevices/AuroraCellTracker/CellTracker.cs +++ b/AuroraDevices/AuroraCellTracker/CellTracker.cs @@ -146,5 +146,17 @@ namespace AuroraCellTracker _CellTracker.SetIPConfig(); } + public void getDummyData(out string lotId, out string cellId) + { + lotId = string.Empty; + cellId = string.Empty; + + if (!IsActivated) { + return; + } + if (_CellTracker != null && _CellTracker is CellTrackerDaekhon core) { + core.CalcCellInfo("", out lotId, out cellId); + } + } } } diff --git a/AuroraDevices/AuroraCellTracker/DaekhonCoporation/CellTrackerDaekhon.cs b/AuroraDevices/AuroraCellTracker/DaekhonCoporation/CellTrackerDaekhon.cs index 7eaf516..a6ecff9 100644 --- a/AuroraDevices/AuroraCellTracker/DaekhonCoporation/CellTrackerDaekhon.cs +++ b/AuroraDevices/AuroraCellTracker/DaekhonCoporation/CellTrackerDaekhon.cs @@ -392,7 +392,7 @@ namespace AuroraCellTracker.DaekhonCoporation /// Cell 추적 API에서 받은 문자열에서, Cell ID와 Lot ID를 Parsing 하는 함수 /// /// Cell 추적 API에서 받은 문자열. Callback 방식일 때와 Queue 방식일 때 각각 다르다 - private void CalcCellInfo(string str, out string lotId, out string cellId) + public void CalcCellInfo(string str, out string lotId, out string cellId) { lotId = cellId = ""; diff --git a/AuroraDevices/AuroraLBAD/Services/StreamLightLBAD.cs b/AuroraDevices/AuroraLBAD/Services/StreamLightLBAD.cs index 36412af..563dd97 100644 --- a/AuroraDevices/AuroraLBAD/Services/StreamLightLBAD.cs +++ b/AuroraDevices/AuroraLBAD/Services/StreamLightLBAD.cs @@ -348,7 +348,7 @@ namespace AuroraLBAD.Service } string LotID_string = new string(LotID); string CellID_string = new string(CellID); - Log.I($"StreamLight LBAD Report Data : LotID({LotID_string.Replace("\0", "").Trim()}) / LotID({CellID_string.Replace("\0", "").Trim()})"); + Log.I($"StreamLight LBAD Report Data : LotID({LotID_string}) / CellID({CellID_string})"); Log.I($"StreamLight LBAD Report Data : HeadNum {replyParsed_LBAD.HeadNum}"); Log.I($"StreamLight LBAD Report Data : LaserPower_AVG {replyParsed_LBAD.AVG}"); if (replyParsed_LBAD.HeadNum > 0) diff --git a/Machines/ILSOS_CCW_H52A/Datas/CellInfoScheduler.cs b/Machines/ILSOS_CCW_H52A/Datas/CellInfoScheduler.cs index b064fc2..0b7085b 100644 --- a/Machines/ILSOS_CCW_H52A/Datas/CellInfoScheduler.cs +++ b/Machines/ILSOS_CCW_H52A/Datas/CellInfoScheduler.cs @@ -132,7 +132,7 @@ namespace ILSOS_CCW_H52A.Data // GetReportCellResult_SeqResult 성공 시 호출. public void CompleteReport() { - _log.I($"Report >> CellId{ReportTarget.CellId}, JigNo{ReportTarget.JigNo}"); + _log.I($"Report >> CellId({ReportTarget.CellId}), JigNo({ReportTarget.JigNo})"); ReportTarget?.SetReportComplete(true); ReportTarget = null; _pendingSlot.Clear(); diff --git a/Machines/ILSOS_CCW_H52A/Sequences/ProcessObjects/ProcessManager.cs b/Machines/ILSOS_CCW_H52A/Sequences/ProcessObjects/ProcessManager.cs index 4c45419..af33138 100644 --- a/Machines/ILSOS_CCW_H52A/Sequences/ProcessObjects/ProcessManager.cs +++ b/Machines/ILSOS_CCW_H52A/Sequences/ProcessObjects/ProcessManager.cs @@ -72,8 +72,10 @@ namespace ILSOS_CCW_H52A.Sequences.ProcessObjects private void OnCellReceived(string lotId, string cellId) { + lotId = lotId.Replace("\0", "").Trim(); + cellId = cellId.Replace("\0", "").Trim(); ReceivedCellInfoQueue.Enqueue((lotId, cellId)); - _log.I($"Cell Tracker CallBack Received >> [LotId({lotId.Replace("\0", "").Trim()})] [CellId({cellId.Replace("\0", "").Trim()})]"); + _log.I($"Cell Tracker CallBack Received >> [LotId({lotId})] [CellId({cellId})]"); } public IEnumerable CheckRotaryState() diff --git a/Machines/ILSOS_CCW_H52A/Sequences/SeqAutoRunCCWH52A.cs b/Machines/ILSOS_CCW_H52A/Sequences/SeqAutoRunCCWH52A.cs index e49795b..abc42fc 100644 --- a/Machines/ILSOS_CCW_H52A/Sequences/SeqAutoRunCCWH52A.cs +++ b/Machines/ILSOS_CCW_H52A/Sequences/SeqAutoRunCCWH52A.cs @@ -734,9 +734,15 @@ namespace ILSOS_CCW_H52A.Sequences _CellScheduler.Prefetch2.CellId = cell.CellId; Status.GetProcessingWeldingData().WorkLotId = cell.LotId; Status.GetProcessingWeldingData().WorkCellId = cell.CellId; + } else { + _CellTracker.getDummyData(out string lotId, out string cellId); + _CellScheduler.Prefetch2.LotId = lotId; + _CellScheduler.Prefetch2.CellId = cellId; + Status.GetProcessingWeldingData().WorkLotId = lotId; + Status.GetProcessingWeldingData().WorkCellId = cellId; } - if(_CellScheduler.Prefetch2 != null) + if (_CellScheduler.Prefetch2 != null) Log.I($"상태 시프트(Rotate) >> 용접 전전셀({_CellScheduler.Prefetch2.CellId}) [CanExist({_CellScheduler.Prefetch2.IsCanExist})] [JigNo({_CellScheduler.Prefetch2.JigNo})] " + $"[ListNo({_CellScheduler.Prefetch2.ListNo})] [WeldingCount({_CellScheduler.Prefetch2.WeldingCount})]" + $"[StartAngle(Y)({_CellScheduler.Prefetch2.StartAngle})]"); @@ -1101,29 +1107,26 @@ namespace ILSOS_CCW_H52A.Sequences return SequenceAction.Ok(); } - private SequenceActionResult SetReportCellResult_SeqParams(SequenceContext context, string id, SequenceActionResult param) - { - Status.SetWorkingPosition(eWorkingPosition.REPORTING_RESULT); + //private SequenceActionResult SetReportCellResult_SeqParams(SequenceContext context, string id, SequenceActionResult param) + //{ + // Status.SetWorkingPosition(eWorkingPosition.REPORTING_RESULT); - SeqReportCellResult_InitParam seqParams = new SeqReportCellResult_InitParam() { - EDC_Interface = new EDC(), - }; + // SeqReportCellResult_InitParam seqParams = new SeqReportCellResult_InitParam() { + // EDC_Interface = new EDC(), + // }; - return SequenceAction.Ok(seqParams); - } + // return SequenceAction.Ok(seqParams); + //} - private SequenceActionResult GetReportCellResult_SeqResult(SequenceContext context, string id, SequenceActionResult param) - { - var resultOutParam = param.Param as SeqReportCellResult_OutParam; - if (resultOutParam.Success == false) { - return null; - } + //private SequenceActionResult GetReportCellResult_SeqResult(SequenceContext context, string id, SequenceActionResult param) + //{ + // var resultOutParam = param.Param as SeqReportCellResult_OutParam; + // if (resultOutParam.Success == false) { + // return null; + // } - // 보고 완료: ReportTarget.ReportComplete=true 설정 + pendingSlot 클리어 - _CellScheduler.CompleteReport(); - - return SequenceAction.Ok(); - } + // return SequenceAction.Ok(); + //} private static string CheckCycleStop(SequenceContext context, string id, ICollection branches, SequenceActionResult param) { @@ -1297,7 +1300,7 @@ namespace ILSOS_CCW_H52A.Sequences Status.EquipmentMode = eEquipmentMode.MANUAL; foreach (var info in ProcessManager.Instance.ReceivedCellInfoQueue.Select((value, index) => (value, index))) { - Log.I($"[{info.index}]Queue >> CellId({info.value.CellId.Replace("\0", "").Trim()}) LotId({info.value.LotId.Replace("\0", "").Trim()})"); + Log.I($"[{info.index}]Queue >> CellId({info.value.CellId}) LotId({info.value.LotId})"); } // 정지 시점 파이프라인 상태 로그 (재시작 후 복원 여부 사전 확인용)