Repository navigation
docs: the comparison and FAQ know about Modbus TCP and RTU over TCP - #3
Conversation
The Modbus Poll comparison still said ModbusReader had no TCP at all. The protocol row is split: Modbus TCP and RTU over TCP are a tick, marked "in the next version" like the Modbus TCP pages (they are in the unreleased changelog, not in 26.10.2); ASCII and UDP stay "no". "When you need Modbus Poll" now names ASCII and UDP only, "When ModbusReader is enough" gains devices on a network, linked to the new protocol pages. The master and emulator function rows were checked against the code and still hold (01-06 with word-by-word 06 writes; the emulator 01-06, 15, 16). The home-page FAQ and the README intro say the same; the site description is left as it is until the release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BSin4uE9YSP4DTxziTKjoK
|
Cause. No fix exists yet. Proposed patch, for a separate PR rather than this docs one: def start_detached(args: list[str]) -> subprocess.Popen:
"""Start *args* so that it outlives this process."""
- flags = (getattr(subprocess, "DETACHED_PROCESS", 0)
- | getattr(subprocess, "CREATE_NEW_PROCESS_GROUP", 0))
kw = dict(stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL, close_fds=True, env=child_env())
+ if sys.platform != "win32":
+ # creationflags exists only on Windows (elsewhere Popen raises
+ # ValueError); a session of its own detaches the child here.
+ return subprocess.Popen(args, start_new_session=True, **kw)
+ flags = (getattr(subprocess, "DETACHED_PROCESS", 0)
+ | getattr(subprocess, "CREATE_NEW_PROCESS_GROUP", 0))
try:
return subprocess.Popen(args, creationflags=flags | 0x01000000, **kw)I ran the full suite locally on Linux, headless, with the pinned I'm re-running the failed job once. It will fail the same way until the fix lands on Generated by Claude Code |
Что изменено и зачем
Страница сравнения с Modbus Poll / Modbus Slave всё ещё утверждала, что Modbus TCP в ModbusReader нет совсем, хотя Modbus TCP и RTU по TCP уже реализованы (
core/transports.py, раздел «Не выпущено» вCHANGELOG.md,docs/modbus/tcp.md,docs/modbus/rtu-over-tcp.md).docs/compare.md/docs/compare.en.mddescriptionупомянут TCP;ModbusCore._execute_write). Эмулятор отвечает на 01–06, 15 и 16 (slave_core.build_response).docs/index.md,docs/index.en.md): в ответах «Чем отличается от Modbus Poll» и «Поддерживается ли Modbus TCP?» больше нет «пока нет»; оба говорят, что TCP будет в следующей версии.TCP помечен как «в следующей версии», потому что в выпущенной 26.10.2 его нет, а сайт публикуется с
main. Так же уже сделано на страницахmodbus/tcp.mdиmodbus/rtu-over-tcp.md. При выпуске эту пометку нужно снять вместе с заметками на тех страницах.site_descriptionвmkdocs.ymlне меняется до выпуска: в нём нет утверждения, что TCP не поддерживается, он только описывает RTU.Как проверено
python -m pytestпроходит — не запускался: изменения только в документацииapp/i18n.pyна русском и английском — не нужноCHANGELOG.md— TCP там уже описанmkdocs build --strictс пакетами изrequirements-docs.txtпроходит без предупреждений. Новые ссылки наmodbus/tcp/иmodbus/rtu-over-tcp/в обеих языковых версиях разрешаются.Generated by Claude Code