hayodea
53583e5735
SenseApiLib, SenseApiDesc improvements, new Sense API Mgmt Lib Ops role
...
SenseApiDesc:
* Use a number count for num exported implexor APIs instead of
NULL-terminated list.
* Add sanity checker functions for structs.
SenseApiLib:
* Invoke the new sanity checkers on new Lib objects.
* SenseApiDesc is now a member object instead of being
pointed to.
SenseApiManager:
* loadSenseApiLib now calls the SenseApiDesc getter function.
* loadSenseApiLib now fills out the SenseApiLib class object.
New Sense API Mgmt Sub-API:
This sub-api (metalanguage, some might call it) is used to initialize
the lib's connection to the provider. After this call, the lib should
be ready to attach new devices to its provider on behalf of Hk.
v0.00.002
2025-01-09 06:03:43 -04:00
hayodea
2a397ae064
Build: Check for libXCB when building XcbXorg sense API
2025-01-08 18:36:34 -04:00
hayodea
88df316013
build: Conditionally compile senseApis
2025-01-08 18:27:40 -04:00
hayodea
396bcefbf4
XcbXorg: Fill in correct placeholder implexor algo name
2025-01-08 18:00:07 -04:00
hayodea
62db724246
senseApiMgr: Fix formatting
2025-01-08 17:58:08 -04:00
hayodea
bbbd6c36cd
Release: Tagging v0.00.002:
...
* Loadable sense API libraries.
2025-01-08 17:34:33 -04:00
hayodea
d14cef5328
Move senseApi libs into their own outer subdir
2025-01-08 17:28:21 -04:00
hayodea
988e84a545
Pretty up exception message
2025-01-08 15:09:18 -04:00
hayodea
4f2fbaa255
Fix NULL ptr use from dlerror()
2025-01-08 15:08:51 -04:00
hayodea
01ddb6d842
Only search in senseApiLibPath if it's actually set
2025-01-08 15:08:23 -04:00
hayodea
1178970728
cmd:opts: Now set OptionParser::argv0 to argv[0]
2025-01-08 15:07:42 -04:00
hayodea
090f0d3b02
senseApiMgr: new method: loadAllSenseApisFromOptions
...
This method dlopens() all senseApi libs that were referenced by
device specs.
2025-01-08 15:06:31 -04:00
hayodea
04db7bf76c
Fix build warning about decltype(dlclose)
2025-01-08 15:05:56 -04:00
hayodea
2dc3083cdb
whitespace
2025-01-08 13:47:16 -04:00
hayodea
bffa2b837c
Opts: Make singleton; senseApi: check senseApiLibPath, get senseApiDescFn pointer.
...
* OptionsParser now has a singleton.
* We now use the cmdline opt -p <senseApiLibPath>, and search for
the specified library in:
* senseApiLibPath, then CWD, then the place where our executable
is running from, and then finally we let the hosting OS do
its own search.
* We now call dlsym() on dlopen()'d libs to to get the senseApiDescFn
pointer.
2025-01-08 13:43:44 -04:00
hayodea
b40790ee4a
Whitespace
2025-01-08 11:50:16 -04:00
hayodea
c864bcfdd2
SenseApis: Define descriptors exported by libs
2025-01-08 11:49:28 -04:00
hayodea
f5e3986644
DeviceSpec:parser: improve exception messages
2025-01-08 11:46:59 -04:00
hayodea
5a5e2fa25f
Fix const_cast and rearrange logic in senseApi method
2025-01-08 07:56:10 -04:00
hayodea
b9aa53822f
Indentation
2025-01-08 07:27:48 -04:00
hayodea
376b29871b
Change version to 0.00.001.
2025-01-08 06:35:34 -04:00
hayodea
fe3f911db4
SenseApis: New senseApiManager and X11XcbApi
...
Still fleshing these out but ultimately senseApiMgr will manage
sense apis, and the X11XcbApi is where we'll connect to Xcb and
read the screen.
2025-01-08 06:26:36 -04:00
hayodea
f594d29a2d
DevMgr: Add sensorDevSpecs list and make intero/extro lists use unique_ptr
2025-01-08 06:23:34 -04:00
hayodea
6a494f7ff7
cmd:opts: New -a (sense-api shlibs) and -p (api shlib search dir) opts
2025-01-08 06:19:46 -04:00
hayodea
36acbdfc36
cmd:opts: Add senseApiPath in prep for new cmd opts
2025-01-08 00:32:07 -04:00
hayodea
dd7a75d9b5
devSpec: Update preprocessor error message
2025-01-07 20:21:15 -04:00
hayodea
dda8527e45
DeviceSpec: Rename server to provider
v0.00.001
2025-01-07 20:03:03 -04:00
hayodea
b9faa147e3
Docs:devspec: Server renamed to provider
2025-01-07 19:58:23 -04:00
hayodea
1d139644d6
Use move semantics in cmd line parsing
2025-01-07 18:54:00 -04:00
hayodea
e89a38203e
docs:devspec: update docs with new device-type prefix syntax
2025-01-07 14:31:30 -04:00
hayodea
fe09b00c7f
Fix build error
2025-01-07 14:24:22 -04:00
hayodea
e86a75e232
devSpec:lex: Fix devSpecType keywords
...
We can't use a plain single letter anymore, so now let's
use some longer keywords instead. New keywords are:
* +idev: interoceptors.
* +adev: actuators.
* +edev: extrospectors.
2025-01-07 14:23:25 -04:00
hayodea
4f224003fd
Main: Invoke parser and print out results
2025-01-07 14:14:57 -04:00
hayodea
54de145b2d
DevMgr: Add methods to print the parsed devSpecs
2025-01-07 14:14:24 -04:00
hayodea
42413d1cc6
DevMgr: Implement a wrapper around the yacc parser.
...
This wrapper reads the -d <devfile> arguments, collates
them into one big string and then feeds them into yacc.
2025-01-07 14:11:51 -04:00
hayodea
5c3bbdf114
Devspec: Add lexer and parser for devSpecs
...
This grammar looks simple but it consumed 2 days of my time
and it's giving me bugs all the same, but mostly working
nicely.
See the syntax documentation in /docs
2025-01-07 14:09:31 -04:00
hayodea
3b6ca14275
CmdOpts: merge -[i|a|e] into one -s option
...
We augmented the grammar to specify the type of device (intero,
extro or actuator) so we can now collapse the 3 dev spec cmd
line opts into 1 opt.
2025-01-07 14:05:23 -04:00
hayodea
f86daf97c1
Build: Check for Flex and Yacc
2025-01-07 14:04:03 -04:00
hayodea
2068feacaf
vscode: New eccentricities
2025-01-07 14:03:04 -04:00
hayodea
2b75355f98
docs:devspec: Update grammar notes
2025-01-07 12:15:52 -04:00
hayodea
46ef17bb05
Docs:deviceSpec: Update spec and document separators
2025-01-06 21:00:31 -04:00
hayodea
ec323da614
Build:m4: Add AC_PROG_[FLEX/BISON] from the MESA source code.
2025-01-06 20:59:45 -04:00
hayodea
597155a871
docs:devspec: fix example
2025-01-05 20:07:16 -04:00
hayodea
2c3ea2359d
Docs:deviceSpec: Update server params: parentheses mandatory
2025-01-05 17:43:00 -04:00
hayodea
ef5022f815
Docs: Add deviceSpec specification
...
Currently only has a spec for sensors. We'll create and add a
spec for actuators later.
2025-01-05 16:51:12 -04:00
hayodea
6307d2869e
DeviceManager: Initial class with DeviceSpecParser
...
Hopefully by the end of tonight we should be done with the dev
spec parser.
2025-01-05 14:19:53 -04:00
hayodea
f16d3b24b3
cmdopts: Now accepts 0 or more -d opts
...
In preparation for the deviceSpecParser.
2025-01-05 14:04:31 -04:00
hayodea
0232293bb0
whitespace
2025-01-05 14:03:44 -04:00
hayodea
77e6eca091
main: Gh copilot insists on this formatting
2025-01-05 14:01:16 -04:00
hayodea
e51a6bb729
Vscode: New c++ include associations I guess
2025-01-05 13:58:25 -04:00