Skip to content

Commit 11bd0c5

Browse files
committed
Merge branch 'dev'
2 parents bd17873 + 50f500d commit 11bd0c5

40 files changed

+1331
-377
lines changed

.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ __pycache__/
1313
.venv
1414
.vscode
1515
.vscode/
16-
build/
1716
prof/
18-
/dist/
17+
dist/pymodbus*
18+
build/html
1919
/pymodbus.egg-info/
2020
venv
2121
downloaded_files/

AUTHORS.rst

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Thanks to
3333
- Dominique Martinet
3434
- Dries
3535
- duc996
36+
- efdx
3637
- Esco441-91
3738
- Farzad Panahi
3839
- Fredo70

CHANGELOG.rst

+18
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,24 @@ helps make pymodbus a better product.
77

88
:ref:`Authors`: contains a complete list of volunteers have contributed to each major version.
99

10+
Version 3.7.1
11+
-------------
12+
* Better error message, when pyserial is missing.
13+
* Slave=0 will return first response, used to identify device address. (#2298)
14+
* Feature/add simulator api skeleton (#2274)
15+
* Correct max. read size for registers. (#2295)
16+
* Ruff complains, due to upgrade. (#2296)
17+
* Properly process 'slaves' argument (#2292)
18+
* Update repl requirement to >= 2.0.4 (#2291)
19+
* Fix aiohttp < 3.9.0 (#2289)
20+
* Simplify framer test setup (#2290)
21+
* Clean up ModbusControlBlock (#2288)
22+
* example docstrings diag_message -> pdu.diag_message (#2286)
23+
* Explain version schema (#2284)
24+
* Add more testing for WriteRegisters. (#2280)
25+
* Proof for issue 2273. (#2277)
26+
* Update simulator tests. (#2276)
27+
1028

1129
Version 3.7.0
1230
-------------

MAKE_RELEASE.rst

+1
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,4 @@ Architecture documentation.
5858
------------------------------------------------------------
5959
* install graphviz
6060
* pyreverse -k -o jpg pymodbus
61+
l

README.rst

+12
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,18 @@ PyModbus - A Python Modbus Stack
1111

1212
Pymodbus is a full Modbus protocol implementation offering client/server with synchronous/asynchronous API a well as simulators.
1313

14+
Our releases is defined as X.Y.Z, and we have strict rules what to release when:
15+
16+
- **Z**, No API changes! bug fixes and smaller enhancements.
17+
- **Y**, API changes, bug fixes and bigger enhancements.
18+
- **X**, Major changes in API and/or method to use pymodbus
19+
20+
Upgrade examples:
21+
22+
- 3.6.1 -> 3.6.9: just plugin the new version, no changes needed.
23+
- 3.6.1 -> 3.7.0: Smaller changes to the pymodbus calls might be needed
24+
- 2.5.4 -> 3.0.0: Major changes in the application might be needed
25+
1426
Current release is `3.7.0 <https://github.com/pymodbus-dev/pymodbus/releases/tag/v3.7.0>`_.
1527

1628
Bleeding edge (not released) is `dev <https://github.com/pymodbus-dev/pymodbus/tree/dev>`_.

build/.gitkeep

Whitespace-only changes.

build/README

-5
This file was deleted.

dist/.gitkeep

Whitespace-only changes.

doc/source/_static/examples.tgz

-276 Bytes
Binary file not shown.

doc/source/_static/examples.zip

5 Bytes
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.. code-block:: json
2+
3+
{
4+
"submit": "Simulate"
5+
"response_clear_after": 0,
6+
"response_cr": "",
7+
"response_cr_pct": 0,
8+
"response_split": "",
9+
"split_delay": 1
10+
"response_delay": 0,
11+
"response_error": 0,
12+
"response_junk_datalen": 0,
13+
"response_type": 0,
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
.. code-block:: json
2+
3+
{
4+
"simulation_action": "ACTIVE",
5+
"range_start": null,
6+
"range_stop": null,
7+
"function_codes": [
8+
{
9+
"value": 3,
10+
"text": "read_holding_registers",
11+
"selected": false
12+
},
13+
{
14+
"value": 2,
15+
"text": "read_discrete_input",
16+
"selected": false
17+
},
18+
{
19+
"value": 4,
20+
"text": "read_input_registers",
21+
"selected": false
22+
},
23+
{
24+
"value": 1,
25+
"text": "read_coils",
26+
"selected": false
27+
},
28+
{
29+
"value": 15,
30+
"text": "write_coils",
31+
"selected": false
32+
},
33+
{
34+
"value": 16,
35+
"text": "write_registers",
36+
"selected": false
37+
},
38+
{
39+
"value": 6,
40+
"text": "write_register",
41+
"selected": false
42+
},
43+
{
44+
"value": 5,
45+
"text": "write_coil",
46+
"selected": false
47+
},
48+
{
49+
"value": 23,
50+
"text": "read_write_multiple_registers",
51+
"selected": false
52+
},
53+
{
54+
"value": 8,
55+
"text": "diagnostic_status",
56+
"selected": false
57+
},
58+
{
59+
"value": 7,
60+
"text": "read_exception_status",
61+
"selected": false
62+
},
63+
{
64+
"value": 11,
65+
"text": "get_event_counter",
66+
"selected": false
67+
},
68+
{
69+
"value": 12,
70+
"text": "get_event_log",
71+
"selected": false
72+
},
73+
{
74+
"value": 17,
75+
"text": "report_slave_id",
76+
"selected": false
77+
},
78+
{
79+
"value": 20,
80+
"text": "read_file_record",
81+
"selected": false
82+
},
83+
{
84+
"value": 21,
85+
"text": "write_file_record",
86+
"selected": false
87+
},
88+
{
89+
"value": 22,
90+
"text": "mask_write_register",
91+
"selected": false
92+
},
93+
{
94+
"value": 24,
95+
"text": "read_fifo_queue",
96+
"selected": false
97+
},
98+
{
99+
"value": 43,
100+
"text": "read_device_information",
101+
"selected": false
102+
}
103+
],
104+
"function_show_hex_checked": false,
105+
"function_show_decoded_checked": false,
106+
"function_response_normal_checked": true,
107+
"function_response_error_checked": false,
108+
"function_response_empty_checked": false,
109+
"function_response_junk_checked": false,
110+
"function_response_split_checked": true,
111+
"function_response_split_delay": 1,
112+
"function_response_cr_checked": false,
113+
"function_response_cr_pct": 0,
114+
"function_response_delay": 0,
115+
"function_response_junk": 0,
116+
"function_error": [
117+
{
118+
"value": 1,
119+
"text": "IllegalFunction",
120+
"selected": false
121+
},
122+
{
123+
"value": 2,
124+
"text": "IllegalAddress",
125+
"selected": false
126+
},
127+
{
128+
"value": 3,
129+
"text": "IllegalValue",
130+
"selected": false
131+
},
132+
{
133+
"value": 4,
134+
"text": "SlaveFailure",
135+
"selected": false
136+
},
137+
{
138+
"value": 5,
139+
"text": "Acknowledge",
140+
"selected": false
141+
},
142+
{
143+
"value": 6,
144+
"text": "SlaveBusy",
145+
"selected": false
146+
},
147+
{
148+
"value": 7,
149+
"text": "MemoryParityError",
150+
"selected": false
151+
},
152+
{
153+
"value": 10,
154+
"text": "GatewayPathUnavailable",
155+
"selected": false
156+
},
157+
{
158+
"value": 11,
159+
"text": "GatewayNoResponse",
160+
"selected": false
161+
}
162+
],
163+
"function_response_clear_after": 1,
164+
"call_rows": [],
165+
"foot": "not active",
166+
"result": "ok"
167+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.. code-block:: json
2+
3+
{
4+
"range_start": 16,
5+
"range_end": 16,
6+
"submit": "Register"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
.. code-block:: json
2+
3+
{
4+
"result": "ok",
5+
"footer": "Operation completed successfully",
6+
"register_types": {
7+
"bits": 1,
8+
"uint16": 2,
9+
"uint32": 3,
10+
"float32": 4,
11+
"string": 5,
12+
"next": 6,
13+
"invalid": 0
14+
},
15+
"register_actions": {
16+
"null": 0,
17+
"increment": 1,
18+
"random": 2,
19+
"reset": 3,
20+
"timestamp": 4,
21+
"uptime": 5
22+
},
23+
"register_rows": [
24+
{
25+
"index": "16",
26+
"type": "uint16",
27+
"access": "True",
28+
"action": "none",
29+
"value": "3124",
30+
"count_read": "0",
31+
"count_write": "0"
32+
}
33+
]
34+
}

0 commit comments

Comments
 (0)