📄 lvpio.h
字号:
#ifndef ___LVPIO_H
#define ___LVPIO_H
#include <lvdef.h>
#include <dsylib.h>
#include <lvpackon.h>
#ifdef _LVPIO_
#define LVIOAPI(x) __declspec(dllexport) x
#else
#define LVIOAPI(x) __declspec(dllimport) x
#endif
#define LVPIO_TimeElapsed 1
#define LVPIO_NoError 0
#define LVPIO_GenericError -1
#define LVPIO_InvalidBoard -2
#define LVPIO_BoardAlreadyOpened -3
#define LVPIO_BoardNotOpened -4
#define LVPIO_MaxDelayedError -5
#define LVPIO_ClockError -6
#define LVPIO_BoardLocked -7
#define LVPIO_BoardBusy -8
#define LVPIO_InvalidPointer -9
#define LVPIO_NotCustomBoard -10
#define LVPIO_FirstUserError -100
#define LVPIO_FirstUserWarning 100
#define InitMode_8bit 0
#define InitMode_16bit 1
#define InitMode_32bit 2
#define SetOpto_Now 0
#define SetOpto_AtAbsoluteTime 1
#define SetOpto_AtRelativeTime 2
#define _MaxPIO 4
typedef int LVIOSTATUS;
typedef BOOL(*InputCallback)(U32BIT, U32BIT);
typedef BOOL(*MonitorCallback)(U32BIT, U32BIT, U32BIT);
#define _LvPIO_MxName "LvPIOLockMx"
#define _LvPIO_Name "LvPIOLock"
#define _LvPIO_SizeHigh 0
#define _LvPIO_SizeLow 0x1000
#define _LvPIOTrace_Reserve 0xfffffff0
#define _LvPIOTrace_IrqMark 0xfffffffb
#define _LvPIOTrace_Dump 0xfffffffc
#define _LvPIOTrace_On 0xfffffffd
#define _LvPIOTrace_Off 0xfffffffe
#define _LvPIOTrace_None 0xffffffff
enum _LvPIOStatusEnum {
PIOStatus_NotPresent,
// Closed states
PIOStatus_NotAccessible,
PIOStatus_Locked,
PIOStatus_Free,
PIOStatus_LastClosed,
// Opened states
PIOStatus_Ready,
PIOStatus_Busy,
PIOStatus_Last
};
typedef struct _tagLvPIOStatus {
HGRABBER hGrb;
int NrGrb;
U32BIT Status;
HDEVICE hDevice;
U16BIT BoardType;
U8BIT PCIBusNr;
U8BIT PCIDeviceNr;
// Valid on initialized boards
int InitMode;
U32BIT CustomId;
InputCallback InCallBack;
U32BIT InMask;
U32BIT InMaskVal;
MonitorCallback MonCallBack;
U32BIT ClockNs;
} LvPIOStatus;
#include <lvpackof.h>
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
LVIOAPI(LVIOSTATUS) LvPIOSetOpto(U32BIT boardNumber, U32BIT bitNumber, U32BIT Value, U32BIT When, U32BIT delay);
// LVIOAPI(LVIOSTATUS) LvPIOInitBoard(U32BIT boardNumber, int Mode);
// LVIOAPI(LVIOSTATUS) LvPIOInitCustomBoard(U32BIT boardNumber, int Mode, U32BIT CustomId);
LVIOAPI(LVIOSTATUS) LvPIOInitBoard(U32BIT boardNumber, int Mode, U32BIT Stall_usec, U32BIT Blind_10thmsec);
LVIOAPI(LVIOSTATUS) LvPIOInitCustomBoard(U32BIT boardNumber, int Mode, U32BIT Stall_usec, U32BIT Blind_10thmsec, U32BIT CustomId);
LVIOAPI(LVIOSTATUS) LvPIOCloseBoard(U32BIT boardNumber);
LVIOAPI(LVIOSTATUS) LvPIOSetInputNotifyMask(U32BIT boardNumber, U32BIT mask, U32BIT maskVal, InputCallback InCBFunction);
LVIOAPI(LVIOSTATUS) LvPIOSetMonitorCallback(U32BIT boardNumber, MonitorCallback MonCBFunction);
LVIOAPI(LVIOSTATUS) LvPIOGetInputValue(U32BIT boardNumber, U32BIT *val);
LVIOAPI(LVIOSTATUS) LvPIOGetOutputValue(U32BIT boardNumber, U32BIT *val);
LVIOAPI(LVIOSTATUS) LvPIOSetOutputValue(U32BIT boardNumber, U32BIT Mask);
LVIOAPI(LVIOSTATUS) LvPIOResetTimer(U32BIT boardNumber);
LVIOAPI(void) LvPIOTrace(U32BIT Reference, const char *fmt, ...);
LVIOAPI(void) LvPIOWaitMsec(U32BIT boardNumber, U32BIT Ms);
LVIOAPI(void) LvPIOWaitUsec(U32BIT boardNumber, U32BIT Us);
LVIOAPI(LVIOSTATUS) LvPIOGetTimerUsec(U32BIT boardNumber, U32BIT *Us);
LVIOAPI(LVIOSTATUS) LvPIOGetTimerMsec(U32BIT boardNumber, U32BIT *Ms);
LVIOAPI(void) LvPIOGetStatus(U32BIT boardNumber, LvPIOStatus *PIOStatus);
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -