4 #ifndef SWIG__COMMON__NDS_CHANNEL_HH
5 #define SWIG__COMMON__NDS_CHANNEL_HH
15 #include "nds_export.hh"
24 inline namespace abi_0
71 class hash_type :
private std::vector< unsigned char >
74 typedef std::vector< unsigned char > element_type;
76 using element_type::size;
80 bool compare(
const void* Buffer,
81 size_t Length = (
size_t )( -1 ) )
const;
83 const void* ref( )
const;
88 friend struct NDS::detail::conn_p_type;
90 static const unsigned char zero_hash[ 1 ];
91 static const size_t MAX_SIZE;
123 DLL_EXPORT
static const sample_rate_type
125 DLL_EXPORT
static const sample_rate_type
150 DLL_EXPORT
static const std::string&
193 signal_gain_type
Gain,
194 signal_slope_type
Slope,
195 signal_offset_type
Offset,
202 DLL_EXPORT
const std::string&
Name( )
const;
211 DLL_EXPORT std::string
NameLong( )
const;
238 DLL_EXPORT sample_rate_type
SampleRate( )
const;
244 DLL_EXPORT signal_gain_type
Gain( )
const;
250 DLL_EXPORT signal_slope_type
Slope( )
const;
256 DLL_EXPORT signal_offset_type
Offset( )
const;
262 DLL_EXPORT
const std::string&
Units( )
const;
291 sample_rate_type sample_rate;
292 signal_gain_type gain;
293 signal_slope_type slope;
294 signal_offset_type offset;
298 typedef std::vector< channel > channels_type;
301 channel::hash_type::ref( )
const
303 return ( ( size( ) > 0 ) ? &( this->
operator[]( 0 ) ) : zero_hash );
306 inline const std::string&
371 inline const std::string&
380 static const std::string STREND_EXT(
",s-trend" );
382 if ( Name.size( ) <= STREND_EXT.size( ) )
386 return ( STREND_EXT.compare( Name.substr(
387 Name.size( ) - STREND_EXT.size( ) ) ) == 0 );
393 static const std::string MTREND_EXT(
",m-trend" );
395 if ( Name.size( ) <= MTREND_EXT.size( ) )
399 return ( MTREND_EXT.compare( Name.substr(
400 Name.size( ) - MTREND_EXT.size( ) ) ) == 0 );
403 DLL_EXPORT
extern std::ostream& operator<<( std::ostream& os,
424 template <
typename T >
427 static const NDS::channel::data_type value =
428 NDS::channel::DATA_TYPE_UNKNOWN;
434 static const NDS::channel::data_type value =
435 NDS::channel::DATA_TYPE_INT16;
439 struct channel_data_type_conversion< std::int32_t >
441 static const NDS::channel::data_type value =
442 NDS::channel::DATA_TYPE_INT32;
446 struct channel_data_type_conversion< std::int64_t >
448 static const NDS::channel::data_type value =
449 NDS::channel::DATA_TYPE_INT64;
453 struct channel_data_type_conversion< float >
455 static const NDS::channel::data_type value =
456 ( NDS::channel::DATA_TYPE_FLOAT32 );
460 struct channel_data_type_conversion< double >
462 static const NDS::channel::data_type value =
463 NDS::channel::DATA_TYPE_FLOAT64;
467 struct channel_data_type_conversion< std::complex< float > >
469 static const NDS::channel::data_type value =
470 ( NDS::channel::DATA_TYPE_COMPLEX32 );
474 struct channel_data_type_conversion< std::uint32_t >
476 static const NDS::channel::data_type value =
477 NDS::channel::DATA_TYPE_UINT32;
480 DLL_EXPORT
const std::string&
483 DLL_EXPORT
const std::string&
DLL_EXPORT channel()
Default constructor.
Definition: nds_channel.cc:49
std::vector< std::string > channel_names_type
A vector of channel names.
Definition: nds_channel.hh:104
static DLL_EXPORT const std::string & ToString(channel_type ChannelType)
Return a string representatino of the given channel_type.
Definition: nds_channel.cc:82
Minute trend.
Definition: nds_channel.hh:45
64 bit signed integer
Definition: nds_channel.hh:57
double sample_rate_type
Defines the sample rate type.
Definition: nds_channel.hh:94
float signal_offset_type
Defines the offset type.
Definition: nds_channel.hh:97
32 bit unsigned integer value
Definition: nds_channel.hh:62
Online channel.
Definition: nds_channel.hh:41
Test point data.
Definition: nds_channel.hh:46
DLL_EXPORT data_type DataType() const
Return the data type of the channel.
Definition: nds_channel.hh:319
DLL_EXPORT size_type DataTypeSize() const
Return the size in bytes of an individual sample from the channel.
Definition: nds_channel.hh:325
float signal_gain_type
Defines the gain type.
Definition: nds_channel.hh:95
DLL_EXPORT std::string NameLong() const
Return the name with additional information.
Definition: nds_channel.cc:70
static DLL_EXPORT const sample_rate_type MAX_SAMPLE_RATE
Largest sample rate possible.
Definition: nds_channel.hh:126
size_t size_type
Defines sizes when dealing with channels.
Definition: nds_channel.hh:99
Reduced data set.
Definition: nds_channel.hh:43
DLL_EXPORT const std::string & Name() const
Return the channel name.
Definition: nds_channel.hh:307
static DLL_EXPORT const channel_type DEFAULT_CHANNEL_MASK
The combination of all valid channel types.
Definition: nds_channel.hh:109
DLL_EXPORT void swap(channel &Source)
Swap this channel with another.
Definition: nds_channel.cc:272
32 bit float value
Definition: nds_channel.hh:58
Complex value, two 32 bit floats.
Definition: nds_channel.hh:60
static DLL_EXPORT const data_type DEFAULT_DATA_MASK
The combinatino of all valid data types.
Definition: nds_channel.hh:118
Second trend.
Definition: nds_channel.hh:44
DLL_EXPORT sample_rate_type SampleRate() const
Return the sample rate of the channel.
Definition: nds_channel.hh:348
DLL_EXPORT signal_gain_type Gain() const
Return the gain of the channel.
Definition: nds_channel.hh:354
static DLL_EXPORT data_type convert_daq_datatype(int DataType)
Convert from the legacy daqd data types to a data_type enum.
Definition: nds_channel.cc:227
The hash_type represents a channel hash. The channel hash is an hash of the NDS2 channel list...
Definition: nds_channel.hh:71
Raw channel.
Definition: nds_channel.hh:42
16 bit signed integer
Definition: nds_channel.hh:55
32 bit signed integer
Definition: nds_channel.hh:56
DLL_EXPORT signal_slope_type Slope() const
Return the slope of the channel.
Definition: nds_channel.hh:360
static DLL_EXPORT const sample_rate_type MIN_SAMPLE_RATE
Smallest sample rate possible.
Definition: nds_channel.hh:124
channel_type
Definition: nds_channel.hh:39
64 bit float value
Definition: nds_channel.hh:59
Unkown.
Definition: nds_channel.hh:54
Static data.
Definition: nds_channel.hh:47
Unknown.
Definition: nds_channel.hh:40
DLL_EXPORT const std::string & Units() const
Return the units of this channel.
Definition: nds_channel.hh:372
Represents a LIGO data channel.
Definition: nds_channel.hh:33
DLL_EXPORT signal_offset_type Offset() const
Return the offset of the channel.
Definition: nds_channel.hh:366
data_type
Defines the internal data representation.
Definition: nds_channel.hh:53
static DLL_EXPORT channel_type convert_daq_chantype(int ChanType)
Convert from the legacy daqd channel types to a channel_type enum.
Definition: nds_channel.cc:194
static DLL_EXPORT bool IsMinuteTrend(const std::string &Name)
Check the channel name to see if it is a minute trend.
Definition: nds_channel.hh:391
static DLL_EXPORT bool IsSecondTrend(const std::string &Name)
Check the channel name to see if it is a second trend.
Definition: nds_channel.hh:378
DLL_EXPORT channel_type Type() const
Return the type of the channel.
Definition: nds_channel.hh:313
Given a C++ data type, determine which NDS channel data type applies to it.
Definition: nds_channel.hh:425
float signal_slope_type
Defines the slope type.
Definition: nds_channel.hh:96