AXDDU.TXT Driver File Contents (AS59099V2_0.zip)

================================
AXIOMTEK DAS Device Utility for DOS
===========================1.1==

I.INTRODUCTION
II.USER'S GUIDE - HOW TO USE DevUtil
III.PROGRAM DEVELOPMENT HINT
IV.FUNCTION REFERENCE


I.INTRODUCTION
--------------
   AXIOMTEK DAS Device Utility(DevUtil) works as a diagnostic program for all AXIOMTEK
   data acquisition devices as well as an illustration program for users who
   want to make some coding with these devices.

   The main purpose of this document is to describe how AXDDU, source code of
   DevUtil, calls the driver function properly inside the AXIOMTEK Device Driver
   (AXDDR). With the general description on section III 'PROGRAM DEVELOPMENT
   HINT', you'll find out exactly how AXDDU works with AXDDR. For more details
   on each function call, please refer to section III 'DRIVER FUNCTION
   REFERENCE' contained in the AXDDR documents,'AXDDR.TXT'.


II.HOW TO USE DevUtil
-------------------
   1. Introduction of DevUtil
      DevUtil diagnose one device during one process time. A process time is the
      time period from the START of the executed function, such as Analog Input,
      when the user press "Alt+R", to the STOP when the user press any key.

      The supported devices will be shown at the "Device/Install" sub-menu. Be
      sure to setup the installed device's configurations in the setup dialog
      box, according to it's hardware setting, such as jumper setting or switch
      setting. Follow the step-by-step tutorial to learn how to working with
      DevUtil.

   2.Step-by-Step tutorial
      a. Execute the DevUtil:
         Under the DOS command prompt, within the same working directory of
         'DEVUTIL.EXE', type "devutil" and press [ENTER].

         Note that the sub-directories '\PIN', '\BRD', and '\HELP' should also
         be found in the same working directory.

      b. Install a device:
         When the DevUtil executed, an "About..." dialog box will appear. Simply
         press any key to close the dialog box, and choose a device that you
         wish to diagnose from the "Device/Install" sub-menu.

         To select a menu item on the main-menu, press [F10] and the program
         will highlights the menu item on it. Use the [LEFT], [RIGHT], [UP], and
         [DOWN] arrow keys to select the menu item you want to invoke and then
         press [ENTER].

      c. Setup the device:
         After choosing and installing a device, the device's board figure will
         be shown on the client window with some information shown above it. The
         pin assignment will also appear on the left corner of the screen.

         To setup or change the state of the device, press "Alt+S" and a
         'blue-background-colored' setup screen pops up. Use the [TAB], [PageUp]
         and [PageDown] on the keyboard to change and set the device's
         configurations. Press [ESC] if setup is completed.

      d. Diagnose the device:
         Press "Alt+E" and select a function from the "Experiment" menu.

         To start/run the diagnostic function, press "Alt+R".

         To stop the function, press any key. In some cases, you will need to
         press [SPACE] bar to test the next channel.

      e. Re-setting the device:
         If you want to change the device's setting without having to re-install
         it again. Choose the "Device/Setting" menu item. The device's board
         figure will shown with previous setting you made on it.

      f. Stop and exit the utility:
         To terminate the utility, choose "eXit" menu item or simply press
         "Alt+X".


