Add a user documentation foundation - #162
Conversation
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe README was simplified and the user documentation was expanded. New pages cover Modbus concepts, TCP and RTU clients, TLS, servers, operations, APIs, errors, PDUs, lifecycle, concurrency, and transport configuration. ChangesOnboarding and documentation navigation
Protocol concepts and framing
Client communication workflows
Server and operations workflows
Behavior, errors, and PDU reference
Lifecycle, concurrency, and transport reference
Estimated code review effort: 2 (Simple) | ~15 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Introduce a documentation tree under docs/: task-oriented how-to guides for clients, servers, and operations; concept pages for the Modbus mental model, addressing, and transports; and reference pages for configuration, behavior, errors, and the API. Rework the README to lead with a minimal client example and hand off to the documentation index instead of duplicating usage details.
2215105 to
5961f5d
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
docs/user/how-to/operations/configure-timeouts-and-reconnection.md (1)
71-73: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winUse application logging instead of
printStackTrace().
e.getCause().printStackTrace()writes the complete transport or TLS failure chain to stderr. Pass the exception to the application logger so the caller controls redaction, routing, and retention.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/user/how-to/operations/configure-timeouts-and-reconnection.md` around lines 71 - 73, Replace e.getCause().printStackTrace() in the ModbusExecutionException catch block with the application’s established logger, passing the exception as the throwable so the full cause chain is handled by configured logging.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/user/how-to/servers/expose-data-over-modbus-tcp.md`:
- Around line 57-59: Update the example around server.start() so it either waits
for a complete input line using BufferedReader.readLine(), preserving the “press
Enter” message, or revise the message to state that any input byte stops the
server; keep the shutdown flow unchanged.
- Around line 47-54: Update the NettyTcpServerTransport configuration in the
ModbusTcpServer example to bind to 127.0.0.1 instead of 0.0.0.0, keeping the
local example’s existing port and server setup unchanged.
In `@docs/user/reference/lifecycle-concurrency-and-resources.md`:
- Around line 23-24: Update the lifecycle/API statement near “Every client
lifecycle and request operation” to limit the async-counterpart claim to
connect, disconnect, and request operations, while preserving the existing
distinction that open() and isConnected() have no asynchronous forms.
---
Nitpick comments:
In `@docs/user/how-to/operations/configure-timeouts-and-reconnection.md`:
- Around line 71-73: Replace e.getCause().printStackTrace() in the
ModbusExecutionException catch block with the application’s established logger,
passing the exception as the throwable so the full cause chain is handled by
configured logging.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 075a9518-a200-42e6-9e59-48bcade145c3
📒 Files selected for processing (19)
README.mddocs/user/concepts/addressing-unit-ids-and-data.mddocs/user/concepts/modbus-mental-model.mddocs/user/concepts/transports-framing-and-security.mddocs/user/how-to/clients/communicate-over-serial-rtu.mddocs/user/how-to/clients/read-and-write-over-tcp.mddocs/user/how-to/clients/secure-a-modbus-tcp-client-with-tls.mddocs/user/how-to/operations/configure-timeouts-and-reconnection.mddocs/user/how-to/operations/troubleshoot-communication.mddocs/user/how-to/servers/expose-data-over-modbus-tcp.mddocs/user/index.mddocs/user/reference/api-reference.mddocs/user/reference/client-and-server-behavior.mddocs/user/reference/errors-and-exceptions.mddocs/user/reference/feature-and-transport-matrix.mddocs/user/reference/function-codes-and-pdus.mddocs/user/reference/installation-and-modules.mddocs/user/reference/lifecycle-concurrency-and-resources.mddocs/user/reference/transport-configuration.md
Summary
This PR changes documentation only; it does not modify runtime behavior.