DAPS: Add intrin specs to nontrin specs
We no longer do intrin specs as a separate stimbuff; rather now we do them as a specifier segment within the pipeline spec of a normal nontrin spec.
This commit is contained in:
+29
-28
@@ -18,16 +18,15 @@ descriptors tell it exactly which body spots are raising it.
|
||||
|
||||
This direct information also assists SMO in narrowing down the scope of its
|
||||
DB searches for methods to handle (increase or decrease) the stimval. For
|
||||
example, for a negtrin whose intrinsic pipeline is declared with a dedicated
|
||||
`negtrin(...)` spec (and whose sensory data may come from intensity or another
|
||||
stimbuff via `from-stimbuff`), we don't search DB by trying to match all
|
||||
possible body spots with their stimvals. Rather, we search for all the body
|
||||
spots that are described in the stencil. This optimizes DB searches
|
||||
and also makes negtrin relieving/postrin satisfying searches more explicit
|
||||
and obviously scoped items of knowledge. The eventual solution is
|
||||
automatically classified as being a method to relieve/satisfy intrins at
|
||||
this point on the body and not just hazily generally for "all over the
|
||||
body". We get to make the new item of knowledge more specific.
|
||||
example, for a negtrin raised from a `negtrin(...)` segment attached to a
|
||||
nontrin DAP line (e.g. `pcloudAmbience`), we don't search DB by trying to
|
||||
match all possible body spots with their stimvals. Rather, we search for
|
||||
all the body spots that are described in the stencil. This optimizes DB
|
||||
searches and also makes negtrin relieving/postrin satisfying searches
|
||||
more explicit and obviously scoped items of knowledge. The eventual
|
||||
solution is automatically classified as being a method to relieve/satisfy
|
||||
intrins at this point on the body and not just hazily generally for "all
|
||||
over the body". We get to make the new item of knowledge more specific.
|
||||
|
||||
## Format and Allocation Model
|
||||
|
||||
@@ -60,15 +59,14 @@ But it's fine because we don't expect the relationship between SMO and
|
||||
stimbuff libraries to be inimical enough for security measures like that to
|
||||
be non-negotiable.
|
||||
|
||||
## n-stencils QualeIfaceApi Parameter
|
||||
## n-stencils Intrin-Segment Parameter
|
||||
|
||||
Where a stim buff supports it, a qualeIfaceApi parameter called `n-stencils`
|
||||
tells the stimbuff how many stencils it can allocate and deliver to SMO
|
||||
simultaneously for **intrinsic** delivery. Intrinsic rate limiting and stencil
|
||||
counts apply to **dedicated** intrinsic qualeIfaceApi specs (`negtrin(...)`,
|
||||
`postrin(...)`) when the implementation attaches them—not to sensory-only
|
||||
lines such as `pcloudIntensity` or `pcloudAmbience` (see
|
||||
`docs/design/intrin-thresholds.md`).
|
||||
Where a stim buff supports it, a parameter called `n-stencils` tells the
|
||||
stimbuff how many stencils it can allocate and deliver to SMO
|
||||
simultaneously for **intrinsic** delivery. `n-stencils` belongs on the
|
||||
`postrin(...)` / `negtrin(...)` segment it rate-limits — **not** on the
|
||||
nontrin qualeIfaceApi params. Postrin and negtrin get independent
|
||||
budgets.
|
||||
|
||||
The stimbuff must wait until SMO returns stencils to it via postrinEventRdy or
|
||||
negtrinEventRdy before delivering new intrin events. Stimbuffs can deliver
|
||||
@@ -77,23 +75,26 @@ have been given to SMO, they must wait until SMO returns a stencil before
|
||||
raising new intrins.
|
||||
|
||||
**Specification:**
|
||||
- The parameter is specified as part of the `quale-iface-api-params` in the
|
||||
DAP specification
|
||||
- The value is an integer representing the maximum number of stencils that
|
||||
can be allocated simultaneously
|
||||
- The parameter is specified inside a `postrin(...)` or `negtrin(...)`
|
||||
segment on a DAP line
|
||||
- The value is an integer representing the maximum number of stencils
|
||||
that can be allocated simultaneously for that segment's intrin path
|
||||
- This parameter controls rate limiting for intrin events
|
||||
- Stimbuffs must respect this limit and wait for stencil returns before
|
||||
allocating new ones
|
||||
|
||||
**Example (generic dedicated intrin line—shape only; names depend on device):**
|
||||
**Example (generic shape — names depend on device):**
|
||||
```
|
||||
+idev|my-device|negtrin(from-stimbuff=someSensoryQuale|n-stencils=4)|someStimBuffApi()|livoxProto1()|SERIAL
|
||||
+idev|my-device
|
||||
|negtrin(interest-pc=85|n-stencils=4)|someSensoryQuale()|someStimBuffApi()
|
||||
|livoxProto1()|SERIAL
|
||||
```
|
||||
|
||||
The Livox Gen1 **`pcloudAmbience`** sensory line does **not** use `n-stencils`;
|
||||
ambience floats are delivered in the stimulus frame buffer. If Livox adds
|
||||
`n-stencils` for intrinsic pipelines, it would appear on **`negtrin(...)`** /
|
||||
**`postrin(...)`** lines (with `from-stimbuff`), not on `pcloudAmbience` itself.
|
||||
The Livox Gen1 **`pcloudAmbience`** sensory line does **not** use
|
||||
`n-stencils`; ambience floats are delivered in the stimulus frame buffer.
|
||||
If Livox adds `n-stencils` for its intrinsic pipelines, it would appear
|
||||
inside the `postrin(...)` / `negtrin(...)` segments attached to
|
||||
`pcloudAmbience`, not on `pcloudAmbience` itself.
|
||||
|
||||
**Invalid (sensory qualeIfaceApi must not carry intrin-oriented params):**
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user