Commit Graph

46 Commits

Author SHA1 Message Date
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 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 2025-01-07 20:03:03 -04:00
hayodea 1d139644d6 Use move semantics in cmd line parsing 2025-01-07 18:54:00 -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 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 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 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 52b6d72132 Build: Use relative paths for includes 2025-01-05 07:47:38 -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
hayodea bc589e28b7 formatting 2025-01-04 13:48:09 -04:00
hayodea 06e3db82ac Rename IntrinInteroceptor=>IntrinTeroceptor, NeutralInteroceptor=>NeutrinTeroceptor. 2025-01-04 13:46:33 -04:00
hayodea 89c8936e64 New class: Singlecept. Inherits from MentalEntity 2025-01-04 13:38:27 -04:00
hayodea 9e5ea0d78c Indentation, word wrap 2025-01-04 13:38:08 -04:00
hayodea 03a6590981 Rename [Pleasure/Pain]Interoceptor to [Postrin/Negtrin]Teroceptor 2025-01-04 13:36:18 -04:00
hayodea a1edf27e9e Idlework 2025-01-04 13:21:33 -04:00
hayodea dbbd3c477b Formatting 2025-01-04 13:21:24 -04:00
hayodea 0468046692 New class hk::Implix replaces Existent 2025-01-04 11:47:55 -04:00
hayodea 6ae037c7e7 Director: now has a goal. Goal inherits from Scene 2025-01-04 11:36:50 -04:00
hayodea c3461a73bb Hcore: Put everything in namespace hk:: 2025-01-04 11:32:37 -04:00
hayodea 841441806c Now builds.
* Cut out all extraneous includes.
2025-01-04 07:33:15 -04:00
hayodea 6beda55971 Add Director, director::CommandList, hk::Goal and fixups
* Simulator and Director are no longer singletons.
2025-01-03 21:22:03 -04:00
hayodea bf2c73ed29 Simulator: add singleton static instance 2025-01-03 21:00:01 -04:00
hayodea f9b377a9f4 Rename corelogic->hcore, add simulator skeleton classes 2025-01-03 20:06:49 -04:00