aPCI-P33 Windows 95/98/Me/NT4.0/2000/XP API dl

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

ڎ

1.  Tv
2.  
3.  vO\
4.  APIt@X
4.1.   API
4.1.1.  Apci33GetVersion
4.1.2.  Apci33Create
4.1.3.  Apci33Close
4.1.4.  Apci33GetResource
4.1.5.  Apci33GetSwitchValue
4.2.  I/O API
4.2.1.  Apci33OutPort
4.3.  ̑ API
4.3.1.  Apci33GetLastError
5.  bZ[W
6.  萔
6.1.  G[R[h
6.2.  _|[gԍ萔
6.3.  ̑̒萔


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

1.  Tv

    { aPCI-P33 p[UJ API _Ci~bNNCu
    (ȉuDLLv) xŒ`܂B
    foCXhCȍڍׂɂĂ͐GĂ܂B
    ܂AOCX ɂĂ`܂B
    ȂAP DLL  aPCI-P33 𐧌䂵܂B

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

2.  

    {Œ` API  Windows(R) 95/Windows(R) 98/Windows(R) Me/
    Windows NT(R) 4.0/Windows(R) 2000  Windows(R) XP ōő
    16 ܂ł aPCI-P33 (ȉufoCXv) 𐧌䂵܂B

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

3.  vO\

    {Œ` API ̓foCXhCo
    Eapci33.vxd (Windows 95/98/Me)
    Eapci33.sys (Windows NT4.0)
    Eapci33.sys (Windows 2000/XP)
    сAL 3 ɑΉ_Ci~bNNCu
    Eapci33.dll (Windows 95/98/Me)
    Eapci33.dll (Windows NT4.0)
    Eapci33.dll (Windows 2000/XP)
    ɂ܂B

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

4.  APIt@X

    API ͈ȉ̂悤ɑʂ܂B

        1.   API
        2.  I/O API
        3.  ̑ API

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

4.1.   API

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

4.1.1.  Apci33GetVersion

@\
    o[W擾

`
EVisual C++
BOOL Apci33GetVersion(PDWORD pdwDllVersion, PDWORD pdwDriverVersion);

EVisual Basic
Function Apci33GetVersion(pdwDllVersion As Long, pdwDriverVersion As Long) As Long

EDelphi
function Apci33GetVersion(var pdwDllVersion: DWORD; var pdwDriverVersion: DWORD): BOOL;


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

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

o
    *pdwDllVersion
        DLL ̃o[WԍB

    *pdwDriverVersion
        foCXhCõo[WԍB

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    DLL  foCXhCõo[Wԍ擾܂B
        16Bit@W[o[W
        16Bit@}Ci[o[W

G[
    APCI33_ERR_SYSTEM
        Windows  GetLastError() R[ĂB̃tH_
        ɃhCo̗RŃfoCXhCogݍ܂ĂȂ
        \܂B

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

4.1.2.  Apci33Create

@\
    foCX̎gp錾

`
EVisual C++
#define APCI33_SLOT_AUTO    ((WORD) ~0U)
BOOL Apci33Create(PWORD pwLogSlot);

EVisual Basic
Global Const APCI33_SLOT_AUTO = &HFFFF
Function Apci33Create(pwLogSlot As Integer) As Long

EDelphi
const
    APCI33_SLOT_AUTO    = $ffff;
function Apci33Create(var pwLogSlot: WORD): BOOL;


    *pwLogSlot
        gpfoCX̘_Xbgԍw肵܂B
        Ŏw肷ԍ aPCI-P33 {[h̘_Xbgԍݒ肵܂B
        ܂ APCI33_SLOT_AUTO w肵ꍇAfoCX݂Ă
        _XbgT܂BłɃAvP[Vɂgp
        ĂfoCX̓XLbv܂B

        ȌAAvP[V͂̒lŃfoCXʂ܂B
        NULL ͕sB

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

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    Xbgɑ݂Ăł낤foCXAAvP[Vgp
    邱Ƃ foCXhCoɒʒm܂B
    XbgɃfoCX݂ĂȂꍇ́AG[ƂȂ܂B
    Xbg̃foCXłɑ̃AvP[VŎgpĂ
    ꍇG[ƂȂ܂BɂA1 ̃foCX͒P̃Av
    P[VrIɎgp܂B

    Apci33GetVersion ȊO API ĂяoOɕK API Ăяo
    ĂB

G[
    APCI33_ERR_SYSTEM
        Windows  GetLastError() R[ĂB
    APCI33_ERR_NO_DEVICE
        gp\ȃfoCX܂ (APCI33_SLOT_AUTO w肵ꍇ)B
    APCI33_ERR_IN_USE
        w̃foCX͎gpłB
    APCI33_ERR_INVALID_ARGUMENT
        pwLogSlot  NULL łB

     API sꍇAApci33GetLastError()  wLogSlot ɂ
    APCI33_SLOT_AUTO w肵ĂB

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

4.1.3.  Apci33Close

@\
    foCXJ

`
EVisual C++
BOOL Apci33Close(WORD wLogSlot);

EVisual Basic
Function Apci33Close(ByVal wLogSlot As Integer) As Long

EDelphi
function Apci33Close(wLogSlot: WORD): BOOL;


    wLogSlot
        foCX̘_Xbgԍw肵܂B

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    AvP[VfoCX̎gpIAfoCX𑼂̃AvP[
    VɊJ邱ƂfoCXhCoɒʒm܂B

    AvP[VIOɕK API ĂяoĂB

G[
    APCI33_ERR_SYSTEM
        Windows  GetLastError() R[ĂB
    APCI33_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI33_ERR_NO_CREATE
        foCXNGCgĂ܂B

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

4.1.4.  Apci33GetResource

@\
    \[X擾

`
EVisual C++
#define APCI33_MAX_MEM      9
#define APCI33_MAX_IO       20
#define APCI33_MAX_DMA      7

//ؿ\
typedef struct _APCI33RESOURCE {
    DWORD  dwNumMemWindows;                    // س޳        gp
    DWORD  dwMemBase        [APCI33_MAX_MEM];  // س޳ްڽ gp
    DWORD  dwMemLength      [APCI33_MAX_MEM];  // س޳        gp
    DWORD  dwMemAttrib      [APCI33_MAX_MEM];  // س޳      gp
    DWORD  dwNumIOPorts;                       // I/O߰Đ
    DWORD  dwIOPortBase     [APCI33_MAX_IO];   // I/O߰ްڽ
    DWORD  dwIOPortLength   [APCI33_MAX_IO];   // I/O߰Ē
    DWORD  dwNumDMAs;                          // DMAِ          gp
    DWORD  dwDMALst         [APCI33_MAX_DMA];  // DMAؽ         gp
    DWORD  dwDMAAttrib      [APCI33_MAX_DMA];  // DMAّؽ     gp
    DWORD  dwReserved1      [3];               // \               gp
} APCI33RESOURCE, *PAPCI33R;

BOOL Apci33GetResource(WORD wLogSlot, PAPCI33R pres);

EVisual Basic
Global Const APCI33_MAX_MEM = 9
Global Const APCI33_MAX_IO = 20
Global Const APCI33_MAX_DMA = 7

Type APCI33RESOURCE
    dwNumMemWindows As Long                     ' س޳       gp
    dwMemBase(1 To APCI33_MAX_MEM) As Long      ' س޳ްڽgp
    dwMemLength(1 To APCI33_MAX_MEM) As Long    ' س޳       gp
    dwMemAttrib(1 To APCI33_MAX_MEM) As Long    ' س޳     gp
    dwNumIOPorts As Long                        ' I/O߰Đ
    dwIOPortBase(1 To APCI33_MAX_IO) As Long    ' I/O߰ްڽ
    dwIOPortLength(1 To APCI33_MAX_IO) As Long  ' I/O߰Ē
    dwNumDMAs As Long                           ' DMAِ         gp
    dwDMALst(1 To APCI33_MAX_DMA) As Long       ' DMAؽ        gp
    dwDMAAttrib(1 To APCI33_MAX_DMA) As Long    ' DMAّؽ    gp
    dwReserved1(1 To 3) As Long                 ' \              gp
End Type

Function Apci33GetResource(ByVal wLogSlot As Integer, pres As APCI33RESOURCE) As Long

EDelphi
const
  APCI33_MAX_MEM      =  9;
  APCI33_MAX_IO       = 20;
  APCI33_MAX_DMA      =  7;

type
  TAPCI33RESOURCE = record
    dwNumMemWindows:                                DWORD;  // س޳(gp)
    dwMemBase:      array [1 .. APCI33_MAX_MEM] of  DWORD;  // س޳ްڽ(gp)
    dwMemLength:    array [1 .. APCI33_MAX_MEM] of  DWORD;  // س޳(gp)
    dwMemAttrib:    array [1 .. APCI33_MAX_MEM] of  DWORD;  // س޳(gp)
    dwNumIOPorts:                                   DWORD;  // I/O߰Đ
    dwIOPortBase:   array [1 .. APCI33_MAX_IO] of   DWORD;  // I/O߰ްڽ
    dwIOPortLength: array [1 .. APCI33_MAX_IO] of   DWORD;  // I/O߰Ē
    dwNumDMAs:                                      DWORD;  // DMAِ(gp)
    dwDMALst:       array [1 .. APCI33_MAX_DMA] of  DWORD;  // DMAؽ(gp)
    dwDMAAttrib:    array [1 .. APCI33_MAX_DMA] of  DWORD;  // DMAّؽ(gp)
    dwReserved1:    array [1 .. 3] of               DWORD;  // \(gp)
  end;

function Apci33GetResource(wLogSlot: WORD; var pres: TAPCI33RESOURCE): BOOL;


    wLogSlot
        foCX̘_XbgԍwB

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

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

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    wLogSlot Ŏw肳ꂽfoCXɊ蓖ĂĂ郊\[X\p
    擾܂B
    ʏ킱 API ͎gpKv͂܂B

G[
    APCI33_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI33_ERR_NO_CREATE
        foCXNGCgĂ܂B
    APCI33_ERR_INVALID_ARGUMENT
        pres  NULL łB
    APCI33_ERR_SYSTEM
        Windows  GetLastError() R[ĂB

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

4.1.5.  Apci33GetSwitchValue

@\
    [^XCb`̒l擾

`
EVisual C++
BOOL Apci33GetSwitchValue(WORD wLogSlot, PDWORD pdwSwitchValue);

EVisual Basic
Function Apci33GetSwitchValue(ByVal wLogSlot As Integer, pdwSwitchValue As Long) As Long

EDelphi
function Apci33GetSwitchValue(wLogSlot: WORD; var pdwSwitchValue: DWORD): BOOL;


    wLogSlot
        foCX̘_XbgԍwB

    pdwSwitchValue
        [^XCb`̒li[̈ւ̃|C^B
        NULL ͕sB

o
    *pdwSwitchValue
        [^XCb`̒lB

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    wLogSlot Ŏw肳ꂽfoCXɊ蓖ĂĂ郍[^XCb`
    l擾܂B

G[
    APCI33_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI33_ERR_NO_CREATE
        foCXNGCgĂ܂B
    APCI33_ERR_INVALID_ARGUMENT
        pdwSwitchValue  NULL łB
    APCI33_ERR_SYSTEM
        Windows  GetLastError() R[ĂB

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

4.2.  I/O API

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

4.2.1.  Apci33OutPort

@\
    o͎s

`
EVisual C++
BOOL Apci33OutPort(WORD wLogSlot, DWORD dwLogPort, BYTE bOutValue);

EVisual Basic
Function Apci33OutPort(ByVal wLogSlot As Integer,ByVal dwLogPort As Long,ByVal bOutValue As Byte) As Long

EDelphi
function Apci33OutPort(wLogSlot: WORD; dwLogPort: DWORD; bOutValue: BYTE): BOOL;


    wLogSlot
        foCX̘_XbgԍwB

    dwLogPort
        ̘_|[gԍւ̏o͂s܂B

    bOutValue
        o̓f[^B

߂l
    API IAsԂ܂B
    FALSE
        sB
    TRUE
        IB


    wLogSlot Ŏw肳ꂽfoCX̘_|[gԍ dwLogPort ɏo͂
    ܂B

G[
    APCI33_ERR_INVALID_SLOT
        Ș_XbgԍłB
    APCI33_ERR_NO_CREATE
        foCXNGCgĂ܂B
    APCI33_ERR_INVALID_PORT
        Ș_|[gԍłB

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

4.3.  ̑ API

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

4.3.1.  Apci33GetLastError

@\
    G[R[h擾

`
EVisual C++
DWORD Apci33GetLastError(WORD wLogSlot);

EVisual Basic
Function Apci33GetLastError(ByVal wLogSlot As Integer) As Long

EDelphi
function Apci33GetLastError(wLogSlot: WORD): DWORD;


    wLogSlot
        foCX̘_XbgԍwB

߂l
    G[R[hB


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

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

5.  bZ[W

    bZ[W͂܂B

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

6.  萔

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

6.1.  G[R[h

#define APCI33_SUCCESS              0   // I
#define APCI33_ERR_SYSTEM           1   // GetLastError sĂ
#define APCI33_ERR_NO_DEVICE        2   // gp\޲Ȃ
#define APCI33_ERR_IN_USE           3   // w肳ꂽ޲͎gp
#define APCI33_ERR_INVALID_SLOT     4   // Ș_ۯĔԍw肵
#define APCI33_ERR_RESOURCE         5   // ؿװ
#define APCI33_ERR_INVALID_PORT     6   // ߰Ăv
#define APCI33_ERR_INVALID_ARGUMENT 7   // Ȉv
#define APCI33_ERR_NO_CREATE        8   // ޲شĂĂ܂

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

6.2.  _|[gԍ萔

#define APCI33_PORT_1   0
#define APCI33_PORT_2   1
#define APCI33_PORT_3   2
#define APCI33_PORT_4   3
#define APCI33_PORT_5   4
#define APCI33_PORT_6   5
#define APCI33_PORT_7   6
#define APCI33_PORT_8   7

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

6.3.  ̑̒萔

#define APCI33_MAX_SLOTS    16              /* T|[g{[h */
#define APCI33_MAX_PORTS    8               /* ANZX\ȃ|[g */
#define APCI33_SLOT_AUTO    ((WORD)~0U)     /* ftHg  T[` */
