#!/usr/bin/python # -*- coding:utf-8 -*- from Automation.BDaq.BDaqApi import TCntrFeatures, TArray from Automation.BDaq.CounterCapabilityIndexer import CounterCapabilityIndexer from Automation.BDaq.CounterClockSourceIndexer import CounterClockSourceIndexer from Automation.BDaq.CounterGateSourceIndexer import CounterGateSourceIndexer from Automation.BDaq import MathInterval class CntrFeatures(object): def __init__(self, native_cntr_features): self._native_cntr_features = native_cntr_features # Channel features @property def channelCountMax(self): return TCntrFeatures.getChannelCountMax(self._native_cntr_features) @property def resolution(self): return TCntrFeatures.getResolution(self._native_cntr_features) @property def dataSize(self): return TCntrFeatures.getDataSize(self._native_cntr_features) @property def capabilities(self): return CounterCapabilityIndexer(TCntrFeatures.getCapabilities(self._native_cntr_features)) # noise filter features @property def noiseFilterSupported(self): value = TCntrFeatures.getNoiseFilterSupported(self._native_cntr_features) return True if value else False @property def noiseFilterOfChannels(self): nativeArray = TCntrFeatures.getNoiseFilterOfChannels(self._native_cntr_features) return TArray.ToByte(nativeArray, True) @property def noiseFilterBlockTimeRange(self): x = MathInterval() TCntrFeatures.getNoiseFilterBlockTimeRange(self._native_cntr_features, x) return x # event counting features @property def ecClockSources(self): clockObj = TCntrFeatures.getEcClockSources(self._native_cntr_features) return CounterClockSourceIndexer(clockObj) @property def ecClockPolarities(self): nativeArray = TCntrFeatures.getEcClockPolarities(self._native_cntr_features) return TArray.ToSignalPolarity(nativeArray, True) @property def ecGatePolarities(self): nativeArray = TCntrFeatures.getEcGatePolarities(self._native_cntr_features) return TArray.ToSignalPolarity(nativeArray, True) @property def ecGateControlOfChannels(self): nativeArray = TCntrFeatures.getEcGateControlOfChannels(self._native_cntr_features) return TArray.ToInt32(nativeArray, True) # frequency measurement features @property def fmMethods(self): nativeArray = TCntrFeatures.getFmMethods(self._native_cntr_features) return TArray.ToFreqMeasureMethod(nativeArray, True) # one-shot features @property def osClockSources(self): clockObj = TCntrFeatures.getOsClockSources(self._native_cntr_features) return CounterClockSourceIndexer(clockObj) @property def osClockPolarities(self): nativeArray = TCntrFeatures.getOsClockPolarities(self._native_cntr_features) return TArray.ToSignalPolarity(nativeArray, True) @property def osGateSources(self): clockObj = TCntrFeatures.getOsGateSources(self._native_cntr_features) return CounterGateSourceIndexer(clockObj) @property def osGatePolarities(self): nativeArray = TCntrFeatures.getOsGatePolarities(self._native_cntr_features) return TArray.ToSignalPolarity(nativeArray, True) @property def osOutSignals(self): nativeArray = TCntrFeatures.getOsOutSignals(self._native_cntr_features) return TArray.ToOutSignalType(nativeArray, True) @property def osDelayCountRange(self): x = MathInterval() TCntrFeatures.getOsDelayCountRange(self._native_cntr_features, x) return x # Timer/pulse features @property def tmrGateControlOfChannels(self): nativeArray = TCntrFeatures.getTmrGateControlOfChannels(self._native_cntr_features) return TArray.ToInt32(nativeArray, True) @property def tmrGatePolarities(self): nativeArray = TCntrFeatures.getTmrGatePolarities(self._native_cntr_features) return TArray.ToSignalPolarity(nativeArray, True) @property def tmrOutSignals(self): nativeArray = TCntrFeatures.getTmrOutSignals(self._native_cntr_features) return TArray.ToOutSignalType(nativeArray, True) @property def tmrFrequencyRange(self): x = MathInterval() TCntrFeatures.getTmrFrequencyRange(self._native_cntr_features, x) return x # pulse width measurement features @property def piCascadeGroup(self): nativeArray = TCntrFeatures.getPiCascadeGroup(self._native_cntr_features) return TArray.ToCounterCascadeGroup(nativeArray, True) # pulse width modulation features @property def poGateControlOfChannels(self): nativeArray = TCntrFeatures.getPoGateControlOfChannels(self._native_cntr_features) return TArray.ToInt32(nativeArray, True) @property def poGatePolarities(self): nativeArray = TCntrFeatures.getPoGatePolarities(self._native_cntr_features) return TArray.ToSignalPolarity(nativeArray, True) @property def poOutSignals(self): nativeArray = TCntrFeatures.getPoOutSignals(self._native_cntr_features) return TArray.ToOutSignalType(nativeArray, True) @property def poHiPeriodRange(self): x = MathInterval() TCntrFeatures.getPoHiPeriodRange(self._native_cntr_features, x) return x @property def poLoPeriodRange(self): x = MathInterval() TCntrFeatures.getPoLoPeriodRange(self._native_cntr_features, x) return x @property def poOutCountRange(self): x = MathInterval() TCntrFeatures.getPoOutCountRange(self._native_cntr_features, x) return x # Up-down counter features @property def udCountingTypes(self): nativeArray = TCntrFeatures.getUdCountingTypes(self._native_cntr_features) return TArray.ToCountingType(nativeArray, True) @property def udInitialValues(self): nativeArray = TCntrFeatures.getUdInitialValues(self._native_cntr_features) return TArray.ToInt32(nativeArray, True) @property def udSnapEventSources(self): nativeArray = TCntrFeatures.getUdSnapEventSources(self._native_cntr_features) return TArray.ToEventId(nativeArray, True) # new: measurement timeout range @property def measurementTimeoutRange(self): x = MathInterval() TCntrFeatures.getMeasurementTimeoutRange(self._native_cntr_features, x) return x @property def udValueResetTimes(self): x = MathInterval() TCntrFeatures.getUdValueResetTimes(self._native_cntr_features, x) return x # Counter continue comparing: outputting pulse settings @property def ccpGateControlOfChannels(self): nativeArray = TCntrFeatures.getCcpGateControlOfChannels(self._native_cntr_features) return TArray.ToInt32(nativeArray, True) @property def ccpGatePolarities(self): nativeArray = TCntrFeatures.getCcpGatePolarities(self._native_cntr_features) return TArray.ToSignalPolarity(nativeArray, True) @property def ccpOutSignals(self): nativeArray = TCntrFeatures.getCcpOutSignals(self._native_cntr_features) return TArray.ToOutSignalType(nativeArray, True) @property def ccpHiPeriodRange(self): x = MathInterval() TCntrFeatures.getCcpHiPeriodRange(self._native_cntr_features, x) return x @property def ccpLoPeriodRange(self): x = MathInterval() TCntrFeatures.getCcpLoPeriodRange(self._native_cntr_features, x) return x @property def ccpOutCountRange(self): x = MathInterval() TCntrFeatures.getCcpOutCountRange(self._native_cntr_features, x) return x