|
1 | | -"""Framer start.""" |
2 | | -# pylint: disable=missing-type-doc |
3 | | - |
4 | | - |
5 | | -# Unit ID, Function Code |
6 | | -BYTE_ORDER = ">" |
7 | | -FRAME_HEADER = "BB" |
8 | | - |
9 | | -# Transaction Id, Protocol ID, Length, Unit ID, Function Code |
10 | | -SOCKET_FRAME_HEADER = BYTE_ORDER + "HHH" + FRAME_HEADER |
11 | | - |
12 | | -# Function Code |
13 | | -TLS_FRAME_HEADER = BYTE_ORDER + "B" |
14 | | - |
15 | | - |
16 | | -class ModbusFramer: |
17 | | - """Base Framer class.""" |
18 | | - |
19 | | - name = "" |
20 | | - |
21 | | - def __init__(self, decoder, client=None): |
22 | | - """Initialize a new instance of the framer. |
23 | | -
|
24 | | - :param decoder: The decoder implementation to use |
25 | | - """ |
26 | | - self.decoder = decoder |
27 | | - self.client = client |
28 | | - |
29 | | - def _validate_slave_id(self, slaves, single): |
30 | | - """Validate if the received data is valid for the client. |
31 | | -
|
32 | | - :param slaves: list of slave id for which the transaction is valid |
33 | | - :param single: Set to true to treat this as a single context |
34 | | - :return: |
35 | | - """ |
36 | | - if single: |
37 | | - return True |
38 | | - if 0 in slaves or 0xFF in slaves: |
39 | | - # Handle Modbus TCP slave identifier (0x00 0r 0xFF) |
40 | | - # in asynchronous requests |
41 | | - return True |
42 | | - return self._header["uid"] in slaves # pylint: disable=no-member |
43 | | - |
44 | | - def sendPacket(self, message): |
45 | | - """Send packets on the bus. |
46 | | -
|
47 | | - With 3.5char delay between frames |
48 | | - :param message: Message to be sent over the bus |
49 | | - :return: |
50 | | - """ |
51 | | - return self.client.send(message) |
52 | | - |
53 | | - def recvPacket(self, size): |
54 | | - """Receive packet from the bus. |
55 | | -
|
56 | | - With specified len |
57 | | - :param size: Number of bytes to read |
58 | | - :return: |
59 | | - """ |
60 | | - return self.client.recv(size) |
| 1 | +"""Framer""" |
| 2 | + |
| 3 | +__all__ = [ |
| 4 | + "ModbusFramer", |
| 5 | + "ModbusAsciiFramer", |
| 6 | + "ModbusBinaryFramer", |
| 7 | + "ModbusRtuFramer", |
| 8 | + "ModbusSocketFramer", |
| 9 | + "ModbusTlsFramer", |
| 10 | +] |
| 11 | + |
| 12 | +from pymodbus.framer.ascii_framer import ModbusAsciiFramer |
| 13 | +from pymodbus.framer.base import ModbusFramer |
| 14 | +from pymodbus.framer.binary_framer import ModbusBinaryFramer |
| 15 | +from pymodbus.framer.rtu_framer import ModbusRtuFramer |
| 16 | +from pymodbus.framer.socket_framer import ModbusSocketFramer |
| 17 | +from pymodbus.framer.tls_framer import ModbusTlsFramer |
0 commit comments