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

📄 strategy.h

📁 为参加日本的ET机器人比赛写的LEGO机器人控制程序
💻 H
字号:
/******************************************************************************\
*
* File:          Strategy.h
* Creation date: June 23, 2008 10:30
* Latest update: July 09, 2008 16:39
* Author:        ClassBuilder
*                XXXX
* Purpose:       Declaration of class 'Strategy'
* CB version:    ClassBuilder Version 2.9 (PR523)
*
* Modifications: @INSERT_MODIFICATIONS(* )
* July 09, 2008 16:35 Chijinliang
*     Deleted method 'GetMaxLeftAngle'
*     Deleted method 'GetMaxRightAngle'
*     Deleted method 'OnTargetDetected'
*     Deleted method 'OnTargetNotDetected'
*     Deleted member 'm_targetColor'
*     Deleted member 'm_trackColor'
*     Deleted method 'Strategy'
*     Added member 'm_maxColor'
*     Added member 'm_minColor'
*     Updated interface of method 'Strategy'
*     Updated member 'm_steeringAngle'
*     Updated member 'm_maxRightAngle'
*     Updated member 'm_maxLeftAngle'
*     Updated member 'm_previousColor'
* July 08, 2008 10:25 Chijinliang
*     Added method 'Strategy'
* July 05, 2008 20:28 Chijinliang
*     Deleted method 'JudgeYY'
* July 05, 2008 14:29 Chijinliang
*     Deleted method 'Add'
*     Deleted method 'InsertAfter'
*     Deleted method 'InsertBefore'
*     Deleted member 'm_next'
*     Deleted member 'm_previous'
*     Deleted member 'm_priority'
*     Deleted member 'm_activeTrackType'
*     Deleted member 'm_targetSpeed'
*     Deleted member 'm_targetSteeringAngle'
*     Added method 'GetMarkerDetected'
*     Added method 'GetFinished'
*     Added method 'Judge'
*     Added member 'm_command'
*     Added member 'm_finished'
*     Added member 'm_markerDetected'
*     Updated interface of method 'SetTrackColor'
*     Updated interface of method 'SetTargetColor'
*     Updated interface of method 'SetPreviousColor'
*     Updated interface of method 'JudgeYY'
*     Updated interface of method 'Strategy'
*     Updated member 'm_currentColor'
*     Updated member 'm_trackColor'
*     Updated member 'm_targetColor'
*     Updated member 'm_previousColor'
*     Updated return type of method 'JudgeX'
* June 23, 2008 10:30 Chijinliang
*     Added method 'DestructorInclude'
*     Added method 'ConstructorInclude'
*     Added method 'SetTrackType'
*     Added method 'GetTrackType'
*     Added method 'SetTrackColor'
*     Added method 'GetTrackColor'
*     Added method 'SetTargetSteeringAngle'
*     Added method 'GetTargetSteeringAngle'
*     Added method 'SetTargetSpeed'
*     Added method 'GetTargetSpeed'
*     Added method 'SetTargetColor'
*     Added method 'GetTargetColor'
*     Added method 'GetSteeringAngle'
*     Added method 'SetPriority'
*     Added method 'GetPriority'
*     Added method 'SetPreviousColor'
*     Added method 'GetPreviousColor'
*     Added method 'GetPrevious'
*     Added method 'GetNext'
*     Added method 'GetMaxRightAngle'
*     Added method 'GetMaxLeftAngle'
*     Added method 'GetCurrentColor'
*     Added method 'OnTargetNotDetected'
*     Added method 'OnTargetDetected'
*     Added method 'Judge'
*     Added method 'InsertBefore'
*     Added method 'InsertAfter'
*     Added method 'Add'
*     Added method '~Strategy'
*     Added method 'Strategy'
*     Added member 'm_activeTrackType'
*     Added member 'm_steeringAngle'
*     Added member 'm_currentColor'
*     Added member 'm_trackColor'
*     Added member 'm_maxRightAngle'
*     Added member 'm_maxLeftAngle'
*     Added member 'm_targetColor'
*     Added member 'm_previousColor'
*     Added member 'm_trackType'
*     Added member 'm_targetSpeed'
*     Added member 'm_targetSteeringAngle'
*     Added member 'm_previous'
*     Added member 'm_next'
*     Added member 'm_priority'
*     Updated return type of method 'Judge'
*     Updated return type of method 'OnTargetNotDetected'
*     Updated return type of method 'OnTargetDetected'
*     Updated return type of method 'OnTargetNotDetected'
*
* Copyright 2008, XXXXX
* All rights are reserved. Reproduction in whole or part is prohibited
* without the written consent of the copyright owner.
*
\******************************************************************************/
#ifndef _STRATEGY_H
#define _STRATEGY_H

/* LSB=0.0005deg */
#define  TrackAbsSteeringAngle  10000   
/*
憱峴嶔棯儀乕僗僋儔僗
*/
class Strategy
{

private:
    void ConstructorInclude();
    void DestructorInclude();

protected:
    TrackType m_trackType;
    unsigned int m_previousColor;
    int m_maxLeftAngle;
    int m_maxRightAngle;
    int m_steeringAngle;
    bool m_markerDetected;
    bool m_finished;
    Command m_command;
    unsigned int m_minColor;
    unsigned int m_maxColor;
    int m_maxCount;
    int m_minCount;

public:
    Strategy(TrackType trackType, unsigned int minColor, unsigned int maxColor);
    virtual ~Strategy();
    virtual const Command* Judge(unsigned int color, int steeringAngle);
    bool GetFinished() const;
    bool GetMarkerDetected() const;
    TrackType GetTrackType() const;
    void SetTrackType(TrackType trackType);
};

#endif // ndef _STRATEGY_H


#ifdef CB_INLINES
#ifndef _STRATEGY_H_INLINES
#define _STRATEGY_H_INLINES

/*
Returns the value of member 'm_finished'.
*/
inline bool Strategy::GetFinished() const
{
    return m_finished;
}



/*
Returns the value of member 'm_markerDetected'.
*/
inline bool Strategy::GetMarkerDetected() const
{
    return m_markerDetected;
}



/*
Returns the value of member 'm_trackType'.
*/
inline TrackType Strategy::GetTrackType() const
{
    return m_trackType;
}



/*
Set the value of member 'm_trackType' to 'trackType'.
*/
inline void Strategy::SetTrackType(TrackType trackType)
{
    m_trackType = trackType;
}



#endif // ndef _STRATEGY_H_INLINES
#endif //  def CB_INLINES

⌨️ 快捷键说明

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