//
//  Licensed to the Apache Software Foundation (ASF) under one or more
//  contributor license agreements.  See the NOTICE file distributed with
//  this work for additional information regarding copyright ownership.
//  The ASF licenses this file to You under the Apache License, Version 2.0
//  (the "License"); you may not use this file except in compliance with
//  the License.  You may obtain a copy of the License at
//
//      https://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//

// Code generated by code-generation. DO NOT EDIT.

[cols="2,2a,2a,2a,4a"]
|===
|Name |Type |Default Value |Required |Description
|Name 4+|Beckhoff TwinCat ADS
|Code 4+|`ads`
|Maven Dependency 4+|

[subs=attributes+]
----
<dependency>
  <groupId>org.apache.plc4x</groupId>
  <artifactId>plc4j-driver-ads</artifactId>
  <version>{page-component-version}</version>
</dependency>
----
|Default Transport 4+|`tcp`
|Supported Transports 4+|
 - `tcp`
5+|Config options:
|`target-ams-net-id` |STRUCT | |required |AMS-Net-Id of the target. An AMS-Net-Id has the regular format of an IPv4 IP-Address, however with 6 segments instead of 4.
|`target-ams-port` |INT | |required |AMS port of the target.
|`source-ams-net-id` |STRUCT | |required |AMS-Net-Id of the source. An AMS-Net-Id has the regular format of an IPv4 IP-Address, however with 6 segments instead of 4.
|`source-ams-port` |INT | |required |AMS port of the source.
|`request-timeout-ms` |INT |4000| |Default timeout for all types of requests.
|`max-data-type-table-depth` |INT |20| |Maximum nesting depth accepted when parsing the data-type table uploaded from the device. An entry may contain further entries, so without a limit the depth of the tree is dictated by the device rather than by the driver, and a table of well under a megabyte can nest deeply enough to exhaust the parser's stack. Real type hierarchies are only a handful of levels deep, so the default is already generous; raise it for a device that is known to need more. Note that the JVM's own stack imposes a practical ceiling of a few thousand levels regardless of what is configured here.
|`load-symbol-and-data-type-tables` |BOOLEAN |true| |Configures, if when connecting the data-type- and symbol-table should be read. This is an optimization that can help in cases, where the PLC program is pretty large and downloading the full tables is causing problems. When disabled, reading and writing is limited to direct addresses (`\{IndexGroup}/\{IndexOffset}:\{TYPE}`): symbolic addresses cannot be resolved without the tables and are rejected with a corresponding error. Browsing is unavailable for the same reason. Subscriptions are unaffected, as they resolve symbol handles on the device.
5+|Transport config options:
5+|
+++
<h4>tcp</h4>
+++
|`tcp.connect-timeout-ms` |INT |5000| |
|`tcp.read-timeout-ms` |INT |0| |
|`tcp.write-timeout-ms` |INT |0| |
|`tcp.no-delay` |BOOLEAN |true| |
|`tcp.keep-alive` |BOOLEAN |false| |
|`tcp.send-buffer-size` |INT |81920| |
|`tcp.receive-buffer-size` |INT |81920| |
|`tcp.local-address` |STRING | | |
|`tcp.local-port` |INT |0| |
|===
