Example #1
0
def SetDO(NoDev, NoSubDev, Name):
    #Get number of lines
    meNumberChannels = meDriver.meQueryNumberChannels(NoDev, NoSubDev)
    #Get CAPS (capability flags)
    meCAPS = meDriver.meQuerySubdeviceCaps(NoDev, NoSubDev)
    #Configure output type
    if (meCAPS & meDriver.ME_CAPS_DIO_SINK_SOURCE) == meDriver.ME_CAPS_DIO_SINK_SOURCE:
        #User has to shows hardware configuration
        DIO_Output_Type = GetOutputType(NoDev, NoSubDev, Name)
    else:
        #Use default
        DIO_Output_Type = meDriver.ME_SINGLE_CONFIG_DIO_OUTPUT

    #Configure sub-device for output
    meDriver.meIOSingleConfig(NoDev, NoSubDev, 0, DIO_Output_Type, meDriver.ME_REF_NONE, meDriver.ME_TRIG_CHAN_NONE, meDriver.ME_TRIG_TYPE_NONE, meDriver.ME_TRIG_EDGE_NONE, meDriver.ME_IO_SINGLE_NO_FLAGS)
    for meNoChannels in range(meNumberChannels):
        #Write to sub-device
        SingleDict = {
            'Device':   NoDev,
            'Subdevice':    NoSubDev,
            'Channel':  0,
            'Dir':      meDriver.ME_DIR_OUTPUT,
            'Value':    0x01 << meNoChannels,
            'TimeOut':  meDriver.ME_VALUE_NOT_USED,
            'Flags':    meDriver.ME_IO_SINGLE_TYPE_NO_FLAGS,
            'Errno':    0
        }
        SingleList = [SingleDict]
        meDriver.meIOSingle(SingleList, meDriver.ME_IO_SINGLE_NO_FLAGS)
        #Read back
        GetDO(NoDev, NoSubDev, Name)
        time.sleep(1)
Example #2
0
def SetAO(NoDev, NoSubDev, NoChannel):
    #Get maximalaceppted value
    #Using range 0
    (iUnit, dMin, dMax, iMaxData) = meDriver.meQueryRangeInfo(NoDev, NoSubDev, 0)
    STEPS = 9
    step = (dMax-dMin)/(STEPS-1)

    #Configure sub-device for output
    meDriver.meIOSingleConfig(NoDev, NoSubDev, NoChannel, 0,  meDriver.ME_REF_AO_GROUND, meDriver.ME_TRIG_CHAN_DEFAULT, meDriver.ME_TRIG_TYPE_SW, meDriver.ME_TRIG_EDGE_NONE, meDriver.ME_IO_SINGLE_NO_FLAGS)
    for i in range(STEPS):
        #Write to sub-device
        SingleDict = {
            'Device':   NoDev,
            'Subdevice':    NoSubDev,
            'Channel':  NoChannel,
            'Dir':      meDriver.ME_DIR_OUTPUT,
            'Value':    meDriver.meUtilityPhysicalToDigital(dMin, dMax, iMaxData, dMin + (step * i)),
            'TimeOut':  meDriver.ME_VALUE_NOT_USED,
            'Flags':    meDriver.ME_IO_SINGLE_TYPE_NO_FLAGS,
            'Errno':    0
        }
        SingleList = [SingleDict]
        meDriver.meIOSingle(SingleList, meDriver.ME_IO_SINGLE_NO_FLAGS)
        print "Device [%d:%d/%d] SET:%f(0x%x)" % (NoDev, NoSubDev, NoChannel,  dMin + (step * i),  SingleList[0]['Value'])
        #Read back
        GetAO(NoDev, NoSubDev, NoChannel)
        time.sleep(1)
Example #3
0
def GetDO(NoDev, NoSubDev, Name):
    #Read from sub-device
    SingleDict = {
        'Device':   NoDev,
        'Subdevice':    NoSubDev,
        'Channel':  0,
        'Dir':      meDriver.ME_DIR_INPUT,
        'Value':    0,
        'TimeOut':  meDriver.ME_VALUE_NOT_USED,
        'Flags':    meDriver.ME_IO_SINGLE_TYPE_NO_FLAGS,
        'Errno':    0
    }
    SingleList = [SingleDict]
    meDriver.meIOSingle(SingleList, meDriver.ME_IO_SINGLE_NO_FLAGS)
    print "Device %d: %s%d value=0x%x" % (NoDev, Name, NoSubDev, SingleList[0]['Value'])
Example #4
0
def GetDI(NoDev, NoSubDev, Name):
    #Configure sub-device for input
    meDriver.meIOSingleConfig(NoDev, NoSubDev, 0, meDriver.ME_SINGLE_CONFIG_DIO_INPUT, meDriver.ME_REF_NONE, meDriver.ME_TRIG_CHAN_NONE, meDriver.ME_TRIG_TYPE_NONE, meDriver.ME_TRIG_EDGE_NONE, meDriver.ME_IO_SINGLE_NO_FLAGS)
    #Read from sub-device
    SingleDict = {
        'Device':   NoDev,
        'Subdevice':    NoSubDev,
        'Channel':  0,
        'Dir':      meDriver.ME_DIR_INPUT,
        'Value':    0,
        'TimeOut':  meDriver.ME_VALUE_NOT_USED,
        'Flags':    meDriver.ME_IO_SINGLE_TYPE_NO_FLAGS,
        'Errno':    0
    }
    SingleList = [SingleDict]
    meDriver.meIOSingle(SingleList, meDriver.ME_IO_SINGLE_NO_FLAGS)
    print "Device %d: %s%d value=0x%x" % (NoDev, Name, NoSubDev, SingleList[0]['Value'])
Example #5
0
def GetAO(NoDev, NoSubDev, NoChannel):
    #Using range 0
    (iUnit, dMin, dMax, iMaxData) = meDriver.meQueryRangeInfo(NoDev, NoSubDev, 0)
    #Read from sub-device
    SingleDict = {
        'Device':   NoDev,
        'Subdevice':    NoSubDev,
        'Channel':  NoChannel,
        'Dir':      meDriver.ME_DIR_INPUT,
        'Value':    0,
        'TimeOut':  meDriver.ME_VALUE_NOT_USED,
        'Flags':    meDriver.ME_IO_SINGLE_TYPE_NO_FLAGS,
        'Errno':    0
    }
    SingleList = [SingleDict]
    meDriver.meIOSingle(SingleList, meDriver.ME_IO_SINGLE_NO_FLAGS)
    print "Device [%d:%d/%d] GET:%f(0x%x)" % (NoDev, NoSubDev, NoChannel,  meDriver.meUtilityDigitalToPhysical(dMin, dMax, iMaxData, SingleList[0]['Value'], meDriver.ME_MODULE_TYPE_MULTISIG_NONE, 0),  SingleList[0]['Value'])