Skip to content
Snippets Groups Projects
Novelec_MCCE2.h 1.93 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:

	/**
	*  \brief Initialization. 
	*/
	Novelec_MCCE2 (std::string& comLink_device_name, short channel_address, short electroType);
	
	/**
	*  \brief Release resources.
	*/
	virtual ~Novelec_MCCE2 (void);

	std::string get_ElectroMeterPolarity(void);
	void set_ElectroMeterPolarity	(std::string);

	/**
	*  \brief Electrometer Functions : mode for novelec types.
	*/
	void set_Zero_VonF_function			(void);
	void set_Offset_ZeroV1_function		(void);
	void set_Leakage_ZeroV2_function	(void);
	void set_Test_function				(void);
	void set_Measure_function			(void);

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

LE's avatar
LE committed
	/**
	*  \brief Commands to start/stop the data acquisition
	*
	* 
	*	This emulate the MCCE2 key ON/OFF 
	*	(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 _MCCE2electroTypeNumber;	//- the mcce2 electrometer type number (to check rang value)
LE's avatar
LE committed

ELATTAOUI's avatar
ELATTAOUI committed
	/**
	*	\brief Checks the new range value
	*/
	short check_range_value(const std::string& rgToCheck, const std::string* electroRangeList);
 
LE's avatar
LE committed
};

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

#endif // _NOVELEC_MCCE2_H_