mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 11:20:04 +02:00
WIP
This commit is contained in:
parent
9d3bbc0a68
commit
1d53dc65cd
@ -7395,6 +7395,11 @@ int set_pattern(int file_des) {
|
|||||||
LOG(logINFO, ("Setting Pattern\n"));
|
LOG(logINFO, ("Setting Pattern\n"));
|
||||||
LOG(logINFO, ("Setting Pattern Word\n"));
|
LOG(logINFO, ("Setting Pattern Word\n"));
|
||||||
for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) {
|
for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) {
|
||||||
|
if (patwords[i] != 0) {
|
||||||
|
LOG(logDEBUG1,
|
||||||
|
("Setting Pattern Word (addr:0x%x, word:0x%llx)\n", i,
|
||||||
|
(long long int)patwords[i]));
|
||||||
|
}
|
||||||
writePatternWord(i, patwords[i]);
|
writePatternWord(i, patwords[i]);
|
||||||
}
|
}
|
||||||
int numLoops = -1, retval0 = -1, retval1 = -1;
|
int numLoops = -1, retval0 = -1, retval1 = -1;
|
||||||
|
@ -1970,7 +1970,7 @@ std::string CmdProxy::PatternWord(int action) {
|
|||||||
WrongNumberOfParameters(1);
|
WrongNumberOfParameters(1);
|
||||||
}
|
}
|
||||||
auto t = det->getPatternWord(StringTo<uint64_t>(args[0]), {det_id});
|
auto t = det->getPatternWord(StringTo<uint64_t>(args[0]), {det_id});
|
||||||
os << OutStringHex(t) << '\n';
|
os << OutStringHex(t, 16) << '\n';
|
||||||
} else if (action == defs::PUT_ACTION) {
|
} else if (action == defs::PUT_ACTION) {
|
||||||
if (args.size() != 2) {
|
if (args.size() != 2) {
|
||||||
WrongNumberOfParameters(2);
|
WrongNumberOfParameters(2);
|
||||||
|
@ -434,6 +434,12 @@ class CmdProxy {
|
|||||||
return ToStringHex(value);
|
return ToStringHex(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename V> std::string OutStringHex(const V &value, int width) {
|
||||||
|
if (value.equal())
|
||||||
|
return ToStringHex(value.front(), width);
|
||||||
|
return ToStringHex(value, width);
|
||||||
|
}
|
||||||
|
|
||||||
template <typename V> std::string OutString(const V &value) {
|
template <typename V> std::string OutString(const V &value) {
|
||||||
if (value.equal())
|
if (value.equal())
|
||||||
return ToString(value.front());
|
return ToString(value.front());
|
||||||
|
@ -111,6 +111,16 @@ ToStringHex(const T &value) {
|
|||||||
return os.str();
|
return os.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Conversion of integer types, do not remove trailing zeros */
|
||||||
|
template <typename T>
|
||||||
|
typename std::enable_if<std::is_integral<T>::value, std::string>::type
|
||||||
|
ToStringHex(const T &value, int width) {
|
||||||
|
std::ostringstream os;
|
||||||
|
os << "0x" << std::hex << std::setfill('0') << std::setw(width) << value
|
||||||
|
<< std::dec;
|
||||||
|
return os.str();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hex
|
* hex
|
||||||
* For a container loop over all elements and call ToString on the element
|
* For a container loop over all elements and call ToString on the element
|
||||||
|
@ -66,32 +66,34 @@ std::ostream &operator<<(std::ostream &os,
|
|||||||
|
|
||||||
std::string ToString(const slsDetectorDefs::patternParameters &r) {
|
std::string ToString(const slsDetectorDefs::patternParameters &r) {
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << '[' << std::endl;
|
oss << '[' << std::setfill('0') << std::endl;
|
||||||
|
int addr_width = 4;
|
||||||
|
int word_width = 16;
|
||||||
for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) {
|
for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) {
|
||||||
if (r.word[i] != 0) {
|
if (r.word[i] != 0) {
|
||||||
oss << "patword 0x" << std::hex << i << " 0x" << std::hex
|
oss << "patword " << ToStringHex(i, addr_width) << " "
|
||||||
<< r.word[i] << std::endl;
|
<< ToStringHex(r.word[i], word_width) << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
oss << "patioctrl 0x" << std::hex << r.patioctrl << std::endl
|
oss << "patioctrl " << ToStringHex(r.patioctrl, word_width) << std::endl
|
||||||
<< "patclkctrl 0x" << r.patclkctrl << std::endl
|
<< "patclkctrl " << ToStringHex(r.patclkctrl, word_width) << std::endl
|
||||||
<< "patlimits 0x" << r.patlimits[0] << " 0x" << r.patlimits[1]
|
<< "patlimits " << ToStringHex(r.patlimits[0], addr_width) << " "
|
||||||
<< std::endl
|
<< ToStringHex(r.patlimits[1], addr_width) << std::endl
|
||||||
<< "patloop0 0x" << r.patloop[0] << " 0x" << r.patloop[1] << std::endl
|
<< "patloop0 " << ToStringHex(r.patloop[0], addr_width) << " "
|
||||||
<< "patnloop0 " << std::dec << r.patnloop[0] << std::hex << std::endl
|
<< ToStringHex(r.patloop[1], addr_width) << std::endl
|
||||||
<< "patloop1 0x" << r.patloop[2] << " 0x" << r.patloop[3] << std::endl
|
<< "patnloop0 " << r.patnloop[0] << std::endl
|
||||||
<< "patnloop1 " << std::dec << r.patnloop[1] << std::hex << std::endl
|
<< "patloop1 " << ToStringHex(r.patloop[2], addr_width) << " "
|
||||||
<< "patloop2 0x" << r.patloop[4] << " 0x" << r.patloop[5] << std::endl
|
<< ToStringHex(r.patloop[3], addr_width) << std::endl
|
||||||
<< "patnloop2 " << std::dec << r.patnloop[2] << std::hex << std::endl
|
<< "patnloop1 " << r.patnloop[1] << std::endl
|
||||||
<< "patwait0 0x" << r.patwait[0] << std::endl
|
<< "patloop2 " << ToStringHex(r.patloop[4], addr_width) << " "
|
||||||
<< "patwaittime0 " << std::dec << r.patwaittime[0] << std::hex
|
<< ToStringHex(r.patloop[5], addr_width) << std::endl
|
||||||
<< std::endl
|
<< "patnloop2 " << r.patnloop[2] << std::endl
|
||||||
<< "patwait1 0x" << r.patwait[1] << std::endl
|
<< "patwait0 " << ToStringHex(r.patwait[0], addr_width) << std::endl
|
||||||
<< "patwaittime1 " << std::dec << r.patwaittime[1] << std::hex
|
<< "patwaittime0 " << r.patwaittime[0] << std::endl
|
||||||
<< std::endl
|
<< "patwait1 " << ToStringHex(r.patwait[1], addr_width) << std::endl
|
||||||
<< "patwait2 0x" << r.patwait[1] << std::endl
|
<< "patwaittime1 " << r.patwaittime[1] << std::endl
|
||||||
<< "patwaittime2 " << std::dec << r.patwaittime[2] << std::hex
|
<< "patwait2 " << ToStringHex(r.patwait[2], addr_width) << std::endl
|
||||||
<< std::endl
|
<< "patwaittime2 " << r.patwaittime[2] << std::endl
|
||||||
<< ']';
|
<< ']';
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user