3fedd14818
Originally written by Guenter Gebhardt <g.gebhardt@meilhaus.de> and Krzysztof Gantzke <k.gantzke@meilhaus.de> This is the drv/lnx/mod directory of ME-IDS 1.2.9 tarball with some files from drv/lnx/include. Signed-off-by: David Kiliani <mail@davidkiliani.de> Cc: Guenter Gebhardt <g.gebhardt@meilhaus.de> Cc: Krzysztof Gantzke <k.gantzke@meilhaus.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
351 lines
7.9 KiB
C
351 lines
7.9 KiB
C
/*
|
|
* Copyright (C) 2005 Meilhaus Electronic GmbH (support@meilhaus.de)
|
|
*
|
|
* Source File : medriver.h
|
|
* Author : GG (Guenter Gebhardt) <g.gebhardt@meilhaus.de>
|
|
* Author: Krzysztof Gantzke <k.gantzke@meilhaus.de>
|
|
*/
|
|
|
|
#ifndef _MEDRIVER_H_
|
|
#define _MEDRIVER_H_
|
|
|
|
#include "metypes.h"
|
|
#include "meerror.h"
|
|
#include "medefines.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*===========================================================================
|
|
Functions to access the driver system
|
|
=========================================================================*/
|
|
|
|
int meOpen(int iFlags);
|
|
int meClose(int iFlags);
|
|
|
|
int meLockDriver(int iLock, int iFlags);
|
|
int meLockDevice(int iDevice, int iLock, int iFlags);
|
|
int meLockSubdevice(int iDevice, int iSubdevice, int iLock, int iFlags);
|
|
|
|
/*===========================================================================
|
|
Error handling functions
|
|
=========================================================================*/
|
|
|
|
int meErrorGetLastMessage(char *pcErrorMsg, int iCount);
|
|
int meErrorGetMessage(int iErrorCode, char *pcErrorMsg, int iCount);
|
|
int meErrorSetDefaultProc(int iSwitch);
|
|
int meErrorSetUserProc(meErrorCB_t pErrorProc);
|
|
|
|
|
|
/*===========================================================================
|
|
Functions to perform I/O on a device
|
|
=========================================================================*/
|
|
|
|
int meIOIrqSetCallback(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
meIOIrqCB_t pCallback,
|
|
void *pCallbackContext,
|
|
int iFlags);
|
|
int meIOIrqStart(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iChannel,
|
|
int iIrqSource,
|
|
int iIrqEdge,
|
|
int iIrqArg,
|
|
int iFlags);
|
|
int meIOIrqStop(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iChannel,
|
|
int iFlags);
|
|
int meIOIrqWait(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iChannel,
|
|
int *piIrqCount,
|
|
int *piValue,
|
|
int iTimeOut,
|
|
int iFlags);
|
|
|
|
int meIOResetDevice(int iDevice, int iFlags);
|
|
int meIOResetSubdevice(int iDevice, int iSubdevice, int iFlags);
|
|
|
|
int meIOStreamFrequencyToTicks(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iTimer,
|
|
double *pdFrequency,
|
|
int *piTicksLow,
|
|
int *piTicksHigh,
|
|
int iFlags);
|
|
|
|
int meIOSingleConfig(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iChannel,
|
|
int iSingleConfig,
|
|
int iRef,
|
|
int iTrigChan,
|
|
int iTrigType,
|
|
int iTrigEdge,
|
|
int iFlags);
|
|
int meIOSingle(meIOSingle_t *pSingleList, int iCount, int iFlags);
|
|
|
|
int meIOStreamConfig(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
meIOStreamConfig_t *pConfigList,
|
|
int iCount,
|
|
meIOStreamTrigger_t *pTrigger,
|
|
int iFifoIrqThreshold,
|
|
int iFlags);
|
|
int meIOStreamNewValues(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iTimeOut,
|
|
int *piCount,
|
|
int iFlags);
|
|
int meIOStreamRead(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iReadMode,
|
|
int *piValues,
|
|
int *piCount,
|
|
int iFlags);
|
|
int meIOStreamWrite(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iWriteMode,
|
|
int *piValues,
|
|
int *piCount,
|
|
int iFlags);
|
|
int meIOStreamStart(meIOStreamStart_t *pStartList, int iCount, int iFlags);
|
|
int meIOStreamStop(meIOStreamStop_t *pStopList, int iCount, int iFlags);
|
|
int meIOStreamStatus(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iWait,
|
|
int *piStatus,
|
|
int *piCount,
|
|
int iFlags);
|
|
int meIOStreamSetCallbacks(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
meIOStreamCB_t pStartCB,
|
|
void *pStartCBContext,
|
|
meIOStreamCB_t pNewValuesCB,
|
|
void *pNewValuesCBContext,
|
|
meIOStreamCB_t pEndCB,
|
|
void *pEndCBContext,
|
|
int iFlags);
|
|
int meIOStreamTimeToTicks(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iTimer,
|
|
double *pdTime,
|
|
int *piTicksLow,
|
|
int *piTicksHigh,
|
|
int iFlags);
|
|
|
|
|
|
/*===========================================================================
|
|
Functions to query the driver system
|
|
=========================================================================*/
|
|
|
|
int meQueryDescriptionDevice(int iDevice, char *pcDescription, int iCount);
|
|
|
|
int meQueryInfoDevice(
|
|
int iDevice,
|
|
int *piVendorId,
|
|
int *piDeviceId,
|
|
int *piSerialNo,
|
|
int *piBusType,
|
|
int *piBusNo,
|
|
int *piDevNo,
|
|
int *piFuncNo,
|
|
int *piPlugged);
|
|
|
|
int meQueryNameDevice(int iDevice, char *pcName, int iCount);
|
|
int meQueryNameDeviceDriver(int iDevice, char *pcName, int iCount);
|
|
|
|
int meQueryNumberDevices(int *piNumber);
|
|
int meQueryNumberSubdevices(int iDevice, int *piNumber);
|
|
int meQueryNumberChannels(int iDevice, int iSubdevice, int *piNumber);
|
|
int meQueryNumberRanges(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iUnit,
|
|
int *piNumber);
|
|
|
|
int meQueryRangeByMinMax(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iUnit,
|
|
double *pdMin,
|
|
double *pdMax,
|
|
int *piMaxData,
|
|
int *piRange);
|
|
int meQueryRangeInfo(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iRange,
|
|
int *piUnit,
|
|
double *pdMin,
|
|
double *pdMax,
|
|
int *piMaxData);
|
|
|
|
int meQuerySubdeviceByType(
|
|
int iDevice,
|
|
int iStartSubdevice,
|
|
int iType,
|
|
int iSubtype,
|
|
int *piSubdevice);
|
|
int meQuerySubdeviceType(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int *piType,
|
|
int *piSubtype);
|
|
int meQuerySubdeviceCaps(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int *piCaps);
|
|
int meQuerySubdeviceCapsArgs(
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iCap,
|
|
int *piArgs,
|
|
int iCount);
|
|
|
|
int meQueryVersionLibrary(int *piVersion);
|
|
int meQueryVersionMainDriver(int *piVersion);
|
|
int meQueryVersionDeviceDriver(int iDevice, int *piVersion);
|
|
|
|
|
|
/*===========================================================================
|
|
Common utility functions
|
|
=========================================================================*/
|
|
|
|
int meUtilityExtractValues(
|
|
int iChannel,
|
|
int *piAIBuffer,
|
|
int iAIBufferCount,
|
|
meIOStreamConfig_t *pConfigList,
|
|
int iConfigListCount,
|
|
int *piChanBuffer,
|
|
int *piChanBufferCount);
|
|
int meUtilityDigitalToPhysical(
|
|
double dMin,
|
|
double dMax,
|
|
int iMaxData,
|
|
int iData,
|
|
int iModuleType,
|
|
double dRefValue,
|
|
double *pdPhysical);
|
|
int meUtilityDigitalToPhysicalV(
|
|
double dMin,
|
|
double dMax,
|
|
int iMaxData,
|
|
int *piDataBuffer,
|
|
int iCount,
|
|
int iModuleType,
|
|
double dRefValue,
|
|
double *pdPhysicalBuffer);
|
|
int meUtilityPhysicalToDigital(
|
|
double dMin,
|
|
double dMax,
|
|
int iMaxData,
|
|
double dPhysical,
|
|
int *piData);
|
|
int meUtilityPWMStart(
|
|
int iDevice,
|
|
int iSubdevice1,
|
|
int iSubdevice2,
|
|
int iSubdevice3,
|
|
int iRef,
|
|
int iPrescaler,
|
|
int iDutyCycle,
|
|
int iFlag);
|
|
int meUtilityPWMStop(int iDevice,
|
|
int iSubdevice1);
|
|
int meUtilityPWMRestart(
|
|
int iDevice,
|
|
int iSubdevice1,
|
|
int iRef,
|
|
int iPrescaler);
|
|
|
|
|
|
/*===========================================================================
|
|
Load configuration from file into driver system
|
|
=========================================================================*/
|
|
|
|
int meConfigLoad(char *pcConfigFile);
|
|
|
|
|
|
/*===========================================================================
|
|
Functions to query a remote driver system
|
|
=========================================================================*/
|
|
|
|
int meRQueryDescriptionDevice(
|
|
char *location,
|
|
int iDevice,
|
|
char *pcDescription,
|
|
int iCount);
|
|
|
|
int meRQueryInfoDevice(
|
|
char *location,
|
|
int iDevice,
|
|
int *piVendorId,
|
|
int *piDeviceId,
|
|
int *piSerialNo,
|
|
int *piBusType,
|
|
int *piBusNo,
|
|
int *piDevNo,
|
|
int *piFuncNo,
|
|
int *piPlugged);
|
|
|
|
int meRQueryNameDevice(
|
|
char *location,
|
|
int iDevice,
|
|
char *pcName,
|
|
int iCount);
|
|
|
|
int meRQueryNumberDevices(char *location, int *piNumber);
|
|
int meRQueryNumberSubdevices(char *location, int iDevice, int *piNumber);
|
|
int meRQueryNumberChannels(
|
|
char *location,
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int *piNumber);
|
|
int meRQueryNumberRanges(
|
|
char *location,
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iUnit,
|
|
int *piNumber);
|
|
|
|
int meRQueryRangeInfo(
|
|
char *location,
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int iRange,
|
|
int *piUnit,
|
|
double *pdMin,
|
|
double *pdMax,
|
|
int *piMaxData);
|
|
|
|
int meRQuerySubdeviceType(
|
|
char *location,
|
|
int iDevice,
|
|
int iSubdevice,
|
|
int *piType,
|
|
int *piSubtype);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|