프로젝트 구조 개선 및 README.md 추가
- UIControl 프로젝트 구조 변경 (CapCleaningControl → Sub/UIControl) - arAjinextek 라이브러리 통합 및 구조 개선 - 새로운 arAjinextek_Union 프로젝트 추가 - 솔루션 파일에 README.md 추가 - QR 모드에서 WMS RCV 태그 인식 기능 강화 - 데이터베이스 스키마 업데이트 및 관련 클래스 수정 - 프린터 및 바코드 장치 연동 로직 개선 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -110,7 +110,13 @@ namespace Project
|
||||
|
||||
private string KeyenceBarcodeDataF = string.Empty;
|
||||
private string KeyenceBarcodeDataR = string.Empty;
|
||||
//List<Class.KeyenceBarcodeData> barcodelist = new List<Class.KeyenceBarcodeData>();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 키엔스로부터 받은 데이터를 분석한다.
|
||||
/// </summary>
|
||||
/// <param name="response"></param>
|
||||
/// <param name="Source"></param>
|
||||
void ParseBarcode(string response, string Source)
|
||||
{
|
||||
|
||||
@@ -155,26 +161,15 @@ namespace Project
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
var MatchList = RegX.Matches(resp.Trim());
|
||||
var buf = MatchList[0].Groups;
|
||||
|
||||
//var buf = resp.Split(':'); //데이터는 :로 분리되어있음
|
||||
//if (buf.Length != 7) //데이터는 총 6개의 데이터로 구성됨
|
||||
//{
|
||||
// PUB.log.AddE("***바코드 응답데이터 오류 값(키엔스 전송포맷을 확인하세요) " + resp);
|
||||
// gridView2.setTitle(8, 1, "ERR");
|
||||
// continue;
|
||||
//}
|
||||
|
||||
|
||||
var angle = 0;
|
||||
Boolean STDData = false; //들어온 자료가 amkor std 바코드여부
|
||||
var sym = buf[1].Value;
|
||||
var vData = buf[2].Value.Trim();
|
||||
var sym = buf[1].Value; //symbol
|
||||
var vData = buf[2].Value.Trim(); //data
|
||||
|
||||
|
||||
if (Source == "R") KeyenceBarcodeDataR = vData;
|
||||
else KeyenceBarcodeDataF = vData;
|
||||
if (Source == "R") KeyenceBarcodeDataR = vData; //rear
|
||||
else KeyenceBarcodeDataF = vData; //front
|
||||
|
||||
//바코드 무시조건 확인
|
||||
//if (PUB.Result.BCDIgnorePattern != null)
|
||||
@@ -234,13 +229,11 @@ namespace Project
|
||||
{
|
||||
theta = angbcd.Angle;
|
||||
}
|
||||
|
||||
|
||||
|
||||
var theta_rad = -theta * Math.PI / 180.0;
|
||||
var PX = (int)(Math.Cos(theta_rad) * (vertextCP.X - ReelCP.X) - Math.Sin(theta_rad) * (vertextCP.Y - ReelCP.Y)) + ReelCP.X;
|
||||
var PY = (int)(Math.Sin(theta_rad) * (vertextCP.X - ReelCP.X) + Math.Cos(theta_rad) * (vertextCP.Y - ReelCP.Y)) + ReelCP.Y;
|
||||
|
||||
|
||||
float LabelAngRad = (float)(Math.Atan2(PY - ReelCP.Y, PX - ReelCP.X));// 2; //라벨의 위치값을 찾아서 입력해야한다.
|
||||
var labelpos = (float)(LabelAngRad * 180.0 / Math.PI);
|
||||
if (labelpos < 0) labelpos = 360 + labelpos;
|
||||
@@ -269,9 +262,8 @@ namespace Project
|
||||
var bcdin = itemC.VisionData.barcodelist.ContainsKey(valuekey);//.Where(t => t.Value.CheckIntersect(vertextCP, vData) == true).FirstOrDefault();
|
||||
if (bcdin == false)
|
||||
{
|
||||
//신규바코드데이터이므로 추가한다.
|
||||
PUB.logKeyence.Add($"{resp.Replace("\n", "").Replace("\r", "")}");
|
||||
|
||||
//없다면 추가한다.
|
||||
var newitem = new Class.KeyenceBarcodeData()
|
||||
{
|
||||
AmkorData = new StdLabelPrint.CAmkorSTDBarcode(vData),
|
||||
@@ -285,11 +277,11 @@ namespace Project
|
||||
};
|
||||
|
||||
var addok = itemC.VisionData.barcodelist.TryAdd(valuekey, newitem);
|
||||
if (addok) PUB.log.Add($"[NEW:{sym}] " + Source + " " + vData);
|
||||
else PUB.log.AddE($"X-[NEW:{sym}] " + Source + " " + vData);
|
||||
if (addok) PUB.log.Add($"[O]BCD RESERV[NEW:{sym}] " + Source + " " + vData);
|
||||
else PUB.log.AddE($"[X]BCD RESERV[NEW:{sym}] " + Source + " " + vData);
|
||||
|
||||
itemC.VisionData.UpdateBarcodePositionData();
|
||||
itemC.VisionData.BarcodeTouched = true;
|
||||
itemC.VisionData.BarcodeDirty = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -310,10 +302,10 @@ namespace Project
|
||||
};
|
||||
|
||||
//기존정보를 지우고
|
||||
PUB.log.Add($"[UPD:{sym}] " + Source + " " + vData);
|
||||
PUB.log.Add($"[UPD]BCD RESERV:{sym}] " + Source + " " + vData);
|
||||
itemC.VisionData.barcodelist[valuekey] = newitem;
|
||||
itemC.VisionData.UpdateBarcodePositionData();
|
||||
itemC.VisionData.BarcodeTouched = true;
|
||||
itemC.VisionData.BarcodeDirty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user