Skip to content
Snippets Groups Projects
TIMIQLib.h 4.01 KiB
Newer Older
ELATTAOUI's avatar
ELATTAOUI committed
//=============================================================================
// TIMIQLib.h
//=============================================================================
// abstraction.......Tim IQ Application Programming Interface
// class.............TIMIQLib 
// original author...J. GOUNO - NEXEYA-FRANCE
//=============================================================================

#ifndef _TIMIQ_LIB_H_
#define _TIMIQ_LIB_H_

// ============================================================================
// DEPENDENCIES
// ============================================================================
#include <TIMIQException.h>
#include <TIMIQCurl.h>




// ==========================================================================
// DEFINITION OF API
//
// This API allows access to an electronic equipment "TimIQ". 
// It allows a control software to send and receive data 
// via a http web protocol.
// ===========================================================================

namespace TIMIQLib_ns {
	
	
	//- low layer TimIQ curl class
	//-----------------------------
	class TIMIQCurl;
	
	//------------------------------------------------------------------------
	//- TIMIQProxy Class
	//- Ensures the interface of the timIQ equipment with 
	//- a tango software control system 
	//------------------------------------------------------------------------
	class TIMIQLib
	{
		public:
			// Contructor 
			TIMIQLib ();
    
			// Destructor
			~TIMIQLib();
			
			//- Write functions
			//---------------------------------------------------------------------------
			// Sets data to TimIQ equipment
			// @param data float value.	
			void set_data(float data) throw (Exception);
			
			// Regulates "I" tension to TimIQ equipment
			// @param iValue float value.	
			void set_iValue(float iValue)throw (Exception);
			
			// Regulates "Q" tension to TimIQ equipment
			// @param qValue float value.
			void set_qValue(float qValue)throw (Exception);
			
			// Sets board temperature to TimIQ equipment
			// @param boardTemperature float value.
			void set_boardTemperature(float boardTemperature) throw (Exception);
			
			// Sets command to TimIQ equipment
			// @param cmd TimIQCmd_t value.
			void set_command(E_timiq_cmd_t& cmd) throw (Exception);
				
			//- Read functions
			//---------------------------------------------------------------------------
			// Gets data from TimIQ equipment
			// @param [out] data float pointer.
			void get_data(float &data)throw (Exception);
			
			// Gets "I" value from TimIQ equipment 
			// @param [out] iValue float pointer.
			void get_iValue(float& iValue)throw (Exception);
			
			// Gets "Q" value from TimIQ equipment 
			// @param [out] qValue float pointer.
			void get_qValue(float& qValue)throw (Exception);
			
			// Gets the mixer cosinus output from TimIQ equipment 
			// @param [out] mixerCosOutput float pointer.
			void get_mixerCosOutput(float& mixerCosOutput)throw (Exception);
			
			// Gets the mixer sinus output from TimIQ equipment
			// @param [out] mixerSinOutput float pointer.
			void get_mixerSinOutput(float& mixerSinOutput)throw (Exception);
			
			// Gets the board temperature from TimIQ equipment
			// @param [out] boardTemperature float pointer.
			void get_boardTemperature(float& boardTemperature)throw (Exception);
		
			// Gets state of TimIQ equipment
			// @param [out] status string
			E_timiq_code_t get_state(std::string& status) throw (Exception);
			
			// Initialize  TimIQCurl library
			// @param ip_address string, port_number string				
			void init (const std::string& ip_address, const short& port_number) throw (Exception);
			
		private:
			//- internal members
			//--------------------------
			TIMIQCurl * m_timiq_hw;
			
			//- ip address number
			std::string m_ipAddress;
			
			//- port number
			std::string m_numPort;
			
			//- internal function
			//-------------------------
			// ...
	};

} // namespace TIMIQLib_ns

#endif // _TIMIQ_LIB_H_