00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _VoltageScanRate_h
00026 #define _VoltageScanRate_h
00027
00028 #include "Quantity/Variable.h"
00029 #include "Quantity/Constant.h"
00030
00031 #include "PhysicalQuantities/ElectricPotential.h"
00032 #include "PhysicalQuantities/Time.h"
00033
00034 namespace Quantities {
00035
00036
00037 typedef BSUtilities::Rational<2> VoltageScanRate_LE;
00038 typedef BSUtilities::Rational<1> VoltageScanRate_M;
00039 typedef BSUtilities::Rational<-4> VoltageScanRate_TI;
00040 typedef BSUtilities::Rational<-1> VoltageScanRate_E;
00041 typedef BSUtilities::Rational<0> VoltageScanRate_TE;
00042 typedef BSUtilities::Rational<0> VoltageScanRate_A;
00043 typedef BSUtilities::Rational<0> VoltageScanRate_LU;
00044
00045 class VoltageScanRateGroup
00046 {
00047 public:
00048 typedef TYPELIST_7(VoltageScanRate_LE, VoltageScanRate_M,
00049 VoltageScanRate_TI, VoltageScanRate_E,
00050 VoltageScanRate_TE, VoltageScanRate_A,
00051 VoltageScanRate_LU) DimTL;
00052 };
00053
00055 namespace VoltageScanRateUnits {
00056
00057
00058 typedef Units::Unit<VoltageScanRateGroup> VoltageScanRateUnit;
00059
00060
00061
00062 typedef TYPELIST_4(ElectricPotentialUnits::Volt,
00063 ElectricPotentialUnits::MilliVolt, ElectricPotentialUnits::KiloVolt,
00064 ElectricPotentialUnits::MegaVolt) ElectricPotentialList;
00065
00066 typedef
00067 Units::CompoundElement<VoltageScanRateGroup, ElectricPotentialList,
00068 BSUtilities::Rational<1> > ElectricPotentialElement;
00069
00070 typedef TYPELIST_3(TimeUnits::Second, TimeUnits::MilliSecond,
00071 TimeUnits::MicroSecond) TimeList;
00072
00073 typedef
00074 Units::CompoundElement<VoltageScanRateGroup, TimeList,
00075 BSUtilities::Rational<-1> > TimeElement;
00076
00077 typedef TYPELIST_2(ElectricPotentialElement, TimeElement)
00078 VoltageScanRateCompoundList;
00079 typedef
00080 Units::Compound<VoltageScanRateGroup, VoltageScanRateCompoundList>
00081 VoltageScanRateCompoundUnits;
00082
00083 typedef Units::Composed<VoltageScanRateCompoundUnits,
00084 TYPELIST_2(ElectricPotentialUnits::Volt,TimeUnits::Second)>
00085 VoltPerSecond;
00086 typedef Units::Composed<VoltageScanRateCompoundUnits,
00087 TYPELIST_2(ElectricPotentialUnits::MilliVolt,TimeUnits::Second)>
00088 MilliVoltPerSecond;
00089 typedef Units::Composed<VoltageScanRateCompoundUnits,
00090 TYPELIST_2(ElectricPotentialUnits::KiloVolt,TimeUnits::Second)>
00091 KiloVoltPerSecond;
00092 typedef Units::Composed<VoltageScanRateCompoundUnits,
00093 TYPELIST_2(ElectricPotentialUnits::MegaVolt,TimeUnits::Second)>
00094 MegaVoltPerSecond;
00095
00097 typedef TYPELIST_4(VoltPerSecond, MilliVoltPerSecond,
00098 KiloVoltPerSecond, MegaVoltPerSecond) VoltageScanRateUnits;
00099
00100
00101 }
00102
00103
00104
00105 typedef
00106 Dimensions::Dimension<VoltageScanRateGroup> VoltageScanRateDimension;
00107
00108
00109
00110 typedef Quantity<VoltageScanRateGroup,
00111 VoltageScanRateUnits::VoltageScanRateUnits,
00112 VoltageScanRateUnits::VoltPerSecond> VoltageScanRateQuantities;
00113
00114 typedef Variable<VoltageScanRateQuantities> VoltageScanRate;
00115 typedef Constant<VoltageScanRateQuantities> VoltageScanRateConstant;
00116
00117 typedef VariableVector<VoltageScanRateQuantities> VoltageScanRateVector;
00118
00119 }
00120
00121 #endif