This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/plc4x-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 3f404d4d0 Site checkin for project PLC4X: Jenkins Tools
3f404d4d0 is described below

commit 3f404d4d03488f778e359c39930d44968d72b2eb
Author: jenkins <[email protected]>
AuthorDate: Tue Jan 31 06:24:19 2023 +0000

    Site checkin for project PLC4X: Jenkins Tools
---
 users/protocols/profinet.html | 621 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 621 insertions(+)

diff --git a/users/protocols/profinet.html b/users/protocols/profinet.html
new file mode 100644
index 000000000..d7a3daea3
--- /dev/null
+++ b/users/protocols/profinet.html
@@ -0,0 +1,621 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+
+    
+
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+                            <meta http-equiv="Content-Type" 
content="text/html; charset=UTF-8"/>
+    <title>PLC4X &#x2013; </title>
+    <script src="../../js/jquery.slim.min.js" type="text/javascript"></script>
+    <!--script src="../../js/popper.min.js" type="javascript"></script-->
+    <script src="../../js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
+    <!-- The tooling for adding images and links to Apache events -->
+    <script src="https://www.apachecon.com/event-images/snippet.js"; 
type="text/javascript"></script>
+    <!-- FontAwesome -->
+    <link rel="stylesheet" href="../../css/all.min.css" type="text/css"/>
+    <!-- Bootstrap -->
+    <link rel="stylesheet" href="../../css/bootstrap.min.css" type="text/css"/>
+    <!-- Some Maven Site defaults -->
+    <link rel="stylesheet" href="../../css/maven-base.css" type="text/css"/>
+    <link rel="stylesheet" href="../../css/maven-theme.css" type="text/css"/>
+    <!-- The PLC4X version of a bootstrap theme -->
+    <link rel="stylesheet" href="../../css/themes/plc4x.css" type="text/css" 
id="pagestyle"/>
+    <!-- A custom style for printing content -->
+    <link rel="stylesheet" href="../../css/print.css" type="text/css" 
media="print"/>
+
+            <meta http-equiv="Content-Language" content="en"/>
+            
+</head>
+<body class="composite">
+<nav class="navbar navbar-light navbar-expand-md bg-faded 
justify-content-center border-bottom">
+    <!--a href="/" class="navbar-brand d-flex w-50 mr-auto">Navbar 3</a-->
+    <a href="https://plc4x.apache.org/"; id="bannerLeft"><img 
src="../../images/apache_plc4x_logo_small.png"  alt="Apache PLC4X"/></a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" 
data-target="#collapsingNavbar3">
+        <span class="navbar-toggler-icon"></span>
+    </button>
+    <div class="navbar-collapse collapse w-100" id="collapsingNavbar3">
+        <ul class="navbar-nav w-100 justify-content-center">
+                        <li class="nav-item">
+                            <a class="nav-link" 
href="../../index.html">Home</a>
+            </li>
+                                                                               
 <li class="nav-item active">
+                                    <a class="nav-link" 
href="../../users/index.html">Users</a>
+                </li>
+                                            <li class="nav-item">
+                                    <a class="nav-link" 
href="../../developers/index.html">Developers</a>
+                </li>
+                                            <li class="nav-item">
+                                    <a class="nav-link" 
href="../../apache/index.html">Apache</a>
+                </li>
+                    </ul>
+        <ul class="nav navbar-nav ml-auto justify-content-end">
+            <li class="nav-item row valign-middle">
+                <a class="acevent" data-format="wide" data-mode="light" 
data-event="random" style="width:240px;height:60px;"></a>
+            </li>
+        </ul>
+    </div>
+</nav>
+<div class="container-fluid">
+    <div class="row h-100">
+                                            
+                                                                    
+                                                                               
                     <nav class="col-sm-push col-md-2 pt-3 sidebar">
