93 lines
2.3 KiB
Python
93 lines
2.3 KiB
Python
# -*- encoding: utf-8 -*-
|
|
from __future__ import print_function, unicode_literals, division, absolute_import
|
|
|
|
from enocean.communicators.communicator import Communicator
|
|
from enocean.protocol.packet import Packet, RadioPacket
|
|
from enocean.protocol.constants import PACKET
|
|
from enocean.decorators import timing
|
|
|
|
|
|
@timing(1000)
|
|
def test_buffer():
|
|
''' Test buffer parsing for Communicator '''
|
|
data = bytearray([
|
|
0x55,
|
|
0x00, 0x0A, 0x07, 0x01,
|
|
0xEB,
|
|
0xA5, 0x00, 0x00, 0x55, 0x08, 0x01, 0x81, 0xB7, 0x44, 0x00,
|
|
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x2D, 0x00,
|
|
0x75
|
|
])
|
|
com = Communicator()
|
|
com._buffer.extend(data[0:5])
|
|
com.parse()
|
|
assert com.receive.qsize() == 0
|
|
com._buffer.extend(data[5:])
|
|
com.parse()
|
|
assert com.receive.qsize() == 1
|
|
|
|
|
|
@timing(1000)
|
|
def test_send():
|
|
''' Test sending packets to Communicator '''
|
|
com = Communicator()
|
|
assert com.send('AJSNDJASNDJANSD') is False
|
|
assert com.transmit.qsize() == 0
|
|
assert com._get_from_send_queue() is None
|
|
assert com.send(Packet(PACKET.COMMON_COMMAND, [0x08])) is True
|
|
assert com.transmit.qsize() == 1
|
|
assert isinstance(com._get_from_send_queue(), Packet)
|
|
|
|
|
|
def test_stop():
|
|
com = Communicator()
|
|
com.stop()
|
|
assert com._stop_flag.is_set()
|
|
|
|
|
|
def test_callback():
|
|
def callback(packet):
|
|
assert isinstance(packet, RadioPacket)
|
|
|
|
data = bytearray([
|
|
0x55,
|
|
0x00, 0x0A, 0x07, 0x01,
|
|
0xEB,
|
|
0xA5, 0x00, 0x00, 0x55, 0x08, 0x01, 0x81, 0xB7, 0x44, 0x00,
|
|
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x2D, 0x00,
|
|
0x75
|
|
])
|
|
|
|
com = Communicator(callback=callback)
|
|
com._buffer.extend(data)
|
|
com.parse()
|
|
assert com.receive.qsize() == 0
|
|
|
|
|
|
def test_base_id():
|
|
com = Communicator()
|
|
assert com.base_id is None
|
|
|
|
other_data = bytearray([
|
|
0x55,
|
|
0x00, 0x0A, 0x07, 0x01,
|
|
0xEB,
|
|
0xA5, 0x00, 0x00, 0x55, 0x08, 0x01, 0x81, 0xB7, 0x44, 0x00,
|
|
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x2D, 0x00,
|
|
0x75
|
|
])
|
|
|
|
response_data = bytearray([
|
|
0x55,
|
|
0x00, 0x05, 0x00, 0x02,
|
|
0xCE,
|
|
0x00, 0xFF, 0x87, 0xCA, 0x00,
|
|
0xA3
|
|
])
|
|
|
|
com._buffer.extend(other_data)
|
|
com._buffer.extend(response_data)
|
|
com.parse()
|
|
assert com.base_id == [0xFF, 0x87, 0xCA, 0x00]
|
|
assert com.receive.qsize() == 2
|