Module rpps.scram.serial

Modulation de-serialization helpers

Functions

def identify()
Expand source code
def identify():
    """Identify available scram types"""
    scrams = {}
    for folder in (config().PATH_CONFIG / "scram").iterdir():  # type: ignore
        scrams[folder.name] = [file.stem for file in folder.iterdir()]
    return scrams

Identify available scram types

def init(name: str, obj: dict) ‑> Scram
Expand source code
def init(name: str, obj: dict) -> scrambler.Scram:
    """Initialize scram"""
    if obj["base"] == "fdt":
        return scrambler.Feedthrough.load(name, obj)
    elif obj["base"] == "adt":
        return scrambler.Additive.load(name, obj)
    raise NotImplementedError(f"Unknown scrambler: {name}, {obj}")

Initialize scram

def load(folder: str, name: str) ‑> Scram
Expand source code
def load(folder: str, name: str) -> scrambler.Scram:
    """Load a scrambler from a file name"""
    scram = json.loads((config().PATH_CONFIG / "scram" / folder / f"{name.lower()}.json").read_text())  # type: ignore

    return init(name, scram)

Load a scrambler from a file name