ROOT logo
#ifndef __TMrbAcromag_IP341_h__
#define __TMrbAcromag_IP341_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbAcromag_IP341.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbAcromag_IP341          -- a 16 channel sampling adc
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbAcromag_IP341.h,v 1.9 2008-03-27 15:49:37 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:           TMrbAcromag_IP341
// Purpose:        Define a VME adc type Acromag-9660/IP341
// Description:    Defines a VME adc Acromag-9660/IP341
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbAcromag_IP341 : public TMrbVMEModule {

	public:
		enum				{	kSegSize		=	0x400	};			// 1 kB
		enum				{	kAddrMod		=	0x29	};			// A16

	public:

		TMrbAcromag_IP341() {};  												// default ctor
		TMrbAcromag_IP341(const Char_t * ModuleName, UInt_t BaseAddr, Int_t SubDevice); 	// define a new adc
		~TMrbAcromag_IP341() {};												// 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("acro_ip341"); }; 	// module mnemonic

		virtual Bool_t CheckSubeventType(TMrbSubevent * Subevent) const;		// check if subevent type is HB_1 [10,71]

		virtual inline Int_t GetNofSubDevices() const { return(4); };				// houses up to 4 ip modules
		inline Bool_t HasRandomReadout() const { return(kFALSE); };				// has to be read out as a whole

		virtual inline Bool_t HasPrivateCode() const { return(kTRUE); }; 			// use private code files
		virtual inline const Char_t * GetPrivateCodeFile() const { return("Module_HB"); };

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

	protected:
		void DefineRegisters(); 							// define vme registers

	ClassDef(TMrbAcromag_IP341, 1)		// [Config] Acromag-9660/IP341, 16 chn sampling ADC, 14 bit
};

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