mrDarker
2025-08-06 2379434200219132ee252f12d47a1e5efd160f42
1. 实时扫描界面新添两个相机(侧面检)
已修改7个文件
221 ■■■■ 文件已修改
EdgeInspector_App/Define/Global_Define.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
EdgeInspector_App/EdgeInspector_App.rc 补丁 | 查看 | 原始文档 | blame | 历史
EdgeInspector_App/MainFrm.cpp 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EdgeInspector_App/View/FrameImg.cpp 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EdgeInspector_App/View/ViewMain_LiveCam.cpp 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EdgeInspector_App/View/ViewMain_LiveCam.h 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EdgeInspector_App/resource.h 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EdgeInspector_App/Define/Global_Define.h
@@ -14,7 +14,7 @@
#define UM_UPDATE_RECIPE                            WM_USER + 5
#define    UM_SEND_MESSAGE_MAIN_DLG                    WM_USER + 6
#define    MAX_CAMERA_COUNT            4
#define    MAX_CAMERA_COUNT            6
#define MAX_SCAN_COUNT                2
#define MAX_DIMENSION_COUNT            12
#define MAX_STAGE_HAND_COUNT        2
EdgeInspector_App/EdgeInspector_App.rc
Binary files differ
EdgeInspector_App/MainFrm.cpp
@@ -550,20 +550,18 @@
BOOL CMainFrame::IV2M_SetLiveGrabCommand(DimensionDir eDim,BOOL bStop)
{
    if (IsScanNow())
    {
    if (IsScanNow()) {
        g_pLog->DisplayMessage(_T("Doing Inspection"));
        return TRUE;
    }
    // 4/13 MiniLED
    if(eDim < DIMENSION_A || eDim > DIMENSION_D)
    if (eDim < DIMENSION_A || eDim > DIMENSION_D_RIP) {
        return FALSE;
    }
    g_pLog->DisplayMessage(_T("Live Cam %d Start : Main"),(int)eDim);    
    BOOL bRet = SetLiveGrabCommand(eDim,bStop);
    g_pLog->DisplayMessage(_T("Live Cam %d End : Main"),(int)eDim);
    return bRet;
@@ -571,16 +569,18 @@
LPBYTE CMainFrame::IV2M_GetGrabBufferByDimension(DimensionDir eDim,int iVline)
{
    //     if(IsScanNow())
    //     {
    //         g_pLog->DisplayMessage(_T("Doing Inspection"));
    //         return NULL;
    //     }
    //if (IsScanNow()) {
    //    g_pLog->DisplayMessage(_T("Doing Inspection"));
    //    return NULL;
    //}
    if(eDim < DIMENSION_A || eDim > DIMENSION_D_DN)
    if (eDim < DIMENSION_A || eDim > DIMENSION_D_RIP) {
        return NULL;
    if(iVline < 0)
    }
    if (iVline < 0) {
        return NULL;
    }
    return GetGrabBuffer(eDim,iVline);
}
@@ -612,7 +612,6 @@
#ifndef _DEBUG
        SetSlashText(GLOBAL_DEFINE::emShow, _T(""), RGB(0,0,0));
#endif
        SetSlashText(GLOBAL_DEFINE::emText, _T("Image Loading Start"), RGB(0,0,0));
        if(iSide > -1)
EdgeInspector_App/View/FrameImg.cpp
@@ -9,7 +9,11 @@
#include "EdgeInspector_App.h"
#include "Global_Define.h"
const TCHAR* PANEL_SIDE_NAME[] = {_T("A_TOP"), _T("B_TOP"), _T("C_TOP"), _T("D_TOP"),_T("A_BOT"), _T("B_BOT"), _T("C_BOT"), _T("D_BOT")};
const TCHAR* PANEL_SIDE_NAME[] = {
    _T("A_TOP"), _T("B_TOP"), _T("C_TOP"), _T("D_TOP"),
    _T("A_BOT"), _T("B_BOT"), _T("C_BOT"), _T("D_BOT"),
    _T("A RIP"), _T("B RIP"), _T("C RIP"), _T("D RIP")
};
// CFrameImg
IMPLEMENT_DYNAMIC(CFrameImg, CStatic)
EdgeInspector_App/View/ViewMain_LiveCam.cpp
@@ -17,8 +17,7 @@
    m_IV2M = NULL;
    m_pGlassData = NULL;
    m_pHardware = NULL;
    for(int i=0;i<MAX_CAMERA_COUNT;i++)
    {
    for (int i = 0; i < MAX_CAMERA_COUNT; i++) {
        m_dZoom[i] = 1;
    }
}
@@ -29,16 +28,18 @@
void CViewMain_LiveCam::DoDataExchange(CDataExchange* pDX)
{
    DDX_Control(pDX, IDC_SCROLLBAR1            , m_ctrlScrollH[0]);
    DDX_Control(pDX, IDC_SCROLLBAR2            , m_ctrlScrollH[1]);
    DDX_Control(pDX, IDC_SCROLLBAR3            , m_ctrlScrollH[2]);
    DDX_Control(pDX, IDC_SCROLLBAR4            , m_ctrlScrollH[3]);
    DDX_Control(pDX, IDC_SCROLLBAR1, m_ctrlScrollH[0]);
    DDX_Control(pDX, IDC_SCROLLBAR2, m_ctrlScrollH[1]);
    DDX_Control(pDX, IDC_SCROLLBAR3, m_ctrlScrollH[2]);
    DDX_Control(pDX, IDC_SCROLLBAR4, m_ctrlScrollH[3]);
    DDX_Control(pDX, IDC_SCROLLBAR5, m_ctrlScrollH[4]);
    DDX_Control(pDX, IDC_SCROLLBAR6, m_ctrlScrollH[5]);
    CDialogEx::DoDataExchange(pDX);
}
        
BEGIN_MESSAGE_MAP(CViewMain_LiveCam, CDialogEx)
    ON_MESSAGE(WM_LIVE_IMG_UPDATE    , OnLiveImgUpDate)
    ON_MESSAGE(WM_LIVE_IMG_UPDATE, OnLiveImgUpDate)
    ON_WM_HSCROLL()
    ON_WM_TIMER()
    ON_WM_MOUSEWHEEL()    
@@ -55,10 +56,8 @@
// CViewLiveCam 皋矫瘤 贸府扁涝聪促.
int  CViewMain_LiveCam::GetIndex(int nSide)
{
    int  nIndex = 0;
    if(m_pHardware != NULL)
    {
    int nIndex = 0;
    if(m_pHardware != NULL) {
        nIndex = m_pHardware->GetCameraIndexToDimension((DimensionDir)nSide);
    }
@@ -69,17 +68,23 @@
{
    m_pHardware = pHW;
    int nSide,i;
    LPBYTE        plpBuf = NULL;
    for(i = 0 ; i < 4 ; i++)
    {
    int nSide, i;
    LPBYTE plpBuf = NULL;
    for(i = 0 ; i < 6 ; i++) {
        nSide = LiveGetSideIdx(i);
        m_frameImg[i].SetSide(nSide);
        plpBuf = NULL;
        if(m_IV2M != NULL)
            plpBuf = m_IV2M->IV2M_GetGrabBufferByDimension((DimensionDir)nSide,0);
        if (m_IV2M != NULL) {
            plpBuf = m_IV2M->IV2M_GetGrabBufferByDimension((DimensionDir)nSide, 0);
        }
        CCameraSettings* pCamera = m_pHardware->GetCameraSettings(i, 0);
        if (pCamera != nullptr) {
            m_frameImg[i].SetImgSize(pCamera->m_FrameSize.cx, pCamera->m_FrameSize.cy);
        }
        m_frameImg[i].SetImage(plpBuf);
        m_frameImg[i].SetGlassData(m_pGlassData);    
    }
@@ -89,21 +94,19 @@
{    
    UpdateData(FALSE);
    CRect rc[4];
    int i =0;
    CRect rc[6];
    GetDlgItem(IDC_STATIC_CAM1)->GetWindowRect(rc[0]);
    GetDlgItem(IDC_STATIC_CAM2)->GetWindowRect(rc[1]);
    GetDlgItem(IDC_STATIC_CAM3)->GetWindowRect(rc[2]);
    GetDlgItem(IDC_STATIC_CAM4)->GetWindowRect(rc[3]);
    GetDlgItem(IDC_STATIC_CAM5)->GetWindowRect(rc[4]);
    GetDlgItem(IDC_STATIC_CAM6)->GetWindowRect(rc[5]);
        
    for(i = 0 ; i < 4 ; i++)
    {
        ScreenToClient(rc[i]);
    for (int i = 0; i < 6; i++) {
        ScreenToClient(rc[i]);
        m_frameImg[i].InitBitMap();
        m_frameImg[i].Create(NULL,NULL,WS_VISIBLE | WS_CHILD,rc[i],this,0);
        m_frameImg[i].Create(NULL, NULL, WS_VISIBLE | WS_CHILD, rc[i], this, 0);
        m_dZoom[i] = 1;
        m_frameImg[i].SetZommMode(m_dZoom[i]);
@@ -116,28 +119,25 @@
int CViewMain_LiveCam::LiveGetSideIdx(int nViewIndex)
{
    if(m_pHardware == NULL)
    if (m_pHardware == nullptr) {
        return 0;
    CCameraSettings *pCamera = NULL;
    pCamera = m_pHardware->GetCameraSettings(nViewIndex,0);
    if(pCamera == NULL)
    }
    CCameraSettings* pCamera = m_pHardware->GetCameraSettings(nViewIndex, 0);
    if (pCamera == nullptr) {
        return 0;
    }
    return (int)pCamera->m_eDimension;
}
BOOL CViewMain_LiveCam::PreTranslateMessage(MSG* pMsg)
{
    if( pMsg->message == WM_KEYDOWN )
    {
        if(pMsg->wParam == VK_RETURN
            || pMsg->wParam == VK_ESCAPE )
        {
    if( pMsg->message == WM_KEYDOWN ) {
        if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) {
            ::TranslateMessage(pMsg);
            ::DispatchMessage(pMsg);
            return TRUE;                    // DO NOT process further
            return TRUE;
        }
    }
@@ -149,17 +149,17 @@
    OnBnClickedBtnStop();
    
    int nDisplayFrame = 0;
    if(m_nRdoSignal == 0)
    {
    if(m_nRdoSignal == 0) {
        nDisplayFrame = 20;
    }    
    if(m_IV2M != NULL)
    {
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0),FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1),FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2),FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3),FALSE);
    if(m_IV2M != NULL) {
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0), FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1), FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2), FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3), FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(4), FALSE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(5), FALSE);
    }
    SetTimer(1,100,NULL);    
@@ -167,8 +167,7 @@
void CViewMain_LiveCam::OnTimer(UINT_PTR nIDEvent)
{
    for(int i = 0 ; i < 4 ; i++)
    {
    for(int i = 0 ; i < 6 ; i++) {
        m_frameImg[i].ViewUpdate();
    }
@@ -177,12 +176,13 @@
void CViewMain_LiveCam::OnBnClickedBtnStop()
{
    if(m_IV2M != NULL)
    {
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0),TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1),TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2),TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3),TRUE);
    if(m_IV2M != NULL) {
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0), TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1), TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2), TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3), TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(4), TRUE);
        m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(5), TRUE);
    }
    
    KillTimer(1);
