open-ephys / ONI

Open Neuro Interface Hardware Specification and API Documentation
https://open-ephys.github.io/ONI/
Creative Commons Attribution Share Alike 4.0 International
1 stars 2 forks source link

ONI spec section #6

Open aacuevas opened 5 months ago

aacuevas commented 5 months ago

Ported from https://github.com/jonnew/ONI/issues/6 and related to #5

Original text:

ONI compliance registers Since the spec might evolve in the future, with new capabilities that might have hardware-dependent parameters, the second register region is reserved for information about the hardware capabilities themselves. Address 0x00100000 will contain the specification version. Since new capabilities will always be specified in a revision, this is enough to inform of all the capabilities. Following addresses will specify optional or hardware-dependent parameters as described in the relevant specification version, such as buffer sizes for specific functions.

aacuevas commented 5 months ago

Since I originally wrote this, I have a slightly different opinion. The base idea is the same: We need a field that informs to which spec revision the hardware is compliant. And we might need fields for some values whose meaning might be defined by the spec but actual values are hardware-dependent.

However, I am now inclined to think that a revision might not always just be a full set of fixed capabilities. I believe we should be able to define capabilities as "optional" sections of the spec, which is a common practice. This section should, then, accommodate ways to inform which optional capabilities (as defined by a spec version) are enabled.