// ============================================================================ // // = CONTEXT // TANGO Project - Keithley Electrometer Support Library // // = FILENAME // CommunicationLink.h // // = AUTHOR // X. Elattaoui // // // $Author: xavela $ // // $Revision: 1.3 $ // // $Log: not supported by cvs2svn $ // Revision 1.2 2008/02/11 16:55:04 xavela // xavier : for DDC part // - integration mode OK (tests done with K_486) // // - TODO: DDC/SCPI // integration time for ScanServer compatibility. // report config for all DDC // add configuration in SCPI start command // // Revision 1.1 2007/07/09 13:20:35 stephle // initial import // // // ============================================================================ #ifndef _COMMUNICATION_LINK_H_ #define _COMMUNICATION_LINK_H_ #include <string> // ============================================================================ // DEPENDENCIES // ============================================================================ /** * \addtogroup Communication Management * @{ */ /** * \brief Abstract class to manage a specific communication bus * * \author Xavier Elattaoui * \date 11-2006 */ class CommunicationLink { public : /** * Initialization. */ CommunicationLink (std::string& communication_link_name); /** * Release resources. */ virtual ~CommunicationLink (void); /** * \brief Send command (data) as string to hardware. * * \throws Tango::DevFailed */ virtual void write(std::string) = 0; /** * \brief Gets hardware response as string. * * \throws Tango::DevFailed */ virtual std::string read(void) = 0; /** * \brief Performs a write read operation as string. * * \throws Tango::DevFailed */ virtual std::string write_read(std::string cmd_to_send) = 0; /** * \brief Returns the Gpib SRQ line state : used here to know if Keithley * device is ready after an integration cycle. * * \throws Tango::DevFailed */ virtual bool isSRQLineUp(void); /** * \brief Clear a specific device (same as reset *RST). * * \throws Tango::DevFailed */ virtual void clear(void); /** * \brief Trigg device on the gpib bus. * * \throws Tango::DevFailed */ virtual void trigger(void); protected : std::string _communication_Device_name; }; /** @} */ //- end addtogroup #endif // _COMMUNICATION_LINK_H_