#ifndef DIRECT_CTRL_H
#define DIRECT_CTRL_H

/*!
  \file
  \brief 下位デバイスの直接制御

  下位デバイスを直接制御する

  \author Satofumi KAMIMURA

  $Id: directDeviceCtrl.h 286 2008-10-20 09:40:22Z satofumi $
*/

#include "motorCtrl.h"


/*!
  \brief デバイス直接制御の定数
*/
enum DirectDeviceCtrlMode {
  DIRECT_MODE_FREE = MTR_MODE_FREE,
  DIRECT_MODE_CW = MTR_MODE_CW_BREAK,
  DIRECT_MODE_CCW = MTR_MODE_CCW_BREAK,
  DIRECT_MODE_NONE,
  FREE = DIRECT_MODE_FREE,
  CW = DIRECT_MODE_CW,
  CCW = DIRECT_MODE_CCW,
};


/*!
  \brief モータ直接制御用の構造体

  モータ、エンコーダを直接制御するためのパラメータを管理
*/
typedef struct {
  unsigned char pwm;		/* PWM比 */
  unsigned char mode;		/* モード */
} directDeviceInfo_t;


/*!
  \brief デバイス直接制御情報の初期化
*/
extern void initDirectInfo(directDeviceInfo_t *direct);

#endif /* !DIRECT_CTRL */
