bern-kernel 0.3.1

Preemptive real-time kernel for microcontrollers.
"""
   DWFConstants (definitions file for DWF library)
   Author:  Digilent, Inc.
   Revision:  2019-10-15

   Must install:
       Python 2.7 or 3
"""


from ctypes import *

# device handle
#HDWF
hdwfNone = c_int(0)

# device enumeration filters
enumfilterAll        = c_int(0)

enumfilterType     = c_int(0x8000000)
enumfilterUSB      = c_int(0x0000001)
enumfilterNetwork  = c_int(0x0000002)
enumfilterAXI      = c_int(0x0000004)
enumfilterRemote   = c_int(0x1000000)
enumfilterAudio    = c_int(0x2000000)
enumfilterDemo     = c_int(0x4000000)

# device ID
devidEExplorer   = c_int(1)
devidDiscovery   = c_int(2)
devidDiscovery2  = c_int(3)
devidDDiscovery  = c_int(4)
devidADP3X50     = c_int(6)

# device version
devverEExplorerC   = c_int(2)
devverEExplorerE   = c_int(4)
devverEExplorerF   = c_int(5)
devverDiscoveryA   = c_int(1)
devverDiscoveryB   = c_int(2)
devverDiscoveryC   = c_int(3)

# trigger source
trigsrcNone                 = c_ubyte(0)
trigsrcPC                   = c_ubyte(1)
trigsrcDetectorAnalogIn     = c_ubyte(2)
trigsrcDetectorDigitalIn    = c_ubyte(3)
trigsrcAnalogIn             = c_ubyte(4)
trigsrcDigitalIn            = c_ubyte(5)
trigsrcDigitalOut           = c_ubyte(6)
trigsrcAnalogOut1           = c_ubyte(7)
trigsrcAnalogOut2           = c_ubyte(8)
trigsrcAnalogOut3           = c_ubyte(9)
trigsrcAnalogOut4           = c_ubyte(10)
trigsrcExternal1            = c_ubyte(11)
trigsrcExternal2            = c_ubyte(12)
trigsrcExternal3            = c_ubyte(13)
trigsrcExternal4            = c_ubyte(14)
trigsrcHigh                 = c_ubyte(15)
trigsrcLow                  = c_ubyte(16)
trigsrcClock                = c_ubyte(17)

# instrument states
DwfStateReady        = c_ubyte(0)
DwfStateConfig       = c_ubyte(4)
DwfStatePrefill      = c_ubyte(5)
DwfStateArmed        = c_ubyte(1)
DwfStateWait         = c_ubyte(7)
DwfStateTriggered    = c_ubyte(3)
DwfStateRunning      = c_ubyte(3)
DwfStateDone         = c_ubyte(2)

# DwfEnumConfigInfo
DECIAnalogInChannelCount = c_int(1)
DECIAnalogOutChannelCount = c_int(2)
DECIAnalogIOChannelCount = c_int(3)
DECIDigitalInChannelCount = c_int(4)
DECIDigitalOutChannelCount = c_int(5)
DECIDigitalIOChannelCount = c_int(6)
DECIAnalogInBufferSize = c_int(7)
DECIAnalogOutBufferSize = c_int(8)
DECIDigitalInBufferSize = c_int(9)
DECIDigitalOutBufferSize = c_int(10)

# acquisition modes:
acqmodeSingle       = c_int(0)
acqmodeScanShift    = c_int(1)
acqmodeScanScreen   = c_int(2)
acqmodeRecord       = c_int(3)
acqmodeOvers        = c_int(4)
acqmodeSingle1      = c_int(5)

# analog acquisition filter:
filterDecimate = c_int(0)
filterAverage  = c_int(1)
filterMinMax   = c_int(2)

# analog in trigger mode:
trigtypeEdge         = c_int(0)
trigtypePulse        = c_int(1)
trigtypeTransition   = c_int(2)
trigtypeWindow       = c_int(3)

# trigger slope:
DwfTriggerSlopeRise   = c_int(0)
DwfTriggerSlopeFall   = c_int(1)
DwfTriggerSlopeEither = c_int(2)

# trigger length condition
triglenLess       = c_int(0)
triglenTimeout    = c_int(1)
triglenMore       = c_int(2)

# error codes for the functions:
dwfercNoErc                  = c_int(0)		#  No error occurred
dwfercUnknownError           = c_int(1)		#  API waiting on pending API timed out
dwfercApiLockTimeout         = c_int(2)		#  API waiting on pending API timed out
dwfercAlreadyOpened          = c_int(3)		#  Device already opened
dwfercNotSupported           = c_int(4)		#  Device not supported
dwfercInvalidParameter0      = c_int(16)	#  Invalid parameter sent in API call
dwfercInvalidParameter1      = c_int(17)	#  Invalid parameter sent in API call
dwfercInvalidParameter2      = c_int(18)	#  Invalid parameter sent in API call
dwfercInvalidParameter3      = c_int(19)	#  Invalid parameter sent in API call
dwfercInvalidParameter4      = c_int(20)	#  Invalid parameter sent in API call

# analog out signal types
funcDC       = c_ubyte(0)
funcSine     = c_ubyte(1)
funcSquare   = c_ubyte(2)
funcTriangle = c_ubyte(3)
funcRampUp   = c_ubyte(4)
funcRampDown = c_ubyte(5)
funcNoise    = c_ubyte(6)
funcPulse    = c_ubyte(7)
funcTrapezium= c_ubyte(8)
funcSinePower= c_ubyte(9)
funcCustom   = c_ubyte(30)
funcPlay     = c_ubyte(31)

