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

📄 axisstate.cpp

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

#include "stdafx.h"
#include "MoveControl.h"
#include "AxisState.h"
#include "ViewState.h"
#include "gtcardapi.h"




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

/////////////////////////////////////////////////////////////////////////////
// CAxisState
#define NullReturn	{if(!UpdateData(TRUE)||!pCNCObj||!(pCNCObj->IsCardInitialized()))	return;}
IMPLEMENT_DYNCREATE(CAxisState, CFormView)

CAxisState::CAxisState()
	: CFormView(CAxisState::IDD)
{
	m_nIDStatic[0][0] = IDC_STATIC_AXIS00;
	m_nIDStatic[0][1] = IDC_STATIC_AXIS01;
	m_nIDStatic[0][2] = IDC_STATIC_AXIS02;

	m_nIDStatic[1][0] = IDC_STATIC_AXIS10;
	m_nIDStatic[1][1] = IDC_STATIC_AXIS11;
	m_nIDStatic[1][2] = IDC_STATIC_AXIS12;

	m_nIDStatic[2][0] = IDC_STATIC_AXIS20;
	m_nIDStatic[2][1] = IDC_STATIC_AXIS21;
	m_nIDStatic[2][2] = IDC_STATIC_AXIS22;

	m_nIDStatic[3][0] = IDC_STATIC_AXIS30;
	m_nIDStatic[3][1] = IDC_STATIC_AXIS31;
	m_nIDStatic[3][2] = IDC_STATIC_AXIS32;

	m_nIDStatic[4][0] = IDC_STATIC_AXIS40;
	m_nIDStatic[4][1] = IDC_STATIC_AXIS41;
	m_nIDStatic[4][2] = IDC_STATIC_AXIS42;

	m_nIDStatic[5][0] = IDC_STATIC_AXIS50;
	m_nIDStatic[5][1] = IDC_STATIC_AXIS51;
	m_nIDStatic[5][2] = IDC_STATIC_AXIS52;

	m_nIDStatic[6][0] = IDC_STATIC_AXIS60;
	m_nIDStatic[6][1] = IDC_STATIC_AXIS61;
	m_nIDStatic[6][2] = IDC_STATIC_AXIS62;

	m_nIDStatic[7][0] = IDC_STATIC_AXIS00;
	m_nIDStatic[7][1] = IDC_STATIC_AXIS01;
	m_nIDStatic[7][2] = IDC_STATIC_AXIS02;

	m_nIDStatic[8][0] = IDC_STATIC_AXIS80;
	m_nIDStatic[8][1] = IDC_STATIC_AXIS81;
	m_nIDStatic[8][2] = IDC_STATIC_AXIS82;

	m_nIDStatic[9][0] = IDC_STATIC_AXIS90;
	m_nIDStatic[9][1] = IDC_STATIC_AXIS91;
	m_nIDStatic[9][2] = IDC_STATIC_AXIS92;

	m_nIDStatic[10][0] = IDC_STATIC_AXIS100;
	m_nIDStatic[10][1] = IDC_STATIC_AXIS101;
	m_nIDStatic[10][2] = IDC_STATIC_AXIS102;

	m_nIDStatic[11][0] = IDC_STATIC_AXIS110;
	m_nIDStatic[11][1] = IDC_STATIC_AXIS111;
	m_nIDStatic[11][2] = IDC_STATIC_AXIS112;

	m_nIDStatic[12][0] = IDC_STATIC_AXIS120;
	m_nIDStatic[12][1] = IDC_STATIC_AXIS121;
	m_nIDStatic[12][2] = IDC_STATIC_AXIS122;

	m_nIDStatic[13][0] = IDC_STATIC_AXIS130;
	m_nIDStatic[13][1] = IDC_STATIC_AXIS131;
	m_nIDStatic[13][2] = IDC_STATIC_AXIS132;

	m_nIDStatic[14][0] = IDC_STATIC_AXIS140;
	m_nIDStatic[14][1] = IDC_STATIC_AXIS141;
	m_nIDStatic[14][2] = IDC_STATIC_AXIS142;

	m_nIDStatic[15][0] = IDC_STATIC_AXIS150;
	m_nIDStatic[15][1] = IDC_STATIC_AXIS151;
	m_nIDStatic[15][2] = IDC_STATIC_AXIS152;

	m_nIDStatic[16][0] = IDC_STATIC_AXIS160;
	m_nIDStatic[16][1] = IDC_STATIC_AXIS161;
	m_nIDStatic[16][2] = IDC_STATIC_AXIS162;

	m_nIDStatic[17][0] = IDC_STATIC_AXIS170;
	m_nIDStatic[17][1] = IDC_STATIC_AXIS171;
	m_nIDStatic[17][2] = IDC_STATIC_AXIS172;

	m_nIDStatic[18][0] = IDC_STATIC_AXIS180;
	m_nIDStatic[18][1] = IDC_STATIC_AXIS181;
	m_nIDStatic[18][2] = IDC_STATIC_AXIS182;
	

	//{{AFX_DATA_INIT(CAxisState)
	//}}AFX_DATA_INIT
}

