Table of Contents

Namespace Pamoja.Hal

Classes

CommandPart

A part that is not there, answering commands with the replies it was given.

DelayLog

A delay that records every wait it is asked for and sleeps through none of them, as pamoja_hal::script::DelayLog does in Rust.

I2cBus

One I2C bus, shared by the program and every driver built on it.

I2cPart

A part that is not there, answering from 256 registers a byte wide.

I2cStep

One transfer a script expects, and what the part answers.

SerialPort

One serial port, shared by the program and every driver built on it.

SerialStep

One step of a scripted port: Write(ReadOnlySpan<byte>) for a write the program is expected to make, and Read(ReadOnlySpan<byte>) for bytes the far end sends.

SimulatedPart

A part that is not there, of any of the three kinds a simulated bus holds.

SleepDelay

A delay that really waits: Sleep(int), rounded up to whole milliseconds, for a millisecond or more, and a spin on Stopwatch for a shorter wait, which the scheduler cannot keep. A sleep can run over by the scheduler's own latency.

WordPart

A part that is not there, answering from 256 registers sixteen bits wide.

Structs

SerialSettings

A port's speed and character format: eight data bits, with the parity and stop bits given.

Interfaces

IDelay

What paces a driver that has to wait between pin changes, such as a stepper between steps. SleepDelay really waits; DelayLog counts every wait and waits for none, for a program run with nothing plugged in.

Enums

I2cBusKind

What answers on an I2cBus.

I2cFault

How a scripted step fails the transfer that reaches it.

Parity

The parity bit each character on a serial line carries.

SerialPortKind

What is on the other end of a serial port.