III.PROGRAM DEVELOPMENT HINT
----------------------------
   1. General Description of AXDDU
      The main purpose of AXDDU is to illustrate the calling conventions of the
      device driver, AXDDR, as well as a demo program about how to call the
      driver in user's application under DOS.

      The source code written in C language will be found under the directory
      '\AXDDU' with three necessary sub-directories, '\BRD', '\PIN', and 'HELP',
      in it. The kernel about the driver function calls, i.e. how AXDDU calls
      functions of AXDDR, presented in the file - 'DRV.C', while the other
      miscellaneous parts of AXDDU provided as a library file - 'AXDDU_L.LIB'.
      The include file, 'AXDDU.H', also provided here for use with the project.

      Please make sure that all the sub-directories, '\BRD', '\PIN', and '\HELP'
      , with binary files located in it, will also be available in the same
      working directory of AXDDU.

      For Turbo C users, please make sure your Turbo C compiler will be found at
      directory '\TC' under the same root directory of AXDDU. For example,
         IF your project location - 'C:\DEVUTIL\ISABUS\AXDDU' THEN
         the compiler will be at  - 'C:\TC', 'C:\TC\LIB', 'C:\TC\INCLUDE'
      otherwise you'll have to change the Torbo C options/directories setting.

      For Microsoft C users, please refer to '..\TCTOMSC.TXT' documents.

   2. Program Structure of AXDDU - 'DRV.C'
      There are several routines in AXDDU. Each routines has function name
      begins with "DRV_...". All these routines will be called by the kernel of
      AXDDU during the process time, when user START and STOP the experiments of
      DevUtil. The calling procedure will be:

         START of the Experiment (when user press 'Alt+R')
            |
         DRV_Initialize
            |
         DRV_AnalogInput, DRV_AnalogOutput,... DRV_Temperature. (experiment...)
            |
         STOP of the Experiment (when user press any key to stop)
            |
         DRV_Terminate

      Each routines receives the parameters from kernel of AXDDU and then pass
      it to the driver functions of AXDDR. No matter which experiment is going
      to be diagnosed, DRV_Initialize() will be called by the kernel at the
      beggin of the process time, while DRV_Terminate() will be called by the
      kernel at the end of the process time.

      Different devices will have their own function calls. And these function
      calls all begin with the name look like 'ax...', such as axOOOOInit(), for
      information about the function calls to AXDDR, refer to 'AXDDR.TXT'.

      The utility separates the diagnostic functions into following sections:

         DRV_AnalogInput, DRV_AnalogInput_IRQ - Analog Input
         DRV_AnalogOutput - Analog Output
         DRV_DigitalInput, DRV_DigitalInput_IRQ - Digital Input
         DRV_DigitalOutput - Digital Output
         DRV_EventCount - Event Counting
         DRV_FrequencyIO - Frequency Measurement and Wave Form Generating
         DRV_Temperature - Temperature Measurement.

       The programming sequence of each function is described in the following
       section.

   3. Analog Input
      There are three kinds of analog input methods:

      a. Analog Input - software triggered, software polling
      b. Analog Input - hardware triggered, interrupt retrieve method.
      c. Analog Input - hardware triggered, DMA retrieve method.

      No matter which of the above methods was invoked, we should call the
      device's axOOOOInit() driver function at DRV_Initialize() to initialize
      both the device and driver, and call the device's axOOOOTerm() driver
      function at DRV_Terminate() to terminate the device driver.

      The difference is that when performing interrupt(or DMA) function, we
      should call, for example, axOOOOIRQStart() at DRV_Initialize() right after
      a call to axOOOOInit(). And call axOOOOIRQStop() at DRV_Terminate() right
      before a call to axOOOOTerm().

      As for DRV_AnalogInput, DRV_AnalogInput_IRQ, and DRV_AnalogInput_DMA, what
      we have to do is to retrieve the data and  display it on the screen.

   4. Analog Output
      When performing AO function, call axOOOOInit() at DRV_Initialize(), and
      call axOOOOTerm() at DRV_Terminate() as described above.

      Within DRV_AnalogOutput() routine, call driver's analog output function to
      output an analog signal to a specified channel. The kernel of AXDDU will
      then waitting for the user to measure the status of that specified channel
      , or choose to stop the experiment as well as scan to the next channel.

   5. Digital Input
      When performing DI function, call axOOOOInit() at DRV_Initialize(), and
      call axOOOOTerm() at DRV_Terminate() as described above.

      Within the DRV_DigitalInput() routin, call the driver's digital input
      function, either axOOOODI() or axOOOODI_P(), to retrieve the channel
      status and display it on the screen until the user chooses to stop it.

      Some devices generate an interrupt while changing the state of the
      specified channel. In this case, we can specify the interrupt service
      routine and call axOOOOIRQSetting() at DRV_Initialize() to set the ISR
      vector. Remember to restore the old ISR vector before calling axOOOOTerm()
      at DRV_Terminate().

      In DRV_DigitalInput_IRQ(), we simulate an external signal to change the
      state of the specified channel that will cause a generating of interrupt.
      Every time when the interrupt is generated, our ISR will increase a
      notifying flag that willl then shown on the screen. For some PCI or
      CompactPCI devices, the simulated signal should also be set in ISR, or the
      service routine will not return.

   6. Digital Output
      When performing DO function, call axOOOOInit() at DRV_Initialize(), and
      call axOOOOTerm() at DRV_Terminate() as described above.

      Within the DRV_DigitalOutput() routine, call the driver's digital output
      function (either axOOOODO or axOOOODO_P) to output a signal to a specified
      channel. The kernel will then waitting for the user to measure the status
      of that specified channel, or choose to stop the experiment.

   7. Event Count
      When performing the function, call axOOOOInit() at DRV_Initialize(), and
      call axOOOOTerm() at DRV_Terminate() as described above.

      Call axOOOOEventCount() at DRV_Initialize(), to setup a channel for event
      counting. If the device also has the ability of generating interrupts,
      call axOOOOIRQSetting() here to setup the ISR vector, and, of course, call
      axOOOOIRQRestore() at DRV_Terminate() to restore the old ISR.

      Within DRV_EventCount() routine, call axOOOOReadCnt() to read back the
      content of the counter and display the result onto the screen.

   8. Frequency Measurement
      When performing the function, call axOOOOInit() at DRV_Initialize(), and
      call axOOOOTerm() at DRV_Terminate() as described above.

      Call axOOOOWaveGen() at DRV_Initialize() to generate a wave form for
      measurement, or maybe you don't want.

      Within DRV_FrequencyIO() routine, call axOOOOFrequency() to measure the
      frequency.

   9. Temperature Measurement
      When performing the function, call axOOOOInit() at DRV_Initialize(), and
      call axOOOOTerm() at DRV_Terminate() as described above.

      Within DRV_Temperature() routine, simply call axOOOOTemp() to measure the
      temperature and shows the data onto the screen.


