Skip to content
Snippets Groups Projects
Novelec_MCCE2.h 2.5 KiB
Newer Older
LE's avatar
LE committed
// ============================================================================
//
// = CONTEXT
//    TANGO Project - Novelec Electrometer Support Library
//
// = FILENAME
//    Novelec_MCCE2.h
//
// = AUTHOR
//    X. Elattaoui
//
// ============================================================================

#ifndef _NOVELEC_MCCE2_H_
#define _NOVELEC_MCCE2_H_

#include "AbstractElectrometerClass.h"

/**
 *  \addtogroup Novelec
 *  @{
 */

/**
 *  \brief This class manage Novelec MCCE-2 type
 *
 *  \author Xavier Elattaoui
 *  \date 11-2006
 */

class Novelec_MCCE2 : public AbstractElectrometerClass
{
public:

	/**
ELATTAOUI's avatar
ELATTAOUI committed
	*  \brief Initialization.
LE's avatar
LE committed
	*/
ELATTAOUI's avatar
ELATTAOUI committed
//	Novelec_MCCE2 (std::string& comLink_device_name, unsigned short channel_address, unsigned short electroType);
	Novelec_MCCE2 (std::string& comLink_device_name, unsigned short channel_address);

LE's avatar
LE committed
	/**
	*  \brief Release resources.
	*/
	virtual ~Novelec_MCCE2 (void);

ELATTAOUI's avatar
ELATTAOUI committed
  bool init_protocol(void);

LE's avatar
LE committed
	std::string get_ElectroMeterPolarity(void);
ELATTAOUI's avatar
ELATTAOUI committed
	void set_ElectroMeterPolarity	(std::string);

	short get_electrometer_type() {
    return this->_MCCE2electroTypeNumber;
  }
	std::string get_electrometer_typeStr() {
    return this->_MCCE2electroTypeStr;
  }
LE's avatar
LE committed

	/**
	*  \brief Electrometer Functions : mode for novelec types.
	*/
ELATTAOUI's avatar
ELATTAOUI committed
	void set_Zero_VonF_function			  (void);
LE's avatar
LE committed
	void set_Offset_ZeroV1_function		(void);
	void set_Leakage_ZeroV2_function	(void);
ELATTAOUI's avatar
ELATTAOUI committed
	void set_Test_function				    (void);
	void set_Measure_function			    (void);
LE's avatar
LE committed

ELATTAOUI's avatar
ELATTAOUI committed
	/**
	*	\brief Sets the new range value
	*/
ELATTAOUI's avatar
ELATTAOUI committed
	//virtual void set_ElectroMeterRange(std::string range_str) = 0;
  virtual void range_up	     (void) {};
  virtual void range_down    (void) {};
ELATTAOUI's avatar
ELATTAOUI committed

LE's avatar
LE committed
	/**
	*  \brief Commands to start/stop the data acquisition
	*
ELATTAOUI's avatar
ELATTAOUI committed
	*
	*	This emulate the MCCE2 key ON/OFF
LE's avatar
LE committed
	*	(all parameters must be set before switching ON the MCCE2)
	*/
	void mcce_on	(void);
	void mcce_off	(void);

	/**
	*  \brief Electrometer Status.
	*/
	std::string electrometer_status		(void);

protected :
ELATTAOUI's avatar
ELATTAOUI committed
	unsigned short _rangeLimit;				      //- define the range limit for each novelec type
  unsigned short _address;                //- a DAIP manages 2 "channels" (or address)
ELATTAOUI's avatar
ELATTAOUI committed
	unsigned short _MCCE2electroTypeNumber;	//- the mcce2 electrometer type number (to check range value)
    std::string _MCCE2electroTypeStr;       //-  "      "   "   "   "   "   as string
ELATTAOUI's avatar
ELATTAOUI committed
	/**
	*	\brief Checks the new range value
	*/
	short check_range_value(const std::string& rgToCheck, const std::string* electroRangeList);
ELATTAOUI's avatar
ELATTAOUI committed

LE's avatar
LE committed
};

/** @} */	//- end addtogroup

#endif // _NOVELEC_MCCE2_H_