ROOT logo
#ifndef __TMrbMpiHD_IOReg_h__
#define __TMrbMpiHD_IOReg_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbMpiHD_IOReg.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbMpiHD_IOReg        -- 16 bit i/o reg (MPI HD)
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbMpiHD_IOReg.h,v 1.8 2008-01-14 09:48:51 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 "TObject.h"

#include "TMrbVMEModule.h"

class TMrbVMEChannel;

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbMpiHD_IOReg
// Purpose:        Define a VME 16 bit i/O register
// Description:    Defines a VME input/output register
//                 (8 bits in / 8 bits out, MPI HD)
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbMpiHD_IOReg : public TMrbVMEModule {

	public:
		enum				{	kSegSize		=	0x100	};
		enum				{	kAddrMod		=	0x29	};

	public:

		TMrbMpiHD_IOReg() {};  											// default ctor
		TMrbMpiHD_IOReg(const Char_t * ModuleName, UInt_t BaseAddr); 		// define a new instance
		~TMrbMpiHD_IOReg() {};												// default dtor

		Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex);  	// generate part of code
		Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex, TMrbVMEChannel * Channel, Int_t Value = 0);  	// generate code for given channel

		virtual inline const Char_t * GetMnemonic() const { return("mpiorl"); }; 	// module mnemonic

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

	ClassDef(TMrbMpiHD_IOReg, 1)		// [Config] 16 bit I/O register (8in, 8out, MPI HD)
};

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