aPCI-8806 Windows 9x/Windows NT4.0/Windows 2000 API dl

ADTEK SYSTEM SCIENCE Co.,Ltd.
=============================================================================================

ڎ
1.  Tv
2.  
3.  vO\
4.  񎖍
5.  ̑̒
6.  API t@X
  6.1.  Apci8806GetVersion
  6.2.  Apci8806Create
  6.3.  Apci8806Close
  6.4.  Apci8806GetResource
  6.5.  Apci8806SetData
  6.6.  Apci8806GetLastError
  6.7.  Apci8806GetCH
7.  `
  7.1.  G[R[h
  7.2.  萔

=============================================================================================

1.  Tv

=============================================================================================

      {́AaPCI-8806 p[UJ API _Ci~bNNCuiȉ
      uDLLvjxŒ`܂B
      foCXhCȍڍׂɂĂ͐GĂ܂B
      ȂAP DLL  aPCI-8806 𐧌䂵܂B

=============================================================================================

2.  

=============================================================================================

      {Œ` API ́AWindows 9x/Windows NT4.0/Windows 2000 ōő 
      16 ܂ł aPCI-8806iȉufoCXvj𐧌䂵܂B

=============================================================================================

3.  vO\

=============================================================================================

      {Œ` API ͒P̃foCXhCo 
      Eapci8806.vxdiWindows 9xj
      Eapci8806.sysiWindows NT4.0j
      Eapci8806.sysiWindows 2000j
      сAL 3 ɑΉ_Ci~bNNCu
      Eapci8806.dlliWindows 9xŁj
      Eapci8806.dlliWindows NT4.0Łj
      Eapci8806.dlliWindows 2000Łj
      ɂ܂B

=============================================================================================

4.  񎖍

=============================================================================================

      @  dWɊւݒ͂܂BAvP[Ṽxłs܂B

      A  MSB ]@\̓T|[g܂B

=============================================================================================

5.  ̑̒

=============================================================================================

    @  1 ̃AvP[V畡̃foCX𐧌\łB

    A  efoCX͂ꂼʁX̃AvP[Vł̐\łB

=============================================================================================

6.  API t@X

=============================================================================================

      ȉ API gp܂B

      Apci8806GetVersion     o[W擾
      Apci8806Create         foCX̎gp錾
      Apci8806Close          foCX̊J
      Apci8806GetResource    \[X̎擾
      Apci8806SetData        o̓f[^̐ݒ
      Apci8806GetLastError   G[R[h擾
      Apci8806GetCH          O͏Ԃ̎擾

---------------------------------------------------------------------------------------------

6.1. Apci8806GetVersion

---------------------------------------------------------------------------------------------

  API       Apci8806GetVersion

  @\        o[W擾

  `        BOOL Apci8806GetVersion
                (
                      PDWORD pdwDllVer,    //DLL ̃o[W
                      PDWORD pdwDrvVer     //DRIVER ̃o[W
                );

          pdwDllVer
                    DLL ̃o[Wԍi[̈ւ̃|C^B
                    NULL B

                pdwDrvVer
                    foCXhCõo[Wԍi[̈ւ̃|C^B
                    NULL B

  o        *pdwDllVer
                    DLL ̃o[WԍB

                *pdwDrvVer
                    foCXhCõo[WԍB

  ߂l      API IAsԂ܂B

                    FALSE      s
                    TRUE       I

          DLL  foCXhCõo[Wԍ擾B

  G[      APCI8806_ERR_SYSTEM        //Windows  GetLastError() R[ĂB
                                           //̃tH_ɃhCoȂ\܂B

---------------------------------------------------------------------------------------------

6.2.  Apci8806Create

---------------------------------------------------------------------------------------------

  API       Apci8806Create

  @\        foCX̎gp錾

  `        BOOL Apci8806Create
                (
                    PWORD pwLogSlot,   //_Xbgw
                );

          *pdwLogSlot
                    gpfoCXw肵܂B_Xbgԍ 0 n܂܂B
                    APCI8806_SLOT_AUTO w肵ꍇAgp\Ș_XbgT܂B
                    łɃAvP[VɂgpĂfoCX̓XLbv܂B
                    ȌAAvP[V͂̒lŃfoCXʂ܂

  o        *pwLogSlot
                    gp\ȃfoCXꍇ́A̘_Xbgԍi[܂B
                    ȂꍇA̒l͖łB

  ߂l      API IAsԂ܂B

                    FALSE      s
                    TRUE       I

          Xbgɑ݂Ăł낤foCXAAvP[Vgp邱Ƃf
                oCXhCoɒʒm܂BXbgɃfoCX݂ĂȂꍇ́AG[
                ƂȂ܂BXbg̃foCXłɑ̃AvP[VŎgpĂ
                ꍇG[ƂȂ܂BɂA1 ̃foCX͒P̃AvP[V
                rIɎgp܂B
  G[      APCI8806_ERR_SYSTEM            //Windows  GetLastError() R[Ă
                APCI8806_ERR_NO_DEVICE         //gp\ȃfoCX܂
                                               //iAPCI8806_SLOT_AUTO w肵ꍇjB
                APCI8806_ERR_IN_USE            //w̃foCX͎gpłB
                APCI8806_ERR_INVALID_ARGUMENT  //pwLogSlot  NULL łB

                 API sꍇAApci8806GetLastError()  wLogSlot ɂ APCI8806_SLOT
                _AUTO w肵ĂB

---------------------------------------------------------------------------------------------

6.3.  Apci8806Close

---------------------------------------------------------------------------------------------

  API       Apci8806Close

  @\        foCXJ

  `        BOOL Apci8806Close
                (
                      WORD wLogSlot,      //_Xbgw
                );

          wLogSlot
                    ̃foCXJ܂B

  ߂l      API IAsԂ܂B

                    FALSE      s
                    TRUE       I

          AvP[VfoCX̎gpIAfoCX𑼂̃AvP[VɊJ
                邱ƂfoCXhCoɒʒm܂B
                AvP[VIOɕK API ĂяoĂB

  G[      APCI8806_ERR_SYSTEM            //Windows  GetLastError() R[Ă
                APCI8806_ERR_INVALID_SLOT      //Ș_XbgłB

---------------------------------------------------------------------------------------------

6.4.  Apci8806GetResource

---------------------------------------------------------------------------------------------

  API       Apci8806GetResource

  @\        \[X擾

  `
                BOOL Apci8806GetResource
                (
                      WORD wLogSlot,       //_Xbgw
                      PAPCI8806R pres      //\[X
                );

                #define APCI8806_MAX_MEM  9
                #define APCI8806_MAX_IO   20
                #define APCI8806_MAX_IRQ  7

                typedef struct_APCI8806RESOURCE
                {
                    DWORD    dNumMemWindows;                           /* Not used */
                    DWORD    dMemBase          [APCI8806_NMAX_MEM];    /* Not used */
                    DWORD    dMemLength        [APCI8806_NMAX_MEM];    /* Not used */
                    DWORD    dMemAttrib        [APCI8806_NMAX_MEM];    /* Not used */
                    DWORD    dNumIOPorts;                              /* Num IO ports */
                    DWORD    dIOPortBase       [APCI8806_NMAX_IO];     /* I/O port base */
                    DWORD    dIOPortLength     [APCI8806_NMAX_IO];     /* I/O port length */
                    DWORD    dNumIRQs;                                 /* Not used */
                    DWORD    dNumIRQRegisters  [APCI8806_NMAX_IRQ];    /* Not used */
                    DWORD    dIRQAttrib        [APCI8806_NMAX_IRQ];    /* Not used */
                    DWORD    NumDMAs;                                  /* Not used */
                    DWORD    bDMALst           [APCI8806_NMAX_DMA];    /* Not used */
                    DWORD    wDMAAttrib        [APCI8806_NMAX_DMA];    /* Not used */
                    DWORD    dReserved1        [3];                    /* Not used */
                }      APCI8806RESOURCE,*PAPCI8806R;


          wLogSlot
                    foCXwB

                pres
                    \[Xi[̈ւ̃|C^B
                    NULL ͕sB

  o        *pres
                    蓖ĂĂ郊\[X̏B

  ߂l      API IAsԂ܂B

                    FALSE      s
                    TRUE       I

          wLogSlot Ŏw肳ꂽfoCXɊ蓖ĂĂ郊\[XA\pɎ擾
                ܂B
  G[      APCI8806_ERR_INVALID_SLOT            //Ș_XbgłB
                APCI8806_ERR_INVALID_ARGUMENT        //pres  NULL łB
                APCI8806_ERR_NOT_CREATE              //foCXNGCgĂ܂B

---------------------------------------------------------------------------------------------

6.5. Apci8806SetData

---------------------------------------------------------------------------------------------

  API       Apci8806SetData

  @\        o̓f[^̐ݒ

  `        BOOL Apci8806SetData
                (
                      WORD   wLogSlot,      //_Xbgw
                      WORD   wChData,       // CH ̎w 0`3
                      WORD   wDaData        //D/A ւ̃_CNgf[^
                );

          wLogSlot
                    ̃foCXɃf[^Zbg܂B

                wChData
                     CH ̎w 0`3

                wDaData
                    D/A ւ̃_CNgf[^

  ߂l      API IAsԂ܂B

                    FALSE      s
                    TRUE       I

          wLogSlot Ŏw肳ꂽfoCX CH f[^ D/A ̏o̓f[^݂܂B

  G[      APCI8806_ERR_INVALID_SLOT            //Ș_XbgłB
                APCI8806_ERR_NOT_CREATE              //foCXNGCgĂ܂

---------------------------------------------------------------------------------------------

6.6.Apci8806GetLastError

---------------------------------------------------------------------------------------------

  API       Apci8806GetLastError

  @\        G[R[h擾

  `        DWORD Apci8806GetLastError
                (
                      WORD wLogSlot            //bZ[W󂯎EBhEnh
                 );

          wLogSlot
                    ̃foCX̂ƂŋߋNG[̃R[h擾܂BfoCX
                    ˑȂG[ wLogSlot ̔ԍɊւ炸擾܂B

  ߂l      G[R[h

          ƂŋߋNG[̃R[h擾܂B

---------------------------------------------------------------------------------------------

6.7.  Apci8806GetCH

---------------------------------------------------------------------------------------------

  API       Apci8806GetCH

  @\        

  `        BOOL Apci8806GetCH
                (
                      WORD wLogSlot,         //_Xbgw
                      PDWORD pdwCH1,         //CH1 ̏
                      PDWORD pdwCH2          //CH2 ̏
                );

          wLogSlot
                    ̃foCX̊O̓|[gԂ̎擾܂B

                pdwCH1
                    {[h CH1 ̏Ԃ擾܂B0...OFF  0ȊO...ON

                pdwCH2
                    {[h CH2 ̏Ԃ擾܂B0...OFF  0ȊO...ON

  ߂l      API IAsԂ܂B

                    FALSE      s
                    TRUE       I

  G[      APCI8806_ERR_INVALID_SLOT            //Ș_XbgłB

=============================================================================================

7.  `

=============================================================================================

7.1  G[R[h

    Apci8806GetLastError Ŏ擾G[R[hłB

#define APCI8806_SUCCESS                0  // ُȂiIj
#define APCI8806_ERR_SYSTEM             1  // Windows  GetLastError() R[Ă
#define APCI8806_ERR_NO_DEVICE          2  // gp\ȃfoCX܂
#define APCI8806_ERR_IN_USE             3  // w̃foCX͎gpł
#define APCI8806_ERR_INVALID_SLOT       4  // Ș_Xbgł
#define APCI8806_ERR_RESOURCE           5  // \[XG[
#define APCI8806_ERR_INVALID_POR    T   6  // sȃ|[gv
#define APCI8806_ERR_INVALID_ARGUMENT   7  // sȈv܂
#define APCI8806_ERR_CHANNEL            10 // `lݒ肪sł
#define APCI8806_ERR_TIMEOUT            11 // f[^o͂Ɏs܂

---------------------------------------------------------------------------------------------

7.2.  萔

#define APCI8806_SLOT_AUTO    ((WORD) ~0U)
#define APCI8806_MAX_SLOTS    16
