nidaqdev
Class Nidaq

java.lang.Object
  extended by nidaqdev.Nidaq

public class Nidaq
extends java.lang.Object

Nidaq is is a wrapper style class, which makes calls to native C++ functions within in a .dll library. Each of the native C++ methods, corresponds very closely to a library call in NIDAQmx. It is by no means a complete wrapper for NIDAQmx and currently only contains those calls useful to the PAMGUARD project www.pamguard.org

Author:
Paul Redmond, rewritten by Doug Gillespie To generate correct header file jni c side compiliation : javac Nidaq.java javah -jni nidaqdev.Nidaq

Nested Class Summary
 class Nidaq.DaqConfig
           
 class Nidaq.DaqData
           
 class Nidaq.DAQmxCfgSampClkTimingParams
           
 class Nidaq.DAQmxClearTaskParams
           
 class Nidaq.DAQmxCreateAIVoltageChanParams
           
 class Nidaq.DAQmxCreateTaskParams
           
 class Nidaq.DAQmxGetDevIsSimulatedParams
           
 class Nidaq.DAQmxReadAnalogF64Params
           
 class Nidaq.DAQmxStartTaskParams
           
 class Nidaq.DAQmxStopTaskParams
           
 
Field Summary
private static int BUFFERSECONDS
           
private  boolean loadLibraryOK
           
private  boolean loadLibraryTried
           
private static NIDAQProcess niDaqProcess
           
private static java.lang.String SILIB
           
 
Constructor Summary
Nidaq(NIDAQProcess niDaqProcess)
           
 
Method Summary
private  int daqmxCfgSampClkTiming(Nidaq.DAQmxCfgSampClkTimingParams daqmxCfgSampClkTimingParams)
          Natively calls the NIDAQmx function DAQmxCfgSampClkTiming.
private  int daqmxClearTask(Nidaq.DAQmxClearTaskParams daqmxClearTaskParams)
          Natively calls the NIDAQmx function DAQmxClearTask.
private  int daqmxCreateAIVoltageChan(Nidaq.DAQmxCreateAIVoltageChanParams daqmxCreateAIVoltageChanParams)
          Natively calls the NIDAQmx function DAQmxCreateAIVoltageChan.
private  int daqmxCreateTask(Nidaq.DAQmxCreateTaskParams daqmxCreateTaskParams)
          Natively calls the NIDAQmx function DAQmxCreateTask.
private  int daqmxGetDevIsSimulated(Nidaq.DAQmxGetDevIsSimulatedParams daqmxGetDevIsSimulatedParams)
          Natively calls the NIDAQmx function DAQmxGetDevIsSimulated.
private  java.lang.String daqmxGetErrorString(int errorCode)
          Natively calls the NIDAQmx function DAQmxStartTask.
private  int daqmxReadAnalogF64(Nidaq.DAQmxReadAnalogF64Params daqmxReadAnalogF64Params, Nidaq.DaqData DaqData, double[] dataArray)
          Natively calls the NIDAQmx function DAQmxStartTask.
private  int daqmxStartTask(Nidaq.DAQmxStartTaskParams daqmxStartTaskParams)
          Natively calls the NIDAQmx function DAQmxStartTask.
private  int daqmxStopTask(Nidaq.DAQmxStopTaskParams daqmxStopTaskParams)
          Natively calls the NIDAQmx function DAQmxStopTask.
 void daqTest()
           
static void fullBuffer(int iChan, double[] data)
           
 double[] getAIVoltageRanges(int deviceNo)
           
 java.lang.String getDeviceName(int deviceNo)
           
 java.util.ArrayList<NIDeviceInfo> getDevicesList()
          Retrieve information for all NI devices.
 int getMaxInputChannels(int deviceNo)
           
 double getMaxMultiChannelRate(int deviceNo)
           
 int getMaxOutputChannels(int deviceNo)
           
 double getMaxSingleChannelRate(int deviceNo)
           
 int getSerialNum(int deviceNo)
          Get the devices serial number
 boolean isAISimultaneousSampling(int deviceNo)
          Get if the device is simulated
 boolean isLoadLibraryOK()
           
 boolean isSimulated(int deviceNo)
          Get if the device is simulated
 boolean javaDAQmxFailed(int error)
           
private  java.lang.String javaDAQmxGetDeviceName(int deviceNo)
           
 java.lang.String javaDAQmxGetErrorString(int errorCode)
           
private  int javaDAQmxGetSerialNum(int deviceNo)
          Get the devices serial number
private  boolean javaDAQmxIsSimulated(int deviceNo)
          Get if the device is simulated
