Commit Graph

236 Commits

Author SHA1 Message Date
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
hayodea 00ce114d40 cmdopts: Add a -?/--help option 2025-01-05 13:35:14 -04:00
hayodea 77a19deb8e cmdopts: Add --interceptor, --extrospector, --actuator and --devicefile 2025-01-05 13:25:40 -04:00
hayodea b4e51a0d49 Rename: implix to implex 2025-01-05 12:03:08 -04:00
hayodea 732021b9e3 Whitespace 2025-01-05 07:48:07 -04:00
hayodea 52b6d72132 Build: Use relative paths for includes 2025-01-05 07:47:38 -04:00
hayodea 812787b27f Fix vscode Intellisense 2025-01-05 07:42:22 -04:00
hayodea badd3545e0 Change VOSC default period to 33ms (30Hz) 2025-01-04 18:59:39 -04:00
hayodea 64e7df06b5 Build: Add CONFIG_MIND_VOSCILLATOR_PERIOD_MS 2025-01-04 18:18:44 -04:00
hayodea 7f6ba76858 Build: Remove "The" from PACKAGE_NAME 2025-01-04 18:18:17 -04:00
hayodea 90cab325e3 Mind: Rename simulator instance to "canvas" 2025-01-04 18:17:19 -04:00
hayodea 2eddecb7d6 Extrospector and Interoceptor both inherit from Sensor now 2025-01-04 14:34:54 -04:00
hayodea aa48342bc2 New classes: Sensor and Extrospector 2025-01-04 13:48:29 -04:00