15 #include <tr1/functional>
17 #include <QtCore/QMutexLocker>
18 #include <QtCore/QString>
19 #include <QtCore/QStringList>
26 #include "pdsdata/xtc/Dgram.hh"
33 QMutex FormatConverter::_mutex;
35 tr1::shared_ptr<FormatConverter> FormatConverter::instance()
46 FormatConverter::FormatConverter()
52 for (
int i(Pds::TypeId::Any); i<Pds::TypeId::NumberOf; ++i)
62 QStringList::const_iterator convType(usedConvertersList.begin());
63 QStringList::const_iterator convEnd(usedConvertersList.end());
64 while (convType != convEnd)
66 const string convertertype((*convType++).toStdString());
68 const pdslist_t &pdsTypeList(converter->pdsTypeList());
69 pdslist_t::const_iterator pdsType(pdsTypeList.begin());
70 pdslist_t::const_iterator pdsEnd(pdsTypeList.end());
71 while (pdsType != pdsEnd)
84 Pds::Dgram *datagram =
reinterpret_cast<Pds::Dgram*
>(&cassevent->
datagrambuffer().front());
86 Log::add(
Log::DEBUG4,
"Dgram Transition '"+
string(Pds::TransitionId::name(datagram->seq.service()))+
"'");
95 if ((datagram->seq.service() == Pds::TransitionId::Configure) ||
96 (datagram->seq.service() == Pds::TransitionId::L1Accept) ||
97 (datagram->seq.service() == Pds::TransitionId::BeginCalibCycle))
100 if (datagram->seq.service() == Pds::TransitionId::Configure)
103 if (
_configseen && datagram->seq.service() == Pds::TransitionId::L1Accept)
106 uint64_t bunchId = datagram->seq.clock().seconds();
107 bunchId = (bunchId<<32) + static_cast<uint32_t>(datagram->seq.stamp().fiducials()<<8);
109 cassevent->
id() = bunchId;
126 retval = iter.iterate() && retval;
Event to store all LCLS Data.
file contains iterator to iterate through a xtc datagram
static shared_pointer instance(const std::string &type)
return the requested converter type
file contains declaration of the CASSEvent
static void add(Level level, const std::string &line)
add a string to the log
std::string toString(const Type &t)
convert any type to a string
std::tr1::shared_ptr< ConversionBackend > shared_pointer
typedef
value(const QString &key, const QVariant &defaultValue=QVariant()
definitions of a machine device
buffer_t & datagrambuffer()
setters
std::list< Pds::TypeId::Type > pdstypelist_t
typedef
beginGroup(const QString &prefix)