⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cordinate.cpp

📁 关于固高卡的包装的api函数和轴状态以及坐标系状态下的状态实时读取及显示
💻 CPP
字号:
// Cordinate.cpp : implementation file
//

#include "stdafx.h"
#include "movecontrol.h"
#include "Cordinate.h"
#include "ViewState.h"
#include "gtcardapi.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCordinate
#define NullReturn	{if(!UpdateData(TRUE)||!pCNCObj||!(pCNCObj->IsCardInitialized()))	return;}

IMPLEMENT_DYNCREATE(CCordinate, CFormView)

CCordinate::CCordinate()
	: CFormView(CCordinate::IDD)
{
	//{{AFX_DATA_INIT(CCordinate)
	m_nIDStatic[0]=IDC_STATIC_COR1;
	m_nIDStatic[1]=IDC_STATIC_COR2;
	m_nIDStatic[2]=IDC_STATIC_COR3;
	m_nIDStatic[3]=IDC_STATIC_COR4;
	m_nIDStatic[4]=IDC_STATIC_COR5;
	m_nIDStatic[5]=IDC_STATIC_COR6;
	m_nIDStatic[6]=IDC_STATIC_COR7;
	m_nIDStatic[7]=IDC_STATIC_COR8;
	m_nIDStatic[8]=IDC_STATIC_COR9;
	m_nIDStatic[9]=IDC_STATIC_COR10;
	m_nIDStatic[10]=IDC_STATIC_COR11;



	//}}AFX_DATA_INIT
}

CCordinate::~CCordinate()
{
}

void CCordinate::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCordinate)

	
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCordinate, CFormView)
	//{{AFX_MSG_MAP(CCordinate)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCordinate diagnostics

#ifdef _DEBUG
void CCordinate::AssertValid() const
{
	CFormView::AssertValid();
}

void CCordinate::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

BOOL CCordinate::Create(LPCTSTR lpszClassName,
		LPCTSTR lpszWindowName, DWORD dwStyle,
		const RECT& rect,
		CWnd* pParentWnd, UINT nID,
		CCreateContext* pContext)
{
	return CFormView::Create(lpszClassName,lpszWindowName,dwStyle,rect,pParentWnd,nID,pContext);
}

CViewState* CCordinate::GetViewState()
{
	return (CViewState*)(GetParent()->GetParent());

}

/////////////////////////////////////////////////////////////////////////////
// CCordinate message handlers

void CCordinate::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	
}

void CCordinate::UpDateCordinateState()
{
	NullReturn;
	int i;
    long *pPos = new long;
	ASSERT( pPos );
	unsigned short nCordinateState,nMode;
	int nRet,nValue[3];
	CViewState * pView = GetViewState();
	if( !pView )
		return;
	HBITMAP hBmp = pView->m_iconRed;
	if( !hBmp )
		return;

    CStatic	*m_pCorStateIcon[11];
	for( i=0;i<11;i++)
		m_pCorStateIcon[i] = NULL;

    CStatic *pStatic;
	for( i=0;i<11; i++)
		{
		pStatic = (CStatic *) GetDlgItem(m_nIDStatic[i]);
			ASSERT(pStatic);
			if( pStatic )
				m_pCorStateIcon[i] = pStatic;
		}

	

		
	for(i=0;i<3;i++)
	{
		nRet=pCNCObj->GetAxisMode(i+1,&nMode);
		nValue[i]=((nMode)&0x2000);
	}
	
		
	if (!nValue[0]&&!nValue[1]&&!nValue[2])
	{ 
		hBmp = pView->m_iconRed;
		ASSERT(m_pCorStateIcon[8]);
		m_pCorStateIcon[8]->SetBitmap(hBmp);
	}
	else
	{
		hBmp = pView->m_iconGreen;
		ASSERT(m_pCorStateIcon[8]);
		m_pCorStateIcon[8]->SetBitmap(hBmp);
	}

    nRet = pCNCObj->get_cur_cordinate_state(&nCordinateState);
	if(!nRet&&((nCordinateState)&0x200))
	{
		hBmp = pView->m_iconRed;
		ASSERT(m_pCorStateIcon[9]);
		m_pCorStateIcon[9]->SetBitmap(hBmp);
	}
	else
	{
		hBmp = pView->m_iconGreen;
		ASSERT(m_pCorStateIcon[9]);
		m_pCorStateIcon[9]->SetBitmap(hBmp);
	}




	if(!nRet&&((nCordinateState)&0x400))
	{
		hBmp = pView->m_iconRed;
		ASSERT(m_pCorStateIcon[10]);
		m_pCorStateIcon[10]->SetBitmap(hBmp);
	}
	else
	{
		hBmp = pView->m_iconGreen;
		ASSERT(m_pCorStateIcon[10]);
		m_pCorStateIcon[10]->SetBitmap(hBmp);
	}

	

       
	for(i=0;i<8&&!nRet;i++)
	{
		if((nCordinateState)&0x01)
			{	
				hBmp = pView->m_iconRed;
				ASSERT(m_pCorStateIcon[i]);
				m_pCorStateIcon[i]->SetBitmap(hBmp);
			}
		else
			{
				hBmp = pView->m_iconGreen;
				ASSERT(m_pCorStateIcon[i]);
				m_pCorStateIcon[i]->SetBitmap(hBmp);
			}
		nCordinateState >>= 1;
	}

	pCNCObj->get_axis_pos(1, pPos);
    SetDlgItemInt(IDC_EDIT1_POSX,*pPos,TRUE);
	pCNCObj->get_axis_pos(2, pPos);
    SetDlgItemInt(IDC_EDIT2_POSY,*pPos,TRUE);
	pCNCObj->get_axis_pos(3, pPos);
    SetDlgItemInt(IDC_EDIT3_POSZ,*pPos,TRUE);

	SAFEDELETEPOINTOR(pPos);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -