Package nidaqdev

Class NIDAQProcess

All Implemented Interfaces:
PamSettings, SettingsNameProvider

public class NIDAQProcess extends DaqSystem implements PamSettings
  • Field Details Link icon

  • Constructor Details Link icon

  • Method Details Link icon

    • prepareSystem Link icon

      public boolean prepareSystem(AcquisitionControl daqControl)
      Description copied from class: DaqSystem
      Prepare the DaqSystem.

      Usually this is the time for opening files, preparing data buffers, etc.

      Specified by:
      prepareSystem in class DaqSystem
      Parameters:
      daqControl - AcquisitionControl unit.
      Returns:
      true if OK, false otherwise.
    • getDataUnitSamples Link icon

      public int getDataUnitSamples()
      Specified by:
      getDataUnitSamples in class DaqSystem
      Returns:
      the number of samples expected in each data unit.
    • startSystem Link icon

      public boolean startSystem(AcquisitionControl daqControl)
      Description copied from class: DaqSystem
      Start the DaqSystem. This is called immediately after PrepareSystem

      Most things should be ready from the call to PrepareSystem. In StartSystem you will generally need to start a thread which will read in the data and place PamDataUnits in a buffer from where they are read by the main thred and passed on to other Pam modules for processing (see SoundCardSystem for an example)

      Specified by:
      startSystem in class DaqSystem
      Parameters:
      daqControl - AcquisitionControl unit.
      Returns:
      true if OK, false otherwise
    • stopSystem Link icon

      public void stopSystem(AcquisitionControl daqControl)
      Description copied from class: DaqSystem
      Stop the DaqSystem.
      Specified by:
      stopSystem in class DaqSystem
    • getDaqSpecificChannelListPanel Link icon

      public ChannelListPanel getDaqSpecificChannelListPanel(AcquisitionDialog acquisitionDialog)
      Description copied from class: DaqSystem
      Get a channel list panel (invented for NI cards which have many more options)
      Overrides:
      getDaqSpecificChannelListPanel in class DaqSystem
      Parameters:
      acquisitionDialog - reference to main acquisition dialog
      Returns:
      ChannelListPanel component.
    • getDaqSpecificDialogComponent Link icon

      public JPanel getDaqSpecificDialogComponent(AcquisitionDialog acquisitionDialog)
      Description copied from class: DaqSystem
      The AcquisitionDialog has been designed to that each data source type can plug in it's own panel of device specific controls. These could be things like a file name, gain settings, channel lists, whatever is available for the specific device

      The AcquisitionDialog will handle placing this component on the dialog when a particular DaqSystem is selected. The component will be placed between a drop down list of available DaqSystem's and a section of the dialog showing the sample rate and number of channels.

      Specified by:
      getDaqSpecificDialogComponent in class DaqSystem
      Parameters:
      acquisitionDialog - the AcquisitionDialog this component will be added to
      Returns:
      dialog component specific to this DAQ device
    • setVP2P Link icon

      public void setVP2P(double vp2p)
    • getNiParameters Link icon

      public NIDaqParams getNiParameters()
    • dialogSetParams Link icon

      public void dialogSetParams()
      Description copied from class: DaqSystem
      Called by AcquisitionDialog.SetParams so that the dialog componenet can update it's fields
      Specified by:
      dialogSetParams in class DaqSystem
    • getMasterDevice Link icon

      public int getMasterDevice()
      Get the index of the master device.
      Returns:
    • getDeviceInfo Link icon

      public NIDeviceInfo getDeviceInfo(int iDevice)
    • dialogGetParams Link icon

      public boolean dialogGetParams()
      Description copied from class: DaqSystem
      Called by AcquisitionDialog.GetParams so that parameters can be extracted from the dialog component. The DaqSystem should also implement PamSettings and handle storage of parameters between runs.
      Specified by:
      dialogGetParams in class DaqSystem
      Returns:
      true if the parameters and selections are OK. If false is returned the Acquisition dialog will not respond to its Ok button.
    • getSystemType Link icon

      public String getSystemType()
      Specified by:
      getSystemType in class DaqSystem
      Returns:
      The 'type' of data source for display in the Data Source dialog

      Calling functions should be able to handle 'null'

    • getSystemName Link icon

      public String getSystemName()
      Specified by:
      getSystemName in class DaqSystem
      Returns:
      A string describing the data source, e.g. the sound card name, file name, udp port, etc.
    • canPlayBack Link icon

      public boolean canPlayBack(float sampleRate)
      Specified by:
      canPlayBack in class DaqSystem
      Returns:
      true if the system can also play back sound - likely to be true for sound cards and ASIO, and some NI cards, false for wav files. Simulator ?
    • getPlaybackSystem Link icon

      public PlaybackSystem getPlaybackSystem(PlaybackControl playbackControl, DaqSystem daqSystem)
      Description copied from class: DaqSystem
      Gets a playback system for playing sound back out through headphones / speakers, etc.

      Generally, anything acquiring data in real time should play the sound back through itself so that clocks are correctly synchronised. i.e. A sound card input will go to the same sound card output, etc. At a later date, we may try to support output through different devices at different speeds - but this will be problematic !

      If data are being read from a file, then playback is through a sound card which sits in a stand alone implementation of PlaybackSystem

      Overrides:
      getPlaybackSystem in class DaqSystem
      Returns:
      null if no playback available or a PlaybackSystem object.
      See Also:
    • getMaxChannels Link icon

      public int getMaxChannels()
      Specified by:
      getMaxChannels in class DaqSystem
      Returns:
      the maximum number of channels supporrted by the selected device, or PARAMETER_UNKNOWN
    • getMaxSampleRate Link icon

      public int getMaxSampleRate()
      Specified by:
      getMaxSampleRate in class DaqSystem
      Returns:
      the maximum sample rate supporrted by the selected device, or PARAMETER_UNKNOWN
    • readSampleRate Link icon

      public double readSampleRate()
      Pass through for easy access from channellistpanel
      Returns:
    • isRealTime Link icon

      public boolean isRealTime()
      Specified by:
      isRealTime in class DaqSystem
      Returns:
      true for real time systems (e.g. sound cards, NI cards, wav files which are being played back over speakers. false for reading files which are to be processed as fast as possible with no playback.
    • getChannels Link icon

      public int getChannels()
    • isEnabledMultiBoardOps Link icon

      public boolean isEnabledMultiBoardOps()
    • getSampleRate Link icon

      public int getSampleRate()
    • getPeak2PeakVoltage Link icon

      public double getPeak2PeakVoltage(int swChannel)
      Specified by:
      getPeak2PeakVoltage in class DaqSystem
      Returns:
      peak to peak voltage for the device or PARAMETER_UNKNOWN
    • getSettingsReference Link icon

      public Serializable getSettingsReference()
      Specified by:
      getSettingsReference in interface PamSettings
      Returns:
      The serialisable object that will be stored
    • getSettingsVersion Link icon

      public long getSettingsVersion()
      Specified by:
      getSettingsVersion in interface PamSettings
      Returns:
      An integer version number for the settings
    • getUnitName Link icon

      public String getUnitName()
      Specified by:
      getUnitName in interface SettingsNameProvider
      Returns:
      A Name specific to this instance of the particular class, e.g. Sperm whale detector, Beaked whale detector, etc.
    • getUnitType Link icon

      public String getUnitType()
      Specified by:
      getUnitType in interface PamSettings
      Returns:
      A Name specific to the type, e.g. Click detector
    • restoreSettings Link icon

      public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings)
      Specified by:
      restoreSettings in interface PamSettings
      Returns:
      true if successful The object performs final checks (if needed) and then casts the settings data pamcontrolledunitSettings.settings into the correct type and uses as required
    • useSettings Link icon

      public void useSettings()
    • enableMasterDevice Link icon

      public void enableMasterDevice()
    • setMasterDevice Link icon

      public void setMasterDevice(int iDevice)
    • fullBuffer Link icon

      public void fullBuffer(int iChan, double[] data)
      Get's called back from the C side. The data are still in a shared buffer at this point, so copy it out into a new array.

      We also need to swap threads at this point, so add the new data to a list that some other process will be emptying on a timer.

      Parameters:
      iChan - channel number
      data - data array.
    • daqHasEnded Link icon

      public void daqHasEnded()
      Description copied from class: DaqSystem
      Called after DAQ has stopped - for whatever reason. Nost DAQ systems will not need to do anything here, but they could potentially clean up memory The motivation for putting this here now is for the folder analysis system so that it can start analysing the next file.
      Specified by:
      daqHasEnded in class DaqSystem
    • setDeviceList Link icon

      public void setDeviceList(int[] deviceList)
    • getDeviceList Link icon

      public int[] getDeviceList()
    • setHWChannelList Link icon

      public void setHWChannelList(int[] hwChannelsList)
    • getHWChannelList Link icon

      public int[] getHWChannelList()
    • supportsChannelLists Link icon

      public boolean supportsChannelLists()
      Overrides:
      supportsChannelLists in class DaqSystem
    • getNiDevices Link icon

      public ArrayList<NIDeviceInfo> getNiDevices()
    • getDeviceName Link icon

      public String getDeviceName()
      Description copied from class: DaqSystem
      Gets a name for the acquisition device (may just be a number but need to generalise).
      Specified by:
      getDeviceName in class DaqSystem
      Returns:
    • getNiDaq Link icon

      public Nidaq getNiDaq()
    • getNiChannelListPanel Link icon

      public NIChannelListPanel getNiChannelListPanel()
      Returns:
      the niChannelListPanel