24.01.29 ~ 23.02.02

한량·2024년 2월 1일
0

Today I Worked

목록 보기
2/2
post-custom-banner

01.29

500S 검사항목

  1. overflow NG를 green -> red로 변경
    --> 구분을 위해 각 NG type마다 설정된 색이 다름. 변경해야 하는지
    ShowErrResult -> ShowResult (ho_OverFlow_ErrRegion, "green", "margin");

  2. 재티칭 필요

  1. pixel, um 단위 통합
    --> die extension도 um으로 변경해야 할듯
    soter line len min/max 도 um으로 변경해야 하나?

  2. 총 8개 검사 중 사용 안하는 4개는 hide 가능?
    --> 삭제하거나 hide하면 되긴 하는데 건드려도 되나?

  3. VisionTCP 사용, WaferID,x,y 제어에서 받아올 수 있는지 먼저 확인 필요

  1. vision 수정사항이 있나?

01.30 ~ 02.02

ImageMerge

  • line 18286, GetOffset에서 inetersectionCount = 0이라 halcon error --> 코드 짜기
    --> region 저장 후 얼마나 차이가 나길래 intersection 안 구해지는지 확인.
  1. 기존 XY image로 region 저장
  2. 바꾼 XY image로 region 저장 -> 얼마나 차이나는지 확인

E:_박범수\프로젝트\시스템1사업부\Samsung_BP5000-PIR_ImageMerge\143602_PCBID

  • ImageLoad하는 경로는 apply해도 저장이 안됨
  1. Teaching window에서 load image 하는건 임시방편
  2. Main window에서 load image 하는걸로는 안됨 -> 일부로 분리

ImageLoad를 recipe에 저장하기

  1. ImageLoad 호출시 SubDB에 저장
  2. Recipe select시 SubDB에서 ImageLoad

CPrtInspParam cTemp;

CDlgAlgo - m_vImage << 에 저장된 image

CBPRecipe - Save - SaveSubDatas << SubDB 저장

CBPRecipe 에서 CDlgAlgo 로 접근 어케함??
그 방법은 FID, pkg setting을 보면 알 수 있나

CBPRecipe& cBpParam = cRecipe.GetBPRecipe();
CPkgSettingInfo& cPkgParam = cBpParam.GetPkgSettingInfo();
CFidInfo& cFIDInfo = cBpParam.GetFidInfo();

vector& vFIDROI = cFIDInfo.GetRoi();
cFIDInfo.SetRoi(vFIDROI);

--> CBPRecipe에 멤버변수 CFidInfo 추가해서 CInspAlgo에서 변수 변경할 때 저장하도록 사용
그러면 ImageLoad에서도 동일하게 CImageInfo class 만들고, 멤버변수 추가해서 거기에 저장하도록??

Load시엔??

XY data image는 CPkgSettingInfo 이용해서 load 하는중 >> mergeImage랑 motionTuple도 추가할까??

추가항목
1. vector m_vImage
2. HTuple m_hvMotionCenCol, m_hvMotionCenRow

--> 현재 상황대로 계속 진행, 그러나 merge 사용 안할 경우엔 data 안 불러오도록 처리할 필요 있음!!! pInfo에서 받아올건지 어케할건지는 알아서 생각해보기

-> CPrtInspectionInfo* pInfo -> SetUseImageMerge

일단 save는 끝
recipe change시 load는 어떻게??

Save motion data

DoThreadingInsp
-> SaveOriginalImageAndResultData
-> WriteGlobalOriginalImage : CPrtInspectionInfo 에서 data unpack
-> WriteGlobalImage
-> WriteImage: unpack한 data 다시 CSaveImageInfo에 저장
-> PushImageInfo: m_dequeSaveImage에 push CSaveImageInfo

ThreadSave
-> ProcessSavingImage: PopImageInfo
-> SaveImage: CSaveImageInfo 대로 이미지 저장. vImage에 들어있는 이미지 차례대로 불러옴 == 넣어줄 때 제대로 넣으면 된다는 얘기

bUseImageMerge 안 쓰면 안 쓰는대로 overloading? 아니면 그냥 null값 채워서 쓸지?

SetMergeData

SetMergeData 4번 날려서 double vector 4개 쌓고 insp -> ResetMergeData 로 초기화

SetMergeData
nCameraIndex = _ttoi(vData.at(0));
int nImageIndex = _ttoi(vData.at(1));
double nMotionCenX = _wtof(vData.at(2));
double nMotionCenY = _wtof(vData.at(3));
double nOverlapX = _wtof(vData.at(4));
double nOverlapY = _wtof(vData.at(5));

ResetMergeData
int nCameraIndex = _ttoi(vData.at(0));
int nRowCount = _ttoi(vData.at(1));
int nColCount = _ttoi(vData.at(2));

profile
놀고 먹으면서 개발하기
post-custom-banner

0개의 댓글