C# reference#
Every Pamoja package, generated by DocFX from this commit. Each row below opens a package's API pages, and the same capability in the other three languages is one step away.
The XML documentation ships in each package too, so an editor shows the same
text inline. Each capability is its own package and namespace, so a using
names the capability it uses, and the page for each namespace lists its types.
Pamoja installs all of them.
Each package is hand-written C# over Pamoja.Native, the compiled engine and
its P/Invoke contract (Pamoja.Native.Interop.NativeMethods, mirroring the
generated C header one-to-one), which stays available for anything the facades
do not cover.
By domain#
Six of the chapters hold more than one capability, and each is a package of its
own on NuGet, Pamoja.<Domain>, which brings its capabilities in and re-exports
each under its own name:
Serial framing, Modbus RTU, CAN and J1939, I2C, SPI, and GPIO
dotnet add package Pamoja.FieldIodotnet add package Pamoja.Sensingdotnet add package Pamoja.RadioAudit log, Secured session, Signed updates, Power, Telemetry
dotnet add package Pamoja.TrustMQTT, CoAP, Loopback, Store and forward, Transport ladder, Event bus, Engine surface, Simulators
dotnet add package Pamoja.Transportsdotnet add package Pamoja.ProfilesEvery package#
One row per capability: the install line, the namespace and its reference, the guide with the worked example, and the same capability on the other three reference pages, one step away.
Engine#
Pamoja.CoreThe transport every link shares (send, receive, subscribe, and a faulty wrapper for tests) and the runtime version
dotnet add package Pamoja.CoreIdentity#
Pamoja.Securityed25519 device identity: sign a reading and verify it, so a gateway can prove it is authentic
dotnet add package Pamoja.SecurityCodecs#
Pamoja.CodecCBOR, JSON, and raw codecs behind one trait, delta and varint batch packing, and an f32 quantizer for metered links
dotnet add package Pamoja.CodecHelpers#
Pamoja.KitPlain-language helper math: smoothing, calibration, PID and thermostat control, trend and surge prediction, rolling windows, kinematics, and geo
dotnet add package Pamoja.KitField I/O#
Pamoja.SerialSLIP and COBS byte stuffing with streaming decoders, so a UART byte stream carries discrete packets
dotnet add package Pamoja.Serialdotnet add package Pamoja.ModbusPamoja.CanCAN 2.0 and CAN-FD frames with 11- and 29-bit identifiers, plus J1939 decode and compose
dotnet add package Pamoja.CanPamoja.GpioI2C address frames with reserved-range checks, the four SPI clock modes, and active-high or active-low pins
dotnet add package Pamoja.GpioSensing and actuation#
Pamoja.SensorsDatasheet-anchored decoders for eleven parts: the BME280, BMP280, DS18B20, HDC1080, INA219, INA226, ADS1115, OPT3001, SCD4x, SHT3x, and TMP117
dotnet add package Pamoja.Sensorsdotnet add package Pamoja.ActuatorsRadio and reach#
Pamoja.LoraTime-on-air, duty-cycle off-time, and the regional channel plans a LoRa node must keep to
dotnet add package Pamoja.LoraPamoja.LorawanLoRaWAN 1.0.x MAC framing, AES-CMAC and AES encryption, and both halves of the OTAA join
dotnet add package Pamoja.LorawanPamoja.MeshAddressed, hop-limited, CRC-checked frames and duplicate suppression that floods a packet exactly once
dotnet add package Pamoja.Meshdotnet add package Pamoja.RoutingMAVLink#
Pamoja.MavlinkMAVLink v1 and v2 framing, signing, named message fields, and the mission, command, and offboard protocols
dotnet add package Pamoja.MavlinkTrust and operation#
Pamoja.AuditA tamper-evident, hash-chained log; altering, reordering, or dropping a record breaks verification
dotnet add package Pamoja.AuditPamoja.SessionX25519 key agreement, HKDF, and ChaCha20-Poly1305 with an anti-replay window, with no TLS stack
dotnet add package Pamoja.SessionPamoja.UpdateSigned firmware manifests, streaming image verification, and A/B slots that fall back on their own
dotnet add package Pamoja.UpdatePamoja.PowerDuty cycling and an energy-aware governor that stretches work as the battery drains
dotnet add package Pamoja.PowerPamoja.TelemetryObservability that ships only what is worth the bytes as link cost rises, while counting everything
dotnet add package Pamoja.TelemetryTransports and testing#
dotnet add package Pamoja.Mqttdotnet add package Pamoja.CoapPamoja.LoopbackAn in-process transport with topic matching and a fault injector, for testing with no broker
dotnet add package Pamoja.LoopbackPamoja.SyncOffline-first queues: in memory, and a crash-safe on-disk queue that survives power loss
dotnet add package Pamoja.SyncPamoja.LadderCheapest reachable link first, buffering to a store when every link is down
dotnet add package Pamoja.Ladderdotnet add package Pamoja.BusPamoja.SimNoisy and replay sensors, a recording actuator, and a simulated robot that dead-reckons its pose
dotnet add package Pamoja.SimProfiles and robotics#
dotnet add package Pamoja.ProfilePamoja.Ros2ROS 2 names, RIHS01 type hashes, CDR encoding, and rmw_zenoh key assembly, with no ROS 2 installed
dotnet add package Pamoja.Ros2dotnet add package Pamoja.Zenoh