jameshead.h

来自「一个语言识别引擎」· C头文件 代码 · 共 210 行

H
210
字号
// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-

/*
 * Copyright (C) 2006 Giorgio Metta, Lorenzo Natale
 * CopyPolicy: Released under the terms of the GNU GPL v2.0.
 *
 */

#ifndef __YARPJAMES_HEAD__
#define __YARPJAMES_HEAD__

#include <yarp/dev/ControlBoardInterfaces.h>
#include <yarp/dev/ControlBoardInterfacesImpl.h>
#include <yarp/dev/PolyDriver.h>

namespace yarp{
    namespace dev{
        class JamesHead;
    }};

/**
 * @ingroup dev_impl_wrapper
 *
 * 
 */
class yarp::dev::JamesHead: public IPositionControlRaw, 
            public IVelocityControlRaw,
            public IEncodersRaw,
            public IPidControlRaw,
            public IAmplifierControlRaw,
            public IControlLimitsRaw,
            public IControlCalibrationRaw,
            public ImplementPositionControl<JamesHead, IPositionControl>,
            public ImplementVelocityControl<JamesHead, IVelocityControl>,
            public ImplementEncoders<JamesHead, IEncoders>,
            public ImplementPidControl<JamesHead, IPidControl>,
            public ImplementAmplifierControl<JamesHead, IAmplifierControl>,
            public ImplementControlLimits<JamesHead, IControlLimits> ,
            public DeviceDriver
{
public:
    void *controller;
    PolyDriver poly;
    PolyDriver ddInertia;
    PolyDriver ddHead;
    
    int nj;
    int *axisMap;
    double *angleToEncoder;
    double *zeros;

    JamesHead();
    ~JamesHead();

    virtual bool open(yarp::os::Searchable& config);

    virtual bool close();

    virtual bool getAxes(int *ax);

    virtual bool resetEncoderRaw(int j);

    virtual bool resetEncodersRaw();

    virtual bool setEncoderRaw(int j, double val);

    virtual bool setEncodersRaw(const double *vals);

    virtual bool getEncoderRaw(int j, double *v);

    virtual bool getEncodersRaw(double *encs);

    virtual bool getEncoderSpeedRaw(int j, double *sp);

    virtual bool getEncoderSpeedsRaw(double *spds);
    
    virtual bool getEncoderAccelerationRaw(int j, double *spds);

    virtual bool getEncoderAccelerationsRaw(double *accs);

    virtual bool setPositionMode();

    virtual bool positionMoveRaw(int j, double ref);

    virtual bool positionMoveRaw(const double *refs);

    virtual bool relativeMoveRaw(int j, double delta);

    virtual bool relativeMoveRaw(const double *deltas);
    
    virtual bool checkMotionDoneRaw(int j, bool *flag);

    virtual bool checkMotionDoneRaw(bool *flag);

    virtual bool setRefSpeedRaw(int j, double sp);

    virtual bool setRefSpeedsRaw(const double *spds);

    virtual bool setRefAccelerationRaw(int j, double acc);

    virtual bool setRefAccelerationsRaw(const double *accs);

    virtual bool getRefSpeedRaw(int j, double *ref);

    virtual bool getRefSpeedsRaw(double *spds);

    virtual bool getRefAccelerationRaw(int j, double *acc);

    virtual bool getRefAccelerationsRaw(double *accs);

    virtual bool setVelocityMode()
    {return true;}

    virtual bool velocityMoveRaw(int j, double v);
    virtual bool velocityMoveRaw(const double *v);
    
    virtual bool stopRaw(int j);

    virtual bool stopRaw();

    virtual bool setPidRaw(int j, const Pid &pid)
    {return true;}

    virtual bool setPidsRaw(const Pid *pids)
    {return true;}

    virtual bool setReferenceRaw(int j, double ref)
    {return true;}

    virtual bool setReferencesRaw(const double *refs)
    {return true;}

    virtual bool setErrorLimitRaw(int j, double limit)
    {return true;}

    virtual bool setErrorLimitsRaw(const double *limits)
    {return true;}

    virtual bool getErrorRaw(int j, double *err)
    {return true;}

    virtual bool getErrorsRaw(double *errs)
    {return true;}

    virtual bool getOutputRaw(int j, double *out)
    {return true;}

    virtual bool getOutputsRaw(double *outs)
    {return true;}

    virtual bool getPidRaw(int j, Pid *pid)
    {return true;}

    virtual bool getPidsRaw(Pid *pids)
    {return true;}

    virtual bool getReferenceRaw(int j, double *ref)
    {return true;}

    virtual bool getReferencesRaw(double *refs)
    {return true;}

    virtual bool getErrorLimitRaw(int j, double *limit)
    {return true;}

    virtual bool getErrorLimitsRaw(double *limits)
    {return true;}

    virtual bool resetPidRaw(int j)
    {return true;}

    virtual bool setOffsetRaw(int j, double v)
    {return true;}

    virtual bool disablePidRaw(int j);

    virtual bool enablePidRaw(int j);

    virtual bool enableAmpRaw(int j);

    virtual bool disableAmpRaw(int j);

    virtual bool getCurrentsRaw(double *vals)
    {return true;}

    virtual bool getCurrentRaw(int j, double *val)
    {return true;}

    virtual bool setMaxCurrentRaw(int j, double v)
    {return true;}

    virtual bool getAmpStatusRaw(int *st)
    {return true;}

    virtual bool setLimitsRaw(int axis, double min, double max)
    {return true;}
    
    virtual bool getLimitsRaw(int axis, double *min, double *max)
    {return true;}

    virtual bool calibrateRaw(int j, double p)
    {return true;}

    virtual bool doneRaw(int j)
    {return true;}

};

#endif 

⌨️ 快捷键说明

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