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

📄 lanetracker.h

📁 为参加日本的ET机器人比赛写的LEGO机器人控制程序
💻 H
字号:
/******************************************************************************\
*
* File:          LaneTracker.h
* Creation date: June 23, 2008 10:30
* Latest update: July 09, 2008 16:39
* Author:        ClassBuilder
*                XXXX
* Purpose:       Declaration of class 'LaneTracker'
* CB version:    ClassBuilder Version 2.9 (PR523)
*
* Modifications: @INSERT_MODIFICATIONS(* )
* July 09, 2008 16:06 Chijinliang
*     Added method 'FreeStrategies'
* July 05, 2008 21:03 Chijinliang
*     Deleted method 'Track'
* July 05, 2008 14:29 Chijinliang
*     Added method 'UpdateCurrentLaneType'
*     Added method 'Track'
*     Added method 'GetActiveStrategy'
*     Added member 'm_strategies'
*     Added member 'm_currentLaneType'
*     Updated interface of method 'Initialize'
* June 24, 2008 19:51 Chijinliang
*     Added method 'Initialize'
* June 24, 2008 19:44 Chijinliang
*     Added method 'Stop'
*     Added method 'Start'
* June 23, 2008 17:39 Chijinliang
*     Added method 'GetSteeringController'
*     Updated member 'm_steeringController'
* June 23, 2008 13:46 Chijinliang
*     Added method 'LaneTracker'
* June 23, 2008 10:30 Chijinliang
*     Added method 'DestructorInclude'
*     Added method 'ConstructorInclude'
*     Added method 'Track'
*     Added method 'CaptureCurrent'
*     Added method 'CalibrationWhite'
*     Added method 'CalibrationGray'
*     Added method 'CalibrationBlack'
*     Added method '~LaneTracker'
*     Added member 'm_calibration'
*     Added member 'm_lightSensor'
*     Added member 'm_steeringController'
*     Added member 'm_driveMotor'
*     Updated return type of method 'Track'
*
* Copyright 2008, XXXXX
* All rights are reserved. Reproduction in whole or part is prohibited
* without the written consent of the copyright owner.
*
\******************************************************************************/
#ifndef _LANETRACKER_H
#define _LANETRACKER_H

class LaneTracker
{

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

private:
    DriveMotor m_driveMotor;
    //SteeringController m_steeringController;
    LightSensor m_lightSensor;
    Calibration m_calibration;
    LaneType m_currentLaneType;
    //Strategy* m_strategies[6];
    TouchSensor m_zeroIndicator;
    SteeringMotor m_steeringMotor;
    TrackType    m_trackType;
    unsigned int m_minColor;
    unsigned int m_prevColor;
    int m_grayCount;
    bool m_outCourse;
    bool m_bFirstLoop;
    bool m_bMarker;
    int m_markerCount;
    bool m_bChecked;
    int m_markerIndex;
    bool m_bMarker0;
private:
    unsigned int CaptureCurrent(bool needConfirm = true) const;
    void FreeStrategies();
    void UpdateCurrentLaneType();
    void DetectMarker(unsigned int sensorValue);

public:
    LaneTracker();
    virtual ~LaneTracker();
    void CalibrationBlack();
    void CalibrationGray();
    void CalibrationWhite();
    void Execute(const Command* pCommand);
    //Strategy* GetActiveStrategy() const;
    void Initialize(bool outCourse);
    void Start();
    void Stop();
    int Track();
    //SteeringController* GetSteeringController();
};

#endif // ndef _LANETRACKER_H


#ifdef CB_INLINES
#ifndef _LANETRACKER_H_INLINES
#define _LANETRACKER_H_INLINES

/*
Returns the value of member 'm_steeringController'.
*/
/*
inline SteeringController* LaneTracker::GetSteeringController()
{
    return &m_steeringController;
}
*/


#endif // ndef _LANETRACKER_H_INLINES
#endif //  def CB_INLINES

⌨️ 快捷键说明

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