diff --git a/OpenEphys.Onix1/Bno055Data.cs b/OpenEphys.Onix1/Bno055Data.cs
index 6766408..a4ceb50 100644
--- a/OpenEphys.Onix1/Bno055Data.cs
+++ b/OpenEphys.Onix1/Bno055Data.cs
@@ -10,8 +10,8 @@ namespace OpenEphys.Onix1
/// Produces a sequence of 3D orientation measurements produced by Bno055 9-axis inertial measurement unit.
///
///
- /// This data stream operator must be linked to an appropriate configuration, such as a ,
- /// in order to stream 3D orientation data.
+ /// This data IO operator must be linked to an appropriate configuration operator, such as a , using a shared DeviceName.
///
[Description("Produces a sequence of 3D orientation measurements produced by a Bno055 9-axis inertial measurement unit.")]
public class Bno055Data : Source
diff --git a/OpenEphys.Onix1/BreakoutAnalogInput.cs b/OpenEphys.Onix1/BreakoutAnalogInput.cs
index 38550a9..6a320a3 100644
--- a/OpenEphys.Onix1/BreakoutAnalogInput.cs
+++ b/OpenEphys.Onix1/BreakoutAnalogInput.cs
@@ -12,6 +12,10 @@ namespace OpenEphys.Onix1
///
/// Produces a sequence of analog input frames from an ONIX breakout board.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Produces a sequence of analog input frames from an ONIX breakout board.")]
public class BreakoutAnalogInput : Source
{
diff --git a/OpenEphys.Onix1/BreakoutAnalogOutput.cs b/OpenEphys.Onix1/BreakoutAnalogOutput.cs
index 72f0343..da3c609 100644
--- a/OpenEphys.Onix1/BreakoutAnalogOutput.cs
+++ b/OpenEphys.Onix1/BreakoutAnalogOutput.cs
@@ -10,6 +10,10 @@ namespace OpenEphys.Onix1
///
/// Sends analog output data to an ONIX breakout board.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Sends analog output data to an ONIX breakout board.")]
public class BreakoutAnalogOutput : Sink
{
diff --git a/OpenEphys.Onix1/BreakoutDigitalInput.cs b/OpenEphys.Onix1/BreakoutDigitalInput.cs
index 95cd64f..4f087be 100644
--- a/OpenEphys.Onix1/BreakoutDigitalInput.cs
+++ b/OpenEphys.Onix1/BreakoutDigitalInput.cs
@@ -10,8 +10,8 @@ namespace OpenEphys.Onix1
/// Produces a sequence of digital input data from an ONIX breakout board.
///
///
- /// This data stream operator must be linked to an appropriate configuration, such as a
- /// , in order to stream data.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
///
[Description("Produces a sequence of digital input frames from an ONIX breakout board.")]
public class BreakoutDigitalInput : Source
diff --git a/OpenEphys.Onix1/BreakoutDigitalOutput.cs b/OpenEphys.Onix1/BreakoutDigitalOutput.cs
index 4c0674e..249916e 100644
--- a/OpenEphys.Onix1/BreakoutDigitalOutput.cs
+++ b/OpenEphys.Onix1/BreakoutDigitalOutput.cs
@@ -9,6 +9,10 @@ namespace OpenEphys.Onix1
///
/// Sends digital output data to an ONIX breakout board.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Sends digital output data to an ONIX breakout board.")]
public class BreakoutDigitalOutput : Sink
{
diff --git a/OpenEphys.Onix1/ConfigureBno055.cs b/OpenEphys.Onix1/ConfigureBno055.cs
index d315a9b..07daf71 100644
--- a/OpenEphys.Onix1/ConfigureBno055.cs
+++ b/OpenEphys.Onix1/ConfigureBno055.cs
@@ -5,10 +5,10 @@ namespace OpenEphys.Onix1
{
///
/// Configures a Bosch Bno055 9-axis inertial measurement unit (IMU).
- /// C
+ ///
///
- /// This configuration operator can be linked to a instance to stream
- /// orientation data from the IMU.
+ /// This configuration operator can be linked to a data IO operator, such as ,
+ /// using a shared DeviceName.
///
[Description("Configures a Bosch Bno055 9-axis inertial measurement unit.")]
[Editor("OpenEphys.Onix1.Design.Bno055Editor, OpenEphys.Onix1.Design", typeof(ComponentEditor))]
diff --git a/OpenEphys.Onix1/ConfigureBreakoutAnalogIO.cs b/OpenEphys.Onix1/ConfigureBreakoutAnalogIO.cs
index 3caa7ec..23ff229 100644
--- a/OpenEphys.Onix1/ConfigureBreakoutAnalogIO.cs
+++ b/OpenEphys.Onix1/ConfigureBreakoutAnalogIO.cs
@@ -7,6 +7,11 @@ namespace OpenEphys.Onix1
///
/// Configures the ONIX breakout board's analog inputs and outputs.
///
+ ///
+ /// This configuration operator can be linked to data IO operators, such as and , using a shared
+ /// DeviceName.
+ ///
[TypeConverter(typeof(SortedPropertyConverter))]
[Description("Configures the ONIX breakout board's analog inputs and outputs.")]
public class ConfigureBreakoutAnalogIO : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureBreakoutDigitalIO.cs b/OpenEphys.Onix1/ConfigureBreakoutDigitalIO.cs
index a3943ab..5b22afd 100644
--- a/OpenEphys.Onix1/ConfigureBreakoutDigitalIO.cs
+++ b/OpenEphys.Onix1/ConfigureBreakoutDigitalIO.cs
@@ -6,6 +6,11 @@ namespace OpenEphys.Onix1
///
/// Configures the ONIX breakout board's digital inputs and outputs.
///
+ ///
+ /// This configuration operator can be linked to data IO operators, such as and , using a shared
+ /// DeviceName.
+ ///
[Description("onfigures the ONIX breakout board's digital inputs and outputs.")]
public class ConfigureBreakoutDigitalIO : SingleDeviceFactory
{
diff --git a/OpenEphys.Onix1/ConfigureHarpSyncInput.cs b/OpenEphys.Onix1/ConfigureHarpSyncInput.cs
index 7f4a4a6..cad062d 100644
--- a/OpenEphys.Onix1/ConfigureHarpSyncInput.cs
+++ b/OpenEphys.Onix1/ConfigureHarpSyncInput.cs
@@ -9,6 +9,10 @@ namespace OpenEphys.Onix1
///
///
///
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared DeviceName.
+ ///
+ ///
/// Harp is a standard for asynchronous real-time data acquisition and experimental
/// control in neuroscience. It includes a clock synchronization protocol which allows
/// Harp devices to be connected to a shared clock line and continuously self-synchronize
diff --git a/OpenEphys.Onix1/ConfigureHeadstage64ElectricalStimulator.cs b/OpenEphys.Onix1/ConfigureHeadstage64ElectricalStimulator.cs
index 19867e0..5e61852 100644
--- a/OpenEphys.Onix1/ConfigureHeadstage64ElectricalStimulator.cs
+++ b/OpenEphys.Onix1/ConfigureHeadstage64ElectricalStimulator.cs
@@ -7,10 +7,9 @@ namespace OpenEphys.Onix1
/// Configures a headstage-64 onboard electrical stimulator.
///
///
- /// This configuration operator can be linked to a
- /// instance to deliver current controlled electrical micro-stimulation through a contact on the probe
- /// connector on the bottom of the headstage or the corresponding contact on a compatible electrode
- /// interface board.
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared
+ /// DeviceName.
///
[Description("Configures a headstage-64 onboard electrical stimulator.")]
public class ConfigureHeadstage64ElectricalStimulator : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureHeadstage64OpticalStimulator.cs b/OpenEphys.Onix1/ConfigureHeadstage64OpticalStimulator.cs
index a85139f..9004f09 100644
--- a/OpenEphys.Onix1/ConfigureHeadstage64OpticalStimulator.cs
+++ b/OpenEphys.Onix1/ConfigureHeadstage64OpticalStimulator.cs
@@ -7,9 +7,9 @@ namespace OpenEphys.Onix1
/// Configures a headstage-64 dual-channel optical stimulator.
///
///
- /// This configuration class can be linked to a instance
- /// to drive current through laser diodes or LEDs connected to two contacts on the probe connector on the
- /// bottom of the headstage or the corresponding contacts on a compatible electrode interface board.
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared
+ /// DeviceName.
///
[Description("Configures a headstage-64 dual-channel optical stimulator.")]
public class ConfigureHeadstage64OpticalStimulator : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureHeartbeat.cs b/OpenEphys.Onix1/ConfigureHeartbeat.cs
index e304fdf..b612a8f 100644
--- a/OpenEphys.Onix1/ConfigureHeartbeat.cs
+++ b/OpenEphys.Onix1/ConfigureHeartbeat.cs
@@ -8,11 +8,11 @@ namespace OpenEphys.Onix1
{
///
/// Configures a heartbeat device.
+ ///
///
- /// This configuration operator can be linked to a instance to stream
- /// heartbeats from the acquisition system.
+ /// This configuration operator can be linked to a data IO operator, such as ,
+ /// using a shared DeviceName.
///
- ///
[Description("Configures a heartbeat device.")]
public class ConfigureHeartbeat : SingleDeviceFactory
{
diff --git a/OpenEphys.Onix1/ConfigureLoadTester.cs b/OpenEphys.Onix1/ConfigureLoadTester.cs
index 7ee5ed7..55d7a1e 100644
--- a/OpenEphys.Onix1/ConfigureLoadTester.cs
+++ b/OpenEphys.Onix1/ConfigureLoadTester.cs
@@ -7,12 +7,15 @@
namespace OpenEphys.Onix1
{
+ // TODO: Add data IO operators, update XML comment to link to them ()
///
/// Configures a load tester device.
///
///
- /// The load tester device can be configured to produce data at user-settable size and rate
- /// to stress test various communication links and test closed-loop response latency.
+ /// This configuration operator can be linked to a data IO operator, such as LoadTesterData,
+ /// using a shared DeviceName. The load tester device can be configured
+ /// to produce data at user-settable size and rate to stress test various communication links and test
+ /// closed-loop response latency.
///
[Description("Configures a load testing device.")]
public class ConfigureLoadTester : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureMemoryMonitor.cs b/OpenEphys.Onix1/ConfigureMemoryMonitor.cs
index 9ebc941..be7cb56 100644
--- a/OpenEphys.Onix1/ConfigureMemoryMonitor.cs
+++ b/OpenEphys.Onix1/ConfigureMemoryMonitor.cs
@@ -8,19 +8,24 @@ namespace OpenEphys.Onix1
/// Configures a hardware memory monitor.
///
///
- /// The memory monitor produces periodic snapshots of the system's first in, first out (FIFO) data buffer.
- /// This can be useful for:
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared DeviceName.The memory
+ /// monitor produces periodic snapshots of the system's first in, first out (FIFO) data buffer. This can
+ /// be useful for:
///
/// -
- /// Ensuring that data is being read by the host PC quickly enough to prevent real-time delays or overflows.
- /// In the case that the PC is not keeping up with data collection, FIFO memory use will increase monotonically.
+ /// Ensuring that data is being read by the host PC quickly enough to prevent real-time
+ /// delays or overflows. In the case that the PC is not keeping up with data collection, FIFO memory use
+ /// will increase monotonically.
///
/// -
- /// Tuning the value of to optimize real-time performance.
- /// For optimal real-time performance, should be as small as possible and the FIFO should be bypassed
- /// (memory usage should remain at 0). However, these requirements are in conflict. The memory monitor provides a way to find the minimal value of
- /// value of that does not result in excessive FIFO data buffering. This tradeoff will depend on the
- /// bandwidth of data being acquired, the performance of the host PC, and downstream real-time processing.
+ /// Tuning the value of to optimize real-time
+ /// performance. For optimal real-time performance, should be as
+ /// small as possible and the FIFO should be bypassed (memory usage should remain at 0). However, these
+ /// requirements are in conflict. The memory monitor provides a way to find the minimal value of value of
+ /// that does not result in excessive FIFO data buffering. This
+ /// tradeoff will depend on the bandwidth of data being acquired, the performance of the host PC, and
+ /// downstream real-time processing.
///
///
///
diff --git a/OpenEphys.Onix1/ConfigureNeuropixelsV1e.cs b/OpenEphys.Onix1/ConfigureNeuropixelsV1e.cs
index 5b52796..353e618 100644
--- a/OpenEphys.Onix1/ConfigureNeuropixelsV1e.cs
+++ b/OpenEphys.Onix1/ConfigureNeuropixelsV1e.cs
@@ -9,6 +9,10 @@ namespace OpenEphys.Onix1
///
/// Configures a NeuropixelsV1e device.
///
+ ///
+ /// This configuration operator can be linked to a data IO operator, such as ,
+ /// using a shared DeviceName.
+ ///
[Description("Configures a NeuropixelsV1e device.")]
[Editor("OpenEphys.Onix1.Design.NeuropixelsV1eEditor, OpenEphys.Onix1.Design", typeof(ComponentEditor))]
public class ConfigureNeuropixelsV1e : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureNeuropixelsV1eBno055.cs b/OpenEphys.Onix1/ConfigureNeuropixelsV1eBno055.cs
index 31debfc..e77332c 100644
--- a/OpenEphys.Onix1/ConfigureNeuropixelsV1eBno055.cs
+++ b/OpenEphys.Onix1/ConfigureNeuropixelsV1eBno055.cs
@@ -6,6 +6,10 @@ namespace OpenEphys.Onix1
///
/// Configures a NeuropixelsV1eBno055 device.
///
+ ///
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared DeviceName.
+ ///
[Description("Configures a NeuropixelsV1eBno055 device.")]
[Editor("OpenEphys.Onix1.Design.NeuropixelsV1eBno055Editor, OpenEphys.Onix1.Design", typeof(ComponentEditor))]
public class ConfigureNeuropixelsV1eBno055 : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs b/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs
index 4947229..418ea69 100644
--- a/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs
+++ b/OpenEphys.Onix1/ConfigureNeuropixelsV2e.cs
@@ -293,7 +293,7 @@ static class NeuropixelsV2e
public const byte ProbeBSelected = 0b1001_1001;
public const int FramesPerSuperFrame = 16;
- public const int ADCsPerProbe = 24;
+ public const int AdcsPerProbe = 24;
public const int ChannelCount = 384;
public const int FrameWords = 36; // TRASH TRASH TRASH 0 ADC0 ADC8 ADC16 0 ADC1 ADC9 ADC17 0 ... ADC7 ADC15 ADC23 0
diff --git a/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs b/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs
index 6d20ae3..512b769 100644
--- a/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs
+++ b/OpenEphys.Onix1/ConfigureNeuropixelsV2eBeta.cs
@@ -9,6 +9,10 @@ namespace OpenEphys.Onix1
///
/// Configures a NeuropixelsV2eBeta device.
///
+ ///
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared DeviceName.
+ ///
[Description("Configures a NeuropixelsV2eBeta device.")]
[Editor("OpenEphys.Onix1.Design.NeuropixelsV2eEditor, OpenEphys.Onix1.Design", typeof(ComponentEditor))]
public class ConfigureNeuropixelsV2eBeta : SingleDeviceFactory, IConfigureNeuropixelsV2
diff --git a/OpenEphys.Onix1/ConfigureNeuropixelsV2eBno055.cs b/OpenEphys.Onix1/ConfigureNeuropixelsV2eBno055.cs
index 506c7f1..4db722f 100644
--- a/OpenEphys.Onix1/ConfigureNeuropixelsV2eBno055.cs
+++ b/OpenEphys.Onix1/ConfigureNeuropixelsV2eBno055.cs
@@ -6,6 +6,10 @@ namespace OpenEphys.Onix1
///
/// Configures a NeuropixelsV2eBno055 device.
///
+ ///
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared DeviceName.
+ ///
[Editor("OpenEphys.Onix1.Design.NeuropixelsV2eBno055Editor, OpenEphys.Onix1.Design", typeof(ComponentEditor))]
[Description("Configures a NeuropixelsV2eBno055 device.")]
public class ConfigureNeuropixelsV2eBno055 : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureRhd2164.cs b/OpenEphys.Onix1/ConfigureRhd2164.cs
index c6fdd87..f9ed506 100644
--- a/OpenEphys.Onix1/ConfigureRhd2164.cs
+++ b/OpenEphys.Onix1/ConfigureRhd2164.cs
@@ -7,8 +7,8 @@ namespace OpenEphys.Onix1
/// Configures an Intan Rhd2164 bioamplifier chip.
///
///
- /// This configuration operator can be linked to a instance to stream
- /// electrophysiology data from the chip.
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared DeviceName.
///
[Description("Configures a Rhd2164 device.")]
public class ConfigureRhd2164 : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/ConfigureTS4231V1.cs b/OpenEphys.Onix1/ConfigureTS4231V1.cs
index 532b1d0..31a8634 100644
--- a/OpenEphys.Onix1/ConfigureTS4231V1.cs
+++ b/OpenEphys.Onix1/ConfigureTS4231V1.cs
@@ -8,8 +8,10 @@ namespace OpenEphys.Onix1
/// a pair of SteamVR V1 base stations.
///
///
- /// This configuration operator can be linked to a instance to stream 3D position data from
- /// light-house receivers when SteamVR V1 base stations have been installed above the arena.
+ /// This configuration operator can be linked to a data IO operator, such as , using a shared DeviceName to stream 3D
+ /// position data from light-house receivers when SteamVR V1 base stations have been installed above the
+ /// arena.
///
[Description("Configures a TS4231 receiver array.")]
public class ConfigureTS4231V1 : SingleDeviceFactory
diff --git a/OpenEphys.Onix1/DeviceFactory.cs b/OpenEphys.Onix1/DeviceFactory.cs
index 443fbda..73bee4b 100644
--- a/OpenEphys.Onix1/DeviceFactory.cs
+++ b/OpenEphys.Onix1/DeviceFactory.cs
@@ -23,14 +23,13 @@ public abstract class DeviceFactory : Sink
}
///
- /// Provides an abstract base class for configuration operators responsible for
- /// registering a single device within the internal device manager.
+ /// Abstract base for configuration operators responsible for registering a single device within the
+ /// internal device manager.
///
///
- /// ONI devices usually require a specific sequence of configuration and parameterization
- /// steps before they can be interacted with. The
- /// provides a modular abstraction allowing flexible assembly and sequencing of
- /// of all device-specific configuration code.
+ /// ONI devices usually require a specific sequence of configuration and parameterization steps before
+ /// they can be interacted with. The provides a modular abstraction
+ /// allowing flexible assembly and sequencing of of all device-specific configuration code.
///
public abstract class SingleDeviceFactory : DeviceFactory, IDeviceConfiguration
{
@@ -47,9 +46,11 @@ internal SingleDeviceFactory(Type deviceType)
///
///
/// The device name provides a unique, human-readable identifier that is used to link software
- /// elements for configuration, control, and data streaming to hardware. This is often a one-to-one
- /// representation of a single , but can also represent abstract ONI device
- /// aggregates or virtual devices.
+ /// elements for configuration, control, and data streaming to hardware. For instance, it can be used
+ /// to link configuration operators to data IO operators within a workflow. This value is
+ /// usually not set manually, but is assigned in a to correspond to a
+ /// fixed address with a piece of hardware such as a headstage. This address is used for software
+ /// communication.
///
[Description(DeviceNameDescription)]
[Category(ConfigurationCategory)]
@@ -59,8 +60,11 @@ internal SingleDeviceFactory(Type deviceType)
/// Gets or sets the device address.
///
///
- /// This address provides a fully-qualified location of a device within the device table. This is often a one-to-one
- /// representation of a , but can also represent abstract device addresses.
+ /// This is a fully-qualified numerical hardware address of a device within the device table produced
+ /// by an Open Neuro Interface (ONI) compliant
+ /// acquisition system. This value is usually not set manually, but is assigned in a to correspond to a fixed address with a piece of hardware such as a
+ /// headstage. This address is used for hardware communication.
///
[Description(DeviceAddressDescription)]
[Category(ConfigurationCategory)]
@@ -70,8 +74,9 @@ internal SingleDeviceFactory(Type deviceType)
/// Gets or sets the device identity.
///
///
- /// This type provides a device identity to each device within the device table. This is often a one-to-one
- /// representation of a a , but can also represent abstract device identities.
+ /// This type provides a device identity to each device within the device table produced by an Open Neuro Interface (ONI) compliant acquisition
+ /// system.
///
[Browsable(false)]
public Type DeviceType { get; }
diff --git a/OpenEphys.Onix1/HarpSyncInputData.cs b/OpenEphys.Onix1/HarpSyncInputData.cs
index d149086..b0d6bd1 100644
--- a/OpenEphys.Onix1/HarpSyncInputData.cs
+++ b/OpenEphys.Onix1/HarpSyncInputData.cs
@@ -7,7 +7,8 @@
namespace OpenEphys.Onix1
{
///
- /// Produces a sequence of Harp clock synchronization signals sent to the Harp input in the ONIX breakout board.
+ /// Produces a sequence of Harp clock synchronization signals sent to the Harp input in the ONIX breakout
+ /// board.
///
///
[Description("Produces a sequence of Harp clock synchronization signals sent to the Harp input in the ONIX breakout board.")]
diff --git a/OpenEphys.Onix1/Headstage64ElectricalStimulatorTrigger.cs b/OpenEphys.Onix1/Headstage64ElectricalStimulatorTrigger.cs
index 82ed572..4af7d24 100644
--- a/OpenEphys.Onix1/Headstage64ElectricalStimulatorTrigger.cs
+++ b/OpenEphys.Onix1/Headstage64ElectricalStimulatorTrigger.cs
@@ -14,8 +14,11 @@ namespace OpenEphys.Onix1
/// Controls a headstage-64 onboard electrical stimulus sequencer.
///
///
- /// This operator must be linked to an appropriate configuration, such as a ,
- /// in order to define and deliver electrical stimulation sequences.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ /// Headstage-64's onboard electrical stimulator can be used to deliver current controlled
+ /// micro-stimulation through a contact on the probe connector on the bottom of the headstage or the
+ /// corresponding contact on a compatible electrode interface board.
///
[Description("Controls a headstage-64 onboard electrical stimulus sequencer.")]
public class Headstage64ElectricalStimulatorTrigger: Sink
diff --git a/OpenEphys.Onix1/Headstage64OpticalStimulatorTrigger.cs b/OpenEphys.Onix1/Headstage64OpticalStimulatorTrigger.cs
index b2a4f67..b1a5ebe 100644
--- a/OpenEphys.Onix1/Headstage64OpticalStimulatorTrigger.cs
+++ b/OpenEphys.Onix1/Headstage64OpticalStimulatorTrigger.cs
@@ -14,8 +14,11 @@ namespace OpenEphys.Onix1
/// Controls a headstage-64 onboard optical stimulus sequencer.
///
///
- /// This operator must be linked to an appropriate configuration, such as a ,
- /// in order to define and deliver optical stimulation sequences.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ /// Headstage-64's onboard optical stimulator can be used to drive current through laser diodes or LEDs
+ /// connected to two contacts on the probe connector on the bottom of the headstage or the corresponding
+ /// contacts on a compatible electrode interface board.
///
[Description("Controls a headstage-64 onboard optical stimulus sequencer.")]
public class Headstage64OpticalStimulatorTrigger : Sink
diff --git a/OpenEphys.Onix1/HeartbeatData.cs b/OpenEphys.Onix1/HeartbeatData.cs
index acab0da..8a4eabf 100644
--- a/OpenEphys.Onix1/HeartbeatData.cs
+++ b/OpenEphys.Onix1/HeartbeatData.cs
@@ -10,8 +10,8 @@ namespace OpenEphys.Onix1
/// Produces a sequence of heartbeat data frames.
///
///
- /// This data stream class must be linked to an appropriate configuration, such as a ,
- /// in order to stream heartbeat data.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
///
[Description("Produces a sequence of heartbeat data frames.")]
public class HeartbeatData : Source
diff --git a/OpenEphys.Onix1/MemoryMonitorData.cs b/OpenEphys.Onix1/MemoryMonitorData.cs
index 61316de..cdeadc7 100644
--- a/OpenEphys.Onix1/MemoryMonitorData.cs
+++ b/OpenEphys.Onix1/MemoryMonitorData.cs
@@ -10,8 +10,8 @@ namespace OpenEphys.Onix1
/// Produces a sequence of memory usage data frames.
///
///
- /// This data stream operator must be linked to an appropriate configuration, such as a ,
- /// in order to stream data.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
///
[Description("Produces a sequence of memory usage data frames.")]
public class MemoryMonitorData : Source
diff --git a/OpenEphys.Onix1/MultiDeviceFactory.cs b/OpenEphys.Onix1/MultiDeviceFactory.cs
index 4477261..218e399 100644
--- a/OpenEphys.Onix1/MultiDeviceFactory.cs
+++ b/OpenEphys.Onix1/MultiDeviceFactory.cs
@@ -42,8 +42,8 @@ internal MultiDeviceFactory()
/// Gets or sets a unique device group name.
///
///
- /// A human-readable identifier that is used as a prefix for
- /// the of each device in the the group.
+ /// A human-readable identifier that is used as a prefix for the of each device in the the group.
///
[Description("The unique device group name.")]
[Category(ConfigurationCategory)]
diff --git a/OpenEphys.Onix1/NeuropixelsV1eBno055Data.cs b/OpenEphys.Onix1/NeuropixelsV1eBno055Data.cs
index b5564d8..2e8fdd8 100644
--- a/OpenEphys.Onix1/NeuropixelsV1eBno055Data.cs
+++ b/OpenEphys.Onix1/NeuropixelsV1eBno055Data.cs
@@ -9,6 +9,10 @@ namespace OpenEphys.Onix1
///
/// Produces a sequence of objects from a NeuropixelsV1e headstage.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Produces a sequence of Bno055DataFrame objects from a NeuropixelsV1e headstage.")]
public class NeuropixelsV1eBno055Data : Source
{
diff --git a/OpenEphys.Onix1/NeuropixelsV1eData.cs b/OpenEphys.Onix1/NeuropixelsV1eData.cs
index a2e7979..b996643 100644
--- a/OpenEphys.Onix1/NeuropixelsV1eData.cs
+++ b/OpenEphys.Onix1/NeuropixelsV1eData.cs
@@ -11,6 +11,10 @@ namespace OpenEphys.Onix1
///
/// Produces a sequence of s from a NeuropixelsV1e headstage.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Produces a sequence of NeuropixelsV1eDataFrame objects from a NeuropixelsV1e headstage.")]
public class NeuropixelsV1eData : Source
{
diff --git a/OpenEphys.Onix1/NeuropixelsV2eBetaData.cs b/OpenEphys.Onix1/NeuropixelsV2eBetaData.cs
index 4861d05..d6654a6 100644
--- a/OpenEphys.Onix1/NeuropixelsV2eBetaData.cs
+++ b/OpenEphys.Onix1/NeuropixelsV2eBetaData.cs
@@ -11,6 +11,10 @@ namespace OpenEphys.Onix1
///
/// Produces a sequence of objects from a NeuropixelsV2eBeta headstage.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Produces a sequence of NeuropixelsV2eDataFrame objects from a NeuropixelsV2e headstage.")]
public class NeuropixelsV2eBetaData : Source
{
diff --git a/OpenEphys.Onix1/NeuropixelsV2eBno055Data.cs b/OpenEphys.Onix1/NeuropixelsV2eBno055Data.cs
index 28b7955..79a3974 100644
--- a/OpenEphys.Onix1/NeuropixelsV2eBno055Data.cs
+++ b/OpenEphys.Onix1/NeuropixelsV2eBno055Data.cs
@@ -9,6 +9,10 @@ namespace OpenEphys.Onix1
///
/// Produces a sequence of objects from a NeuropixelsV2e headstage.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Produces a sequence of Bno055DataFrame objects from a NeuropixelsV2e headstage.")]
public class NeuropixelsV2eBno055Data : Source
{
diff --git a/OpenEphys.Onix1/NeuropixelsV2eData.cs b/OpenEphys.Onix1/NeuropixelsV2eData.cs
index 4891b4e..f064918 100644
--- a/OpenEphys.Onix1/NeuropixelsV2eData.cs
+++ b/OpenEphys.Onix1/NeuropixelsV2eData.cs
@@ -11,6 +11,10 @@ namespace OpenEphys.Onix1
///
/// Produces a sequence of objects from a NeuropixelsV2e headstage.
///
+ ///
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
+ ///
[Description("Produces a sequence of NeuropixelsV2eDataFrame objects from a NeuropixelsV2e headstage.")]
public class NeuropixelsV2eData : Source
{
@@ -24,12 +28,13 @@ public class NeuropixelsV2eData : Source
/// Gets or sets the buffer size.
///
///
- /// This property determines the number of super-frames that are buffered before data is propagated. A super-frame consists of 384
- /// channels from the spike-band and 32 channels from the LFP band. If this value is set to 30, then 30 super-frames, along with
- /// corresponding clock values, will be collected and packed into each . Because channels are
- /// sampled at 30 kHz, this is equivalent to 1 millisecond of data from each channel.
+ /// This property determines the number of samples that are collected from each of the 384 ephys
+ /// channels before data is propagated. For instance, if this value is set to 30, then 384x30 samples,
+ /// along with 30 corresponding clock values, will be collected and packed into each . Because channels are sampled at 30 kHz, this is equivalent to 1
+ /// millisecond of data from each channel.
///
- [Description("The number of samples collected for each channel that are used to create a single NeuropixelsV2eDataFrame.")]
+ [Description("The number of samples collected from each channel that are used to create a single NeuropixelsV2eDataFrame.")]
[Category(DeviceFactory.ConfigurationCategory)]
public int BufferSize { get; set; } = 30;
@@ -41,9 +46,9 @@ public class NeuropixelsV2eData : Source
public NeuropixelsV2Probe ProbeIndex { get; set; }
///
- /// Generates a sequence of objects.
+ /// Generates a sequence of s.
///
- /// A sequence of objects.
+ /// A sequence of s.
public unsafe override IObservable Generate()
{
var bufferSize = BufferSize;
diff --git a/OpenEphys.Onix1/NeuropixelsV2eDataFrame.cs b/OpenEphys.Onix1/NeuropixelsV2eDataFrame.cs
index 00f5c22..3a3ccbc 100644
--- a/OpenEphys.Onix1/NeuropixelsV2eDataFrame.cs
+++ b/OpenEphys.Onix1/NeuropixelsV2eDataFrame.cs
@@ -39,9 +39,9 @@ internal static unsafe void CopyAmplifierBuffer(ushort* amplifierData, ushort[,]
// The period of ADC data within data array is 36 words
var adcDataOffset = i * NeuropixelsV2e.FrameWords;
- for (int k = 0; k < NeuropixelsV2e.ADCsPerProbe; k++)
+ for (int k = 0; k < NeuropixelsV2e.AdcsPerProbe; k++)
{
- amplifierBuffer[RawToChannel[k, i], index] = (ushort)(gainCorrection * amplifierData[ADCIndices[k] + adcDataOffset]);
+ amplifierBuffer[RawToChannel[k, i], index] = (ushort)(gainCorrection * amplifierData[AdcIndicies[k] + adcDataOffset]);
}
}
}
@@ -50,7 +50,7 @@ internal static unsafe void CopyAmplifierBuffer(ushort* amplifierData, ushort[,]
// First dimension: data index
// Second dimension: frame index within super frame
- static readonly int[] ADCIndices = {
+ static readonly int[] AdcIndicies = {
0, 1, 2,
4, 5, 6,
8, 9, 10,
diff --git a/OpenEphys.Onix1/PortStatus.cs b/OpenEphys.Onix1/PortStatus.cs
index 4be51a6..0587b9f 100644
--- a/OpenEphys.Onix1/PortStatus.cs
+++ b/OpenEphys.Onix1/PortStatus.cs
@@ -10,9 +10,8 @@ namespace OpenEphys.Onix1
/// Produces a sequence of port status information frames.
///
///
- /// This data stream operator must be linked to an appropriate headstage,
- /// miniscope, etc. configuration whose communication is dictated by
- /// a PortController.
+ /// This data IO operator must be linked to an appropriate headstage or miniscope configuration (e.g. ) using a shared DeviceName.
///
[Description("Produces a sequence of port status information.")]
public class PortStatus : Source
diff --git a/OpenEphys.Onix1/Rhd2164Data.cs b/OpenEphys.Onix1/Rhd2164Data.cs
index 044a51a..3f3522f 100644
--- a/OpenEphys.Onix1/Rhd2164Data.cs
+++ b/OpenEphys.Onix1/Rhd2164Data.cs
@@ -13,8 +13,8 @@ namespace OpenEphys.Onix1
/// Produces a sequence of electrophysiology data frames from an Intan Rhd2164 bioacquisition chip.
///
///
- /// This data stream operator must be linked to an appropriate configuration, such as a ,
- /// in order to stream electrophysiology data.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
///
[Description("Produces a sequence of electrophysiology data frames from an Intan Rhd2164 bioacquisition chip.")]
public class Rhd2164Data : Source
diff --git a/OpenEphys.Onix1/TS4231V1Data.cs b/OpenEphys.Onix1/TS4231V1Data.cs
index 2a635bf..3116ba8 100644
--- a/OpenEphys.Onix1/TS4231V1Data.cs
+++ b/OpenEphys.Onix1/TS4231V1Data.cs
@@ -11,14 +11,15 @@ namespace OpenEphys.Onix1
///
///
///
- /// This data stream class must be linked to an appropriate configuration, such as a ,
- /// in order to stream 3D position data.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
///
///
- /// The data produced by this class contains individual base station pulse/sweep codes and timing information. These data provide
- /// rapid updates that constrain the possible position of a sensor and therefore can be combined with orientation information
- /// in a downstream predictive model (e.g. Kalman filter) for high-accuracy and robust position tracking. To produce naïve
- /// position estimates, use the operator instead of this one.
+ /// The data produced by this class contains individual base station pulse/sweep codes and timing
+ /// information. These data provide rapid updates that constrain the possible position of a sensor and
+ /// therefore can be combined with orientation information in a downstream predictive model (e.g. Kalman
+ /// filter) for high-accuracy and robust position tracking. To produce naïve position estimates, use the
+ /// operator instead of this one.
///
///
[Description("Produces a sequence of decoded optical signals produced by a pair of SteamVR V1 base stations.")]
diff --git a/OpenEphys.Onix1/TS4231V1PositionData.cs b/OpenEphys.Onix1/TS4231V1PositionData.cs
index fedebda..77f602f 100644
--- a/OpenEphys.Onix1/TS4231V1PositionData.cs
+++ b/OpenEphys.Onix1/TS4231V1PositionData.cs
@@ -9,30 +9,33 @@
namespace OpenEphys.Onix1
{
///
- /// Produces a sequence of 3D positions from an array of Triad Semiconductor TS4231 receivers beneath
- /// a pair of SteamVR V1 base stations.
+ /// Produces a sequence of 3D positions from an array of Triad Semiconductor TS4231 receivers beneath a
+ /// pair of SteamVR V1 base stations.
///
///
///
- /// This data stream class must be linked to an appropriate configuration, such as a ,
- /// in order to stream data.
+ /// This data IO operator must be linked to an appropriate configuration, such as a , using a shared DeviceName.
///
///
- /// The data produced by this class contains naïve geometric estimates of positions of photodiodes attached to each TS4231 chip.
- /// This operator makes the following assumptions about the setup:
+ /// The data produced by this class contains naïve geometric estimates of positions of photodiodes
+ /// attached to each TS4231 chip. This operator makes the following assumptions about the setup:
///
/// - Two SteamVR V1 base stations are used.
- /// - The base stations have been synchronized with a patch cable and their modes set to ‘A’ and ‘b’, respectively.
+ /// - The base stations have been synchronized with a patch cable and their modes set to
+ /// ‘A’ and ‘b’, respectively.
/// - The base stations are pointed in the same direction.
- /// - The Z-axis extends away the emitting face of lighthouses, X along the direction of the text on the back label,
- /// and Y from bottom to top text on the back label.
+ /// - The Z-axis extends away the emitting face of lighthouses, X along the direction of
+ /// the text on the back label, and Y from bottom to top text on the back label.
///
- /// This operator collects a sequence of objects from each TS3231 receiver that are used to determine the ray from each
- /// base station to the TS3231's photodiode. A simple geometric inversion is performed to determine the photodiodes 3D position from the values
- /// and . It does not use a predictive model or integrate data from an IMU and is therefore quite sensitive to
- /// obstructions in and will require post-hoc processing to correct systematic errors due to optical aberrations and nonlinearities. The the
- /// operator provides access to individual lighthouse signals that is useful for a creating more robust position
- /// estimates using downstream processing.
+ /// This operator collects a sequence of objects from each TS3231 receiver that
+ /// are used to determine the ray from each base station to the TS3231's photodiode. A simple geometric
+ /// inversion is performed to determine the photodiodes 3D position from the values and
+ /// . It does not use a predictive model or integrate data from an IMU and is therefore
+ /// quite sensitive to obstructions and will require post-hoc processing to correct systematic errors
+ /// due to optical aberrations and nonlinearities. The the operator provides
+ /// access to individual lighthouse signals that is useful for a creating more robust position estimates
+ /// using downstream processing.
///
///
[Description("Produces a sequence of 3D positions from an array of Triad Semiconductor TS4231 receivers beneath a pair of SteamVR V1 base stations.")]
@@ -48,8 +51,9 @@ public class TS4231V1PositionData : Source
/// Gets or sets the position of the first base station in arbitrary units.
///
///
- /// The units used will determine the units of and must match those used in .
- /// Typically this value is used to define the origin and remains at (0, 0, 0).
+ /// The units used will determine the units of and
+ /// must match those used in . Typically this value is used to define the origin and
+ /// remains at (0, 0, 0).
///
[Description("The position of the first base station in arbitrary units.")]
[Category(DeviceFactory.ConfigurationCategory)]
@@ -59,14 +63,16 @@ public class TS4231V1PositionData : Source
/// Gets or sets the position of the second base station in arbitrary units.
///
///
- /// The units used will determine the units of and must match those used in .
+ /// The units used will determine the units of and
+ /// must match those used in .
///
[Description("The position of the second base station in arbitrary units.")]
[Category(DeviceFactory.ConfigurationCategory)]
public Point3d Q { get; set; } = new(1, 0, 0);
///
- /// Generates a sequence of objects, each of which contains the 3D position of single photodiode.
+ /// Generates a sequence of objects, each of which contains
+ /// the 3D position of single photodiode.
///
/// A sequence of objects.
public unsafe override IObservable Generate()