Examples¶
Suggested learning path¶
Work through these in order. Each step builds on the previous one.
1. Understand the concepts¶
Read Mental model and Main concepts.
2. Create your first package¶
Follow Create your first package to generate a skeleton, compile it, and run it under a Sen kernel.
3. Work through the examples¶
The table is ordered by complexity, so working down it is a reasonable path. The numbers are the directory names rather than a sequence, so there are gaps where an example was retired:
| # | Example | What you learn |
|---|---|---|
| 0 | Counter | The introductory package built in Getting Started |
| 1 | Calculators | Basic package, multiple implementations, shell interaction |
| 2 | Inheritance | STL inheritance, template injection |
| 3 | Aircraft | HLA FOMs, update() loop, virtual time |
| 4 | School | Object discovery, events, multi-component |
| 6 | Recorder | Recording, Python post-processing |
| 7 | Replayer | Replay with real-time and stepped execution |
| 8 | InfluxDB | Grafana visualization |
| 9 | Request/response servers | Method return values, async callbacks, live query objects |
| 10 | Python | Embedded Python scripting |
| 11 | Shapes | Interest management, Sen Query Language |
| 12 | Fibonacci | Deferred methods, load balancing |
| 13 | Timer | Checked properties, state validation |
| 14 | JSON-RPC | Exposing a package over JSON-RPC on a WebSocket |
4. Go deeper with the how-to guides¶
Once you are comfortable with the examples, the How-to guides cover specific topics in depth: working with objects, generated code, logging, dead reckoning, and more.
Example applications¶
Included in the same examples directory, you can find a set of example applications:
| Application | Description |
|---|---|
| Web explorer | Basic Sen explorer for the web browser |
| REST Python | Python client for the Sen REST component |
| Recording inspector | Reads a recording with the C++ database API |
Generated documentation¶
Sen writes documentation from your interface definitions, so it cannot drift from the code. These two are not packages you can run, unlike everything above: they are what the generators produce, kept here because seeing one is quicker than reading about it.
- UML generation: class diagrams, here drawn from an HLA FOM
- HTML reference: a browsable interface reference, here for an HLA FOM
Reference material¶
- STL language reference: full syntax of the Sen Type Language
- Command line reference:
sen run,sen term, YAML config schema - Sen Query Language: filtering objects with SQL-like expressions