@@ -193,30 +193,29 @@
    // TODO: 咯扁俊 皋矫瘤 贸府扁 内靛甫 眠啊 棺/肚绰 扁夯蔼阑 龋免钦聪促.
    int nIndex;
    if(pScrollBar->m_hWnd        == m_ctrlScrollH[0].m_hWnd)
    {
    if(pScrollBar->m_hWnd        == m_ctrlScrollH[0].m_hWnd) {
        nIndex = 0;
    }
    else if(pScrollBar->m_hWnd    == m_ctrlScrollH[1].m_hWnd)
    {
    else if(pScrollBar->m_hWnd    == m_ctrlScrollH[1].m_hWnd) {
        nIndex = 1;
    }
    else if(pScrollBar->m_hWnd    == m_ctrlScrollH[2].m_hWnd)
    {
    else if(pScrollBar->m_hWnd    == m_ctrlScrollH[2].m_hWnd) {
        nIndex = 2;
    }
    else if(pScrollBar->m_hWnd    == m_ctrlScrollH[3].m_hWnd)
    {
    else if(pScrollBar->m_hWnd    == m_ctrlScrollH[3].m_hWnd) {
        nIndex = 3;
    }
    if(nIndex != -1)
    {
    else if (pScrollBar->m_hWnd == m_ctrlScrollH[4].m_hWnd) {
        nIndex = 4;
    }
    else if (pScrollBar->m_hWnd == m_ctrlScrollH[5].m_hWnd) {
        nIndex = 5;
    }
    if(nIndex != -1) {
        SCROLLINFO si;
        si.fMask=SIF_ALL;
        m_ctrlScrollH[nIndex].GetScrollInfo(&si,SIF_ALL);
        si.fMask = SIF_ALL;
        m_ctrlScrollH[nIndex].GetScrollInfo(&si, SIF_ALL);
        switch(nSBCode)
        {
@@ -244,41 +243,34 @@
        m_frameImg[nIndex].m_ptOrg.x = si.nPos;
        
        PostMessage(WM_LIVE_IMG_UPDATE,NULL,nIndex);
        PostMessage(WM_LIVE_IMG_UPDATE, NULL, nIndex);
    }
    CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CViewMain_LiveCam::InitScrollInfo(int nCam /*= -1*/)
{
    int i =0;
    int i = 0;
    SCROLLINFO scrollInfoH;
    scrollInfoH.cbSize        = sizeof(SCROLLINFO);
    scrollInfoH.fMask        = SIF_ALL;
    scrollInfoH.nMin        = 1;
    scrollInfoH.nPos        = 1;
    scrollInfoH.nTrackPos    = 64;
    scrollInfoH.nMax    = IMAGE_WIDTH;    
    if(nCam == -1)
    {
        for(i = 0 ; i < 4 ; i++)
        {
    if(nCam == -1) {
        for(i = 0 ; i < 6 ; i++) {
            double dZoom = m_frameImg[i].GetZoomData();
            scrollInfoH.nPage    = (int)(m_frameImg[i].m_WndRect.Width() / dZoom);
            scrollInfoH.nPage = (int)(m_frameImg[i].m_WndRect.Width() / dZoom);
            m_ctrlScrollH[i].SetScrollPos(0);
            m_ctrlScrollH[i].SetScrollInfo(&scrollInfoH);
        }
    }
    else
    {
    else {
        double dZoom = m_frameImg[nCam].GetZoomData();
        scrollInfoH.nPage    = (int)(m_frameImg[nCam].m_WndRect.Width() / dZoom);
        scrollInfoH.nPage = (int)(m_frameImg[nCam].m_WndRect.Width() / dZoom);
        m_ctrlScrollH[nCam].SetScrollPos(0);
        m_ctrlScrollH[nCam].SetScrollInfo(&scrollInfoH);
@@ -288,7 +280,6 @@
void CViewMain_LiveCam::OnBnClickedRdoSignal1()
{
    m_nRdoSignal = 0;
    OnBnClickedBtnStop();
}
@@ -299,8 +290,6 @@
    OnBnClickedBtnStop();
}
void CViewMain_LiveCam::OnBnClickedBtnCamSnap()
{
    OnBnClickedBtnStop();
@@ -309,9 +298,7 @@
LRESULT CViewMain_LiveCam::OnLiveImgUpDate(WPARAM wParam, LPARAM lParam)
{
    int nIndex  = int(lParam);    
    m_frameImg[nIndex].ViewUpdate();
    return 0;
}
@@ -361,17 +348,14 @@
void CViewMain_LiveCam::UpdateZoom(int nIndex)
{
    if(nIndex == -1)
    {
        for(int i = 0; i < MAX_CAMERA_COUNT;i++)
        {
    if(nIndex == -1) {
        for(int i = 0; i < MAX_CAMERA_COUNT;i++) {
            m_frameImg[i].SetZommMode(m_dZoom[i]);        
            InitScrollInfo(-1);
            m_frameImg[i].Invalidate(FALSE);
        }    
    }
    else
    {
    else {
        m_frameImg[nIndex].SetZommMode(m_dZoom[nIndex]);        
        InitScrollInfo(nIndex);
        m_frameImg[nIndex].Invalidate(FALSE);
EdgeInspector_App/View/ViewMain_LiveCam.h
@@ -45,11 +45,11 @@
    void            UpdateZoom(int nIndex);
protected:
    CFrameImg        m_frameImg[4];
    CScrollBar        m_ctrlScrollH[4];
    CFrameImg                m_frameImg[6];
    CScrollBar                m_ctrlScrollH[6];
    CHardwareSettings        *m_pHardware;
    CGlass_Data                *m_pGlassData;
    IViewInterface2Parent    *m_IV2M;
    double            m_dZoom[MAX_CAMERA_COUNT];
    int                m_nRdoSignal;
    double                    m_dZoom[MAX_CAMERA_COUNT];
    int                        m_nRdoSignal;
};
EdgeInspector_App/resource.h
@@ -446,6 +446,12 @@
#define IDC_RDO_SIGNAL1                 1181
#define IDC_CHECK_USE_SAVE_ALL_DMP      1181
#define IDC_RDO_SIGNAL2                 1182
#define IDC_STATIC_CAM5                 1183
#define IDC_STATIC_APP_SIDE5            1184
#define IDC_SCROLLBAR5                  1185
#define IDC_STATIC_CAM6                 1186
#define IDC_STATIC_APP_SIDE6            1187
#define IDC_SCROLLBAR6                  1188
#define IDC_NEWPPID_NAME_TITLE          1201
#define IDC_EDIT_PPIDNEW_NAME           1202
#define IDC_BUTTON_LINK                 1203
@@ -587,7 +593,7 @@
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        328
#define _APS_NEXT_RESOURCE_VALUE        329
#define _APS_NEXT_COMMAND_VALUE         32771
#define _APS_NEXT_CONTROL_VALUE         1071
#define _APS_NEXT_SYMED_VALUE           310