Greg Albrecht 2 years ago
parent
commit
81ec616813
6 changed files with 54 additions and 37 deletions
  1. 2 2
      .travis.yml
  2. 2 0
      CONTRIBUTORS
  3. 27 22
      README.rst
  4. 1 1
      kiss/constants.py
  5. 1 0
      requirements.txt
  6. 21 12
      setup.py

+ 2 - 2
.travis.yml

@ -4,6 +4,6 @@ python:
4 4
  - "2.7"
5 5
  - "3.5"
6 6
7
install: make
7
install: make develop install_requirements
8 8
9
script: make install_requirements nosetests
9
script: make nosetests

+ 2 - 0
CONTRIBUTORS

@ -1,9 +1,11 @@
1 1
- Avi Solomon - https://github.com/genepool99
2 2
- Ben Benesh - https://github.com/bbene
3 3
- Enrico - https://github.com/Enrico204
4
- Greg Albrecht W2GMD - https://github.com/ampledata
4 5
- Humphreybas - https://github.com/Humphreybas
5 6
- JDat - https://github.com/JDat
6 7
- Jay Nugent
8
- Jeffrey Phillips Freeman (WI2ARD) - http://JeffreyFreeman.me
7 9
- Joe Goforth
8 10
- John Hogenmiller KB3DFZ - https://github.com/ytjohn
9 11
- Paul McMillan - https://github.com/PaulMcMillan

+ 27 - 22
README.rst

@ -1,23 +1,24 @@
1
KISS Protocol implementation in Python
2
**************************************
1
kiss - Python KISS Module
2
*************************
3 3
4
A pure-Python implementation of the KISS Protocol for communicating with
5
serial TNC devices for use with Amateur Radio.
4
kiss is a Python Module that implementations the `KISS <https://en.wikipedia.org/wiki/KISS_(TNC)>`_ Protocol for
5
communicating with KISS-enabled devices (such as Serial or TCP TNCs).
6 6
7 7
Installation
8 8
============
9 9
Install from pypi using pip: ``pip install kiss``
10 10
11 11
12
Usage Example
13
=============
12
Usage Examples
13
==============
14 14
Read & print frames from a TNC connected to '/dev/ttyUSB0' at 1200 baud::
15 15
16 16
    import kiss
17 17
18
    def p(x): print(x)  # prints whatever is passed in.
19
18 20
    k = kiss.SerialKISS('/dev/ttyUSB0', 1200)
19 21
    k.start()  # inits the TNC, optionally passes KISS config flags.
20
    def p(x): print(x) # prints whatever is passed in.
21 22
    k.read(callback=p)  # reads frames and passes them to `p`.
22 23
23 24
@ -31,21 +32,26 @@ Run nosetests from a Makefile target::
31 32
    make test
32 33
33 34
34
Inspiration
35
===========
36
Inspiration for this project came from:
35
See Also
36
========
37
38
* `kiss <https://github.com/ampledata/kiss>`_ Python KISS Module. Handles interfacing-to and encoding-for various KISS interfaces.
39
* `dirus <https://github.com/ampledata/dirus>`_ Dirus is a daemon for managing a SDR to Dire Wolf interface. Manifests that interface as a KISS TCP port.
40
* `aprsgate <https://github.com/ampledata/aprsgate>`_ Python APRS Gateway. Uses Redis PubSub to run a multi-interface APRS Gateway.
41
* `aprstracker <https://github.com/ampledata/aprstracker>`_ TK.
37 42
38
* HA5DI's dixprs_: A Python APRS project with KISS, digipeater, et al., support.
39
* GE0RG's APRSDroid_: A Java/Scala Android APRS App.
40
* KA2DDO's YAAC_: A Java APRS app.
41
* aprs.fi_'s Ham-APRS-FAP_: A Perl APRS parser.
42 43
43
.. _dixprs: https://sites.google.com/site/dixprs/
44
.. _aprsdroid: http://aprsdroid.org/
45
.. _YAAC: http://www.ka2ddo.org/ka2ddo/YAAC.html
46
.. _aprs.fi: http://search.cpan.org/dist/Ham-APRS-FAP/
47
.. _Ham-APRS-FAP: http://search.cpan.org/dist/Ham-APRS-FAP/
44
Similar Projects
45
================
48 46
47
* `apex <https://github.com/Syncleus/apex>`_ by Jeffrey Phillips Freeman (WI2ARD). Next-Gen APRS Protocol. (based on this Module! :)
48
* `aprslib <https://github.com/rossengeorgiev/aprs-python>`_ by Rossen Georgiev. A Python APRS Library with build-in parsers for several Frame types.
49
* `aprx <http://thelifeofkenneth.com/aprx/>`_ by Matti & Kenneth. A C-based Digi/IGate Software for POSIX platforms.
50
* `dixprs <https://sites.google.com/site/dixprs/>`_ by HA5DI. A Python APRS project with KISS, digipeater, et al., support.
51
* `APRSDroid <http://aprsdroid.org/>`_ by GE0RG. A Java/Scala Android APRS App.
52
* `YAAC <http://www.ka2ddo.org/ka2ddo/YAAC.html>`_ by KA2DDO. A Java APRS Client.
53
* `Ham-APRS-FAP <http://search.cpan.org/dist/Ham-APRS-FAP/>`_ by aprs.fi: A Perl APRS Parser.
54
* `Dire Wolf <https://github.com/wb2osz/direwolf>`_ by WB2OSZ. A C-Based Soft-TNC for interfacing with sound cards. Can present as a KISS interface!
49 55
50 56
Build Status
51 57
============
@ -63,8 +69,7 @@ Develop:
63 69
64 70
Source
65 71
======
66
https://github.com/ampledata/kiss
67
72
Github: https://github.com/ampledata/kiss
68 73
69 74
Author
70 75
======
@ -72,11 +77,11 @@ Greg Albrecht W2GMD oss@undef.net
72 77
73 78
http://ampledata.org/
74 79
75
76 80
Copyright
77 81
=========
78 82
Copyright 2016 Orion Labs, Inc. and Contributors
79 83
84
`APRS <http://www.aprs.org/>`_ is Copyright Bob Bruninga WB4APR wb4apr@amsat.org
80 85
81 86
License
82 87
=======

