2php / python4yahdlc

Python binding of the yahdlc library

Home Page:https://pypi.python.org/pypi/python4yahdlc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

python4yahdlc

PyPI Package Latest Release PyPI Package Downloads Per Month PyPI Package Python Versions Build Status

python4yahdlc is a Python binding of the yahdlc library, allowing to encode and decode HDLC frames.

Dependencies

This software requires Python 3.

Installation

From PyPI (recommended)

pip install --upgrade python4yahdlc

From sources

git clone https://github.com/SkypLabs/python4yahdlc.git
cd python4yahdlc
git submodule update --init --recursive
pip install --upgrade .

Usage

To generate a new HDLC data frame:

from yahdlc import *

frame = frame_data('hello world!')

To generate a new HDLC ACK frame with a specific sequence number:

frame = frame_data('', FRAME_ACK, 3)

The highest sequence number is 7 and the following frame types are available:

  • FRAME_DATA
  • FRAME_ACK
  • FRAME_NACK

Note that when you generate an ACK or NACK frame, the payload is useless.

To decode a received HDLC frame:

data, ftype, seq_no = get_data(frame)

For a more advanced use, take a look at the examples available in the examples folder.

Development

To set up a development environment on your local machine:

# Clone the Git repository and initialise its sub-modules.
git clone https://github.com/SkypLabs/python4yahdlc.git
cd python4yahdlc
git submodule update --init --recursive

# Create a virtual environment and activate it.
python -m venv .venv
source .venv/bin/activate

# Make sure to have the latest versions of pip and setuptools.
pip install --upgrade pip setuptools

# Install python4yahdlc in editable mode with all its optional
# dependencies.
pip install -e .[examples,tests]

License

This project is released under the GPL version 3 license. The yahdlc library is released under the MIT license.

About

Python binding of the yahdlc library

https://pypi.python.org/pypi/python4yahdlc

License:GNU General Public License v3.0


Languages

Language:C 57.4%Language:Python 42.6%