ROOT logo
#ifndef __TMrbVMERegister_h__
#define __TMrbVMERegister_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbVMERegister.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbVMERegister   -- base class to describe a set of VME registers
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbVMERegister.h,v 1.6 2005-09-09 06:59:14 Rudolf.Lutter Exp $       
// Date:           
// Keywords:
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

#include <cstdlib>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <fstream>

#include "Rtypes.h"
#include "TSystem.h"

#include "TMrbNamedX.h"
#include "TMrbLofNamedX.h"

#include "TMrbVMEModule.h"
#include "TMrbModuleRegister.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbVMERegister
// Purpose:        Define methods for VME registers
// Description:    Describes a VME register.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbVMERegister : public TMrbModuleRegister {

	public:

		TMrbVMERegister() {};										// default ctor

		TMrbVMERegister(TMrbVMEModule * Module, Int_t NofChannels, TMrbNamedX * RegDef,
									Int_t AddrSet,
									Int_t AddrClear,
									Int_t AddrGet,
									Int_t InitValue = 0, Int_t LowerLimit = 0, Int_t UpperLimit = -1,
									TMrbLofNamedX * BitNames = NULL, Bool_t PatternMode = kFALSE);

		~TMrbVMERegister() {};									// default dtor
	
		inline UInt_t AddrSet() const { return(fAddrSet); };
		inline UInt_t AddrClear() const { return(fAddrClear); };
		inline UInt_t AddrGet() const { return(fAddrGet); };

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		UInt_t fAddrSet;					// register offset (set bits)
		UInt_t fAddrClear;					// ... (clear bits)
		UInt_t fAddrGet;					// ... (get contents)

	ClassDef(TMrbVMERegister, 1)	// [Config] Base class for internal registers of VME modules
};	

#endif
 TMrbVMERegister.h:1
 TMrbVMERegister.h:2
 TMrbVMERegister.h:3
 TMrbVMERegister.h:4
 TMrbVMERegister.h:5
 TMrbVMERegister.h:6
 TMrbVMERegister.h:7
 TMrbVMERegister.h:8
 TMrbVMERegister.h:9
 TMrbVMERegister.h:10
 TMrbVMERegister.h:11
 TMrbVMERegister.h:12
 TMrbVMERegister.h:13
 TMrbVMERegister.h:14
 TMrbVMERegister.h:15
 TMrbVMERegister.h:16
 TMrbVMERegister.h:17
 TMrbVMERegister.h:18
 TMrbVMERegister.h:19
 TMrbVMERegister.h:20
 TMrbVMERegister.h:21
 TMrbVMERegister.h:22
 TMrbVMERegister.h:23
 TMrbVMERegister.h:24
 TMrbVMERegister.h:25
 TMrbVMERegister.h:26
 TMrbVMERegister.h:27
 TMrbVMERegister.h:28
 TMrbVMERegister.h:29
 TMrbVMERegister.h:30
 TMrbVMERegister.h:31
 TMrbVMERegister.h:32
 TMrbVMERegister.h:33
 TMrbVMERegister.h:34
 TMrbVMERegister.h:35
 TMrbVMERegister.h:36
 TMrbVMERegister.h:37
 TMrbVMERegister.h:38
 TMrbVMERegister.h:39
 TMrbVMERegister.h:40
 TMrbVMERegister.h:41
 TMrbVMERegister.h:42
 TMrbVMERegister.h:43
 TMrbVMERegister.h:44
 TMrbVMERegister.h:45
 TMrbVMERegister.h:46
 TMrbVMERegister.h:47
 TMrbVMERegister.h:48
 TMrbVMERegister.h:49
 TMrbVMERegister.h:50
 TMrbVMERegister.h:51
 TMrbVMERegister.h:52
 TMrbVMERegister.h:53
 TMrbVMERegister.h:54
 TMrbVMERegister.h:55
 TMrbVMERegister.h:56
 TMrbVMERegister.h:57
 TMrbVMERegister.h:58
 TMrbVMERegister.h:59
 TMrbVMERegister.h:60
 TMrbVMERegister.h:61
 TMrbVMERegister.h:62
 TMrbVMERegister.h:63
 TMrbVMERegister.h:64
 TMrbVMERegister.h:65
 TMrbVMERegister.h:66
 TMrbVMERegister.h:67
 TMrbVMERegister.h:68
 TMrbVMERegister.h:69
 TMrbVMERegister.h:70