Metadata-Version: 2.1
Name: ok-dmrlib
Version: 0.1
Summary: Parse, assemble and handle DMR protocols
Home-page: https://github.com/OK-DMR/ok-dmrlib
Author: Marek Sebera
Author-email: marek.sebera@gmail.com
License: AGPL-3.0
Keywords: dmr etsi ham mmdvm homebrew radio hytera motorola
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Environment :: Console
Classifier: Topic :: Communications :: Ham Radio
Classifier: Operating System :: POSIX :: Linux
Classifier: Typing :: Typed
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Telecommunications Industry
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.7
Requires-Python: ~=3.7
Description-Content-Type: text/markdown
License-File: LICENSE

# OK-DMR Lib

![.github/workflows/sanity.yml](https://img.shields.io/github/workflow/status/OK-DMR/ok-dmrlib/Sanity?style=flat-square)
![Code Style: Python Black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)
![License](https://img.shields.io/github/license/OK-DMR/ok-dmrlib?style=flat-square)
![Last released version](https://img.shields.io/pypi/v/ok-dmrlib?style=flat-square)
![PyPI downloads](https://img.shields.io/pypi/v/ok-dmrlib?style=flat-square)

This package provides way to parse and assemble various DMR ETSI protocols and functions, in pure Python implementation

## Supported features

### FEC (Forward Error Correction)

| Algorithm                  | Encoding | Decoding / Verification |
|----------------------------|:--------:|:-----------------------:|
| Hamming (7,4,3)            |    ✅     |            ✅            |
| Hamming (13,9,3)           |    ✅     |            ✅            |
| Hamming (15,11,3)          |    ✅     |            ✅            |
| Hamming (16,11,3)          |    ✅     |            ✅            |
| Hamming (17,12,3)          |    ✅     |            ✅            |
| Golay (20,8,7)             |    ✅     |            ✅            |
| Quadratic Residue (16,7,6) |    ✅     |            ✅            |
| Reed-Solomon (12,9,4)      |    ✅     |            ✅            |

### Coding

| Coding                            |  Encoding  |  Decoding  |
|-----------------------------------|:----------:|:----------:|
| Rate 3/4 Trellis                  |     ✅      |     ✅      |
| Block Product Turbo Code (196,96) |     ✅      |     ✅      |

### CRC (Cyclic Redundancy Check) and Checksums

| Name                  | Generate | Verify |
|-----------------------|:--------:|:------:|
| 5-bit checksum        |    ✅     |   ✅    |
| CRC-9                 |    ✅     |   ✅    |
| CRC-CCIT (CRC16-CCIT) |    ✅     |   ✅    |
| CRC-32 (32-bit CRC)   |    ✅     |   ✅    |

