demo.cpp

来自「机器人UP-VoyagerII源码 基本功能」· C++ 代码 · 共 101 行

CPP
101
字号
// Demo.cpp: implementation of the CDemo class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Demo.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDemo::CDemo()
{
	m_nDistance = 30;
	m_BehShow = NULL;
}

CDemo::~CDemo()
{

}

void CDemo::AfterUpdateInfrared(UCHAR *Infrared,BOOL *EnableIR,UINT nState)
{
	//红外信号更新

}

void CDemo::AfterUpdateUSonic(DOUBLE *Ultrasonic,BOOL *EnableUS,UINT nState)
{
	//超声信号更新
	switch(nState)
	{
	case STOP:					//机器人处于停止状态
		if (Ultrasonic[23] > m_nDistance)
		{
			m_pCmd->SetBothMotorsSpeed(100,100);
		}
		else
		{
			m_pCmd->SetBothMotorsSpeed(100,-100);
		}
		break;
		
	case FORWARD:				//机器人处于往前直行状态
		if (Ultrasonic[23] < m_nDistance)
		{
			if (m_BehShow != NULL)
			{
				m_BehShow->AddString("前方障碍物");
				m_BehShow->AddString("右转");
			}
			m_pCmd->SetBothMotorsSpeed(100,-100);
		}
		break;

	case BACKWARD:				//机器人处于往后直行状态
		break;

	case RIGHT:					//机器人处于原地右转状态
	case RIGHTFRONT:			//机器人处于右转前行状态
		//break;

	case LEFT:					//机器人处于原地左转状态
	case LEFTFRONT:				//机器人处于左转前行状态
		if (Ultrasonic[23] > m_nDistance)
		{
			if (m_BehShow != NULL)
			{
				m_BehShow->AddString("前方无障碍物");
				m_BehShow->AddString("前进");
			}
			m_pCmd->SetBothMotorsSpeed(100,100);
		}
		break;

	default:					//机器人处于不明状态
		m_pCmd->Brake(1);
		nState = STOP;
		break;
	}
}

void CDemo::AfterUpdateVideoSample(BYTE *pBuffer, long lWidth, long lHeight,double dbTime,UINT nState)
{
	//摄像头图像祯更新
	
}

void CDemo::AfterSendCommand(BYTE *pBuffer, int iLength,UINT nState)
{
	//发送了新的指令
	
}

⌨️ 快捷键说明

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