Metadata-Version: 2.5
Name: open-ax25
Version: 0.1.0
Summary: AX.25 v2.2 data-link protocol state machine for packet radio
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# open-ax25

A pure-Python AX.25 v2.2 data-link protocol state machine (SABM/UA/DISC, I-frames, T1/T3 timers, Go-Back-N windowing), extracted from [open-packet](https://github.com/loredous/open-packet).

`AX25Connection` runs over any link layer implementing the `open_ax25.link.LinkLayer` protocol (`connect`/`disconnect`/`send_frame`/`receive_frame`) — for example [open-kiss](https://github.com/loredous/open-kiss)'s `KISSLink`.

## Install

    pip install open-ax25

## Usage

    from open_kiss.transport.tcp import TCPTransport
    from open_kiss.kiss import KISSLink
    from open_ax25.connection import AX25Connection

    kiss = KISSLink(transport=TCPTransport(host="127.0.0.1", port=8001))
    conn = AX25Connection(kiss=kiss, my_callsign="N0CALL", my_ssid=0)
    conn.connect(callsign="W0RLY", ssid=1)
    conn.send_frame(b"hello")
    payload = conn.receive_frame(timeout=5.0)
    conn.disconnect()