+                    <div class="sidebar-sticky">
+                    <ul class="nav flex-column">
+                                                            <li 
class="nav-item">
+                            <a href="../../users/index.html" 
class="nav-link">Section Home</a>
+                            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/download.html" 
class="nav-link">Download</a>
+                            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/adopters.html" 
class="nav-link">Adopters</a>
+                            </li>
+                                
+                                                                    
+                                            
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/commercial-support.html" 
class="nav-link">Commercial support</a>
+                            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/gettingstarted.html" 
class="nav-link">Getting Started</a>
+                                    <ul class="flex-column pl-4 nav">
+                                            <li class="nav-item">
+                            <a href="../../users/getting-started/plc4go.html" 
class="nav-link">Go</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/getting-started/plc4j.html" 
class="nav-link">Java</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/getting-started/using-snapshots.html" class="nav-link">Using 
SNAPSHOTS</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/getting-started/general-concepts.html" 
class="nav-link">General Concepts</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual 
Modbus</a>
+                            </li>
+                            </ul>
+            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/blogs-videos-and-slides.html" 
class="nav-link">Blogs, Videos and Slides</a>
+                            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/protocols/index.html" 
class="nav-link">Protocols</a>
+                                    <ul class="flex-column pl-4 nav">
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/ab-eth.html" 
class="nav-link">AB-ETH</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/ads.html" 
class="nav-link">ADS/AMS</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/bacnetip.html" 
class="nav-link">BACnet/IP</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/canopen.html" 
class="nav-link">CANopen</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/deltav.html" 
class="nav-link">DeltaV</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/df1.html" 
class="nav-link">DF1</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/ethernet-ip.html" 
class="nav-link">EtherNet/IP</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/firmata.html" 
class="nav-link">Firmata</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/knxnetip.html" 
class="nav-link">KNXnet/IP</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/modbus.html" 
class="nav-link">Modbus</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/opc-ua.html" 
class="nav-link">OPC UA</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/plc4x.html" 
class="nav-link">PLC4X (Proxy)</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/s7.html" 
class="nav-link">S7 (Step7)</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/protocols/simulated.html" 
class="nav-link">Simulated</a>
+                            </li>
+                            </ul>
+            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/transports/index.html" 
class="nav-link">Transports</a>
+                                    <ul class="flex-column pl-4 nav">
+                                            <li class="nav-item">
+                            <a href="../../users/transports/tcp.html" 
class="nav-link">TCP</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/transports/udp.html" 
class="nav-link">UDP</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/transports/serial.html" 
class="nav-link">Serial</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/transports/socketcan.html" 
class="nav-link">SocketCAN</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/transports/raw-socket.html" 
class="nav-link">Raw Socket</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/transports/pcap-replay.html" 
class="nav-link">PCAP Replay</a>
+                            </li>
+                            </ul>
+            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/integrations/index.html" 
class="nav-link">Integrations</a>
+                                    <ul class="flex-column pl-4 nav">
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/apache-calcite.html" class="nav-link">Apache 
Calcite</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/apache-camel.html" class="nav-link">Apache 
Camel</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/apache-edgent.html" class="nav-link">Apache 
Edgent</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/apache-iotdb.html" class="nav-link">Apache 
IoTDB</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/apache-kafka.html" class="nav-link">Apache 
Kafka</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/apache-nifi.html" class="nav-link">Apache 
NiFi</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/apache-streampipes.html" class="nav-link">Apache 
StreamPipes</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/eclipse-ditto.html" class="nav-link">Eclipse 
Ditto</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a 
href="../../users/integrations/eclipse-milo.html" class="nav-link">Eclipse Milo 
OPC UA Server</a>
+                            </li>
+                            </ul>
+            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/tools/index.html" 
class="nav-link">Tools</a>
+                                    <ul class="flex-column pl-4 nav">
+                                            <li class="nav-item">
+                            <a href="../../users/tools/capture-replay.html" 
class="nav-link">Capture Replay</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/tools/connection-pool.html" 
class="nav-link">Connection Pool</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/tools/connection-cache.html" 
class="nav-link">Connection Cache</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/tools/opm.html" 
class="nav-link">Object PLC Mapping (OPM)</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/tools/scraper.html" 
class="nav-link">Scraper</a>
+                            </li>
+                                            <li class="nav-item">
+                            <a href="../../users/tools/testing.html" 
class="nav-link">PLC4X without a PLC and Unit Testing</a>
+                            </li>
+                            </ul>
+            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/industry40.html" 
class="nav-link">Industry 4.0 with Apache</a>
+                            </li>
+                                
+                                                                    
+                                                                <li 
class="nav-item">
+                            <a href="../../users/security.html" 
class="nav-link">Security</a>
+                            </li>
+                                                    
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                            
+                                                                    
+                                                                
+                                    
+                                            
+                                    
+                                            
+                                    
+                                            
+                                    
+                                            
+                                    
+                                                    </ul>
+        </div>
+        </nav>
+                                            <main role="main" 
class="ml-sm-auto px-4 col-sm-pull col-md-9 col-lg-10 h-100">
+            <div class="sect1">
+<h2 id="profinet">Profinet</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="connection_string_options">Connection String Options</h3>
+<div class="paragraph">
+<p>On linux as the Java execuatble won&#8217;t have permission to capture raw 
packets, this needs to be enabled via:-</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>sudo setcap cap_net_raw,cap_net_admin=eip 
/usr/lib/jvm/jdk-19/bin/java</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The executable will change based on your jdk you are using.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;"/>
+<col style="width: 22.2222%;"/>
+<col style="width: 55.5556%;"/>
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Value</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Code</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div 
class="content"><div class="paragraph">
+<p><code>profinet</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Name</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div 
class="content"><div class="paragraph">
+<p>Profinet</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Maven 
Dependency</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div 
class="content"><div class="listingblock">
+<div class="content">
+<pre>&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.plc4x&lt;/groupId&gt;
+  &lt;artifactId&gt;plc4j-driver-profinet&lt;/artifactId&gt;
+  &lt;version&gt;{current-last-released-version}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Default 
Transport:</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div 
class="content"><div class="paragraph">
+<p> <code>raw</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Compatible 
Transports:</p></td>
+<td class="tableblock halign-left valign-top" colspan="2"><div 
class="content"><div class="ulist">
+<ul>
+<li>
+<p><code>raw</code> - Profinet uses a bunch of protocols, LLDP, PN-DCP, PNIO 
over UDP or Profinet. It makes sense just to select the raw transport for 
this.</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" colspan="3"><p 
class="tableblock">Supported Operations</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p><code>subscribe</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p>Only the subscription service is currently supported.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" colspan="3"><p 
class="tableblock">Options</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p><code>devices</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p>(Required) Allows you to specify the devices you would like to communicate 
to, their device access
+module (Taken from the GSD file) as well as a list of submodules.</p>
+</div>
+<div class="paragraph">
+<p>This parameter has the format</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>[[{device-1},{device-access},({submodule-1},{submodule-2})],[{device-2},{device-access},({submodule-1},{submodule-2})],....]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For each available slot specified in the GSD file a submodule needs to be 
in the connection string, however it can be left blank e.g.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>[[{device},{device-access},({submodule-1},)]]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If there is no submodule configured.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p><code>gsddirectory</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p>The directory that is used to store any GSD files. This is used to lookup 
the GSD for device found.</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p><code>sendclockfactor</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p>(Default 32) This is used to scale the frequency in which cyclic packets 
are sent. Increasing this slows down communication</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p><code>reductionratio</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p>(Default 4) Is also used to scale the frequency. The formula to calculate 
the overall cycle time is Cycle Time = SendClockFactor * Reduction Ratio * 
31.23us</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p><code>watchdogfactor</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p>Used to specify the maximum number of cycles that is allowed to be missed 
by a device. An alarm is generated if this is exceeded</p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p><code>dataholdfactor</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
+<p>Specifies the number of cycles a device will keep its outputs in a non-safe 
state when it hasn&#8217;t received a cyclic packet. This must be equal to or 
be greater than the watchdog factor</p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="connection_string">Connection String</h3>
+<div class="paragraph">
+<p>The Profinet driver uses the connection string</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>profinet:raw://{ip-address}:{port}?{options}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>An example of this connection string would be:-</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>profinet:raw://127.0.0.1?gsddirectory=/Profinet/GSD&amp;devices=[[test-device-1,MOD_1,(SUBMOD_1,,SUBMOD_1,)],[test-device-2,MOD_1,(SUBMOD_1,,SUBMOD_1,)]]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Note the transport, port fields shouldn&#8217;t have to be changed</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="address_format">Address Format</h3>
+<div class="paragraph">
+<p>The format of address will be in the format.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>device.slot.id.module_name.channel.bit:format</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>An example would be</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>device-1.1.1.DIGITAL_INPUT.0.1:BOOL</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Note:-</p>
+</div>
+<div class="sect3">
+<h4 id="data_types">Data Types</h4>
+<div class="paragraph">
+<p>The following data types are supported</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>BOOL (boolean)</p>
+</li>
+<li>
+<p>SINT (int 8)</p>
+</li>
+<li>
+<p>USINT (uint 8)</p>
+</li>
+<li>
+<p>BYTE (uint 8)</p>
+</li>
+<li>
+<p>INT (int 16)</p>
+</li>
+<li>
+<p>UINT (uint 16)</p>
+</li>
+<li>
+<p>WORD (uint 16)</p>
+</li>
+<li>
+<p>DINT (int 32)</p>
+</li>
+<li>
+<p>UDINT (uint 32)</p>
+</li>
+<li>
+<p>DWORD (uint 32)</p>
+</li>
+<li>
+<p>LINT (int 64)</p>
+</li>
+<li>
+<p>ULINT (uint 64)</p>
+</li>
+<li>
+<p>LWORD (uint 64)</p>
+</li>
+<li>
+<p>REAL (float)</p>
+</li>
+<li>
+<p>LREAL (double)</p>
+</li>
+<li>
+<p>CHAR (char)</p>
+</li>
+<li>
+<p>WCHAR (2 byte char)</p>
+</li>
+<li>
+<p>STRING (utf-8)</p>
+</li>
+<li>
+<p>WSTRING (utf-16)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="some_useful_tips">Some useful tips</h3>
+<div class="paragraph">
+<p>The GSD file contains all the information of what the addresses will end up 
being. The easiest approach is to use the browsing
+function of the Profinet driver to return a list of all available tags. Then 
only the address of interest can be selected.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+</table>
+</div>
+</div>
+</div>
+        </main>
+        <footer class="pt-4 my-md-5 pt-md-5 w-100 border-top">
+            <div class="row justify-content-md-center" style="font-size: 13px">
+                <div class="col col-6 text-center">
+                                    Copyright &#169;      2017&#x2013;2023 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>.
+All rights reserved.<br/>
+                    Apache PLC4X, PLC4X, Apache, the Apache feather logo, and 
the Apache PLC4X project logo are either registered trademarks or trademarks of 
The Apache Software Foundation in the United States and other countries. All 
other marks mentioned may be trademarks or registered trademarks of their 
respective owners.
+                                        <br/><div 
style="text-align:center;">Home screen image taken from <a
+                        href="https://flic.kr/p/chEftd";>Flickr</a>, "Tesla 
Robot Dance" by Steve Jurvetson, licensed
+                    under <a 
href="https://creativecommons.org/licenses/by/2.0/";>CC BY 2.0 Generic</a>, 
image cropped
+                    and blur effect added.</div>
+                                </div>
+            </div>
+        </footer>
+    </div>
+</div>
+
+<!-- Bootstrap core JavaScript
+================================================== -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="../../js/jquery.slim.min.js"></script>
+<script src="../../js/popper.min.js"></script>
+<script src="../../js/bootstrap.min.js"></script>
+<script type="text/javascript">
+    $('.carousel .carousel-item').each(function(){
+        var next = $(this).next();
+        if (!next.length) {
+            next = $(this).siblings(':first');
+        }
+        next.children(':first-child').clone().appendTo($(this));
+
+        for (let i = 0; i < 3; i++) {
+            next=next.next();
+            if (!next.length) {
+                next = $(this).siblings(':first');
+            }
+            next.children(':first-child').clone().appendTo($(this));
+        }
+    });
+</script>
+</body>
+</html>
\ No newline at end of file

Reply via email to