Metadata-Version: 2.4
Name: wirelesspro-gateway
Version: 1.0.0
Summary: Integration gateway for WirelessPro 5G NR PHY engine
Requires-Python: <3.15,>=3.11
Description-Content-Type: text/markdown
Requires-Dist: pyzmq>=25.0
Requires-Dist: numpy>=1.26
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: types-PyYAML; extra == "dev"

# wirelesspro-gateway

Integration gateway that exposes the WirelessPro 5G NR PHY engine to external
systems via standard southbound (input) and northbound (output) interfaces.

`wirelesspro-gateway` lets you drive WirelessPro's 5G NR waveform generation
from simple YAML configs or a live nFAPI connection, and stream the results
out as:

- Keysight `.bin` IQ files (N5106A-compatible format) with FAPI JSON sidecars,
  for offline analysis in WaveJudge and similar tools.
- Live ZMQ streams of IQ samples and PHY-layer sensing measurements (CSI-RS /
  SRS / PUSCH DMRS based), for ISAC (integrated sensing and communication)
  research and development.

## Requirements

- Python 3.11, 3.12, or 3.13
- Windows or Linux (x86_64)
- `wirelesspro >= 2026.2, < 2027.0`, a licensed Keysight product, installed
  separately. `wirelesspro-gateway` will raise a clear error at import time if
  WirelessPro is missing or its license is not valid — see your Keysight
  representative for access.

## Installation

```bash
pip install wirelesspro-gateway
```

`wirelesspro` is not installed automatically — install and license it first
through your Keysight-provided distribution channel, then install
`wirelesspro-gateway`.

## Quick start

**Offline DL loopback** (no hardware, no network — generates a waveform and
its FAPI sidecar from a YAML test model):

```python
from wirelesspro_gateway import WirelessProGateway, GatewayConfig

gateway = WirelessProGateway(GatewayConfig())
# ... configure a southbound YAML source and a northbound .bin/FAPI sink ...
gateway.start()
```

**Command-line interface:**

```bash
wpgw --help
wpgw doctor   # preflight check: Python version, required packages, and
              # WirelessPro install/license/version -- run this first if
              # anything above fails to import or behaves unexpectedly
```

The installed wheel includes the version-matched public API reference, guides,
and release notes under `wirelesspro_gateway/docs/`, plus runnable examples
under `wirelesspro_gateway/examples/`. Locate the installed package and its
documentation with:

```python
from importlib.resources import files

package = files("wirelesspro_gateway")
print("Documentation:", package / "docs")
print("Examples:", package / "examples")
```

The `docs/api/`, `docs/guides/`, and `docs/releases/` directories are included
in each wheel and match that package version.

## Architecture

| Layer | Role |
|---|---|
| Southbound | Receives commands (nFAPI, YAML config, or a recorded FAPI trace) |
| PHY engine | Wraps WirelessPro's 5G NR PHY — generates and demodulates waveforms |
| Northbound | Streams outputs (ZMQ IQ, ZMQ sensing, `.bin` IQ files) |
| Slot engine | Coordinates southbound → PHY → northbound, one slot at a time |

## License

`wirelesspro-gateway` shares WirelessPro's commercial license: it is authorized
to run once `wirelesspro` is installed and licensed on your system.

## Support

Contact your Keysight representative for licensing and product support.
