Commit Graph
9 Commits
Author SHA1 Message Date
h3cx ffcea13c0b Added ValueBuffer implementation and simple recording
ValueBuffer is now the default buffer object for storing data for
recording and processing purposes, a simple recording implementation has
been done, core.py example starts recording as soon as the core has
started then on exit it saves the output as a csv file through the
ValueBuffer export_csv method
2026-08-06 12:57:59 +01:00
h3cx 1690032f5b Added timestamping to incoming values and timeout to signal descriptor
Added timestamping to ValueDescriptor to be able to record on a
timebase, timebase uses monotonic_ns() which is a system wide timebase
that can be called by connectors written in a host of languages

Added timeout to signal descriptors, live values now return None when
they are timed out
2026-08-06 11:36:12 +01:00
h3cx 87c88c3f3d Added live value and signal descriptor fetching
Live values are stored in the core and their fetch is relatively cheap
as it only requires locking the core live values lock

Signal descriptors are a much heavier call as they query the connector
registry and trigger an O(n) search throughout the different endpoints,
this method is not meant to be used heavily as it requires locking
multiple locks and handling alot of data, this method is meant to be
called once to retreive a list of signal descriptors that the user can
then store and use to reference values against in their frontend code
2026-08-06 11:08:02 +01:00
h3cx 561f42aca2 Updated tests and added core live value handling
Removed useless tests, will need to complete a more comprehensive test
suite however this is not the priority right now

Added a live value dict in the core whose values are populated by the
core's input thread
2026-08-05 20:42:19 +01:00
h3cx a882b29654 Added routing to core queue from endpoint 2026-08-05 16:38:15 +01:00
h3cx 6ec3ad6577 Added heartbeat return on peer.py test 2026-08-05 12:00:55 +01:00
h3cx f3b1a537f0 Implemented handshake and heartbeat
Implemented handshake in json server and handoff to endpoint

Endpoint handles connector handshake accept/decline then launches both
its IO threads alongside its heartbeat thread which contains simple
timeout logic, timeout calls connection handles to close, subsequently
killing the endpoint
2026-08-04 22:11:53 +01:00
h3cx 98814b122c Fixed test to match new error location 2026-08-03 22:56:38 +01:00
h3cx 482c093f38 Server isolation and detailed errors
Isolated the JsonServer to server.py inside protocols/json

Added specific errors for server startup timeout and server startup
failed

Refactored errors for Core to CoreError generic and refactored
StateError to CoreStateMismatchError derived from CoreError
2026-08-03 17:17:33 +01:00