private  double[] javaGetAIVoltageRanges(int deviceNo)
           
 int javaPlaybackData(double[] data)
           
 int javaPreparePlayback(int boardNumber, int sampleRate, int bufferSamples, int[] outputChannelList)
           
 boolean javaStartPlayback()
           
 boolean javaStopPlayback()
           
private  boolean jniAISimultaneousSampling(int deviceNo)
          Get if the device is simulated
private  int jniGetMaxInputChannels(int deviceNo)
           
private  double jniGetMaxMultiChannelRate(int deviceNo)
           
private  int jniGetMaxOutputChannels(int deviceNo)
           
private  double jniGetMaxSingleChannelRate(int deviceNo)
           
private  int jniPlaybackData(double[] data)
           
private  int jniPrepareDAQ(int deviceNo, int sampleRate, int bufferSeconds, int[] inputChannelList, double[] rangesLo, double[] rangesHi, int[] deviceList)
          Basic parameters for setting up NI acquisition
private  int jniPreparePlayback(int boardNumber, int sampleRate, int bufferSamples, int[] outputChannelList)
           
private  void jniSetTerminalConfig(int terminalConfig)
           
private  int jniStartDAQ()
           
private  boolean jniStartPlayback()
           
private  int jniStopDAQ()
           
private  boolean jniStopPlayback()
           
 void load()
           
 int prepareDAQ(int deviceNo, int sampleRate, int[] inputChannelList, double[] rangeListLo, double[] rangeListHi, int[] deviceList)
           
static void resetPamguard(int errorCode, char[] errorString)
           
static void sayString(char[] string)
           
 void setTerminalConfig(int terminalConfig)
           
 void showString(char[] string)
          Mostly used as a callback from the C side to show string messages
 int startDAQ()
           
 int stopDAQ()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUFFERSECONDS

private static final int BUFFERSECONDS
See Also:
Constant Field Values

niDaqProcess

private static NIDAQProcess niDaqProcess

SILIB

private static final java.lang.String SILIB
See Also:
Constant Field Values

loadLibraryOK

private boolean loadLibraryOK

loadLibraryTried

private boolean loadLibraryTried
Constructor Detail

Nidaq

public Nidaq(NIDAQProcess niDaqProcess)
Method Detail

isLoadLibraryOK

public boolean isLoadLibraryOK()

daqmxCreateTask

private int daqmxCreateTask(Nidaq.DAQmxCreateTaskParams daqmxCreateTaskParams)
Natively calls the NIDAQmx function DAQmxCreateTask.

Parameters:
daqmxCreateTaskParams -

daqmxStartTask

private int daqmxStartTask(Nidaq.DAQmxStartTaskParams daqmxStartTaskParams)
Natively calls the NIDAQmx function DAQmxStartTask.

Parameters:
daqmxStartTaskParams -

daqmxStopTask

private int daqmxStopTask(Nidaq.DAQmxStopTaskParams daqmxStopTaskParams)
Natively calls the NIDAQmx function DAQmxStopTask.

Parameters:
daqmxStopTaskParams -

daqmxClearTask

private int daqmxClearTask(Nidaq.DAQmxClearTaskParams daqmxClearTaskParams)
Natively calls the NIDAQmx function DAQmxClearTask.

Parameters:
daqmxClearTaskParams -

daqmxCreateAIVoltageChan

private int daqmxCreateAIVoltageChan(Nidaq.DAQmxCreateAIVoltageChanParams daqmxCreateAIVoltageChanParams)
Natively calls the NIDAQmx function DAQmxCreateAIVoltageChan.

Parameters:
daqmxCreateAIVoltageChanParams -

daqmxCfgSampClkTiming

private int daqmxCfgSampClkTiming(Nidaq.DAQmxCfgSampClkTimingParams daqmxCfgSampClkTimingParams)
Natively calls the NIDAQmx function DAQmxCfgSampClkTiming.

Parameters:
daqmxCfgSampClkTimingParams -

daqmxReadAnalogF64

private int daqmxReadAnalogF64(Nidaq.DAQmxReadAnalogF64Params daqmxReadAnalogF64Params,
                               Nidaq.DaqData DaqData,
                               double[] dataArray)
Natively calls the NIDAQmx function DAQmxStartTask.

Parameters:
daqmxCreateTaskParams -

daqmxGetErrorString

private java.lang.String daqmxGetErrorString(int errorCode)
Natively calls the NIDAQmx function DAQmxStartTask.

Parameters:
daqmxCreateTaskParams -

daqmxGetDevIsSimulated

private int daqmxGetDevIsSimulated(Nidaq.DAQmxGetDevIsSimulatedParams daqmxGetDevIsSimulatedParams)
Natively calls the NIDAQmx function DAQmxGetDevIsSimulated.

Parameters:
daqmxGetDevIsSimulatedParams -

javaDAQmxFailed

