Sample01: Simple analog input with AIO module
==============================================

This sample reads data from analog input channel 0.

.. code-block:: python


    import pyAPIUSBP
    import time
    import sys

    # Initialize
    try:
        aio = pyAPIUSBP.AIO.AIO('AIO000')
    except:
        print 'AIO000 is not found.'
        sys.exit()

    # Set AI range
    aio.setAiRangeAll(pyAPIUSBP.AIO.PM5)

    if sys.platform == 'win32':
        timefunc = time.clock
    else:
        timefunc = time.time

    startTime = timefunc()
    # Read channel 0 for 10 seconds
    while timefunc()-startTime<10:
        print aio.singleAi(0)
        time.sleep(0.5)


Sample02: Simple digital output with DIO module
================================================

This sample outputs 1-byte data to digital output channel 0.

.. code-block:: python

    import pyAPIUSBP
    import time
    import sys

    # Initialize
    try:
        dio = pyAPIUSBP.DIO.DIO('DIO000')
    except:
        print 'DIO000 is not found.'
        sys.exit()

    if sys.platform == 'win32':
        timefunc = time.clock
    else:
        timefunc = time.time

    startTime = timefunc()
    # Output 255 and 0 alternately for 10 seconds.
    while timefunc()-startTime<10:
        dio.outputByte(0,0)
        print 0
        time.sleep(1)
        dio.outputByte(0,255)
        print 255
        time.sleep(1)


Sample03: Callback
==================================

This is an example of callback function.

.. code-block:: python

    import pyAPIUSBP
    import Tkinter
    import time
    import ctypes
    from ctypes.wintypes import WPARAM, LPARAM

    # Initialize
    aio = pyAPIUSBP.AIO('AIO000')

    # Define callback function
    def showMessageId(id, message, wparam, lparam, param):
        if message==pyAPIUSBP.AIOM_AIE_END:
            print 'AIOM_AIE_END:', lparam
        elif message==pyAPIUSBP.AIOM_AIE_DATA_NUM:
            print 'AIOM_AIE_DATA_NUM:', lparam
        else:
            print message, lparam
        return 0

    # Get prototype of callback function
    callbackPrototype = ctypes.WINFUNCTYPE(ctypes.c_long,
                              ctypes.c_short,
                              ctypes.c_short,
                              ctypes.c_int,
                              ctypes.c_int,
                              ctypes.c_void_p)

    # Get a pointer to the callback function
    callback = callbackPrototype(showMessageId)

    # Register callback function
    aio.setAiCallBackProc(callback,
                          pyAPIUSBP.AIE_END|pyAPIUSBP.AIE_DATA_NUM, 0)

    aio.setAiStopTimes(4000)

    # Start analog input
    aio.startAi()

    time.sleep(5)

    data = aio.getAiSamplingData(100)
    print data