EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
packet_cdevmadch.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file packet_cdevmadch.cc
1
#include <
packet_cdevmadch.h
>
2
#include <time.h>
3
#include <stdio.h>
4
Packet_cdevmadch::Packet_cdevmadch
(
PACKET_ptr
data
)
5
:
Packet_w4
(data)
6
{
7
ps
= 0;
8
}
9
10
int
*
Packet_cdevmadch::decode
(
int
*nwout)
11
{
12
13
if
(
ps
!= 0)
return
0;
14
int
il =
getDataLength
();
15
no_structures
= 4* il /
sizeof
(
struct
cdevMadchData
);
16
std::cout <<
"no_structures = "
<<
no_structures
<< std::endl;
17
18
int
*
k
= (
int
*)
findPacketDataStart
(
packet
);
19
if
(k == 0)
20
{
21
ps
= 0;
22
*nwout = 0;
23
return
0;
24
}
25
ps
= (
struct
cdevMadchData
*) k;
26
27
28
//fix_endianess ( &ps->current);
29
//fix_endianess ( ps->avgOrbPosition);
30
//fix_endianess ( ps->avgOrbVariance);
31
//fix_endianess ( ps->avgOrbStat);
32
33
34
*nwout = 0;
35
36
return
0;
37
}
38
39
40
// ------------------------------------------------------
41
42
43
void
Packet_cdevmadch::dump
(
OSTREAM
&os)
44
{
45
46
int
i;
47
48
decode
(&i);
49
50
this->
identify
(os);
51
os <<
"Number of readings: "
<<
iValue
(0,
"NOREADINGS"
) << std::endl;
52
53
os <<
"current "
<< std::endl;
54
for
( i = 0; i <
iValue
(0,
"NOREADINGS"
) ; i++)
55
{
56
/*
57
os << std::setw(4 ) << i ;
58
os << std::setw(16) << ps[i].current;
59
os << std::endl;
60
*/
61
62
printf
(
"%d hex current %x current %lf\n"
,i,(
unsigned
)
ps
[i].
current
,
ps
[i].current);
63
//printf("%d current %lf\n",i,ps[i].current);
64
65
/*
66
os << std::setw(16) << dValue(i,"current");
67
os << std::setw(16) << " int value " << iValue(i,"current");
68
os << std::setw(16) << " time " << iValue(i,"timestamp");
69
os << std::endl;
70
*/
71
72
}
73
74
dumpErrorBlock
(os);
75
dumpDebugBlock
(os);
76
}
77
78
79
int
Packet_cdevmadch::iValue
(
const
int
ich,
const
char
*what)
80
{
81
82
// std::cout << "IN Packet_cdevmadch::rValue " << std::endl;
83
int
i;
84
decode
(&i);
85
// Unix time
86
if
( strcmp(what,
"NOREADINGS"
) == 0 )
return
no_structures
;
87
if
( strcmp(what,
"timestamp"
) == 0 )
return
ps
[ich].
cdevCaptureTimeStamp
;
88
89
std::cout <<
"packet_cdevmadc::iValue error unknown datum: "
<< what << std::endl;
90
return
0;
91
}
92
93
94
double
Packet_cdevmadch::dValue
(
const
int
ich,
const
char
*what)
95
{
96
97
98
// std::cout << "IN Packet_cdevmadch::rValue " << std::endl;
99
int
i;
100
decode
(&i);
101
102
if
( ich < 0 || ich >=
no_structures
)
return
0;
103
104
if
( strcmp(what,
"current"
) == 0 )
return
ps
[ich].
current
;
105
106
107
std::cout <<
"packet_cdevmadc::dValue error unknown datum: "
<< what << std::endl;
108
return
0;
109
110
111
112
}
113
114
online_distribution
blob
master
newbasic
packet_cdevmadch.cc
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:55
using
1.8.2 with
EIC GitHub integration