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

📄 steeringcontroller.h

📁 为参加日本的ET机器人比赛写的LEGO机器人控制程序
💻 H
字号:
/******************************************************************************\
*
* File:          SteeringController.h
* Creation date: June 23, 2008 10:30
* Latest update: July 09, 2008 16:39
* Author:        ClassBuilder
*                XXXX
* Purpose:       Declaration of class 'SteeringController'
* CB version:    ClassBuilder Version 2.9 (PR523)
*
* Modifications: @INSERT_MODIFICATIONS(* )
* July 09, 2008 15:48 Chijinliang
*     Added member 'm_newCommand'
* July 09, 2008 15:46 Chijinliang
*     Added method 'UpdateTargetTime'
*     Updated member 'm_mode'
* July 09, 2008 15:22 Chijinliang
*     Added method 'UpdateCommand'
*     Added member 'm_command'
* July 09, 2008 12:22 Chijinliang
*     Deleted member 'm_steeringSpeed'
* July 09, 2008 12:13 Chijinliang
*     Deleted method 'CalculateDeltaAngle'
*     Deleted member 'm_deltaAngleSum'
*     Added member 'm_deltaAngle0'
*     Added member 'm_pastTime'
*     Updated member 'm_targetTime'
* July 05, 2008 21:33 Chijinliang
*     Deleted method 'SetParameters'
*     Added method 'Execute'
*     Updated member 'm_motorState'
* July 05, 2008 20:28 Chijinliang
*     Deleted method 'UpdateTargetDeltaAngle'
*     Added method 'CalculateSteeringAngle'
*     Added method 'CalculateDeltaAngle'
*     Added member 'm_motorState'
*     Added member 'm_steeringAngle0'
*     Added member 'm_motorSpeed'
*     Added member 'm_deltaAngleSum'
* July 05, 2008 14:29 Chijinliang
*     Added method 'GetMode'
*     Added method 'GetMinAngle'
*     Added method 'GetMaxAngle'
*     Added method 'SetParameters'
*     Added member 'm_maxAngle'
*     Added member 'm_minAngle'
*     Added member 'm_mode'
*     Updated interface of method 'SetTargetSteeringAngle'
*     Updated interface of method 'SetSteeringSpeed'
*     Updated member 'm_steeringSpeed'
*     Updated member 'm_targetSteeringAngle'
* June 25, 2008 19:10 Chijinliang
*     Added method 'UpdateTargetDeltaAngle'
*     Added member 'm_targetDeltaAngle'
* June 24, 2008 19:44 Chijinliang
*     Added method 'Stop'
*     Added member 'm_deltaAngle'
* June 23, 2008 13:42 Chijinliang
*     Updated member 'm_zeroIndicator'
* June 23, 2008 10:30 Chijinliang
*     Added method 'DestructorInclude'
*     Added method 'ConstructorInclude'
*     Added method 'SetTargetSteeringAngle'
*     Added method 'GetTargetSteeringAngle'
*     Added method 'SetSteeringSpeed'
*     Added method 'GetSteeringSpeed'
*     Added method 'GetSteeringAngle'
*     Added method 'ZeroRevise'
*     Added method 'ControlMotor'
*     Added method 'Control'
*     Added method '~SteeringController'
*     Added method 'SteeringController'
*     Added member 'm_steeringSpeed'
*     Added member 'm_targetSteeringAngle'
*     Added member 'm_steeringAngle'
*     Added member 'm_steeringMotor'
*     Added member 'm_zeroIndicator'
*
* Copyright 2008, XXXXX
* All rights are reserved. Reproduction in whole or part is prohibited
* without the written consent of the copyright owner.
*
\******************************************************************************/
#ifndef _STEERINGCONTROLLER_H
#define _STEERINGCONTROLLER_H

/*
憖懬僐儞僩儘乕儖僋儔僗
*/
class SteeringController
{

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

private:
    TouchSensor m_zeroIndicator;
    SteeringMotor m_steeringMotor;
    int m_steeringAngle;
    int m_targetSteeringAngle;
    int m_deltaAngle;
    int m_targetTime;
    SteeringMode m_mode;
    int m_minAngle;
    int m_maxAngle;
    byte m_motorSpeed;
    int m_steeringAngle0;
    char m_motorState;
    byte m_pastTime;
    int m_deltaAngle0;
    Command m_command;
    bool m_newCommand;
    bool m_pressed;
    int m_leftside;

private:
    void CalculateSteeringAngle();
    void UpdateCommand();
    void UpdateTargetTime();
    void SetTargetSteeringAngle(int targetSteeringAngle);

protected:
    void ControlMotor();

public:
    SteeringController();
    virtual ~SteeringController();
    void Control();
    void Execute(const Command* pCommand);
    void Stop();
    void ZeroRevise();
    int GetMaxAngle() const;
    int GetMinAngle() const;
    SteeringMode GetMode() const;
    int GetSteeringAngle() const;
    int GetTargetSteeringAngle() const;
};

#endif // ndef _STEERINGCONTROLLER_H


#ifdef CB_INLINES
#ifndef _STEERINGCONTROLLER_H_INLINES
#define _STEERINGCONTROLLER_H_INLINES

/*
Returns the value of member 'm_maxAngle'.
*/
inline int SteeringController::GetMaxAngle() const
{
    return m_maxAngle;
}



/*
Returns the value of member 'm_minAngle'.
*/
inline int SteeringController::GetMinAngle() const
{
    return m_minAngle;
}



/*
Returns the value of member 'm_mode'.
*/
inline SteeringMode SteeringController::GetMode() const
{
    return m_mode;
}



/*
Returns the value of member 'm_steeringAngle'.
*/
inline int SteeringController::GetSteeringAngle() const
{
    return m_steeringAngle;
}



/*
Returns the value of member 'm_targetSteeringAngle'.
*/
inline int SteeringController::GetTargetSteeringAngle() const
{
    return m_targetSteeringAngle;
}



/*
Set the value of member 'm_targetSteeringAngle' to 'targetSteeringAngle'.
*/
inline void SteeringController::SetTargetSteeringAngle(int targetSteeringAngle)
{
    m_targetSteeringAngle = targetSteeringAngle;
    //UpdateTargetDeltaAngle();
}



#endif // ndef _STEERINGCONTROLLER_H_INLINES
#endif //  def CB_INLINES

⌨️ 快捷键说明

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