Skip to content

How-to guides

Each page here answers one question, and assumes you already have Sen installed and a package that builds. If you do not, start with Install and Create your first package.

Writing the code

Working with objects is the one to read first: registering objects, subscribing to other people's, calling methods and reacting to events. The generated C++ code explains what Sen writes for you in C++ from an STL file and how to work with it. Writing components goes further, into components that do more than instantiate objects. Using groups controls what runs before what.

Time

Controlling the clock covers real time, faster than real time, and stepping a system one cycle at a time. Precision sleeper is for when a component needs to hit its period accurately. Dead reckoning is about sending less data by predicting motion between updates.

Configuration and logging

Python configuration is for when YAML stops being enough and you want to build a configuration programmatically. Configuring the environment covers the variables Sen reads, and the per-component thread settings: priority, CPU affinity and stack size. Logging explains the log levels and how to change them at runtime.

Sharing interfaces between projects

Exportable interfaces is how you publish an interface other projects can implement, and Consuming interfaces is the other side of that. Generating interface packages covers the build side, and Creating Conan packages covers distribution.

Building and testing

Building from source is for working on Sen itself rather than on a project that uses it. Unit tests shows how to drive a kernel from a test so your objects can be tested without a running system.

When something does not work

Troubleshooting collects the failures people actually hit and what they mean. Networking with WSL2 and virtual machines covers multicast, interface and firewall setup in virtualized environments, together with the TCP-only fallback.

Fitting Sen to a system you already have

Connecting existing systems answers the question most people arrive with: can Sen talk to the system I already have? It lays out the shapes a bridge can take and what each one costs.

Background reading

Design considerations is not a how-to at all. It is a longer piece on the trade-offs behind Sen's design. Read it once you have a system of your own to compare it against.