-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minor updates to documentation #189
Merged
Merged
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -6,19 +6,26 @@ namespace OpenEphys.Onix1 | |||||
{ | ||||||
/// <summary> | ||||||
/// Provides an abstract base class for configuration operators responsible for | ||||||
/// registering all devices in an ONI device aggregate in the context device table. | ||||||
/// registering logical groups of <see cref="oni.Device"/>s. | ||||||
/// </summary> | ||||||
/// <remarks> | ||||||
/// <para> | ||||||
/// ONI devices are often grouped into multi-device aggregates connected to hubs or | ||||||
/// headstages. These aggregates provide access to multiple devices through hub-specific | ||||||
/// addresses and usually require a specific sequence of configuration steps to determine | ||||||
/// operational port voltages and other link-specific settings. | ||||||
/// The ONI standard states that devices are grouped into aggregates called hubs, each of which is | ||||||
/// governed by a single, potentially asynchronous clock and share a common base address. The devices on | ||||||
/// a headstage are an example of a hub. Devices within a hub are accessed through hub-specific addresses | ||||||
/// and usually require a specific sequence of configuration steps prior to acquisition. | ||||||
/// </para> | ||||||
/// <para> | ||||||
/// These multi-device aggregates are the most common starting point for configuration | ||||||
/// of an ONI system, and the <see cref="MultiDeviceFactory"/> provides a modular abstraction | ||||||
/// for flexible assembly and sequencing of multiple such aggregates. | ||||||
/// This class allows configuration of logical device groups of <see cref="oni.Device"/>s across ONI-defined | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
/// hubs. For instance, the group of devices within a headstage (a single hub) can be combined with a device | ||||||
/// from another hub that is used to control its port voltage and communication status | ||||||
/// (e.g. <see cref="ConfigureHeadstage64"/>). Alternatively, diagnostic devices that are present within | ||||||
/// an ONI hub can be omitted from a device group to aid it useability (e.g. <see cref="ConfigureBreakoutBoard"/>). | ||||||
bparks13 marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
/// </para> | ||||||
/// <para> | ||||||
/// These device groups are the most common starting point for configuration | ||||||
/// of an ONI system, and the <see cref="MultiDeviceFactory"/> provides a modular abstraction for flexible | ||||||
/// assembly and sequencing of device groups. | ||||||
/// </para> | ||||||
/// </remarks> | ||||||
public abstract class MultiDeviceFactory : DeviceFactory, INamedElement | ||||||
|
@@ -34,10 +41,10 @@ internal MultiDeviceFactory() | |||||
} | ||||||
|
||||||
/// <summary> | ||||||
/// Gets or sets a unique hub device name. | ||||||
/// Gets or sets a unique device group name. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could be useful to clarify here that this name is used as a prefix for individual device names in the group. |
||||||
/// </summary> | ||||||
/// <inheritdoc cref = "SingleDeviceFactory.DeviceName"/> | ||||||
[Description("The unique hub device name.")] | ||||||
[Description("The unique device group name.")] | ||||||
public string Name | ||||||
{ | ||||||
get { return _name; } | ||||||
|
@@ -62,7 +69,7 @@ internal virtual void UpdateDeviceNames() | |||||
} | ||||||
|
||||||
/// <summary> | ||||||
/// Configure all the ONI devices in the multi-device aggregate. | ||||||
/// Configure all devices in the device group. | ||||||
/// </summary> | ||||||
/// <remarks> | ||||||
/// This will schedule configuration actions to be applied by a <see cref="StartAcquisition"/> instance | ||||||
|
@@ -71,13 +78,13 @@ internal virtual void UpdateDeviceNames() | |||||
/// <param name="source">A sequence of <see cref="ContextTask"/> instances that hold configuration actions.</param> | ||||||
/// <returns> | ||||||
/// The original sequence modified by adding additional configuration actions required to configure | ||||||
/// all the ONI devices in the multi-device aggregate. | ||||||
/// all the devices in the device group. | ||||||
/// </returns> | ||||||
public override IObservable<ContextTask> Process(IObservable<ContextTask> source) | ||||||
{ | ||||||
if (string.IsNullOrEmpty(_name)) | ||||||
{ | ||||||
throw new InvalidOperationException("A valid hub device name must be specified."); | ||||||
throw new InvalidOperationException("A valid device group name must be specified."); | ||||||
} | ||||||
|
||||||
var output = source; | ||||||
|
@@ -90,3 +97,4 @@ public override IObservable<ContextTask> Process(IObservable<ContextTask> source | |||||
} | ||||||
} | ||||||
} | ||||||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This somehow seems now less clear, since it makes it seem the operator is registering the group rather than each individual device. Maybe we shouldn't talk about "device table" since that is a hardware specific concept, but mentioning that there is a context "device manager" might be important so people understand why sometimes the drop down shows devices and sometimes not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really, as far as I see, we are both wrong.
I m going to remove references to oni.Devices because its just not correct. I agree with Device manager comment ill try to add some text.