Line 1... |
Line 1... |
// $Id: Rw11CntlDL11.hpp 504 2013-04-13 15:37:24Z mueller $
|
// $Id: Rw11CntlDL11.hpp 516 2013-05-05 21:24:52Z mueller $
|
//
|
//
|
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
// Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
//
|
//
|
// This program is free software; you may redistribute and/or modify it under
|
// This program is free software; you may redistribute and/or modify it under
|
// the terms of the GNU General Public License as published by the Free
|
// the terms of the GNU General Public License as published by the Free
|
Line 11... |
Line 11... |
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
// for complete details.
|
// for complete details.
|
//
|
//
|
// Revision History:
|
// Revision History:
|
// Date Rev Version Comment
|
// Date Rev Version Comment
|
|
// 2013-05-04 516 1.0.1 add RxRlim support (receive interrupt rate limit)
|
// 2013-03-06 495 1.0 Initial version
|
// 2013-03-06 495 1.0 Initial version
|
// 2013-02-05 483 0.1 First draft
|
// 2013-02-05 483 0.1 First draft
|
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
|
|
|
|
/*!
|
/*!
|
\file
|
\file
|
\version $Id: Rw11CntlDL11.hpp 504 2013-04-13 15:37:24Z mueller $
|
\version $Id: Rw11CntlDL11.hpp 516 2013-05-05 21:24:52Z mueller $
|
\brief Declaration of class Rw11CntlDL11.
|
\brief Declaration of class Rw11CntlDL11.
|
*/
|
*/
|
|
|
#ifndef included_Retro_Rw11CntlDL11
|
#ifndef included_Retro_Rw11CntlDL11
|
#define included_Retro_Rw11CntlDL11 1
|
#define included_Retro_Rw11CntlDL11 1
|
Line 40... |
Line 41... |
|
|
void Config(const std::string& name, uint16_t base, int lam);
|
void Config(const std::string& name, uint16_t base, int lam);
|
|
|
virtual void Start();
|
virtual void Start();
|
|
|
|
virtual void UnitSetup(size_t ind);
|
void Wakeup();
|
void Wakeup();
|
|
|
|
void SetRxRlim(uint16_t rlim);
|
|
uint16_t RxRlim() const;
|
|
|
virtual void Dump(std::ostream& os, int ind=0, const char* text=0) const;
|
virtual void Dump(std::ostream& os, int ind=0, const char* text=0) const;
|
|
|
// some constants (also defined in cpp)
|
// some constants (also defined in cpp)
|
static const uint16_t kIbaddr = 0177560; //!< RK11 default address
|
static const uint16_t kIbaddr = 0177560; //!< DL11 default address
|
static const int kLam = 1; //!< RK11 default lam
|
static const int kLam = 1; //!< DL11 default lam
|
|
|
static const uint16_t kRCSR = 000; //!< RCSR register address offset
|
static const uint16_t kRCSR = 000; //!< RCSR register address offset
|
static const uint16_t kRBUF = 002; //!< RBUF register address offset
|
static const uint16_t kRBUF = 002; //!< RBUF register address offset
|
static const uint16_t kXCSR = 004; //!< XCSR register address offset
|
static const uint16_t kXCSR = 004; //!< XCSR register address offset
|
static const uint16_t kXBUF = 006; //!< XBUF register address offset
|
static const uint16_t kXBUF = 006; //!< XBUF register address offset
|
|
|
static const uint16_t kProbeOff = kRCSR; //!< probe address offset (rcsr)
|
static const uint16_t kProbeOff = kRCSR; //!< probe address offset (rcsr)
|
static const bool kProbeInt = true; //!< probe int active
|
static const bool kProbeInt = true; //!< probe int active
|
static const bool kProbeRem = true; //!< probr rem active
|
static const bool kProbeRem = true; //!< probr rem active
|
|
|
|
static const uint16_t kRCSR_M_RXRLIM = 0070000;
|
|
static const uint16_t kRCSR_V_RXRLIM = 12;
|
|
static const uint16_t kRCSR_B_RXRLIM = 007;
|
static const uint16_t kRCSR_M_RDONE = kWBit07;
|
static const uint16_t kRCSR_M_RDONE = kWBit07;
|
static const uint16_t kXCSR_M_XRDY = kWBit07;
|
static const uint16_t kXCSR_M_XRDY = kWBit07;
|
static const uint16_t kXBUF_M_RRDY = kWBit09;
|
static const uint16_t kXBUF_M_RRDY = kWBit09;
|
static const uint16_t kXBUF_M_XVAL = kWBit08;
|
static const uint16_t kXBUF_M_XVAL = kWBit08;
|
static const uint16_t kXBUF_M_XBUF = 0xff;
|
static const uint16_t kXBUF_M_XBUF = 0xff;
|
Line 68... |
Line 76... |
protected:
|
protected:
|
int AttnHandler(const RlinkServer::AttnArgs& args);
|
int AttnHandler(const RlinkServer::AttnArgs& args);
|
|
|
protected:
|
protected:
|
size_t fPC_xbuf; //!< PrimClist: xbuf index
|
size_t fPC_xbuf; //!< PrimClist: xbuf index
|
|
uint16_t fRxRlim; //!< rx interrupt rate limit
|
};
|
};
|
|
|
} // end namespace Retro
|
} // end namespace Retro
|
|
|
//#include "Rw11CntlDL11.ipp"
|
//#include "Rw11CntlDL11.ipp"
|