Working Version of the BIOSEMI acquisition module.
When acquiring at SamplingRate less than the hardware sampling rate, crude averaging of the EEG and AIB signals is performed over each batch of samples: this is better anti-aliasing than the original simple decimation strategy, but still not ideal. Ideally a properly-designed FIR filter would be used prior to decimation.
Samuel A. Inverso (email@example.com), Yang Zhen, Maria Laura Blefari, Jeremy Hill, Gerwin Schalk
Revision 2.2 2010/03/04 gschalk: Fixed nasty reinitialization bug. Now, pressing SetConfig more than once works. There is a remaining problem in the Biosemi2Client code that prevents proper function when initialize is called more than once. As a workaround, we now simply delete and recreate the whole object in the ADC's Initialize() function.
Revision 2.1 2009/05/27 jhill: Bugged trigger signal acquisition fixed and tested. Also added an option to acquire trigger signals simultaneously in one 16-bit channel.
Revision 2.0 2008/11/07 jhill: Updated design, including support for an auxiliary Analog Input Box (AIB) EEG + AIB acquisition tested---triggers not.
Revision 1.2 2008/10/25 Maria Laura Blefari: Fixed the ERROR: Mode changed from 4 to 0
Revision 1.1.1 2005/12/14 15:24:15 mellinger: Fixed state name typo in Process().
Revision 1.1 2005/12/12 00:05:24 sinverso Initial Revision: Working and tested offline. Not tested in real experiments.
Source Code Revisions
- Initial development: 960
- Tested under: 2372
- Known to compile under: 2372
- Broken since: --
Acquires from a Biosemi Act2. Version 1.0 tested with a MK1. Versions 1.2 and up tested on a MK2.
EEG channels, Analog Input Box (AIB) channels, and one-bit channels reflecting the digital trigger input states are acquired in sync.
Warning: If TriggerChList is empty, the trigger values will not be saved in the data files and are not recoverable.
Copy the Labview_DLL.dll to the prog directory for the module to work. (In the BCI2000 Contrib distribution, that DLL is already in place.) If you experience problems with the Biosemi 2 source module, uninstall the 'Labview Run time engine' included in the Active View CD (as suggested by Hohyun Cho).
As of version 2.0 (svn revision 2189) the old parameters PostFixTriggers and TriggerScaleMultiplier have been removed. The functionality of the former is replaced by TriggerChList and the latter can be simulated by setting the corresponding elements of SourceChGain accordingly.
A list of (one-based) indices to the EEG channels to be acquired. These EEG channels appear first in the final ordering, before AIB and trigger channels.
A list of indices (each in the range 1 through 32 inclusive) indicating which Analog Input Box channels are to be acquired. By default, none are acquired. AIB channels are postfixed immediately following the EEG channels.
The old PostfixTriggers parameter has been replaced by this, a list of indices (each in the range 1 through 16 inclusive) indicating which one-bit trigger channels to postfix after the EEG and AIB channels. By default, all 16 are postfixed (for legacy compatibility).
Instead of a list, you may alternatively supply a single 0: this means "acquire all triggers simultaneously in one 16-bit channel."
Set to 1 when hardware reports low battery state.
The mode corresponding to the one on the front of the Biosemi box.
Set to 1 when connected to an MK2.