EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
packet_w124.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file packet_w124.cc
1 #include "packet_w124.h"
2 
4 {}
5 
6 
8  : Packet_A(packet_ptr)
9 {
10 }
11 
13 {}
14 
16  : Packet_A(packet_ptr)
17 {
18 }
19 
21 {
22 }
23 
25  : Packet_A(packet_ptr)
26 {
27 }
28 
29 // ---- and the dump routines, which just call the
30 // ---- generic dump routines, but may be overloaded
31 // ---- by the subclasses.
32 
34 {
35  gdump(2,out);
36  dumpErrorBlock(out);
37  dumpDebugBlock(out);
38 }
39 
41 {
42  gdump(2,out);
43  dumpErrorBlock(out);
44  dumpDebugBlock(out);
45 }
46 
48 {
49  gdump(2,out);
50  dumpErrorBlock(out);
51  dumpDebugBlock(out);
52 }
53 
54 
55 void Packet_w4::gdump(const int i, OSTREAM& out) const
56 {
57  int j,l;
58 
59  int * packetData = (int *) findPacketDataStart (packet);
60 
61  if ( i == EVT_RAW)
62  {
63  fwrite(packetData, sizeof(int), getDataLength()-getPadding(), stdout);
64  return;
65  }
66 
67  if ( i == EVT_RAW_WH)
68  {
69  fwrite(packet, sizeof(int), getLength(), stdout);
70  return;
71  }
72 
73 
74  identify(out);
75 
76  if (packetData == 0)
77  {
78  return;
79  }
80 
81  switch (i)
82  {
83  case (EVT_HEXADECIMAL):
84  j = 0;
85  while (1)
86  {
87  out << SETW(5) << j << " | ";
88  for (l=0;l<4;l++)
89  {
90  out << std::hex << SETW(8) << packetData[j++] << " " ;
91  if (j>=getDataLength()) break;
92  }
93  if (j>=getDataLength() ) break;
94  out << std::dec<< std::endl;
95  }
96  out << std::dec<< std::endl;
97  break;
98 
99  case (EVT_DECIMAL):
100  j = 0;
101  while (1)
102  {
103  out << std::dec << SETW(5) << j << " | ";
104 
105  for (l=0;l<6;l++)
106  {
107  out << SETW(10) << packetData[j++] << " ";
108  if (j>=getDataLength() ) break;
109  }
110  if (j>=getDataLength() ) break;
111  out << std::endl;
112  }
113  out << std::dec<< std::endl;
114  break;
115 
116  default:
117  break;
118  }
119  out << std::dec << std::endl << std::endl;
120 
121 }
122 
123 // ---------------------------------------------------------------------
124 
125 void Packet_w2::gdump(const int i, OSTREAM& out) const
126 {
127  short * packetData = (short *) findPacketDataStart (packet);
128 
129  if ( i == EVT_RAW)
130  {
131  fwrite(packetData, sizeof(short), getDataLength(), stdout);
132  return;
133  }
134 
135  if ( i == EVT_RAW_WH)
136  {
137  fwrite(packet, sizeof(int), getLength(), stdout);
138  return;
139  }
140 
141  identify(out);
142  if (packetData == 0)
143  {
144  return;
145  }
146 
147  // << SETW(6) << packetHdr->sub_length
148  // << SETW(5) << packetHdr->sub_id
149  // << SETW(4) << packetHdr->sub_type
150  // << SETW(4) << packetHdr->sub_std::decoding
151  // << " (" << get_mnemonic(packetHdr->sub_std::decoding) << ")";
152 
153  int j,l;
154 
155  switch (i)
156  {
157  case (EVT_HEXADECIMAL):
158  j = 0;
159  while (1)
160  {
161  out << SETW(5) << j << " | ";
162  for (l=0;l<8;l++)
163  {
164  out << std::hex << SETW(4) << packetData[j++] << " " ;
165  if (j>=getDataLength() ) break;
166  }
167  if (j>=getDataLength() ) break;
168  out << std::dec << std::endl;
169  }
170  out << std::dec << std::endl;
171  break;
172 
173  case (EVT_DECIMAL):
174  j = 0;
175  while (1)
176  {
177  out << SETW(5) << j << " | ";
178  for (l=0;l<8;l++)
179  {
180  out << SETW(6) << packetData[j++] << " ";
181  if (j>=getDataLength()) break;
182  }
183  if (j>=getDataLength() ) break;
184  out << std::endl;
185  }
186  out << std::dec << std::endl;
187  break;
188 
189  default:
190  break;
191  }
192  out << std::dec << std::endl << std::endl;
193 
194 }
195 // ---------------------------------------------------------------------
196 
197 void Packet_w1::gdump(const int i, OSTREAM& out) const
198 {
199 
200  char * packetData = (char *) findPacketDataStart (packet);
201 
202  if ( i == EVT_RAW)
203  {
204  fwrite(packetData, sizeof(char), getDataLength(), stdout);
205  return;
206  }
207 
208  if ( i == EVT_RAW_WH)
209  {
210  fwrite(packet, sizeof(int), getLength(), stdout);
211  return;
212  }
213 
214  identify(out);
215  if (packetData == 0)
216  {
217  return;
218  }
219 
220  int j,l;
221  char cstring[20];
222  char *c;
223 
224  j = 0;
225  switch (i)
226  {
227  case (EVT_HEXADECIMAL):
228  while (1)
229  {
230  c = cstring;
231  out << std::dec << SETW(5) << j << " | ";
232  for (l=0;l<16;l++)
233  {
234  if (j < getDataLength() )
235  {
236  *c++ = packetData[j];
237  out << std::hex << SETW(2) << packetData[j++] << " ";
238  }
239  else
240  {
241  *c++ = 0x20;
242  out << std::dec << " ";
243  }
244  }
245  *c = 0;
246  out << " | " << cstring;
247  if (j >= getDataLength() ) break;
248  out << std::endl;
249  }
250  break;
251 
252  case (EVT_DECIMAL):
253  while (1)
254  {
255  c = cstring;
256  out << std::dec << SETW(5) << j << " | ";
257  for (l=0;l<12;l++)
258  {
259  if (j < getDataLength() )
260  {
261  *c++ = packetData[j];
262  out << std::hex << SETW(4) << packetData[j++] << " ";
263  }
264  else
265  {
266  *c++ = 0x20;
267  out << std::dec << " ";
268  }
269  }
270  *c = 0;
271  out << " | " << cstring;
272  if (j >= getDataLength() ) break;
273  out << std::endl;
274  }
275  break;
276 
277  default: break;
278  }
279  out << std::dec << std::endl << std::endl;
280 }