# analog io channel node types
analogioEnable      = c_ubyte(1)
analogioVoltage     = c_ubyte(2)
analogioCurrent     = c_ubyte(3)
analogioPower       = c_ubyte(4)
analogioTemperature	= c_ubyte(5)
analogioDmm	       = c_ubyte(6)
analogioRange	   = c_ubyte(7)
analogioMeasure	   = c_ubyte(8)
analogioTime	   = c_ubyte(9)
analogioFrequency	= c_ubyte(10)
analogioResistance	= c_ubyte(11)

DwfDmmResistance     = c_double(1)
DwfDmmContinuity     = c_double(2)
DwfDmmDiode          = c_double(3)
DwfDmmDCVoltage      = c_double(4)
DwfDmmACVoltage      = c_double(5)
DwfDmmDCCurrent      = c_double(6)
DwfDmmACCurrent      = c_double(7)
DwfDmmDCLowCurrent   = c_double(8)
DwfDmmACLowCurrent   = c_double(9)
DwfDmmTemperature    = c_double(10)

AnalogOutNodeCarrier  = c_int(0)
AnalogOutNodeFM       = c_int(1)
AnalogOutNodeAM       = c_int(2)

DwfAnalogOutIdleDisable  = c_int(0)
DwfAnalogOutIdleOffset   = c_int(1)
DwfAnalogOutIdleInitial  = c_int(2)

DwfDigitalInClockSourceInternal = c_int(0)
DwfDigitalInClockSourceExternal = c_int(1)

DwfDigitalInSampleModeSimple   = c_int(0)
# alternate samples: noise|sample|noise|sample|...
# where noise is more than 1 transition between 2 samples
DwfDigitalInSampleModeNoise    = c_int(1)

DwfDigitalOutOutputPushPull   = c_int(0)
DwfDigitalOutOutputOpenDrain  = c_int(1)
DwfDigitalOutOutputOpenSource = c_int(2)
DwfDigitalOutOutputThreeState = c_int(3)

DwfDigitalOutTypePulse      = c_int(0)
DwfDigitalOutTypeCustom     = c_int(1)
DwfDigitalOutTypeRandom     = c_int(2)
DwfDigitalOutTypeROM        = c_int(3)
DwfDigitalOutTypeState      = c_int(4)
DwfDigitalOutTypePlay       = c_int(5)

DwfDigitalOutIdleInit     = c_int(0)
DwfDigitalOutIdleLow      = c_int(1)
DwfDigitalOutIdleHigh     = c_int(2)
DwfDigitalOutIdleZet      = c_int(3)

DwfAnalogImpedanceImpedance         = c_int(0)
DwfAnalogImpedanceImpedancePhase    = c_int(1)
DwfAnalogImpedanceResistance        = c_int(2)
DwfAnalogImpedanceReactance         = c_int(3)
DwfAnalogImpedanceAdmittance        = c_int(4)
DwfAnalogImpedanceAdmittancePhase   = c_int(5)
DwfAnalogImpedanceConductance       = c_int(6)
DwfAnalogImpedanceSusceptance       = c_int(7)
DwfAnalogImpedanceSeriesCapacitance = c_int(8)
DwfAnalogImpedanceParallelCapacitance = c_int(9)
DwfAnalogImpedanceSeriesInductance  = c_int(10)
DwfAnalogImpedanceParallelInductance = c_int(11)
DwfAnalogImpedanceDissipation       = c_int(12)
DwfAnalogImpedanceQuality           = c_int(13)
DwfAnalogImpedanceVrms              = c_int(14)
DwfAnalogImpedanceVreal             = c_int(15)
DwfAnalogImpedanceVimag             = c_int(16)
DwfAnalogImpedanceIrms              = c_int(17)
DwfAnalogImpedanceIreal             = c_int(18)
DwfAnalogImpedanceIimag             = c_int(19)

DwfParamUsbPower        = c_int(2) # 1 keep the USB power enabled even when AUX is connected, Analog Discovery 2
DwfParamLedBrightness   = c_int(3) # LED brightness 0 ... 100%, Digital Discovery
DwfParamOnClose         = c_int(4) # 0 continue, 1 stop, 2 shutdown
DwfParamAudioOut        = c_int(5) # 0 disable / 1 enable audio output, Analog Discovery 1, 2
DwfParamUsbLimit        = c_int(6) # 0..1000 mA USB power limit, -1 no limit, Analog Discovery 1, 2
DwfParamAnalogOut       = c_int(7) # 0 disable / 1 enable
DwfParamFrequency       = c_int(8) # Hz
DwfParamExtFreq         = c_int(9) # Hz
DwfParamClockMode       = c_int(10) # 0 internal, 1 output, 2 input, 3 IO

# obsolate
#STS
stsRdy		= c_ubyte(0)
stsArm		= c_ubyte(1)
stsDone		= c_ubyte(2)
stsTrig		= c_ubyte(3)
stsCfg		= c_ubyte(4)
stsPrefill	= c_ubyte(5)
stsNotDone	= c_ubyte(6)
stsTrigDly	= c_ubyte(7)
stsError	= c_ubyte(8)
stsBusy		= c_ubyte(9)
stsStop		= c_ubyte(10)

#TRIGCOND
trigcondRisingPositive   = c_int(0)
trigcondFallingNegative  = c_int(1)

#use deiceid
enumfilterEExplorer  = c_int(1)
enumfilterDiscovery  = c_int(2)
enumfilterDiscovery2 = c_int(3)
enumfilterDDiscovery = c_int(4)