RSS Git Download  Clone
Raw Blame History
/*
* Title:	Control.h
* Author:	M.Thomas BEAM Ltd
* Date:		2007-02-13
*
* Contents:	All GUI access to the Tms server is routed through this class.
*
* Mod Rec:
*
*/

#ifndef CONTROL_H
#define CONTROL_H	1

#include <BError.h>
#include <BString.h>
#include <TmsD.h>
#include <TmsC.h>
#include <qobject.h>

/// The main system control class
class Control : public QObject {
	Q_OBJECT
public:
			Control();
			~Control();
	
	void		setHost(BString name);
	
	BError		init();					///< Initialise the system
	
	BError	connect();					///< Connect to both Control and Process

	BError	reconfigure(Tms::ConfigInfo i);			///< Reconfigure the system
	BError	getConfiguration(Tms::ConfigInfo& i);		///< Get current configuration
	
	BError	runTest(BList<BError>& l);			///< Run the server selftest

	BError	getData(Tms::DataInfo info,Tms::Data& data);
	BError	getStatus(BList<Tms::NameValue>& l);		///< Get Status
	BError	getStatistics(BList<Tms::NameValue>& l);	///< Get Statistics

	BError	setControlInfo(Tms::CycleParam	params);	///< Setup Cycle parameters

	BError	getPuChannel (UInt32 puChannel, Tms::PuChannel &puPhysChannel);		///< Get a handle for vitrual channel
	BError	getCycleNumber(UInt32& cycleNumber );					///< Get current cycle number

	BError	setTestData(Tms::PuChannel puChannel,Int32 on, BArray<UInt32> data);					///< Set pupe test data
	BError	getTestData(Tms::PuChannel puPhysChannel, Tms::TestCaptureInfo captureInfo, BArray< UInt64 > &data); 	///< Fetch pupe test data

signals:
	void 	newConnection();				///< Signals a new connection made

private:
	BString			ohostName;
	
	Tms::TmsControl		otmsControl;
	Tms::TmsProcess		otmsProcess;
};

#endif