Commit Graph

160 Commits

Author SHA1 Message Date
hayodea 3503cce0db CMake: Check for libDl, conditionally check for libXCB 2025-07-22 05:19:26 -04:00
hayodea 90a0eebdd8 Add cscope ignore to .gitignore 2025-07-22 03:08:50 -04:00
hayodea 1540af1e74 Add temporary gitignore for the old autotools build dir 2025-07-22 02:46:43 -04:00
hayodea 065b2593f4 Add new CMake build system 2025-07-22 02:46:16 -04:00
hayodea e7974db324 Add Marionette 2025-07-22 02:03:45 -04:00
hayodea 336094ef90 Marionette: Create include dir and move body map headers in 2025-07-22 02:03:45 -04:00
hayodea d43a8af6bd Build: Print out the enabled common and wilzor libs 2025-07-22 02:03:45 -04:00
hayodea 37ad6995c3 Build: Add SenseApi DeepLIO2 Lidar fusion algo 2025-07-22 02:03:45 -04:00
hayodea c9e8a9f1fb Build: senseApis: Update help messages 2025-07-22 02:03:45 -04:00
hayodea dacc050bf9 Livox and R3Live shouldn't be over Eth intrinsically 2025-07-22 02:03:45 -04:00
hayodea f8825942b1 Add senseApis for Lidar devs and fusion APIs 2025-07-22 02:03:45 -04:00
hayodea e201b5e695 Build: Support common+sense+wilzor API libs; Move xcbXorg into commonLibs
xcbXorg is a connection manager lib that'll be used in common by all of
the xcb API frontends: xcbMouse, xcbWindow and xcbKeyboard. We moved
it into commonLibs to make it make more sense.

We also cleaned up the M4 scripting around AC_ARG_VAR-ing new common
libs as well as sense/wilzor libs.
2025-07-22 02:03:45 -04:00
hayodea 29a1e1ecf2 Docs:negtrin path: Add new thoughts 2025-07-22 02:03:45 -04:00
hayodea a5c2f47e9f Add design thoughts for intrins, compartmentalization, value-judgment 2025-07-22 02:03:45 -04:00
hayodea 42f55bb324 SenseApiDesc: Delete Sal_Mgmt_HkOps & document iface
We don't need the Sal_Mgmt_HkOps anymore because we won't
be using a callback model anymore. We'll be enqueuing messages.
2025-07-22 02:03:45 -04:00
hayodea 1450d745ab SenseApiDesc: use CPP concat to reduce typos 2025-07-22 02:03:45 -04:00
hayodea 76141e3a92 Fix indentation 2025-07-22 02:03:45 -04:00
hayodea 36592293dd DevSpec:lex: fix indentation 2025-07-22 02:03:45 -04:00
hayodea f1696f8272 DevSpec:lex: Remove annotation comment by GPT 2025-07-22 02:03:45 -04:00
hayodea 99c126a08c DevSpec:lex: Fix whitespace around EQUALS, fix backslash at EOF
* We had a prior issue where EQUALS would require that there be no
  whitespace between itself and its operands on either side. We got
  a bad solution from ChatGPT 4o. We got a proper solution now from
  o1.
* Previously, if a string ended with a backslash right before EOF, the
  backslash would be included. Now it will be dropped.
* Merge the two regexes for ignoring whitespace into one.
2025-07-22 02:03:45 -04:00
hayodea 293c1054d1 ComponentThreads: Add 2 new threads: body, world; comment threads.
We add 2 new threads for handling the interoceptors and extrospector
events. Also add comments explaining the purpose and role of each of
these major threads.
2025-07-22 02:03:45 -04:00
hayodea 38298a8ef8 DevSpec:Lex: silence warning about yyinput 2025-07-22 02:03:45 -04:00
hayodea 2b8b176038 xcbXorg: Add comments to major classes and funcs 2025-07-22 02:03:45 -04:00
hayodea 76e465bd1d devSpec:lex: Allow backslash escaping of strings
Now we can escape special characters without issue.
2025-07-22 02:03:45 -04:00
latentprion ead7d8ff5f Add findxwindow script 2025-07-21 23:24:53 -04:00
hayodea 9cc7a6685c Build: Add -Woverride with AM_INIT_AUTOMAKE 2025-01-31 14:45:52 -04:00
hayodea 8237cd62da xcbXorg: Rename api tag to "xcb", instead of "xcb-xorg" v0.00.003 2025-01-14 23:39:22 -04:00
hayodea 181759ff26 Docs:xcbXorg: Document apiParams, providerParams and devSelector
Add documentation that explains how to construct a devSpec for matching
and attaching windows from Xorg using the xcbXorg sense API lib.
2025-01-14 23:29:26 -04:00
hayodea 7b79636681 devSpec:yacc: Put param after params 2025-01-14 23:14:19 -04:00
hayodea 4dee8c62c9 devSpec:yacc: We now print out the current lex token string
We used some preprocessor logic to enable access to yytext and now
we can have verbose, useful error messages from the parser :)
2025-01-14 23:13:02 -04:00
hayodea 9a9f5058ed devSpec: allow backslash escaped whitespace in STRING tokens
This allows us to use spaces when specifying window name selectors.
Which is very convenient and cool.
2025-01-14 23:11:30 -04:00
hayodea ff56bfce04 xcbXorg: Indentation 2025-01-14 21:12:41 -04:00
hayodea 098b79b331 xcbXorg: Add new param keys: devsubstring, devstring
* devsubstring: substring match on window name.
* devstring: exact match on window name
2025-01-14 21:11:47 -04:00
hayodea 20154d1e95 xcbXorg: Use apiParams to choose match method for window attachment
We now use param keys in the API params to choose what type of ID
the deviceSelector holds, and how to match it.

