hayodea
7a51f02d97
livoxGen1: Implement StimBuff add/del from StimProducers
...
There seems to be a bug where two or more stimProducers
or stimBuffs get initialized at once but we can deal with that
tomorrow.
2025-11-15 04:02:25 -04:00
hayodea
e215e78aa5
StimulusBuffer should take ref to parent; not sh_ptr to common instance
2025-11-15 01:15:57 -04:00
hayodea
98a493a8a1
livoxGen1: Add StimBuffs to PcloudStimProd
...
* PcloudStimulusProducer now has member sh_ptr<StimulusBuffer>s.
* StimulusProducer now has a vector<sh_ptr<StimulusBuffer>s.
Created new stimbuff-type-specific
Pcloud[Xyz|I|Ambience]StimulusBuffer classes for representing each
stim feature exposed by livoxGen1's PcloudStimulusProducer.
2025-11-14 23:19:32 -04:00
hayodea
8a7dc10892
Split StimulusProducer=>StimulusBuffer+StimulusProducer
...
We're getting ready for the last mile of the StimulusBuffer API
and the proto-completion of the LivoxGen1 StimBuffApi.
2025-11-14 20:44:37 -04:00
hayodea
70c0175a8b
Rename StimulusBuffer=>StimulusProducer
...
Next we'll split the StimulusBuffer-related stuff into a new class
StimulusBuffer.
2025-11-14 19:50:51 -04:00
hayodea
0720ed9c76
StimBuff: Make produceFrameReq responsive to stop()
2025-11-14 02:25:51 -04:00
hayodea
324e3d1f6a
SpinLock: Add releasePrematurely for early releases
2025-11-14 01:38:06 -04:00
hayodea
972d5fc9db
AsyncLoop: Add setRemainingIterationsToFailure
2025-11-13 20:52:08 -04:00
hayodea
e446d42b3c
StimBuff: Deferral: print message at start and end; timestamp too
2025-11-13 01:09:30 -04:00
hayodea
116a642a9f
StimBuff: Add opportunity for early lock release
2025-11-12 15:08:44 -04:00
hayodea
1ac6fa4a16
Rename StimFrame=>StimulusFrame
2025-11-09 22:09:19 -04:00
hayodea
a0ab5538df
StimBuff: Add mnemonic wrapper for unlocking frameAssmLimiter
2025-11-08 22:07:52 -04:00
hayodea
b598ca8594
libs: Add smohook for getting cmdline opts
2025-11-07 14:59:28 -04:00
hayodea
457d0f9345
Dbg:Add CallableTracer for callables post()ed to boost.asio
...
This class and its macro allow us to trace the invocation of
callbacks as they're invoked by Boost.asio.
2025-11-06 21:45:16 -04:00
hayodea
af57c4dfd1
Boost: move top_ link fixer to top of files
2025-11-06 15:03:26 -04:00
hayodea
1c7277d141
SpinLock: add RAII Guard class
2025-11-05 22:38:04 -04:00
hayodea
2b3b318abe
Formatting
2025-11-04 00:49:15 -04:00
hayodea
f3a4c69597
StimBuff: DevAttSpec should be a sh_ptr, not a plain ref
2025-11-04 00:47:01 -04:00
hayodea
b3bf0e2cb9
StimBuff,commonLibs: Add libattachmentSupport, move fnptrs into .cpp files
...
We move the methods in StimulusBuffer whose addresses are taken during
program execution into a separate static lib. This guarantees that
they'll have their own, single vaddr at runtime, at least within
each independent code module.
2025-11-02 19:12:28 -04:00
hayodea
10e615e75e
StimBuff: make start/stop virtual;
...
We can now have the derived StimBuff class implement its own
start()/stop() preamble and epilogue.
2025-11-01 22:05:52 -04:00
hayodea
a32b4f05d1
livoxGen1: call PcloudStimulusBuffer::start/stop
...
We now call start()/stop() in attach/detachDeviceReq.
2025-11-01 03:32:05 -04:00
hayodea
67af9f02da
DAPSpecs: Update parseRequiredParamAsInt to support all param lists
2025-11-01 01:11:34 -04:00
hayodea
e824685c19
DAPSpec: Add params to quale-iface-api
...
We add params to the quale iface (soon to be renamed to cologex-api).
This allows us to eventually set the history length for stimbuffs.
2025-11-01 00:57:04 -04:00
hayodea
cdade17905
Add SpMcRingBuffer to base class StimulusBuffer
...
This will hopefully genericise the interface for Stimbuffs.
2025-11-01 00:09:53 -04:00
hayodea
018c1f1e1d
SpMcRingBuffer: Added this new class
...
This will be the foundation for all StimulusBuffers. We can most
likely add this generically to the StimulusBuffer base class rather
than adding it only to StimulusBuffer's derived classes.
2025-10-31 22:58:18 -04:00
hayodea
5e522178d8
SequenceLock: Newly added
...
What can I say? It's a very portable primitive that allows us to
create many RCU-type data structures with many readers and one
writer, locklessly.
2025-10-31 22:12:23 -04:00
hayodea
7574f3f59a
StimBuff: customize stop() delay; add stimFrameProductionTimesliceInd
2025-10-31 13:54:50 -04:00
hayodea
0de031c74b
Formatting: move big inlines out of class def
2025-10-31 13:47:00 -04:00
hayodea
ebbb2b1345
StimBuff: Add skeleton common impl with rate limiting
2025-10-31 13:43:23 -04:00
hayodea
7994c2f6e2
CMake,config.h: Add -DSTIMBUFF_FRAME_RETRY_DELAY_MS
...
This determines how long a stimbuff should wait before retrying
to produce a stimframe, if the previous stimframe is still being
produced.
2025-10-31 12:08:40 -04:00
hayodea
720babd39d
CMake,config.h: Add -DSTIMBUFF_FRAME_PERIOD_MS
...
This determines the maximum rate at which stimbuffs will be refreshed
with data from their device.
A device may refresh less frequently than this, but not more
frequently. The goal here is to give us control over the max
rate at which a device produces data.
2025-10-31 11:31:04 -04:00
hayodea
7b830f0a68
AsyncBridge: Comment why we don't checkException in loop
2025-10-31 08:20:29 -04:00
hayodea
10e19a3237
StimulusBuffer: Fix linker errors
2025-10-25 23:04:28 -04:00
hayodea
b89c8cdc4f
More work on PcloudStimulusBuffer
2025-10-25 19:42:48 -04:00
hayodea
bcf81594e7
Add PcloudFormatDesc
2025-10-25 19:32:10 -04:00
hayodea
e9b4e15b79
Add base class StimulusBuffer
2025-10-25 18:56:30 -04:00
hayodea
e297a260d9
Contin: Rename Exception propagation macros
2025-10-25 14:12:12 -04:00
hayodea
870057a680
Add Stencil class for describing threshold ranges
2025-10-21 20:50:59 -04:00
hayodea
e444cd1e04
Move files around for cologex and sitbuff lib impl
2025-10-21 20:02:36 -04:00
latentprion
7d453beb65
Remove superfluous #includes from headers
2025-10-18 20:16:29 -04:00
latentprion
49c9caa317
Remove superfluous #includes from headers
2025-10-17 16:19:25 -04:00
latentprion
edd223b083
Remove unnecessary componentThread.h #includes
...
Since componentThread #includes boost::asio components, removing
it should improve compile times.
2025-10-16 02:15:16 -04:00
latentprion
5017bf5f92
Build: use piecemeal boost headers.
...
Reduces compile time on a 4-core ARM Rpi5 from 1m12s wallclock
(i.e: "real") time to 0m55s; and from 4m+ "user" time to 3m8s.
2025-10-16 01:00:48 -04:00
hayodea
d857999fdf
Update comment notes
2025-10-02 01:14:04 -04:00
hayodea
fa2609f4ce
User /includes: Add common stim frame types header
2025-10-02 00:29:09 -04:00
hayodea
a91a995407
Config.h.in: Remove these "legacy" artifacts
2025-10-01 20:04:21 -04:00
hayodea
eb5875fe0d
Rename: Sense API => Stim Buff API
2025-10-01 20:03:47 -04:00
hayodea
56b8e83a09
Update senseApiDesc.h and opts.cpp for clarity in device attachment and usage examples
2025-10-01 18:20:59 -04:00
hayodea
a66d91fa31
DevAttachment:Rename: api=>stimbuffapi, implexor=>qualeiface
2025-10-01 18:10:58 -04:00
hayodea
e9e273c012
CMake: PRefix config opt with CONFIG_
2025-10-01 11:02:28 -04:00