teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

HbManager.h

Committer:
MasashiNomura
Date:
2018-12-18
Revision:
30:13ada1a24c59
Parent:
29:eb3d72dd94aa
Child:
31:56c554c560c1

File content as of revision 30:13ada1a24c59:

#ifndef __HBMANAGER_H__
#define __HBMANAGER_H__
/////////////////////////////////////////////////////////////////////
#include "typedef.h"
#include "HbEngine.h"
#include "HbAttitude.h"
#include "HbMotor.h"
#include "Imu.h"
#include "HbUserOpe.h"




/////////////////////////////////////////////////
class HbManager{
private:
    INT16       motorVal[4] ;//
    INT16       motorValD[4] ;// オフセット込みで直接入れられた値
    UINT16      accelVal[2] ;//
    float       nowAngle    ;//現在ヨー角
    float       nowRate     ;//現在加速度
    typUserSw   usrSW       ;//ユーザー操作SW
    //メンバクラス
    HbEngine    *eng[2]     ;//エンジン制御クラス
    HbAttitude  *att        ;//姿勢制御クラス
    //HbMotor     *mot[4]     ;//モーター制御クラス
    HbSubProp   *subProp[4]     ;//モーター制御クラス
    Imu         *imu        ;//慣性計測装置

    HbUserOpe   *ope        ;//ユーザー操作

    //INT16       motVal;     // モーターチェック用モーター値
    //short       motNum;     // モーターチェック用モーター番号

public:
    HbManager();
    void getAttitude();
    void calAtt();
    void controlAttitude();
    void controlAttitude(float cmdAngle);
    void setAttPara(typPidPara para);
    void controlMotor();
    //void addMotOfs(HbUserOpe::SW_TYPE2 sw);// テスト用ボタンで回転数オフセット上げ
    // void addMotVal(HbUserOpe::SW_TYPE sw);
    // void subMotVal(HbUserOpe::SW_TYPE sw);
    void addMotVal(eMotPos pos, INT16 add);
    void subMotVal(eMotPos pos, INT16 add);
    void setMotPara(UCHAR num, typMotPara para);    // 今は使わない
    //void initChkMotor();
    //bool chkMotor();
    void getCurMotVal();
    INT16 getCurMotVal(eMotPos pos);
    void setMotVal(eMotPos pos, INT16 val);
    bool stopMotor();
    void initMotVal();
    
    void setMotFPGA(UCHAR num, INT16 val);

    void controlEngine();
    void getUserCommand();

    bool chkOverIDLE();
    bool chkInRangeIDLE();
    bool chkSWUserOpe(HbUserOpe::SW_TYPE stype);
    bool chkSWUserOpeRE(HbUserOpe::SW_TYPE stype);//立ち上がり検出
    bool chkSWUserOpeAny();
    typUserSw getUserSw();
};

/////////////////////////////////////////////////////////////////////
#endif