* dev-id/devid: matches by ID.
* dev-substr/dev-substring/devsubstr: Matches window name by substring.
* dev-string/devstr/dev-str: matches window name by exact whole string.
2025-01-14 20:59:28 -04:00
hayodea 64baa7906b xcbXorg: Implement window search by ID and name
The name search doesn't quite seem to work, but we captured all 4
of our regularly active windows (including the browser!!!) using
window IDs.
2025-01-14 20:22:12 -04:00
hayodea d31530e0bd xcbXorg: indentation 2025-01-14 17:01:16 -04:00
hayodea a80db04dac xcbXorg: Replace display+screen with XConnectionIdentifier 2025-01-14 16:58:22 -04:00
hayodea 0a6f7feeca xcbXorg: Now properly connects to requested display *AND* screen
We append the desired screen number to the connection string.
2025-01-14 16:50:37 -04:00
hayodea 091d7ceeba xcbXorg: Parse devSpec params, connect to Xorg displays
This patch adds some nicely weighty code for connecting to X displays
and managing those connections. Attaching devices will automatically
connect to their required X display. Removing all devices dependent
on a given X display connection will also disconnect from that
Xdisplay.
2025-01-14 14:17:05 -04:00
hayodea cfdeb17639 SenseApiMgr: Add doxygen comment explaining the lib search priorities 2025-01-14 14:17:05 -04:00
hayodea aaae3dcbb2 DevSpec: Grammar now parses params as key[=[val]]
* Updated docs to reflect this.
* This was important in allowing us to write the xcbXorg connection
 code.
2025-01-14 14:17:05 -04:00
hayodea 4eb0ef75bc DevSpec: Yacc: Silence unused warning about yyunput() 2025-01-13 22:01:17 -04:00
hayodea 09caf314f1 Eliminate the C FFI; Namespace lib API and DeviceManager
We decided to get rid of the C FFI for libs. It was becoming too intricate
and complicated. It was becoming a technical burden and expanding into
too much extra code. It's unfortunate, but we'll have to give up on getting
out-of-tree hot-loadable libraries the easy way.

It's possible to still do it with cross compilation or by keeping track
of the libstdc++ version that the running harikoff binary was compiled
against. Then we can ensure that our loadable lib code is linked against
that same libstdc++ code and this should ensure ABI stability.
2025-01-13 21:57:11 -04:00
hayodea a4f96c8dfa Senselib FFI: Use devDesc object in SenseApiLib, also add per-device metadata to xcbXorg
We also had to write conversion constructors and so on to CSenseDeviceDesc.
The technical debt that's being piled up from this C FFI is excessive.
I think we'll end it here. API Libs will have to be written in C++
from now on. API Lib interfaces will be in C++.

We'll use cross compilers to ensure stability for out-of-tree lib
development.
2025-01-13 11:53:38 -04:00
hayodea 660f0f0e73 DevMgr: Make vectors hold sh_ptr and not uniq_ptr
This allows us to mirror the contents of the two lists into the unified
list much more easily.
2025-01-13 08:02:59 -04:00
hayodea edf51a4441 DevSpecp.yy: Fix mirror list use of std::move()d objects
We were building a list of mirrored items filled with the memory
pointed to by unique_ptrs which had already been std::move()d into
other unique_ptrs.
2025-01-13 07:06:28 -04:00
hayodea 8e94e829d0 SenseDevSpec: add NULL checks stringify, ostream::<< 2025-01-13 07:05:05 -04:00
hayodea 3f9b406fb2 Build: handle "" enableval in --enable-senseapi-xcbxorg 2025-01-12 14:36:27 -04:00
hayodea 0a36f7d370 Build: Add XCB_LIBS; Skeleton: mlo_initializeInd, mlo_attachDeviceReq
* Renamed some of the Sense API lib classes
  (CSensorDeviceDesc=>CSenseDeviceDesc,
  SensorDeviceDesc=>SenseDeviceDesc).
* Moved SenseApiDesc into /include/user/senseApiDesc.
* Add conversion constructor to convert from SenseDeviceDesc
  to
* Wireframe mlo_initializeInd to call xcb_connect().
* Add $(XCB_LIBS) to libxcbXorg_LDFLAGS.
* Wireframe mlo_attachDeviceReq().
2025-01-12 14:31:33 -04:00
hayodea b85d6f76a6 SenseApiMgr: add initialize/finalizeAllSenseApiLibs()
Also, SenseApiDesc: initializeInd() now takes void. We no longer
try to pass a struct of marionette-role ops into the libs. We'll
be using message queueing for the handshake side of async calls now.
2025-01-12 09:44:49 -04:00