+ 1 - 1
kiss/constants.py

@ -10,7 +10,7 @@ __copyright__ = 'Copyright 2016 Orion Labs, Inc. and Contributors'
10 10
__license__ = 'Apache License, Version 2.0'
11 11
12 12
13
LOG_LEVEL = logging.INFO
13
LOG_LEVEL = logging.DEBUG
14 14
LOG_FORMAT = logging.Formatter(
15 15
    '%(asctime)s kiss %(levelname)s %(name)s.%(funcName)s:%(lineno)d'
16 16
    ' - %(message)s')

+ 1 - 0
requirements.txt

@ -9,3 +9,4 @@
9 9
flake8
10 10
pylint
11 11
aprs
12
twine

+ 21 - 12
setup.py

@ -2,11 +2,15 @@
2 2
# -*- coding: utf-8 -*-
3 3
4 4
"""
5
Setup for the KISS Python Module.
5
Setup for the Python KISS Module.
6 6
7 7
Source:: https://github.com/ampledata/kiss
8 8
"""
9 9
10
import os
11
import setuptools
12
import sys
13
10 14
__title__ = 'kiss'
11 15
__version__ = '5.0.0b1'
12 16
__author__ = 'Greg Albrecht W2GMD <oss@undef.net>'
@ -14,15 +18,11 @@ __copyright__ = 'Copyright 2016 Orion Labs, Inc. and Contributors'
14 18
__license__ = 'Apache License, Version 2.0'
15 19
16 20
17
import os
18
import setuptools
19
import sys
20
21
22 21
def publish():
23 22
    """Function for publishing package to pypi."""
24 23
    if sys.argv[-1] == 'publish':
25
        os.system('python setup.py sdist upload')
24
        os.system('python setup.py sdist')
25
        os.system('twine upload dist/*')
26 26
        sys.exit()
27 27
28 28
@ -32,19 +32,28 @@ publish()
32 32
setuptools.setup(
33 33
    name=__title__,
34 34
    version=__version__,
35
    description='KISS Python Module.',
36
    long_description=open('README.rst').read(),
35
    description='Python KISS Module.',
37 36
    author='Greg Albrecht',
38 37
    author_email='oss@undef.net',
38
    packages=['kiss'],
39
    package_data={'': ['LICENSE']},
40
    package_dir={'kiss': 'kiss'},
39 41
    license=open('LICENSE').read(),
42
    long_description=open('README.rst').read(),
40 43
    url='https://github.com/ampledata/kiss',
44
    zip_safe=False,
41 45
    setup_requires=[
42 46
        'coverage >= 3.7.1',
43 47
        'nose >= 1.3.7',
44 48
        'dummyserial'
45 49
    ],
46 50
    install_requires=['pyserial >= 2.7'],
47
    package_dir={'kiss': 'kiss'},
48
    packages=['kiss'],
49
    zip_safe=False
51
    classifiers=[
52
        'Topic :: Communications :: Ham Radio',
53
        'Programming Language :: Python',
54
        'License :: OSI Approved :: Apache Software License'
55
    ],
56
    keywords=[
57
        'Ham Radio', 'APRS', 'KISS'
58
    ]
50 59
)