     1	class StepperMotor: public Tango::DeviceImpl
     2	{
     3	public :
     4		StepperMotor(Tango::DeviceClass *,string &);
     5		StepperMotor(Tango::DeviceClass *,const char *);
     6		StepperMotor(Tango::DeviceClass *,const char *,const char *);
     7		~StepperMotor() {};
     8		
     9		DevLong dev_read_position(DevLong);
    10		DevLong dev_read_direction(DevLong);
    11		bool direct_cmd_allowed(const CORBA::Any &);
    12		
    13		virtual Tango::DevState dev_state();
    14		virtual Tango::ConstDevString dev_status();
    15	
    16		virtual void always_executed_hook();
    17	
    18		virtual void read_attr_hardware(vector<long> &attr_list);
    19	
    20		void read_position(Tango::Attribute &);
    21		bool is_Position_allowed(Tango::AttReqType req);
    22		void write_SetPosition(Tango::WAttribute &);
    23		void read_Direction(Tango::Attribute &);
    24				
    25		virtual void init_device();
    26		virtual void delete_device();
    27	
    28		void get_device_properties();
    29	
    30	protected :	
    31		long axis[AGSM_MAX_MOTORS];
    32		DevLong position[AGSM_MAX_MOTORS];
    33		DevLong direction[AGSM_MAX_MOTORS];
    34		long state[AGSM_MAX_MOTORS];
    35		
    36		Tango::DevLong	*attr_Position_read;
    37		Tango::DevLong	*attr_Direction_read;
    38		Tango::DevLong	attr_SetPosition_write;
    39	
    40		Tango::DevLong	min;
    41		Tango::DevLong	max;
    42	
    43		Tango::DevLong *ptr;
    44	};
    45	
    46	} /* End of StepperMotor namespace */
