Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ resolver = "2"
members = [
"rodbus",
"rodbus-client",
# example binaries
"examples/client",
"examples/server",
"examples/perf",
# FFI crates
"ffi/rodbus-bindings",
"ffi/rodbus-ffi",
"ffi/rodbus-ffi-java",
Expand Down
27 changes: 27 additions & 0 deletions examples/client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[package]
name = "example-client"
version = "1.4.0"

# inherit from workspace
authors.workspace = true
rust-version.workspace = true
edition.workspace = true
license-file.workspace = true
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
rodbus = { path = "../../rodbus", features = ["tls", "serial"] }
clap = { version = "4.1.8", features = ["derive"] }
tokio = { workspace = true, features = ["net", "sync", "io-util", "io-std", "time", "rt", "rt-multi-thread", "macros"] }
tokio-stream = "0.1"
tokio-util = { version = "0.7", features = ["codec"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }

[features]
default = ["tls", "serial"]
tls = []
serial = []
4 changes: 2 additions & 2 deletions rodbus/examples/client.rs → examples/client/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ where
async fn run_tcp() -> Result<(), Box<dyn std::error::Error>> {
// ANCHOR: create_tcp_channel
let channel = spawn_tcp_client_task(
HostAddr::ip(IpAddr::V4(Ipv4Addr::LOCALHOST), 502),
HostAddr::ip(IpAddr::V4(Ipv4Addr::LOCALHOST), 2000),
1,
default_retry_strategy(),
DecodeLevel::default(),
Expand Down Expand Up @@ -98,7 +98,7 @@ async fn run_rtu() -> Result<(), Box<dyn std::error::Error>> {
async fn run_tls(tls_config: TlsClientConfig) -> Result<(), Box<dyn std::error::Error>> {
// ANCHOR: create_tls_channel
let channel = spawn_tls_client_task(
HostAddr::ip(IpAddr::V4(Ipv4Addr::LOCALHOST), 802),
HostAddr::ip(IpAddr::V4(Ipv4Addr::LOCALHOST), 2000),
1,
default_retry_strategy(),
tls_config,
Expand Down
27 changes: 27 additions & 0 deletions examples/perf/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[package]
name = "example-perf"
version = "1.4.0"

# inherit from workspace
authors.workspace = true
rust-version.workspace = true
edition.workspace = true
license-file.workspace = true
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
rodbus = { path = "../../rodbus", features = ["tls", "serial"] }
clap = { version = "4.1.8", features = ["derive"] }
tokio = { workspace = true, features = ["net", "sync", "io-util", "io-std", "time", "rt", "rt-multi-thread", "macros"] }
tokio-stream = "0.1"
tokio-util = { version = "0.7", features = ["codec"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }

[features]
default = ["tls", "serial"]
tls = []
serial = []
File renamed without changes.
27 changes: 27 additions & 0 deletions examples/server/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[package]
name = "example-server"
version = "1.4.0"

# inherit from workspace
authors.workspace = true
rust-version.workspace = true
edition.workspace = true
license-file.workspace = true
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
rodbus = { path = "../../rodbus", features = ["tls", "serial"] }
clap = { version = "4.1.8", features = ["derive"] }
tokio = { workspace = true, features = ["net", "sync", "io-util", "io-std", "time", "rt", "rt-multi-thread", "macros"] }
tokio-stream = "0.1"
tokio-util = { version = "0.7", features = ["codec"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }

[features]
default = ["tls", "serial"]
tls = []
serial = []
4 changes: 2 additions & 2 deletions rodbus/examples/server.rs → examples/server/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ async fn run_tcp() -> Result<(), Box<dyn std::error::Error>> {
// ANCHOR: tcp_server_create
let server = rodbus::server::spawn_tcp_server_task(
1,
"127.0.0.1:502".parse()?,
"127.0.0.1:2000".parse()?,
map,
AddressFilter::Any,
DecodeLevel::default(),
Expand Down Expand Up @@ -208,7 +208,7 @@ async fn run_tls(tls_config: TlsServerConfig) -> Result<(), Box<dyn std::error::
// ANCHOR: tls_server_create
let server = rodbus::server::spawn_tls_server_task_with_authz(
1,
"127.0.0.1:802".parse()?,
"127.0.0.1:2000".parse()?,
map,
ReadOnlyAuthorizationHandler::create(),
tls_config,
Expand Down
4 changes: 2 additions & 2 deletions ffi/rodbus-ffi/src/iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ impl<'a> RegisterValueIterator<'a> {
}

pub(crate) unsafe fn bit_value_iterator_next(
it: *mut crate::BitValueIterator,
it: *mut crate::BitValueIterator<'_>,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clippy fix

) -> Option<&crate::ffi::BitValue> {
match it.as_mut() {
Some(it) => match it.inner.next() {
Expand All @@ -46,7 +46,7 @@ pub(crate) unsafe fn bit_value_iterator_next(
}

pub(crate) unsafe fn register_value_iterator_next(
it: *mut crate::RegisterValueIterator,
it: *mut crate::RegisterValueIterator<'_>,
) -> Option<&crate::ffi::RegisterValue> {
match it.as_mut() {
Some(it) => match it.inner.next() {
Expand Down
12 changes: 6 additions & 6 deletions guide/docs/api/client/requests.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:request_param}}
{{#include ../examples/client/src/main.rs:request_param}}

{{#include ../rodbus/examples/client.rs:read_coils}}
{{#include ../examples/client/src/main.rs:read_coils}}
```

</TabItem>
Expand Down Expand Up @@ -149,9 +149,9 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:request_param}}
{{#include ../examples/client/src/main.rs:request_param}}

{{#include ../rodbus/examples/client.rs:write_single_coil}}
{{#include ../examples/client/src/main.rs:write_single_coil}}
```

</TabItem>
Expand Down Expand Up @@ -211,9 +211,9 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:request_param}}
{{#include ../examples/client/src/main.rs:request_param}}

{{#include ../rodbus/examples/client.rs:write_multiple_registers}}
{{#include ../examples/client/src/main.rs:write_multiple_registers}}
```

</TabItem>
Expand Down
2 changes: 1 addition & 1 deletion guide/docs/api/client/rtu_client.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:create_rtu_channel}}
{{#include ../examples/client/src/main.rs:create_rtu_channel}}
```

</TabItem>
Expand Down
2 changes: 1 addition & 1 deletion guide/docs/api/client/tcp_client.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:create_tcp_channel}}
{{#include ../examples/client/src/main.rs:create_tcp_channel}}
```

</TabItem>
Expand Down
8 changes: 4 additions & 4 deletions guide/docs/api/client/tls_client.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:tls_ca_chain_config}}
{{#include ../examples/client/src/main.rs:tls_ca_chain_config}}

{{#include ../rodbus/examples/client.rs:create_tls_channel}}
{{#include ../examples/client/src/main.rs:create_tls_channel}}
```

</TabItem>
Expand Down Expand Up @@ -89,9 +89,9 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:tls_self_signed_config}}
{{#include ../examples/client/src/main.rs:tls_self_signed_config}}

{{#include ../rodbus/examples/client.rs:create_tls_channel}}
{{#include ../examples/client/src/main.rs:create_tls_channel}}
```

</TabItem>
Expand Down
3 changes: 1 addition & 2 deletions guide/docs/api/logging.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:logging}}
{{#include ../examples/client/src/main.rs:logging}}
```

</TabItem>
Expand Down Expand Up @@ -126,4 +126,3 @@ Protocol decoding is always output at the *Info* log level. If left enabled, it
try adjusting the application-layer decoding first to gain visibility into the messages being exchanged on one channel at a time.
:::


2 changes: 1 addition & 1 deletion guide/docs/api/runtime.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/client.rs:runtime_init}}
{{#include ../examples/client/src/main.rs:runtime_init}}
// do things within the context of the runtime
// it is automatically shut down when this async fn returns
}
Expand Down
4 changes: 2 additions & 2 deletions guide/docs/api/server/rtu_server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/server.rs:handler_map_create}}
{{#include ../examples/server/src/main.rs:handler_map_create}}

{{#include ../rodbus/examples/server.rs:rtu_server_create}}
{{#include ../examples/server/src/main.rs:rtu_server_create}}
```

</TabItem>
Expand Down
4 changes: 2 additions & 2 deletions guide/docs/api/server/tcp_server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/server.rs:handler_map_create}}
{{#include ../examples/server/src/main.rs:handler_map_create}}

{{#include ../rodbus/examples/server.rs:tcp_server_create}}
{{#include ../examples/server/src/main.rs:tcp_server_create}}
```

</TabItem>
Expand Down
12 changes: 6 additions & 6 deletions guide/docs/api/server/tls_server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/server.rs:handler_map_create}}
{{#include ../examples/server/src/main.rs:handler_map_create}}

{{#include ../rodbus/examples/server.rs:tls_ca_chain_config}}
{{#include ../examples/server/src/main.rs:tls_ca_chain_config}}

{{#include ../rodbus/examples/server.rs:tls_server_create}}
{{#include ../examples/server/src/main.rs:tls_server_create}}
```

</TabItem>
Expand Down Expand Up @@ -112,11 +112,11 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/server.rs:handler_map_create}}
{{#include ../examples/server/src/main.rs:handler_map_create}}

{{#include ../rodbus/examples/server.rs:tls_self_signed_config}}
{{#include ../examples/server/src/main.rs:tls_self_signed_config}}

{{#include ../rodbus/examples/server.rs:tls_server_create}}
{{#include ../examples/server/src/main.rs:tls_server_create}}
```

</TabItem>
Expand Down
2 changes: 1 addition & 1 deletion guide/docs/api/server/write_handler.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ values={[
<TabItem value="Rust">

```rust
{{#include ../rodbus/examples/server.rs:request_handler}}
{{#include ../examples/server/src/main.rs:request_handler}}
```

</TabItem>
Expand Down
2 changes: 1 addition & 1 deletion guide/docs/examples/summary.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ We pull these code blocks from the example programs when we generate this guide.

The following links redirect to language-specific examples for the current version on Github:

* <a href={`${sitedata.github_url}/tree/${sitedata.version}/rodbus/examples`}>Rust</a>
* <a href={`${sitedata.github_url}/tree/${sitedata.version}/examples`}>Rust</a>
* <a href={`${sitedata.github_url}/tree/${sitedata.version}/ffi/bindings/c`}>C and C++</a>
* <a href={`${sitedata.github_url}/tree/${sitedata.version}/ffi/bindings/dotnet/examples`}>C#</a>
* <a href={`${sitedata.github_url}/tree/${sitedata.version}/ffi/bindings/java/examples/src/main/java/io/stepfunc/rodbus/examples`}>Java</a>
2 changes: 1 addition & 1 deletion rodbus/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ mod tests {

#[test]
fn address_start_max_count_of_one_is_allowed() {
AddressRange::try_from(std::u16::MAX, 1).unwrap();
AddressRange::try_from(u16::MAX, 1).unwrap();
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clippy fix

}

#[test]
Expand Down
Loading