Staretd work on Python port

This commit is contained in:
Sebastian 2016-12-19 11:46:33 +01:00
parent 14fd4e5eb5
commit cb6b8944a3
1 changed files with 61 additions and 0 deletions

61
software/python/sss7.py Normal file
View File

@ -0,0 +1,61 @@
#!/usr/bin/env python2
from ctypes import *
LIBSSS7_PATH = "../linux/libsss7.so"
LIBSSS7_PAYLOAD_SIZE = 16
_LIB_SSS7 = cdll.LoadLibrary(LIBSSS7_PATH)
# int libsss7_start(char *serialport);
_LIB_SSS7.libsss7_start.argtypes = [c_char_p]
_LIB_SSS7.libsss7_start.restype = c_int
# int libsss7_can_send(void);
_LIB_SSS7.libsss7_can_send.argtypes = None
_LIB_SSS7.libsss7_can_send.restype = c_int
# void libsss7_send(uint8_t msg[LIBSSS7_PAYLOAD_SIZE]);
_LIB_SSS7.libsss7_send.argtypes = [c_ubyte * LIBSSS7_PAYLOAD_SIZE]
_LIB_SSS7.libsss7_send.restype = c_int
# int libsss7_send_failed(void);
_LIB_SSS7.libsss7_send_failed.argtypes = None
_LIB_SSS7.libsss7_send_failed.restype = c_int
# int libsss7_has_received(void);
_LIB_SSS7.libsss7_has_received.argtypes = None
_LIB_SSS7.libsss7_has_received.restype = c_int
# libsss7_get_received(uint8_t *msg);
_LIB_SSS7.libsss7_get_received = [c_ubyte * LIBSSS7_PAYLOAD_SIZE]
_LIB_SSS7.libsss7_get_received.restype = c_int
# void libsss7_stop();
_LIB_SSS7.libsss7_stop.argtypes = None
_LIB_SSS7.libsss7_stop.restype = None
class _SSS7(object):
def start(self, port):
return _LIB_SSS7.libsss7_start(port) == 0
def can_send():
return _LIB_SSS7.libsss7_can_send() == 1
def send(msg):
_LIB_SSS7.libsss7_send(msg)
def send_failed():
return _LIB_SSS7.libsss7_send_failed() == 1
def has_received():
return _LIB_SSS7.libsss7_get_received()
def get_received():
payload = [0] * LIBSSS7_PAYLOAD_SIZE
_LIB_SSS7.libsss7_get_received(payload)
return payload
def stop():
_LIB_SSS7.libsss7_stop()