LOX · Liquid Oxygen for Embedded Systems

LOX Perm

Equipment actions need explainable permissives and interlocks instead of scattered booleans.

A header-only evaluator qualifies inputs, latches denials, records first-out state and supports controlled bypass metadata.

DevelopmentMITC99
Last verified
Not audited against current README/docs
Platform scope
Portable C99; integration depends on caller-provided adapters

What it solves

Equipment actions need explainable permissives and interlocks instead of scattered booleans.

How it works

1Inputs2qualification3latch / bypass policy4permission + diagnostics

Use it when

Gate a pump start on multiple permissives
Latch a fault until an explicit reset
Debounce an interlock input
Record which condition denied first

Quick Start

#include <loxperm/loxperm.h>
loxperm_chain_t chain;
loxperm_chain_init(&chain, defs, DEF_COUNT);
loxperm_set(&chain, 0, true, now_ms);
bool allowed=loxperm_is_permitted(&chain, now_ms);
/* Expected: allowed and deny mask reflect qualified inputs. */

Engineering evidence

  • Header-only and heap-free claims map to include/loxperm/loxperm.h
  • Tests cover snapshot validation and configuration contracts

Known limits

  • Not a safety-certified interlock system
  • A shared chain requires external synchronization
  • Default condition mask is 32 entries; optional wide mode is 64