IV.FUNCTION REFERENCE
---------------------
   This section will describes all the main routines of AXDDU, which might also
   be thought of as user's application program. The detailed information of each
   routines will be discussed here:

Function:
   DRV_Initialize

Description:
   Initializes the device.

   int DRV_Initialize(WORD DevNo,
                      LPDEVCFG lpDevCfg,
                      LPDEVATBU lpDevAtbu,
                      int Func);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device attribute
   Func: Function ID

Remarks:
   This function is invoked each time the user starts the diagnostic experiment.
   lpDevCfg and lpDevAtbu point to the device's configuration and attribute
   structure, which will be used as the parameter to call the driver(AXDDR).
   Func specifies which diagnostic function is selected by user. The value of
   Func will be any of the following:

   IDC_ANALOGINPUT
   IDC_ANALOGINPUT_IRQ
   IDC_ANALOGINPUT_DMA
   IDC_ANALOGOUTPUT
   IDC_DIGITALINPUT
   IDC_DIGITALINPUT_IRQ
   IDC_DIGITALOUTPUT
   IDC_EVENTCOUNT
   IDC_FREQUENCY
   IDC_TEMPERATURE

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_Terminate

Description:
   Terminates the device.

   int DRV_Terminate(WORD DevNo,
                     LPDEVCFG lpDevCfg,
                     LPDEVATBU lpDevAtbu,
                     int Func);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device attribute
   Func: Function ID

