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

📄 glovesampledlg.cpp

📁 5dt公司数据手套数据读取程序
💻 CPP
字号:
// GloveSampleDlg.cpp : implementation file
//

#include "stdafx.h"
#include "GloveSample.h"
#include "GloveSampleDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGloveSampleDlg dialog

CGloveSampleDlg::CGloveSampleDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CGloveSampleDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CGloveSampleDlg)
	//}}AFX_DATA_INIT
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CGloveSampleDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CGloveSampleDlg)
	DDX_Control(pDX, IDC_COMLIST, m_ComList);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CGloveSampleDlg, CDialog)
	//{{AFX_MSG_MAP(CGloveSampleDlg)
	ON_LBN_SELCHANGE(IDC_COMLIST, OnSelchangeComlist)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGloveSampleDlg message handlers

BOOL CGloveSampleDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	// Add comport choices to the comport listbox.
	m_ComList.AddString("Com 1");
	m_ComList.AddString("Com 2");
	m_ComList.AddString("Com 3");
	m_ComList.AddString("Com 4");

	m_pGlove = NULL;

	UpdateInputs();

	// Create a timer which pulses 10 times a second.
	SetTimer(1,10,NULL);

	return TRUE;
}

// Read sensor information, and update the dialog box's static text.
bool CGloveSampleDlg::UpdateInputs()
{
	// Check whether a glove is currently connected.
	if (m_pGlove) {
		unsigned short acGloveData[18];
		char acString[256];
		int iGesture;

		// Read raw data
		fdGetSensorRawAll(m_pGlove,acGloveData);
		iGesture = fdGetGesture(m_pGlove);

		// Update text
		sprintf(acString, "%d", acGloveData[0]);
		SetDlgItemText(IDC_S0,acString);
		sprintf(acString, "%d", acGloveData[1]);
		SetDlgItemText(IDC_S1,acString);
		sprintf(acString, "%d", acGloveData[2]);
		SetDlgItemText(IDC_S2,acString);
		sprintf(acString, "%d", acGloveData[3]);
		SetDlgItemText(IDC_S3,acString);
		sprintf(acString, "%d", acGloveData[4]);
		SetDlgItemText(IDC_S4,acString);
		sprintf(acString, "%d", acGloveData[5]);
		SetDlgItemText(IDC_S5,acString);
		sprintf(acString, "%d", acGloveData[6]);
		SetDlgItemText(IDC_S6,acString);
		sprintf(acString, "%d", acGloveData[7]);
		SetDlgItemText(IDC_S7,acString);
		sprintf(acString, "%d", acGloveData[8]);
		SetDlgItemText(IDC_S8,acString);
		sprintf(acString, "%d", acGloveData[9]);
		SetDlgItemText(IDC_S9,acString);
		sprintf(acString, "%d", acGloveData[10]);
		SetDlgItemText(IDC_S10,acString);
		sprintf(acString, "%d", acGloveData[11]);
		SetDlgItemText(IDC_S11,acString);
		sprintf(acString, "%d", acGloveData[12]);
		SetDlgItemText(IDC_S12,acString);
		sprintf(acString, "%d", acGloveData[13]);
		SetDlgItemText(IDC_S13,acString);

		// Tilt sensors.
		sprintf(acString, "%d", acGloveData[FD_PITCH]);
		SetDlgItemText(IDC_SENSORPITCH,acString);

		sprintf(acString, "%d", acGloveData[FD_ROLL]);
		SetDlgItemText(IDC_SENSORROLL,acString);

		// Gesture
		if (iGesture != -1) {
			sprintf(acString,"%d",iGesture);
		} else {
			sprintf(acString,"%s","None");
		}
		SetDlgItemText(IDC_GESTURE,acString);
	} else {
		// With no glove, we just zero out all text.
		SetDlgItemText(IDC_S0,"");
		SetDlgItemText(IDC_S1,"");
		SetDlgItemText(IDC_S2,"");
		SetDlgItemText(IDC_S3,"");
		SetDlgItemText(IDC_S4,"");
		SetDlgItemText(IDC_S5,"");
		SetDlgItemText(IDC_S6,"");
		SetDlgItemText(IDC_S7,"");
		SetDlgItemText(IDC_S8,"");
		SetDlgItemText(IDC_S9,"");
		SetDlgItemText(IDC_S10,"");
		SetDlgItemText(IDC_S11,"");
		SetDlgItemText(IDC_S12,"");
		SetDlgItemText(IDC_S13,"");

		SetDlgItemText(IDC_SENSORPITCH,"");
		SetDlgItemText(IDC_SENSORROLL,"");

		SetDlgItemText(IDC_GESTURE,"");
	}

	return true;
}

// Here is where the glove connection is opened and initialized.
void CGloveSampleDlg::OnSelchangeComlist()
{
	char acComString[256];
	int iPort;

	// Index into list box indicates com number.
	iPort = m_ComList.GetCurSel() + 1;

	// Close current connection.
	if (m_pGlove) fdClose(m_pGlove);
	m_pGlove = NULL;

	// Create new connection.
	sprintf(acComString,"COM%d",iPort);
	m_pGlove = fdOpen(acComString);
	if (m_pGlove == NULL) {
		MessageBox("Failed to find a glove.","5dt Glove Sample");
		return;
	}
}

void CGloveSampleDlg::OnTimer(UINT nIDEvent) 
{
	// Update inputs on timer interrupt.
	UpdateInputs();

	CDialog::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

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