public boolean javaDAQmxFailed(int error)

javaDAQmxGetDeviceName

private java.lang.String javaDAQmxGetDeviceName(int deviceNo)
Parameters:
deviceNo - the device number
Returns:
the device name

getDeviceName

public java.lang.String getDeviceName(int deviceNo)
Parameters:
deviceNo - the device number
Returns:
the device name

jniPreparePlayback

private int jniPreparePlayback(int boardNumber,
                               int sampleRate,
                               int bufferSamples,
                               int[] outputChannelList)

javaPreparePlayback

public int javaPreparePlayback(int boardNumber,
                               int sampleRate,
                               int bufferSamples,
                               int[] outputChannelList)

jniStartPlayback

private boolean jniStartPlayback()

javaStartPlayback

public boolean javaStartPlayback()

jniStopPlayback

private boolean jniStopPlayback()

javaStopPlayback

public boolean javaStopPlayback()

jniPlaybackData

private int jniPlaybackData(double[] data)

javaPlaybackData

public int javaPlaybackData(double[] data)

getDevicesList

public java.util.ArrayList<NIDeviceInfo> getDevicesList()
Retrieve information for all NI devices.

Returns:
Array list of information

javaDAQmxGetSerialNum

private int javaDAQmxGetSerialNum(int deviceNo)
Get the devices serial number

Parameters:
deviceNo - the device number
Returns:
serial number

getSerialNum

public int getSerialNum(int deviceNo)
Get the devices serial number

Parameters:
deviceNo - the device number
Returns:
serial number

javaDAQmxIsSimulated

private boolean javaDAQmxIsSimulated(int deviceNo)
Get if the device is simulated

Parameters:
deviceNo - the device number
Returns:
is simulated

isSimulated

public boolean isSimulated(int deviceNo)
Get if the device is simulated

Parameters:
deviceNo - the device number
Returns:
is simulated

jniAISimultaneousSampling

private boolean jniAISimultaneousSampling(int deviceNo)
Get if the device is simulated

Parameters:
deviceNo - the device number
Returns:
is simulated

isAISimultaneousSampling

public boolean isAISimultaneousSampling(int deviceNo)
Get if the device is simulated

Parameters:
deviceNo - the device number
Returns:
is simulated

jniGetMaxInputChannels

private int jniGetMaxInputChannels(int deviceNo)

getMaxInputChannels

public int getMaxInputChannels(int deviceNo)

jniGetMaxSingleChannelRate

private double jniGetMaxSingleChannelRate(int deviceNo)

getMaxSingleChannelRate

public double getMaxSingleChannelRate(int deviceNo)

jniGetMaxMultiChannelRate

private double jniGetMaxMultiChannelRate(int deviceNo)

getMaxMultiChannelRate

public double getMaxMultiChannelRate(int deviceNo)

jniGetMaxOutputChannels

private int jniGetMaxOutputChannels(int deviceNo)

getMaxOutputChannels

public int getMaxOutputChannels(int deviceNo)

javaGetAIVoltageRanges

private double[] javaGetAIVoltageRanges(int deviceNo)

getAIVoltageRanges

public double[] getAIVoltageRanges(int deviceNo)

jniSetTerminalConfig

private void jniSetTerminalConfig(int terminalConfig)

jniPrepareDAQ

private int jniPrepareDAQ(int deviceNo,
                          int sampleRate,
                          int bufferSeconds,
                          int[] inputChannelList,
                          double[] rangesLo,
                          double[] rangesHi,
                          int[] deviceList)
Basic parameters for setting up NI acquisition

Parameters:
deviceNo - Master device number
sampleRate - sample rate
bufferSeconds - buffer length in seconds
inputChannelList - channel list
rangeList - input range list
deviceList - device list (often same as deviceNo, unless multi board operation is used)
Returns:

jniStartDAQ

private int jniStartDAQ()

jniStopDAQ

private int jniStopDAQ()

javaDAQmxGetErrorString

public java.lang.String javaDAQmxGetErrorString(int errorCode)

daqTest

public void daqTest()

load

public void load()

setTerminalConfig

public void setTerminalConfig(int terminalConfig)

prepareDAQ

public int prepareDAQ(int deviceNo,
                      int sampleRate,
                      int[] inputChannelList,
                      double[] rangeListLo,
                      double[] rangeListHi,
                      int[] deviceList)

startDAQ

public int startDAQ()

stopDAQ

public int stopDAQ()

showString

public void showString(char[] string)
Mostly used as a callback from the C side to show string messages

Parameters:
string -

sayString

public static void sayString(char[] string)

fullBuffer

public static void fullBuffer(int iChan,
                              double[] data)

resetPamguard

public static void resetPamguard(int errorCode,
                                 char[] errorString)