Remarks:
   This function will be called when the user stops the diagnostic experiment.
   lpDevCfg and lpDevAtbu point to the device's configuration and attribute
   structure, which will be used as the parameter to call the driver(AXDDR).
   Func specifies which diagnostic function is selected by user. The value of
   Func will be any of the following:

   IDC_ANALOGINPUT
   IDC_ANALOGINPUT_IRQ
   IDC_ANALOGINPUT_DMA
   IDC_ANALOGOUTPUT
   IDC_DIGITALINPUT
   IDC_DIGITALINPUT_IRQ
   IDC_DIGITALOUTPUT
   IDC_EVENTCOUNT
   IDC_FREQUENCY
   IDC_TEMPERATURE

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_AnalogInput

Description:
   Analog Input function.

   int DRV_AnalogInput(WORD DevNo,
                       LPDEVCFG lpDevCfg
                       LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function calls the device driver's analog input function, and shows the
   data read until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_AnalogInput_IRQ

Description:
   Analog Input function via interrupt.

   int DRV_AnalogInput_IRQ(WORD DevNo,
                           LPDEVCFG lpDevCfg,
                           LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration.
   lpDevAtbu: Pointer to structure of device's attribute.

Remarks:
   This function invokes the driver's analog input via interrupt function, and
   shows the data read until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_AnalogInput_DMA

Description:
   Analog Input function via DMA.

   int DRV_AnalogInput_DMA(WORD DevNo,
                           LPDEVCFG lpDevCfg,
                           LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function invokes the driver's analog input via DMA function, and
   shows the data read until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_AnalogOutput

Description:
   Analog Output function.

   int DRV_AnalogOutput(WORD DevNo,
                        LPDEVCFG lpDevCfg,
                        LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbuL: Pointer to structure of device's attribute

Remarks:
   This function invokes the driver's analog output function, and shows the data
   output until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_DigitalInput

description:
   Digital Input function.

   int DRV_DigitalInput(WORD DevNo,
                        LPDEVCFG lpDevCfg,
                        LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function invokes the driver's digital input function, and shows the data
   read until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_DigitalInput_IRQ

Description:
   Digital Input function with interrupt.

   int DRV_DigitalInput_IRQ(WORD DevNo,
                            LPDEVCFG lpDevCfg,
                            LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function simulate an external signal to a specified channel that can
   generate interrupts, and shows the notifying flag that the interrupt service
   routine modified on the screen until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_DigitalOutput

Description:
   Digital Output function.

   int DRV_DigitalOutput(WORD DevNo,
                         LPDEVCFG lpDevCfg,
                         LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function invokes the driver's digital output function, and shows the
   data output until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_EventCount

Description:
   Event Countung function.

   int DRV_EventCount(WORD DevNo,
                      LPDEVCFG lpDevCfg,
                      LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function invokes the driver's event counting function, and shows the
   counter content until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_FrequencyIO

Description:
   Frequency measurement function.

   int DRV_FrequencyIO(WORD DevNo,
                       LPDEVCFG lpDevCfg,
                       LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function invokes the driver's frequency measurement function, and shows
   the data read until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.


Function:
   DRV_Temperature

Description:
   Frequency measurement function.

   int DRV_Temperature(WORD DevNo,
                       LPDEVCFG lpDevCfg,
                       LPDEVATBU lpDevAtbu);
   DevNo: Device ID specified for each AXIOMTEK DAS device
   lpDevCfg: Pointer to structure of device configuration
   lpDevAtbu: Pointer to structure of device's attribute

Remarks:
   This function invokes the driver's temperature measurement function, and
   shows the data read until the user chooses to stop the experiment.

Return Values:
   This function should returns an error code for kernel of AXDDU to determine
   whether an error is occur or not. If no error occurred, the return value
   will be 0. Otherwise, the return value is non-zero, and the program will be
   terminated.
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web5, load: 0.65