From 714fe175ee1cbe17ba51434297e2e06cc3bed469 Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Thu, 22 Dec 2016 17:50:02 +0100 Subject: [PATCH] Fixed sending part --- software/python/sss7.py | 30 +++++++++++++++++++----------- software/python/test.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 software/python/test.py diff --git a/software/python/sss7.py b/software/python/sss7.py index 714de99..e469e69 100644 --- a/software/python/sss7.py +++ b/software/python/sss7.py @@ -2,9 +2,11 @@ from ctypes import * -LIBSSS7_PATH = "../linux/libsss7.so" +LIBSSS7_PATH = "../linux/bin/libsss7.so" LIBSSS7_PAYLOAD_SIZE = 16 +_SSS7_PAYLOAD_TYPE = c_ubyte * LIBSSS7_PAYLOAD_SIZE + _LIB_SSS7 = cdll.LoadLibrary(LIBSSS7_PATH) # int libsss7_start(char *serialport); @@ -16,7 +18,7 @@ _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.argtypes = [_SSS7_PAYLOAD_TYPE] _LIB_SSS7.libsss7_send.restype = c_int # int libsss7_send_failed(void); @@ -28,7 +30,7 @@ _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.argtypes = [_SSS7_PAYLOAD_TYPE] _LIB_SSS7.libsss7_get_received.restype = c_int # void libsss7_stop(); @@ -40,22 +42,28 @@ class _SSS7(object): def start(self, port): return _LIB_SSS7.libsss7_start(port) == 0 - def can_send(): + def can_send(self): return _LIB_SSS7.libsss7_can_send() == 1 - def send(msg): - _LIB_SSS7.libsss7_send(msg) + def send(self,msg): + msg += [0] * (LIBSSS7_PAYLOAD_SIZE - len(msg)) + payload = _SSS7_PAYLOAD_TYPE(*msg) + _LIB_SSS7.libsss7_send(payload) - def send_failed(): - return _LIB_SSS7.libsss7_send_failed() == 1 + def send_failed(self): + tmp = _LIB_SSS7.libsss7_send_failed() + print tmp + return tmp == 1 - def has_received(): + def has_received(self): return _LIB_SSS7.libsss7_get_received() - def get_received(): + def get_received(self): payload = [0] * LIBSSS7_PAYLOAD_SIZE _LIB_SSS7.libsss7_get_received(payload) return payload - def stop(): + def stop(self): _LIB_SSS7.libsss7_stop() + +SSS7 = _SSS7() diff --git a/software/python/test.py b/software/python/test.py new file mode 100644 index 0000000..602924b --- /dev/null +++ b/software/python/test.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python2 + +from time import sleep + +from sss7 import SSS7 + +def to_byte_list(data): + return [ord(c) for c in data] + +def to_string(data): + data = [chr(c) for c in data] + return "".join(data) + +def main(): + SSS7.start("/dev/ttyUSB0") + + while not SSS7.can_send() : + sleep(0.1) + + SSS7.send(to_byte_list("Hello python")) + while not SSS7.can_send(): + sleep(0.1) + + if SSS7.send_failed(): + print "Send failed" + + + #while(!bus.hasReceived()); + #byte[] data = bus.getReceived(); + #String str = new String(data); + #System.out.println(str); + + + SSS7.stop() + + +if __name__ == '__main__': + main()