CAxisState::~CAxisState()
{
}

void CAxisState::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAxisState)
	DDX_Control(pDX, IDC_STATIC_AXIS00, m_axisStateIcon00);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAxisState, CFormView)
	//{{AFX_MSG_MAP(CAxisState)
	ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
	ON_BN_CLICKED(IDC_STATIC_MOVE1, OnStaticMove1)
	ON_EN_CHANGE(IDC_EDIT_XPOS, OnChangeEditXpos)
	ON_EN_CHANGE(IDC_EDIT_YPOS, OnChangeEditYpos)
	ON_EN_CHANGE(IDC_EDIT_ZPOS, OnChangeEditZpos)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAxisState diagnostics

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

void CAxisState::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

BOOL CAxisState::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);
}


#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CAxisState message handlers

void CAxisState::OnChangeEdit1() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}

void CAxisState::OnStaticMove1() 
{
	// TODO: Add your control notification handler code here
	
}

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


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

}

void CAxisState::UpdateIcon(int nAxis)
{   
	NullReturn;

	int i,j;
    long *pPos = new long;
	ASSERT( pPos );
	unsigned short nAxisState,nMode;
	CViewState* pView = GetViewState();
	if( !pView )
		return;
	HBITMAP hBmp = pView->m_iconRed;
	if( !hBmp )
		return;

	CStatic	*pAxisStateIcon[19][3];
	for( i=0;i<19;i++)
		for(j=0;j<3;j++)
			pAxisStateIcon[i][j] = NULL;

    CStatic *pStatic;
	for( i=0;i<19; i++)
		for(j=0;j<3;j++)
		{
			pStatic = (CStatic *) GetDlgItem(m_nIDStatic[i][j]);
			ASSERT(pStatic);
			if( pStatic )
				pAxisStateIcon[i][j] = pStatic;
		}


	int nRet = ((Gt_Card_Api *)pCNCObj)->get_cur_axis_state(nAxis, &nAxisState);

	if(!nRet&&(nAxisState&0x4000))
	{	
		hBmp = pView->m_iconRed;
		ASSERT(pAxisStateIcon[17][nAxis]);
		pAxisStateIcon[17][nAxis]->SetBitmap(hBmp);
	}
	else
	{
		hBmp = pView->m_iconGreen;
		ASSERT(pAxisStateIcon[17][nAxis]);
		pAxisStateIcon[17][nAxis]->SetBitmap(hBmp);
    }

	if(!nRet&&(nAxisState&0x8000))
	{	
		hBmp = pView->m_iconRed;
		ASSERT(pAxisStateIcon[18][nAxis]);
		pAxisStateIcon[18][nAxis]->SetBitmap(hBmp);
	}
	else
	{
		hBmp = pView->m_iconGreen;
		ASSERT(pAxisStateIcon[18][nAxis]);
		pAxisStateIcon[18][nAxis]->SetBitmap(hBmp);
	}
	
	for(i=0;i<12&&!nRet;i++)
	{
		if((nAxisState)&0x01)
		{	
			hBmp = pView->m_iconRed;
			ASSERT(pAxisStateIcon[i][nAxis]);
			pAxisStateIcon[i][nAxis]->SetBitmap(hBmp);
		}
		else
		{
            hBmp = pView->m_iconGreen;
			ASSERT(pAxisStateIcon[i][nAxis]);
			pAxisStateIcon[i][nAxis]->SetBitmap(hBmp);
		}
        nAxisState >>= 1;
	}


    nRet = pCNCObj->GetAxisMode(nAxis,&nMode);

	for(i=12;i<=16&&!nRet;i++)
	{
		if((nMode)&0x800)
		{	
            hBmp = pView->m_iconRed;
			ASSERT(pAxisStateIcon[i][nAxis]);
			pAxisStateIcon[i][nAxis]->SetBitmap(hBmp);
		}
		else
		{
            hBmp = pView->m_iconGreen;
			ASSERT(pAxisStateIcon[i][nAxis]);
			pAxisStateIcon[i][nAxis]->SetBitmap(hBmp);
		}
        nMode >>= 1;
	}
	
	((Gt_Card_Api *)pCNCObj)->get_axis_pos(1, pPos);
    SetDlgItemInt(IDC_EDIT_XPOS,*pPos,TRUE);
	((Gt_Card_Api *)pCNCObj)->get_axis_pos(2, pPos);
    SetDlgItemInt(IDC_EDIT_YPOS,*pPos,TRUE);
	((Gt_Card_Api *)pCNCObj)->get_axis_pos(3, pPos);
    SetDlgItemInt(IDC_EDIT_ZPOS,*pPos,TRUE);

	SAFEDELETEPOINTOR(pPos);
}

void CAxisState::OnChangeEditXpos() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}

void CAxisState::OnChangeEditYpos() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}

void CAxisState::OnChangeEditZpos() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
}

⌨️ 快捷键说明

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