Skip to content

Commit bb94f72

Browse files
author
Zbigniew Zasieczny
committed
FIX: handling write timeout exception; created sub-modules for strategies, protocol and utils
1 parent 26db40a commit bb94f72

File tree

12 files changed

+45
-28
lines changed

12 files changed

+45
-28
lines changed

pjon_python/base_client.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
from pjon_python import serial_utils
2-
import serial
3-
import time
4-
from pjon_python import crc8
5-
from pjon_python import pjon_protocol
6-
from pjon_python import pjon_hwserial_strategy
71
import logging
2+
import time
83
from threading import Thread
94

5+
import serial
6+
7+
from pjon_python.protocol import pjon_protocol
8+
from pjon_python.strategies import pjon_hwserial_strategy
9+
from pjon_python.utils import serial_utils, crc8
10+
1011
"""
1112
NOT IMPLEMENTED; it's just fooling around; refer to pjon_protocol for working implementation
1213
"""

pjon_python/protocol/__init__.py

Whitespace-only changes.
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
from pjon_python import pjon_protocol_constants
2-
from pjon_python import crc8
31
import logging
4-
import time
5-
import random
62
import math
3+
import random
4+
import time
5+
6+
from pjon_python.protocol import pjon_protocol_constants
7+
from pjon_python.utils import crc8
78

89
try:
910
xrange
@@ -383,7 +384,7 @@ def send_string(self, recipient_id, string_to_send, string_length=None, packet_h
383384

384385
if response != pjon_protocol_constants.FAIL:
385386
log.debug("collision or corruption; sleeping")
386-
time.sleep( random.randint(0, pjon_protocol_constants.COLLISION_MAX_DELAY/1000))
387+
time.sleep(random.randint(0, pjon_protocol_constants.COLLISION_MAX_DELAY / 1000))
387388

388389
# FIXME: original PJON lib does not return anything
389390
return pjon_protocol_constants.BUSY
File renamed without changes.

pjon_python/strategies/__init__.py

Whitespace-only changes.

pjon_python/pjon_hwserial_strategy.py renamed to pjon_python/strategies/pjon_hwserial_strategy.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
from pjon_python import pjon_protocol_constants
2-
import time
31
import logging
2+
import time
3+
4+
from serial import SerialTimeoutException
5+
6+
from pjon_python.protocol import pjon_protocol_constants
47

58
log = logging.getLogger("ser-strat")
69

@@ -53,6 +56,10 @@ def send_byte(self, b):
5356
raise TypeError
5457
except TypeError:
5558
raise UnsupportedPayloadType("byte type should be str length 1 or int but %s found" % type(b))
59+
60+
except SerialTimeoutException:
61+
log.exception("write timeout")
62+
5663
return 0
5764

5865
def receive_byte(self, is_ack_response=False):

pjon_python/utils/__init__.py

Whitespace-only changes.

tests/test_PJONserialStrategy.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
from unittest import TestCase
2-
from pjon_python.pjon_hwserial_strategy import PJONserialStrategy, UnsupportedPayloadType
2+
33
import mock
44

5+
from pjon_python.strategies.pjon_hwserial_strategy import PJONserialStrategy, UnsupportedPayloadType
6+
7+
58
class TestPJONserialStrategy(TestCase):
69

710
def test_send_byte_should_convert_int_to_chr(self):

0 commit comments

Comments
 (0)