Cat
Phaser.cpp
Go to the documentation of this file.
1 //$Id: Phaser.cpp,v 1.9 2006/09/28 13:02:24 fmachefe Exp $
2 //------------------------------------------------------------------------------
3 //
4 // Package : Phaser
5 //
6 // Description:
7 //
8 // Author(s) : F. Machefert -
9 // Date : 10 February 2004
10 //
11 //------------------------------------------------------------------------------
12 
13 // include files
14 #ifndef WIN32
15 #include <unistd.h>
16 #endif
17 #include <algorithm>
18 
19 // local include file
20 #include "Phaser.h"
21 
22 
23 void Phaser::read( ){
24  if (m_reg->read().isFailure()){
25  warning("Phaser register read failure.","Phaser::read");
26  }
27  else {
28  U8* buffer=m_reg->io()->dataU8();
29  unsigned int d0 = ( buffer[0] & 0x1F );
30  unsigned int d1 = (( buffer[0] & 0xE0 ) >> 5 ) | (( buffer[1] & 0x3 ) << 3 );
31  unsigned int d2 = (( buffer[1] >> 2 ) & 0x1F );
32  unsigned int d3 = (( buffer[1] >> 7 ) & 0x1 ) | ((buffer[2] & 0xF) << 1);
33  debug("reading "+name()+" phases : "+
34  itos(d0)+" "+
35  itos(d1)+" "+
36  itos(d2)+" "+
37  itos(d3),
38  "Phaser::read");
39  m_phase[0]=d0;
40  m_phase[1]=d1;
41  m_phase[2]=d2;
42  m_phase[3]=d3;
43  }
44 }
45 
47  U8* buffer=m_reg->io()->dataU8();
48  buffer[0]=(m_phase[0] & 0x1F) | ((m_phase[1] & 0x7)<<5);
49  buffer[1]=((m_phase[1]>>3)& 0x3) |
50  ((m_phase[2]& 0x1F)<<2) |
51  ((m_phase[3]&0x1)<<7);
52  buffer[2]=(m_phase[3]>>1)&0xF;
53  debug("setting "+name()+" phases : "+itos(m_phase[0])+" "+
54  itos(m_phase[1])+" "+itos(m_phase[2])+" "+itos(m_phase[3]),
55  "Phaser::write");
56  if (m_reg->write().isFailure()){
57  warning("Phaser register write failure.","Phaser::write");
58  }
59 }
std::string itos(int)
Definition: Tools.cpp:46
bool isFailure() const
Definition: StatusCode.h:68
Register * m_reg
Definition: Phaser.h:108
unsigned char m_phase[4]
Definition: Phaser.h:107
virtual StatusCode write()
Definition: IOobject.h:80
virtual StatusCode read()
Definition: IOobject.h:73
void debug(std::string mymsg)
Definition: Object.h:37
U8 * dataU8()
Definition: IOdata.h:214
std::string name() const
Definition: Object.h:28
void warning(std::string mymsg)
Definition: Object.h:39
unsigned char U8
Definition: Phaser.h:23
void read()
Definition: Phaser.cpp:23
IOdata * io()
Definition: IOobject.h:66
void write()
Definition: Phaser.cpp:46