onix-docs
+ +Documentation, technical reference manual, and examples for the Bonsai ONI packages
+ +diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/README.html b/README.html new file mode 100644 index 0000000..ea43de5 --- /dev/null +++ b/README.html @@ -0,0 +1,117 @@ + + +
+ +Documentation, technical reference manual, and examples for the Bonsai ONI packages
+ +public class AnalogInput : Source<ManagedFrame<short>>
+ [TypeConverter(typeof(AnalogIO.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<ManagedFrame<short>> Generate()
+ An observable sequence of data elements of type OpenEphys.Onix.ManagedFrame{System.Int16}.
+public class AnalogOutput : Sink<ushort[]>
+ [TypeConverter(typeof(AnalogIO.NameConverter))]
+public string DeviceName { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ushort[]> Process(IObservable<ushort[]> source)
+ source
IObservable<ushort[]>The source sequence to process.
+An observable sequence with elements of type
[Flags]
+public enum Bno055CalibrationFlags : byte
+ Accelerometer = 48
Gyroscope = 12
Magnetometer = 192
None = 0
System = 3
public class Bno055Data : Source<Bno055DataFrame>
+ [TypeConverter(typeof(Bno055.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<Bno055DataFrame> Generate()
+ An observable sequence of data elements of type Bno055DataFrame.
+public class Bno055DataFrame
+ public Bno055DataFrame(Frame frame)
+ frame
Framepublic Vector3 Acceleration { get; }
+ public Bno055CalibrationFlags Calibration { get; }
+ public ulong Clock { get; }
+ public Vector3 EulerAngle { get; }
+ public Vector3 Gravity { get; }
+ public ulong HubClock { get; }
+ public Quaternion Quaternion { get; }
+ public int Temperature { get; }
+ public enum ChannelDirection
+ Input = 0
Output = 1
public class ConfigureAnalogIO : SingleDeviceFactory
+ public ConfigureAnalogIO()
+ public ChannelDirection Direction00 { get; set; }
+ public ChannelDirection Direction01 { get; set; }
+ public ChannelDirection Direction02 { get; set; }
+ public ChannelDirection Direction03 { get; set; }
+ public ChannelDirection Direction04 { get; set; }
+ public ChannelDirection Direction05 { get; set; }
+ public ChannelDirection Direction06 { get; set; }
+ public ChannelDirection Direction07 { get; set; }
+ public ChannelDirection Direction08 { get; set; }
+ public ChannelDirection Direction09 { get; set; }
+ public ChannelDirection Direction10 { get; set; }
+ public ChannelDirection Direction11 { get; set; }
+ public bool Enable { get; set; }
+ public VoltageRange InputRange00 { get; set; }
+ public VoltageRange InputRange01 { get; set; }
+ public VoltageRange InputRange02 { get; set; }
+ public VoltageRange InputRange03 { get; set; }
+ public VoltageRange InputRange04 { get; set; }
+ public VoltageRange InputRange05 { get; set; }
+ public VoltageRange InputRange06 { get; set; }
+ public VoltageRange InputRange07 { get; set; }
+ public VoltageRange InputRange08 { get; set; }
+ public VoltageRange InputRange09 { get; set; }
+ public VoltageRange InputRange10 { get; set; }
+ public VoltageRange InputRange11 { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureBno055 : SingleDeviceFactory
+ public ConfigureBno055()
+ public bool Enable { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureBreakoutBoard : HubDeviceFactory, INamedElement
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureAnalogIO AnalogIO { get; set; }
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureHeartbeat Heartbeat { get; set; }
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureMemoryMonitor MemoryMonitor { get; set; }
+ public class ConfigureDS90UB9x : SingleDeviceFactory
+ public ConfigureDS90UB9x()
+ public bool Enable { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public abstract class ConfigureFmcLinkController : SingleDeviceFactory
+ public ConfigureFmcLinkController()
+ public HubConfiguration HubConfiguration { get; set; }
+ protected bool CheckLinkState(DeviceContext device)
+ device
DeviceContextprotected abstract bool ConfigurePortVoltage(DeviceContext device)
+ device
DeviceContextProcesses an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureHarpSyncInput : SingleDeviceFactory
+ public ConfigureHarpSyncInput()
+ public bool Enable { get; set; }
+ public HarpSyncSource Source { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureHeadstage64 : HubDeviceFactory, INamedElement
+ public ConfigureHeadstage64()
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureBno055 Bno055 { get; set; }
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureHeadstage64ElectricalStimulator ElectricalStimulator { get; set; }
+ public PortName Port { get; set; }
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureRhd2164 Rhd2164 { get; set; }
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureTS4231 TS4231 { get; set; }
+ public class ConfigureHeadstage64ElectricalStimulator : SingleDeviceFactory
+ public ConfigureHeadstage64ElectricalStimulator()
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureHeartbeat : SingleDeviceFactory
+ public ConfigureHeartbeat()
+ [Range(1, 10000000)]
+public uint BeatsPerSecond { get; set; }
+ public bool Enable { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureLoadTester : SingleDeviceFactory
+ public ConfigureLoadTester()
+ public uint FrameHz { get; set; }
+ [Range(0, 10000000)]
+public uint ReceivedWords { get; set; }
+ [Range(0, 10000000)]
+public uint TransmittedWords { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureMemoryMonitor : SingleDeviceFactory
+ public ConfigureMemoryMonitor()
+ public bool Enable { get; set; }
+ [Range(1, 1000)]
+public uint SampleFrequency { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureNeuropixelsV2e : SingleDeviceFactory
+ public ConfigureNeuropixelsV2e()
+ public bool Enable { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureNeuropixelsV2eBeta : SingleDeviceFactory
+ public ConfigureNeuropixelsV2eBeta()
+ public bool Enable { get; set; }
+ public bool EnableLed { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureNeuropixelsV2eBetaHeadstage : HubDeviceFactory, INamedElement
+ public ConfigureNeuropixelsV2eBetaHeadstage()
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureNeuropixelsV2eBno055 Bno055 { get; set; }
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureNeuropixelsV2eBeta NeuropixelsV2Beta { get; set; }
+ public PortName Port { get; set; }
+ public class ConfigureNeuropixelsV2eBno055 : SingleDeviceFactory
+ public ConfigureNeuropixelsV2eBno055()
+ public bool Enable { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureNeuropixelsV2eHeadstage : HubDeviceFactory, INamedElement
+ public ConfigureNeuropixelsV2eHeadstage()
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureNeuropixelsV2eBno055 Bno055 { get; set; }
+ [TypeConverter(typeof(HubDeviceConverter))]
+public ConfigureNeuropixelsV2e NeuropixelsV2 { get; set; }
+ public PortName Port { get; set; }
+ public class ConfigureRhd2164 : SingleDeviceFactory
+ public ConfigureRhd2164()
+ public Rhd2164AmplifierDataFormat AmplifierDataFormat { get; set; }
+ public Rhd2164AnalogHighCutoff AnalogHighCutoff { get; set; }
+ public Rhd2164AnalogLowCutoff AnalogLowCutoff { get; set; }
+ public Rhd2164DspCutoff DspCutoff { get; set; }
+ public bool Enable { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureTS4231 : SingleDeviceFactory
+ public ConfigureTS4231()
+ public bool Enable { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ConfigureTest0 : SingleDeviceFactory
+ public ConfigureTest0()
+ public uint DummyCount { get; }
+ public bool Enable { get; set; }
+ public uint FrameRateHz { get; }
+ public short Message { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+public class ContextTask : IDisposable
+ public ContextTask(string driver, int index)
+ public static readonly string DefaultDriver
+ public static readonly int DefaultIndex
+ public uint AcquisitionClockHz { get; }
+ public int BlockReadSize { get; }
+ public int BlockWriteSize { get; }
+ public Dictionary<uint, Device> DeviceTable { get; }
+ public int HardwareAddress { get; set; }
+ public PassthroughState HubState { get; set; }
+ public uint MaxReadFrameSize { get; }
+ public uint MaxWriteFrameSize { get; }
+ public uint SystemClockHz { get; }
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+public void Dispose()
+ public Hub GetHub(uint deviceAddress)
+ deviceAddress
uintpublic virtual uint GetPassthroughDeviceAddress(uint deviceAddress)
+ deviceAddress
uintpublic Frame ReadFrame()
+ public void Reset()
+ public void Write(uint deviceAddress, IntPtr data, int dataSize)
+ public void Write<T>(uint deviceAddress, T data) where T : unmanaged
+ deviceAddress
uintdata
TT
public void Write<T>(uint deviceAddress, T[] data) where T : unmanaged
+ deviceAddress
uintdata
T[]T
[Combinator(MethodName = "Generate")]
+[WorkflowElementCategory(ElementCategory.Source)]
+public class CreateContext
+ public string Driver { get; set; }
+ public int Index { get; set; }
+ public IObservable<ContextTask> Generate()
+ public class DeviceContext
+ public DeviceContext(ContextTask context, Device device)
+ context
ContextTaskdevice
Devicepublic uint Address { get; }
+ public ContextTask Context { get; }
+ public Device DeviceMetadata { get; }
+ public uint ReadRegister(uint registerAddress)
+ registerAddress
uintpublic void Write(IntPtr data, int dataSize)
+ public void WriteRegister(uint registerAddress, uint value)
+ public void Write<T>(T data) where T : unmanaged
+ data
TT
public void Write<T>(T[] data) where T : unmanaged
+ data
T[]T
public abstract class DeviceFactory : Sink<ContextTask>
+ Provides a type converter to convert a device name to and from other representations. +It also provides a mechanism to find existing devices declared in the workflow.
+public class DeviceNameConverter : StringConverter
+ Initializes a new instance of the DeviceNameConverter class +for the specified type.
+protected DeviceNameConverter(Type deviceType)
+ deviceType
TypeThe type of devices supported by this converter.
+Returns a collection of device names which are available in the call context +of this type converter request.
+public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
+ context
ITypeDescriptorContextAn ITypeDescriptorContext that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be null.
+A TypeConverter.StandardValuesCollection containing the set of +available devices. Only devices matching the specified type will be included.
+Returns whether this object supports a standard set of values that can be picked from a list, using the specified context.
+public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
+ context
ITypeDescriptorContextAn ITypeDescriptorContext that provides a format context.
+true if GetStandardValues() should be called to find a common set of values the object supports; otherwise, false.
+public class HarpSyncInputData : Source<HarpSyncInputDataFrame>
+ [TypeConverter(typeof(HarpSyncInput.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<HarpSyncInputDataFrame> Generate()
+ An observable sequence of data elements of type HarpSyncInputDataFrame.
+public class HarpSyncInputDataFrame
+ public HarpSyncInputDataFrame(Frame frame)
+ frame
Framepublic ulong Clock { get; }
+ public uint HarpTime { get; }
+ public ulong HubClock { get; }
+ public enum HarpSyncSource
+ Breakout = 0
ClockAdapter = 1
public class Headstage64ElectricalStimulatorTrigger : Sink<bool>
+ [Range(0, 4294967295)]
+public uint BurstPulseCount { get; set; }
+ [TypeConverter(typeof(Headstage64ElectricalStimulator.NameConverter))]
+public string DeviceName { get; set; }
+ public bool Enable { get; set; }
+ [Range(0, 4294967295)]
+public uint InterBurstInterval { get; set; }
+ [Range(-2500, 2500)]
+[Precision(3, 1)]
+public double InterPhaseCurrent { get; set; }
+ [Range(0, 4294967295)]
+public uint InterPhaseInterval { get; set; }
+ [Range(0, 4294967295)]
+public uint InterPulseInterval { get; set; }
+ [Range(-2500, 2500)]
+[Precision(3, 1)]
+public double PhaseOneCurrent { get; set; }
+ [Range(0, 4294967295)]
+public uint PhaseOneDuration { get; set; }
+ [Range(-2500, 2500)]
+[Precision(3, 1)]
+public double PhaseTwoCurrent { get; set; }
+ [Range(0, 4294967295)]
+public uint PhaseTwoDuration { get; set; }
+ [Range(0, 4294967295)]
+public bool PowerEnable { get; set; }
+ [Range(0, 4294967295)]
+public uint TrainBurstCount { get; set; }
+ [Range(0, 4294967295)]
+public uint TrainDelay { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<bool> Process(IObservable<bool> source)
+ source
IObservable<bool>The source sequence to process.
+An observable sequence with elements of type bool.
+public class HeartbeatCounter : Source<ManagedFrame<ushort>>
+ [TypeConverter(typeof(Heartbeat.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<ManagedFrame<ushort>> Generate()
+ An observable sequence of data elements of type OpenEphys.Onix.ManagedFrame{System.UInt16}.
+public enum HubConfiguration
+ Passthrough = 1
Standard = 0
public abstract class HubDeviceFactory : DeviceFactory, INamedElement
+ protected HubDeviceFactory()
+ Gets the name of the element.
+public string Name { get; set; }
+ protected string GetFullDeviceName(string deviceName)
+ deviceName
stringProcesses an observable sequence into a new sequence of the specified +element type.
+public override IObservable<ContextTask> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type ContextTask.
+Managed copy of oni.Frame with strongly-typed data array.
+public class ManagedFrame<T> where T : unmanaged
+ T
The data type of the Sample array
+public ManagedFrame(Frame frame)
+ frame
Framepublic readonly T[] Sample
+ public uint DeviceAddress { get; }
+ public ulong FrameClock { get; }
+ public class MemoryUsage : Source<MemoryUsageDataFrame>
+ [TypeConverter(typeof(MemoryMonitor.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<MemoryUsageDataFrame> Generate()
+ An observable sequence of data elements of type MemoryUsageDataFrame.
+public class MemoryUsageDataFrame
+ public MemoryUsageDataFrame(Frame frame, uint totalMemory)
+ frame
FrametotalMemory
uintpublic uint BytesUsed { get; }
+ public uint DeviceAddress { get; }
+ public ulong FrameClock { get; }
+ public ulong HubClock { get; }
+ public double PercentUsed { get; }
+ public enum NeuropixelsV2Probe
+ ProbeA = 0
ProbeB = 1
public class NeuropixelsV2eBetaData : Source<NeuropixelsV2eBetaDataFrame>
+ public int BufferSize { get; set; }
+ [TypeConverter(typeof(NeuropixelsV2eBeta.NameConverter))]
+public string DeviceName { get; set; }
+ public NeuropixelsV2Probe ProbeIndex { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<NeuropixelsV2eBetaDataFrame> Generate()
+ An observable sequence of data elements of type NeuropixelsV2eBetaDataFrame.
+public class NeuropixelsV2eBetaDataFrame
+ public NeuropixelsV2eBetaDataFrame(ulong[] clock, ulong[] hubClock, Mat amplifierData, int[] frameCounter)
+ public Mat AmplifierData { get; }
+ public ulong[] Clock { get; }
+ public int[] FrameCounter { get; }
+ public ulong[] HubClock { get; }
+ public class NeuropixelsV2eBno055Data : Source<Bno055DataFrame>
+ [TypeConverter(typeof(NeuropixelsV2eBno055.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<Bno055DataFrame> Generate()
+ An observable sequence of data elements of type Bno055DataFrame.
+public IObservable<Bno055DataFrame> Generate<TSource>(IObservable<TSource> source)
+ source
IObservable<TSource>TSource
public class NeuropixelsV2eData : Source<NeuropixelsV2eDataFrame>
+ public int BufferSize { get; set; }
+ [TypeConverter(typeof(NeuropixelsV2e.NameConverter))]
+public string DeviceName { get; set; }
+ public NeuropixelsV2Probe ProbeIndex { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<NeuropixelsV2eDataFrame> Generate()
+ An observable sequence of data elements of type NeuropixelsV2eDataFrame.
+public class NeuropixelsV2eDataFrame
+ public NeuropixelsV2eDataFrame(ulong[] clock, ulong[] hubClock, Mat amplifierData)
+ public Mat AmplifierData { get; }
+ public ulong[] Clock { get; }
+ public ulong[] HubClock { get; }
+ [Flags]
+public enum PassthroughState
+ PortA = 1
PortB = 4
public enum PortName
+ PortA = 1
PortB = 2
public enum Rhd2164AmplifierDataFormat
+ TwosComplement = 1
Unsigned = 0
public enum Rhd2164AnalogHighCutoff
+ High10000Hz = 2
High1000Hz = 9
High100Hz = 16
High15000Hz = 1
High1500Hz = 8
High150Hz = 15
High20000Hz = 0
High2000Hz = 7
High200Hz = 14
High2500Hz = 6
High250Hz = 13
High3000Hz = 5
High300Hz = 12
High5000Hz = 4
High500Hz = 11
High7500Hz = 3
High750Hz = 10
public enum Rhd2164AnalogLowCutoff
+ Low1000mHz = 19
Low100Hz = 5
Low100mHz = 24
Low10Hz = 12
Low1500mHz = 18
Low150Hz = 4
Low15Hz = 11
Low2000mHz = 17
Low200Hz = 3
Low20Hz = 10
Low2500mHz = 16
Low250Hz = 2
Low250mHz = 23
Low25Hz = 9
Low300Hz = 1
Low300mHz = 22
Low3090mHz = 15
Low30Hz = 8
Low5000mHz = 14
Low500Hz = 0
Low500mHz = 21
Low50Hz = 7
Low7500mHz = 13
Low750mHz = 20
Low75Hz = 6
public static class Rhd2164Config
+ public static readonly IReadOnlyDictionary<Rhd2164AnalogHighCutoff, IReadOnlyList<int>> AnalogHighCutoffToRegisters
+ public static readonly IReadOnlyDictionary<Rhd2164AnalogLowCutoff, IReadOnlyList<int>> AnalogLowCutoffToRegisters
+ public class Rhd2164Data : Source<Rhd2164DataFrame>
+ public int BufferSize { get; set; }
+ [TypeConverter(typeof(Rhd2164.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<Rhd2164DataFrame> Generate()
+ An observable sequence of data elements of type Rhd2164DataFrame.
+public class Rhd2164DataFrame
+ public Rhd2164DataFrame(ulong[] clock, ulong[] hubClock, Mat amplifierData, Mat auxData)
+ public Mat AmplifierData { get; }
+ public Mat AuxData { get; }
+ public ulong[] Clock { get; }
+ public ulong[] HubClock { get; }
+ public enum Rhd2164DspCutoff
+ Differential = 0
Dsp1166mHz = 12
1.17 Hz
+Dsp1374Hz = 2
1370 Hz
+Dsp146mHz = 15
0.146 Hz
+Dsp152Hz = 5
152 Hz
+Dsp19Hz = 8
18.7 Hz
+Dsp2332mHz = 11
2.33 Hz
+Dsp291mHz = 14
0.291 Hz
+Dsp308Hz = 4
308 Hz
+Dsp3309Hz = 1
3310 Hz
+Dsp37Hz = 7
37.4 Hz
+Dsp4665mHz = 10
4.67 Hz
+Dsp583mHz = 13
0.583 Hz
+Dsp638Hz = 3
638 Hz
+Dsp75Hz = 6
75.2 Hz
+Dsp9336mHz = 9
9.34 Hz
+Off = 16
public abstract class SingleDeviceFactory : DeviceFactory
+ public uint DeviceAddress { get; set; }
+ public string DeviceName { get; set; }
+ [Browsable(false)]
+public Type DeviceType { get; }
+ public class StartAcquisition : Combinator<ContextTask, Frame>
+ public int ReadSize { get; set; }
+ public int WriteSize { get; set; }
+ Processes an observable sequence into a new sequence of the specified +element type.
+public override IObservable<Frame> Process(IObservable<ContextTask> source)
+ source
IObservable<ContextTask>The source sequence to process.
+An observable sequence with elements of type oni.Frame.
+public class TS4231Data : Source<TS4231DataFrame>
+ [TypeConverter(typeof(TS4231.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<TS4231DataFrame> Generate()
+ An observable sequence of data elements of type TS4231DataFrame.
+public class TS4231DataFrame
+ public TS4231DataFrame(Frame frame)
+ frame
Framepublic ulong Clock { get; }
+ public TS4231Envelope EnvelopeType { get; }
+ public uint EnvelopeWidth { get; }
+ public ulong HubClock { get; }
+ public int SensorIndex { get; }
+ public enum TS4231Envelope : short
+ J0 = 1
J1 = 3
J2 = 5
K0 = 2
K1 = 4
K2 = 6
Sweep = 0
public class Test0Data : Source<Test0DataFrame>
+ [Range(1, 1000000)]
+public int BufferSize { get; set; }
+ [TypeConverter(typeof(Test0.NameConverter))]
+public string DeviceName { get; set; }
+ Generates an observable sequence of data elements.
+public override IObservable<Test0DataFrame> Generate()
+ An observable sequence of data elements of type Test0DataFrame.
+public class Test0DataFrame
+ public Test0DataFrame(ulong[] clock, ulong[] hubClock, Mat message, Mat dummy)
+ public ulong[] Clock { get; }
+ public Mat Dummy { get; }
+ public ulong[] HubClock { get; }
+ public Mat Message { get; }
+ public enum VoltageRange
+ FiveVolts = 2
TenVolts = 0
TwoPointFiveVolts = 1
Provides a type converter to convert a device name to and from other representations. +It also provides a mechanism to find existing devices declared in the workflow.
+Managed copy of oni.Frame with strongly-typed data array.
+OpenEphys.Onix
is a Bonsai interface for Open Neuro Interface-compliant hardware. All device initialization, configuration, and streaming functionality is exposed via reactive operators.
To install OpenEphys.Onix
use the Bonsai package manager and search for the OpenEphys.Onix package.
The CreateContext
operator initializes the acquisition context, and it should be the first node you add to your workflow as it provides access to the hardware device table for all other configuration operators.