updated docs to latest version
diff --git a/documentation/html/4diacIDE/advancedFeatures.html b/documentation/html/4diacIDE/advancedFeatures.html
index ab1a93d..0dbd75f 100644
--- a/documentation/html/4diacIDE/advancedFeatures.html
+++ b/documentation/html/4diacIDE/advancedFeatures.html
@@ -2,6 +2,7 @@
<!--
Copyright (c) 2017-2018 fortiss GmbH
2018 Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -13,6 +14,8 @@
- initial API and implementation and/or initial documentation
Bianca Wiesmayr
- minor text corrections
+ Andrea Zoitl
+ - updated ToC, improved readability
-->
<html lang="en">
@@ -22,86 +25,103 @@
<link rel="stylesheet" type="text/css" href="../help.css" />
</head>
<body>
+
+<!--********************************************************************************************-->
- <h1 id="topOfPage">Step 6 - Advanced Features</h1>
+<h1 id="topOfPage">Step 6 - Advanced Features</h1>
- <p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
+ <p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
<ol start="0">
- <li><a href="../../html/4diacIDE/overview.html">Overview</a></li>
- <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac locally</a></li>
- <li><a href="../../html/4diacIDE/distribute4diac.html">Create a distributed application</a></li>
- <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy remotely</a></li>
- <li><a href="../../html/4diacIDE/createOwnTypes.html">Create your own Function Blocks</a></li>
- <li><a href="../../html/4diacIDE/otherUseful.html">Other basic features</a></li>
- <li>Advanced Features [optional] (YOU ARE HERE!)</li>
+ <li><a href="../../html/4diacIDE/overview.html">4diac IDE Overview</a></li>
+ <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac Locally (Blinking tutorial)</a></li>
+ <li><a href="../../html/4diacIDE/distribute4diac.html">Distribute 4diac Applications</a></li>
+ <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy Applications Remotely</a></li>
+ <li><a href="../../html/4diacIDE/createOwnTypes.html">Create Your own Function Block Types</a></li>
+ <li><a href="../../html/4diacIDE/otherUseful.html">Other Basic Features</a></li>
+ <li>Advanced Features (YOU ARE HERE!)</li>
</ol>
-<p>This page shows some advanced features about 4diac IDE that are usually used in more complicated applications:</p>
+ <p>This page shows some advanced features about 4diac IDE that are usually used in more complicated applications:</p>
-<ol>
- <li><a href="#adaptersUsage">Adapters</a></li>
- <li>Subapplications (implemented since version 1.9)</li>
-</ol>
+ <ol>
+ <li><a href="#adaptersUsage">Adapter Usage</a></li>
+ <li>Subapplications (implemented since version 1.9)</li>
+ </ol>
-<h1 id="adaptersUsage">Adapter Usage</h1>
+<!--********************************************************************************************-->
-<p><span class="element61499">Adapters</span> group interface elements into reusable interface descriptions. They reduce the number of interface elements (event and data inputs and outputs) and by that the number of connections that have to be created between interacting function blocks. In 4diac IDE, <span class="element61499">adapters</span> are listed in the type library and represented by this symbol: <img class="inlineImg" src="../../html/4diacIDE/img/adapter/adapter.png" alt="adapter" />.</p>
+<h2 id="adaptersUsage">Adapter Usage</h2>
-<h2 id="newAdapterType">Create a new Adapter Type</h2>
-<p>These interface descriptions can be added to the interface of any function block type.
-Currently, <span class="element61499">adapters</span> can not contain other adapters.
-There are two types of <span class="element61499">adapters</span>, which are mirrored interfaces:</p>
+ <p><span class="element61499">Adapters</span> group interface elements into reusable interface descriptions.
+ They reduce the number of interface elements (event and data inputs and outputs) and by that the number of connections that have to be created between interacting function blocks.
+ In 4diac IDE, <span class="element61499">adapters</span> are listed in the type library and represented by this symbol: <img class="inlineImg" src="../../html/4diacIDE/img/adapter/adapter.png" alt="adapter" />.</p>
-<img class="center" src="../../html/4diacIDE/img/adapter/plugAndSocket.png" alt="socket and plug."/>
+<!--********************-->
-<ul>
- <li><span class="element61499">socket</span>: added as <span class="element4diac">input</span> of a function block and represented by this symbol <img class="inlineImg" src="../../html/4diacIDE/img/adapter/sockets_16.png" alt="socket of adapter" /> within the function block's interface.</li>
- <li><span class="element61499">plug</span>: added as <span class="element4diac">output</span> of a function block and represented by this symbol <img class="inlineImg" src="../../html/4diacIDE/img/adapter/plugs_16.png" alt="plug of adapter" /> within the function block's interface.</li>
-</ul>
+<h3 id="newAdapterType">Create a new Adapter Type</h3>
+ <p>These interface descriptions can be added to the interface of any Function Block Type.
+ Currently, <span class="element61499">adapters</span> can not contain other adapters.
+ There are two types of <span class="element61499">adapters</span>, which are mirrored interfaces:</p>
-<p>When a new <span class="element61499">adapter</span> is created, it should be a <span class="element4diac">socket</span>. The mirrored plug is derived automatically by 4diac IDE and is <span class="specificText">NOT</span> created by the user.
-An adapter (socket) is created by <span class="command4diac">File → New → New Type</span> and selecting <span class="menu4diac">Adapter.adp</span> as Type.
-All adapter names should start with an <span class="specificText">A</span> (naming convention).</p>
+ <img class="center" src="../../html/4diacIDE/img/adapter/plugAndSocket.png" alt="socket and plug."/>
-<img class="center" src="../../html/4diacIDE/img/adapter/newAdapter.png" alt="socket creation."/>
+ <ul>
+ <li><span class="element61499">socket</span>: added as <span class="element4diac">input</span> of a function block and represented by this symbol <img class="inlineImg" src="../../html/4diacIDE/img/adapter/sockets_16.png" alt="socket of adapter" /> within the function block's interface.</li>
+ <li><span class="element61499">plug</span>: added as <span class="element4diac">output</span> of a function block and represented by this symbol <img class="inlineImg" src="../../html/4diacIDE/img/adapter/plugs_16.png" alt="plug of adapter" /> within the function block's interface.</li>
+ </ul>
-<h2 id="useAdapterType">Use your new Adapter Type</h2>
-<p>After creating your desired adapter type (socket), it can be added to a function block's interface by drag and drop from the Palette, as illustrated in the following figure.</p>
+ <p>When a new <span class="element61499">adapter</span> is created, it should be a <span class="element4diac">socket</span>.
+ The mirrored plug is derived automatically by 4diac IDE and is <span class="specificText">NOT</span> created by the user.
+ An adapter (socket) is created by <span class="command4diac">File → New → New Type</span> and selecting <span class="menu4diac">Adapter.adp</span> as Type.
+ All adapter names should start with an <span class="specificText">A</span> (naming convention).</p>
-<img class="center" src="../../html/4diacIDE/img/adapter/addAdapter.png" alt="add adapter to the interface of a function block."/>
+ <img class="center" src="../../html/4diacIDE/img/adapter/newAdapter.png" alt="socket creation."/>
-<p>The function blocks used within the following application snippet are part of the TrafficLight example system. Two different adapter types have been used, <span class="element4diac">ATimeOut</span> in <span class="element4diac">PedLightCtl_AT</span> and <span class="element4diac">E_TimeOut</span>) and <span class="element4diac">ATrafficLight</span> in <span class="element4diac">PedLightCtl_AT</span>.</p>
+<!--********************-->
-<p>The <span class="element4diac">PedLightCtl_AT</span> is a basic function block. Within basic function blocks adapters are accessed by <span class="specificText">FB_INTERFACE_NAME.ADAPTER_INTERFACE_NAME</span>. The elements of the <span class="element4diac">ATimeOut</span> adapter are therefore accessed by <span class="specificText">timeOut.START</span>, <span class="specificText">timeOut.STOP</span> and <span class="specificText">timeOut.TimeOut</span>.</p>
+<h3 id="useAdapterType">Use Your new Adapter Type</h3>
+ <p>After creating your desired adapter type (socket), it can be added to a function block's interface by drag and drop from the Palette, as illustrated in the following figure.</p>
-<p>The <span class="element4diac">E_TimeOut</span> is a composite function block. Within the network of a composite function block, any adapter added to its interface is represented by an adapter block which looks like a function block. The interface elements of this adapter block are connected like a function block.</p>
+ <img class="center" src="../../html/4diacIDE/img/adapter/addAdapter.png" alt="add adapter to the interface of a function block."/>
-<img class="center" src="../../html/4diacIDE/img/adapter/example.png" alt="application with function blocks that contain adapters."/>
+ <p>The function blocks used within the following application snippet are part of the TrafficLight example system.
+ Two different adapter types have been used, <span class="element4diac">ATimeOut</span> in <span class="element4diac">PedLightCtl_AT</span> and <span class="element4diac">E_TimeOut</span>) and <span class="element4diac">ATrafficLight</span> in <span class="element4diac">PedLightCtl_AT</span>.</p>
-<p>Further examples for the usage of adapters can be found within the FestoMPS example system.<p>
+ <p>The <span class="element4diac">PedLightCtl_AT</span> is a basic function block. Within basic function blocks adapters are accessed by <span class="specificText">FB_INTERFACE_NAME.ADAPTER_INTERFACE_NAME</span>.
+ The elements of the <span class="element4diac">ATimeOut</span> adapter are therefore accessed by <span class="specificText">timeOut.START</span>, <span class="specificText">timeOut.STOP</span> and <span class="specificText">timeOut.TimeOut</span>.</p>
+
+ <p>The <span class="element4diac">E_TimeOut</span> is a composite function block.
+ Within the network of a composite function block, any adapter added to its interface is represented by an adapter block which looks like a Function Block.
+ The interface elements of this adapter block are connected like a function block.</p>
+
+ <img class="center" src="../../html/4diacIDE/img/adapter/example.png" alt="application with function blocks that contain adapters."/>
+
+ <p>Further examples for the usage of adapters can be found within the FestoMPS example system.<p>
+
+<!--********************************************************************************************-->
<h1>Where to go from here?</h1>
<p>If you want to see some examples, behind the following link is an index of the available examples in the documentation:</p>
-<p><a href="../../html/examples/examplesIndex.html">4DIAC Examples</a></p>
+<p><a href="../../html/examples/examplesIndex.html">4diac Examples</a></p>
-<p>If you have a specific platform that has input and outputs and is supported by FORTE, for example a Raspberry Pi or a PLC, and you want to use them, go to following page:</p>
+<p>If you have a specific platform that has input and outputs and is supported by 4diac FORTE, for example a Raspberry Pi or a PLC, and you want to use them, go to following page:</p>
-<p><a href="../../html/parameters/parameters.html">Parameters for different platforms</a></p>
+<p><a href="../../html/parameters/parameters.html">Parameters for Different Platforms</a></p>
-<p>If you want to use a specific communication protocol supported by FORTE, for example MQTT, OPC UA, Modbus and so on, go this page:</p>
+<p>If you want to use a specific communication protocol supported by 4diac FORTE, for example MQTT, OPC UA, Modbus and so on, go this page:</p>
-<p><a href="../../html/communication/communicationIndex.html">Communication Protocols</a></p>
+<p><a href="../../html/communication/communicationIndex.html">Supported Communication Protocols</a></p>
<p>If you want to go back to see again the basic features, here's a link:</p>
-<p><a href="../../html/4diacIDE/createOwnTypes.html">Step 5 - Other basic features</a></p>
+<p><a href="../../html/4diacIDE/otherUseful.html">Step 5 - Other Basic Features</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access:</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/4diacIDE/createOwnTypes.html b/documentation/html/4diacIDE/createOwnTypes.html
index 1fa45ac..31b569a 100644
--- a/documentation/html/4diacIDE/createOwnTypes.html
+++ b/documentation/html/4diacIDE/createOwnTypes.html
@@ -11,33 +11,33 @@
Contributors:
Carolyn Oates, Monika Wenger, Jose Cabral
- initial API and implementation and/or initial documentation
- Andrea Zoitl - cleaning up tutorials for 1.10 release
+ Andrea Zoitl - cleaning up tutorials for 1.10 release, updated ToC
Bianca Wiesmayr - minor text corrections
-->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Step 4 - Create your own Function Blocks</title>
+ <title>Step 4 - Create Your own Function Block Types</title>
<link rel="stylesheet" type="text/css" href="../help.css" />
</head>
<body>
-
-<h1 id="topOfPage">Step 4 - Create Function Block Types</h1>
-
-<p>This page is part of a guide that gives a walk-through of the major 4diac IDE features.</p>
-
- <ol start="0">
- <li><a href="../../html/4diacIDE/overview.html">Overview</a></li>
- <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4DIAC locally</a></li>
- <li><a href="../../html/4diacIDE/distribute4diac.html">Create a distributed application</a></li>
- <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy remotely</a></li>
- <li>Create your own Function Blocks (YOU ARE HERE!)</li>
- <li><a href="../../html/4diacIDE/otherUseful.html">Other basic features</a></li>
- <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features [optional]</a></li>
- </ol>
<!--********************************************************************************************-->
+
+<h1 id="topOfPage">Step 4 - Create Your own Function Block Types</h1>
+
+<p>This page is part of a guide that gives a walk-through of the major 4diac IDE features.</p>
+
+ <ol start="0">
+ <li><a href="../../html/4diacIDE/overview.html">4diac IDE Overview</a></li>
+ <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac Locally (Blinking tutorial)</a></li>
+ <li><a href="../../html/4diacIDE/distribute4diac.html">Distribute 4diac Applications</a></li>
+ <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy Applications Remotely</a></li>
+ <li>Create Your own Function Block Types (YOU ARE HERE!)</li>
+ <li><a href="../../html/4diacIDE/otherUseful.html">Other Basic Features</a></li>
+ <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features</a></li>
+ </ol>
<p>In this tutorial, you will learn how to create your own Function Block (FB).
There are several different types of Function Blocks, we will show how to create a Basic, a Simple, a Composite and a Service Function Block.
@@ -77,8 +77,8 @@
<img src="../../html/4diacIDE/img/Step4/typeBasicGeneral.png" alt="General View after Creating a Basic Function Block" />
-<!--********************************************************************************************-->
-<h3 id="changeInterface">Change the interface</h3>
+<!--********************-->
+<h3 id="changeInterface">Change the Interface</h3>
<p>The Basic FB already has some inputs and outputs which are commonly used.
If you need another, just drag and drop it from the Palette into the FB or right-click at the FB to set another input or output.
@@ -104,8 +104,8 @@
<img src="../../html/4diacIDE/img/Step4/createBasicInterface.png" alt="Create Basic Type - Interface"/>
-<!--********************************************************************************************-->
-<h3>Change the ECC</h3>
+<!--********************-->
+<h3 id="changeECC">Change the ECC</h3>
<p>Select the <b>ECC (Execution Control Chart) tab</b> at the bottom of the central editing area, and you will see a state machine graph.
This is the default one, and here's where you actually code the behavior of the Function Block.
@@ -233,14 +233,14 @@
<!--********************************************************************************************-->
-<h2 id="exportTypes">Export Function Block types</h2>
+<h2 id="exportTypes">Export Function Block Types</h2>
-<p>4diac IDE provides an export filter to generate C++ code which can be included in the 4diac FORTE development process.
+<p>4diac IDE provides an export filter to generate C++ code which can be included in the 4diac FORTE development process.
In order to export a Function Block Type, either</p>
<ul>
- <li>select File → Export → 4diac IDE → 4diac IDE Type Export → Next</li>
- <li>right-click on the Function Block to export and select Export → 4diac IDE → 4diac Type Export</li>
+ <li>select File → Export → 4diac IDE → 4diac IDE Type Export → Next</li>
+ <li>right-click on the Function Block to export and select Export → 4diac IDE → 4diac Type Export</li>
</ul>
<img src="../../html/4diacIDE/img/Step4/selectExportType.png" alt="Select Export Type" />
@@ -248,19 +248,19 @@
<p>Select the FBs to be exported on the right side of the wizard.
It makes sense to use your own folder, we choose <i>ext_modules/EXAMPLE_TEST</i>.
Before exporting one or more Function Block Types, the Export Destination and the Exporter (FORTE 1.x) have to be chosen.
-Furthermore, the version of the 4diac FORTE C++ format has to be selected. We'll export the three we just created.</p>
+Furthermore, the version of the 4diac FORTE C++ format has to be selected. We'll export the three we just created.</p>
<p class="attention"><span class="inlineTitle">Attention:</span> Make sure that not all FBs are checked, otherwise all existing FBs will be exported!</p>
<img src="../../html/4diacIDE/img/Step4/export4DIACTypeWizard.png" alt="Export Type Wizard" />
<p>After clicking the button Finish and no warning pop up everything went fine. Your exported FBs are in the folder you chose before.
-<br>If a dialog window pops up, something went wrong and it will inform you that the export to the 4diac FORTE C++ format was not successful.</p>
+<br>If a dialog window pops up, something went wrong and it will inform you that the export to the 4diac FORTE C++ format was not successful.</p>
<p>If the output directory already contains an older version of the exported Function Block Type, it is possible to overwrite the old file or to open a Merge Editor, where manual merges can be performed.</p>
<img src="../../html/4diacIDE/img/Step4/exportMergeWindow.png" width="1024" alt="Export Merge Window" />
-<!--********************************************************************************************-->
+<!--********************-->
<h3 id="finishService">Finish the Service Interface Test</h3>
<p>Now that you have exported the Service Interface Function Block, you need to edit it in order to get the desired behavior.
@@ -289,7 +289,7 @@
}
}</div>
-<p>To get or set an internal variable or data input in the 4diac FORTE template, you use the name and the parentheses.
+<p>To get or set an internal variable or data input in the 4diac FORTE template, you use the name and the parentheses.
The sendOutputEvent is the specific function to send output events.</p>
<!--********************************************************************************************-->
@@ -304,15 +304,15 @@
<p>The <b>FBTester tab</b> of the bottom of the central editing area is available for all Function Blocks.
It allows testing the functionality of a Function Block by executing it on a target device.
-But first, 4diac FORTE must know about these FBs.
-So, you need to build 4diac FORTE using these Function Blocks just created.
-A guide to build your own 4diac FORTE is <a href="../../html/installation/install.html#ownFORTE">here</a>.
+But first, 4diac FORTE must know about these FBs.
+So, you need to build 4diac FORTE using these Function Blocks just created.
+A guide to build your own 4diac FORTE is <a href="../../html/installation/install.html#ownFORTE">here</a>.
See the section "Add external modules" on adding the files for compilation.</p>
-<p>Once compiled, you can go to the FBTester, select 4diac FORTE Remote Tester in Test Configuration, and then set the IP and PORT for the 4diac FORTE that was compiled with the Function Blocks to be tested.
-The default is locally, but you can test them on any reachable 4diac FORTE.</p>
+<p>Once compiled, you can go to the FBTester, select 4diac FORTE Remote Tester in Test Configuration, and then set the IP and PORT for the 4diac FORTE that was compiled with the Function Blocks to be tested.
+The default is locally, but you can test them on any reachable 4diac FORTE.</p>
-<p>Press Start Testing FB, and the FB will be loaded into 4diac FORTE, and you can manually set input values of your FB, trigger input events and inspect the resulting output events and output data.
+<p>Press Start Testing FB, and the FB will be loaded into 4diac FORTE, and you can manually set input values of your FB, trigger input events and inspect the resulting output events and output data.
Furthermore. you can store input/output sequences and execute them to automatically test a certain functionality of your FB.</p>
<img src="../../html/4diacIDE/img/Step4/functionBlockTester.png" width="1024" alt="Functionblock Tester" />
@@ -323,15 +323,15 @@
<p>In the next step you will see other basic features</p>
-<p><a href="../../html/4diacIDE/otherUseful.html">Step 5 - Other basic features</a></p>
+<p><a href="../../html/4diacIDE/otherUseful.html">Step 5 - Other Basic Features</a></p>
<p>If you want to go back to the distributed application running remotely, here's a link</p>
-<p><a href="../../html/4diacIDE/use4diacRemotely.html">Step 3 - Deploy remotely</a></p>
+<p><a href="../../html/4diacIDE/use4diacRemotely.html">Step 3 - Deploy Applications Remotely</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/4diacIDE/distribute4diac.html b/documentation/html/4diacIDE/distribute4diac.html
index ccc8ab3..d08549b 100644
--- a/documentation/html/4diacIDE/distribute4diac.html
+++ b/documentation/html/4diacIDE/distribute4diac.html
@@ -1,7 +1,8 @@
<!DOCTYPE html>
<!--
- Copyright (c) 2017-2018 fortiss GmbH
- 2018 Andrea Zoitl, Johannes Kepler University Linz
+ Copyright (c) 2017 - 2018 fortiss GmbH
+ 2018 Johannes Kepler University Linz
+ 2018 - 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -11,39 +12,40 @@
Contributors:
Jose Cabral
- initial API and implementation and/or initial documentation
- Andrea Zoitl - cleaning up tutorials for 1.10 release
+ Andrea Zoitl - cleaning up tutorials for 1.10 release, fixing further issues, updated ToC
Bianca Wiesmayr - minor text corrections
-->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Step 2 - Distribute 4diac applications</title>
+ <title>Step 2 - Distribute 4diac Applications</title>
<link rel="stylesheet" type="text/css" href="../help.css" />
</head>
<body>
- <h1 id="topOfPage">Step 2 - Distribute 4diac applications</h1>
+<!--********************************************************************************************-->
- <p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
+ <h1 id="topOfPage">Step 2 - Distribute 4diac Applications</h1>
+
+ <p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
<ol start="0">
- <li><a href="../../html/4diacIDE/overview.html">Overview</a></li>
- <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac IDE locally</a></li>
- <li>Create a distributed application (YOU ARE HERE!)</li>
- <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy remotely</a></li>
- <li><a href="../../html/4diacIDE/createOwnTypes.html">Create your own Function Blocks</a></li>
- <li><a href="../../html/4diacIDE/otherUseful.html">Other basic features</a></li>
- <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features [optional]</a></li>
+ <li><a href="../../html/4diacIDE/overview.html">4diac IDE Overview</a></li>
+ <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac Locally (Blinking tutorial)</a></li>
+ <li>Distribute 4diac Applications (YOU ARE HERE!)</li>
+ <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy Applications Remotely</a></li>
+ <li><a href="../../html/4diacIDE/createOwnTypes.html">Create Your own Function Block Types</a></li>
+ <li><a href="../../html/4diacIDE/otherUseful.html">Other Basic Features</a></li>
+ <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features</a></li>
</ol>
-<!--********************************************************************************************-->
<p>This guide extends the blinking application of <a href="../../html/4diacIDE/use4diacLocally.html" target="_blank">Step 1</a>.
We want to count how many times the light has turned on.
- You will learn how to distribute a IEC 61499 Application to several devices and set up the communication between them.
+ You will learn how to distribute a IEC 61499 Application to several devices and set up the communication between them.
The example continues to run on the local computer.
The application will run on 2 devices.
- The blinking part of the application will run on a 4diac FORTE and the count on another 4diac FORTE, see the architecture below.
+ The blinking part of the application will run on a 4diac FORTE and the count on another 4diac FORTE, see the architecture below.
The two different programs running on the local machine emulate two PLCs.
<br><img src="../../html/4diacIDE/img/distributedArchitecture.png" alt="architecture for the current step"/></p>
@@ -84,11 +86,10 @@
<p>Change back to the <i>BlinkTestApp</i> Application Editor and map the two new FBs to the Resource <i>Counter_RES</i>.
You can see the dashed connections between the two devices.</p>
- <img src="../../html/4diacIDE/img/Step2/mapToCounter.png" alt="Mapping of Function Block Instances within the Application Editor" />
-
- <!--********************************************************************************************-->
+ <img src="../../html/4diacIDE/img/Step2/mapToCounter.png" alt="Mapping of Function Block Instances within the Application Editor" />
+
+<!--********************************************************************************************-->
<h2 id="SetUpCommunication">Set up the Communication Between Both Devices</h2>
-
<p>Change to the <i>Testee.Blinky_RES</i> or <i>Counter.Counter_RES</i> Resource Editor.
There you can see 2 incomplete FBs at the E_SR FB or E_PERMIT.
@@ -98,9 +99,8 @@
You can find more information about broken connections <a href="../../html/before4DIAC/iec61499.html#brokenConnection">here on our Homepage</a>.</p>
<img src="../../html/4diacIDE/img/Step2/incompleteFBs.png" alt="incomplete FBs show die broken connection beween two devices" />
-
-<!--********************************************************************************************-->
- <h3 id="SetUpBlinking">Set up the Blinking Part of the Application </h3>
+ <!--*********************-->
+ <h3 id="SetUpBlinking">Set up the Blinking Part of the Application</h3>
<p>Change to the <i>Testee.Blinky_RES</i> Resource Editor.</p>
@@ -109,7 +109,8 @@
<img src="../../html/4diacIDE/img/Step2/blinkyResourceComplete.png" alt="Blinky_RES completely connected" />
-<!--********************************************************************************************-->
+ <p>Set the QI value to 1 and the set the ID input data of the PUBLISH_COUNT FB to 239.0.0.1:61000.</p>
+<!--*********************-->
<h3 id="SetUpCounting">Set up the Counting Part of the Application</h3>
<p>Change to the <i>Counter.Counter_RES</i> Resource Editor.</p>
@@ -118,19 +119,37 @@
The SUBSCRIBE FB must also be initialized.</p>
<img src="../../html/4diacIDE/img/Step2/counterResourceComplete.png" alt="Counter_RES completely connected" />
-
+
+ <p>Set the QI value to 1 and the set the ID input data of the SUBSCRIBE_COUNT FB to 239.0.0.1:61000.</p>
+<!--*********************-->
+ <h3 id="BackgroundCommunicationFBs">Background of the Communication FBs</h3>
+
+ <p>Here‘s what the last steps mean. The PUBLISH_X FB is used to send messages over the network which are received by an according SUBSCRIBE_X FB.
+ Every time a REQ is triggered, a message is sent according to the ID input.
+ With the value of the ID input you can specify what specific network protocol you would like to use (e.g., MQTT, OPC UA).
+ If you don’t specify a dedicated protocol the default as defined in the <a href="https://www.holobloc.com/doc/ita/">"IEC 61499 Compliance Profile for Feasibility Demonstrations"</a> is used.
+ The number X in PUBLISH_X is the number of data elements that you want to send in the message.
+ Since we are only sending one value we used PUBLISH_1.</p>
+
+
+ <p>The used ID value specifies an IP:PORT pair.
+ The used "IEC 61499 Compliance Profile for Feasibility Demonstrations" defines that this is an UDP multi-cast address in a certain address range.
+ The selected 239.0.0.1 and port 61000 have nothing to do with the localhost:61499 or localhost:61500 use for configuring the devices.
+ The first is a UDP multi-cast address use to send messages between devices, and the latter are TCP connections for deploying applications to devices and manage them.
+ Take care of not using the same UDP socket for different PUBLISH_X/SUBSCRIBE_X pairs.</p>
+
<!--********************************************************************************************-->
- <h2 id="startDevices">Start both Devices</h2>
+ <h2 id="startDevices">Start Both Devices</h2>
<p>Change to the Deployment Perspective.</p>
<ol>
<li>Set the Port to 61499 (the same as defined before, remember localhost:61499 in the System Configuration Editor?).</li>
- <li>Launch Local 4diac FORTE.</li>
- <li>You should see the location of your 4diac FORTE and the Terminate button enabled in the Console.</li>
+ <li>Launch Local 4diac FORTE.</li>
+ <li>You should see the location of your 4diac FORTE and the Terminate button enabled in the Console.</li>
<li>Set the Port to 61500 (the same define before, remember localhost:61500 in the System Configuration?)</li>
- <li>Launch Local 4diac FORTE</li>
- <li>You should see the the location of your 4diac FORTE and the Terminate button enabled in the Console.</li>
+ <li>Launch Local 4diac FORTE</li>
+ <li>You should see the the location of your 4diac FORTE and the Terminate button enabled in the Console.</li>
<li>Select the elements to deploy.
For this tutorial select our devices <i>Counter</i> and <i>Testee</i>.</li>
<li>Click the <span class="button4diac">Deploy</span> button.</li>
@@ -141,25 +160,24 @@
<img src="../../html/4diacIDE/img/Step2/deployCounter.png" alt="deploying of the application" />
<!--********************************************************************************************-->
-
- <h2 id="testApplication">Test it! </h2>
+ <h2 id="testApplication">Test it!</h2>
<img src="../../html/4diacIDE/img/Step2/monitoringApp.png" alt="monitoring of the application" />
<!--********************************************************************************************-->
<h1>Where to go from here?</h1>
-<p>In the next step you will see how FORTE runs in another machine.</p>
+<p>In the next step you will see how 4diac FORTE runs in another machine.</p>
-<p><a href="../../html/4diacIDE/use4diacRemotely.html">Step 3 - Deploy remotely</a></p>
+<p><a href="../../html/4diacIDE/use4diacRemotely.html">Step 3 - Deploy Applications Remotely</a></p>
<p>If you want to go back to the original Blinking application without buttons, here's a link</p>
-<p><a href="../../html/4diacIDE/use4diacLocally.html">Step 1 - Use 4DIAC-IDE locally</a></p>
+<p><a href="../../html/4diacIDE/use4diacLocally.html">Step 1 - Use 4diac Locally (Blinking Tutorial)</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/4diacIDE/img/Step2/blinkyResourceComplete.png b/documentation/html/4diacIDE/img/Step2/blinkyResourceComplete.png
index 903cd38..3b3fa84 100644
--- a/documentation/html/4diacIDE/img/Step2/blinkyResourceComplete.png
+++ b/documentation/html/4diacIDE/img/Step2/blinkyResourceComplete.png
Binary files differ
diff --git a/documentation/html/4diacIDE/img/Step2/counterResourceComplete.png b/documentation/html/4diacIDE/img/Step2/counterResourceComplete.png
index fd834bf..e272a32 100644
--- a/documentation/html/4diacIDE/img/Step2/counterResourceComplete.png
+++ b/documentation/html/4diacIDE/img/Step2/counterResourceComplete.png
Binary files differ
diff --git a/documentation/html/4diacIDE/img/Step3/deviceAddress.png b/documentation/html/4diacIDE/img/Step3/deviceAddress.png
new file mode 100644
index 0000000..f13f9a6
--- /dev/null
+++ b/documentation/html/4diacIDE/img/Step3/deviceAddress.png
Binary files differ
diff --git a/documentation/html/4diacIDE/img/Step3/downloadError.png b/documentation/html/4diacIDE/img/Step3/downloadError.png
new file mode 100644
index 0000000..b8e2ea4
--- /dev/null
+++ b/documentation/html/4diacIDE/img/Step3/downloadError.png
Binary files differ
diff --git a/documentation/html/4diacIDE/img/Step3/remoteArchitecture.png b/documentation/html/4diacIDE/img/Step3/remoteArchitecture.png
new file mode 100644
index 0000000..0f023dd
--- /dev/null
+++ b/documentation/html/4diacIDE/img/Step3/remoteArchitecture.png
Binary files differ
diff --git a/documentation/html/4diacIDE/img/remote4diac.png b/documentation/html/4diacIDE/img/remote4diac.png
deleted file mode 100644
index 6596622..0000000
--- a/documentation/html/4diacIDE/img/remote4diac.png
+++ /dev/null
Binary files differ
diff --git a/documentation/html/4diacIDE/img/tutorialFigures.odg b/documentation/html/4diacIDE/img/tutorialFigures.odg
new file mode 100644
index 0000000..11b9a40
--- /dev/null
+++ b/documentation/html/4diacIDE/img/tutorialFigures.odg
Binary files differ
diff --git a/documentation/html/4diacIDE/otherUseful.html b/documentation/html/4diacIDE/otherUseful.html
index 36922b3..1c4a074 100644
--- a/documentation/html/4diacIDE/otherUseful.html
+++ b/documentation/html/4diacIDE/otherUseful.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<!--
Copyright (c) 2016-2018 fortiss GmbH, Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -12,78 +13,109 @@
- initial API and implementation and/or initial documentation
Bianca Wiesmayr
- minor text corrections
+ Andrea Zoitl
+ - updated ToC, improved readability
-->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Step 5 - Other Useful features</title>
+ <title>Step 5 - Other Basic Features</title>
<link rel="stylesheet" type="text/css" href="../help.css">
</head>
<body>
-<h1 id="CreateTypes">Step 5 - Other basic features</h1>
+<!--********************************************************************************************-->
-<p id="topOfPage">This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
+<h1 id="CreateTypes">Step 5 - Other Basic Features</h1>
+
+<p id="topOfPage">This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
<ol start="0">
- <li><a href="../../html/4diacIDE/overview.html">Overview</a></li>
- <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac locally</a></li>
- <li><a href="../../html/4diacIDE/distribute4diac.html">Create a distributed application</a></li>
- <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy remotely</a></li>
- <li><a href="../../html/4diacIDE/createOwnTypes.html">Create your own Function Blocks</a></li>
- <li>Other basic features (YOU ARE HERE!)</li>
- <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features [optional]</a></li>
+ <li><a href="../../html/4diacIDE/overview.html">4diac IDE Overview</a></li>
+ <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac Locally (Blinking tutorial)</a></li>
+ <li><a href="../../html/4diacIDE/distribute4diac.html">Distribute 4diac Applications</a></li>
+ <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy Applications Remotely</a></li>
+ <li><a href="../../html/4diacIDE/createOwnTypes.html">Create Your own Function Block Types</a></li>
+ <li>Other Basic Features (YOU ARE HERE!)</li>
+ <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features</a></li>
</ol>
-<p>This page shows the following interesting features in 4diac IDE that might improve your work:</p>
+<p>This page shows the following interesting features in 4diac IDE that might improve your work:</p>
<ol>
- <li><a href="#ImportSystem">Import Systems and Types</a></li>
+ <li><a href="#ImportSystem">Import an Existing System</a></li>
+ <li><a href="#ImportType">Import Existing IEC 61499 Types</a></li>
<li><a href="#VirtualDNS">Virtual DNS Functionality</a></li>
- <li><a href="#CreateBootfiles">Create Boot files</a></li>
+ <li><a href="#CreateBootfiles">Creating Boot-Files</a></li>
</ol>
- <h1 id= "ImportSystem">Import an existing System</h1>
+<!--********************************************************************************************-->
+
+ <h2 id= "ImportSystem">Import an Existing System</h2>
<p>Existing Systems can be imported as follows: </p>
<ol>
- <li>Start 4diac IDE with the desired Workspace</li>
+ <li>Start 4diac IDE with the desired Workspace</li>
<li>Select File/Import/Existing Projects into Workspace and press Next</li>
<li>Choose the folder that contains the folder with the System you want to import</li>
<li>Mark the desired System within the project field below</li>
- <li>If your project is not yet within your workspace and if you do not want to modify the original version of your project, mark Copy Projects into workspace and press Finish. Consider that if you did not check Copy Projects into workspace and you delete your System within 4diac IDE, your System will be deleted permanently.</li>
+ <li>If your project is not yet within your workspace and if you do not want to modify the original version of your project, mark Copy Projects into workspace and press Finish.
+ Consider that if you did not check Copy Projects into workspace and you delete your System within 4diac IDE, your System will be deleted permanently.</li>
<li>Verify that the System is completely there, that is the System Configuration with the Devices and Resources as well as the Application with FBs and both event and data connections.</li>
</ol>
- <h2 id= "ImportType">Import existing IEC 61499 Types</h2>
- <p>By default, new systems contain a copy of the IEC 61499 types in the tool-library. If different types are needed, for example from another project or another IEC 61499 engineering tool, these type files can be easily added by copying them into the project directory to the desired location. Furthermore, the Type Navigator allows to drag and drop types between projects as well as within a project to a different folder.</p>
-
- <h1 id= "VirtualDNS">Virtual DNS Functionality</h1>
+<!--********************************************************************************************-->
- <p>The Properties View provides a Virtual DNS editor. This functionality allows defining a set of variables, which are replaced by a specified value. The variable names can be used for parameters of Function Blocks and Devices. During the deployment, all variables which are available in the VirtualDNS are replaced with the specified value. For using a variable, the variable name has to be written between %. In the example below, two Configurations were created: local and rasbpi. The configuration rasbpi has the ip variable set to a value of 192.168.0.7, and the local to 127.0.0.1. In the main view, the variable ip is used as the ip address of the FORTE device. When you want to use a local FORTE, just change the configuration and check Active Configuration instead of changing each time the value.</p>
+ <h2 id= "ImportType">Import Existing IEC 61499 Types</h2>
+ <p>By default, new systems contain a copy of the IEC 61499 types in the tool-library.
+ If different types are needed, for example from another project or another IEC 61499 engineering tool, these type files can be easily added by copying them into the project directory to the desired location.
+ Furthermore, the Type Navigator allows to drag and drop types between projects as well as within a project to a different folder.</p>
+
+<!--********************************************************************************************-->
+
+ <h2 id= "VirtualDNS">Virtual DNS Functionality</h2>
+
+ <p>The Properties View provides a Virtual DNS editor. This functionality allows defining a set of variables, which are replaced by a specified value.
+ The variable names can be used for parameters of Function Blocks and Devices.
+ During the deployment, all variables which are available in the VirtualDNS are replaced with the specified value.
+ For using a variable, the variable name has to be written between %.
+ In the example below, two Configurations were created: local and rasbpi.
+ The configuration rasbpi has the ip variable set to a value of 192.168.0.7, and the local to 127.0.0.1.
+ In the main view, the variable ip is used as the ip address of the 4diac FORTE device.
+ When you want to use a local 4diac FORTE, just change the configuration and check Active Configuration instead of changing each time the value.</p>
<img src="../../html/4diacIDE/img/virtualDNS.png" alt="Virtual DNS"/>
- <h1 id="CreateBootfiles">Creating Boot-files</h1>
- <p>When the option
- <span class="specificText">FORTE_SUPPORT_BOOTFILE</span> is enabled for the FORTE you are using, on startup FORTE tries to load a so called boot-file. This boot-file has to be located in the same directory as your FORTE binary and needs to be named <span class="fileLocation">forte.fboot.</span> This file contains the FB network configuration for the device and will be automatically instantiated during startup of FORTE.</p>
- <p>In order to create such boot-files, you need to select one or more devices or resources in the <span class="view4diac">Download Selection View</span> and select <span class="menu4diac">Create FORTE boot-files...</span> from the context menu.</p>
- <p>
- <img src="../../html/4diacIDE/img/createBootFileContextMenu.png" alt="Create Boot-file context menu" />
- </p>
- <p>In the wizard, you can then select the devices and resources for which you wish to create boot-files as well as the directory where to place them.</p>
- <p>
- <img src="../../html/4diacIDE/img/createBootFileWizard.png" alt="Create Boot-file Wizard" />
- </p>
- <p>On pressing <span class="button4diac">Finish</span> one boot-file will be created per device. This boot-file will contain the selected resources and the FB networks contained in the resources. As only the resources selected are included in the boot-file, you can have a larger set of resources during development (e.g., for test-code) and use only the main resources for the boot-file. The name of the boot-file will be a combination of system and device name dot fboot. Before using it you need to rename it to forte.fboot.</p>
+<!--********************************************************************************************-->
+
+ <h2 id="CreateBootfiles">Creating Boot-Files</h2>
+ <p>When the option
+ <span class="specificText">FORTE_SUPPORT_BOOTFILE</span> is enabled for the FORTE you are using, on startup FORTE tries to load a so called boot-file.
+ This boot-file has to be located in the same directory as your 4diac FORTE binary and needs to be named <span class="fileLocation">forte.fboot.</span>
+ This file contains the FB network configuration for the device and will be automatically instantiated during startup of 4diac FORTE.</p>
+ <p>In order to create such boot-files, you need to select one or more devices or resources in the <span class="view4diac">Download Selection View</span> and select <span class="menu4diac">Create FORTE boot-files...</span> from the context menu.</p>
+ <p>
+ <img src="../../html/4diacIDE/img/createBootFileContextMenu.png" alt="Create Boot-file context menu" />
+ </p>
+ <p>In the wizard, you can then select the devices and resources for which you wish to create boot-files as well as the directory where to place them.</p>
+ <p>
+ <img src="../../html/4diacIDE/img/createBootFileWizard.png" alt="Create Boot-file Wizard" />
+ </p>
+ <p>On pressing <span class="button4diac">Finish</span> one boot-file will be created per device.
+ This boot-file will contain the selected resources and the FB networks contained in the resources.
+ As only the resources selected are included in the boot-file, you can have a larger set of resources during development (e.g., for test-code) and use only the main resources for the boot-file.
+ The name of the boot-file will be a combination of system and device name dot fboot.
+ Before using it you need to rename it to forte.fboot.</p>
+
+<!--********************************************************************************************-->
<h1>Where to go from here?</h1>
-<p>The last step is optional, and shows some advanced features of 4diac IDE that you might use in more complicated applications.</p>
+<p>The last step is optional, and shows some advanced features of 4diac IDE that you might use in more complicated applications.</p>
-<p><a href="../../html/4diacIDE/advancedFeatures.html">Step 6 (optional) - Advanced Features</a></p>
+<p><a href="../../html/4diacIDE/advancedFeatures.html">Step 6 - Advanced Features</a></p>
<p>If you want to see some examples, the following link is an index of the available examples in the documentation:</p>
@@ -91,19 +123,19 @@
<p>If you have a specific platform that has input and outputs that is supported by FORTE, for example a Raspberry Pi or a PLC, and you want to use them, go to following page:</p>
-<p><a href="../../html/parameters/parameters.html">Parameters for different platforms</a></p>
+<p><a href="../../html/parameters/parameters.html">Parameters for Different Platforms</a></p>
-<p>If you want to use a specific communication protocol supported by FORTE, for example MQTT, OPC UA, Modbus and so on, go to this page:</p>
+<p>If you want to use a specific communication protocol supported by 4diac FORTE, for example MQTT, OPC UA, Modbus and so on, go to this page:</p>
-<p><a href="../../html/communication/communicationIndex.html">Communication Protocols</a></p>
+<p><a href="../../html/communication/communicationIndex.html">Supported Communication Protocols</a></p>
<p>If you want to go back to see again how to create your own Function Blocks, here's a link:</p>
-<p><a href="../../html/4diacIDE/createOwnTypes.html">Step 4 - Create your own Function Blocks</a></p>
+<p><a href="../../html/4diacIDE/createOwnTypes.html">Step 4 - Create Your own Function Block Types</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access:</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/4diacIDE/overview.html b/documentation/html/4diacIDE/overview.html
index 1fa5e20..34e8ce1 100644
--- a/documentation/html/4diacIDE/overview.html
+++ b/documentation/html/4diacIDE/overview.html
@@ -13,7 +13,7 @@
Gerhard Ebenhofer, Thomas Strasser, Monika Wenger, Alois Zoitl,
Gerd Kainz, Carolyn Oates, Jose Cabral
- initial API and implementation and/or initial documentation
- Andrea Zoitl - cleaning up tutorials for 1.10 release
+ Andrea Zoitl - cleaning up tutorials for 1.10 release, updated ToC
Bianca Wiesmayr - text corrections and updates
-->
@@ -32,13 +32,13 @@
<p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
<ol start="0">
- <li>Overview (YOU ARE HERE!)</li>
- <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4DIAC locally</a></li>
- <li><a href="../../html/4diacIDE/distribute4diac.html">Create a distributed application</a></li>
- <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy remotely</a></li>
- <li><a href="../../html/4diacIDE/createOwnTypes.html">Create your own Function Blocks</a></li>
- <li><a href="../../html/4diacIDE/otherUseful.html">Other basic features</a></li>
- <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features [optional]</a></li>
+ <li>4diac IDE Overview (YOU ARE HERE!)</li>
+ <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac Locally (Blinking tutorial)</a></li>
+ <li><a href="../../html/4diacIDE/distribute4diac.html">Distribute 4diac Applications</a></li>
+ <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy Applications Remotely</a></li>
+ <li><a href="../../html/4diacIDE/createOwnTypes.html">Create Your own Function Block Types</a></li>
+ <li><a href="../../html/4diacIDE/otherUseful.html">Other Basic Features</a></li>
+ <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features</a></li>
</ol>
<p>An overview is presented in this step 0 - about elements, perspectives and properties of 4diac IDE that you need to know about to use it smoothly.</p>
@@ -129,7 +129,7 @@
<li>System selection, where Systems can be marked for monitoring by right-clicking and choosing <span class="menu4diac">Monitor System.</span></li>
<li>Application editor, which shows your <span class="element61499">Application</span> and highlights the variables marked for watching.</li>
<li>Watches view, which allows watching the current values of the variables you marked for watching.</li>
- <li>Outline</span> of <span class="element61499">Applications</span>, <span class="element61499">System</span> configurations, <span class="element61499">Devices</span>, and <span class="element61499">Resources</span></li>
+ <li>Outline of <span class="element61499">Applications</span>, <span class="element61499">System</span> configurations, <span class="element61499">Devices</span>, and <span class="element61499">Resources</span></li>
</ol>
<p><img src="../../html/4diacIDE/img/perspective/debugPerspective.png" alt="Debug Perspective Button"/></p>
@@ -173,11 +173,11 @@
<p>Now that you got an overview of the major parts of 4diac IDE, you can start using it: </p>
-<p><a href="../../html/4diacIDE/use4diacLocally.html">Step 1 - Use 4diac IDE locally</a></p>
+<p><a href="../../html/4diacIDE/use4diacLocally.html">Step 1 - Use 4diac IDE Locally</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access:</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/4diacIDE/use4diacLocally.html b/documentation/html/4diacIDE/use4diacLocally.html
index 3c7dc42..e891690 100644
--- a/documentation/html/4diacIDE/use4diacLocally.html
+++ b/documentation/html/4diacIDE/use4diacLocally.html
@@ -1,7 +1,8 @@
<!DOCTYPE html>
<!--
Copyright (c) 2010 - 2017 TU Wien ACIN, fortiss GmbH
- 2018 Andrea Zoitl, Johannes Kepler University Linz
+ 2018 Johannes Kepler University Linz
+ 2018 - 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -12,32 +13,32 @@
Carolyn Oates, Alois Zoitl, Monika Wenger, Milan Vathoopan,
Gerhard Ebenhofer, Gerd Kainz, Thomas Strasser, Jose Cabral
- initial API and implementation and/or initial documentation
- Andrea Zoitl - cleaning up tutorials for 1.10 release
+ Andrea Zoitl - cleaning up tutorials for 1.10 release, updated ToC
Bianca Wiesmayr - minor text corrections
-->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Step 1 - Use 4diac locally</title>
+ <title>Step 1 - Use 4diac Locally</title>
<link rel="stylesheet" type="text/css" href="../help.css" />
</head>
<body>
- <h1 id="topOfPage">Step 1 - Use 4diac locally (Blinking tutorial)</h1>
+ <h1 id="topOfPage">Step 1 - Use 4diac Locally (Blinking Tutorial)</h1>
<p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
<ol start="0">
- <li><a href="../../html/4diacIDE/overview.html">Overview</a></li>
- <li>Use 4diac IDE locally (YOU ARE HERE!)</li>
- <li><a href="../../html/4diacIDE/distribute4diac.html">Create a distributed application</a></li>
- <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy remotely</a></li>
- <li><a href="../../html/4diacIDE/createOwnTypes.html">Create your own Function Blocks</a></li>
- <li><a href="../../html/4diacIDE/otherUseful.html">Other basic features</a></li>
- <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features [optional]</a></li>
+ <li><a href="../../html/4diacIDE/overview.html">4diac IDE Overview</a></li>
+ <li>Use 4diac Locally (YOU ARE HERE!)</li>
+ <li><a href="../../html/4diacIDE/distribute4diac.html">Distribute 4diac Applications</a></li>
+ <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy Applications Remotely</a></li>
+ <li><a href="../../html/4diacIDE/createOwnTypes.html">Create Your own Function Block Types</a></li>
+ <li><a href="../../html/4diacIDE/otherUseful.html">Other Basic Features</a></li>
+ <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features</a></li>
</ol>
-
+
<p>In this tutorial you create a simple Blinking application. It's the "Hello World" of automation programs, so it teaches the key aspects and workflow of 4diac IDE. The application will run locally, so no connection to any PLC or external hardware is needed. The architecture is shown below.</p>
<img src="../../html/4diacIDE/img/locallyArchitecture.png" alt="architecture for the current step" />
@@ -45,7 +46,7 @@
<p>After completing Step 0 switch to the system perspective using the <img src="../../html/4diacIDE/img/system.png" alt="System Perspective Button" class="inlineImg"/> Button.</p>
<!--********************************************************************************************-->
- <h2 id="createSystem">Create a new IEC 61499 System</h2>
+ <h2 id="createSystem">Create a new IEC 61499 System</h2>
<ol>
<li>In the upper left corner of the system perspective there is the main menu. Create a new system by selecting
@@ -69,7 +70,7 @@
Furthermore the <span class="view4diac">Type Navigator</span> allows to drag and drop types between projects as well as within a project to a different folder.</p>
<!--********************************************************************************************-->
- <h2 id="createNetwork">Create a FB network for the Blink application</h2>
+ <h2 id="createNetwork">Create a FB Network for the Blink Application</h2>
<p>A double-click on an Application in the System Explorer tab on the left opens the Application Editor for this specific application in the editor area.</p>
<ol>
<li>Drag and Drop the following Function Blocks (FBs) to the Editor. Open the palette (if not already open) on the upper right of <b>editor area</b> by clicking on the left arrow or use the Type Library in the System Explorer.
@@ -149,6 +150,8 @@
<p>Device and Resource parameters can either be specified directly at each Device/Resource or via the Properties View.
The <span class="view4diac">Properties View</span> shows the parameters of a IEC 61499 Device/Resource (if it is selected either in the <span class="view4diac">System Configuration Editor</span> or in the <span class="view4diac">System Manager View</span>).
The most important parameters are the IP address and the port of the device management interface as they are required for the communication between the engineering tool and the Devices (e.g. Download of IEC 61499 Applications).</p>
+
+ <!--*********************-->
<h3 id="deviceProfileConfiguration">Configuration of the Device's Configuration Profile</h3>
<p>In order to support different device vendors' download mechanism you need to specify the device profile to be used for your device.
@@ -234,12 +237,12 @@
</table>
<!--********************************************************************************************-->
- <h2 id="deployingToForte">Deploying application to 4diac FORTE</h2>
+ <h2 id="deployingToForte">Deploying Application to 4diac FORTE</h2>
<p>In this step, the Blink application will be deployed to 4diac FORTE running locally on your computer.</p>
<ol>
- <li>You have to select a 4diac FORTE.
+ <li>You have to select a 4diac FORTE.
<br/>You can either build your own 4diac FORTE as <a href="../../html/installation/install.html#ownFORTE">shown here</a> or you can download the 4diac FORTE that is provided for you for this tutorial on <a href="https://www.eclipse.org/4diac/en_dow.php">our Homepage</a>.
You can save the .exe wherever you like, we have chosen F:\4diac\4diac-ide\.
Go to <span class="menu4diac">Windows → Preferences → 4diac IDE → FORTE Preferences</span>, and in <span class="addressDoc">FORTE Location</span> look for the 4diac FORTE and then click <i>Apply and Close</i>.
@@ -303,15 +306,15 @@
<p>Now that you know how to do a centralized solution, let's try and distribute things:</p>
-<p><a href="../../html/4diacIDE/distribute4diac.html">Step 2 - Distribute 4diac applications</a></p>
+<p><a href="../../html/4diacIDE/distribute4diac.html">Step 2 - Distribute 4diac Applications</a></p>
-<p>If you want to go the back to see an overall overview of 4diac IDE, here's a link</p>
+<p>If you want to go the back to see an overall overview of 4diac IDE, here's a link</p>
-<p><a href="../../html/4diacIDE/overview.html">Step 0 - 4diac IDE - General View</a></p>
+<p><a href="../../html/4diacIDE/overview.html">Step 0 - 4diac IDE Overview</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/4diacIDE/use4diacRemotely.html b/documentation/html/4diacIDE/use4diacRemotely.html
index a2d3d94..993534d 100644
--- a/documentation/html/4diacIDE/use4diacRemotely.html
+++ b/documentation/html/4diacIDE/use4diacRemotely.html
@@ -2,6 +2,7 @@
<!--
Copyright (c) 2017-2018 fortiss GmbH
2018 Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -12,81 +13,124 @@
Jose Cabral
- initial API and implementation and/or initial documentation
Bianca Wiesmayr - minor text corrections
+ Andrea Zoitl - update of the tutorial, updated ToC
-->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Step 3 - Deploy remotely</title>
+ <title>Step 3 - Deploy Applications Remotely</title>
<link rel="stylesheet" type="text/css" href="../help.css" />
</head>
<body>
-
- <h1 id="topOfPage">Step 3 - Deploy applications remotely</h1>
+
+<!--********************************************************************************************-->
- <p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
+ <h1 id="topOfPage">Step 3 - Deploy Applications Remotely</h1>
+
+ <p>This page is part of a guide that gives a walk-through over the major 4diac IDE features.</p>
<ol start="0">
- <li><a href="../../html/4diacIDE/overview.html">Overview</a></li>
- <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac locally</a></li>
- <li><a href="../../html/4diacIDE/distribute4diac.html">Create a distributed application</a></li>
- <li>Deploy remotely (YOU ARE HERE!)</li>
- <li><a href="../../html/4diacIDE/createOwnTypes.html">Create your own Function Blocks</a></li>
- <li><a href="../../html/4diacIDE/otherUseful.html">Other basic features</a></li>
- <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features [optional]</a></li>
+ <li><a href="../../html/4diacIDE/overview.html">4diac IDE Overview</a></li>
+ <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac Locally (Blinking tutorial)</a></li>
+ <li><a href="../../html/4diacIDE/distribute4diac.html">Distribute 4diac Applications</a></li>
+ <li>Deploy Applications Remotely (YOU ARE HERE!)</li>
+ <li><a href="../../html/4diacIDE/createOwnTypes.html">Create Your own Function Block Types</a></li>
+ <li><a href="../../html/4diacIDE/otherUseful.html">Other Basic Features</a></li>
+ <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features</a></li>
</ol>
- <p>In this step, the Blink application will not run locally, but in another device. This has not too much to show, but it helps understand the workflow when using real PLCs. Since this page is more of an explanation than actually showing, it's up to the reader to actually implement it. The image below shows the architecture of this step.</p>
+ <p>In this step, the Blink application from <a href="../../html/4diacIDE/distribute4diac.html">Step 2</a> will not run locally, but in another device.
+ This has not too much to show, but it helps understand the workflow when using real PLCs.
+ Since this page is more of an explanation than actually showing, it's up to the reader to actually implement it.
+ The image below shows the architecture of this step.</p>
- <img src="../../html/4diacIDE/img/remote4diac.png" alt="architecture for the current step"/>
+ <img src="../../html/4diacIDE/img/Step3/remoteArchitecture.png" alt="architecture for the current step"/>
- <h2 id="stepsToDeployRem">Follow these steps to deploy remotely</h2>
+<!--********************-->
+
+ <h2 id="stepsToDeployRem">Steps to Deploy Remotely</h2>
<ol>
- <li>Select the PLC hardware or other hardware that can run 4diac FORTE. You can check <a href="../../html/before4DIAC/4diacFramework.html#4diacFramework" target="_blank">here</a> the list of supported platforms. The cheap options are Raspberry Pi, BeagleBoneBlack or another small board that runs Linux. Another option would be to use another computer in your network.</li>
- <li>Start FBRT locally as you did in step 3 when <a href="../../html/4diacIDE/distribute4diac.html#deployDevices" target="_blank">deploying devices</a></li>
- <li>Compile 4diac FORTE for your PLC or other Hardware. Check <a href="../../html/installation/install.html#FORTEWindowsUnix">here</a> for more information.</li>
- <li>Run 4diac FORTE on the device. This depends on the device you are using. Normally it has some type of Terminal or FTP that you can access and launch the executable. Attention! You cannot use the "Launch FORTE" similar as you did with FBRT, because this will launch a FORTE on your machine and not on the device. There's no way of launching 4diac FORTE in the device from 4diac IDE.</li>
- <li>In the System Configuration of the project, change the IP:PORT of the FORTE_PC device to match the one that your device has. You should be able to know the IP of your device. The port is 61499 by default. Remember that you can change this port when launching 4diac FORTE.</li>
- <li>In the Debugging Perspective, select both devices (FBRT_WINDOW and FORTE_PC) just as the step before and click Download.</li>
- <li>Monitor the FORTE_PC the same way as before, and test the application using the buttons. Remember you cannot monitor FBRT.</li>
+ <li>Select the PLC hardware or other hardware that can run 4diac FORTE.
+ You can check <a href="../../html/before4DIAC/4diacFramework.html#4diacFramework" >here</a> the list of supported platforms.
+ The cheap options are Raspberry Pi, BeagleBoneBlack or another small board that runs Linux.
+ Another option would be to use another computer in your network.</li>
+ <li>Compile 4diac FORTE for your PLC or other Hardware.
+ Check <a href="../../html/installation/install.html#FORTEWindowsUnix">here</a> for more information.</li>
+ <li>Go to the System Configuration of the <i>BlinkTest</i> and change the address from localhost to the IP address of your device.
+ This is the easiest way to interact with an external device.
+ <br>However, certain devices require a special device type.
+ To do this, delete the <i>testee FORTE_PC</i> and pull in the new matching device from the Palette and connect it to the network (map, insert communication FB and connect)
+ <br>In our example the device IP address is 192.168.0.8, you may have another one. The port is 61499 by default.
+ <br><img src="../../html/4diacIDE/img/Step3/deviceAddress.png" alt="changing the device address"/>
+ <li>Switch to Deployment Perspective set the port to 61500.</li>
+ <li>Launch Local Forte</li>
+ <li>Run 4diac FORTE on the device.
+ This depends on the device you are using.
+ Normally it has some type of Terminal or FTP that you can access and launch the executable.</li>
+ <li>Select both devices (i.e., Counter and Testee) in the Deployment Selection</li>
+ <li>Click the <span class="button4diac">Deploy</span> button</li>
+ <li>Check that the <i>Deployment Console</i> shows some output, and that no red warning appears on the right nor left of it.
+ If you get something red, something went wrong.
+ <br>If an <i>download error message</i> pops up something went wrong too.
+ Here are the most common mistakes:
+ <ul>
+ <li>wrong IP address</li>
+ <li>the firewall is blocking</li>
+ <li>4diac FORTE does not run on the external device</li>
+ </ul>
+ <br>Here is an example of an error message
+ <br><img src="../../html/4diacIDE/img/Step3/downloadError.png" alt="Major Download Error pop-up"/></li>
+ <li>You can activate the monitor system and watch the project.
+ Now you can see that <i>true</i> and <i>false</i>alternate as before.</li>
</ol>
+<!--********************-->
+
<h2 id="troubleshooting">Troubleshooting</h2>
<p>In many cases, there are problems even when doing such a simple example. In most cases, it's a network problem.</p>
- <p>If you get an error when downloading to the device, it might be that the IP:PORT is wrong, the device is unreachable (in another network behind a firewall maybe?) or FORTE is not running on the device.</p>
+ <p>If you get an error when downloading to the device, it might be that the IP:PORT is wrong, the device is unreachable (in another network behind a firewall maybe?) or 4diac FORTE is not running on the device.</p>
<p>In case you click the Buttons but do not see any reaction in the Blinking part, then there's a communication problem. Try the following:</p>
<ul>
- <li>If you connected your device directly to your computer, add the computer's IP address as default gateway. In some Linux versions, it should be something similar to:
+ <li>If you connected your device directly to your computer, add the computer's IP address as default gateway.
+ In some Linux versions, it should be something similar to:
<div class="code">$ ip route add default [ip] dev [interface]</div>
<p>where [ip] is the IP address of your computer, and [interface] is the network interface where it's connected (eth0, usb0, etc.)</p>
</li>
<li>Make sure that the interface is prepared to handle Multicast packets.</li>
<li>On Windows machine: run the command window with admin rights, and type:
<div class="code">route PRINT</div>
- <p>This lists all the routes used by your PC. You should check that the multicast address used by the application appears there and uses your device IP address as gateway. For our example, it uses the address 239.0.0.1. If it doesn't appear, the address should be added and directed towards the device's IP address. Use the command:</p>
+ <p>This lists all the routes used by your PC.
+ You should check that the multicast address used by the application appears there and uses your device IP address as gateway.
+ For our example, it uses the address 239.0.0.1. If it doesn't appear, the address should be added and directed towards the device's IP address.
+ Use the command:</p>
<div class="code">route ADD 239.0.0.1 MASK 255.255.0.0 [DEVICE_IP] METRIC 255</div>
<p>and then it should appear when printing again the routes.</p>
</li>
- <li>Another problem found in Windows is that even though the device receives the packets and replies, the application is not receiving them. Even though the packet appears in Wireshark the application does not receive it. A solution is to disable the FIREWALL completely. After that everything should work fine.</li>
+ <li>Another problem found in Windows is that even though the device receives the packets and replies, the application is not receiving them.
+ Even though the packet appears in Wireshark the application does not receive it.
+ A solution is to disable the FIREWALL completely. After that everything should work fine.</li>
</ul>
+<!--********************************************************************************************-->
+
<h1>Where to go from here?</h1>
<p>In the next step you will see how to create your own Function Blocks:</p>
-<p><a href="../../html/4diacIDE/createOwnTypes.html">Step 4 - Create your own Function Blocks</a></p>
+<p><a href="../../html/4diacIDE/createOwnTypes.html">Step 4 - Create Your own Function Block Types</a></p>
<p>If you want to go back to the distributed application running completely locally, here's a link:</p>
-<p><a href="../../html/4diacIDE/distribute4diac.html">Step 2 - Distribute 4diac applications</a></p>
+<p><a href="../../html/4diacIDE/distribute4diac.html">Step 2 - Distribute 4diac Applications</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop"><a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/before4DIAC/4diacFramework.html b/documentation/html/before4DIAC/4diacFramework.html
index 7adbd3e..f9b6519 100644
--- a/documentation/html/before4DIAC/4diacFramework.html
+++ b/documentation/html/before4DIAC/4diacFramework.html
@@ -2,6 +2,7 @@
<!--
Copyright (c) 2010 - 2019 Profactor GmbH, TU Wien ACIN, fortiss GmbH
2019 Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -14,6 +15,8 @@
- initial API and implementation and/or initial documentation
Bianca Wiesmayr, Alois Zoitl
- text corrections and clean-up
+ Andrea Zoitl
+ - improved readability, updated Help ToC
-->
<html lang="en">
@@ -25,25 +28,27 @@
<body>
<p id="topOfPage">To understand what's next, you need to know IEC 61499.
-If you did not read the following page yet, go there now: <a href="../../html/before4DIAC/iec61499.html">Learn about IEC 61499</a></p>
+If you did not read the following page yet, go there now: <a href="../../html/before4DIAC/iec61499.html">IEC 61499 101</a></p>
+
+<!--********************************************************************************************-->
<h1 id="iec61499Framework">4diac Framework</h1>
<p>This section outlines the big picture from the design to actually controlling physical units.</p>
-<p>As shown in the IEC 61499 explanation, an application developed using this standard uses Function Blocks (FB).
+<p>As shown in the IEC 61499 explanation, an application developed using this standard uses Function Blocks (FB).
There are ways of creating and defining FBs, but at some point in the workflow ranging from FBs to actually controlling something physical, the logic behind the FBs and the FB networks has to be implemented.
That's where the runtime environment comes in.
This software loads the network of FBs and then executes the events and follows the rules of the standard like the one seen <a href="../../html/before4DIAC/iec61499.html#FBInternalSequence" target="_blank">here</a>. </p>
<p>So, where is the runtime environment in the standard? Nowhere directly.
-For executing the distributed control applications modeled with IEC 61499 the standard defines the device model containing resources, the FB execution model, and the management model allowing tools to configure devices.
+For executing the distributed control applications modeled with IEC 61499 the standard defines the device model containing resources, the FB execution model, and the management model allowing tools to configure devices.
This is what a runtime environment provides.
In the next image, the idea behind decoupling the application development and the execution is presented.</p>
<img class="center" src="../../html/before4DIAC/img/iec61499Framework.png" alt="IEC 61499 framework" />
-<p>The rectangle on the top represents the system according to IEC 61499.
+<p>The rectangle on the top represents the system according to IEC 61499.
Here, you need a tool that allows creating FBs and connecting them.
Also, it should represent the devices of your system, and some method to show the part of your application which will be deployed to each device.
This is usually done on a normal computer.</p>
@@ -53,30 +58,34 @@
It receives information from the top rectangle to create the network of FBs, execute FBs, send events between FBs, and so on.
The devices normally have inputs and outputs which are accessed by the runtime environment.</p>
+<!--********************************************************************************************-->
+
<h1 id="4diacFramework">Components of Eclipse 4diac</h1>
-<p>Eclipse 4diac provides two main components for developing and executing distributed control systems compliant to the IEC 61499 standard:</p>
+<p>Eclipse 4diac provides two main components for developing and executing distributed control systems compliant to the IEC 61499 standard:</p>
<ul>
- <li><span class="inlineTitle">4diac FORTE</span> is a small portable C++ implementation of an IEC 61499 runtime environment which supports executing IEC 61499 FB networks on small embedded devices.
+ <li><span class="inlineTitle">4diac FORTE</span> is a small portable C++ implementation of an IEC 61499 runtime environment which supports executing IEC 61499 FB networks on small embedded devices.
4diac FORTE typically runs on top of a (real-time) OS.
4diac FORTE is a multi-threaded and low memory-consuming runtime environment.
It has been tested on several different operating systems, for example, Windows, Linux (i386, amd64, ppc, xScale, arm), NetOS, eCos, rcX from Hilscher, vxWorks, and freeRTOS.
</li>
- <li><span class="inlineTitle">4diac IDE:</span> is an integrated development environment written in Java, based on the Eclipse framework.
- It provides an extensible engineering environment for modeling distributed control applications compliant to the IEC 61499 standard.
- You use 4diac IDE to create FBs, applications, configure the devices and other tasks related to IEC 61499.
+ <li><span class="inlineTitle">4diac IDE:</span> is an integrated development environment written in Java, based on the Eclipse framework.
+ It provides an extensible engineering environment for modeling distributed control applications compliant to the IEC 61499 standard.
+ You use 4diac IDE to create FBs, applications, configure the devices and other tasks related to IEC 61499.
Within 4diac IDE, these results can also be deployed to devices running 4diac FORTE or other compliant run-time environments.</li>
</ul>
<p>
-Because the development of systems according to IEC 61499 and the runtime environment are decoupled, some things have to be taken into account.
+Because the development of systems according to IEC 61499 and the runtime environment are decoupled, some things have to be taken into account.
As described, you can create FBs in the IDE.
At this point, however, the runtime environment doesn't know that the FB exists nor how to execute it.
-Within 4diac IDE, you therefore have the possibility to export your created FB into 4diac FORTE code (i.e., C++ files).
-You then need to add your exported code to the source code of 4diac FORTE and compile all as explained in the <a href="../../html/installation/install.html#4DIAC-FORTE">Compile 4diac FORTE</a> section of the installation documentation.
+Within 4diac IDE, you therefore have the possibility to export your created FB into 4diac FORTE code (i.e., C++ files).
+You then need to add your exported code to the source code of 4diac FORTE and compile all as explained in the <a href="../../html/installation/install.html#4DIAC-FORTE">Compile 4diac FORTE</a> section of the installation documentation.
This is possible only for Basic and Composite Function Blocks (BFB and CFB), since both definitions are in the standard.
However, for Service Function Blocks (SIFBs) only the interface is defined.
-The internal implementation of an SIFB has to be coded manually in C++, the language 4diac FORTE is written in.</p>
+The internal implementation of an SIFB has to be coded manually in C++, the language 4diac FORTE is written in.</p>
+
+<!--********************************************************************************************-->
<h1>Human Machine Interface</h1>
@@ -85,16 +94,18 @@
4diac FORTE features a set of different communication protocols which allow to interact with such external HMI components.
Currently, the most commonly used protocols are MQTT or OPC UA.
+<!--********************************************************************************************-->
+
<h1>Where to go from here?</h1>
-<p>Now that you have a better understanding of the IEC 61499 standard, and know about the tools around Eclipse 4diac, is time to start using them.
+<p>Now that you have a better understanding of the IEC 61499 standard, and know about the tools around Eclipse 4diac, is time to start using them.
Take a look at the following page:</p>
-<p><a href="../../html/installation/install.html">Install 4diac</a></p>
+<p><a href="../../html/installation/install.html">Installation</a></p>
-<p>If you want to go back to the Start Here page, we leave you here a fast access:</p>
+<p>If you want to go back to the Where to Start page, we leave you here a fast access:</p>
-<p><a href="../../html/startHere/startHere.html">Start Here-page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/before4DIAC/iec61499.html b/documentation/html/before4DIAC/iec61499.html
index a6fc10f..c545033 100644
--- a/documentation/html/before4DIAC/iec61499.html
+++ b/documentation/html/before4DIAC/iec61499.html
@@ -2,6 +2,7 @@
<!--
Copyright (c) 2017-2018 fortiss GmbH
2018 Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -13,6 +14,8 @@
- initial API and implementation and/or initial documentation
Bianca Wiesmayr
- text improvements
+ Andrea Zoitl
+ - improved readability, updated Help ToC
-->
<html lang="en">
@@ -25,7 +28,9 @@
<h1 id="topOfPage">IEC 61499 101</h1>
-<h2 id="PLC">PLC Programming according to IEC 61131-3</h2>
+<!--********************************************************************************************-->
+
+<h2 id="PLC">PLC Programming according to IEC 61131-3</h2>
<p>A <a href="https://en.wikipedia.org/wiki/Programmable_logic_controller" target="_blank">PLC</a> is, basically, a small computer used in industry.
It has inputs and outputs for controlling various systems.
@@ -60,7 +65,9 @@
<li>Now your application runs on the PLC whenever it is switched on.</li>
</ol>
-<h3>Programming PLCs</h3>
+<!--*********************-->
+
+<h3 id="programmingPLC">Programming PLCs</h3>
<p>Even though each PLC vendor offers a specific IDE, the programming languages for PLCs were standardized in <a href="https://en.wikipedia.org/wiki/IEC_61131" target="_blank">IEC 61131-3</a>. Five different programming languages are part of the standard:</p>
@@ -96,19 +103,21 @@
Each IDE has its own way of representing the physical inputs/outputs during programming.</p>
<p>Alright! This is all you need to know about PLCs for now.
-This section dealt with the standard IEC 61131.
+This section dealt with the standard IEC 61131.
We'll get closer to 4diac in the next section where we discuss a newer standard.</p>
-<h2 id="IEC61499">IEC 61499</h2>
+<!--********************************************************************************************-->
+
+<h2 id="IEC61499">IEC 61499</h2>
<p>The industry is moving from centralized systems towards a more distributed paradigm.
Large systems with a central intelligence controlling everything are transformed to distributed systems.
In the distributed system, individual parts have intelligence and can communicate with each other smoothly, so the system acts as one whole.
IEC 61499 defines a domain-specific modeling language for developing distributed industrial control solutions.
-IEC 61499 extends IEC 61131-3 by improving the encapsulation of software components for increased re-usability, providing a vendor independent format, and simplifying support for controller-to-controller communication.
+IEC 61499 extends IEC 61131-3 by improving the encapsulation of software components for increased re-usability, providing a vendor independent format, and simplifying support for controller-to-controller communication.
Its distribution functionality and the inherent support for dynamic reconfiguration provide the required infrastructure for Industry 4.0 and industrial IoT applications.</p>
-<p>Two big problems arise with IEC 61131-3.
+<p>Two big problems arise with IEC 61131-3.
One is caused by feedback connections in the application.
In a Function Block Diagram like the one illustrated above, but with added feedback, the behavior of the system depends on the implementation of the underlying software.
Secondly, in case of combining PLCs from different vendors, the communication between them is not standardized and is normally difficult to achieve.</p>
@@ -123,11 +132,15 @@
<p>So, without going any further into the concepts, let's look at some images to understand the capabilities and new features introduced by IEC 61499.</p>
-<h2>Main parts of IEC 61499</h2>
+<!--********************************************************************************************-->
-<h3>FB Interface</h3>
+<h2 id="MainPartsOfIEC61499">Main parts of IEC 61499</h2>
-<p>The image below shows the new appearance of the FB in IEC 61499.
+<!--*********************-->
+
+<h3 id="FBInterface">FB Interface</h3>
+
+<p>The image below shows the new appearance of the FB in IEC 61499.
The function block encapsulates the desired functionality.
Again, the inputs are on the left and the outputs on the right, but now the interface differentiates events and data.
The events on the top part of the FB are shown as red lines, and the data on the lower part as blue lines.
@@ -151,6 +164,8 @@
<img class="center" src="../../html/before4DIAC/img/functionBlockInterfaces.png" alt="Interfaces of a Function Block" />
+<!--*********************-->
+
<h3 id="FBInternalSequence">FB Internal Sequence</h3>
<p>The following image shows how a FB is triggered to execute its functionality.
@@ -172,10 +187,12 @@
<p>Step 4 to 7 may be repeated several times.
Although an output event can be triggered, this need not be the case.</p>
-<h3>Distributed Application</h3>
+<!--*********************-->
+
+<h3 id="DistributedApplicaton">Distributed Application</h3>
<p>We defined now FBs and their behavior.
-In the next image, an example for an application created according to the IEC 61499 is shown.
+In the next image, an example for an application created according to the IEC 61499 is shown.
You can see that data and events are not connected to each other.</p>
<img class="center" src="../../html/before4DIAC/img/genericApplication.png" alt="A generic application in IEC61499" />
@@ -194,6 +211,8 @@
Additionally, a device can run many applications or many parts of applications at the same time.
CAUTION: A FB cannot be split to several devices.</p>
+<!--*********************-->
+
<h3 id="brokenConnection">Broken Connections</h3>
<p>While it's nice that you can split the application over several devices, the data and events need to be sent to the next device in order to maintain their flow.
@@ -211,7 +230,9 @@
<img class="center" src="../../html/before4DIAC/img/iec61499Disitribution.png" alt="Application deployment in real industry">
-<h3>Types of Function Blocks</h3>
+<!--*********************-->
+
+<h3 id="FBTypes">Types of Function Blocks</h3>
<p>IEC 61499 defines three types of FBs that you can use when developing your application:</p>
@@ -264,6 +285,8 @@
</ol>
+<!--*********************-->
+
<h3 id="iec61499ComplianceProfiles">Compliance Profiles</h3>
<p>As the standard is intended to be abstract, many "things" needed for proper execution of a system, such as communication, are not included.
@@ -271,22 +294,22 @@
The specifications are called Compliance Profiles.
An example of a Compliance Profile is the
<a href="http://www.holobloc.com/doc/ita/" target="_blank">
-IEC 61499 Compliance Profile for Feasibility Demonstrations</a> provided by
+IEC 61499 Compliance Profile for Feasibility Demonstrations</a> provided by
<a href="http://www.holobloc.com">Holobloc Inc.</a>
You can see the Compliance Profile as a way of filling the gaps due to the abstraction of the standard.</p>
-
+<!--********************************************************************************************-->
<h1>Where to go from here?</h1>
-<p>Now that you have a better understanding of the IEC 61499 standard, it's time to understand what 4diac is and which tools are related to it.
+<p>Now that you have a better understanding of the IEC 61499 standard, it's time to understand what 4diac is and which tools are related to it.
Take a look at the following page:</p>
-<p><a href="../../html/before4DIAC/4diacFramework.html">Understanding the 4diac framework</a></p>
+<p><a href="../../html/before4DIAC/4diacFramework.html">4diac Framework</a></p>
-<p>In case you'd like to return to the "Start Here"-page, we leave here a fast access for you:</p>
+<p>In case you'd like to return to the "Where to Start"-page, we leave here a fast access for you:</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/before4DIAC/img/FBRT-FORTE.png b/documentation/html/before4DIAC/img/FBRT-FORTE.png
deleted file mode 100644
index a320be4..0000000
--- a/documentation/html/before4DIAC/img/FBRT-FORTE.png
+++ /dev/null
Binary files differ
diff --git a/documentation/html/communication/communicationIndex.html b/documentation/html/communication/communicationIndex.html
index f01489a..909ed84 100644
--- a/documentation/html/communication/communicationIndex.html
+++ b/documentation/html/communication/communicationIndex.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<!--
Copyright (c) 2017 fortiss GmbH
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -10,6 +11,9 @@
Contributors:
Jose Cabral
- initial API and implementation and/or initial documentation
+ Andrea Zoitl
+ - fixed 4diac branding, corrected links, improved readability
+
-->
<html lang="en">
@@ -20,9 +24,12 @@
</head>
<body>
+
+<!--********************************************************************************************-->
+
<h1 id="topOfPage">Supported Communication Protocols</h1>
-<p>This page is intended to serve as index for communication protocols that are supported by FORTE.</p>
+<p>This page is intended to serve as index for communication protocols that are supported by 4diac FORTE.</p>
<ul id="communicationList">
<li><a href="../../html/communication/opc_ua.html">OPC UA</a></li>
@@ -38,7 +45,7 @@
<li><a href="../../html/communication/openPOWERLINK.html">openPOWERLINK</a></li>
</ul>
-<p>Go to <a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p>Go to <a href="../../html/startHere/startHere.html">Where to Start</a></p>
</body>
</html>
\ No newline at end of file
diff --git a/documentation/html/examples/examplesIndex.html b/documentation/html/examples/examplesIndex.html
index 1793e4a..94f734d 100644
--- a/documentation/html/examples/examplesIndex.html
+++ b/documentation/html/examples/examplesIndex.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<!--
Copyright (c) 2017 fortiss GmbH
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -10,6 +11,8 @@
Contributors:
Jose Cabral
- initial API and implementation and/or initial documentation
+ Andrea Zoitl
+ - fixed 4diac branding, corrected links, improved readability
-->
<html lang="en">
@@ -20,28 +23,37 @@
</head>
<body>
-<h1 id="topOfPage">4DIAC examples</h1>
-<p>This page is intended to serve as index for 4DIAC examples that help understand and develop applications. If you want to contribute, you're welcome to do it by posting in the <a href="https://www.eclipse.org/forums/index.php?t=thread&frm_id=308" target="_blank">forum</a>.</p>
+<!--********************************************************************************************-->
-<h2 id="noHardwareRequired">General examples</h2>
+<h1 id="topOfPage">4diac Examples</h1>
+
+<p>This page is intended to serve as index for 4diac examples that help understand and develop applications.
+If you want to contribute, you're welcome to do it by posting in the <a href="https://www.eclipse.org/forums/index.php?t=thread&frm_id=308" target="_blank">forum</a>.</p>
+
+<!--********************************************************************************************-->
+
+<h2 id="noHardwareRequired">General Examples</h2>
<p>For the following examples, you don't need any special hardware:</p>
<ul>
- <li><a href="../../html/examples/xplus3.html">X+3</a>: This example uses 2 devices, 1 running FORTE and the other running FBRT. It has a really simple logic that allows the user to interact by inputing a number that's sent to FORTE, which add 3 to the input and returns the result which is shown back to the user.</li>
+ <li><a href="../../html/examples/xplus3.html">X+3</a>: This example uses 2 devices, 1 running 4diac FORTE and the other running FBRT.
+ It has a really simple logic that allows the user to interact by inputing a number that's sent to FORTE, which add 3 to the input and returns the result which is shown back to the user.</li>
</ul>
-<h2 id="hardwareRequired">Specific hardware required examples</h2>
+<!--********************************************************************************************-->
+
+<h2 id="hardwareRequired">Specific Hardware Required Examples</h2>
<p>For the following examples, you'll need specific hardware to try them:</p>
<ul>
- <li><a href="../../html/examples/pidMotor.html">PID control on Lego Mindstorm Motor</a>: This example uses the Lego Mindstorm EV3. It creates a Basic Function Block that implements a PID control on the position of a motor.</li>
+ <li><a href="../../html/examples/pidMotor.html">PID control on Lego Mindstorms Motor</a>: This example uses the Lego Mindstorms EV3. It creates a Basic Function Block that implements a PID control on the position of a motor.</li>
<li><a href="../../html/examples/bbbTraficControl.html">Traffic control example running on a Beagle Bone Black</a>: This is the Traffic Control that comes with 4DIAC, but instead of running locally, the control runs on a BBB and the HMI locally. This example is important because it finds many networking issues that are solved.</li>
</ul>
-<p>Go to <a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p>Go to <a href="../../html/startHere/startHere.html">Where to Start</a></p>
</body>
</html>
\ No newline at end of file
diff --git a/documentation/html/examples/xplus3.html b/documentation/html/examples/xplus3.html
index 008ca25..2b38115 100644
--- a/documentation/html/examples/xplus3.html
+++ b/documentation/html/examples/xplus3.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<!--
Copyright (c) 2010 - 2017 TU Wien ACIN, fortiss GmbH
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -10,6 +11,8 @@
Contributors:
Carolyn Oates, Monika Wenger, Milan Vathoopan, Jose Cabral
- initial API and implementation and/or initial documentation
+ Andrea Zoitl
+ - improved readability, updated Help ToC
-->
<html lang="en">
diff --git a/documentation/html/installation/img/CMake_eCos.PNG b/documentation/html/installation/img/CMake_eCos.PNG
deleted file mode 100644
index ac94203..0000000
--- a/documentation/html/installation/img/CMake_eCos.PNG
+++ /dev/null
Binary files differ
diff --git a/documentation/html/installation/install.html b/documentation/html/installation/install.html
index f3a1bf1..d2519fa 100644
--- a/documentation/html/installation/install.html
+++ b/documentation/html/installation/install.html
@@ -2,6 +2,7 @@
<!--
Copyright (c) 2010 - 2019 TU Wien ACIN, fortiss GmbH
2019 Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -13,6 +14,8 @@
- initial API and implementation and/or initial documentation
Bianca Wiesmayr
- adapting, restructuring and extending the installation tutorial
+ Andrea Zoitl
+ - improved readability, updated Help ToC
-->
<html lang="en">
@@ -24,10 +27,10 @@
<body>
-<!--********************************************************************************************-->
-
<h1 id="topOfPage">Installation</h1>
+<!--********************************************************************************************-->
+
<h2 id="4DIAC-IDE">4diac IDE</h2>
<p>The installation of 4diac IDE is independent of the operating system.
In order to run 4diac IDE, you require at least <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java 8</a>.</p>
@@ -37,7 +40,9 @@
It already contains a Function Block library.
If you only want to use available Function Blocks, you are ready to go.</p>
-<h3>Building your own 4diac IDE from source</h3>
+<!--*********************-->
+
+<h3 id="ownIDE">Building Your own 4diac IDE From Source</h3>
<p>Running 4diac IDE from source has the advantage that you can easily keep up with the developments performed in the Git repository.
If you want to run 4diac IDE from source, follow the <a href="../../html/development/building4diac.html#buildFromSource" target="_blank">installation steps</a>.
@@ -54,9 +59,9 @@
If you want to start using 4diac IDE right away, you can skip the rest of the page and go directly to the <a href="../../html/4diacIDE/overview.html">step by step tutorial</a> or the <a href="../../html/startHere/startHere.html">Start Here-page</a>.</p>
If you want to develop your own Function Blocks or to run 4diac FORTE on control devices, you have to download and set up 4diac FORTE for the specific platform you are using as shown in the next sections.
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="ownFORTE">Building 4diac FORTE from source</h3>
+<h3 id="ownFORTE">Building 4diac FORTE From Source</h3>
<p>In order to use own Function Blocks, you will need to build 4diac FORTE from the source code.
In this section, the details for Windows and Unix-based systems are explained, since most user's first test is done on these platforms.
For other platforms, links are provided <a href="#forteOtherPlatforms">here</a>.</p>
@@ -74,9 +79,9 @@
<li> (optional) Install a development environment for C++ such as <a href="../../html/installation/eclipse.html">Eclipse</a> or <a href="../../html/installation/visualStudio.html">MS Visual Studio</a>
</ol>
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="FORTEWindows">C++ compiler for Windows</h3>
+<h4 id="FORTEWindows">C++ Compiler for Windows</h4>
<p>First of all, you need to install a C++ compiler. Download and installation are described here:</p>
<ul>
<li><a href="../../html/installation/minGW.html">Setting up MinGW-w64 (recommended) </a></li>
@@ -90,16 +95,16 @@
<a href="#FORTEsteps">back</a>
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="FORTEUnix">C++ compiler for Unix-based systems</h3>
+<h4 id="FORTEUnix">C++ Compiler for Unix-based Systems</h4>
<p>In Unix-like systems (Linux, Raspberry Pi, ...), you need to install the packages binutils, gcc, gdb and make. </p>
<a href="#FORTEsteps">back</a>
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="FORTEcmake">Install CMake</h3>
+<h4 id="FORTEcmake">Install CMake</h4>
<p>The open source software CMake allows generating a C++ project or makefile from the source code.
We will use it to generate a project to compile.
It generates specific files from the general source code for your target platform and compiler.
@@ -113,9 +118,9 @@
<p><a href="#FORTEsteps">back</a></p>
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="FORTEfolders">Create a folder tree</h3>
+<h4 id="FORTEfolders">Create a Folder Tree</h4>
<p>You need to create a folder where you save all files of your 4diac FORTE.
Again, the file path should not contain any spaces.
We recommend using a main folder <span class="specificText">C:/FORTE_dev</span> (in this tutorial, we refer to it as FORTE_FOLDER_ROOT).
@@ -128,9 +133,9 @@
<p><a href="#FORTEsteps">back</a></p>
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="generateFilesForCompiling">Generate 4diac FORTE Makefiles with CMake</h3>
+<h4 id="generateFilesForCompiling">Generate 4diac FORTE Makefiles with CMake</h4>
<p>Once you have the 4diac FORTE code on your computer, you must generate Makefiles to be compiled.
Why?
@@ -188,9 +193,9 @@
<a href="#FORTEsteps">back</a>
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="FORTEcompile">Compile the project</h3>
+<h4 id="FORTEcompile">Compile the Project</h4>
<p>The last step is compiling the generated project.
It generates the 4diac FORTE executable.
@@ -216,9 +221,9 @@
<a href="#FORTEsteps">back</a>
-<!--********************************************************************************************-->
+<!--*********************-->
-<h3 id="externalModules">Add external modules</h3>
+<h4 id="externalModules">Add External Modules</h4>
<p>Let's see how to add your own Function Blocks to 4diac FORTE.
When you create and export your own types, you need to add them to your compilation.
@@ -260,7 +265,7 @@
<!--********************************************************************************************-->
-<h2 id="forteOtherPlatforms">Building 4diac FORTE for other platforms</h2>
+<h2 id="forteOtherPlatforms">Building 4diac FORTE for Other Platforms</h2>
<ul>
<li><a href="../../html/installation/raspi.html">Setting up 4diac FORTE for RaspberryPi</a></li>
<li><a href="../../html/installation/raspberrySPS.html">Setting up 4diac FORTE for RaspberryPi SPS</a></li>
@@ -274,13 +279,13 @@
<h1 id="whereToGoFromHere">Where to go from here?</h1>
<p>Now that you installed the required tools, it's time to start using them.
-Take a look at the following page:</p>
+Take a look at the tutorials - A step by step guide:</p>
-<p><a href="../../html/4diacIDE/overview.html">Step by step tutorial</a></p>
+<p><a href="../../html/4diacIDE/overview.html">Step 0 - 4diac IDE Overview</a></p>
-<p>If you want to go back to the Start Here page, we leave you here a fast access:</p>
+<p>If you want to go back to the Where to Start page, we leave you here a fast access:</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/installation/legoMindstormEv3.html b/documentation/html/installation/legoMindstormEv3.html
index 41213f8..f126ed0 100644
--- a/documentation/html/installation/legoMindstormEv3.html
+++ b/documentation/html/installation/legoMindstormEv3.html
@@ -2,6 +2,7 @@
<!--
Copyright (c) 2016-2019 fortiss GmbH
2019 Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -13,6 +14,8 @@
- initial API and implementation and/or initial documentation
Bianca Wiesmayr
- adapting, restructuring and extending the installation tutorial
+ Andrea Zoitl
+ - fixed 4diac branding, corrected links, improved readability
-->
<html lang="en">
@@ -23,27 +26,34 @@
</head>
<body>
+<!--********************************************************************************************-->
+
<h1 id="topOfPage">Using Eclipse 4diac with a Lego Mindstorm EV3</h1>
- <p>This page is for compiling 4diac FORTE for the Lego Mindstorm EV3.
+ <p>This page is for compiling 4diac FORTE for the Lego Mindstorm EV3.
For information about the parameters to be used, go to the <a href="../../html/parameters/parameters.html#ev3">Parameters</a> page</p>
+<!--********************************************************************************************-->
+
<h2 id="ev3_introduction">About the Lego Mindstorm EV3 and ev3dev</h2>
<p>Lego Mindstorm is a series of kits from Lego, whose flexibility allows constructing different systems which can be controlled and sensed by the user, using the inputs and outputs.
- This document focuses on how to implement 4diac FORTE on the specific model Lego Mindstorm EV3(LMSEV3). To know more about the LMSEV3 you can visit its Wikipedia <a href="https://en.wikipedia.org/wiki/Lego_Mindstorms_EV3" target="_blank">page</a>.</p>
+ This document focuses on how to implement 4diac FORTE on the specific model Lego Mindstorm EV3(LMSEV3).
+ To know more about the LMSEV3 you can visit its Wikipedia <a href="https://en.wikipedia.org/wiki/Lego_Mindstorms_EV3" target="_blank">page</a>.</p>
<p>The LMSEV3 comes with its own software, but work has been done to implement a Linux distribution that can run on it.
The ev3dev is a Debian Linux-based operating system that can run on the LMSEV3.
More information about capabilities of ev3dev can be found on its <a href="http://www.ev3dev.org/" target="_blank">website</a>.
- The procedure to make ev3dev run in a LMSEV3 is similar to running a Linux operating system on a Raspberry Pi. The best and faster way to implement ev3dev in a LMSEV3 is following the instruction on its <a href="http://www.ev3dev.org/docs/getting-started/" target="_blank">getting started page</a>. Basically what must be done is to download the ev3dev image and write it on a mini SD card (yes, without an mini SD card you won't be able to run it), insert it in the LMSEV3 and boot it. You'll have to set the network configuration to connect to it.</p>
+ The procedure to make ev3dev run in a LMSEV3 is similar to running a Linux operating system on a Raspberry Pi.
+ The best and faster way to implement ev3dev in a LMSEV3 is following the instruction on its <a href="http://www.ev3dev.org/docs/getting-started/" target="_blank">getting started page</a>.
+ Basically what must be done is to download the ev3dev image and write it on a mini SD card (yes, without an mini SD card you won't be able to run it), insert it in the LMSEV3 and boot it. You'll have to set the network configuration to connect to it.</p>
<p>So, what will you find in this special Linux version for LMSEV3?
First, you'll find a menu in the screen of the LMSEV3 that can be accessed using the buttons.
And secondly, you will be able to connect using SSH the same way you would do it on a Raspberry Pi, the BeagleBone Black or other Linux-based operating system and go through the folder system of the ev3dev that is prepared for the LMSEV3.
- To access all the I/O of the LMSEV3 (including the buttons, LED and the screen) there are specific explanations in <a href="http://www.ev3dev.org/docs/tutorials/" target="_blank">this</a> ev3dev webpage, but 4diac FORTE takes care of accessing them and you as user will only work with normal I/O Function Blocks as IX, QX, IW, QW and so on.</p>
+ To access all the I/O of the LMSEV3 (including the buttons, LED and the screen) there are specific explanations in <a href="http://www.ev3dev.org/docs/tutorials/" target="_blank">this</a> ev3dev webpage, but 4diac FORTE takes care of accessing them and you as user will only work with normal I/O Function Blocks as IX, QX, IW, QW and so on.</p>
- <p> With the LMSEV3 running the ev3dev and it being accessible through SSH, the next thing to do is to install and run 4diac FORTE in it.
+ <p> With the LMSEV3 running the ev3dev and it being accessible through SSH, the next thing to do is to install and run 4diac FORTE in it.
Similar to other platforms, you have two possibilities.
The first one is to transfer
the source code to the ev3dev (using <a href="https://winscp.net/eng/download.php" target="_blank">WinSCP</a> in Windows or the "scp" command in Linux), installing the compiler and other necessary tools (C++ compiler and CMake, mainly) and compiling it directly in the LMSEV3.
@@ -62,30 +72,30 @@
sudo apt-get install cmake</div>
<p>This will install the necessary tools. Then, you just need to go to the
- 4diac FORTE folder you transferred, and execute: </p>
+ 4diac FORTE folder you transferred, and execute: </p>
<div class="code">. setup_posix.sh</div>
<p>which is going to setup everything in the bin/posix folder.
Next, you should go into the bin/posix folder and simply execute "make" to start the compilation.</p>
- <p> Remember, when you create your own FB, you should add these to the 4diac FORTE folder, adjust the CMakefiles.txt and compile again.
+ <p> Remember, when you create your own FB, you should add these to the 4diac FORTE folder, adjust the CMakefiles.txt and compile again.
In the <a href="../../html/installation/install.html#ownFORTE">example</a> section, it is explained how to do this.</p>
<h1 id="whereToGoFromHere">Where to go from here?</h1>
-<p>If you want to build a 4diac FORTE, here is a quick link back:</p>
+<p>If you want to build a 4diac FORTE, here is a quick link back:</p>
<p><a href="../../html/installation/install.html">Install Eclipse 4diac</a></p>
-<p>After you installed all required tools, it's time to start using them. Take a look at the following page:</p>
+<p>After you installed all required tools, it's time to start using them. Take a look at the tutorials - a step by step guide:</p>
-<p><a href="../../html/4diacIDE/overview.html">Step by step tutorial</a></p>
+<p><a href="../../html/4diacIDE/overview.html">Step 0 - 4diac IDE Overview</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/installation/mindstorms.html b/documentation/html/installation/mindstorms.html
deleted file mode 100644
index 830f906..0000000
--- a/documentation/html/installation/mindstorms.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML>
-<!--
- Copyright (c) 2010 - 2019 TU Wien ACIN, fortiss GmbH
- 2019 Johannes Kepler University Linz
-
- All rights reserved. This program and the accompanying materials
- are made available under the terms of the Eclipse Public License v1.0
- which accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html
-
- Contributors:
- Carolyn Oates, Alois Zoitl, Monika Wenger, Jose Cabral
- - initial API and implementation and/or initial documentation
- Bianca Wiesmayr
- - adapting, restructuring and extending the installation tutorial
--->
-
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Building 4diac FORTE for Lego Mindstorms</title>
- <link rel="stylesheet" type="text/css" href="../help.css">
-</head>
-
-<body>
-
-<h1 id="topOfPage">Building 4diac FORTE for Lego Mindstorms</h1>
-<p><a href="http://www.lego.com/" target="_blank">LEGO</a> is a trademark name and Mindstorms NXT is a registered trademark from the company LEGO.
-This tutorial uses <a href="http://ecos.sourceware.org/" target="_blank">eCos</a> real time operating system (RTOS) and 4diac FORTE on the ARM7 processor of the LEGO Mindstorms NXT Brick.
-The system of the <a href="../../html/4diacIDE/use4diacLocally.html">Blink Tutorial</a> can used with Lego Mindstorms (LMS) as a first test example. If you do not already use Eclipse with Cygwin please consider to get it, as it is described <a href="../../html/installation/cygwin.html">here</a>.</p>
-
-<ol>
- <li>For Cygwin, consider the <a href="http://ecos.sourceware.org/cygwin.html" target="_blank">eCos installation instructions.</a></li>
- <li>Install the <a href="http://ecos.sourceware.org/getstart.html" target="_blank">GNU ARM toolchain</a></li>
- <li>Within the FORTE source create the directories <span class="folderLocation">bin/lego</span> and copy the eCos <span class="folderLocation">include</span> and <span class="folderLocation">lib</span> directories into it.</li>
- <li>Open CMake-GUI, for source directory enter the FORTE project directory, for build directory, enter the previously created directory <span class="folderLocation">.../bin/lego</span> and press the <span class="button4diac">Configure</span> button.</li>
- <li>From the dropdown choose: <span class="specificText">UNIX Makefiles</span> and select <span class="specificText">Specify options for cross-compiling</span> then press the <span class="button4diac">Next</span> button</li>
- <li>Specify options for cross-compiling:
- <ul>
- <li>Operation System: eCos</li>
- <li>Compilers for C: <span class="specificText">arm-elf-gcc</span> (need to include path if not installed under cygwin)</li>
- <li>Compilers for C++: <span class="specificText">arm-elf-g++</span> (need to include path if not installed under cygwin)</li>
- <li>insert the path to the target <span class="folderLocation">.../bin/lego</span></li>
- </ul>
- <div class="code">INCLUDE(CMakeForceCompiler)
-
-# this one is important
-SET(CMAKE_SYSTEM_NAME eCos)
-
-# specify the cross compiler
-CMAKE_FORCE_C_COMPILER(arm-elf-gcc GNU)
-CMAKE_FORCE_CXX_COMPILER(arm-elf-g++ GNU)
-
-# where is the target environment
-SET(CMAKE_FIND_ROOT_PATH C:/.../FORTE/bin/lms)
-
-# search for programs in the build host directories
-SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-
-# for libraries and headers in the target directories
-SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)</div>
- <img src="../../html/installation/img/CMake_eCos.PNG" alt="CMake for eCos"/>
- </li>
- <li>press the <span class="button4diac">Configure</span> button, check the following options an press the <span class="button4diac">Generate</span> button
- <div class="code">FORTE_ARCHITECTURE_LMS #check
-FORTE_COM_ETH #uncheck
-FORTE_MODULE_xxx #check as needed
-FORTE_USE_64BIT_DATATYPES #uncheck since not available in LMS
-FORTE_USE_LREAL_DATATYPE #uncheck since not available in LMS
-FORTE_USE_REAL_DATATYPE #uncheck since not available in LMS</div></li>
- <li> in Eclipse make all (Note: under cygwin in <span class="folderLocation">lms/bin</span> directory <span class="specificText">make</span> forte also works)</li>
- <li>Generate <span class="fileLocation">forte.bin</span> separately or as part of flashing bat file <span class="specificText">arm-elf-objcopy --gap-fill 0xFF -O binary forte.elf forte.bin</span> notice now <span class="specificText">.elf</span> before no extension</li>
- <li>Ready to flash and test on LMS </li>
-</ol>
-
-<h1 id="whereToGoFromHere">Where to go from here?</h1>
-
-<p>Now that you installed the required tools, it's time to start using them. Take a look at the following page:</p>
-
-<p><a href="../../html/4diacIDE/overview.html">Step by step tutorial</a></p>
-
-<p>If you want to compile FORTE for another platform or want to know more about that, here's a quick link back:</p>
-
-<p><a href="../../html/installation/install.html">Install 4DIAC</a></p>
-
-<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
-
-<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/documentation/html/installation/raspberrySPS.html b/documentation/html/installation/raspberrySPS.html
index b200a3d..b0502bb 100644
--- a/documentation/html/installation/raspberrySPS.html
+++ b/documentation/html/installation/raspberrySPS.html
@@ -18,23 +18,28 @@
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Building 4diac FORTE on Raspberry-SPS</title>
+ <title>Building 4diac FORTE on Raspberry-SPS</title>
<link rel="stylesheet" type="text/css" href="../help.css">
</head>
<body>
- <h1 id="topOfPage">Building 4diac FORTE on Raspberry-SPS</h1>
-
+
+<!--********************************************************************************************-->
+
+ <h1 id="topOfPage">Building 4diac FORTE on Raspberry-SPS</h1>
+<!--***************-->
<h2>Introduction</h2>
<p>The <a href="http://raspberry-sps.de/" target="_blank">Raspberry-SPS</a> consists of a Raspberry-PI which is a low-cost embedded system with an ARM processor @700Mhz and 512MB RAM and additional modules such as digital and analog modules.
- This tutorial shows how to cross-compile 4diac FORTE for the Raspberry-SPS.
- For a general introduction to building 4diac FORTE, see the <a href="../../html/installation/install.html">installation tutorial</a>.</p>
-
+ This tutorial shows how to cross-compile 4diac FORTE for the Raspberry-SPS.
+ For a general introduction to building 4diac FORTE, see the <a href="../../html/installation/install.html">installation tutorial</a>.</p>
+<!--***************-->
<h2 id="preparation">Preparation</h2>
<ol>
- <li>Download the proper toolchain for your operating system where you plan to build FORTE 4diac <a href="https://releases.linaro.org/archive/15.06/components/toolchain/binaries/" target="_blank"> gcc-linaro-arm-linux-gnueabihf</a>. The <span class="specificText">path to your downloaded toolchain has to be short</span> e.g., <span class="inlineCode">C:/toolchain</span> for Windows.</li>
+ <li>Download the proper toolchain for your operating system where you plan to build 4diac FORTE <a href="https://releases.linaro.org/archive/15.06/components/toolchain/binaries/" target="_blank"> gcc-linaro-arm-linux-gnueabihf</a>.
+ The <span class="specificText">path to your downloaded toolchain has to be short</span> e.g., <span class="inlineCode">C:/toolchain</span> for Windows.</li>
- <li>Start CMake-gui, choose the 4diac FORTE source code folder and build binaries, e.g. <span class="folderLocation">forte/bin/raspberrySPS</span> and press the configure button. A new window will be opened. As generator, choose <span class="specificText">Unix Makefiles</span> and check the <span class="specificText">Specify options for cross compiling</span> radio button.
+ <li>Start CMake-gui, choose the 4diac FORTE source code folder and build binaries, e.g. <span class="folderLocation">forte/bin/raspberrySPS</span> and press the configure button.
+ A new window will be opened. As generator, choose <span class="specificText">Unix Makefiles</span> and check the <span class="specificText">Specify options for cross compiling</span> radio button.
<img src="../../html/installation/img/raspberrySPS_configure.png" alt="configure cross compiling for Raspberry-SPS"/>
</li>
@@ -47,28 +52,30 @@
<li>Press the <span class="button4diac">Configure</span> button until nothing remains red. Afterwards press the <span class="button4diac">Generate</span> button.</li>
<li>The desired make files have been generated.
- Execute make within a console and find the 4diac FORTE executable in <span class="folderLocation">forte/bin/raspberrySPS/src</span>
+ Execute make within a console and find the 4diac FORTE executable in <span class="folderLocation">forte/bin/raspberrySPS/src</span>
<div class="code">$ cd forte/bin/raspberrySPS
$ make</div>
</li>
- <li>Copy the 4diac FORTE executable to the Raspberry-SPS and start 4diac FORTE with:
+ <li>Copy the 4diac FORTE executable to the Raspberry-SPS and start 4diac FORTE with:
<div class="code">$ ./forte</div></li>
</ol>
+
+<!--********************************************************************************************-->
<h1 id="whereToGoFromHere">Where to go from here?</h1>
-<p>If you want to build a 4diac FORTE, here is a quick link back:</p>
+<p>If you want to build a 4diac FORTE, here is a quick link back:</p>
<p><a href="../../html/installation/install.html">Install Eclipse 4diac</a></p>
-<p>After you installed all required tools, it's time to start using them. Take a look at the following page:</p>
+<p>After you installed all required tools, it's time to start using them. Take a look at the following tutorials:</p>
-<p><a href="../../html/4diacIDE/overview.html">Step by step tutorial</a></p>
+<p><a href="../../html/4diacIDE/overview.html">Step 0 - 4diac IDE Overview</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/installation/raspi.html b/documentation/html/installation/raspi.html
index 12837f5..97ee6d5 100644
--- a/documentation/html/installation/raspi.html
+++ b/documentation/html/installation/raspi.html
@@ -2,6 +2,7 @@
<!--
Copyright (c) 2014-2019 fortiss GmbH
2019 Johannes Kepler University Linz
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -13,19 +14,24 @@
- initial API and implementation and/or initial documentation
Bianca Wiesmayr
- adapting, restructuring and extending the installation tutorial
+ Andrea Zoitl
+ - fixed 4diac branding, corrected links, improved readability
+
-->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Building 4diac FORTE on Raspberry Pi</title>
+ <title>Building 4diac FORTE on Raspberry Pi</title>
<link rel="stylesheet" type="text/css" href="../help.css">
</head>
<body>
+<!--********************************************************************************************-->
+
<h1 id="topOfPage">Introduction</h1>
- <p>This guide is for compiling FORTE for the Raspberry Pi.
+ <p>This guide is for compiling FORTE for the Raspberry Pi.
For information about the parameters to be used, go to <a href="../../html/parameters/parameters.html#sysfs">Parameters</a>.</p>
<p><a href="https://www.raspberrypi.org/" target="_blank">Raspberry Pi</a> (RPI) is one of the most famous low-cost embedded systems.
@@ -33,10 +39,12 @@
It has a 1.2GHz 64-bit quad-core ARMv8 CPU, 1 GB RAM and several I/O options, among them a 40 pin header.
The operating system is loaded from a SD card, so it can support many OS.
The most popular one is the Debian-based Raspbian.
- 4diac FORTE previously used the <span class="specificText">wiringPi</span> library, but it has changed to use the sysFs virtual file system.</p>
+ 4diac FORTE previously used the <span class="specificText">wiringPi</span> library, but it has changed to use the sysFs virtual file system.</p>
- <p>This tutorial explains first how to compile 4diac FORTE in the RPI, or even cross-compile, and how to easily use the I/O Function Blocks in 4diac FORTE to control the 40 pin
+ <p>This tutorial explains first how to compile 4diac FORTE in the RPI, or even cross-compile, and how to easily use the I/O Function Blocks in 4diac FORTE to control the 40 pin
header.</p>
+
+<!--***************-->
<h2>Getting the RPI ready</h2>
@@ -46,27 +54,33 @@
meaning that you connect through ssh using the Ethernet or a usb-wifi connector.
There are plenty of tutorials on how to access the RPI, so this tutorial assumes that you have access
to the command line of the RPI, through ssh or directly on it using the GUI, and that the RPI has Internet access.</p>
+
+<!--********************************************************************************************-->
- <h1 id="onRPI">Building 4diac FORTE on the RPI</h1>
+ <h1 id="onRPI">Building 4diac FORTE on the RPI</h1>
+
+<!--***************-->
<h2 id="preparation">Preparation</h2>
<ol>
<li>Install the additional software needed on your RPI.
<ul>
- <li>Git: 4diac FORTE is stored as a Git repository on the Eclipse server.</li>
+ <li>Git: 4diac FORTE is stored as a Git repository on the Eclipse server.</li>
<li>The building tools: cmake, make, gcc, g++</li>
</ul>
<div class="code">$ sudo apt-get install git cmake make gcc g++</div>
</li>
</ol>
+
+<!--***************-->
<h2 id="building">Building</h2>
<ol>
- <li>Check out 4diac FORTE from the Git repository in your home directory.
+ <li>Check out 4diac FORTE from the Git repository in your home directory.
<div class="code">$ cd ~
$ git clone https://git.eclipse.org/r/4diac/org.eclipse.4diac.forte</div>
</li>
- <li>Prepare the 4diac FORTE project structure for the Posix architecture.
+ <li>Prepare the 4diac FORTE project structure for the Posix architecture.
<div class="code">$ cd org.eclipse.4diac.forte
$ chmod +x setup_posix.sh</div>
<p>You will need to add the SysFs module to the compilation. In order to that, you will need to change the <span class="fileLocation">setup_posix.sh</span> file, using your preferred text editor.
@@ -75,21 +89,25 @@
This will enable the interface to the 40 pin header of the RPI.
Save the file, exit the editor and execute:</p>
<div class="code">$ ./setup_posix.sh</div>
- <p>When no error occurs, the command creates a folder in bin/posix where all the files to compile FORTE are stored.
+ <p>When no error occurs, the command creates a folder in bin/posix where all the files to compile 4diac FORTE are stored.
Access the folder if not already there.</p>
</li>
<li>Execute "make", which will start the compilation.
<div class="code">$ make</div>
</li>
</ol>
+
+<!--********************************************************************************************-->
<h1 id="crossCompiling">Cross-compiling for the RPI</h1>
- <p>The RPI is a very powerful computer, but when developing a project, one sometimes has to compile FORTE many times.
+ <p>The RPI is a very powerful computer, but when developing a project, one sometimes has to compile 4diac FORTE many times.
As the RPI is slow compared to the power of a desktop computer, cross-compiling is useful.
It allows to compile on your desktop machine, and then send the executable to the RPI.</p>
- <p>You will need the 4diac FORTE source code, and the same additional tools used in the preparation, except CMake because CMake-GUI will be needed in this case.</p>
+ <p>You will need the 4diac FORTE source code, and the same additional tools used in the preparation, except CMake because CMake-GUI will be needed in this case.</p>
+
+<!--***************-->
<h2 id="crossCompilingLinux">Cross-compiling using Linux</h2>
<ol>
@@ -108,7 +126,7 @@
</ul>
<li>Open CMake-GUI and complete as shown in the image
<ol>
- <li>Set the FORTE source path where you cloned the Git repository.</li>
+ <li>Set the 4diac FORTE source path where you cloned the Git repository.</li>
<li>Set path for binaries where you want to create the executable.
Normally, <span class="folderLocation">bin/raspPi is used.</span></li>
<li>Press <span class="button4diac">Configure</span></li>
@@ -141,7 +159,7 @@
<p><img src="../../html/installation/img/raspiCrossLinux3.png" alt="Select cross-compiling tools."/></p>
</li>
<li>Configure the compilation
- <p>A list with all variables of 4diac FORTE in red should be shown in CMake as the picture below.</p>
+ <p>A list with all variables of 4diac FORTE in red should be shown in CMake as the picture below.</p>
<ol>
<li>Choose your Eclipse version if you selected it in step 3.1. Otherwise, it can be left as it is.</li>
<li>Set the FORTE_ARCHITECTURE variable to Posix</li>
@@ -149,7 +167,7 @@
<li>Click <span class="button4diac">Configure</span> and the variables that need revision will appear again in red and the rest in white.
Check these variables and press <span class="button4diac">Configure</span> until no variable is shown in red.</li>
</ol>
- <p><img src="../../html/installation/img/raspiCrossLinux4.png" alt="Configure FORTE compilation."/></p>
+ <p><img src="../../html/installation/img/raspiCrossLinux4.png" alt="Configure 4diac FORTE compilation."/></p>
</li>
<li>Generate files
<ul>
@@ -157,7 +175,7 @@
</ul>
<p><img src="../../html/installation/img/raspiCrossLinux5.png" alt="Generate the makefiles."/></p>
</li>
- <li>Build forte
+ <li>Build 4diac FORTE
<ul>
<li>Go to the recently generated folder and execute make (or build it as you normally do)
<div class="code">$ cd bin/raspPi
@@ -166,6 +184,8 @@
</ul>
</li>
</ol>
+
+<!--***************-->
<h2 id="crossCompilingWindows">Cross-compiling using Windows</h2>
<ol>
@@ -181,19 +201,21 @@
</li>
</ol>
+<!--********************************************************************************************-->
+
<h1 id="whereToGoFromHere">Where to go from here?</h1>
-<p>Now that you installed the required tools, it's time to start using them. Take a look at the following page:</p>
+<p>Now that you installed the required tools, it's time to start using them. Take a look at the following tutorials:</p>
-<p><a href="../../html/4diacIDE/overview.html">Step by step tutorial</a></p>
+<p><a href="../../html/4diacIDE/overview.html">Step 0 - 4diac IDE Overview</a></p>
-<p>If you want to compile FORTE for another platform or want to know more about that, here's a quick link back:</p>
+<p>If you want to compile 4diac FORTE for another platform or want to know more about that, here's a quick link back:</p>
<p><a href="../../html/installation/install.html">Install Eclipse 4diac</a></p>
<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>
<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
diff --git a/documentation/html/parameters/parameters.html b/documentation/html/parameters/parameters.html
index 76d04d4..d3ec577 100644
--- a/documentation/html/parameters/parameters.html
+++ b/documentation/html/parameters/parameters.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<!--
Copyright (c) 2016 - 2017 fortiss GmbH
+ 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -10,80 +11,195 @@
Contributors:
Jose Cabral, Monika Wenger
- initial API and implementation and/or initial documentation
+ Andrea Zoitl
+ - fixed 4diac branding, corrected links, improved readability
-->
<html lang="en">
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Parameters for different platforms</title>
- <link rel="stylesheet" type="text/css" href="../help.css">
- </head>
- <body>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Parameters for different platforms</title>
+<link rel="stylesheet" type="text/css" href="../help.css">
+</head>
+<body>
- <p id="topOfPage">Using QX, IX and similar allows you to access the inputs and outputs of a supported hardware. Of course, in the case of a normal computer, this doesn't apply since it doesn't have I/O that you can control direcly like you do on a PLC (normally boolean). In order to access the I/O of a hardware, you need to set the PARAMS data input to a corresponding value to select which I/O to access. FORTE should be compiled with the corresponding module, that can be selected in CMake. You find here the values to be set to PARAMS for the following supported platforms:</p>
+ <p id="topOfPage">Using QX, IX and similar allows you to access the
+ inputs and outputs of a supported hardware. Of course, in the case of
+ a normal computer, this doesn't apply since it doesn't have I/O that
+ you can control directly like you do on a PLC (normally boolean). In
+ order to access the I/O of a hardware, you need to set the PARAMS data
+ input to a corresponding value to select which I/O to access. 4diac FORTE
+ should be compiled with the corresponding module, that can be selected
+ in CMake. You find here the values to be set to PARAMS for the
+ following supported platforms:</p>
- <ol>
- <li><a href="#sysfs">SysFs (Raspberry Pi, Beagle Bone Black and similar boards)</a></li>
- <li><a href="#rpi-sps">Raspberry PI-SPS</a></li>
- <li><a href="#odroid">Odroid</a></li>
- <li><a href="#piface">PiFace 2</a></li>
- <li><a href="#umic">uMIC 200</a></li>
- <li><a href="#mlpi">MLPI (for bosch rexroth PLC)</a></li>
- <li><a href="#ev3">Lego Mindstorm EV3</a></li>
- </ol>
+ <ol>
+ <li><a href="#sysfs">SysFs (Raspberry Pi, Beagle Bone Black
+ and Similar Boards)</a></li>
+ <li><a href="#rpi-sps">Raspberry-SPS</a></li>
+ <li><a href="#odroid">Odroid</a></li>
+ <li><a href="#piface">PiFace Digital 2</a></li>
+ <li><a href="#umic">µMIC.200</a></li>
+ <li><a href="#mlpi">Bosch Rexroth PLC (MLPI)</a></li>
+ <li><a href="#ev3">Lego Mindstorms EV3</a></li>
+ </ol>
- <h1 id="sysfs">SysFs (Raspberry Pi, Beagle Bone Black and similar boards)</h1>
-
- <p>The following picture shows an example application from the <a href = "../4diacIDE/use4diacLocally.html">Blinking tutorial</a> which is extended with IX and QX function blocks. The extended application periodically toggles on pin number 8. It can be started and stopped via pin number 2. You can connect an LED to obtain a blinking light.</p>
-
- <img src="../../html/parameters/img/ixqx_fb_network.png" alt="Simple blinking application with an IX and QX function block."/>
-
- <p>The <span class="specificText">PARAMS</span> data input in the IX and QX FB define which pin should be used. The application also contains E_CYCLE and E_SWITCH function blocks (which are not in the Blinking tutorial). The first one generates an event every 500 ms. This way the IX block will check the hardware input every half second if the signal has changed. E_SWITCH_0 starts or stops the action, depending on the <span class="specificText">IN</span> data output of the IX function block.</p>
-
- <p>Remember that if you have any problem and cannot find the solution in the documentation, visit the <a href="https://www.eclipse.org/forums/index.php?t=thread&frm_id=308" target="_blank">forum</a>.</p>
+<!--********************************************************************************************-->
- <p><a href="#topOfPage">Go to top</a></p>
+ <h1 id="sysfs">SysFs (Raspberry Pi, Beagle Bone Black and Similar
+ Boards)</h1>
- <h1 id="rpi-sps">Raspberry PI-SPS</h1>
- <p>To use the digital and analog IOs of the Raspberry-SPS please use the IX and QX function blocks for one bit as well as the QW and IW function blocks for word which are provided in the io folder of the tool library. Configure your 4DIAC Device with the correct IP and mapp an application on it as it is illustrated within the following image.</p>
- <img src="../../html/parameters/img/raspberrySPS_example.png" alt="Raspberry-SPS example application"/>
- <p>The structure of the PARAMS data input ports is <span class="specificText">busChannel.deviceNumber.portNumber</span>. The Raspberry-SPS has two I2C bus channels. The number of the different devices is listed in the following table. The port number always starts at 0.</p>
- <table>
- <tr><th>Device Type</th><th>Device Number</th></tr>
- <tr><td>8 digital inputs</td><td>56</td></tr>
- <tr><td>8 digital outputs</td><td>32</td></tr>
- <tr><td>5 analog inputs</td><td>8</td></tr>
- <tr><td>4 analog inputs</td><td>88</td></tr>
- </table>
+ <p>
+ The following picture shows an example application from the <a
+ href="../4diacIDE/use4diacLocally.html">Blinking tutorial</a> which
+ is extended with IX and QX function blocks. The extended application
+ periodically toggles on pin number 8. It can be started and stopped
+ via pin number 2. You can connect an LED to obtain a blinking light.
+ </p>
- <p><a href="#topOfPage">Go to top</a></p>
+ <img src="../../html/parameters/img/ixqx_fb_network.png"
+ alt="Simple blinking application with an IX and QX function block." />
+
+ <p>
+ The <span class="specificText">PARAMS</span> data input in the IX and
+ QX FB define which pin should be used. The application also contains
+ E_CYCLE and E_SWITCH function blocks (which are not in the Blinking
+ tutorial). The first one generates an event every 500 ms. This way the
+ IX block will check the hardware input every half second if the signal
+ has changed. E_SWITCH_0 starts or stops the action, depending on the <span
+ class="specificText">IN</span> data output of the IX function block.
+ </p>
+
+ <p>
+ Remember that if you have any problem and cannot find the solution in
+ the documentation, visit the <a
+ href="https://www.eclipse.org/forums/index.php?t=thread&frm_id=308"
+ target="_blank">forum</a>.
+ </p>
+
+ <p>
+ <a href="#topOfPage">Go to top</a>
+ </p>
+
+<!--********************************************************************************************-->
+
+ <h1 id="rpi-sps">Raspberry-SPS</h1>
+ <p>To use the digital and analog IOs of the Raspberry-SPS please
+ use the IX and QX function blocks for one bit as well as the QW and IW
+ function blocks for word which are provided in the io folder of the
+ tool library. Configure your 4diac Device with the correct IP and mapp
+ an application on it as it is illustrated within the following image.</p>
+ <img src="../../html/parameters/img/raspberrySPS_example.png"
+ alt="Raspberry-SPS example application" />
+ <p>
+ The structure of the PARAMS data input ports is <span
+ class="specificText">busChannel.deviceNumber.portNumber</span>. The
+ Raspberry-SPS has two I2C bus channels. The number of the different
+ devices is listed in the following table. The port number always
+ starts at 0.
+ </p>
+ <table>
+ <tr>
+ <th>Device Type</th>
+ <th>Device Number</th>
+ </tr>
+ <tr>
+ <td>8 digital inputs</td>
+ <td>56</td>
+ </tr>
+ <tr>
+ <td>8 digital outputs</td>
+ <td>32</td>
+ </tr>
+ <tr>
+ <td>5 analog inputs</td>
+ <td>8</td>
+ </tr>
+ <tr>
+ <td>4 analog inputs</td>
+ <td>88</td>
+ </tr>
+ </table>
+
+ <p>
+ <a href="#topOfPage">Go to top</a>
+ </p>
+
+<!--********************************************************************************************-->
<h1 id="odroid">Odroid</h1>
- <p><a href="https://wiki.odroid.com/" target="_blank">Odroid</a> is an embedded board that you can say it's a more powerful Rapsberry Pi, and it has analog inputs. In order to use the I/O of this board. It works similar to the Raspberry Pi, so you can use QX and IX with the number corresponding to the pin number, and to access the Analog Inputs, you should use IW. <span class="specificText">0</span> and <span class="specificText">1</span> should be set to PARAMS of IW in order to access the <span class="specificText">first</span> and <span class="specificText">second</span> analog inputs respectively. </p>
+ <p>
+ <a href="https://wiki.odroid.com/" target="_blank">Odroid</a> is an
+ embedded board that you can say it's a more powerful Rapsberry Pi, and
+ it has analog inputs. In order to use the I/O of this board. It works
+ similar to the Raspberry Pi, so you can use QX and IX with the number
+ corresponding to the pin number, and to access the Analog Inputs, you
+ should use IW. <span class="specificText">0</span> and <span
+ class="specificText">1</span> should be set to PARAMS of IW in order
+ to access the <span class="specificText">first</span> and <span
+ class="specificText">second</span> analog inputs respectively.
+ </p>
- <img src="../../html/parameters/img/odroidFBs.png" alt="FBs example for Odroid platform">
+ <img src="../../html/parameters/img/odroidFBs.png"
+ alt="FBs example for Odroid platform">
- <p><a href="#topOfPage">Go to top</a></p>
+ <p>
+ <a href="#topOfPage">Go to top</a>
+ </p>
- <h1 id="piface">PiFace 2</h1>
+<!--********************************************************************************************-->
- <p>The <a href="http://www.piface.org.uk/products/piface_digital_2/" target="_blank">PiFace 2</a> is a hat for the Raspberry Pi with Digital I/Os. You can control the Inputs and Outputs from 0 to 7 just using the right number, similart to the Raspberry Pi.</p>
+ <h1 id="piface">PiFace Digital 2</h1>
- <p class="attention"><span class="inlineTitle">Attention</span>: The PiFace was not tested, so if you find a problem or want to add support to the other features of the board, please file a <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=4DIAC&query_format=advanced&list_id=16476860" target="_blank">bug</a>.</p>
+ <p>
+ The <a href="http://www.piface.org.uk/products/piface_digital_2/"
+ target="_blank">PiFace 2</a> is a hat for the Raspberry Pi with
+ Digital I/Os. You can control the Inputs and Outputs from 0 to 7 just
+ using the right number, similart to the Raspberry Pi.
+ </p>
- <p><a href="#topOfPage">Go to top</a></p>
+ <p class="attention">
+ <span class="inlineTitle">Attention</span>: The PiFace was not tested,
+ so if you find a problem or want to add support to the other features
+ of the board, please file a <a
+ href="https://bugs.eclipse.org/bugs/buglist.cgi?product=4DIAC&query_format=advanced&list_id=16476860"
+ target="_blank">bug</a>.
+ </p>
- <h1 id="umic">uMIC 200</h1>
+ <p>
+ <a href="#topOfPage">Go to top</a>
+ </p>
- <p>This module uses the library provided for the <a href="http://www.microcontrol.net/en/products/control-systems/umic200/" target="_blank">uMIC 200</a>. You need the <span class="fileLocation">umic_dio.h</span>, <span class="fileLocation">umic_relay.h</span> and <span class="fileLocation">umic_led.h</span> headers and also the <span class="fileLocation">umic.so</span> library to be present in your system and accessible by the compiler.</p>
+<!--********************************************************************************************-->
- <p>The parameters should be the type and its number separated by a dot:</p>
- <p><span class="specificText">TYPE.NUMBER</span></p>
+ <h1 id="umic">µMIC.200</h1>
- <p>NUMBER depends on TYPE, where TYPE can be (all are in lowercase):</p>
+ <p>
+ This module uses the library provided for the <a
+ href="http://www.microcontrol.net/en/products/control-systems/umic200/"
+ target="_blank">µMIC.200</a>.
+ You need the <span class="fileLocation">umic_dio.h</span>,
+ <span class="fileLocation">umic_relay.h</span> and <span
+ class="fileLocation">umic_led.h</span> headers and also the <span
+ class="fileLocation">umic.so</span> library to be present in your
+ system and accessible by the compiler.
+ </p>
+
+ <p>The parameters should be the type and its number separated by a
+ dot:</p>
+ <p>
+ <span class="specificText">TYPE.NUMBER</span>
+ </p>
+
+ <p>NUMBER depends on TYPE, where TYPE can be (all are in
+ lowercase):</p>
<ol>
- <li><span class="inlineTitle">led</span>: controls the LED1-4 of the uMIC 200 (Only QX can be used with <span class="specificText">led</span>). The possible numbers for NUMBER are from 0 to 7 according to the table below:<p></p>
+ <li><span class="inlineTitle">led</span>: controls the LED1-4 of
+ the µMIC.200 (Only QX can be used with <span class="specificText">led</span>).
+ The possible numbers for NUMBER are from 0 to 7 according to the
+ table below:
+ <p></p>
<ul>
<li>0 → LED1_GREEN<br></li>
<li>1 → LED2_GREEN<br></li>
@@ -94,52 +210,77 @@
<li>6 → LED3_RED<br></li>
<li>7 → LED4_RED<br></li>
</ul>
- <p>Example:<br>
- led.4 → controls the LED1 color red</p>
- </li>
- <li><span class="inlineTitle">dio</span>: controls the 8 digital I/O at pins 5-12. Number can be from 1 to 8. Use IX to make it input, and QX to make it output.<br>
- <p>Example:<br>
- dio.3 → will access Digital I/O 3 at pin 7 of the uMIC200</p>
- </li>
- <li><span class="inlineTitle">relay</span>: controls the relays. The possible numbers are 1 and 2. The 1 controls the NO relay and 2 the NC. Only QX can be used with <span class="specificText">relay</span>.<br>
- <p>Example:<br>
- relay.1 → will control the NC relay at pins 14- 15
- </li>
+ <p>
+ Example:<br> led.4 → controls the LED1 color red
+ </p></li>
+ <li><span class="inlineTitle">dio</span>: controls the 8 digital
+ I/O at pins 5-12. Number can be from 1 to 8. Use IX to make it input,
+ and QX to make it output.<br>
+ <p>
+ Example:<br> dio.3 → will access Digital I/O 3 at pin 7 of
+ the µMIC.200
+ </p></li>
+ <li><span class="inlineTitle">relay</span>: controls the relays.
+ The possible numbers are 1 and 2. The 1 controls the NO relay and 2
+ the NC. Only QX can be used with <span class="specificText">relay</span>.<br>
+ <p>
+ Example:<br> relay.1 → will control the NC relay at pins
+ 14- 15</li>
</ol>
-
- <img src="../../html/parameters/img/uMICFBs.png" alt="FBs example for uMIC platform">
- <p class="attention"><span class="inlineTitle">Attention</span>: To use the relay and led, in some cases you might have to change some header files in your uMIC200. You need to find the files <span class="fileLocation">/usr/include/umic_led.h</span> and <span class="fileLocation">/usr/include/umic_relay.h</span> and add two things:</p>
+ <img src="../../html/parameters/img/uMICFBs.png"
+ alt="FBs example for uMIC platform">
+
+ <p class="attention">
+ <span class="inlineTitle">Attention</span>: To use the relay and led,
+ in some cases you might have to change some header files in your
+ µMIC.200. You need to find the files <span class="fileLocation">/usr/include/umic_led.h</span>
+ and <span class="fileLocation">/usr/include/umic_relay.h</span> and
+ add two things:
+ </p>
<ul>
<li>At the beginning, right after the first #define add:
- <div class="code">//----------------------------------------------------------------------------//
-// take precautions if compiled with C++ compiler
-#ifdef __cplusplus
-extern "C" {
-#endif
-//----------------------------------------------------------------------------//</div>
+ <div class="code">//----------------------------------------------------------------------------//
+ // take precautions if compiled with C++ compiler #ifdef __cplusplus
+ extern "C" { #endif
+ //----------------------------------------------------------------------------//</div>
</li>
<li>And at the end, right before the last #endif, add
<div class="code">//----------------------------------------------------------------------------//
-#ifdef __cplusplus
-}
-#endif
-// end of C++ compiler wrapper
-//----------------------------------------------------------------------------//</div>
+ #ifdef __cplusplus } #endif // end of C++ compiler wrapper
+ //----------------------------------------------------------------------------//</div>
</li>
</ul>
- <p>If you don't want to use the relay and led, or you don't want to change the header files, go to ~/org.eclipse.4diac.org/src/modules/umic/processinterface.h and
-set the definitions of UMIC_LED_ENABLED and UMIC_RELAY_ENABLED to zero.</p>
+ <p>If you don't want to use the relay and led, or you don't want to
+ change the header files, go to
+ ~/org.eclipse.4diac.org/src/modules/umic/processinterface.h and set
+ the definitions of UMIC_LED_ENABLED and UMIC_RELAY_ENABLED to zero.</p>
- <p><a href="#topOfPage">Go to top</a></p>
+ <p>
+ <a href="#topOfPage">Go to top</a>
+ </p>
- <h1 id="mlpi">MLPI (for bosch rexroth PLC)</h1>
+<!--********************************************************************************************-->
- <p>The MLPI interface was tested on a <a href="http://www.boschrexroth.com/dcc/Vornavigation/VorNavi.cfm?PageID=p650746&Language=en" target="_blank">IndraControl XM22</a> PLC from Bosch Rexroth. In order for FORTE to access the I/O, a PLC program must be runing already in the PLC. FORTE will connect to this program and send/receive information to/from it.</p>
+ <h1 id="mlpi">Bosch Rexroth PLC (MLPI)</h1>
- <p>The parameters that you need to use in PARAMS depend therefore from the names you gave to the I/Os in the PLC program. That means that you need to create your program and give them names. An example was tested where the Digital Inputs were called di01, di01, di02 and so on, and similarly with Digital Outputs (do00, do01, do02, etc). To access them from FORTE, the parameters were:</p>
+ <p>
+ The MLPI interface was tested on a <a
+ href="http://www.boschrexroth.com/dcc/Vornavigation/VorNavi.cfm?PageID=p650746&Language=en"
+ target="_blank">IndraControl XM22</a> PLC from Bosch Rexroth. In
+ order for 4diac FORTE to access the I/O, a PLC program must be running
+ already in the PLC. 4diac FORTE will connect to this program and
+ send/receive information to/from it.
+ </p>
+
+ <p>The parameters that you need to use in PARAMS depend therefore
+ from the names you gave to the I/Os in the PLC program. That means
+ that you need to create your program and give them names. An example
+ was tested where the Digital Inputs were called di01, di01, di02 and
+ so on, and similarly with Digital Outputs (do00, do01, do02, etc). To
+ access them from 4diac FORTE, the parameters were:</p>
<ul>
<li>Application.UserVarGlobal.di00 → Digital Input 00</li>
<li>Application.UserVarGlobal.di01 → Digital Input 01</li>
@@ -147,17 +288,35 @@
<li>... and so on</li>
</ul>
- <p><a href="#topOfPage">Go to top</a></p>
-
- <h1 id="ev3">Parameters for the ev3Dev interface</h1>
+ <p>
+ <a href="#topOfPage">Go to top</a>
+ </p>
- <p>This section is a reference of the parameters that can be used in FORTE to access the I/O of the LMSEV3. Reading this section carefully without using them could be quite boring and even useless,because the details will be forgotten if not used. We recommend to give a quick reading in order to know what can be accessed using FORTE. The <a href="../../html/examples/pidMotor.html">example</a> presents the control a motor using a PID controller.</p>
+<!--********************************************************************************************-->
- <h2 id="ev3_standard_parameters">Standard access</h2>
+ <h1 id="ev3">Lego Mindstorms EV3</h1>
- <h3>Transparent access</h3>
+ <p>
+ This section is a reference of the parameters that can be used in
+ 4diac FORTE to access the I/O of the LMSEV3. Reading this section carefully
+ without using them could be quite boring and even useless,because the
+ details will be forgotten if not used. We recommend to give a quick
+ reading in order to know what can be accessed using 4diac FORTE. The <a
+ href="../../html/examples/pidMotor.html">example</a> presents the
+ control a motor using a PID controller.
+ </p>
- <p>The standard access refers to the access through well defined IO blocks, that allow transparency in the access of I/O in different platforms. Each block supports different parameters in the PARAM input, which defines the I/O of the system that will be accessed. The blocks used to control the I/O are named with two capital letters.</p>
+<!--***************-->
+
+ <h2 id="ev3_standard_parameters">Standard Access</h2>
+<!--**********-->
+ <h3>Transparent Access</h3>
+
+ <p>The standard access refers to the access through well defined I/O
+ blocks, that allow transparency in the access of I/O in different
+ platforms. Each block supports different parameters in the PARAM
+ input, which defines the I/O of the system that will be accessed. The
+ blocks used to control the I/O are named with two capital letters.</p>
<ol>
<li>
@@ -177,40 +336,63 @@
</li>
</ol>
- <p>So, for example a boolean input is read using the functional block IX. The output word, for example the PWM value of a motor is controlled with a QW block. Not all sizes are implemented in all platforms.</p>
+ <p>So, for example a boolean input is read using the functional
+ block IX. The output word, for example the PWM value of a motor is
+ controlled with a QW block. Not all sizes are implemented in all
+ platforms.</p>
+<!--**********-->
+ <h3>Parameters for the Lego Mindstorms EV3</h3>
- <h3>Parameters for the EV3</h3>
-
- <p>The parameters for the EV3 were designed for general use, and extension of them is easy to achieve. The format of the parameters follow 2 important rules:</p>
+ <p>The parameters for the Lego Mindstorms EV3 were designed for general use, and
+ extension of them is easy to achieve. The format of the parameters
+ follow 2 important rules:</p>
<ol>
<li>
- <p>The only capital letters allowed are the A,B,C,D when used to define the output ports of the EV3 (outA, outB, outC, outD).</p>
+ <p>The only capital letters allowed are the A,B,C,D when used to
+ define the output ports of the EV3 (outA, outB, outC, outD).</p>
</li>
- <li><p>The parameters are given in three parts separated by points:</p>
+ <li><p>The parameters are given in three parts separated by
+ points:</p>
<ul>
<li><p>port.typeOfIO.specific</p></li>
</ul>
<ol>
<li><p>port</p>
<p>The first part of the parameter specifies the port of the
- Input or Output. For the EV3, the possible values are [in1 | in2 | in3 | in4 | outA | outB | outC | outD | emb]. The first eight are directly related to the actual ports of the EV3. The 'emb' port refers to anything that can be managed in the EV3 but not in the I/O ports, until now the leds and buttons, but in the future the screen and speaker would also be reference with the 'emb' port.</p>
- </li>
+ Input or Output. For the EV3, the possible values are [in1 | in2 |
+ in3 | in4 | outA | outB | outC | outD | emb]. The first eight are
+ directly related to the actual ports of the EV3. The 'emb' port
+ refers to anything that can be managed in the EV3 but not in the
+ I/O ports, until now the leds and buttons, but in the future the
+ screen and speaker would also be reference with the 'emb' port.</p></li>
<li><p>typeOfIO</p>
- <p>The second part, specifies what is actually connected to the specified port. The possible values are [sensor | sensorw | button | led | motor]. The difference between 'sensor' and 'sensorw' is that 'sensor' is used for boolean sensors, and 'sensorw' for sensors which values are words (16 bits). The 'led' and 'button' are used to control the embedded leds and buttons of the EV3. 'motor' is used for connected motors in any of the outputs.</p>
- <p>It must be clear that not all of the types can be used with any port. For example a led is only an output, so if used with a input, for example IX it won't intialize. Also, if used to control as a word QW, it won't initialize either.</p>
- </li>
+ <p>The second part, specifies what is actually connected to the
+ specified port. The possible values are [sensor | sensorw | button
+ | led | motor]. The difference between 'sensor' and 'sensorw' is
+ that 'sensor' is used for boolean sensors, and 'sensorw' for
+ sensors which values are words (16 bits). The 'led' and 'button'
+ are used to control the embedded leds and buttons of the EV3.
+ 'motor' is used for connected motors in any of the outputs.</p>
+ <p>It must be clear that not all of the types can be used with
+ any port. For example a led is only an output, so if used with a
+ input, for example IX it won't intialize. Also, if used to control
+ as a word QW, it won't initialize either.</p></li>
<li><p>specific</p>
- <p>As its name says, this third parameter has no general form, and can also be formed of other several parameters separated by points(as in case of the led). Depending of the second parameter, the allowed values for this one are different, and it will be seen in the follow section.</p>
- </li>
- </ol>
- </li>
+ <p>As its name says, this third parameter has no general form,
+ and can also be formed of other several parameters separated by
+ points(as in case of the led). Depending of the second parameter,
+ the allowed values for this one are different, and it will be seen
+ in the follow section.</p></li>
+ </ol></li>
</ol>
+<!--**********-->
+ <h3>Specific Parameters</h3>
- <h3>Specific parameters</h3>
-
- <p>For each possible typeOfIO, the list of possible specific part of the parameters are presented, followed by the limitations and examples.</p>
+ <p>For each possible typeOfIO, the list of possible specific part
+ of the parameters are presented, followed by the limitations and
+ examples.</p>
<ol>
<li>
<p>led (output only):</p>
@@ -220,8 +402,12 @@
<li>left.red</li>
<li>left.green</li>
</ul>
- <p>Each specific is used to control each one of the four leds available. The orange led doesn't exist, but is the sum of red + green, so in order to turn on an orange light of the left for example, both the green and red of the left must be turned on.</p>
- <p>Limitation: 'led' must be used with QX and with the 'emb' port.</p>
+ <p>Each specific is used to control each one of the four leds
+ available. The orange led doesn't exist, but is the sum of red +
+ green, so in order to turn on an orange light of the left for
+ example, both the green and red of the left must be turned on.</p>
+ <p>Limitation: 'led' must be used with QX and with the 'emb'
+ port.</p>
<p>Example:</p>
<ul>
<li><p>emb.led.right.red</p></li>
@@ -238,7 +424,8 @@
<li>backspace</li>
</ul>
<p>Reads the buttons of the EV3.</p>
- <p>Limitation: 'button' must be used with IX and with the 'emb' port.</p>
+ <p>Limitation: 'button' must be used with IX and with the 'emb'
+ port.</p>
<p>Example:</p>
<ul>
@@ -252,32 +439,62 @@
<li>[0-N] (input only)</li>
<li>mode (input or output)</li>
</ul>
- <p> The sensorw is used with sensors that read a word value instead of a boolean and normally are more complex than regular touch sensors (boolean). Each sensor specifies how it retrieves the data, how many values and the format of it. Specifications of the supported sensors by the ev3dev are listed <a target="_blank" href="http://www.ev3dev.org/docs/sensors/">here</a>. </p>
+ <p>
+ The sensorw is used with sensors that read a word value instead of a
+ boolean and normally are more complex than regular touch sensors
+ (boolean). Each sensor specifies how it retrieves the data, how many
+ values and the format of it. Specifications of the supported sensors
+ by the ev3dev are listed <a target="_blank"
+ href="http://www.ev3dev.org/docs/sensors/">here</a>.
+ </p>
- <p>Each one of the sensors' values is stored in a different file in the EV3. The specific [0-N] determines which file it is. For example the GYRO sensor can show the angle and the rotation speed. The values are store in value0 and value1 files, so to access just the rotation speed, the '1' specific must be used. The actual value must be checked in the link above.</p>
+ <p>Each one of the sensors' values is stored in a different file
+ in the EV3. The specific [0-N] determines which file it is. For
+ example the GYRO sensor can show the angle and the rotation speed.
+ The values are store in value0 and value1 files, so to access just
+ the rotation speed, the '1' specific must be used. The actual value
+ must be checked in the link above.</p>
- <p>The 'mode' specific is used to change the mode of the sensor according to its specification. As an input, mode will retrieve the mode in which the sensor is working, and as output, the mode will be changed. The mode are mirrored using a 0 index according to the specification of the sensor.</p>
+ <p>The 'mode' specific is used to change the mode of the sensor
+ according to its specification. As an input, mode will retrieve the
+ mode in which the sensor is working, and as output, the mode will be
+ changed. The mode are mirrored using a 0 index according to the
+ specification of the sensor.</p>
- <p>Limitation: sensorw cannot be used with boolean blocks (QX or IX). It must be used with an in[1-4] port, but is not restricted to input or output blocks when the specific "mode" is used.</p>
-
- <p>Limitation: the specific [0-N] can be used only as input, and the number shouldn't be greater than the allowed by the sensor in the mode that's working at the moment of initialization.</p>
+ <p>Limitation: sensorw cannot be used with boolean blocks (QX or
+ IX). It must be used with an in[1-4] port, but is not restricted to
+ input or output blocks when the specific "mode" is used.</p>
+
+ <p>Limitation: the specific [0-N] can be used only as input, and
+ the number shouldn't be greater than the allowed by the sensor in
+ the mode that's working at the moment of initialization.</p>
<p>Examples:</p>
- <p> Let's see an example of using the GYRO sensor specified <a target="_blank" href="http://www.ev3dev.org/docs/sensors/lego-ev3-gyro-sensor/">here</a>. The GYRO works in GYRO-ANG by default, showing only one value, then the only possible parameter is: </p>
+ <p>
+ Let's see an example of using the GYRO sensor specified <a
+ target="_blank"
+ href="http://www.ev3dev.org/docs/sensors/lego-ev3-gyro-sensor/">here</a>.
+ The GYRO works in GYRO-ANG by default, showing only one value, then
+ the only possible parameter is:
+ </p>
<ul>
<li><p>in1.sensorw.0 (IW)</p></li>
</ul>
- <p>If a 1 instead of a 0 were used, the initialization would have failed.</p> <p>If the mode of the sensor wants to be retrieve, the "mode"
+ <p>If a 1 instead of a 0 were used, the initialization would have
+ failed.</p>
+ <p>If the mode of the sensor wants to be retrieve, the "mode"
specific should be used with the input IW.</p>
<ul>
<li><p>in1.sensorw.mode (IW)</p></li>
</ul>
- <p>Because the GYRO sensor by default is in GYRO-ANG and GYRO-ANG is the first of the list according to the link above, the FB will read a 0 (0-index from the list in the link).</p>
-
+ <p>Because the GYRO sensor by default is in GYRO-ANG and GYRO-ANG
+ is the first of the list according to the link above, the FB will
+ read a 0 (0-index from the list in the link).</p>
+
<p>If then the sensor's mode is changed using a QW with "mode"
specific</p>
@@ -285,7 +502,9 @@
<li><p>in1.sensorw.mode (QW)</p></li>
</ul>
- <p>and writing a value 3 (0-index mode), the sensor's mode will change to GYRO-G&A wich shows 2 values, angle and rotation speed. After changing the mode, two IW blocks with parameters</p>
+ <p>and writing a value 3 (0-index mode), the sensor's mode will
+ change to GYRO-G&A wich shows 2 values, angle and rotation
+ speed. After changing the mode, two IW blocks with parameters</p>
<ul>
<li>in1.sensorw.0 (IW)</li>
@@ -296,7 +515,10 @@
<p>will retrieve the both values.</p>
- <p>ATTENTION!!! To get the rotation speed, the block with parameter "in1.sensorw.1" must be initialized AFTER the mode has been changed, because before changing the mode, the file for the rotation speed doesn't exist in the system and cannot be read.</p>
+ <p>ATTENTION!!! To get the rotation speed, the block with
+ parameter "in1.sensorw.1" must be initialized AFTER the mode has
+ been changed, because before changing the mode, the file for the
+ rotation speed doesn't exist in the system and cannot be read.</p>
</li>
<li>
@@ -306,9 +528,15 @@
<li>[0-N]</li>
</ul>
- <p>Used to control touch sensor (binary). sensor' specific is a subset of sensorw' specific. It doesn't allow mode, and even though the value is always stored in '0', the '0' specific must be used for two mainly reasons: 1. To have a standarized way of showing the parameters, and 2. to avoid problems in the future where a new sensor is stored in '1' instead of '0'.</p>
+ <p>Used to control touch sensor (binary). sensor' specific is a
+ subset of sensorw' specific. It doesn't allow mode, and even though
+ the value is always stored in '0', the '0' specific must be used for
+ two mainly reasons: 1. To have a standarized way of showing the
+ parameters, and 2. to avoid problems in the future where a new
+ sensor is stored in '1' instead of '0'.</p>
- <p>Limitations: 'sensor' must be used with QX and with an in[1-4] port.</p>
+ <p>Limitations: 'sensor' must be used with QX and with an in[1-4]
+ port.</p>
<p>Example:</p>
@@ -329,28 +557,52 @@
<li>rot (input word only)</li>
</ul>
- <p>The 'enable' controls the state of the motor accroding to the OUT input of QX. A TRUE value turns ON the motor and a FALSE value turns it OFF. It must be used with QX.</p>
+ <p>The 'enable' controls the state of the motor accroding to the
+ OUT input of QX. A TRUE value turns ON the motor and a FALSE value
+ turns it OFF. It must be used with QX.</p>
- <p>The 'reset' zeroes the position, pwm and speed values, and turn off the motor with a TRUE value in OUT. A FALSE value in OUT has no effect. It must be used with QX</p>
+ <p>The 'reset' zeroes the position, pwm and speed values, and
+ turn off the motor with a TRUE value in OUT. A FALSE value in OUT
+ has no effect. It must be used with QX</p>
- <p>The 'stop' specific must not be confused with stoping the motor, because it specifies the way the motor behaves when PWM is zero according to the value written to OUT. It must be used with QW </p>
+ <p>The 'stop' specific must not be confused with stoping the
+ motor, because it specifies the way the motor behaves when PWM is
+ zero according to the value written to OUT. It must be used with QW
+ </p>
<ul>
- <li>0: [coast]: Removes power from the motor. The motor will freely coast to a stop.</li>
- <li>1: [brake]: Removes power from the motor and creates a passive electrical load. This is usually done by shorting the motor terminals together. This load will absorb the energy from the rotation of the motors and cause the motor to stop more quickly than coasting.</li>
+ <li>0: [coast]: Removes power from the motor. The motor will
+ freely coast to a stop.</li>
+ <li>1: [brake]: Removes power from the motor and creates a
+ passive electrical load. This is usually done by shorting the motor
+ terminals together. This load will absorb the energy from the
+ rotation of the motors and cause the motor to stop more quickly
+ than coasting.</li>
- <li>3: [hold]: Causes the motor to actively try to hold the current position. If an external force tries to turn the motor, the motor will "push back" to maintain its position.</li>
+ <li>3: [hold]: Causes the motor to actively try to hold the
+ current position. If an external force tries to turn the motor, the
+ motor will "push back" to maintain its position.</li>
</ul>
- <p>The 'pwm' reads the current pwm when using with IW of the motor or writes the desired pwm for the motor when using with QW.</p>
+ <p>The 'pwm' reads the current pwm when using with IW of the
+ motor or writes the desired pwm for the motor when using with QW.</p>
- <p>The 'position' reads the current position of the motor. In how many steps a rotation is divided, can be read from using the 'rot' specific. It must be used with ID. The position can be written, wich sets the position to the desired value.</p>
+ <p>The 'position' reads the current position of the motor. In how
+ many steps a rotation is divided, can be read from using the 'rot'
+ specific. It must be used with ID. The position can be written, wich
+ sets the position to the desired value.</p>
- <p>The 'speed' reads the current speed in positions by second. It must be used with IW.</p>
+ <p>The 'speed' reads the current speed in positions by second. It
+ must be used with IW.</p>
- <p>The 'rot' reads the motor specication of how many steps are in one turn of the motor. This can be read from the specifications of the motor normally and it's not necessary to add the block in an application just to read this information. It must be used with IW.</p>
+ <p>The 'rot' reads the motor specication of how many steps are in
+ one turn of the motor. This can be read from the specifications of
+ the motor normally and it's not necessary to add the block in an
+ application just to read this information. It must be used with IW.</p>
- <p>Limitations: Event though each specific has its limitation regarding the type of block to use with, the typeOfIO "motor" must be used with one of the outputs of the EV3 out[A-B]</p>
+ <p>Limitations: Event though each specific has its limitation
+ regarding the type of block to use with, the typeOfIO "motor" must
+ be used with one of the outputs of the EV3 out[A-B]</p>
<p>Examples:</p>
@@ -369,25 +621,33 @@
</li>
</ol>
- <h2 id="ev3_cheatsheet">I/O cheatsheet</h2>
+<!--***************-->
- <p>This section doesn't add any new information, but summarize which parameters and FB should be used with each I/O.</p>
+ <h2 id="ev3_cheatsheet">I/O Cheatsheet</h2>
+
+ <p>This section doesn't add any new information, but summarize
+ which parameters and FB should be used with each I/O.</p>
<ol>
<li>
- <p>Touch sensor connected to an input port. It must be used with IX</p>
+ <p>Touch sensor connected to an input port. It must be used with
+ IX</p>
<ul>
<li><p>in[X].sensor.[Y]</p></li>
</ul>
- <p>where X is the number of the input in the EV3 (1-4) and Y is the value number where to read from according to the sensor. Read the specification of the sensor to be sure. Start trying from 0 if no information is available.</p>
+ <p>where X is the number of the input in the EV3 (1-4) and Y is
+ the value number where to read from according to the sensor. Read
+ the specification of the sensor to be sure. Start trying from 0 if
+ no information is available.</p>
</li>
<li>
<p>One of the 6 buttons of the EV3. It must be used with IX</p>
<ul>
- <li><p>emb.button.[up | down | left | right | enter | backspace]</p></li>
+ <li><p>emb.button.[up | down | left | right | enter |
+ backspace]</p></li>
</ul>
<p>Only one of the inputs can be selected for each IX.</p>
@@ -402,7 +662,8 @@
<p>The orange led does not exist, but is the sum of green + red.</p>
</li>
<li>
- <p>Motor connected to an output port. The FB to use depends on the parameter of the motor that wants to be handled.</p>
+ <p>Motor connected to an output port. The FB to use depends on
+ the parameter of the motor that wants to be handled.</p>
<ul>
<li>
<p>Turn ON/OFF the motor. It must be used with QX.</p>
@@ -411,7 +672,9 @@
<li><p>out[X].motor.enable</p></li>
</ul>
- <p>Where X is the output capital letter of the EV3 (A-D, in uppercase). A TRUE value in OUT input turns the motor ON, and a FALSE value turns the motor OFF.</p>
+ <p>Where X is the output capital letter of the EV3 (A-D, in
+ uppercase). A TRUE value in OUT input turns the motor ON, and a
+ FALSE value turns the motor OFF.</p>
</li>
<li>
<p>Reset the motor variables and stop. It must be used with QX.</p>
@@ -419,63 +682,95 @@
<ul>
<li><p>out[X].motor.reset</p></li>
</ul>
- <p>Where X is the output capital letter of the EV3 (A-D, in uppercase). A TRUE value in OUT resets all of the motor parameter attributes to their default values. This will also have the effect of stopping the motor. A FALSE value doesn't have any effect.</p>
+ <p>Where X is the output capital letter of the EV3 (A-D, in
+ uppercase). A TRUE value in OUT resets all of the motor parameter
+ attributes to their default values. This will also have the effect
+ of stopping the motor. A FALSE value doesn't have any effect.</p>
</li>
<li>
- <p>Read current duty cycle (pwm) from a motor. It must be used with IW.</p>
+ <p>Read current duty cycle (pwm) from a motor. It must be used
+ with IW.</p>
<ul>
<li><p>out[X].motor.pwm</p></li>
</ul>
- <p>Where X is the output letter of the EV3 (A-D, in uppercase). The read value is between -100 and 100. It might seem confusing reading an input from an output but even though the signal is from an output, it is an input to the system.</p>
+ <p>Where X is the output letter of the EV3 (A-D, in uppercase).
+ The read value is between -100 and 100. It might seem confusing
+ reading an input from an output but even though the signal is from
+ an output, it is an input to the system.</p>
</li>
<li>
- <p>Read the current speed of the motor. It must be used with IW.</p>
+ <p>Read the current speed of the motor. It must be used with
+ IW.</p>
<ul>
<li><p>out[X].motor.speed</p></li>
</ul>
- <p>Where X is the output letter of the EV3 (A-D, in uppercase). It reads the velocity in steps per second. How many steps are in one turn of the motor can be read with the parameter "rot" (see next). If a motor has 360 steps in one turn and the speed is 720, then the speed is 2 rotations per second.</p>
+ <p>Where X is the output letter of the EV3 (A-D, in uppercase).
+ It reads the velocity in steps per second. How many steps are in
+ one turn of the motor can be read with the parameter "rot" (see
+ next). If a motor has 360 steps in one turn and the speed is 720,
+ then the speed is 2 rotations per second.</p>
</li>
<li>
- <p>Read the number of steps in each turn. It must be used with IW.</p>
+ <p>Read the number of steps in each turn. It must be used with
+ IW.</p>
<ul>
<li><p>out[X].motor.rot</p></li>
</ul>
- <p>Where X is the output letter of the EV3 (A-D, in uppercase). This value is fixed in the motor and can be found in the specifications of the motor and it normally shouldn't be used in an application.</p>
+ <p>Where X is the output letter of the EV3 (A-D, in uppercase).
+ This value is fixed in the motor and can be found in the
+ specifications of the motor and it normally shouldn't be used in
+ an application.</p>
</li>
<li>
- <p>Read the current position of the motor. It must be used with ID.</p>
+ <p>Read the current position of the motor. It must be used with
+ ID.</p>
<ul>
<li><p>out[X].motor.position</p></li>
</ul>
- <p>Where X is the output letter of the EV3 (A-D, in uppercase). If the motor was in position 0 and the "rot" parameter returns 360, then it makes 3 turns, the position will be 1080.</p>
+ <p>Where X is the output letter of the EV3 (A-D, in uppercase).
+ If the motor was in position 0 and the "rot" parameter returns
+ 360, then it makes 3 turns, the position will be 1080.</p>
</li>
<li>
<p>Write the position of a motor. It must be used with QD.</p>
<ul>
<li><p>out[X].motor.position</p></li>
</ul>
- <p>Where X is the output letter of the EV3 (A-D, in uppercase). Sets the current position to a specific value.</p>
+ <p>Where X is the output letter of the EV3 (A-D, in uppercase).
+ Sets the current position to a specific value.</p>
</li>
<li>
- <p>Write a desired duty cycle (pwm) for a motor. It must be used with QW.</p>
+ <p>Write a desired duty cycle (pwm) for a motor. It must be
+ used with QW.</p>
<ul>
<li><p>out[X].motor.pwm</p></li>
</ul>
- <p>Where X is the output letter of the EV3 (A-D, in uppercase). The value range should be between -100 and 100.</p>
+ <p>Where X is the output letter of the EV3 (A-D, in uppercase).
+ The value range should be between -100 and 100.</p>
</li>
<li>
- <p>Specify a desired behaviour when the pwm is set to 0. It must be used with QW.</p>
+ <p>Specify a desired behaviour when the pwm is set to 0. It
+ must be used with QW.</p>
<ul>
<li><p>out[X].motor.stop</p></li>
</ul>
- <p>Where X is the output letter of the EV3 (A-D, in uppercase). Possible values are 0, 1 and 2:</p>
+ <p>Where X is the output letter of the EV3 (A-D, in uppercase).
+ Possible values are 0, 1 and 2:</p>
<ul>
- <li>0: [coast]: Removes power from the motor. The motor will freely coast to a stop.</li>
- <li>1: [brake]: Removes power from the motor and creates a passive electrical load. This is usually done by shorting the motor terminals together. This load will absorb the energy from the rotation of the motors and cause the motor to stop more quickly than coasting.</li> <li>3: [hold]: Causes the motor to actively try to hold the current position. If an external force tries to turn the motor, the motor will push back to maintain its position.</li>
+ <li>0: [coast]: Removes power from the motor. The motor will
+ freely coast to a stop.</li>
+ <li>1: [brake]: Removes power from the motor and creates a
+ passive electrical load. This is usually done by shorting the
+ motor terminals together. This load will absorb the energy from
+ the rotation of the motors and cause the motor to stop more
+ quickly than coasting.</li>
+ <li>3: [hold]: Causes the motor to actively try to hold the
+ current position. If an external force tries to turn the motor,
+ the motor will push back to maintain its position.</li>
</ul>
</li>
</ul>
@@ -488,32 +783,45 @@
<ul>
<li><p>in[X].sensorw.[Y]</p></li>
</ul>
- <p>where X is the number of the input in the EV3 (1-4) and Y is the value number where to read from according to the sensor. Read the specification of the sensor to be sure. Start trying from 0 if no information is available.</p>
+ <p>where X is the number of the input in the EV3 (1-4) and Y is
+ the value number where to read from according to the sensor. Read
+ the specification of the sensor to be sure. Start trying from 0 if
+ no information is available.</p>
</li>
<li>
<p>Read a sensor's mode. It must be used with IW.</p>
<ul>
<li><p>in[X].sensorw.mode</p></li>
</ul>
- <p>where X is the number of the input in the EV3 (1-4). The read value is an index number according to the list of modes of the sensor.</p>
+ <p>where X is the number of the input in the EV3 (1-4). The
+ read value is an index number according to the list of modes of
+ the sensor.</p>
</li>
<li>
<p>Write a sensor's mode. It must be used with QW.</p>
<ul>
<li><p>in[X].sensorw.mode</p></li>
</ul>
- <p>where X is the number of the input in the EV3 (1-4). The value to be written should be the index number according to the list of modes of the sensor.</p>
+ <p>where X is the number of the input in the EV3 (1-4). The
+ value to be written should be the index number according to the
+ list of modes of the sensor.</p>
</li>
</ul>
</li>
</ol>
- <h2 id="ev3_custom_parameters">Custom access</h2>
+<!--***************-->
- <p>The custom access allows the user to access part of the system that are not implemented in the standard access. Care must be taken, since critical part of the system might be accessed. For each block, the specification of the new inputs and outputs are given.</p>
+ <h2 id="ev3_custom_parameters">Custom Access</h2>
+
+ <p>The custom access allows the user to access part of the system
+ that are not implemented in the standard access. Care must be taken,
+ since critical part of the system might be accessed. For each block,
+ the specification of the new inputs and outputs are given.</p>
<ol>
<li>
- <p>fileWriter: Block to write to any file in the system. The special inputs are:</p>
+ <p>fileWriter: Block to write to any file in the system. The
+ special inputs are:</p>
<ul>
<li>
<p>FILE_NAME: absolut path of the file.</p>
@@ -526,7 +834,8 @@
</ul>
</li>
<li>
- <p>fileReader: Block to read from any file in the system. The special inputs and outpus are:</p>
+ <p>fileReader: Block to read from any file in the system. The
+ special inputs and outpus are:</p>
<ul>
<li>
<p>FILE_NAME [input]: absolut path of the file.</p>
@@ -539,22 +848,33 @@
</ul>
</li>
</ol>
-
-<h1>Where to go from here?</h1>
-<p>You can see the supported protocols:</p>
+<!--********************************************************************************************-->
-<p><a href="../../html/communication/communicationIndex.html">Communication Index</a></p>
+ <h1>Where to go from here?</h1>
-<p>You can see the examples:</p>
+ <p>You can see the supported protocols:</p>
-<p><a href="../../html/examples/examplesIndex.html">Examples Index</a></p>
+ <p>
+ <a href="../../html/communication/communicationIndex.html">Supported Communication Protocols</a>
+ </p>
-<p>If you want to go back to the Start Here page, we leave you here a fast access</p>
+ <p>You can see the examples:</p>
-<p><a href="../../html/startHere/startHere.html">Start Here page</a></p>
+ <p>
+ <a href="../../html/examples/examplesIndex.html">4diac Examples</a>
+ </p>
-<p class="goToTop">Or <a href="#topOfPage">Go to top</a></p>
+ <p>If you want to go back to the Where to Start page, we leave you here
+ a fast access</p>
+
+ <p>
+ <a href="../../html/startHere/startHere.html">Where to Start</a>
+ </p>
+
+ <p class="goToTop">
+ Or <a href="#topOfPage">Go to top</a>
+ </p>
</body>
</html>
diff --git a/documentation/html/toc.xml b/documentation/html/toc.xml
index 9d9944c..48e3447 100644
--- a/documentation/html/toc.xml
+++ b/documentation/html/toc.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2014 - 2017 fortiss GmbH, University of Thessaloniki
- 2018 Andrea Zoitl
+ 2018 - 2019 Andrea Zoitl
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
@@ -12,128 +12,188 @@
Monika Wenger, Alois Zoitl, Giorgis Sfiris, Waldemar Eisenmenger,
Milan Vatoopan, Gerd Kainz, Jose Cabral, Stefan Profanter
- initial API and implementation and/or initial documentation
- Andrea Zoitl - cleaning up tutorials for 1.10 realese
+ Andrea Zoitl - cleaning up tutorials for 1.10 realese, updated ToC
-->
<?NLS TYPE="org.eclipse.help.toc"?>
<toc label="4diac User Guide" topic="html/startHere/startHere.html">
- <topic label="Getting Started">
+
+<!--********************************************************************************************-->
+
+ <topic label="Getting Started" href="html/startHere/startHere.html">
+<!--********************-->
<topic href="html/before4DIAC/iec61499.html" label="IEC 61499 101">
+ <topic href="html/before4DIAC/iec61499.html#PLC" label="PLC Programming according to IEC 61131-3">
+ <topic href="html/before4DIAC/iec61499.html#programmingPLC" label="Programming PLCs">
+ </topic>
+ </topic>
+ <topic href="html/before4DIAC/iec61499.html#IEC61499" label="IEC 61499">
+ </topic>
+ <topic href="html/before4DIAC/iec61499.html#MainPartsOfIEC61499" label="Main parts of IEC 61499">
+ <topic href="html/before4DIAC/iec61499.html#FBInterface" label="FB Interface">
+ </topic>
+ <topic href="html/before4DIAC/iec61499.html#FBInternalSequence" label="FB Internal Sequence">
+ </topic>
+ <topic href="html/before4DIAC/iec61499.html#DistributedApplicaton" label="Distributed Application">
+ </topic>
+ <topic href="html/before4DIAC/iec61499.html#brokenConnection" label="Broken Connections">
+ </topic>
+ <topic href="html/before4DIAC/iec61499.html#FBTypes" label="Types of Function Blocks">
+ </topic>
+ <topic href="html/before4DIAC/iec61499.html#iec61499ComplianceProfiles" label="Compliance Profiles">
+ </topic>
+ </topic>
</topic>
- <topic href="html/before4DIAC/4diacFramework.html" label="4DIAC Framework">
+<!--********************-->
+ <topic href="html/before4DIAC/4diacFramework.html" label="4diac Framework">
</topic>
</topic>
+<!--********************************************************************************************-->
+
<topic label="Installation" href="html/installation/install.html">
- <topic href="html/installation/install.html#4DIAC-IDE" label="Installing 4DIAC">
+ <topic href="html/installation/install.html#4DIAC-IDE" label="4diac IDE">
+ <topic href="html/installation/install.html#ownIDE" label="Building Your own 4diac IDE From Source">
+ </topic>
</topic>
- <topic href="html/installation/install.html#precompiledFORTE" label="Pre-compiled FORTE">
+ <topic href="html/installation/install.html#4DIAC-FORTE" label="4diac FORTE">
+ <topic href="html/installation/install.html#ownFORTE" label="Building 4diac FORTE From Source">
+ </topic>
</topic>
- <topic href="html/installation/install.html#ownFORTE" label="Build your FB in FORTE">
+ <topic href="html/installation/install.html#forteOtherPlatforms" label="Building 4diac FORTE for Other Platforms">
+ <topic href="html/installation/legoMindstormEv3.html" label="4diac FORTE for Lego Mindstorms EV3"/>
+ <topic href="html/installation/raspi.html" label="4diac FORTE for RaspberryPi"/>
+ <topic href="html/installation/raspberrySPS.html" label="4diac FORTE for RaspberryPi-SPS"/>
+ <topic href="html/installation/wago.html" label="4diac FORTE for WagoPFCs"/>
</topic>
- <topic href="html/installation/install.html#FORTEWindowsUnix" label="FORTE for Windows and Unix based systems">
- <topic href="html/installation/visualStudio.html" label="Use Visual Studio">
- </topic>
- <topic href="html/installation/eclipse.html" label="Use Eclipse">
- </topic>
- <topic href="html/installation/cygwin.html" label="Windows - Cygwin compiler">
- </topic>
- <topic href="html/installation/minGW.html" label="Windows - MinGW-w64 compiler">
- </topic>
+ <topic label="4diac FORTE for Windows and Unix based systems">
+ <topic href="html/installation/visualStudio.html" label="Use Visual Studio"/>
+ <topic href="html/installation/eclipse.html" label="Use Eclipse"/>
+ <topic href="html/installation/cygwin.html" label="Windows - Cygwin compiler"/>
+ <topic href="html/installation/minGW.html" label="Windows - MinGW-w64 compiler"/>
</topic>
- <topic label="FORTE for RaspberryPi" href="html/installation/raspi.html">
- </topic>
- <topic href="html/installation/raspberrySPS.html" label="FORTE for RaspberryPi-SPS">
- </topic>
- <topic label="FORTE for Lego Mindstorms EV3" href="html/installation/legoMindstormEv3.html"/>
- <topic label="FORTE for Lego Mindstorms" href="html/installation/mindstorms.html"/>
- <topic label="FORTE for WagoPFCs" href="html/installation/wago.html"/>
</topic>
-
- <topic label="Step by Step Tutorial">
- <topic href="html/4diacIDE/overview.html" label="Step 0 - 4diac-IDE Overview">
- <topic href="html/4diacIDE/overview.html#startingUp" label="Starting up 4diac-IDE">
+
+<!--********************************************************************************************-->
+
+ <topic label="Tutorials - A Step by Step Guide">
+<!--********************-->
+ <topic href="html/4diacIDE/overview.html" label="Step 0 - 4diac IDE Overview">
+ <topic href="html/4diacIDE/overview.html#startingUp" label="Starting up 4diac IDE">
</topic>
- <topic href="html/4diacIDE/overview.html#elements" label="4diac-IDE Elements">
+ <topic href="html/4diacIDE/overview.html#elements" label="4diac IDE Elements">
</topic>
- <topic href="html/4diacIDE/overview.html#perspectives" label="4diac-IDE Perspectives">
+ <topic href="html/4diacIDE/overview.html#perspectives" label="4diac IDE Perspectives">
<topic href="html/4diacIDE/overview.html#systemPerspective" label="System Perspective">
</topic>
- <topic href="html/4diacIDE/overview.html#typeManagementPerspective" label="Type Management perspective">
- </topic>
<topic href="html/4diacIDE/overview.html#deploymentPerspective" label="Deployment Perspective">
</topic>
<topic href="html/4diacIDE/overview.html#debugPerspective" label="Debug Perspective">
</topic>
</topic>
- <topic href="html/4diacIDE/overview.html#preferences" label="4diac-IDE Preferences">
+ <topic href="html/4diacIDE/overview.html#preferences" label="4diac IDE Preferences">
</topic>
<topic href="html/4diacIDE/overview.html#toolbar" label="Toolbar">
</topic>
+<!--********************-->
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html" label="Step 1 - Use 4DIAC locally (Blinking application)">
- <topic href="html/4diacIDE/use4diacLocally.html#createSystem" label="Create a new system">
+ <topic href="html/4diacIDE/use4diacLocally.html" label="Step 1 - Use 4diac Locally (Blinking Tutorial)">
+ <topic href="html/4diacIDE/use4diacLocally.html#createSystem" label="Create a new IEC 61499 System">
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html#configureHardware" label="Configure the automation hardware">
+ <topic href="html/4diacIDE/use4diacLocally.html#createNetwork" label="Create a FB Network for the Blink Application">
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html#createApplication" label="Create an application">
+ <topic href="html/4diacIDE/use4diacLocally.html#configureHardware" label="Configuration of the Automation Hardware">
+ <topic href="html/4diacIDE/use4diacLocally.html#deviceProfileConfiguration" label="Configuration of the Device's Configuration Profile">
+ </topic>
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html#createNetwork" label="Create a network of Function Blocks">
+ <topic href="html/4diacIDE/use4diacLocally.html#mapNetworks" label="Mapping of Function Block Networks to Devices/Resources">
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html#mapNetworks" label="Map Function Blocks to devices">
+ <topic href="html/4diacIDE/use4diacLocally.html#configureResource" label="Configure the Resource">
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html#configureResource" label="Configure the resource">
+ <topic href="html/4diacIDE/use4diacLocally.html#overviewEditors" label="Overview of the Editors">
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html#deployingToForte" label="Deploy application">
+ <topic href="html/4diacIDE/use4diacLocally.html#deployingToForte" label="Deploying Application to 4diac FORTE">
</topic>
- <topic href="html/4diacIDE/use4diacLocally.html#monitoringApplication" label="Monitoring applications">
+ <topic href="html/4diacIDE/use4diacLocally.html#monitoringApplication" label="Monitoring the Application">
</topic>
</topic>
- <topic href="html/4diacIDE/distribute4diac.html" label="Step 2 - Create a distributed application">
- <topic href="html/4diacIDE/distribute4diac.html#addAnotherDevice" label="Add another device">
+<!--********************-->
+ <topic href="html/4diacIDE/distribute4diac.html" label="Step 2 - Distribute 4diac Applications">
+ <topic href="html/4diacIDE/distribute4diac.html#extendApplication" label="Extend the Application">
+ </topic>
+ <topic href="html/4diacIDE/distribute4diac.html#AddAnotherDevice" label="Add Another Device">
</topic>
- <topic href="html/4diacIDE/distribute4diac.html#addButtonFBs" label="Add button Function Blocks">
+ <topic href="html/4diacIDE/distribute4diac.html#SetUpCommunication" label="Set up the Communication Between Both Devices">
+ <topic href="html/4diacIDE/distribute4diac.html#SetUpBlinking" label="Set up the Blinking Part of the Application">
+ </topic>
+ <topic href="html/4diacIDE/distribute4diac.html#SetUpCounting" label="Set up the Counting Part of the Application">
+ </topic>
+ <topic href="html/4diacIDE/distribute4diac.html#BackgroundCommunicationFBs" label="Background of the Communication FBs">
+ </topic>
</topic>
- <topic href="html/4diacIDE/distribute4diac.html#fixBrokenConnections" label="Fix broken connections between devices">
+ <topic href="html/4diacIDE/distribute4diac.html#startDevices" label="Start Both Devices">
</topic>
- <topic href="html/4diacIDE/distribute4diac.html#deployDevices" label="Deploy 2 devices">
- </topic>
- <topic href="html/4diacIDE/distribute4diac.html#testApplication" label="Test an application">
+ <topic href="html/4diacIDE/distribute4diac.html#testApplication" label="Test it!">
</topic>
</topic>
- <topic href="html/4diacIDE/use4diacRemotely.html" label="Step 3 - Deploy remotely">
- <topic href="html/4diacIDE/use4diacRemotely.html#stepsToDeployRem" label="Steps to deploy remotely">
+<!--********************-->
+ <topic href="html/4diacIDE/use4diacRemotely.html" label="Step 3 - Deploy Applications Remotely">
+ <topic href="html/4diacIDE/use4diacRemotely.html#stepsToDeployRem" label="Steps to Deploy Remotely">
</topic>
<topic href="html/4diacIDE/use4diacRemotely.html#troubleshooting" label="Troubleshooting">
</topic>
</topic>
- <topic label="Step 4 - Create your own Function Block Types" href="html/4diacIDE/createOwnTypes.html">
- <topic href="html/4diacIDE/createOwnTypes.html#createBasic" label="Create a Basic Function Block (BFB)">
+<!--********************-->
+ <topic href="html/4diacIDE/createOwnTypes.html" label="Step 4 - Create Your own Function Block Types">
+ <topic href="html/4diacIDE/createOwnTypes.html#createBasic" label="Create a Basic Function Block">
+ <topic href="html/4diacIDE/createOwnTypes.html#changeInterface" label="Change the Interface">
+ </topic>
+ <topic href="html/4diacIDE/createOwnTypes.html#changeECC" label="Change the ECC">
+ </topic>
</topic>
- <topic href="html/4diacIDE/createOwnTypes.html#createComposite" label="Create a Composite Function Block (CFB)">
+ <topic href="html/4diacIDE/createOwnTypes.html#createSimple" label="Create a Simple Function Block">
+ </topic>
+ <topic href="html/4diacIDE/createOwnTypes.html#createComposite" label="Create a Composite Function Block">
</topic>
- <topic href="html/4diacIDE/createOwnTypes.html#createService" label="Create a Service Function Block (SFB)">
+ <topic href="html/4diacIDE/createOwnTypes.html#createService" label="Create a Service Function Block">
</topic>
- <topic href="html/4diacIDE/createOwnTypes.html#exportTypes" label="Export Function Block Type">
+ <topic href="html/4diacIDE/createOwnTypes.html#exportTypes" label="Export Function Block Types">
+ <topic href="html/4diacIDE/createOwnTypes.html#finishService" label="Finish the Service Interface Test">
+ </topic>
</topic>
- <topic href="html/4diacIDE/createOwnTypes.html#testFunctionBlock" label="Test a Function Block">
+ <topic href="html/4diacIDE/createOwnTypes.html#OtherEditors" label="Other Type Editors">
+ </topic>
+ <topic href="html/4diacIDE/createOwnTypes.html#testFunctionBlock" label="Test Function Block">
</topic>
</topic>
- <topic label="Step 5 - Learn more" href="html/4diacIDE/otherUseful.html">
- <topic label="Import an existing System" href="html/4diacIDE/otherUseful.html#ImportSystem"/>
- <topic label="Import an existing Type" href="html/4diacIDE/otherUseful.html#ImportType"/>
- <topic label="Virtual DNS Functionality" href="html/4diacIDE/otherUseful.html#VirtualDNS"/>
+<!--********************-->
+ <topic href="html/4diacIDE/otherUseful.html" label="Step 5 - Other Basic Features" >
+ <topic href="html/4diacIDE/otherUseful.html#ImportSystem" label="Import an Existing System">
+ </topic>
+ <topic href="html/4diacIDE/otherUseful.html#ImportType" label="Import Existing IEC 61499 Types">
+ </topic>
+ <topic href="html/4diacIDE/otherUseful.html#VirtualDNS" label="Virtual DNS Functionality">
+ </topic>
+ <topic href="html/4diacIDE/otherUseful.html#CreateBootfiles" label="Creating Boot-Files">
+ </topic>
</topic>
- <topic href="html/4diacIDE/advancedFeatures.html" label="Step 6 - Advanced features">
- <topic href="html/4diacIDE/advancedFeatures.html#adaptersUsage" label="Adapters">
+<!--********************-->
+ <topic href="html/4diacIDE/advancedFeatures.html" label="Step 6 - Advanced Features">
+ <topic href="html/4diacIDE/advancedFeatures.html#adaptersUsage" label="Adapter Usage">
+ <topic href="html/4diacIDE/advancedFeatures.html#newAdapterType" label="Create a new Adapter Type">
+ </topic>
+ <topic href="html/4diacIDE/advancedFeatures.html#useAdapterType" label="Use Your new Adapter Type">
+ </topic>
</topic>
<topic href="html/4diacIDE/advancedFeatures.html" label="Subapplications (NOT READY YET)">
</topic>
</topic>
</topic>
-
- <topic href="html/examples/examplesIndex.html" label="Examples">
+
+<!--********************************************************************************************-->
+
+ <topic href="html/examples/examplesIndex.html" label="4diac Examples">
<topic href="html/examples/examplesIndex.html#noHardwareRequired" label="General Examples">
<topic href="html/examples/xplus3.html" label="X+3">
</topic>
@@ -143,29 +203,37 @@
</topic>
<topic href="html/examples/bbbTraficControl.html" label="Traffic control example running on a BBB">
</topic>
- </topic>
-
+ </topic>
</topic>
+
+<!--********************************************************************************************-->
- <topic href="html/parameters/parameters.html" label="Use IO from different platforms">
- <topic href="html/parameters/parameters.html#sysfs" label="SysFs (Raspberry Pi)">
+ <topic href="html/parameters/parameters.html" label="Use I/O From Different Platforms">
+ <topic href="html/parameters/parameters.html#sysfs" label="SysFs">
</topic>
- <topic href="html/parameters/parameters.html#rpi-sps" label="Raspberry PI-SPS">
+ <topic href="html/parameters/parameters.html#rpi-sps" label="Raspberry-SPS">
</topic>
<topic href="html/parameters/parameters.html#odroid" label="Odroid">
</topic>
- <topic href="html/parameters/parameters.html#piface" label="PiFace 2">
+ <topic href="html/parameters/parameters.html#piface" label="PiFace Digital 2">
</topic>
- <topic href="html/parameters/parameters.html#umic" label="uMIC">
+ <topic href="html/parameters/parameters.html#umic" label="uMIC.200">
</topic>
- <topic href="html/parameters/parameters.html#mlpi" label="MLPI (Bosch Rexroth PLC)">
+ <topic href="html/parameters/parameters.html#mlpi" label="Bosch Rexroth PLC (MLPI)">
</topic>
- <topic href="html/parameters/parameters.html#ev3" label="Lego Mindstorm EV3">
+ <topic href="html/parameters/parameters.html#ev3" label="Lego Mindstorms EV3">
+ <topic href="html/parameters/parameters.html#ev3_standard_parameters" label="Standard Access">
+ </topic>
+ <topic href="html/parameters/parameters.html#ev3_cheatsheet" label="I/O Cheatsheet">
+ </topic>
+ <topic href="html/parameters/parameters.html#ev3_custom_parameters" label="Custom Access">
+ </topic>
</topic>
</topic>
+<!--********************************************************************************************-->
- <topic href="html/communication/communicationIndex.html" label="Using Communication Protocols">
+ <topic href="html/communication/communicationIndex.html" label="Supported Communication Protocols">
<topic label="OPC UA" href="html/communication/opc_ua.html">
<topic label="Build FORTE with OPC UA" href="html/communication/opc_ua.html#build" />
<topic label="OPC UA Variables" href="html/communication/opc_ua.html#variables" />
@@ -205,6 +273,8 @@
<topic href="html/faq/faq.html" label="Frequently Asked Questions">
</topic>
+
+<!--********************************************************************************************-->
<topic href="html/development/developmentIndex.html" label="Development Documentation">
<topic label="4DIAC-IDE">
@@ -245,6 +315,9 @@
</topic>
</topic>
</topic>
+
+<!--********************************************************************************************-->
+
<topic href="html/legal.html" label="Legal">
</topic>
</toc>