pub struct Client { /* private fields */ }
Expand description

Represents a connection to a ADS server.

The Client’s communication methods use &self, so that it can be freely shared within one thread, or sent, between threads. Wrappers such as Device or symbol::Handle use a &Client as well.

Implementations

Open a new connection to an ADS server.

If connecting to a server that has an AMS router, it needs to have a route set for the source IP and NetID, otherwise the connection will be closed immediately. The route can be added from TwinCAT, or this crate’s udp::add_route helper can be used to add a route via UDP message.

source is the AMS address to to use as the source; the NetID needs to match the route entry in the server. If None, the NetID is constructed from the local IP address with .1.1 appended; if there is no IPv4 address, 127.0.0.1.1.1 is used.

The AMS port of source is not important, as long as it is not a well-known service port; an ephemeral port number > 49152 is recommended. If None, the port is set to 58913.

Since all communications is supposed to be handled by an ADS router, only one TCP/ADS connection can exist between two hosts. Non-TwinCAT clients should make sure to replicate this behavior, as opening a second connection will close the first.

Return the source address the client is using.

Get a receiver for notifications.

Return a wrapper that executes operations for a target device (known by NetID and port).

Low-level function to execute an ADS command.

Writes a data from a number of input buffers, and returns data in a number of output buffers. The latter might not be filled completely; the return value specifies the number of total valid bytes. It is up to the caller to determine what this means in terms of the passed buffers.

Trait Implementations

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.