/* This code was modified from: -NXT++: http://nxtpp.sourceforge.net -Device::USB: http://search.cpan.org/~gwadej/Device-USB-0.21 Please see these two websites for the appropriate licensing information. */ /** \class NXT_USB * \brief Controls a LEGO Mindstorms NXT robot via a USB connection * * NXT_USB controls a LEGO Mindstorms NXT robot over a USB connection. Namely * one can read from the sensors, move the motors and read rotational information * from the motors. */ #ifndef __NXT_USB_h #define __NXT_USB_h #include "NXT_USB_linux.h" class NXT_USB { public: NXT_USB(); ~NXT_USB(); // functions int OpenLegoUSB(); int CloseLegoUSB(); void SetSensorLight(int port, bool active); void SetSensorTouch(int port); void SetSensorSound(int port, bool dba); void SetSensorUS(int port); void SetUSOff(int port); void SetUSSingleShot(int port); void SetUSContinuous(int port); void SetUSEventCapture(int port); void SetUSContinuousInterval(int port, int interval); int GetLightSensor(int port); bool GetTouchSensor(int port); int GetSoundSensor(int port); int GetUSSensor(int port); void SetMotorOn(int port, int power); void SetMotorOn(int port, int power, int tachoCount); void MoveMotor(int port, int power, int tachoCount); void StopMotor(int port, bool brake); int GetMotorRotation(int port, bool relative); void ResetMotorPosition(int port, bool relative); void PlayTone(int frequency, int duration); char * GetDeviceFilename(); int GetIDVendor(); int GetIDProduct(); char * GetStatus(); void SendCommand (char * outbuf, int outbufSize, char * inbuf, int inbufSize); int LSGetStatus(int port); //attributes: private: NXT_USB_linux *usbConn; }; #endif