diff --git a/404.html b/404.html
index e8caaa1..7c2b943 100644
--- a/404.html
+++ b/404.html
@@ -535,7 +535,7 @@
     
       <li><a href="/mosaic/group/fokus/"></a></li>
     
-      <li><a href="/mosaic/docs/visualization/filevis/">FileOutput</a></li>
+      <li><a href="/mosaic/docs/visualization/filevis/">File Output Generator</a></li>
     
       <li><a href="/mosaic/docs/simulators/application_simulator/">Application Simulator</a></li>
     
diff --git a/community/index.html b/community/index.html
index 3811e97..282ac0a 100644
--- a/community/index.html
+++ b/community/index.html
@@ -968,9 +968,9 @@
         <div class="logo col-2 d-none d-md-block">
           <div class="row justify-content-end">
             
-            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" class="view-list-item mb-3">
+            <a href="https://www.digitale-technologien.de/DT/Redaktion/DE/Standardartikel/IKT-EM/IKTIII-Projekte/ikt-III-projekt-eBaseCamp.html" class="view-list-item mb-3">
               
-              <img class="mx-auto" src="/mosaic/img/logos/projects/emerge.png" title="" alt="" width="90%">
+              <img class="mx-auto" src="/mosaic/img/logos/projects/ebasecamp.png" title="" alt="" width="60%">
             </a>
             
           </div>
@@ -978,9 +978,9 @@
         <div class="logo col-12 d-block d-md-none">
           <div class="row justify-content-center">
             
-              <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" class="view-list-item mb-3">
+              <a href="https://www.digitale-technologien.de/DT/Redaktion/DE/Standardartikel/IKT-EM/IKTIII-Projekte/ikt-III-projekt-eBaseCamp.html" class="view-list-item mb-3">
                 
-                <img class="mx-auto" src="/mosaic/img/logos/projects/emerge.png" title="" alt="" width="90%">
+                <img class="mx-auto" src="/mosaic/img/logos/projects/ebasecamp.png" title="" alt="" width="60%">
               </a>
             
           </div>
@@ -989,22 +989,20 @@
         <div class="text col-12 col-md-7">
           
             <h2>
-              <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE">
-              eMERGE
+              <a href="https://www.digitale-technologien.de/DT/Redaktion/DE/Standardartikel/IKT-EM/IKTIII-Projekte/ikt-III-projekt-eBaseCamp.html" title="eBaseCamp">
+              eBaseCamp
               </a>
             </h2>
           
           
-            <h3>Connecting eMobility</h3>
           
-          
-            <div class="desc">Second generation electric mobility project.</div>
+            <div class="desc">The eBaseCamp projects studies and implements concepts for electrification of commercial logistics and delivery traffic with digital booking platform, smart charging and interoperable networking.</div>
           
         </div>
 
         <div class="buttons col-3 d-none d-lg-block">
           <div class="row justify-content-end">
-            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE" class="mosaic-btn mosaic-btn-secondary">
+            <a href="https://www.digitale-technologien.de/DT/Redaktion/DE/Standardartikel/IKT-EM/IKTIII-Projekte/ikt-III-projekt-eBaseCamp.html" title="eBaseCamp" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
             </a>
             
@@ -1012,7 +1010,7 @@
         </div>
         <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
           <div class="row justify-content-start">
-            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE" class="mosaic-btn mosaic-btn-secondary">
+            <a href="https://www.digitale-technologien.de/DT/Redaktion/DE/Standardartikel/IKT-EM/IKTIII-Projekte/ikt-III-projekt-eBaseCamp.html" title="eBaseCamp" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
             </a>
             
@@ -1055,10 +1053,10 @@
             </h2>
           
           
-            <h3>Hybrid Infrastructure</h3>
+            <h3>Road Infrastructure ready for mixed vehicle traffic flows</h3>
           
           
-            <div class="desc">Preparation of road infrastructure to support the transition period and the coexistence of conventional and automated vehicles.</div>
+            <div class="desc">The INFRAMIX project was to help prepare road infrastructure to support the coexistence of conventional and automated vehicles. Its main objective was to design, upgrade, adapt and test both physical and digital elements of road infrastructure.</div>
           
         </div>
 
@@ -1115,10 +1113,10 @@
             </h2>
           
           
-            <h3>Cooperative Driving</h3>
+            <h3>Intelligent Maneuver Automation – cooperative hazard avoidance in realtime</h3>
           
           
-            <div class="desc">The IMAGinE (Intelligent Maneuver Automation – cooperative hazard avoidance in realtime) project is developing innovative driving assistance systems for cooperative driving.</div>
+            <div class="desc">The IMAGinE project has developed innovative driving assistance systems for cooperative driving. Individual driving behaviour is coordinated with other road users and the overall traffic situation based on automatic information exchange between vehicles and infrastructure.</div>
           
         </div>
 
@@ -1148,67 +1146,7 @@
         <div class="logo col-2 d-none d-md-block">
           <div class="row justify-content-end">
             
-            <a href="https://imagine-online.de/en/home/" class="view-list-item mb-3">
-              
-              <img class="mx-auto" src="/mosaic/img/logos/projects/simtd.jpg" title="" alt="" width="70%">
-            </a>
-            
-          </div>
-        </div>
-        <div class="logo col-12 d-block d-md-none">
-          <div class="row justify-content-center">
-            
-              <a href="https://imagine-online.de/en/home/" class="view-list-item mb-3">
-                
-                <img class="mx-auto" src="/mosaic/img/logos/projects/simtd.jpg" title="" alt="" width="70%">
-              </a>
-            
-          </div>
-        </div>
-
-        <div class="text col-12 col-md-7">
-          
-            <h2>
-              <a href="https://imagine-online.de/en/home/" title="simTD">
-              simTD
-              </a>
-            </h2>
-          
-          
-            <h3>Car-2-X Communication</h3>
-          
-          
-            <div class="desc">With the help of Car-to-X Communication - the electronic cross-linking of vehicles and infrastructure - infrastructure operators (e.g. traffic management centres), individual vehicles and a lot of further stakeholders have access to new, high resolution information in real time.</div>
-          
-        </div>
-
-        <div class="buttons col-3 d-none d-lg-block">
-          <div class="row justify-content-end">
-            <a href="https://imagine-online.de/en/home/" title="simTD" class="mosaic-btn mosaic-btn-secondary">
-              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
-            </a>
-            
-          </div>
-        </div>
-        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
-          <div class="row justify-content-start">
-            <a href="https://imagine-online.de/en/home/" title="simTD" class="mosaic-btn mosaic-btn-secondary">
-              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
-            </a>
-            
-          </div>
-        </div>
-      </div>
-    </div>
-    
-    
-    
-    <div class="project col-12">
-      <div class="row">
-        <div class="logo col-2 d-none d-md-block">
-          <div class="row justify-content-end">
-            
-            <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" class="view-list-item mb-3">
+            <a href="http://www.sendate.eu" class="view-list-item mb-3">
               
               <img class="mx-auto" src="/mosaic/img/logos/projects/sendate.png" title="" alt="" width="90%">
             </a>
@@ -1218,7 +1156,7 @@
         <div class="logo col-12 d-block d-md-none">
           <div class="row justify-content-center">
             
-              <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" class="view-list-item mb-3">
+              <a href="http://www.sendate.eu" class="view-list-item mb-3">
                 
                 <img class="mx-auto" src="/mosaic/img/logos/projects/sendate.png" title="" alt="" width="90%">
               </a>
@@ -1229,7 +1167,7 @@
         <div class="text col-12 col-md-7">
           
             <h2>
-              <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" title="SENDATE">
+              <a href="http://www.sendate.eu" title="SENDATE">
               SENDATE
               </a>
             </h2>
@@ -1238,13 +1176,13 @@
             <h3>Secure Networking for a Data Center Cloud in Europe</h3>
           
           
-            <div class="desc">Research program to provide the scientific, technical, and technological concepts and solutions for Data Center Infrastructure in Europe.</div>
+            <div class="desc">Research program to provide the scientific, technical, and technological concepts and solutions for Data Center Infrastructure in Europe. In the scope of the project, Fraunhofer FOKUS studied communication traffic generated by connected and automated vehicles.</div>
           
         </div>
 
         <div class="buttons col-3 d-none d-lg-block">
           <div class="row justify-content-end">
-            <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" title="SENDATE" class="mosaic-btn mosaic-btn-secondary">
+            <a href="http://www.sendate.eu" title="SENDATE" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
             </a>
             
@@ -1252,65 +1190,7 @@
         </div>
         <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
           <div class="row justify-content-start">
-            <a href="https://www.fokus.fraunhofer.de/go/en_streetlife" title="SENDATE" class="mosaic-btn mosaic-btn-secondary">
-              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
-            </a>
-            
-          </div>
-        </div>
-      </div>
-    </div>
-    
-    
-    
-    <div class="project col-12">
-      <div class="row">
-        <div class="logo col-2 d-none d-md-block">
-          <div class="row justify-content-end">
-            
-            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" class="view-list-item mb-3">
-              
-              <img class="mx-auto" src="/mosaic/img/logos/projects/streetlife.png" title="" alt="" width="80%">
-            </a>
-            
-          </div>
-        </div>
-        <div class="logo col-12 d-block d-md-none">
-          <div class="row justify-content-center">
-            
-              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" class="view-list-item mb-3">
-                
-                <img class="mx-auto" src="/mosaic/img/logos/projects/streetlife.png" title="" alt="" width="80%">
-              </a>
-            
-          </div>
-        </div>
-
-        <div class="text col-12 col-md-7">
-          
-            <h2>
-              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife">
-              Streetlife
-              </a>
-            </h2>
-          
-          
-          
-            <div class="desc">Steering towards Green and Perceptive Mobility of the Future.</div>
-          
-        </div>
-
-        <div class="buttons col-3 d-none d-lg-block">
-          <div class="row justify-content-end">
-            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife" class="mosaic-btn mosaic-btn-secondary">
-              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
-            </a>
-            
-          </div>
-        </div>
-        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
-          <div class="row justify-content-start">
-            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife" class="mosaic-btn mosaic-btn-secondary">
+            <a href="http://www.sendate.eu" title="SENDATE" class="mosaic-btn mosaic-btn-secondary">
               <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
             </a>
             
@@ -1379,6 +1259,302 @@
       </div>
     </div>
     
+    
+    
+    <div class="project col-12">
+      <div class="row">
+        <div class="logo col-2 d-none d-md-block">
+          <div class="row justify-content-end">
+            
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/streetlife.png" title="" alt="" width="80%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" class="view-list-item mb-3">
+                
+                <img class="mx-auto" src="/mosaic/img/logos/projects/streetlife.png" title="" alt="" width="80%">
+              </a>
+            
+          </div>
+        </div>
+
+        <div class="text col-12 col-md-7">
+          
+            <h2>
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife">
+              Streetlife
+              </a>
+            </h2>
+          
+          
+            <h3>Steering towards Green and Perceptive Mobility of the Future.</h3>
+          
+          
+            <div class="desc">STREETLIFE has developed a multimodal urban mobility information system that provides mobile information services to end users in order to promote and recommend sustainable transport alternatives, thus reducing traffic and related emissions in cities.</div>
+          
+        </div>
+
+        <div class="buttons col-3 d-none d-lg-block">
+          <div class="row justify-content-end">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/streetlife" title="Streetlife" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+      </div>
+    </div>
+    
+    
+    
+    <div class="project col-12">
+      <div class="row">
+        <div class="logo col-2 d-none d-md-block">
+          <div class="row justify-content-end">
+            
+            <a href="https://www.now-gmbh.de/de/bundesfoerderung-elektromobilitaet-vor-ort/projektfinder/modellregionen/rhein-ruhr/emerge-ii" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/emerge2.png" title="" alt="" width="90%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://www.now-gmbh.de/de/bundesfoerderung-elektromobilitaet-vor-ort/projektfinder/modellregionen/rhein-ruhr/emerge-ii" class="view-list-item mb-3">
+                
+                <img class="mx-auto" src="/mosaic/img/logos/projects/emerge2.png" title="" alt="" width="90%">
+              </a>
+            
+          </div>
+        </div>
+
+        <div class="text col-12 col-md-7">
+          
+            <h2>
+              <a href="https://www.now-gmbh.de/de/bundesfoerderung-elektromobilitaet-vor-ort/projektfinder/modellregionen/rhein-ruhr/emerge-ii" title="eMERGE II">
+              eMERGE II
+              </a>
+            </h2>
+          
+          
+          
+            <div class="desc">The eMERGE II funding project pursued the goal of using real customer data to evaluate and further develop usage, charging and marketing models in the field of electric mobility</div>
+          
+        </div>
+
+        <div class="buttons col-3 d-none d-lg-block">
+          <div class="row justify-content-end">
+            <a href="https://www.now-gmbh.de/de/bundesfoerderung-elektromobilitaet-vor-ort/projektfinder/modellregionen/rhein-ruhr/emerge-ii" title="eMERGE II" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.now-gmbh.de/de/bundesfoerderung-elektromobilitaet-vor-ort/projektfinder/modellregionen/rhein-ruhr/emerge-ii" title="eMERGE II" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+      </div>
+    </div>
+    
+    
+    
+    <div class="project col-12">
+      <div class="row">
+        <div class="logo col-2 d-none d-md-block">
+          <div class="row justify-content-end">
+            
+            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/emerge.png" title="" alt="" width="90%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" class="view-list-item mb-3">
+                
+                <img class="mx-auto" src="/mosaic/img/logos/projects/emerge.png" title="" alt="" width="90%">
+              </a>
+            
+          </div>
+        </div>
+
+        <div class="text col-12 col-md-7">
+          
+            <h2>
+              <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE">
+              eMERGE
+              </a>
+            </h2>
+          
+          
+          
+            <div class="desc">Based on a holistic approach, the eMERGE project has evaluated and further developed usage, charging and marketing models of electric mobility using real customer data from the Rhine-Ruhr and Berlin regions.</div>
+          
+        </div>
+
+        <div class="buttons col-3 d-none d-lg-block">
+          <div class="row justify-content-end">
+            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.fokus.fraunhofer.de/ba001755bc1b0dc8" title="eMERGE" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+      </div>
+    </div>
+    
+    
+    
+    <div class="project col-12">
+      <div class="row">
+        <div class="logo col-2 d-none d-md-block">
+          <div class="row justify-content-end">
+            
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/simtd1" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/simtd.png" title="" alt="" width="70%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/simtd1" class="view-list-item mb-3">
+                
+                <img class="mx-auto" src="/mosaic/img/logos/projects/simtd.png" title="" alt="" width="70%">
+              </a>
+            
+          </div>
+        </div>
+
+        <div class="text col-12 col-md-7">
+          
+            <h2>
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/simtd1" title="simTD">
+              simTD
+              </a>
+            </h2>
+          
+          
+            <h3>Sichere Intelligente Mobilität Testfeld Deutschland</h3>
+          
+          
+            <div class="desc">The project simTD proved Car-to-X Communication and their applications in a field test, using 400 vehicles of all major german vehicle manufacturers. With the help of Car-to-X Communication - the electronic cross-linking of vehicles and infrastructure - infrastructure operators (e.g. traffic management centres), individual vehicles and a lot of further stakeholders have access to new, high resolution information in real time.</div>
+          
+        </div>
+
+        <div class="buttons col-3 d-none d-lg-block">
+          <div class="row justify-content-end">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/simtd1" title="simTD" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/simtd1" title="simTD" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+      </div>
+    </div>
+    
+    
+    
+    <div class="project col-12">
+      <div class="row">
+        <div class="logo col-2 d-none d-md-block">
+          <div class="row justify-content-end">
+            
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/pre-drive-c2x" class="view-list-item mb-3">
+              
+              <img class="mx-auto" src="/mosaic/img/logos/projects/predrive.png" title="" alt="" width="90%">
+            </a>
+            
+          </div>
+        </div>
+        <div class="logo col-12 d-block d-md-none">
+          <div class="row justify-content-center">
+            
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/pre-drive-c2x" class="view-list-item mb-3">
+                
+                <img class="mx-auto" src="/mosaic/img/logos/projects/predrive.png" title="" alt="" width="90%">
+              </a>
+            
+          </div>
+        </div>
+
+        <div class="text col-12 col-md-7">
+          
+            <h2>
+              <a href="https://www.fokus.fraunhofer.de/en/asct/projects/pre-drive-c2x" title="PRE-DRIVE C2X">
+              PRE-DRIVE C2X
+              </a>
+            </h2>
+          
+          
+            <h3>Preparation for Driving implementation and Evaluation of C-2-X communication technology</h3>
+          
+          
+            <div class="desc">The main focus of the project was to find and implement tools and methods to validate C2X systems or C2X-based applications. Therefore, PRE-DRIVE C2X had two approaches: An integrated simulation environment from and a field operational tests.</div>
+          
+        </div>
+
+        <div class="buttons col-3 d-none d-lg-block">
+          <div class="row justify-content-end">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/pre-drive-c2x" title="PRE-DRIVE C2X" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+        <div class="buttons col-12 col-md-7 offset-0 offset-md-2 d-block d-lg-none">
+          <div class="row justify-content-start">
+            <a href="https://www.fokus.fraunhofer.de/en/asct/projects/pre-drive-c2x" title="PRE-DRIVE C2X" class="mosaic-btn mosaic-btn-secondary">
+              <i class="fa fa-external-link-alt" aria-hidden="true"></i> Project Website
+            </a>
+            
+          </div>
+        </div>
+      </div>
+    </div>
+    
   </div>
 
 
diff --git a/contribution/index.html b/contribution/index.html
index 496b583..e97b498 100644
--- a/contribution/index.html
+++ b/contribution/index.html
@@ -596,7 +596,7 @@
             
               
                 <div class="button mb-2 d-flex">
-                  <a class="mosaic-btn mosaic-btn-light" href="https://github.com/eclipse/mosaic" title="Eclipse MOSAIC @ GitHub">Eclipse MOSAIC @ GitHub</a>
+                  <a class="mosaic-btn mosaic-btn-light" href="https://github.com/eclipse/mosaic" title="Eclipse MOSAIC @ GitHub"><i class='fa fa-code-branch' aria-hidden='true'></i>Eclipse MOSAIC @ GitHub</a>
                 </div>
               
             
diff --git a/docs/extending_mosaic/java_docs/index.html b/docs/api_docs/index.html
similarity index 95%
rename from docs/extending_mosaic/java_docs/index.html
rename to docs/api_docs/index.html
index 3b59456..c651d1c 100644
--- a/docs/extending_mosaic/java_docs/index.html
+++ b/docs/api_docs/index.html
@@ -33,10 +33,10 @@
   
     
   
-  <meta name="description" content=" ">
+  <meta name="description" content="">
 
   
-  <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/">
+  <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/api_docs/">
 
   
 
@@ -219,12 +219,14 @@
   
 
   
+  <link rel="alternate" href="/mosaic/docs/api_docs/index.xml" type="application/rss+xml" title="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
+  
 
   <link rel="manifest" href="/mosaic/index.webmanifest">
   <link rel="icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_32x32_fill_lanczos_center_2.png">
   <link rel="apple-touch-icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_192x192_fill_lanczos_center_2.png">
 
-  <link rel="canonical" href="https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/">
+  <link rel="canonical" href="https://www.eclipse.org/mosaic/docs/api_docs/">
 
   
   
@@ -240,38 +242,33 @@
   <meta property="twitter:card" content="summary">
   
   <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/">
-  <meta property="og:title" content="Java Docs | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content=" "><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
+  <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/api_docs/">
+  <meta property="og:title" content="Javadoc of Eclipse MOSAIC source code | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
+  <meta property="og:description" content=""><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
-    
-      <meta property="article:published_time" content="2020-06-30T00:00:00&#43;01:00">
-    
-    <meta property="article:modified_time" content="2020-06-30T00:00:00&#43;01:00">
+    <meta property="og:updated_time" content="2020-06-30T00:00:00&#43;01:00">
   
 
   
 
 
 
+
   
 
 
   
 
 
-  
 
 
 
-
-
-  <title>Java Docs | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
+  <title>Javadoc of Eclipse MOSAIC source code | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
-<body id="top" data-spy="scroll" data-offset="70" data-target="#TableOfContents" class=" page-mosaic page-docs page-extending_mosaic page-java_docs ">
+<body id="top" data-spy="scroll" data-offset="70" data-target="#TableOfContents" class=" page-mosaic page-docs page-api_docs ">
 
   <aside class="search-results" id="search">
   <div class="container">
@@ -575,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item active">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li class="active">
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -792,10 +794,10 @@
       <article class="article">
 
         <div class="docs-article-container">
-          <h1>Java Docs</h1>
+          <h1>Javadoc of Eclipse MOSAIC source code</h1>
 
           <div class="article-style">
-            <!-- Java Docs need to be copied into /public/java_docs. -->
+            <!-- Java Docs need to be copied into /public/java_docs after site generation. -->
 <iframe src="/mosaic/java_docs/" style="width: 100%; height: calc(100vh - 230px);"></iframe>
 
           </div>
@@ -810,13 +812,6 @@
 <div class="post-nav row col-12">
   
   
-  
-  <div class="post-nav-item col-6">
-    <div class="meta-nav">Previous</div>
-    <a href="/mosaic/docs/extending_mosaic/delay_models/" rel="next">Delay Models</a>
-  </div>
-  
-  
 </div>
 
           </div>
diff --git a/docs/api_docs/index.xml b/docs/api_docs/index.xml
new file mode 100644
index 0000000..a25d362
--- /dev/null
+++ b/docs/api_docs/index.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Javadoc of Eclipse MOSAIC source code | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
+    <link>https://www.eclipse.org/mosaic/docs/api_docs/</link>
+      <atom:link href="https://www.eclipse.org/mosaic/docs/api_docs/index.xml" rel="self" type="application/rss+xml" />
+    <description>Javadoc of Eclipse MOSAIC source code</description>
+    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Tue, 30 Jun 2020 00:00:00 +0100</lastBuildDate>
+    <image>
+      <url>https://www.eclipse.org/mosaic/images/logo.svg</url>
+      <title>Javadoc of Eclipse MOSAIC source code</title>
+      <link>https://www.eclipse.org/mosaic/docs/api_docs/</link>
+    </image>
+    
+  </channel>
+</rss>
diff --git a/docs/building_scenarios/index.html b/docs/building_scenarios/index.html
index fbde85e..91de19b 100644
--- a/docs/building_scenarios/index.html
+++ b/docs/building_scenarios/index.html
@@ -572,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -590,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -733,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -885,7 +890,7 @@
 </ul>
 <h2 id="traffic-simulator-configuration">Traffic Simulator Configuration</h2>
 <p>The generated files for the used traffic simulator are placed into the folder named after that simulator, e. g. <code>sumo</code> .
-For example, the <code>&lt;scenarioName&gt;.sumo.cfg</code> describes the main configuration of the SUMO simulator, which should refer to a network file and a route file:</p>
+For example, the <code>&lt;scenarioName&gt;.sumocfg</code> describes the main configuration of the SUMO simulator, which should refer to a network file and a route file:</p>
 <pre><code class="language-xml">&lt;configuration&gt;
     &lt;input&gt;
         &lt;net-file value=&quot;MyScenario.net.xml&quot; /&gt;
@@ -895,11 +900,11 @@
 </code></pre>
 <p>While the <code>*.net.xml</code> is a mandatory file to be placed within the <code>sumo</code> directory, the <code>*.rou.xml</code> is automatically generated
 by the SumoAmbassador when the simulation is started. More information on the configuration of SUMO can be found 
-<a href="/docs/simulators/traffic/#configuration">here</a>.</p>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#configuration">here</a>.</p>
 <h2 id="applications-and-mapping">Applications and Mapping</h2>
 <h3 id="vehicles">Vehicles</h3>
-<p>Usually you want the simulated vehicles to be equipped with some kind of applications that inﬂuence the
-vehicles behavior. To do that you copy the jar files of your applications to the folder <code>&lt;scenarioName&gt;/applicationNT</code> .
+<p>Usually you want the simulated vehicles to be equipped with some kind of applications that influence the
+vehicle&rsquo;s behavior. To do that you copy the jar files of your applications to the folder <code>&lt;scenarioName&gt;/application</code> .
 Having the applications in place you will have to create a <code>mapping_config.json</code> file in the folder <code>&lt;scenarioName&gt;/mapping</code> .</p>
 <p>The following file would spawn 1 vehicle every five seconds (720 veh/hour divided by 3600 sec) until it reaches the max number of vehicles: 500. All the vehicles would be equipped with an application sending CA-messages periodically.</p>
 <pre><code class="language-json">{
@@ -910,7 +915,7 @@
             &quot;decel&quot;: 4.5,
             &quot;maxSpeed&quot;: 80.0,
             &quot;applications&quot;: [
-                &quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle&quot;
+                &quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp&quot;
             ]
         }
     ],
@@ -932,13 +937,13 @@
         {
             &quot;tlGroupId&quot;: &quot;Bismarkstr_Krummestr&quot;,
             &quot;applications&quot;: [
-                &quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp&quot;
+                &quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&quot;
             ]
         }
     ]
 }
 </code></pre>
-<p>or by referring to previosly defined prototypes:</p>
+<p>or by referring to previously defined prototypes:</p>
 <pre><code class="language-json">{
     &quot;prototypes&quot;:[
         {
@@ -947,13 +952,13 @@
             &quot;decel&quot;: 4.5,
             &quot;maxSpeed&quot;: 80.0,
             &quot;applications&quot;: [
-                &quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle&quot;
+                &quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp&quot;
             ]
         },
         {
             &quot;name&quot;: &quot;TrafficLight&quot;,
             &quot;applications&quot;: [
-                &quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp&quot;
+                &quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&quot;
             ]
         }
     ],
@@ -969,13 +974,13 @@
     &quot;trafficLights&quot;: [
         {
             &quot;tlGroupId&quot;: &quot;Bismarkstr_Krummestr&quot;,
-            &quot;prototype&quot;: &quot;TrafficLight&quot;
+            &quot;name&quot;: &quot;TrafficLight&quot;
         }
     ]
 }
 </code></pre>
 <p>Please note that traffic light name and traffic light itself in the mapping file stand for a traffic light group controlling a whole junction. Traffic light group can consist of many individual traffic lights controlling an exact lane. The value of the &ldquo;tlGroupId&rdquo; key MUST coincide with the name of the traffic light group in the traffic simulator related configuration file (with tlLogic id for SUMO and with junction id for Phabmacs).</p>
-<p>For SUMO, the description of traffic light groups and their programs can be found in scenarioname.net.xml:</p>
+<p>For SUMO, the description of traffic light groups and their programs can be found in <code>&lt;scenarioname&gt;.net.xml</code>:</p>
 <pre><code class="language-xml">&lt;tlLogic id=&quot;26704448&quot; type=&quot;static&quot; programID=&quot;1&quot; offset=&quot;0&quot;&gt;
     &lt;phase duration=&quot;39&quot; state=&quot;GGrG&quot;/&gt;
     &lt;phase duration=&quot;6&quot; state=&quot;yyry&quot;/&gt;
@@ -983,132 +988,143 @@
     &lt;phase duration=&quot;6&quot; state=&quot;rryy&quot;/&gt;
 &lt;/tlLogic&gt;
 </code></pre>
-<p>mapping_config.json:</p>
+<p>Corresponding <code>mapping_config.json</code>:</p>
 <pre><code class="language-json">{
     ...
     &quot;trafficLights&quot;: [
         {
             &quot;tlGroupId&quot;: &quot;26704448&quot;,
-            &quot;prototype&quot;: &quot;TrafficLight&quot;
+            &quot;name&quot;: &quot;TrafficLight&quot;
         }
     ]
 }
 </code></pre>
 <p>More information on the mapping configuration can be found 
-<a href="/docs/simulators/traffic/#configuration">here</a>.</p>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#configuration">here</a>.</p>
 <p>For more information about how SUMO traffic lights work please refer to 
 <a href="https://sumo.dlr.de/docs/Simulation/Traffic_Lights.html" target="_blank" rel="noopener">SUMO Traffic Lights</a>.</p>
-<p>For Phabmacs, one should create a separate configuration file containing the description of traffic light groups and traffic light programs.</p>
-<p>mapping_config.json:</p>
-<pre><code class="language-json">{
+<!--
+For Phabmacs, one should create a separate configuration file containing the description of traffic light groups and traffic light programs. 
+
+mapping_config.json:
+
+```json
+{
     ...
-    &quot;trafficLights&quot;: [
+    "trafficLights": [
         {
-            &quot;tlGroupId&quot;: &quot;Bismarkstr_Krummestr&quot;,
-            &quot;prototype&quot;: &quot;TrafficLight&quot;
+            "tlGroupId": "Bismarkstr_Krummestr",
+            "name": "TrafficLight"
         }
     ]
 }
-</code></pre>
-<p>phabmacs_config.json:</p>
-<pre><code class="language-json">{
+```
+
+phabmacs_config.json:
+
+```json
+{
     ...
-    &quot;ttlFile&quot;:&quot;berlinTrafficLights.ttl.json&quot;,
+    "ttlFile":"berlinTrafficLights.ttl.json",
     ...
 }
-</code></pre>
-<p>An example of how the traffic light configuration can look like in berlinTrafficLights.ttl.json:</p>
-<pre><code class="language-json">{
-    &quot;programs&quot;: [
+```
+
+An example of how the traffic light configuration can look like in berlinTrafficLights.ttl.json:
+
+```json
+{
+    "programs": [
         {
-            &quot;id&quot;: &quot;default&quot;,
-            &quot;phases&quot;: [
+            "id": "default",
+            "phases": [
                 {
-                    &quot;id&quot;: &quot;0&quot;,
-                    &quot;duration&quot;: 10,
-                    &quot;groupStates&quot;: [
-                        &quot;green&quot;, &quot;red&quot;, &quot;green&quot;, &quot;red&quot;
+                    "id": "0",
+                    "duration": 10,
+                    "groupStates": [
+                        "green", "red", "green", "red"
                     ]
                 }, 
                 {
-                    &quot;id&quot;: &quot;1&quot;,
-                    &quot;duration&quot;: 15,
-                    &quot;groupStates&quot;: [
-                        &quot;red&quot;, &quot;green&quot;, &quot;red&quot;, &quot;green&quot; 
+                    "id": "1",
+                    "duration": 15,
+                    "groupStates": [
+                        "red", "green", "red", "green" 
                     ]
                 }
             ],
-            &quot;transitions&quot;: [
+            "transitions": [
                 {
-                    &quot;from&quot;: &quot;0&quot;,
-                    &quot;to&quot;: &quot;1&quot;,
-                    &quot;yellowPhaseDuration&quot;: 3,
-                    &quot;allRedPhaseDuration&quot;: 3,
-                    &quot;redYellowPhaseDuration&quot;: 1
+                    "from": "0",
+                    "to": "1",
+                    "yellowPhaseDuration": 3,
+                    "allRedPhaseDuration": 3,
+                    "redYellowPhaseDuration": 1
                 },
                 {
-                    &quot;from&quot;: &quot;1&quot;,
-                    &quot;to&quot;: &quot;0&quot;,
-                    &quot;yellowPhaseDuration&quot;: 3,
-                    &quot;allRedPhaseDuration&quot;: 6,
-                    &quot;redYellowPhaseDuration&quot;: 1
+                    "from": "1",
+                    "to": "0",
+                    "yellowPhaseDuration": 3,
+                    "allRedPhaseDuration": 6,
+                    "redYellowPhaseDuration": 1
                 }
             ]
         }
         
     ],
-    &quot;junctions&quot;: [
+    "junctions": [
         {
-            &quot;id&quot;: &quot;Bismarkstr_Krummestr&quot;,
-            &quot;signalGroups&quot;: [
+            "id": "Bismarkstr_Krummestr",
+            "signalGroups": [
                 {
-                    &quot;id&quot;: &quot;K1&quot;,
-                    &quot;tlLocation&quot;:{
-                        &quot;latitude&quot;: 52.51187173469569,
-                        &quot;longitude&quot;: 13.309426296977083
+                    "id": "K1",
+                    "tlLocation":{
+                        "latitude": 52.51187173469569,
+                        "longitude": 13.309426296977083
                     }
         
                 },
                 {
-                    &quot;id&quot;: &quot;K2&quot;,
-                    &quot;tlLocation&quot;:{
-                        &quot;latitude&quot;: 52.511666041314484,
-                        &quot;longitude&quot;: 13.3092408198885
+                    "id": "K2",
+                    "tlLocation":{
+                        "latitude": 52.511666041314484,
+                        "longitude": 13.3092408198885
                     }
                 },
                 {
-                    &quot;id&quot;: &quot;K3&quot;,
-                    &quot;tlLocation&quot;:{
-                        &quot;latitude&quot;: 52.51155112036543,
-                        &quot;longitude&quot;: 13.30933672655086
+                    "id": "K3",
+                    "tlLocation":{
+                        "latitude": 52.51155112036543,
+                        "longitude": 13.30933672655086
                     }
                 },
                 {
-                    &quot;id&quot;: &quot;K4&quot;,
-                    &quot;tlLocation&quot;:{
-                        &quot;latitude&quot;: 52.51200251720905, 
-                        &quot;longitude&quot;: 13.30936414260184, 
-                        &quot;heading&quot;: 180.0
+                    "id": "K4",
+                    "tlLocation":{
+                        "latitude": 52.51200251720905, 
+                        "longitude": 13.30936414260184, 
+                        "heading": 180.0
                     },
-                    &quot;lanes&quot;: [ 0 ]
+                    "lanes": [ 0 ]
                 }
             ],
-            &quot;availablePrograms&quot;: [
-                &quot;default&quot;
+            "availablePrograms": [
+                "default"
             ]
         }
     ]
 }
-</code></pre>
-<p>The <code>applicationNT</code> folder furthermore needs a generated database file <code>&lt;scenarioName&gt;.db</code> . This database file
+```
+-->
+<p>The <code>application</code> folder furthermore needs a generated database file <code>&lt;scenarioName&gt;.db</code> . This database file
 contains information about the road network (road topology) and all routes the vehicles can drive on. This file
 is usually generated by the tool <code>scenario-convert</code>, which is described 
-<a href="/docs/building_scenarios/scenario_convert">here</a> in detail.</p>
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/">here</a> in detail.</p>
 <h2 id="communication-simulator">Communication Simulator</h2>
 <p>The configuration of the communication parameters are usually not dependent from the location of the road network. Therefore,
 most of the required files can be extracted from other scenarios, such 
-<a href="/tutorials/barnim_basic">Barnim</a> or 
-<a href="/tutorials/tiergarten">Tiergarten</a>.
+<a href="https://www.eclipse.org/mosaic/tutorials/barnim_basic/">Barnim</a> or 
+<a href="https://www.eclipse.org/mosaic/tutorials/tiergarten/">Tiergarten</a>.
 Depending on the simulator you will need to configure the geographic extend of the simulation
 area. You can ﬁnd that data in the trafﬁc simulators network file, e.g. SUMOs <code>*.net.xml</code> contains this
 information in the <code>convBoundary</code> attribute of the location tag.</p>
@@ -1120,13 +1136,13 @@
 </ul>
 <p>Further information on the communication simulators can be found in:
 <br>
-<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/">ns-3</a>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/">Eclipse MOSAIC SNS</a>
 <br>
-<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/">SNS</a>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/">Eclipse MOSAIC Cell</a>
 <br>
-<a href="/docs/simulators/network_simulator_cell">Eclipse MOSAIC Cell</a>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/">OMNeT++</a>
 <br>
-<a href="/docs/simulators/network/network_simulator_omnetpp">OMNeT++</a></p>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/">ns-3</a></p>
 
           </div>
 
diff --git a/docs/building_scenarios/index.xml b/docs/building_scenarios/index.xml
index 04b343a..523a40a 100644
--- a/docs/building_scenarios/index.xml
+++ b/docs/building_scenarios/index.xml
@@ -20,11 +20,19 @@
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The tool &lt;strong&gt;scenario-convert&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
-For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
+  &lt;p&gt;The tool &lt;strong&gt;scenario-convert&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
+&lt;p&gt;However, you can use scenario-convert &lt;strong&gt;for free&lt;/strong&gt; to generate scenarios which are executable with Eclipse MOSAIC. &lt;strong&gt;&lt;a href=&#34;https://www.dcaiti.tu-berlin.de/research/simulation/download/&#34; title=&#34;Get it here&#34;&gt;Get it here&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;p&gt;Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from
+&lt;div style=&#34;text-align: center;&#34;&gt;
+
+
+    
+
+&lt;a class=&#34;mosaic-btn mosaic-btn-primary&#34; href=&#34;https://www.dcaiti.tu-berlin.de/research/simulation/download/&#34; title=&#34;Download scenario-convert from DCAITI mirror&#34;&gt;&lt;i class=&#34;fas fa-download&#34;&gt;&lt;/i&gt;Download scenario-convert from DCAITI mirror&lt;/a&gt;
+
+&lt;/div&gt;
+&lt;p&gt;&lt;strong&gt;scenario-convert&lt;/strong&gt; is a useful tool, which can be used to create new scenarios or import and export data from
 external sources like OpenStreetMap, SUMO etc into your existing scenarios.&lt;br&gt;
 It will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation,
 route calculation&amp;hellip;).&lt;br&gt;
@@ -32,11 +40,11 @@
 Furthermore one can choose, whether to use routes generated by &lt;code&gt;scenario-convert&lt;/code&gt;, use existing
 routes or  build own routes via route generation tools (e.g. DUAROUTER by SUMO).&lt;/p&gt;
 &lt;p&gt;This chapter intends to highlight the most common workflows for the work with &lt;code&gt;scenario-convert&lt;/code&gt;.
-We will be using &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;&lt;code&gt;this&lt;/code&gt;&lt;/a&gt; OSM-file for most of the
+We will be using &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;&lt;code&gt;this&lt;/code&gt;&lt;/a&gt; OSM-file for most of the
 use cases So feel free to follow along with the steps to get a better understanding on how the &lt;code&gt;scenario-convert&lt;/code&gt;-script functions.&lt;/p&gt;
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
-&lt;p&gt;&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;Complete reference of the scenario-convert script&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;Here&lt;/a&gt; you can find a complete reference to all options scenario-convert offers.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
 
@@ -318,9 +326,9 @@
 &lt;/ul&gt;
 &lt;p&gt;With all of this you can now start further developing your scenario. For a more detailed description on the next steps
 please have a look 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/&#34;&gt;here (Simulation Scenarios)&lt;/a&gt; and
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/&#34;&gt;here (Simulation Scenarios)&lt;/a&gt; and
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/application_development/&#34;&gt;here (Application Development)&lt;/a&gt;.&lt;br&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/&#34;&gt;here (Application Development)&lt;/a&gt;.&lt;br&gt;
 While this is the &amp;lsquo;happy world&amp;rsquo; workflow it is often necessary to manually adapt routes and
 insert them into your scenario. The following workflow
 will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.&lt;/p&gt;
@@ -415,8 +423,8 @@
 &lt;h3 id=&#34;attached-files&#34;&gt;Attached Files&lt;/h3&gt;
 &lt;p&gt;A list of all attached files in this chapter:&lt;/p&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;Steglitz OSM-file&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.rou.xml&#34; download&gt;Steglitz Route-file&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;Steglitz OSM-file&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.rou.xml&#34; download&gt;Steglitz Route-file&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;h2 id=&#34;reference-documentation-for-scenario-convert&#34;&gt;Reference documentation for scenario-convert&lt;/h2&gt;
 &lt;h3 id=&#34;usage-of-scenario-convert&#34;&gt;Usage of scenario-convert&lt;/h3&gt;
@@ -583,11 +591,11 @@
       <description>&lt;p&gt;This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC.
 We will continue with the tutorial-style explanations following up on the Steglitz-example from the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert&#34;&gt;previous chapter&lt;/a&gt;. For more detailed explanations of the configurations have a
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/&#34;&gt;previous chapter&lt;/a&gt;. For more detailed explanations of the configurations have a
 look at 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios&#34;&gt;this chapter&lt;/a&gt;.&lt;br&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/&#34;&gt;this chapter&lt;/a&gt;.&lt;br&gt;
 If you already played with the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial you probably noticed, that it contains far
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim&lt;/a&gt;-tutorial you probably noticed, that it contains far
 more folders in the scenario structure compared to the Steglitz example. Those additional directories contain
 configurations for various simulators.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ Barnim
@@ -617,10 +625,10 @@
    |  └─ steglitz.sumocfg
    └─ scenario_config.json .................. Basic configuration of the simulation scenario
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;If you have a look in the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz_mapping_config.json&#34; download&gt;&lt;code&gt;mapping_config.json&lt;/code&gt;&lt;/a&gt;,
+&lt;p&gt;If you have a look in the &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz_mapping_config.json&#34; download&gt;&lt;code&gt;mapping_config.json&lt;/code&gt;&lt;/a&gt;,
 you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this
 file as a blueprint for your own scenario, have a look 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/#applications-and-mapping&#34;&gt;here&lt;/a&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/#applications-and-mapping&#34;&gt;here&lt;/a&gt;
 to get more details on possible adaptions.&lt;br&gt;
 Below is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars
 follow.&lt;/p&gt;
@@ -645,7 +653,7 @@
 &lt;h2 id=&#34;communication-simulators-cell-ns3-omnetpp-sns&#34;&gt;Communication Simulators (cell, ns3, omnetpp, sns)&lt;/h2&gt;
 &lt;p&gt;We won&amp;rsquo;t implement any functionality for the steglitz example here but rather have a look at the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &lt;code&gt;scenario_config.json&lt;/code&gt; of the Barnim scenario you can see where the
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &lt;code&gt;scenario_config.json&lt;/code&gt; of the Barnim scenario you can see where the
 communication simulators are activated:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: {
     &amp;quot;cell&amp;quot;: false,
@@ -655,16 +663,16 @@
 }
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;Our 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials&#34;&gt;tutorials&lt;/a&gt; and 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/&#34;&gt;tutorials&lt;/a&gt; and 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/additional_examples/&#34;&gt;additional examples&lt;/a&gt; demonstrate use cases for
 communication usages and you should have a look at them if you are uncertain where to start. Furthermore we
 recommend copying the configuration-files for the simulator you are going to use from the 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim scenario&lt;/a&gt;. It
 contains the most complete configurations and is well maintained.&lt;br&gt;
 If you are an expert with one of the external network simulators (
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns3&lt;/a&gt;,
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/&#34;&gt;ns3&lt;/a&gt;,
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;) the Barnim scenario will also give
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++&lt;/a&gt;) the Barnim scenario will also give
 you an overview on how to configure those.&lt;/p&gt;
 &lt;h2 id=&#34;other-simulators&#34;&gt;Other Simulators&lt;/h2&gt;
 &lt;p&gt;Here we&amp;rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the &lt;code&gt;Event Server&lt;/code&gt; and the
@@ -673,19 +681,17 @@
 &lt;p&gt;The event server can be used to emit events to vehicles inside it&amp;rsquo;s predefined borders. In the Barnim scenario
 an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.&lt;br&gt;
 Every defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look
-at the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/eventserver_config.json&#34; download&gt;&lt;code&gt;eventserver_config.json&lt;/code&gt;&lt;/a&gt; to see how this can be
+at the &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/eventserver_config.json&#34; download&gt;&lt;code&gt;eventserver_config.json&lt;/code&gt;&lt;/a&gt; to see how this can be
 configured. If you want to use the event server make sure to have it enabled in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
 &lt;h3 id=&#34;battery&#34;&gt;Battery&lt;/h3&gt;
 &lt;p&gt;The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can
-dynamically load your own battery, vehicle and environment models. Have a look a the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/battery_config.json&#34; download&gt;&lt;code&gt;battery_config.json&lt;/code&gt;&lt;/a&gt;, taken from the Barnim scenario.
+dynamically load your own battery, vehicle and environment models. Have a look a the &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/battery_config.json&#34; download&gt;&lt;code&gt;battery_config.json&lt;/code&gt;&lt;/a&gt;, taken from the Barnim scenario.
 The three models used are included with Eclipse MOSAIC and you can freely use them.&lt;/p&gt;
 &lt;h2 id=&#34;output&#34;&gt;Output&lt;/h2&gt;
 &lt;p&gt;There are various options to generate output results of your simulations (see the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/visualization/filevis&#34;&gt;visualization chapter&lt;/a&gt;). Visualizing doesn&amp;rsquo;t necessarily mean you
-will end up with moving pictures of cars driving along your predefined routes.&lt;br&gt;
-Let&amp;rsquo;s get back to the steglitz-scenario and try to calculate the average travel time of our vehicles.
-The first step is to create a file called &lt;code&gt;visualizer_config.xml&lt;/code&gt; in a new directory called &lt;code&gt;visualizer&lt;/code&gt;.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/visualization/filevis/&#34;&gt;visualization chapter&lt;/a&gt;).&lt;/p&gt;
+&lt;p&gt;The first step is to create a file called &lt;code&gt;output_config.xml&lt;/code&gt; in a new directory called &lt;code&gt;output&lt;/code&gt;.
 If you used the scenario-convert tool the file should be generated automatically.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ steglitz
    ├─ application
@@ -699,21 +705,24 @@
    |  └─ steglitz.sumocfg
    └─ scenario_config.json .................. Basic configuration of the simulation scenario
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Next make sure the visualization federate is activated in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;&amp;lt;!-- Visualization --&amp;gt;
-&amp;lt;federate id=&amp;quot;visualizer&amp;quot; active=&amp;quot;true&amp;quot;/&amp;gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Now we have to configure the statistics visualizer itself. This &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz_visualizer_config.xml&#34; download&gt;&lt;code&gt;visualizer_config.xml&lt;/code&gt;&lt;/a&gt; contains the basic
+&lt;p&gt;Example configuration for output generation can be taken from the example scenarios from the tutorials section.&lt;/p&gt;
+&lt;!--
+Next make sure the visualization federate is activated in the `scenario_config.json`.
+```
+&lt;!-- Visualization --&gt;
+&lt;federate id=&#34;output&#34; active=&#34;true&#34;/&gt;
+```
+Now we have to configure the statistics visualizer itself. This &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz_visualizer_config.xml&#34; download&gt;`visualizer_config.xml`&lt;/a&gt; contains the basic
 configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please
-refer to 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/visualization/statistics&#34;&gt;statistics visualizer&lt;/a&gt;.&lt;br&gt;
-Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called
-&lt;code&gt;AverageVehicleTravelTime.csv&lt;/code&gt; in a directory called &lt;code&gt;StatisticsVisualizer&lt;/code&gt;:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;group;group-value;total;
+refer to [statistics visualizer](/docs/visualization/statistics).  
+Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called 
+`AverageVehicleTravelTime.csv` in a directory called `StatisticsVisualizer`:
+```
+group;group-value;total;
 Car;186.369;336;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;This tells us that there was a total amount of 336 vehicles of the type &lt;code&gt;car&lt;/code&gt; in the simulation, which traveled
-for 186.369  seconds on average.&lt;/p&gt;
+```
+This tells us that there was a total amount of 336 vehicles of the type `car` in the simulation, which traveled
+for 186.369  seconds on average.--&gt;
 &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
 After this small, hands-on introduction to visualizers you should know where to configure them and after some additional
 reading, you should be able to configure different types of visualizers for your use-cases.&lt;/p&gt;
diff --git a/docs/building_scenarios/scenario_configuration/index.html b/docs/building_scenarios/scenario_configuration/index.html
index 2c77272..407f44d 100644
--- a/docs/building_scenarios/scenario_configuration/index.html
+++ b/docs/building_scenarios/scenario_configuration/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -820,11 +825,11 @@
             <p>This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC.
 We will continue with the tutorial-style explanations following up on the Steglitz-example from the
 
-<a href="/docs/building_scenarios/scenario_convert">previous chapter</a>. For more detailed explanations of the configurations have a
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/">previous chapter</a>. For more detailed explanations of the configurations have a
 look at 
-<a href="/docs/building_scenarios/scenarios">this chapter</a>.<br>
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/">this chapter</a>.<br>
 If you already played with the 
-<a href="/tutorials/barnim_basic">Barnim</a>-tutorial you probably noticed, that it contains far
+<a href="https://www.eclipse.org/mosaic/tutorials/barnim_basic/">Barnim</a>-tutorial you probably noticed, that it contains far
 more folders in the scenario structure compared to the Steglitz example. Those additional directories contain
 configurations for various simulators.</p>
 <pre><code class="language-FOLDER">└─ Barnim
@@ -854,10 +859,10 @@
    |  └─ steglitz.sumocfg
    └─ scenario_config.json .................. Basic configuration of the simulation scenario
 </code></pre>
-<p>If you have a look in the <a href="/docs/building_scenarios/files/steglitz_mapping_config.json" download><code>mapping_config.json</code></a>,
+<p>If you have a look in the <a href="/mosaic/docs/building_scenarios/files/steglitz_mapping_config.json" download><code>mapping_config.json</code></a>,
 you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this
 file as a blueprint for your own scenario, have a look 
-<a href="/docs/building_scenarios/scenarios/#applications-and-mapping">here</a>
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/#applications-and-mapping">here</a>
 to get more details on possible adaptions.<br>
 Below is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars
 follow.</p>
@@ -882,7 +887,7 @@
 <h2 id="communication-simulators-cell-ns3-omnetpp-sns">Communication Simulators (cell, ns3, omnetpp, sns)</h2>
 <p>We won&rsquo;t implement any functionality for the steglitz example here but rather have a look at the
 
-<a href="/tutorials/barnim_basic">Barnim</a>-tutorial. In the <code>scenario_config.json</code> of the Barnim scenario you can see where the
+<a href="https://www.eclipse.org/mosaic/tutorials/barnim_basic/">Barnim</a>-tutorial. In the <code>scenario_config.json</code> of the Barnim scenario you can see where the
 communication simulators are activated:</p>
 <pre><code class="language-json">&quot;federates&quot;: {
     &quot;cell&quot;: false,
@@ -892,16 +897,16 @@
 }
 </code></pre>
 <p>Our 
-<a href="/tutorials">tutorials</a> and 
-<a href="/tutorials/additional_examples/">additional examples</a> demonstrate use cases for
+<a href="https://www.eclipse.org/mosaic/tutorials/">tutorials</a> and 
+<a href="https://www.eclipse.org/mosaic/tutorials/additional_examples/">additional examples</a> demonstrate use cases for
 communication usages and you should have a look at them if you are uncertain where to start. Furthermore we
 recommend copying the configuration-files for the simulator you are going to use from the 
-<a href="/tutorials/barnim_basic/">Barnim scenario</a>. It
+<a href="https://www.eclipse.org/mosaic/tutorials/barnim_basic/">Barnim scenario</a>. It
 contains the most complete configurations and is well maintained.<br>
 If you are an expert with one of the external network simulators (
-<a href="/docs/simulators/network_simulator_ns3">ns3</a>,
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/">ns3</a>,
 
-<a href="/docs/simulators/network_simulator_omnetpp">OMNeT++</a>) the Barnim scenario will also give
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/">OMNeT++</a>) the Barnim scenario will also give
 you an overview on how to configure those.</p>
 <h2 id="other-simulators">Other Simulators</h2>
 <p>Here we&rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the <code>Event Server</code> and the
@@ -910,19 +915,17 @@
 <p>The event server can be used to emit events to vehicles inside it&rsquo;s predefined borders. In the Barnim scenario
 an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.<br>
 Every defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look
-at the <a href="/docs/building_scenarios/files/eventserver_config.json" download><code>eventserver_config.json</code></a> to see how this can be
+at the <a href="/mosaic/docs/building_scenarios/files/eventserver_config.json" download><code>eventserver_config.json</code></a> to see how this can be
 configured. If you want to use the event server make sure to have it enabled in the <code>scenario_config.json</code>.</p>
 <h3 id="battery">Battery</h3>
 <p>The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can
-dynamically load your own battery, vehicle and environment models. Have a look a the <a href="/docs/building_scenarios/files/battery_config.json" download><code>battery_config.json</code></a>, taken from the Barnim scenario.
+dynamically load your own battery, vehicle and environment models. Have a look a the <a href="/mosaic/docs/building_scenarios/files/battery_config.json" download><code>battery_config.json</code></a>, taken from the Barnim scenario.
 The three models used are included with Eclipse MOSAIC and you can freely use them.</p>
 <h2 id="output">Output</h2>
 <p>There are various options to generate output results of your simulations (see the
 
-<a href="/docs/visualization/filevis">visualization chapter</a>). Visualizing doesn&rsquo;t necessarily mean you
-will end up with moving pictures of cars driving along your predefined routes.<br>
-Let&rsquo;s get back to the steglitz-scenario and try to calculate the average travel time of our vehicles.
-The first step is to create a file called <code>visualizer_config.xml</code> in a new directory called <code>visualizer</code>.
+<a href="https://www.eclipse.org/mosaic/docs/visualization/filevis/">visualization chapter</a>).</p>
+<p>The first step is to create a file called <code>output_config.xml</code> in a new directory called <code>output</code>.
 If you used the scenario-convert tool the file should be generated automatically.</p>
 <pre><code class="language-FOLDER">└─ steglitz
    ├─ application
@@ -936,21 +939,24 @@
    |  └─ steglitz.sumocfg
    └─ scenario_config.json .................. Basic configuration of the simulation scenario
 </code></pre>
-<p>Next make sure the visualization federate is activated in the <code>scenario_config.json</code>.</p>
-<pre><code>&lt;!-- Visualization --&gt;
-&lt;federate id=&quot;visualizer&quot; active=&quot;true&quot;/&gt;
-</code></pre>
-<p>Now we have to configure the statistics visualizer itself. This <a href="/docs/building_scenarios/files/steglitz_visualizer_config.xml" download><code>visualizer_config.xml</code></a> contains the basic
+<p>Example configuration for output generation can be taken from the example scenarios from the tutorials section.</p>
+<!--
+Next make sure the visualization federate is activated in the `scenario_config.json`.
+```
+<!-- Visualization -->
+<federate id="output" active="true"/>
+```
+Now we have to configure the statistics visualizer itself. This <a href="/mosaic/docs/building_scenarios/files/steglitz_visualizer_config.xml" download>`visualizer_config.xml`</a> contains the basic
 configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please
-refer to 
-<a href="/docs/visualization/statistics">statistics visualizer</a>.<br>
-Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called
-<code>AverageVehicleTravelTime.csv</code> in a directory called <code>StatisticsVisualizer</code>:</p>
-<pre><code>group;group-value;total;
+refer to [statistics visualizer](/docs/visualization/statistics).  
+Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called 
+`AverageVehicleTravelTime.csv` in a directory called `StatisticsVisualizer`:
+```
+group;group-value;total;
 Car;186.369;336;
-</code></pre>
-<p>This tells us that there was a total amount of 336 vehicles of the type <code>car</code> in the simulation, which traveled
-for 186.369  seconds on average.</p>
+```
+This tells us that there was a total amount of 336 vehicles of the type `car` in the simulation, which traveled
+for 186.369  seconds on average.-->
 <p><strong>Conclusion</strong><br>
 After this small, hands-on introduction to visualizers you should know where to configure them and after some additional
 reading, you should be able to configure different types of visualizers for your use-cases.</p>
diff --git a/docs/building_scenarios/scenario_convert/index.html b/docs/building_scenarios/scenario_convert/index.html
index 9f7147d..d85c0fa 100644
--- a/docs/building_scenarios/scenario_convert/index.html
+++ b/docs/building_scenarios/scenario_convert/index.html
@@ -34,8 +34,8 @@
     
   
   <meta name="description" content="The tool scenario-convert is part of MOSAIC Extended.
-For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
-  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.">
+However, you can use scenario-convert for free to generate scenarios which are executable with Eclipse MOSAIC. Get it here.
+  Download scenario-convert from DCAITI mirror  scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.">
 
   
   <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/">
@@ -245,8 +245,8 @@
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/">
   <meta property="og:title" content="Scenario Convert | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:description" content="The tool scenario-convert is part of MOSAIC Extended.
-For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
-  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
+However, you can use scenario-convert for free to generate scenarios which are executable with Eclipse MOSAIC. Get it here.
+  Download scenario-convert from DCAITI mirror  scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
     
@@ -579,10 +579,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -597,11 +593,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -740,8 +736,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -828,11 +833,19 @@
             <div class="alert alert-extended">
   <span class="extended-icon" style="background-image: url(/mosaic/img/alert-extended.svg)"></span>
   <div>
-<p>The tool <strong>scenario-convert</strong> is part of <strong><a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a></strong>.<br>
-For further information on licenses, feel free to contact us via <strong><a href="mailto:mosaic@fokus.fraunhofer.de"><a href="mailto:mosaic@fokus.fraunhofer.de">mosaic@fokus.fraunhofer.de</a></a></strong>.</p>
+  <p>The tool <strong>scenario-convert</strong> is part of <strong><a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a></strong>.</p>
+<p>However, you can use scenario-convert <strong>for free</strong> to generate scenarios which are executable with Eclipse MOSAIC. <strong><a href="https://www.dcaiti.tu-berlin.de/research/simulation/download/" title="Get it here">Get it here</a>.</strong></p>
   </div>
 </div>
-<p>Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from
+<div style="text-align: center;">
+
+
+    
+
+<a class="mosaic-btn mosaic-btn-primary" href="https://www.dcaiti.tu-berlin.de/research/simulation/download/" title="Download scenario-convert from DCAITI mirror"><i class="fas fa-download"></i>Download scenario-convert from DCAITI mirror</a>
+
+</div>
+<p><strong>scenario-convert</strong> is a useful tool, which can be used to create new scenarios or import and export data from
 external sources like OpenStreetMap, SUMO etc into your existing scenarios.<br>
 It will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation,
 route calculation&hellip;).<br>
@@ -840,11 +853,11 @@
 Furthermore one can choose, whether to use routes generated by <code>scenario-convert</code>, use existing
 routes or  build own routes via route generation tools (e.g. DUAROUTER by SUMO).</p>
 <p>This chapter intends to highlight the most common workflows for the work with <code>scenario-convert</code>.
-We will be using <a href="/docs/building_scenarios/files/steglitz.osm" download><code>this</code></a> OSM-file for most of the
+We will be using <a href="/mosaic/docs/building_scenarios/files/steglitz.osm" download><code>this</code></a> OSM-file for most of the
 use cases So feel free to follow along with the steps to get a better understanding on how the <code>scenario-convert</code>-script functions.</p>
 <div class="alert alert-note">
   <div>
-<p><a href="#reference-documentation-for-scenario-convert">Complete reference of the scenario-convert script</a>.</p>
+<p><a href="#reference-documentation-for-scenario-convert">Here</a> you can find a complete reference to all options scenario-convert offers.</p>
   </div>
 </div>
 
@@ -1126,9 +1139,9 @@
 </ul>
 <p>With all of this you can now start further developing your scenario. For a more detailed description on the next steps
 please have a look 
-<a href="/docs/building_scenarios/scenarios/">here (Simulation Scenarios)</a> and
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/">here (Simulation Scenarios)</a> and
 
-<a href="/docs/building_scenarios/application_development/">here (Application Development)</a>.<br>
+<a href="https://www.eclipse.org/mosaic/docs/develop_applications/">here (Application Development)</a>.<br>
 While this is the &lsquo;happy world&rsquo; workflow it is often necessary to manually adapt routes and
 insert them into your scenario. The following workflow
 will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.</p>
@@ -1137,7 +1150,7 @@
 for the steglitz-scenario using SUMO&rsquo;s 
 <a href="http://sumo.dlr.de/wiki/DUAROUTER" target="_blank" rel="noopener">duarouter</a>, which you can find
 
-<a href="/docs/building_scenarios/files/steglitz.rou.xml">here</a>. We&rsquo;ll start with only the <code>steglitz.osm</code> and
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.rou.xml">here</a>. We&rsquo;ll start with only the <code>steglitz.osm</code> and
 <code>steglitz.rou.xml</code> files:</p>
 <pre><code class="language-FOLDER">└─ &lt;working-directory&gt;
    ├─ steglitz.osm
@@ -1223,8 +1236,8 @@
 <h3 id="attached-files">Attached Files</h3>
 <p>A list of all attached files in this chapter:</p>
 <ul>
-<li><a href="/docs/building_scenarios/files/steglitz.osm" download>Steglitz OSM-file</a></li>
-<li><a href="/docs/building_scenarios/files/steglitz.rou.xml" download>Steglitz Route-file</a></li>
+<li><a href="/mosaic/docs/building_scenarios/files/steglitz.osm" download>Steglitz OSM-file</a></li>
+<li><a href="/mosaic/docs/building_scenarios/files/steglitz.rou.xml" download>Steglitz Route-file</a></li>
 </ul>
 <h2 id="reference-documentation-for-scenario-convert">Reference documentation for scenario-convert</h2>
 <h3 id="usage-of-scenario-convert">Usage of scenario-convert</h3>
diff --git a/docs/develop_applications/communication/index.html b/docs/develop_applications/communication/index.html
index ccdcf4a..d3b60d3 100644
--- a/docs/develop_applications/communication/index.html
+++ b/docs/develop_applications/communication/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -833,11 +838,11 @@
             <p>Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the
 communication should occur. Communication can be achieved with external
 network simulators (
-<a href="/docs/simulators/network_simulator_omnetpp">OMNeT++</a>, 
-<a href="/docs/simulators/network_simulator_ns3">ns-3</a>) or one of the built-in communication simulators 
-<a href="/docs/simulators/network_simulator_sns">SNS</a>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/">OMNeT++</a>, 
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/">ns-3</a>) or one of the built-in communication simulators 
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/">SNS</a>
 or 
-<a href="/docs/simulators/network_simulator_cell">Eclipse MOSAIC Cell</a>. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/">Eclipse MOSAIC Cell</a>. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more
 detail.</p>
 <ul>
 <li>Cellular Communication</li>
@@ -1199,8 +1204,8 @@
 <div class="alert alert-note">
   <div>
 <p>In order to use the Multihop approach in OMNeT++ and ns-3 provided by Eclipse MOSAIC, its necessary to implement a
-routing protocol in network simulators (<a href="/docs/simulators/network_simulator_omnetpp">OMNeT++</a>, <a href="/docs/simulators/network_simulator_ns3">ns-3</a>). But the
-built in communication simulator <a href="/docs/simulators/network_simulator_sns">SNS</a> includes a simple routing protocol “Flooding”.</p>
+routing protocol in network simulators (<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/">OMNeT++</a>, <a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/">ns-3</a>). But the
+built in communication simulator <a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/">SNS</a> includes a simple routing protocol “Flooding”.</p>
   </div>
 </div>
 <h3 id="ad-hoc-topocast">Ad-hoc Topocast</h3>
diff --git a/docs/develop_applications/event_scheduler/index.html b/docs/develop_applications/event_scheduler/index.html
index 6e05ff1..0b62e99 100644
--- a/docs/develop_applications/event_scheduler/index.html
+++ b/docs/develop_applications/event_scheduler/index.html
@@ -33,7 +33,7 @@
   
     
   
-  <meta name="description" content="The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.
+  <meta name="description" content="The different modules of the Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.
 Event The class Event contains the information that is necessary to process an event.">
 
   
@@ -243,7 +243,7 @@
   <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/">
   <meta property="og:title" content="Event Scheduling | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content="The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.
+  <meta property="og:description" content="The different modules of the Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.
 Event The class Event contains the information that is necessary to process an event."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
@@ -577,10 +577,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -595,11 +591,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -738,8 +734,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -823,7 +828,7 @@
 
           <div class="article-style">
             <p>The different modules of the 
-<a href="/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator">Eclipse MOSAIC Application Simulator</a> communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.</p>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator">Application Simulator</a> communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.</p>
 <h3 id="event">Event</h3>
 <p>The class <code>Event</code> contains the information that is necessary to process an event. An event describes when it should be processed and which information is processed. Moreover an event has an assigned priority.</p>
 <h4 id="attributes-of-event">Attributes of Event</h4>
diff --git a/docs/develop_applications/index.html b/docs/develop_applications/index.html
index a8e2f1f..f61a917 100644
--- a/docs/develop_applications/index.html
+++ b/docs/develop_applications/index.html
@@ -572,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -590,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -733,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -819,7 +824,7 @@
 
           <div class="article-style">
             <p>Applications in Eclipse MOSAIC are simulated by the 
-<a href="/docs/simulators/application_simulator/">Eclipse MOSAIC Application Simulator</a>. Such
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/">Application Simulator</a>. Such
 an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by
 the Application Simulator upon corresponding events (the application &ldquo;reacts&rdquo;). To actively gain execution at some later point in time, an
 application can also schedule a generic event itself. When the application is executing, it has access to a set of methods, allowing to
@@ -836,7 +841,7 @@
 In Eclipse MOSAIC it is very easy to build your own application. First, it needs to inherit from the <code>AbstractApplication</code>
 class (see following section). Secondly, the application must be mapped to
 a vehicle (or RSU, or traffic light, &hellip;) via the mapping configuration (see section 
-<a href="/docs/building_scenarios/scenarios/#applications-and-mapping">mapping</a>). Finally,
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/#applications-and-mapping">mapping</a>). Finally,
 the application must be compiled as a Jar-File and placed into the application directory of your
 scenario.</p>
 </li>
@@ -1067,7 +1072,7 @@
 </code></pre>
 <h3 id="navigation">Navigation</h3>
 <p>The navigation of vehicles (i.e. calculation of routes) is handled completely by the 
-<a href="/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator">Eclipse MOSAIC Application Simulator</a>. Each vehicle is equipped
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator">Application Simulator</a>. Each vehicle is equipped
 with a navigation system which provides all required information and functions for navigational purposes:</p>
 <ul>
 <li>Retrieve the current position and heading of the vehicle.</li>
diff --git a/docs/develop_applications/index.xml b/docs/develop_applications/index.xml
index c5c8892..f0699c9 100644
--- a/docs/develop_applications/index.xml
+++ b/docs/develop_applications/index.xml
@@ -20,11 +20,11 @@
       <description>&lt;p&gt;Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the
 communication should occur. Communication can be achieved with external
 network simulators (
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;, 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns-3&lt;/a&gt;) or one of the built-in communication simulators 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns&#34;&gt;SNS&lt;/a&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++&lt;/a&gt;, 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/&#34;&gt;ns-3&lt;/a&gt;) or one of the built-in communication simulators 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/&#34;&gt;SNS&lt;/a&gt;
 or 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell&#34;&gt;Eclipse MOSAIC Cell&lt;/a&gt;. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/&#34;&gt;Eclipse MOSAIC Cell&lt;/a&gt;. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more
 detail.&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Cellular Communication&lt;/li&gt;
@@ -386,8 +386,8 @@
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
 &lt;p&gt;In order to use the Multihop approach in OMNeT++ and ns-3 provided by Eclipse MOSAIC, its necessary to implement a
-routing protocol in network simulators (&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;, &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns-3&lt;/a&gt;). But the
-built in communication simulator &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns&#34;&gt;SNS&lt;/a&gt; includes a simple routing protocol “Flooding”.&lt;/p&gt;
+routing protocol in network simulators (&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++&lt;/a&gt;, &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/&#34;&gt;ns-3&lt;/a&gt;). But the
+built in communication simulator &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/&#34;&gt;SNS&lt;/a&gt; includes a simple routing protocol “Flooding”.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
 &lt;h3 id=&#34;ad-hoc-topocast&#34;&gt;Ad-hoc Topocast&lt;/h3&gt;
@@ -565,7 +565,7 @@
       <pubDate>Sun, 11 Aug 2019 00:00:00 +0000</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/</guid>
       <description>&lt;p&gt;The different modules of the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt; communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator&#34;&gt;Application Simulator&lt;/a&gt; communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.&lt;/p&gt;
 &lt;h3 id=&#34;event&#34;&gt;Event&lt;/h3&gt;
 &lt;p&gt;The class &lt;code&gt;Event&lt;/code&gt; contains the information that is necessary to process an event. An event describes when it should be processed and which information is processed. Moreover an event has an assigned priority.&lt;/p&gt;
 &lt;h4 id=&#34;attributes-of-event&#34;&gt;Attributes of Event&lt;/h4&gt;
@@ -624,8 +624,12 @@
       <link>https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/</link>
       <pubDate>Tue, 06 Aug 2019 00:00:00 +0000</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/</guid>
-      <description>&lt;p&gt;Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles, and the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt; requires detailed information about the road infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is used which is placed in the applicationNT folder of the scenario. This database consists of the following tables:&lt;/p&gt;
+      <description>&lt;p&gt;Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the
+vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles,
+and the 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Application Simulator&lt;/a&gt; requires detailed information about the road
+infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is
+used which is placed in the &lt;code&gt;application&lt;/code&gt; folder of the scenario. This database consists of the following tables:&lt;/p&gt;
 &lt;h3 id=&#34;database-tables&#34;&gt;Database tables&lt;/h3&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -678,7 +682,12 @@
 &lt;/tbody&gt;
 &lt;/table&gt;
 &lt;h3 id=&#34;road-network-model&#34;&gt;Road network model&lt;/h3&gt;
-&lt;p&gt;This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes and connections can be seen. A &lt;code&gt;node&lt;/code&gt; is either a junction or describes the geometry of a road. A &lt;code&gt;connection&lt;/code&gt; is a directed edge between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating &lt;code&gt;way&lt;/code&gt;, which may consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.&lt;/p&gt;
+&lt;p&gt;This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes
+and connections can be seen. A &lt;code&gt;node&lt;/code&gt; is either a junction or describes the geometry of a road. A &lt;code&gt;connection&lt;/code&gt; is a directed edge
+between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both
+directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist
+which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating &lt;code&gt;way&lt;/code&gt;, which may
+consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.&lt;/p&gt;
 
 
 
@@ -713,7 +722,8 @@
 
 &lt;/figure&gt;
 
-&lt;p&gt;Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern &lt;code&gt;aaa_bbb_ccc&lt;/code&gt;):&lt;/p&gt;
+&lt;p&gt;Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard
+and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern &lt;code&gt;aaa_bbb_ccc&lt;/code&gt;):&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;code&gt;aaa&lt;/code&gt; - ID of the originating way&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;bbb&lt;/code&gt; - ID of the node the connection starts at.&lt;/li&gt;
@@ -753,7 +763,8 @@
 
 &lt;/figure&gt;
 
-&lt;p&gt;Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge. Therefore, the following objects are identified as following:&lt;/p&gt;
+&lt;p&gt;Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge.
+Therefore, the following objects are identified as following:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;Edges&lt;/code&gt; are described by one start and one end node. The identifier of an edge consists of two parts (using the string pattern &lt;code&gt;aaa_bbb_ccc_ddd&lt;/code&gt;):&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;code&gt;aaa_bbb_ccc&lt;/code&gt; - ID the connection the edge belongs to.&lt;/li&gt;
diff --git a/docs/develop_applications/road_traffic/index.html b/docs/develop_applications/road_traffic/index.html
index 531279c..05ef057 100644
--- a/docs/develop_applications/road_traffic/index.html
+++ b/docs/develop_applications/road_traffic/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -814,8 +819,12 @@
           <h1>Scenario Database</h1>
 
           <div class="article-style">
-            <p>Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles, and the 
-<a href="/docs/simulators/application_simulator/">Eclipse MOSAIC Application Simulator</a> requires detailed information about the road infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is used which is placed in the applicationNT folder of the scenario. This database consists of the following tables:</p>
+            <p>Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the
+vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles,
+and the 
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/">Application Simulator</a> requires detailed information about the road
+infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is
+used which is placed in the <code>application</code> folder of the scenario. This database consists of the following tables:</p>
 <h3 id="database-tables">Database tables</h3>
 <table>
 <thead>
@@ -868,7 +877,12 @@
 </tbody>
 </table>
 <h3 id="road-network-model">Road network model</h3>
-<p>This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes and connections can be seen. A <code>node</code> is either a junction or describes the geometry of a road. A <code>connection</code> is a directed edge between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating <code>way</code>, which may consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.</p>
+<p>This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes
+and connections can be seen. A <code>node</code> is either a junction or describes the geometry of a road. A <code>connection</code> is a directed edge
+between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both
+directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist
+which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating <code>way</code>, which may
+consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.</p>
 
 
 
@@ -903,7 +917,8 @@
 
 </figure>
 
-<p>Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern <code>aaa_bbb_ccc</code>):</p>
+<p>Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard
+and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern <code>aaa_bbb_ccc</code>):</p>
 <ul>
 <li><code>aaa</code> - ID of the originating way</li>
 <li><code>bbb</code> - ID of the node the connection starts at.</li>
@@ -943,7 +958,8 @@
 
 </figure>
 
-<p>Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge. Therefore, the following objects are identified as following:</p>
+<p>Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge.
+Therefore, the following objects are identified as following:</p>
 <p><code>Edges</code> are described by one start and one end node. The identifier of an edge consists of two parts (using the string pattern <code>aaa_bbb_ccc_ddd</code>):</p>
 <ul>
 <li><code>aaa_bbb_ccc</code> - ID the connection the edge belongs to.</li>
diff --git a/docs/extending_mosaic/application_ambassador_details/index.html b/docs/extending_mosaic/application_ambassador_details/index.html
index 04bb123..150f4c7 100644
--- a/docs/extending_mosaic/application_ambassador_details/index.html
+++ b/docs/extending_mosaic/application_ambassador_details/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -816,9 +821,9 @@
           <div class="article-style">
             <p>The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class <code>ApplicationAmbassador</code> is
 started by the RTI and creates different components, like the <code>SimulationKernel</code> singleton or the <code>CentralNavigationComponent</code>.
-Subsequently, it will find all the Java Archive (JAR) files in the <em>application</em> configuration directory, belonging to the currently started
+Subsequently, it will find all the Java Archive (JAR) files in the <code>application</code> configuration directory, belonging to the currently started
 scenario, and add their classes to the class path. These JARs contain the application classes. Furthermore, the ApplicationAmbassador is
-registered as a handle for different Eclipse MOSAIC messages in the configuration file <em>etc/mosaic.xml</em> in the Eclipse MOSAIC folder. After
+registered as a handle for different Eclipse MOSAIC messages in the configuration file <code>etc/runtime.json</code> in the Eclipse MOSAIC folder. After
 initialization, the Application Simulator will receive these messages from Eclipse MOSAIC when they appear and perform corresponding actions.</p>
 <h3 id="node-creation">Node Creation</h3>
 
@@ -869,7 +874,7 @@
 like any other node.</p>
 <h3 id="other-messages-and-time-advance">Other Messages and Time Advance</h3>
 <p>Apart from the ones for node creation, there are many other messages (see 
-<a href="/docs/extending_mosaic/interactions/">Interactions</a>),
+<a href="https://www.eclipse.org/mosaic/docs/extending_mosaic/interactions/">Interactions</a>),
 signaling events to the Application Simulator. For most of them, an event in the future will be programmed, such that the implied action is
 carried out at that simulation time. The processing of the events happens when the RTI calls the <code>advanceTime()</code> method on the ambassador.
 Upon this, Application Simulator will obtain a list of all events up to the new time and let the processor of the event process them. Every
diff --git a/docs/extending_mosaic/delay_models/index.html b/docs/extending_mosaic/delay_models/index.html
index e6d0939..b71a0cb 100644
--- a/docs/extending_mosaic/delay_models/index.html
+++ b/docs/extending_mosaic/delay_models/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -885,12 +890,6 @@
   </div>
   
   
-  
-  <div class="post-nav-item col-6">
-    <div class="meta-nav">Next</div>
-    <a href="/mosaic/docs/extending_mosaic/java_docs/" rel="prev">Java Docs</a>
-  </div>
-  
 </div>
 
           </div>
diff --git a/docs/extending_mosaic/index.html b/docs/extending_mosaic/index.html
index 24f044a..db89641 100644
--- a/docs/extending_mosaic/index.html
+++ b/docs/extending_mosaic/index.html
@@ -572,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -590,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -733,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
diff --git a/docs/extending_mosaic/index.xml b/docs/extending_mosaic/index.xml
index e74768d..3d7aa9c 100644
--- a/docs/extending_mosaic/index.xml
+++ b/docs/extending_mosaic/index.xml
@@ -140,7 +140,7 @@
 &lt;/figure&gt;
 
 &lt;h3 id=&#34;integration-into-eclipse-mosaic&#34;&gt;Integration into Eclipse MOSAIC&lt;/h3&gt;
-&lt;p&gt;The first step to integrate a new component is the extension of the configuration file &lt;code&gt;etc/defaults.xml&lt;/code&gt;.
+&lt;p&gt;The first step to integrate a new component is the extension of the configuration file &lt;code&gt;etc/runtime.json&lt;/code&gt;.
 An example for a federate configuration can be found in following listing.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
     ...
@@ -252,7 +252,7 @@
 &lt;p&gt;All interactions in this package are concerned with adding/registering simulation-units to the simulation.
 While most of the introductions are handled by the &lt;code&gt;Mapping&lt;/code&gt;- or &lt;code&gt;Application&lt;/code&gt;-ambassador, some of them
 are handled by the ambassadors for the traffic simulators (see 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/lust&#34;&gt;LuST&lt;/a&gt;-scenario).
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/lust/&#34;&gt;LuST&lt;/a&gt;-scenario).
 In this case the interactions are used to initialize the scenario.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -676,9 +676,9 @@
       <guid>https://www.eclipse.org/mosaic/docs/extending_mosaic/application_ambassador_details/</guid>
       <description>&lt;p&gt;The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class &lt;code&gt;ApplicationAmbassador&lt;/code&gt; is
 started by the RTI and creates different components, like the &lt;code&gt;SimulationKernel&lt;/code&gt; singleton or the &lt;code&gt;CentralNavigationComponent&lt;/code&gt;.
-Subsequently, it will find all the Java Archive (JAR) files in the &lt;em&gt;application&lt;/em&gt; configuration directory, belonging to the currently started
+Subsequently, it will find all the Java Archive (JAR) files in the &lt;code&gt;application&lt;/code&gt; configuration directory, belonging to the currently started
 scenario, and add their classes to the class path. These JARs contain the application classes. Furthermore, the ApplicationAmbassador is
-registered as a handle for different Eclipse MOSAIC messages in the configuration file &lt;em&gt;etc/mosaic.xml&lt;/em&gt; in the Eclipse MOSAIC folder. After
+registered as a handle for different Eclipse MOSAIC messages in the configuration file &lt;code&gt;etc/runtime.json&lt;/code&gt; in the Eclipse MOSAIC folder. After
 initialization, the Application Simulator will receive these messages from Eclipse MOSAIC when they appear and perform corresponding actions.&lt;/p&gt;
 &lt;h3 id=&#34;node-creation&#34;&gt;Node Creation&lt;/h3&gt;
 
@@ -1181,7 +1181,7 @@
 oriented models of INETMANET have their focus more on the framing for communication and less on
 the real content. That means that content is often modeled with dummy payloads where only the length is
 of interest. In contrast, V2X applications which are simulated in the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt;.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Application Simulator&lt;/a&gt;.
 Rely on the correct transmission of contents. Hence, the modules &lt;code&gt;VSimRTIReliableApp&lt;/code&gt; and &lt;code&gt;VSimRTIUnreliableApp&lt;/code&gt;
 are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager
 to send new messages to lower layers and forward messages themselves back to the ScenarioManager
@@ -1357,7 +1357,7 @@
 &lt;h4 id=&#34;eclipse-mosaic-omnet-federate-development&#34;&gt;Eclipse MOSAIC OMNeT++ Federate Development&lt;/h4&gt;
 &lt;p&gt;This section provides a description how to set up the &lt;strong&gt;OMNeT++ IDE&lt;/strong&gt; for the Eclipse MOSAIC OMNeT++ Federate Development.&lt;/p&gt;
 &lt;p&gt;At this point it is awaited, that the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;Eclipse MOSAIC OMNeT++ Federate is successfully installed&lt;/a&gt;.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++ Federate&lt;/a&gt; is successfully installed.&lt;/p&gt;
 &lt;h5 id=&#34;prepare-omnet-ide&#34;&gt;Prepare OMNeT++ IDE&lt;/h5&gt;
 &lt;ol&gt;
 &lt;li&gt;
@@ -1828,15 +1828,5 @@
 </description>
     </item>
     
-    <item>
-      <title>Java Docs</title>
-      <link>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</link>
-      <pubDate>Tue, 30 Jun 2020 00:00:00 +0100</pubDate>
-      <guid>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</guid>
-      <description>&lt;!-- Java Docs need to be copied into /public/java_docs. --&gt;
-&lt;iframe src=&#34;https://www.eclipse.org/mosaic/mosaic/java_docs/&#34; style=&#34;width: 100%; height: calc(100vh - 230px);&#34;&gt;&lt;/iframe&gt;
-</description>
-    </item>
-    
   </channel>
 </rss>
diff --git a/docs/extending_mosaic/interactions/index.html b/docs/extending_mosaic/interactions/index.html
index ff1c865..149e44b 100644
--- a/docs/extending_mosaic/interactions/index.html
+++ b/docs/extending_mosaic/interactions/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -830,7 +835,7 @@
 <p>All interactions in this package are concerned with adding/registering simulation-units to the simulation.
 While most of the introductions are handled by the <code>Mapping</code>- or <code>Application</code>-ambassador, some of them
 are handled by the ambassadors for the traffic simulators (see 
-<a href="/tutorials/lust">LuST</a>-scenario).
+<a href="https://www.eclipse.org/mosaic/tutorials/lust/">LuST</a>-scenario).
 In this case the interactions are used to initialize the scenario.</p>
 <table>
 <thead>
diff --git a/docs/extending_mosaic/omnetpp_details/index.html b/docs/extending_mosaic/omnetpp_details/index.html
index c404e2b..e973b37 100644
--- a/docs/extending_mosaic/omnetpp_details/index.html
+++ b/docs/extending_mosaic/omnetpp_details/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -905,7 +910,7 @@
 oriented models of INETMANET have their focus more on the framing for communication and less on
 the real content. That means that content is often modeled with dummy payloads where only the length is
 of interest. In contrast, V2X applications which are simulated in the 
-<a href="/docs/simulators/application_simulator/">Eclipse MOSAIC Application Simulator</a>.
+<a href="https://www.eclipse.org/mosaic/docs/simulators/application_simulator/">Application Simulator</a>.
 Rely on the correct transmission of contents. Hence, the modules <code>VSimRTIReliableApp</code> and <code>VSimRTIUnreliableApp</code>
 are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager
 to send new messages to lower layers and forward messages themselves back to the ScenarioManager
@@ -1081,7 +1086,7 @@
 <h4 id="eclipse-mosaic-omnet-federate-development">Eclipse MOSAIC OMNeT++ Federate Development</h4>
 <p>This section provides a description how to set up the <strong>OMNeT++ IDE</strong> for the Eclipse MOSAIC OMNeT++ Federate Development.</p>
 <p>At this point it is awaited, that the 
-<a href="/docs/simulators/network_simulator_omnetpp">Eclipse MOSAIC OMNeT++ Federate is successfully installed</a>.</p>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/">OMNeT++ Federate</a> is successfully installed.</p>
 <h5 id="prepare-omnet-ide">Prepare OMNeT++ IDE</h5>
 <ol>
 <li>
diff --git a/docs/extending_mosaic/simulator_coupling/index.html b/docs/extending_mosaic/simulator_coupling/index.html
index bea88a0..5fc0a38 100644
--- a/docs/extending_mosaic/simulator_coupling/index.html
+++ b/docs/extending_mosaic/simulator_coupling/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -939,7 +944,7 @@
 </figure>
 
 <h3 id="integration-into-eclipse-mosaic">Integration into Eclipse MOSAIC</h3>
-<p>The first step to integrate a new component is the extension of the configuration file <code>etc/defaults.xml</code>.
+<p>The first step to integrate a new component is the extension of the configuration file <code>etc/runtime.json</code>.
 An example for a federate configuration can be found in following listing.</p>
 <pre><code class="language-json">&quot;federates&quot;: [
     ...
diff --git a/docs/extending_mosaic/sumo_ambassador_details/index.html b/docs/extending_mosaic/sumo_ambassador_details/index.html
index 8bface8..93065ca 100644
--- a/docs/extending_mosaic/sumo_ambassador_details/index.html
+++ b/docs/extending_mosaic/sumo_ambassador_details/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
diff --git a/docs/getting_started/index.html b/docs/getting_started/index.html
index 2265a9b..d72fa11 100644
--- a/docs/getting_started/index.html
+++ b/docs/getting_started/index.html
@@ -572,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -590,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -733,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -821,9 +826,9 @@
 
 </div>
 <ol>
-<li><strong>Download the <code>eclipse-mosaic-20.0.zip</code> bundle from the link above.</strong></li>
+<li><strong>Download the <code>eclipse-mosaic-20.0.zip</code> bundle from the mirror above.</strong></li>
 <li>Extract the package to an arbitrary path. This installation path is referenced as <code>&lt;mosaic-root&gt;</code> throughout the entire document.</li>
-<li>Install additional software required by the simulation (see below), e.g. 
+<li><strong>Install additional software</strong> required by the simulation (see below), e.g. 
 <a href="https://www.eclipse.org/sumo" target="_blank" rel="noopener">Eclipse SUMO</a></li>
 </ol>
 <h3 id="folder-content">Folder Content</h3>
@@ -842,6 +847,8 @@
    └─ mosaic.sh ....................... Start script for GNU/Linux systems.
 </code></pre>
 <h3 id="additional-software">Additional Software</h3>
+<p>Each simulation with Eclipse MOSAIC requires additional software. For the Runtime Infrastructure, Java is required. to be installed.
+Furthermore, each simulation requires additional simulators to be installed, for example the traffic simulation tool SUMO.</p>
 <p>The following table gives an overview of supported environments and simulators. Please make sure that you install those versions only.</p>
 <table>
 <thead>
@@ -874,8 +881,8 @@
 <a href="https://www.eclipse.org/sumo" target="_blank" rel="noopener">Eclipse SUMO</a></strong></td>
 <td style="text-align:center">yes*</td>
 <td style="text-align:center">0.32.0 and below<br/> <em>not supported</em></td>
-<td style="text-align:center"><strong>1.0.1 to 1.6.0</strong> <br/> <em>supported</em></td>
-<td style="text-align:center">above 1.6.0 <br/> <em>not tested</em></td>
+<td style="text-align:center"><strong>1.0.1 to 1.7.0</strong> <br/> <em>supported</em></td>
+<td style="text-align:center">above 1.7.0 <br/> <em>not tested</em></td>
 </tr>
 <tr>
 <td style="text-align:center"><strong>
diff --git a/docs/getting_started/index.xml b/docs/getting_started/index.xml
index 93418fd..e6b9d91 100644
--- a/docs/getting_started/index.xml
+++ b/docs/getting_started/index.xml
@@ -60,7 +60,9 @@
 &lt;p&gt;All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level.
 Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time.&lt;/p&gt;
 &lt;p&gt;However, these logs do not conform to a generic formatting. For uniformly formatted or visually prepared results,
-Eclipse MOSAIC offers different Visualizers. For example, the &lt;code&gt;FileVisualizer&lt;/code&gt; generates detailed outputs of e.g. vehicle positions, speeds, or message exchanges.&lt;/p&gt;
+Eclipse MOSAIC offers different Visualizers and Output Generators. For example, the &lt;code&gt;FileOutputGenerator&lt;/code&gt; generates detailed outputs of e.g.
+vehicle positions, speeds, or message exchanges. In the scenarios brought by the latest release, this output mechanism is already
+configured.&lt;/p&gt;
 </description>
     </item>
     
diff --git a/docs/getting_started/run_mosaic/index.html b/docs/getting_started/run_mosaic/index.html
index 3d67922..5269501 100644
--- a/docs/getting_started/run_mosaic/index.html
+++ b/docs/getting_started/run_mosaic/index.html
@@ -577,10 +577,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -595,11 +591,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -738,8 +734,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -854,7 +859,9 @@
 <p>All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level.
 Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time.</p>
 <p>However, these logs do not conform to a generic formatting. For uniformly formatted or visually prepared results,
-Eclipse MOSAIC offers different Visualizers. For example, the <code>FileVisualizer</code> generates detailed outputs of e.g. vehicle positions, speeds, or message exchanges.</p>
+Eclipse MOSAIC offers different Visualizers and Output Generators. For example, the <code>FileOutputGenerator</code> generates detailed outputs of e.g.
+vehicle positions, speeds, or message exchanges. In the scenarios brought by the latest release, this output mechanism is already
+configured.</p>
 
           </div>
 
diff --git a/docs/index.html b/docs/index.html
index f922726..aa0e00a 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -568,10 +568,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -586,11 +582,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -729,8 +725,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -898,6 +903,18 @@
             </span>
         </li>
     
+        
+        <li class="col-12 col-sm-8 col-md-6 col-lg-5 col-xl-4">
+            <span class="inner">
+                <span class="title">
+                    <span class="counter">8.&nbsp;</span>
+                    API Documentation
+                </span><span class="subtitle">Technical documentation, such as Javadoc.</span><span class="link-wrap">
+                    <a href="/mosaic/docs/api_docs/" title="API Documentation" class="mosaic-btn mosaic-btn-secondary btn-bottom">Learn more</a>
+                </span>
+            </span>
+        </li>
+    
 </ul>
 
 
diff --git a/docs/run_simulations/index.html b/docs/run_simulations/index.html
index bbc8a6a..bf10db8 100644
--- a/docs/run_simulations/index.html
+++ b/docs/run_simulations/index.html
@@ -572,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -590,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -733,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -869,7 +874,7 @@
 <tr>
 <td style="text-align:left"><code>-v</code><br><code>--start-visualizer</code></td>
 <td style="text-align:left">Opens a page in your default browser which visualizes all vehicle movements of the simulation on a map. This option only works, if your scenario is configured with the 
-<a href="/docs/visualization/">Websocket Visualizer</a>.</td>
+<a href="https://www.eclipse.org/mosaic/docs/visualization/">Websocket Visualizer</a>.</td>
 </tr>
 <tr>
 <td style="text-align:left"><code>-h</code><br><code>--help</code></td>
@@ -934,13 +939,13 @@
 <p>This way, simulators can be easily added or removed from the simulation. Each of the coupled simulators is configured in the directory
 of the <code>scenario_config.json</code> file. The release bundle comes with a set of tutorial scenarios, which are described in detail
 in the 
-<a href="/tutorials">Tutorials section</a>.</p>
+<a href="https://www.eclipse.org/mosaic/tutorials/">Tutorials section</a>.</p>
 <h2 id="gather-results">Gather results</h2>
 <p>All active simulators as well as the according ambassadors generate certain logging output, depending
 on their configured logging level. Therefore, these logs are very helpful to retrace and understand the
 individual states during the simulation time. Moreover, Eclipse MOSAIC offers uniformly formatted and
 visually prepared results using various <strong>
-<a href="/docs/visualization">Visualizer</a></strong> implementations.</p>
+<a href="https://www.eclipse.org/mosaic/docs/visualization/">Output Generator</a></strong> implementations.</p>
 
           </div>
 
diff --git a/docs/run_simulations/index.xml b/docs/run_simulations/index.xml
index 65c7e3e..add575e 100644
--- a/docs/run_simulations/index.xml
+++ b/docs/run_simulations/index.xml
@@ -22,9 +22,9 @@
 folder &lt;code&gt;&amp;lt;mosaic-root&amp;gt;/logs/log-&amp;lt;timestamp&amp;gt;&lt;/code&gt;. For each simulation run a new folder is created.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ log-&amp;lt;timestamp&amp;gt;
    ├─ apps
-   |  ├─ &amp;lt;unitType&amp;gt;_&amp;lt;unitId&amp;gt; ................. Detailed application specific logs for each unit
-   |  ├─ OperatingSystem.log ................. Detailed operating system logs for the unit
-   |  └─ ExampleApp.log ...................... Detailed application specific logs for each application.
+   |  └─ &amp;lt;unitType&amp;gt;_&amp;lt;unitId&amp;gt; ................. Detailed application specific logs for each unit
+   |      ├─ OperatingSystem.log ............. Detailed operating system logs for the unit
+   |      └─ ExampleApp.log .................. Detailed application specific logs for each application.
    ├─ activities.csv ......................... Simulation details in comma separated value-format
    ├─ Application.log  ....................... Information about the application ambassador
    ├─ Cell.log ............................... Cellular network log
@@ -36,7 +36,7 @@
    ├─ MOSAIC.log ............................. General information, e.g. startup sequence information
    ├─ Navigation.log ......................... Detailed logs about navigation component in the application ambassador
    ├─ Traffic.log ............................ Traffic simulation log (SUMO or others)
-   └─ visualizer.csv ......................... Recorded data of the integrated File Output Generator
+   └─ output.csv ............................. Recorded data of the integrated File Output Generator
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;In addition to standard logging output for each federate there is a &lt;code&gt;activities.csv&lt;/code&gt; file which contains
 detailed information about sent and received interactions. This file can be used to trace a
@@ -62,23 +62,5 @@
 </description>
     </item>
     
-    <item>
-      <title>Run a Simulation Set</title>
-      <link>https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/</link>
-      <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
-      <guid>https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/</guid>
-      <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
-  &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
-  &lt;div&gt;
-&lt;p&gt;This feature is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
-For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
-  &lt;/div&gt;
-&lt;/div&gt;
-&lt;p&gt;A common objective when running simulations is to assess the impact of different parameter settings for
-a specific scenario on the results of the simulation. To this end, the is a tool to apply
-different configurations to a scenario, after which a series of simulations is executed via CLI by calling the start script.&lt;/p&gt;
-</description>
-    </item>
-    
   </channel>
 </rss>
diff --git a/docs/run_simulations/results/index.html b/docs/run_simulations/results/index.html
index 6b57880..af9c0f6 100644
--- a/docs/run_simulations/results/index.html
+++ b/docs/run_simulations/results/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -818,9 +823,9 @@
 folder <code>&lt;mosaic-root&gt;/logs/log-&lt;timestamp&gt;</code>. For each simulation run a new folder is created.</p>
 <pre><code class="language-FOLDER">└─ log-&lt;timestamp&gt;
    ├─ apps
-   |  ├─ &lt;unitType&gt;_&lt;unitId&gt; ................. Detailed application specific logs for each unit
-   |  ├─ OperatingSystem.log ................. Detailed operating system logs for the unit
-   |  └─ ExampleApp.log ...................... Detailed application specific logs for each application.
+   |  └─ &lt;unitType&gt;_&lt;unitId&gt; ................. Detailed application specific logs for each unit
+   |      ├─ OperatingSystem.log ............. Detailed operating system logs for the unit
+   |      └─ ExampleApp.log .................. Detailed application specific logs for each application.
    ├─ activities.csv ......................... Simulation details in comma separated value-format
    ├─ Application.log  ....................... Information about the application ambassador
    ├─ Cell.log ............................... Cellular network log
@@ -832,7 +837,7 @@
    ├─ MOSAIC.log ............................. General information, e.g. startup sequence information
    ├─ Navigation.log ......................... Detailed logs about navigation component in the application ambassador
    ├─ Traffic.log ............................ Traffic simulation log (SUMO or others)
-   └─ visualizer.csv ......................... Recorded data of the integrated File Output Generator
+   └─ output.csv ............................. Recorded data of the integrated File Output Generator
 </code></pre>
 <p>In addition to standard logging output for each federate there is a <code>activities.csv</code> file which contains
 detailed information about sent and received interactions. This file can be used to trace a
@@ -868,12 +873,6 @@
 <div class="post-nav row col-12">
   
   
-  
-  <div class="post-nav-item col-6">
-    <div class="meta-nav">Next</div>
-    <a href="/mosaic/docs/run_simulations/simulation_set/" rel="prev">Run a Simulation Set</a>
-  </div>
-  
 </div>
 
           </div>
diff --git a/docs/run_simulations/simulation_set/index.html b/docs/run_simulations/simulation_set/index.html
deleted file mode 100644
index 7b43d72..0000000
--- a/docs/run_simulations/simulation_set/index.html
+++ /dev/null
@@ -1,1286 +0,0 @@
-<!DOCTYPE html><html lang="en-us" >
-
-
-
-
-  
-
-
-<head>
-
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge">
-  <meta name="generator" content="Source Themes Academic 4.8.0">
-
-  
-
-  
-  
-  
-  
-  
-    
-    
-    
-  
-  
-
-  <meta name="author" content="Fraunhofer FOKUS">
-
-  
-  
-  
-    
-  
-  <meta name="description" content="This feature is part of MOSAIC Extended.
-For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
-  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation.">
-
-  
-  <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/">
-
-  
-
-
-  
-  
-  
-  <meta name="theme-color" content="#68145C">
-  
-
-  
-  
-  
-  <script src="/mosaic/js/mathjax-config.js"></script>
-  
-
-  
-  
-  
-  
-    
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.8.6/css/academicons.min.css" integrity="sha512-MCWBwPSput2UWNwyznVFLbD2iUc1e5VsdD1zahsWVzkDSUzyHhMZ4kCS3wgYSRm0mU+glwD/Q9lSJrDPwbUL2A==" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-1/css/all.min.css" integrity="sha512-ZYg+hQvLlM0W9C3P6vTpes5LmJ66G2EsroxDNzwD6qiulckldb29eD9I672HL2X+LH5nRhY1sQqZLJGB+aUUPg==" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css" integrity="sha512-H9jrZiiopUdsLpg94A333EfumgUBpO9MdbxStdeITo+KEIMaNfHNvwyjjDJb+ERPaRS6DpyRlKbvPUasNItRyw==" crossorigin="anonymous">
-
-    
-    
-    
-      
-    
-    
-      
-      
-        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-light">
-        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/atom-one-light.min.css" crossorigin="anonymous" title="hl-dark" disabled>
-      
-    
-
-    
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="anonymous">
-    
-
-    
-
-    
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js" integrity="sha512-TmDwFLhg3UA4ZG0Eb4MIyT1O1Mb+Oww5kFG0uHqXsdbyZz9DcvYQhKpGgNkamAI6h2lGGZq2X8ftOJvF/XjTUg==" crossorigin="anonymous" async></script>
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-    
-      
-
-      
-      
-
-      
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.1.0/es5/tex-chtml.min.js" integrity="sha512-uwL1UtpYdWra2iqJlAW8Ts0s9Os6IxWLDJDF/BnWdhDmT7DEMFba3GPsFwmV3QiTNcUyl2GB5vsgycB/MOvo9g==" crossorigin="anonymous" async></script>
-      
-    
-      
-
-      
-      
-
-      
-    
-
-  
-
-  
-  
-  
-  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,400i,700,700i%7CRoboto+Mono&display=swap">
-  
-
-  
-  
-  
-  
-  <link rel="stylesheet" href="/mosaic/css/academic.css">
-
-  
-
-
-
-
-  
-
-
-  
-  
-
-  
-
-  <link rel="manifest" href="/mosaic/index.webmanifest">
-  <link rel="icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_32x32_fill_lanczos_center_2.png">
-  <link rel="apple-touch-icon" type="image/png" href="/mosaic/images/icon_hu6bdfb97c7e23190c70e41ca0e15a9fce_30436_192x192_fill_lanczos_center_2.png">
-
-  <link rel="canonical" href="https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/">
-
-  
-  
-  
-  
-  
-  
-  
-    
-    
-  
-  
-  <meta property="twitter:card" content="summary">
-  
-  <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/">
-  <meta property="og:title" content="Run a Simulation Set | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content="This feature is part of MOSAIC Extended.
-For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
-  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
-  <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
-  
-    
-      <meta property="article:published_time" content="2019-05-05T00:00:00&#43;01:00">
-    
-    <meta property="article:modified_time" content="2019-05-05T00:00:00&#43;01:00">
-  
-
-  
-
-
-
-  
-
-
-  
-
-
-  
-
-
-
-
-
-  <title>Run a Simulation Set | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
-
-</head>
-
-<body id="top" data-spy="scroll" data-offset="70" data-target="#TableOfContents" class=" page-mosaic page-docs page-run_simulations page-simulation_set ">
-
-  <aside class="search-results" id="search">
-  <div class="container">
-    <section class="search-header">
-
-      <div class="row no-gutters justify-content-between mb-3">
-        <div class="col-10 col-md-3">
-          <div class="logo" style="background-image: url(/mosaic/img/logos/mosaic/EclipseMOSAIC-Logo-RGB-positiv.svg)"></div>
-        </div>
-        <div class="col-2 col-md-4 col-search-close">
-          <a class="js-search" href="#"><i class="fas fa-times-circle text-muted" aria-hidden="true"></i></a>
-        </div>
-      </div>
-
-      <div id="search-box">
-        
-        <input name="q" id="search-query" placeholder="Search..." autocapitalize="off"
-        autocomplete="off" autocorrect="off" spellcheck="false" type="search">
-        
-      </div>
-
-    </section>
-    <section class="section-search-results">
-
-      <div id="search-hits">
-        
-      </div>
-
-    </section>
-  </div>
-</aside>
-
-
-  
-
-
-
-
-
-
-  
-
-
-
-  
-
-
-<nav class="navbar navbar-expand-lg navbar-light compensate-for-scrollbar" id="navbar-main">
-  <div class="container">
-
-    <div class="d-none d-lg-inline-flex">
-      <a style="visibility:visible;" class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
-    </div>
-
-
-    
-    <button type="button" class="navbar-toggler" data-toggle="collapse"
-            data-target="#navbar-content" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
-    <span><i class="fas fa-bars"></i></span>
-    </button>
-    
-
-    
-    <div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none">
-      <a class="navbar-brand" href="/mosaic/"><img src="/mosaic/images/logo.svg" alt="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility"></a>
-    </div>
-    
-
-    
-    
-    <div class="navbar-collapse main-menu-item collapse justify-content-start" id="navbar-content">
-
-      
-      <ul class="navbar-nav d-md-inline-flex">
-        
-
-        
-
-        
-        
-        
-          
-        
-
-        
-        
-        
-        
-        
-        
-
-        <li class="nav-item">
-          <a class="nav-link " href="/mosaic/about"><span>About</span></a>
-        </li>
-
-        
-        
-
-        
-
-        
-        
-        
-          
-        
-
-        
-        
-        
-        
-        
-        
-
-        <li class="nav-item">
-          <a class="nav-link " href="/mosaic/news"><span>News</span></a>
-        </li>
-
-        
-        
-
-        
-
-        
-        
-        
-          
-        
-
-        
-        
-        
-        
-        
-        
-
-        <li class="nav-item">
-          <a class="nav-link  active" href="/mosaic/docs"><span>Documentation</span></a>
-        </li>
-
-        
-        
-
-        
-
-        
-        
-        
-          
-        
-
-        
-        
-        
-        
-        
-        
-
-        <li class="nav-item">
-          <a class="nav-link " href="/mosaic/tutorials"><span>Tutorials</span></a>
-        </li>
-
-        
-        
-
-        
-
-        
-        
-        
-          
-        
-
-        
-        
-        
-        
-        
-        
-
-        <li class="nav-item">
-          <a class="nav-link " href="/mosaic/download"><span>Download</span></a>
-        </li>
-
-        
-        
-
-        
-
-        
-        
-        
-          
-        
-
-        
-        
-        
-        
-        
-        
-
-        <li class="nav-item">
-          <a class="nav-link " href="/mosaic/community"><span>Community</span></a>
-        </li>
-
-        
-        
-
-      
-
-        
-      </ul>
-    </div>
-
-    <ul class="nav-icons navbar-nav flex-row ml-auto d-flex pl-md-2">
-      
-      <li class="nav-item">
-        <a class="nav-link js-search" href="#" aria-label="Search"><i class="fas fa-search" aria-hidden="true"></i></a>
-      </li>
-      
-
-      
-
-      
-      <li class="nav-item ">
-        <a href="https://github.com/eclipse/mosaic" target="blank">
-          <i class="fab fa-github" aria-hidden="true"></i>
-        </a>
-      </li>
-      
-
-      
-
-    </ul>
-
-  </div>
-</nav>
-
-
-  
-
-<div class="docs container">
-  <div class="row flex-xl-nowrap">
-    <div class="docs-sidebar col-12 col-md-3 col-xl-3">
-      
-
-
-
-
-
-  
-    
-  
-
-
-
-
-<form class="docs-search d-flex align-items-center">
-  <button class="btn docs-toggle d-md-none p-0 mr-3" type="button" data-toggle="collapse" data-target="#docs-nav" aria-controls="docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
-    <span><i class="fas fa-bars"></i></span>
-  </button>
-
-  
-  <input name="q" type="search" class="form-control" placeholder="Search..." autocomplete="off">
-  
-</form>
-
-<nav class="collapse docs-links" id="docs-nav">
-  
-
-  
-  
-  
-  
-  <div class="docs-toc-item">
-    <a class="docs-toc-link" href="/mosaic/docs/getting_started">Getting Started</a>
-    <ul class="nav docs-sidenav">
-      
-      <li >
-        <a href="/mosaic/docs/getting_started/">Download</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/getting_started/run_mosaic/">Run Eclipse MOSAIC</a>
-      </li>
-      
-    </ul>
-    
-
-  </div>
-  
-  <div class="docs-toc-item">
-    <a class="docs-toc-link" href="/mosaic/docs/run_simulations">Run Simulations</a>
-    <ul class="nav docs-sidenav">
-      
-      <li >
-        <a href="/mosaic/docs/run_simulations/">Run a single simulation</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
-      </li>
-      
-      <li class="active">
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
-    </ul>
-    
-
-  </div>
-  
-  <div class="docs-toc-item">
-    <a class="docs-toc-link" href="/mosaic/docs/visualization">Visualization</a>
-    <ul class="nav docs-sidenav">
-      
-      <li >
-        <a href="/mosaic/docs/visualization/">WebSocket Visualizer</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/visualization/itef/">ITEF</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/visualization/phabmap/">PHABMap</a>
-      </li>
-      
-    </ul>
-    
-
-  </div>
-  
-  <div class="docs-toc-item">
-    <a class="docs-toc-link" href="/mosaic/docs/simulators">Simulators</a>
-    <ul class="nav docs-sidenav">
-      
-      <li >
-        <a href="/mosaic/docs/simulators/">Overview</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/application_simulator/">Application Simulator</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/traffic_simulator_sumo/">Traffic - Eclipse SUMO</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/network_simulator_omnetpp/">Network - OMNeT&#43;&#43;</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/network_simulator_ns3/">Network - ns-3</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/network_simulator_sns/">Network - SNS</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/network_simulator_cell/">Network - Cell</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/environment_simulator/">Environment Simulator</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/simulators/battery_simulator/">Battery Simulator</a>
-      </li>
-      
-    </ul>
-    
-
-  </div>
-  
-  <div class="docs-toc-item">
-    <a class="docs-toc-link" href="/mosaic/docs/building_scenarios">Building Scenarios</a>
-    <ul class="nav docs-sidenav">
-      
-      <li >
-        <a href="/mosaic/docs/building_scenarios/">Simulation Scenarios</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/building_scenarios/scenario_convert/">Scenario Convert</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/building_scenarios/scenario_configuration/">Additional Scenario Configuration</a>
-      </li>
-      
-    </ul>
-    
-
-  </div>
-  
-  <div class="docs-toc-item">
-    <a class="docs-toc-link" href="/mosaic/docs/develop_applications">Create Applications</a>
-    <ul class="nav docs-sidenav">
-      
-      <li >
-        <a href="/mosaic/docs/develop_applications/">Basics</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/develop_applications/communication/">V2X Communication</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/develop_applications/event_scheduler/">Event Scheduling</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/develop_applications/road_traffic/">Scenario Database</a>
-      </li>
-      
-    </ul>
-    
-
-  </div>
-  
-  <div class="docs-toc-item">
-    <a class="docs-toc-link" href="/mosaic/docs/extending_mosaic">Extending Eclipse MOSAIC</a>
-    <ul class="nav docs-sidenav">
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/">Core Concepts</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/simulator_coupling/">Simulator Coupling</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/interactions/">Interactions</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/application_ambassador_details/">Application Ambassador</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/sumo_ambassador_details/">Sumo Ambassador</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/omnetpp_details/">OMNeT&#43;&#43; Federate</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
-      </li>
-      
-      <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
-      </li>
-      
-    </ul>
-    
-
-  </div>
-  
-  
-</nav>
-
-    </div>
-
-    
-
-    <style>
-      @media (min-width:1140px) {
-        .docs-sidebar {
-          flex: 0 1 320px;
-        }
-        .docs-toc {
-          flex: 0 1 280px;
-        }
-        main.docs-content.no-docs-toc {
-          padding-bottom: 0 !important;
-          max-width: calc(100% - 320px) !important;
-          flex: 0 1 calc(100% - 320px);
-          width: 100%;
-        }
-        main.docs-content {
-          padding-bottom: 0 !important;
-          max-width: calc(100% - 600px) !important;
-          flex: 0 1 calc(100% - 600px);
-          width: 100%;
-        }
-      }
-      @media (max-width: 770px) {
-        main.docs-content {
-          max-width: 100% !important;
-          width: 100%;
-        }
-      }
-      @media (min-width: 771px) and(max-width: 1139px) {
-        main.docs-content.no-docs-toc {
-          padding-bottom: 0 !important;
-          max-width: calc(100% - 320px) !important;
-          width: 100%;
-        }
-      }
-    </style>
-    <main class="docs-content col-12 col-md-9 no-docs-toc col-xl-9 py-md-3 pl-md-4" role="main">
-
-      <article class="article">
-
-        <div class="docs-article-container">
-          <h1>Run a Simulation Set</h1>
-
-          <div class="article-style">
-            <div class="alert alert-extended">
-  <span class="extended-icon" style="background-image: url(/mosaic/img/alert-extended.svg)"></span>
-  <div>
-<p>This feature is part of <strong><a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a></strong>.<br>
-For further information on licenses, feel free to contact us via <strong><a href="mailto:mosaic@fokus.fraunhofer.de"><a href="mailto:mosaic@fokus.fraunhofer.de">mosaic@fokus.fraunhofer.de</a></a></strong>.</p>
-  </div>
-</div>
-<p>A common objective when running simulations is to assess the impact of different parameter settings for
-a specific scenario on the results of the simulation. To this end, the is a tool to apply
-different configurations to a scenario, after which a series of simulations is executed via CLI by calling the start script.</p>
-
-          </div>
-
-          
-
-
-
-          
-          <div class="article-widget">
-            
-<div class="post-nav row col-12">
-  
-  
-  
-  <div class="post-nav-item col-6">
-    <div class="meta-nav">Previous</div>
-    <a href="/mosaic/docs/run_simulations/results/" rel="next">Simulation Results</a>
-  </div>
-  
-  
-</div>
-
-          </div>
-          
-        </div>
-
-        
-          
-
-          
-
-          
-
-          
-  
-  
-
-
-        
-
-
-        <footer class="site-footer">
-  <div class="row">
-  
-    
-      <div class="col-sm-4 mb-3 mb-md-0">
-        <b>Eclipse MOSAIC</b>
-        
-          <ul>
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/download/" title="Download Eclipse MOSAIC" >
-                    
-                      Download Eclipse MOSAIC
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/docs" title="Documentation" >
-                    
-                      Documentation
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/tutorials" title="Tutorials" >
-                    
-                      Tutorials
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/community/#projects" title="Projects" >
-                    
-                      Projects
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/publications" title="Publications" >
-                    
-                      Publications
-                    
-                  </a>
-                </li>
-              
-            
-          </ul>
-        
-      </div>
-    
-  
-    
-      <div class="col-sm-4 mb-3 mb-md-0">
-        <b>Community</b>
-        
-          <ul>
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/community" title="Eclipse MOSAIC Community" >
-                    
-                      Eclipse MOSAIC Community
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/contribution" title="How to contribute" >
-                    
-                      How to contribute
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                    
-                  
-                
-                <li>
-                  <a href="https://github.com/eclipse/mosaic" title="Github"  target="_blank" rel="noopener">
-                    
-                      Github
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                
-                <li>
-                  <a href="/mosaic/get_in_contact" title="Contact &amp; Mailing list" >
-                    
-                      Contact & Mailing list
-                    
-                  </a>
-                </li>
-              
-            
-          </ul>
-        
-      </div>
-    
-  
-    
-      <div class="col-sm-4 mb-3 mb-md-0">
-        <b>Eclipse Foundation</b>
-        
-          <ul>
-            
-              
-                
-                
-                  
-                    
-                  
-                
-                <li>
-                  <a href="https://www.eclipse.org/" title="About Eclipse Foundation"  target="_blank" rel="noopener">
-                    
-                      About Eclipse Foundation
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                    
-                  
-                
-                <li>
-                  <a href="https://www.eclipse.org/legal/privacy.php" title="Privacy Policy"  target="_blank" rel="noopener">
-                    
-                      Privacy Policy
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                    
-                  
-                
-                <li>
-                  <a href="https://www.eclipse.org/legal/termsofuse.php" title="Website terms of use"  target="_blank" rel="noopener">
-                    
-                      Website terms of use
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                    
-                  
-                
-                <li>
-                  <a href="https://www.eclipse.org/legal/copyright.php" title="Copyright"  target="_blank" rel="noopener">
-                    
-                      Copyright
-                    
-                  </a>
-                </li>
-              
-            
-              
-                
-                
-                  
-                    
-                  
-                
-                <li>
-                  <a href="https://www.eclipse.org/legal" title="Legal"  target="_blank" rel="noopener">
-                    
-                      Legal
-                    
-                  </a>
-                </li>
-              
-            
-          </ul>
-        
-      </div>
-    
-  
-
-
-
-
-
-
-
-
-
-
-
-  </div>
-  <div class="row justify-content-center mt-3 position-relative">
-    <p class="powered-by text-center font-italic mb-0 pb-0">
-      Powered by the
-      <a href="https://sourcethemes.com/academic/" target="_blank" rel="noopener">Academic theme</a> for
-      <a href="https://gohugo.io" target="_blank" rel="noopener">Hugo</a>.
-      <br>
-      Header image &#169; fanjianhua/ iStock
-    </p>
-    
-  </div>
-</footer>
-
-
-
-      </article>
-    </main>
-  </div>
-</div>
-
-
-      
-
-    
-    
-    
-      <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha384-vk5WoKIaW/vJyUAd9n/wmopsmNhiy+L2Z+SBxGYnUkunIxVxAv/UtMOhba/xskxh" crossorigin="anonymous"></script>
-      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.4/imagesloaded.pkgd.min.js" integrity="sha512-S5PZ9GxJZO16tT9r3WJp/Safn31eu8uWrzglMahDT4dsmgqWonRY9grk3j+3tfuPr9WJNsfooOR7Gi7HL5W2jw==" crossorigin="anonymous"></script>
-      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.isotope/3.0.6/isotope.pkgd.min.js" integrity="sha512-Zq2BOxyhvnRFXu0+WE6ojpZLOU2jdnqbrM1hmVdGzyeCa1DgM3X5Q4A/Is9xA1IkbUeDd7755dNNI/PzSf2Pew==" crossorigin="anonymous"></script>
-      <script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js" integrity="sha512-uURl+ZXMBrF4AwGaWmEetzrd+J5/8NRkWAvJx5sbPSSuOb0bZLqf+tOzniObO00BjHa/dD7gub9oCGMLPQHtQA==" crossorigin="anonymous"></script>
-
-      
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.4.8/mermaid.min.js" integrity="sha512-1tS1YUns336Mtxl+vkaLcADPwE1CPNVy3WEf7nrI7DGMMb6/FAVBgL2IzAWVBkB6vVuK94s2zVoiXcw1QZ9S1g==" crossorigin="anonymous" title="mermaid"></script>
-      
-
-      
-        
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha512-1LdB3V708w6G4QRl7NsVdTr7MDibyRXr9stQZ+EGjEE0ZPMZkA//ir7kCWmFyxdAJNIRXdR/ZeJmCV0boyiCXw==" crossorigin="anonymous"></script>
-        
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/java.min.js"></script>
-        
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/json.min.js"></script>
-        
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/xml.min.js"></script>
-        
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/shell.min.js"></script>
-        
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/languages/dos.min.js"></script>
-        
-      
-
-    
-
-    
-    
-      <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="anonymous"></script>
-    
-
-    
-    
-    <script>const code_highlighting = true;</script>
-    
-
-    
-    
-    <script>const isSiteThemeDark = false;</script>
-    
-
-    
-    
-    
-    
-    
-    
-    <script>
-      const search_config = {"indexURI":"/mosaic/index.json","minLength":1,"threshold":0.3};
-      const i18n = {"no_results":"No results found","placeholder":"Search...","results":"results found"};
-      const content_type = {
-        'post': "Posts",
-        'project': "Projects",
-        'publication' : "Publications",
-        'talk' : "Talks"
-        };
-    </script>
-    
-
-    
-    
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.1/anchor.min.js" integrity="sha512-aZotBPy6dqn8yVaLJwSrkJ+QxuxV695A4dgodAMvTU5JyNi5mhrr+LeaD3GSS+lx1SMFKNs0tu5ZMJEgNZQP2Q==" crossorigin="anonymous"></script>
-    <script>
-      anchors.add();
-    </script>
-    
-
-    
-    
-    <script id="search-hit-fuse-template" type="text/x-template">
-      <div class="search-hit" id="summary-{{key}}">
-      <div class="search-hit-content">
-        <div class="search-hit-name">
-          <a href="{{relpermalink}}">{{title}}</a>
-          <div class="article-metadata search-hit-type">{{type}}</div>
-          <p class="search-hit-description">{{snippet}}</p>
-        </div>
-      </div>
-      </div>
-    </script>
-    
-
-    
-    
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.1/fuse.min.js" integrity="sha512-o38bmzBGX+hD3JHWUFCDA09btWaqrNmoJ3RXLlrysA7PP01Kgs4UlE4MhelE1v5dJR3+cxlR4qQlotsW7jKsnw==" crossorigin="anonymous"></script>
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js" integrity="sha512-mhbv5DqBMgrWL+32MmsDOt/OAvqr/cHimk6B8y/bx/xS88MVkYGPiVv2ixKVrkywF2qHplNRUvFsAHUdxZ3Krg==" crossorigin="anonymous"></script>
-    
-
-    
-    
-
-    
-    
-
-    
-    
-
-    
-    
-    
-    
-    
-    
-    
-    
-    
-      
-    
-    
-    
-    
-    <script type="application/javascript" src="/mosaic/js/academic.min.1824b36a85a484362f116f1e24481eb9.js"></script>
-
-    
-
-<script type="application/javascript" src="/mosaic/js/mosaic-wg-cards.js"></script>
-
-
-
-
-
-  
-  
-
-  
-<div id="modal" class="modal fade" role="dialog">
-  <div class="modal-dialog">
-    <div class="modal-content">
-      <div class="modal-header">
-        <h5 class="modal-title">Cite</h5>
-        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-          <span aria-hidden="true">&times;</span>
-        </button>
-      </div>
-      <div class="modal-body">
-        <pre><code class="tex hljs"></code></pre>
-      </div>
-      <div class="modal-footer">
-        <a class="btn btn-outline-primary my-1 js-copy-cite" href="#" target="_blank">
-          <i class="fas fa-copy"></i> Copy
-        </a>
-        <a class="btn btn-outline-primary my-1 js-download-cite" href="#" target="_blank">
-          <i class="fas fa-download"></i> Download
-        </a>
-        <div id="modal-error"></div>
-      </div>
-    </div>
-  </div>
-</div>
-
-</body>
-</html>
diff --git a/docs/simulators/application_simulator/index.html b/docs/simulators/application_simulator/index.html
index 83b0b67..f82ddd4 100644
--- a/docs/simulators/application_simulator/index.html
+++ b/docs/simulators/application_simulator/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -1198,7 +1203,7 @@
         &quot;lat&quot;: 52.65027,
         &quot;lon&quot;: 13.54500,
         &quot;name&quot;: &quot;WeatherServer&quot;,
-        &quot;applications&quot;: [ &quot;com.dcaiti.vsimrti.app.tutorials.barnim.WeatherServer&quot; ]
+        &quot;applications&quot;: [ &quot;org.eclipse.mosaic.app.tutorial.WeatherServerApp&quot; ]
     }
 ]
 </code></pre>
@@ -1214,22 +1219,22 @@
 <pre><code class="language-json">&quot;trafficLights&quot;: [
     {
         &quot;tlGroupId&quot;: &quot;26704448&quot;,
-        &quot;applications&quot;: [ &quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp&quot; ]
+        &quot;applications&quot;: [ &quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&quot; ]
     },
     {
         &quot;tlGroupId&quot;: &quot;252864802&quot;,
-        &quot;applications&quot;: [ &quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp&quot; ]
+        &quot;applications&quot;: [ &quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&quot; ]
     }
 ]
 </code></pre>
 <p>For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to
 
-<a href="/docs/building_scenarios/scenarios/#traffic-lights">Simulation Scenarios - Traffic Lights</a>.</p>
+<a href="https://www.eclipse.org/mosaic/docs/building_scenarios/#traffic-lights">Simulation Scenarios - Traffic Lights</a>.</p>
 <p><strong>Servers</strong></p>
 <p>The <code>servers</code>-array can be used to specify server units, which can be used to communicate with other units via the cell module.
 Capacity configurations for servers should be done when enabling the <code>CellModule</code>. Delay and transmission models are configured
 in the <code>network.json</code> of the cell module (see 
-<a href="/docs/simulators/network_simulator_cell">here</a>).</p>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/">here</a>).</p>
 <blockquote>
 <p>Note: The <code>group</code> parameter in the mapping configuration has to match with the id in the network configuration in order to
 properly function.</p>
diff --git a/docs/simulators/battery_simulator/index.html b/docs/simulators/battery_simulator/index.html
index 6ca2658..03152ca 100644
--- a/docs/simulators/battery_simulator/index.html
+++ b/docs/simulators/battery_simulator/index.html
@@ -33,7 +33,9 @@
   
     
   
-  <meta name="description" content="The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs.">
+  <meta name="description" content="The Battery Simulator is part of MOSAIC Extended.
+For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
+  The MOSAIC Battery Simulator is used to simulate electric vehicles.">
 
   
   <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/">
@@ -242,7 +244,9 @@
   <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/">
   <meta property="og:title" content="MOSAIC Battery Simulator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content="The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
+  <meta property="og:description" content="The Battery Simulator is part of MOSAIC Extended.
+For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
+  The MOSAIC Battery Simulator is used to simulate electric vehicles."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
     
@@ -575,10 +579,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +593,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +736,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -818,19 +827,19 @@
           <h1>MOSAIC Battery Simulator</h1>
 
           <div class="article-style">
-            <p>The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle
-characteristics and the battery itself into account. The main feature of the battery ambassador is that it
-can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given
-needs. This also holds true for the environment model and the vehicle model. However, simple models
-for vehicle, environment and the battery are provided and will be briefly explained in the following
-sections.</p>
-<div class="alert alert-extended">
+            <div class="alert alert-extended">
   <span class="extended-icon" style="background-image: url(/mosaic/img/alert-extended.svg)"></span>
   <div>
 <p>The <strong>Battery Simulator</strong> is part of <a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a>.<br>
 For further information on licenses, feel free to contact us via <strong><a href="mailto:mosaic@fokus.fraunhofer.de"><a href="mailto:mosaic@fokus.fraunhofer.de">mosaic@fokus.fraunhofer.de</a></a></strong>.</p>
   </div>
 </div>
+<p>The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle
+characteristics and the battery itself into account. The main feature of the battery ambassador is that it
+can utilize dynamic class loading to use a battery model provided by the user, depending on the given
+needs. This also holds true for the environment model and the vehicle model. However, simple models
+for vehicle, environment and the battery are provided and will be briefly explained in the following
+sections.</p>
 <h3 id="installation">Installation</h3>
 <p>This simulator does not need to be installed. It is delivered as part of the MOSAIC Extended installation package.</p>
 <h3 id="configuration">Configuration</h3>
@@ -858,7 +867,7 @@
 to be extended.</p>
 <h3 id="sample-configuration">Sample configuration</h3>
 <pre><code class="language-Json">{
-    &quot;vehicleModelClass&quot;: &quot;com.dcaiti.vsimrti.fed.battery.sim.models.vehicle.ElectricSmart&quot;,
+    &quot;vehicleModelClass&quot;: &quot;com.dcaiti.mosaic.fed.battery.sim.models.vehicle.ElectricSmart&quot;,
     &quot;vehicleModelConfig&quot;: {
             &quot;Mass&quot;: 1060,
             &quot;ReferenceArea&quot;: 1.95,
@@ -867,7 +876,7 @@
             &quot;EletricMotorOperatingVoltage&quot;: 350,
             &quot;ConsumerOperatingVoltage&quot;: 12
     },
-    &quot;batteryModelClass&quot;: &quot;com.dcaiti.vsimrti.fed.battery.sim.models.battery.VerySimpleBatteryModel&quot;,
+    &quot;batteryModelClass&quot;: &quot;com.dcaiti.mosaic.fed.battery.sim.models.battery.VerySimpleBatteryModel&quot;,
     &quot;batteryModelConfig&quot;: {
             &quot;NumberOfCells&quot;: 93,
             &quot;CellVoltage&quot;: 4.3,
@@ -877,7 +886,7 @@
             &quot;MinSOC&quot;: 0.30,
             &quot;MaxSOC&quot;: 0.70
         },
-    &quot;environmentModelClass&quot;: &quot;com.dcaiti.vsimrti.fed.battery.sim.models.environment.DefaultEnvironment&quot;,
+    &quot;environmentModelClass&quot;: &quot;com.dcaiti.mosaic.fed.battery.sim.models.environment.DefaultEnvironment&quot;,
     &quot;environmentModelConfig&quot;: {
             &quot;Gravity&quot;: 9.81,
             &quot;FluidDensity&quot;: 1.293,
diff --git a/docs/simulators/environment_simulator/index.html b/docs/simulators/environment_simulator/index.html
index 1872a6f..77a6a03 100644
--- a/docs/simulators/environment_simulator/index.html
+++ b/docs/simulators/environment_simulator/index.html
@@ -577,10 +577,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -595,11 +591,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -738,8 +734,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
diff --git a/docs/simulators/index.html b/docs/simulators/index.html
index 19ae67b..14b28a7 100644
--- a/docs/simulators/index.html
+++ b/docs/simulators/index.html
@@ -572,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -590,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -733,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
diff --git a/docs/simulators/index.xml b/docs/simulators/index.xml
index ad10c53..a472650 100644
--- a/docs/simulators/index.xml
+++ b/docs/simulators/index.xml
@@ -393,7 +393,7 @@
         &amp;quot;lat&amp;quot;: 52.65027,
         &amp;quot;lon&amp;quot;: 13.54500,
         &amp;quot;name&amp;quot;: &amp;quot;WeatherServer&amp;quot;,
-        &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.barnim.WeatherServer&amp;quot; ]
+        &amp;quot;applications&amp;quot;: [ &amp;quot;org.eclipse.mosaic.app.tutorial.WeatherServerApp&amp;quot; ]
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
@@ -409,22 +409,22 @@
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;trafficLights&amp;quot;: [
     {
         &amp;quot;tlGroupId&amp;quot;: &amp;quot;26704448&amp;quot;,
-        &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp&amp;quot; ]
+        &amp;quot;applications&amp;quot;: [ &amp;quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&amp;quot; ]
     },
     {
         &amp;quot;tlGroupId&amp;quot;: &amp;quot;252864802&amp;quot;,
-        &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp&amp;quot; ]
+        &amp;quot;applications&amp;quot;: [ &amp;quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&amp;quot; ]
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/#traffic-lights&#34;&gt;Simulation Scenarios - Traffic Lights&lt;/a&gt;.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/#traffic-lights&#34;&gt;Simulation Scenarios - Traffic Lights&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Servers&lt;/strong&gt;&lt;/p&gt;
 &lt;p&gt;The &lt;code&gt;servers&lt;/code&gt;-array can be used to specify server units, which can be used to communicate with other units via the cell module.
 Capacity configurations for servers should be done when enabling the &lt;code&gt;CellModule&lt;/code&gt;. Delay and transmission models are configured
 in the &lt;code&gt;network.json&lt;/code&gt; of the cell module (see 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Note: The &lt;code&gt;group&lt;/code&gt; parameter in the mapping configuration has to match with the id in the network configuration in order to
 properly function.&lt;/p&gt;
@@ -824,7 +824,7 @@
 &lt;/tbody&gt;
 &lt;/table&gt;
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
-&lt;h5 id=&#34;there-are-two-installation-types-of-the-eclipse-mosaic-omnet-federate&#34;&gt;There are two installation types of the Eclipse MOSAIC OMNeT++ Federate:&lt;/h5&gt;
+&lt;p&gt;There are two installation types of the MOSAIC OMNeT++ Federate:&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -843,7 +843,7 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;
 &lt;a href=&#34;#installation-for-developers&#34;&gt;DEVELOPER&lt;/a&gt;&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;The installation for developers addresses those who want to make changes or extend the Eclipse MOSAIC OMNeT++ Federate.&lt;br&gt;&lt;br&gt;This installation type awaits that &lt;strong&gt;OMNeT++ 
+&lt;td style=&#34;text-align:left&#34;&gt;The installation for developers addresses those who want to make changes or extend the MOSAIC OMNeT++ Federate.&lt;br&gt;&lt;br&gt;This installation type awaits that &lt;strong&gt;OMNeT++ 
 5.5&lt;/strong&gt; and &lt;strong&gt;INET 
 4.1&lt;/strong&gt; are already installed on your system and&lt;br&gt;- &lt;code&gt;PATH&lt;/code&gt; contains &lt;code&gt;/path/to/omnetpp/bin&lt;/code&gt;&lt;br&gt;- &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; contains &lt;code&gt;/path/to/omnetpp/lib&lt;/code&gt; and &lt;code&gt;/path/to/inet/src&lt;/code&gt;&lt;br&gt;- &lt;code&gt;C_INCLUDE_PATH&lt;/code&gt; contains &lt;code&gt;/path/to/omnetpp/include&lt;/code&gt; and &lt;code&gt;/path/to/inet/src&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
@@ -853,11 +853,11 @@
   &lt;div&gt;
 &lt;p&gt;If you already have &lt;strong&gt;OMNeT++
 5.5&lt;/strong&gt; and &lt;strong&gt;INET
-4.1&lt;/strong&gt; installed on your system, but you simply want to use &lt;strong&gt;OMNeT++&lt;/strong&gt; for simulations with Eclipse MOSAIC without developing further the Eclipse MOSAIC OMNeT++ Federate, you may also choose the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/#installation-for-developers&#34;&gt;installation for developers&lt;/a&gt; to avoid multiple installations of &lt;strong&gt;OMNeT++&lt;/strong&gt; and &lt;strong&gt;INET&lt;/strong&gt; on your system.&lt;/p&gt;
+4.1&lt;/strong&gt; installed on your system, but you simply want to use &lt;strong&gt;OMNeT++&lt;/strong&gt; for simulations with Eclipse MOSAIC without developing further the MOSAIC OMNeT++ Federate, you may also choose the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/#installation-for-developers&#34;&gt;installation for developers&lt;/a&gt; to avoid multiple installations of &lt;strong&gt;OMNeT++&lt;/strong&gt; and &lt;strong&gt;INET&lt;/strong&gt; on your system.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;h5 id=&#34;first-of-all-please-make-sure-that-you-have-the-following-libraries-installed&#34;&gt;First of all, please make sure that you have the following libraries installed:&lt;/h5&gt;
-&lt;p&gt;&lt;code&gt;unzip&lt;/code&gt;, &lt;code&gt;tar&lt;/code&gt;, &lt;code&gt;bison&lt;/code&gt;, &lt;code&gt;flex&lt;/code&gt;, &lt;code&gt;gcc&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;protoc&lt;/code&gt;&lt;/p&gt;
+&lt;p&gt;First of all, please make sure that you have the following libraries installed:
+&lt;code&gt;unzip&lt;/code&gt;, &lt;code&gt;tar&lt;/code&gt;, &lt;code&gt;bison&lt;/code&gt;, &lt;code&gt;flex&lt;/code&gt;, &lt;code&gt;gcc&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;protoc&lt;/code&gt;&lt;/p&gt;
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
 &lt;p&gt;The installation of the current version of the OMNeT++ Federate was tested with protobuf version
@@ -865,7 +865,7 @@
 It is recommended to install this version. Here you receive more information about &lt;a href=&#34;https://github.com/protocolbuffers/protobuf/blob/master/src/README.md&#34;&gt;how to install protobuf&lt;/a&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;h5 id=&#34;follow-the-links-and-download-the-source-code-of-omnet-inet-and-the-eclipse-mosaic-omnet-federate&#34;&gt;Follow the links and download the source code of OMNeT++, INET and the Eclipse MOSAIC OMNeT++ Federate:&lt;/h5&gt;
+&lt;p&gt;Follow the links and download the source code of OMNeT++, INET and the MOSAIC OMNeT++ Federate:&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -890,15 +890,15 @@
 &lt;a href=&#34;https://github.com/inet-framework/inet/releases&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/inet-framework/inet/releases&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;Eclipse MOSAIC OMNeT++ Federate&lt;/strong&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;MOSAIC OMNeT++ Federate&lt;/strong&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;
 20.0&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/download&#34;&gt;Download&lt;/a&gt;&lt;/td&gt;
+&lt;a href=&#34;https://github.com/mosaic-addons/omnetpp-federate/releases&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/mosaic-addons/omnetpp-federate/releases&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;h5 id=&#34;available-parameters-of-omnet_installersh&#34;&gt;Available parameters of &lt;code&gt;omnet_installer.sh&lt;/code&gt;:&lt;/h5&gt;
+&lt;p&gt;Available parameters of &lt;code&gt;omnet_installer.sh&lt;/code&gt;:&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -979,30 +979,34 @@
 chmod +x omnet_installer.sh`
 ./omnet_install.sh \
     --installation-type USER \
-    --omnetpp /path/to/omnetpp-OMNETPP_VERSION-src.tgz \
-    --inet /path/to/inet-INET_VERSION-src.tgz \
-    --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip
+    --omnetpp /path/to/omnetpp-5.5-src.tgz \
+    --inet /path/to/inet-4.1-src.tgz \
+    --federate /path/to/omnetpp-federate-20.0.zip
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;For the installation type &lt;code&gt;USER&lt;/code&gt; the parameters &lt;code&gt;-o&lt;/code&gt;, &lt;code&gt;-i&lt;/code&gt; and &lt;code&gt;-f&lt;/code&gt; are required.&lt;br&gt;
-The installation script should terminate with &lt;code&gt;SUCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
+The installation script should terminate with &lt;code&gt;SUCESS: The MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
 &lt;h4 id=&#34;installation-for-developers&#34;&gt;Installation for Developers&lt;/h4&gt;
 &lt;p&gt;Run the installation script (this takes a few minutes):&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;cd &amp;lt;mosaic&amp;gt;/bin/fed/omnetpp
 chmod +x omnet_installer.sh`
 ./omnet_install.sh \
     --installation-type DEVELOPER \
-    --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip
+    --federate /path/to/omnetpp-federate-20.0.zip
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;For the installation type &lt;code&gt;DEVELOPER&lt;/code&gt; the parameter &lt;code&gt;-f&lt;/code&gt; is required.&lt;br&gt;
-The installation script should terminate with &lt;code&gt;SUCCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
+The installation script should terminate with &lt;code&gt;SUCCESS: The MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/simulation_federates#eclipse-mosaic-omnet-federate-development&#34;&gt;How to develop Eclipse MOSAIC OMNeT++ Federate&lt;/a&gt;&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/&#34;&gt;Extending MOSAIC OMNeT++ Federate&lt;/a&gt;&lt;/p&gt;
 &lt;h3 id=&#34;omnet-federate-configuration&#34;&gt;OMNeT++ Federate Configuration&lt;/h3&gt;
-&lt;p&gt;To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open &lt;code&gt;&amp;lt;scenarioName&amp;gt;/mosaic/mosaic_config.xml&lt;/code&gt; and enable OMNeT++:&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;federate id=&amp;quot;omnetpp&amp;quot; active=&amp;quot;true&amp;quot; /&amp;gt;
+&lt;p&gt;To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open &lt;code&gt;&amp;lt;scenarioName&amp;gt;/scenario_config.json&lt;/code&gt; and enable OMNeT++:&lt;/p&gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: {
+   ...
+   &amp;quot;omnetpp&amp;quot;: true,
+   ...
+}
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Now, when you run this scenario, Eclipse MOSAIC will automatically start the Eclipse MOSAIC OMNeT++ Federate.&lt;/p&gt;
-&lt;p&gt;The main configuration of the Eclipse MOSAIC OMNeT++ Federate is done within the configuration files &lt;code&gt;omnetpp.ini&lt;/code&gt; and &lt;code&gt;omnetpp_config.json&lt;/code&gt; in the scenario:&lt;/p&gt;
+&lt;p&gt;Now, when you run this scenario, Eclipse MOSAIC will automatically start the MOSAIC OMNeT++ Federate.&lt;/p&gt;
+&lt;p&gt;The main configuration of the MOSAIC OMNeT++ Federate is done within the configuration files &lt;code&gt;omnetpp.ini&lt;/code&gt; and &lt;code&gt;omnetpp_config.json&lt;/code&gt; in the scenario:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ &amp;lt;scenario_name&amp;gt;
    └─ omnetpp
       ├─ omnetpp.ini ...................... OMNeT++ federate configuration file
@@ -1014,6 +1018,43 @@
 Channel) are addressed. The communication parameters are different for vehicles and RSUs. Please refer
 to the OMNeT++ documentation on the OMNeT++ homepage for further information about the structure
 of the &lt;code&gt;omnetpp.ini&lt;/code&gt; file.&lt;/p&gt;
+&lt;h3 id=&#34;installation-in-docker-environment&#34;&gt;Installation in Docker environment&lt;/h3&gt;
+&lt;div class=&#34;alert alert-note&#34;&gt;
+  &lt;div&gt;
+&lt;p&gt;This is an experimental feature. Please refer to our mailing list if you experience any problems.&lt;/p&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+&lt;p&gt;This guide gives instructions to execute the OMNeT++ federate inside a docker container. If you already installed
+OMNeT++ on your machine following the steps before, you can skip this section.&lt;/p&gt;
+&lt;p&gt;Docker is a new approach to execute software. More precisely, it &amp;ldquo;wraps software in a complete filesystem
+that contains everything it needs to run: code, runtime, system tools, and system libraries&amp;rdquo;. As a result, the
+software is executed within a container and its execution does not rely on the environment the container is running in.&lt;/p&gt;
+&lt;p&gt;In context of Eclipse MOSAIC, this approach allows to execute OMNeT++ within a docker container. The user does not
+need to manually install OMNeT++ and can even run OMNeT++ on Windows hosts.&lt;/p&gt;
+&lt;ol&gt;
+&lt;li&gt;Install Docker ≥ 1.13 on your machine.&lt;/li&gt;
+&lt;li&gt;To get everything to work, please make sure to execute the following steps depending on your operating system:
+&lt;ul&gt;
+&lt;li&gt;Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab.&lt;/li&gt;
+&lt;li&gt;Linux - Make sure your user account belongs to the unix-group &lt;code&gt;docker&lt;/code&gt;. You may need to restart your machine.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/li&gt;
+&lt;li&gt;Switch to the location of the Dockerfile in &lt;code&gt;&amp;lt;mosaic&amp;gt;/bin/fed/omnetpp&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;Execute the following command on command line:&lt;br&gt;
+&lt;code&gt;docker build -t omnetpp-federate&lt;/code&gt;.&lt;br&gt;
+This could take a while to finish.&lt;/li&gt;
+&lt;li&gt;Enter the name of the docker image &lt;code&gt;etc/runtime.json&lt;/code&gt; in the &lt;code&gt;omnetpp&lt;/code&gt;-section into the property &lt;code&gt;dockerImage&lt;/code&gt;:&lt;/li&gt;
+&lt;/ol&gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
+   ...
+   {
+      &amp;quot;id&amp;quot;: &amp;quot;omnetpp&amp;quot;,
+      &amp;quot;dockerImage&amp;quot;: &amp;quot;omnetpp-federate&amp;quot;,
+      ...
+   },
+   ...
+]
+&lt;/code&gt;&lt;/pre&gt;
 </description>
     </item>
     
@@ -1178,7 +1219,7 @@
 &lt;/div&gt;
 &lt;p&gt;This guide gives instructions to execute the ns-3 federate inside a docker container. If you already installed
 ns-3 on your machine following the steps before, you can skip this section.&lt;/p&gt;
-&lt;p&gt;Docker 5 is a new approach to execute software. More precisely, it &amp;ldquo;wraps software in a complete filesystem
+&lt;p&gt;Docker is a new approach to execute software. More precisely, it &amp;ldquo;wraps software in a complete filesystem
 that contains everything it needs to run: code, runtime, system tools, and system libraries&amp;rdquo;. As a result, the
 software is executed within a container and its execution does not rely on the environment the container is running in.&lt;/p&gt;
 &lt;p&gt;In context of Eclipse MOSAIC, this approach allows to execute ns-3 within a docker container. The user does not
@@ -1191,20 +1232,23 @@
 &lt;li&gt;Linux - Make sure your user account belongs to the unix-group &lt;code&gt;docker&lt;/code&gt;. You may need to restart your machine.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/li&gt;
-&lt;li&gt;Switch to the location of the Dockerfile in &lt;code&gt;mosaic/bin/fed/ns3&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;Switch to the location of the Dockerfile in &lt;code&gt;&amp;lt;mosaic&amp;gt;/bin/fed/ns3&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;Execute the following command on command line:&lt;br&gt;
-&lt;code&gt;docker build -t ns3-federate:mosaic&lt;/code&gt;.&lt;br&gt;
+&lt;code&gt;docker build -t ns3-federate&lt;/code&gt;.&lt;br&gt;
 This could take a while to finish.&lt;/li&gt;
-&lt;li&gt;Enter the name of the docker image etc/defaults.xml in the &lt;code&gt;ns3&lt;/code&gt;-section into the tag &lt;code&gt;dockerImage&lt;/code&gt;:&lt;/li&gt;
+&lt;li&gt;Enter the name of the docker image &lt;code&gt;etc/runtime.json&lt;/code&gt; in the &lt;code&gt;ns3&lt;/code&gt;-section into the property &lt;code&gt;dockerImage&lt;/code&gt;:&lt;/li&gt;
 &lt;/ol&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;federate class=&amp;quot;...&amp;quot;&amp;gt;
-    &amp;lt;id&amp;gt;ns3&amp;lt;/id&amp;gt;
-    ...
-    &amp;lt;dockerImage&amp;gt;ns3-federate:mosaic&amp;lt;/dockerImage&amp;gt;
-    ...
-&amp;lt;/federate &amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
+   ...
+   {
+      &amp;quot;id&amp;quot;: &amp;quot;ns3&amp;quot;,
+      &amp;quot;dockerImage&amp;quot;: &amp;quot;ns3-federate&amp;quot;,
+      ...
+   },
+   ...
+]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the &lt;code&gt;mosaic_config.xml&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
 &lt;h3 id=&#34;configuration&#34;&gt;Configuration&lt;/h3&gt;
 &lt;p&gt;The whole ns-3 specific configuration is done via the &lt;code&gt;confWifi.xml&lt;/code&gt; and &lt;code&gt;configTechnologies.xml&lt;/code&gt; files.&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;confWifi.xml:&lt;/strong&gt;&lt;/p&gt;
@@ -2318,7 +2362,7 @@
 &lt;p&gt;The cellular simulator offers various modes to estimate the delay of the transmissions. The type of
 estimation is specified with by &lt;code&gt;delayType&lt;/code&gt; for the uplink and downlink for each region. You may also refer to the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models&#34;&gt;Delay-Chapter&lt;/a&gt;.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/&#34;&gt;Delay-Chapter&lt;/a&gt;.&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;code&gt;delay.type = ’ConstantDelay’&lt;/code&gt;: The message is transmitted with the latency being exactly equal to delay.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;delay.type = ’SimpleRandomDelay’&lt;/code&gt;: The latency can assume different (randomly generated and uniformly distributed) values between
@@ -2345,14 +2389,14 @@
 Application Simulator.&lt;/p&gt;
 &lt;p&gt;It supports the following addressing and casting schemes.&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-topocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellTopocast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is the normal unicast, where the Geocaster simply resolves
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-topocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellTopocast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is the normal unicast, where the Geocaster simply resolves
 the single receiver via theIPResolver. Hence, the CellTopocast directly routes the message further. Currently, Topocast doesn&amp;rsquo;t allow
 broadcast or anycast addresses, but any transmission protocols (tcp, udp).&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-geocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoUnicast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; addresses every node in the destination area individually.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-geocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoUnicast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; addresses every node in the destination area individually.
 In this way it takes a geographic address and results in a loop to generate multiple unicasts.&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-geobroadcast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoBroadcast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, which is basically MBMS, uses one broadcast to all
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-geobroadcast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoBroadcast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, which is basically MBMS, uses one broadcast to all
 nodes in the destined regions.The MBMS uses the different transmission mode of multicast in the downlink. CellGeoUnicast as well as
 CellGeoBroadcast require broadcast, but don’t allow tcp (as ack for broadcasts is denied).&lt;/p&gt;
 </description>
@@ -2410,19 +2454,19 @@
       <link>https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/</guid>
-      <description>&lt;p&gt;The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle
-characteristics and the battery itself into account. The main feature of the battery ambassador is that it
-can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given
-needs. This also holds true for the environment model and the vehicle model. However, simple models
-for vehicle, environment and the battery are provided and will be briefly explained in the following
-sections.&lt;/p&gt;
-&lt;div class=&#34;alert alert-extended&#34;&gt;
+      <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
 &lt;p&gt;The &lt;strong&gt;Battery Simulator&lt;/strong&gt; is part of &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
+&lt;p&gt;The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle
+characteristics and the battery itself into account. The main feature of the battery ambassador is that it
+can utilize dynamic class loading to use a battery model provided by the user, depending on the given
+needs. This also holds true for the environment model and the vehicle model. However, simple models
+for vehicle, environment and the battery are provided and will be briefly explained in the following
+sections.&lt;/p&gt;
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
 &lt;p&gt;This simulator does not need to be installed. It is delivered as part of the MOSAIC Extended installation package.&lt;/p&gt;
 &lt;h3 id=&#34;configuration&#34;&gt;Configuration&lt;/h3&gt;
@@ -2450,7 +2494,7 @@
 to be extended.&lt;/p&gt;
 &lt;h3 id=&#34;sample-configuration&#34;&gt;Sample configuration&lt;/h3&gt;
 &lt;pre&gt;&lt;code class=&#34;language-Json&#34;&gt;{
-    &amp;quot;vehicleModelClass&amp;quot;: &amp;quot;com.dcaiti.vsimrti.fed.battery.sim.models.vehicle.ElectricSmart&amp;quot;,
+    &amp;quot;vehicleModelClass&amp;quot;: &amp;quot;com.dcaiti.mosaic.fed.battery.sim.models.vehicle.ElectricSmart&amp;quot;,
     &amp;quot;vehicleModelConfig&amp;quot;: {
             &amp;quot;Mass&amp;quot;: 1060,
             &amp;quot;ReferenceArea&amp;quot;: 1.95,
@@ -2459,7 +2503,7 @@
             &amp;quot;EletricMotorOperatingVoltage&amp;quot;: 350,
             &amp;quot;ConsumerOperatingVoltage&amp;quot;: 12
     },
-    &amp;quot;batteryModelClass&amp;quot;: &amp;quot;com.dcaiti.vsimrti.fed.battery.sim.models.battery.VerySimpleBatteryModel&amp;quot;,
+    &amp;quot;batteryModelClass&amp;quot;: &amp;quot;com.dcaiti.mosaic.fed.battery.sim.models.battery.VerySimpleBatteryModel&amp;quot;,
     &amp;quot;batteryModelConfig&amp;quot;: {
             &amp;quot;NumberOfCells&amp;quot;: 93,
             &amp;quot;CellVoltage&amp;quot;: 4.3,
@@ -2469,7 +2513,7 @@
             &amp;quot;MinSOC&amp;quot;: 0.30,
             &amp;quot;MaxSOC&amp;quot;: 0.70
         },
-    &amp;quot;environmentModelClass&amp;quot;: &amp;quot;com.dcaiti.vsimrti.fed.battery.sim.models.environment.DefaultEnvironment&amp;quot;,
+    &amp;quot;environmentModelClass&amp;quot;: &amp;quot;com.dcaiti.mosaic.fed.battery.sim.models.environment.DefaultEnvironment&amp;quot;,
     &amp;quot;environmentModelConfig&amp;quot;: {
             &amp;quot;Gravity&amp;quot;: 9.81,
             &amp;quot;FluidDensity&amp;quot;: 1.293,
diff --git a/docs/simulators/network_simulator_cell/index.html b/docs/simulators/network_simulator_cell/index.html
index d8ab999..a5572f8 100644
--- a/docs/simulators/network_simulator_cell/index.html
+++ b/docs/simulators/network_simulator_cell/index.html
@@ -577,10 +577,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -595,11 +591,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -738,8 +734,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -1070,7 +1075,7 @@
 <p>The cellular simulator offers various modes to estimate the delay of the transmissions. The type of
 estimation is specified with by <code>delayType</code> for the uplink and downlink for each region. You may also refer to the
 
-<a href="/docs/extending_mosaic/delay_models">Delay-Chapter</a>.</p>
+<a href="https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/">Delay-Chapter</a>.</p>
 <ul>
 <li><code>delay.type = ’ConstantDelay’</code>: The message is transmitted with the latency being exactly equal to delay.</li>
 <li><code>delay.type = ’SimpleRandomDelay’</code>: The latency can assume different (randomly generated and uniformly distributed) values between
@@ -1097,14 +1102,14 @@
 Application Simulator.</p>
 <p>It supports the following addressing and casting schemes.</p>
 <p>
-<a href="/docs/extending_mosaic/communication/#cellular-topocast"><strong><code>CellTopocast</code></strong></a> is the normal unicast, where the Geocaster simply resolves
+<a href="https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-topocast"><strong><code>CellTopocast</code></strong></a> is the normal unicast, where the Geocaster simply resolves
 the single receiver via theIPResolver. Hence, the CellTopocast directly routes the message further. Currently, Topocast doesn&rsquo;t allow
 broadcast or anycast addresses, but any transmission protocols (tcp, udp).</p>
 <p>
-<a href="/docs/extending_mosaic/communication/#cellular-geocast"><strong><code>CellGeoUnicast</code></strong></a> addresses every node in the destination area individually.
+<a href="https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-geocast"><strong><code>CellGeoUnicast</code></strong></a> addresses every node in the destination area individually.
 In this way it takes a geographic address and results in a loop to generate multiple unicasts.</p>
 <p>
-<a href="/docs/extending_mosaic/communication/#cellular-geobroadcast"><strong><code>CellGeoBroadcast</code></strong></a>, which is basically MBMS, uses one broadcast to all
+<a href="https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-geobroadcast"><strong><code>CellGeoBroadcast</code></strong></a>, which is basically MBMS, uses one broadcast to all
 nodes in the destined regions.The MBMS uses the different transmission mode of multicast in the downlink. CellGeoUnicast as well as
 CellGeoBroadcast require broadcast, but don’t allow tcp (as ack for broadcasts is denied).</p>
 
diff --git a/docs/simulators/network_simulator_ns3/index.html b/docs/simulators/network_simulator_ns3/index.html
index ac1ddd5..0bac774 100644
--- a/docs/simulators/network_simulator_ns3/index.html
+++ b/docs/simulators/network_simulator_ns3/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -960,7 +965,7 @@
 <p><strong>In order to start the simulation, the following steps need to be performed:</strong></p>
 <ol>
 <li>Set up the <code>confWifi.xml</code>-file in the scenario folder (see section 
-<a href="/docs/simulators/network_simulator_ns3/#configuration">Configuration</a>). An example confWifi.xml - file is shipped with the Tiergarten scenario.</li>
+<a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/#configuration">Configuration</a>). An example confWifi.xml - file is shipped with the Tiergarten scenario.</li>
 <li>For reasonable result logging, the logger-configuration in <code>mosaic/etc/logback.xml</code> has to be adapted to support the ns-3 ambassador and federate.</li>
 <li>At last ns-3 has to be activated in the <code>mosaic_config.xml</code> and the simulation can be started.</li>
 </ol>
@@ -972,7 +977,7 @@
 </div>
 <p>This guide gives instructions to execute the ns-3 federate inside a docker container. If you already installed
 ns-3 on your machine following the steps before, you can skip this section.</p>
-<p>Docker 5 is a new approach to execute software. More precisely, it &ldquo;wraps software in a complete filesystem
+<p>Docker is a new approach to execute software. More precisely, it &ldquo;wraps software in a complete filesystem
 that contains everything it needs to run: code, runtime, system tools, and system libraries&rdquo;. As a result, the
 software is executed within a container and its execution does not rely on the environment the container is running in.</p>
 <p>In context of Eclipse MOSAIC, this approach allows to execute ns-3 within a docker container. The user does not
@@ -985,20 +990,23 @@
 <li>Linux - Make sure your user account belongs to the unix-group <code>docker</code>. You may need to restart your machine.</li>
 </ul>
 </li>
-<li>Switch to the location of the Dockerfile in <code>mosaic/bin/fed/ns3</code></li>
+<li>Switch to the location of the Dockerfile in <code>&lt;mosaic&gt;/bin/fed/ns3</code></li>
 <li>Execute the following command on command line:<br>
-<code>docker build -t ns3-federate:mosaic</code>.<br>
+<code>docker build -t ns3-federate</code>.<br>
 This could take a while to finish.</li>
-<li>Enter the name of the docker image etc/defaults.xml in the <code>ns3</code>-section into the tag <code>dockerImage</code>:</li>
+<li>Enter the name of the docker image <code>etc/runtime.json</code> in the <code>ns3</code>-section into the property <code>dockerImage</code>:</li>
 </ol>
-<pre><code class="language-xml">&lt;federate class=&quot;...&quot;&gt;
-    &lt;id&gt;ns3&lt;/id&gt;
-    ...
-    &lt;dockerImage&gt;ns3-federate:mosaic&lt;/dockerImage&gt;
-    ...
-&lt;/federate &gt;
+<pre><code class="language-json">&quot;federates&quot;: [
+   ...
+   {
+      &quot;id&quot;: &quot;ns3&quot;,
+      &quot;dockerImage&quot;: &quot;ns3-federate&quot;,
+      ...
+   },
+   ...
+]
 </code></pre>
-<p>You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the <code>mosaic_config.xml</code>.</p>
+<p>You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the <code>scenario_config.json</code>.</p>
 <h3 id="configuration">Configuration</h3>
 <p>The whole ns-3 specific configuration is done via the <code>confWifi.xml</code> and <code>configTechnologies.xml</code> files.</p>
 <p><strong>confWifi.xml:</strong></p>
diff --git a/docs/simulators/network_simulator_omnetpp/index.html b/docs/simulators/network_simulator_omnetpp/index.html
index 67158de..0db7f39 100644
--- a/docs/simulators/network_simulator_omnetpp/index.html
+++ b/docs/simulators/network_simulator_omnetpp/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -762,6 +767,7 @@
       <ul>
         <li><a href="#installation">Installation</a></li>
         <li><a href="#omnet-federate-configuration">OMNeT++ Federate Configuration</a></li>
+        <li><a href="#installation-in-docker-environment">Installation in Docker environment</a></li>
       </ul>
     </li>
   </ul>
@@ -852,7 +858,7 @@
 </tbody>
 </table>
 <h3 id="installation">Installation</h3>
-<h5 id="there-are-two-installation-types-of-the-eclipse-mosaic-omnet-federate">There are two installation types of the Eclipse MOSAIC OMNeT++ Federate:</h5>
+<p>There are two installation types of the MOSAIC OMNeT++ Federate:</p>
 <table>
 <thead>
 <tr>
@@ -871,7 +877,7 @@
 <tr>
 <td style="text-align:left">
 <a href="#installation-for-developers">DEVELOPER</a></td>
-<td style="text-align:left">The installation for developers addresses those who want to make changes or extend the Eclipse MOSAIC OMNeT++ Federate.<br><br>This installation type awaits that <strong>OMNeT++ 
+<td style="text-align:left">The installation for developers addresses those who want to make changes or extend the MOSAIC OMNeT++ Federate.<br><br>This installation type awaits that <strong>OMNeT++ 
 5.5</strong> and <strong>INET 
 4.1</strong> are already installed on your system and<br>- <code>PATH</code> contains <code>/path/to/omnetpp/bin</code><br>- <code>LD_LIBRARY_PATH</code> contains <code>/path/to/omnetpp/lib</code> and <code>/path/to/inet/src</code><br>- <code>C_INCLUDE_PATH</code> contains <code>/path/to/omnetpp/include</code> and <code>/path/to/inet/src</code></td>
 </tr>
@@ -881,11 +887,11 @@
   <div>
 <p>If you already have <strong>OMNeT++
 5.5</strong> and <strong>INET
-4.1</strong> installed on your system, but you simply want to use <strong>OMNeT++</strong> for simulations with Eclipse MOSAIC without developing further the Eclipse MOSAIC OMNeT++ Federate, you may also choose the <a href="/docs/simulators/network_simulator_omnetpp/#installation-for-developers">installation for developers</a> to avoid multiple installations of <strong>OMNeT++</strong> and <strong>INET</strong> on your system.</p>
+4.1</strong> installed on your system, but you simply want to use <strong>OMNeT++</strong> for simulations with Eclipse MOSAIC without developing further the MOSAIC OMNeT++ Federate, you may also choose the <a href="https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/#installation-for-developers">installation for developers</a> to avoid multiple installations of <strong>OMNeT++</strong> and <strong>INET</strong> on your system.</p>
   </div>
 </div>
-<h5 id="first-of-all-please-make-sure-that-you-have-the-following-libraries-installed">First of all, please make sure that you have the following libraries installed:</h5>
-<p><code>unzip</code>, <code>tar</code>, <code>bison</code>, <code>flex</code>, <code>gcc</code>, <code>python</code>, <code>protoc</code></p>
+<p>First of all, please make sure that you have the following libraries installed:
+<code>unzip</code>, <code>tar</code>, <code>bison</code>, <code>flex</code>, <code>gcc</code>, <code>python</code>, <code>protoc</code></p>
 <div class="alert alert-note">
   <div>
 <p>The installation of the current version of the OMNeT++ Federate was tested with protobuf version
@@ -893,7 +899,7 @@
 It is recommended to install this version. Here you receive more information about <a href="https://github.com/protocolbuffers/protobuf/blob/master/src/README.md">how to install protobuf</a>.</p>
   </div>
 </div>
-<h5 id="follow-the-links-and-download-the-source-code-of-omnet-inet-and-the-eclipse-mosaic-omnet-federate">Follow the links and download the source code of OMNeT++, INET and the Eclipse MOSAIC OMNeT++ Federate:</h5>
+<p>Follow the links and download the source code of OMNeT++, INET and the MOSAIC OMNeT++ Federate:</p>
 <table>
 <thead>
 <tr>
@@ -918,15 +924,15 @@
 <a href="https://github.com/inet-framework/inet/releases" target="_blank" rel="noopener">https://github.com/inet-framework/inet/releases</a></td>
 </tr>
 <tr>
-<td style="text-align:left"><strong>Eclipse MOSAIC OMNeT++ Federate</strong></td>
+<td style="text-align:left"><strong>MOSAIC OMNeT++ Federate</strong></td>
 <td style="text-align:left">
 20.0</td>
 <td style="text-align:left">
-<a href="/download">Download</a></td>
+<a href="https://github.com/mosaic-addons/omnetpp-federate/releases" target="_blank" rel="noopener">https://github.com/mosaic-addons/omnetpp-federate/releases</a></td>
 </tr>
 </tbody>
 </table>
-<h5 id="available-parameters-of-omnet_installersh">Available parameters of <code>omnet_installer.sh</code>:</h5>
+<p>Available parameters of <code>omnet_installer.sh</code>:</p>
 <table>
 <thead>
 <tr>
@@ -1007,30 +1013,34 @@
 chmod +x omnet_installer.sh`
 ./omnet_install.sh \
     --installation-type USER \
-    --omnetpp /path/to/omnetpp-OMNETPP_VERSION-src.tgz \
-    --inet /path/to/inet-INET_VERSION-src.tgz \
-    --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip
+    --omnetpp /path/to/omnetpp-5.5-src.tgz \
+    --inet /path/to/inet-4.1-src.tgz \
+    --federate /path/to/omnetpp-federate-20.0.zip
 </code></pre>
 <p>For the installation type <code>USER</code> the parameters <code>-o</code>, <code>-i</code> and <code>-f</code> are required.<br>
-The installation script should terminate with <code>SUCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed.</code> otherwise the installation failed.</p>
+The installation script should terminate with <code>SUCESS: The MOSAIC OMNeT++ Federate was successfully installed.</code> otherwise the installation failed.</p>
 <h4 id="installation-for-developers">Installation for Developers</h4>
 <p>Run the installation script (this takes a few minutes):</p>
 <pre><code class="language-bash">cd &lt;mosaic&gt;/bin/fed/omnetpp
 chmod +x omnet_installer.sh`
 ./omnet_install.sh \
     --installation-type DEVELOPER \
-    --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip
+    --federate /path/to/omnetpp-federate-20.0.zip
 </code></pre>
 <p>For the installation type <code>DEVELOPER</code> the parameter <code>-f</code> is required.<br>
-The installation script should terminate with <code>SUCCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed.</code> otherwise the installation failed.</p>
+The installation script should terminate with <code>SUCCESS: The MOSAIC OMNeT++ Federate was successfully installed.</code> otherwise the installation failed.</p>
 <p>
-<a href="/docs/extending_mosaic/simulation_federates#eclipse-mosaic-omnet-federate-development">How to develop Eclipse MOSAIC OMNeT++ Federate</a></p>
+<a href="https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/">Extending MOSAIC OMNeT++ Federate</a></p>
 <h3 id="omnet-federate-configuration">OMNeT++ Federate Configuration</h3>
-<p>To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open <code>&lt;scenarioName&gt;/mosaic/mosaic_config.xml</code> and enable OMNeT++:</p>
-<pre><code class="language-xml">&lt;federate id=&quot;omnetpp&quot; active=&quot;true&quot; /&gt;
+<p>To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open <code>&lt;scenarioName&gt;/scenario_config.json</code> and enable OMNeT++:</p>
+<pre><code class="language-json">&quot;federates&quot;: {
+   ...
+   &quot;omnetpp&quot;: true,
+   ...
+}
 </code></pre>
-<p>Now, when you run this scenario, Eclipse MOSAIC will automatically start the Eclipse MOSAIC OMNeT++ Federate.</p>
-<p>The main configuration of the Eclipse MOSAIC OMNeT++ Federate is done within the configuration files <code>omnetpp.ini</code> and <code>omnetpp_config.json</code> in the scenario:</p>
+<p>Now, when you run this scenario, Eclipse MOSAIC will automatically start the MOSAIC OMNeT++ Federate.</p>
+<p>The main configuration of the MOSAIC OMNeT++ Federate is done within the configuration files <code>omnetpp.ini</code> and <code>omnetpp_config.json</code> in the scenario:</p>
 <pre><code class="language-FOLDER">└─ &lt;scenario_name&gt;
    └─ omnetpp
       ├─ omnetpp.ini ...................... OMNeT++ federate configuration file
@@ -1042,6 +1052,43 @@
 Channel) are addressed. The communication parameters are different for vehicles and RSUs. Please refer
 to the OMNeT++ documentation on the OMNeT++ homepage for further information about the structure
 of the <code>omnetpp.ini</code> file.</p>
+<h3 id="installation-in-docker-environment">Installation in Docker environment</h3>
+<div class="alert alert-note">
+  <div>
+<p>This is an experimental feature. Please refer to our mailing list if you experience any problems.</p>
+  </div>
+</div>
+<p>This guide gives instructions to execute the OMNeT++ federate inside a docker container. If you already installed
+OMNeT++ on your machine following the steps before, you can skip this section.</p>
+<p>Docker is a new approach to execute software. More precisely, it &ldquo;wraps software in a complete filesystem
+that contains everything it needs to run: code, runtime, system tools, and system libraries&rdquo;. As a result, the
+software is executed within a container and its execution does not rely on the environment the container is running in.</p>
+<p>In context of Eclipse MOSAIC, this approach allows to execute OMNeT++ within a docker container. The user does not
+need to manually install OMNeT++ and can even run OMNeT++ on Windows hosts.</p>
+<ol>
+<li>Install Docker ≥ 1.13 on your machine.</li>
+<li>To get everything to work, please make sure to execute the following steps depending on your operating system:
+<ul>
+<li>Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab.</li>
+<li>Linux - Make sure your user account belongs to the unix-group <code>docker</code>. You may need to restart your machine.</li>
+</ul>
+</li>
+<li>Switch to the location of the Dockerfile in <code>&lt;mosaic&gt;/bin/fed/omnetpp</code></li>
+<li>Execute the following command on command line:<br>
+<code>docker build -t omnetpp-federate</code>.<br>
+This could take a while to finish.</li>
+<li>Enter the name of the docker image <code>etc/runtime.json</code> in the <code>omnetpp</code>-section into the property <code>dockerImage</code>:</li>
+</ol>
+<pre><code class="language-json">&quot;federates&quot;: [
+   ...
+   {
+      &quot;id&quot;: &quot;omnetpp&quot;,
+      &quot;dockerImage&quot;: &quot;omnetpp-federate&quot;,
+      ...
+   },
+   ...
+]
+</code></pre>
 
           </div>
 
diff --git a/docs/simulators/network_simulator_sns/index.html b/docs/simulators/network_simulator_sns/index.html
index 4042c0e..376407f 100644
--- a/docs/simulators/network_simulator_sns/index.html
+++ b/docs/simulators/network_simulator_sns/index.html
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
diff --git a/docs/simulators/traffic_simulator_sumo/index.html b/docs/simulators/traffic_simulator_sumo/index.html
index 1a75131..1a707c6 100644
--- a/docs/simulators/traffic_simulator_sumo/index.html
+++ b/docs/simulators/traffic_simulator_sumo/index.html
@@ -577,10 +577,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -595,11 +591,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -738,8 +734,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
diff --git a/docs/visualization/filevis/index.html b/docs/visualization/filevis/index.html
index 475989c..10619e4 100644
--- a/docs/visualization/filevis/index.html
+++ b/docs/visualization/filevis/index.html
@@ -33,7 +33,7 @@
   
     
   
-  <meta name="description" content="The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file.">
+  <meta name="description" content="The File Output Generator is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the File Output receives, one line (or more in case of an iteration object) is added to a CSV output file.">
 
   
   <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/visualization/filevis/">
@@ -241,8 +241,8 @@
   
   <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/filevis/">
-  <meta property="og:title" content="FileOutput | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content="The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
+  <meta property="og:title" content="File Output Generator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
+  <meta property="og:description" content="The File Output Generator is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the File Output receives, one line (or more in case of an iteration object) is added to a CSV output file."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
     
@@ -267,7 +267,7 @@
 
 
 
-  <title>FileOutput | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
+  <title>File Output Generator | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -575,10 +575,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -593,11 +589,11 @@
       </li>
       
       <li class="active">
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -736,8 +732,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -816,11 +821,11 @@
       <article class="article">
 
         <div class="docs-article-container">
-          <h1>FileOutput</h1>
+          <h1>File Output Generator</h1>
 
           <div class="article-style">
-            <p>The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For
-each interaction the FileOutput receives, one line (or more in case of an iteration object) is added
+            <p>The File Output Generator is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For
+each interaction the File Output receives, one line (or more in case of an iteration object) is added
 to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.</p>
 <p>One example output could be the following:</p>
 <pre><code class="language-csv">CELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000
@@ -875,11 +880,11 @@
 </tr>
 <tr>
 <td><code>start</code></td>
-<td>Sets the start time in seconds for visualization. This has nothing to do with the run time of the actual simulation</td>
+<td>Sets the start time in seconds for output generation. This has nothing to do with the run time of the actual simulation</td>
 </tr>
 <tr>
 <td><code>end</code></td>
-<td>Sets the end time in seconds for visualization. This has nothing to do with the run time of the actual simulation</td>
+<td>Sets the end time in seconds for output generation. This has nothing to do with the run time of the actual simulation</td>
 </tr>
 <tr>
 <td><code>loader</code></td>
@@ -905,7 +910,7 @@
 <p><em>Specific Configuration for interaction</em></p>
 <ul>
 <li>Attribute <code>id</code> indicates the interaction type, namely the class name of the interaction.</li>
-<li>The element <code>entries</code> defines the format and content of the finally visualized subscription record.</li>
+<li>The element <code>entries</code> defines the format and content of the handled subscription record.</li>
 <li>The element <code>entries</code> is composed of several sub-elements <code>entry</code>, which correspond to columns of a subscription
 record and the sequence of the columns is the same as that of sub-elements entry.</li>
 </ul>
@@ -970,7 +975,7 @@
 <p>Note: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.</p>
 <h2 id="additional-features">Additional features</h2>
 <h4 id="limit-output-on-time-frame">Limit output on time frame</h4>
-<p>You can configure the FileVisualizer to write out interactions within a specific frame of simulation time.
+<p>You can configure the File Output Generator to write out interactions within a specific frame of simulation time.
 This can be configured by setting the <code>start</code> and <code>end</code> attributes accordingly:</p>
 <pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;output id=&quot;fileoutput&quot; enabled=&quot;true&quot; 
@@ -979,12 +984,12 @@
 	...
 &lt;/output&gt;
 </code></pre>
-<p><em>An example for restricting visualization of interactions within a time frame</em></p>
+<p><em>An example for restricting output generation of interactions within a time frame</em></p>
 <h4 id="compress-output">Compress Output</h4>
 <p>The tag <code>&lt;write&gt;file+compress&lt;/write&gt;</code> can be added to the output configuration, in order
 to compress the output using gzip compression. This feature is suitable for large-scale scenarios with
 many outputs.</p>
-<pre><code class="language-xml">&lt;output id=&quot;fileVisualizer&quot; loader=&quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader&quot;&gt;
+<pre><code class="language-xml">&lt;output id=&quot;output&quot; loader=&quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader&quot;&gt;
 	&lt;write&gt;file+compress&lt;/write&gt;
 	...
 &lt;/output&gt;
@@ -1005,7 +1010,7 @@
   
   <div class="post-nav-item col-6">
     <div class="meta-nav">Next</div>
-    <a href="/mosaic/docs/visualization/statistics/" rel="prev">Statistics Visualizer</a>
+    <a href="/mosaic/docs/visualization/statistics/" rel="prev">Statistics Output</a>
   </div>
   
 </div>
diff --git a/docs/visualization/index.html b/docs/visualization/index.html
index e41c4bc..625ea3b 100644
--- a/docs/visualization/index.html
+++ b/docs/visualization/index.html
@@ -572,10 +572,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -590,11 +586,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -733,8 +729,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -829,13 +834,13 @@
 
 </figure>
 
-<p>To start the visualization, simply open the <code>bin/tools/visualizer.html</code> in your browser. As soon as
+<p>To start the visualization, simply open the <code>tools/web/visualizer.html</code> in your browser. As soon as
 the page has finished loading all of its content, it starts trying to connect to the WebSocket created by
 the Eclipse MOSAIC simulation. The WebSocket is also enabled by default for the tutorial scenario Barnim. For
-more details see the file <code>Barnim/visualizers/visualizer_config.xml</code>.</p>
+more details see the file <code>Barnim/output/output_config.xml</code>.</p>
 <pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;configuration&gt;
-    &lt;visualizer id=&quot;websocket&quot; enabled=&quot;true&quot; loader=&quot;com.dcaiti.vsimrti.fed.visualizer.WebsocketVisualizerConfig&quot;&gt;
+    &lt;output id=&quot;websocket&quot; enabled=&quot;true&quot; loader=&quot;org.eclipse.mosaic.fed.output.generator.websocket.WebsocketVisualizerLoader&quot;&gt;
         &lt;synchronized&gt;true&lt;/synchronized&gt;
         &lt;port&gt;46587&lt;/port&gt;
         &lt;subscriptions&gt;
@@ -846,7 +851,7 @@
             &lt;subscription id=&quot;RsuRegistration&quot; enabled=&quot;true&quot;/&gt;
             &lt;subscription id=&quot;TrafficLightRegistration&quot; enabled=&quot;true&quot;/&gt;
         &lt;/subscriptions&gt;
-    &lt;/visualizer&gt;
+    &lt;/output&gt;
 &lt;/configuration&gt;
 </code></pre>
 <p>As soon, as the simulation is
@@ -863,7 +868,7 @@
 </ul>
 <p>After the simulation has finished, you can click on the reconnect button and then run the simulation again.
 You can also start the visualization at each simulation run, using the command line parameter <code>-v</code>. In that case,
-Eclipse MOSAIC will automatically open the <code>bin/tools/visualizer.html</code> in your default browser once the simulation
+Eclipse MOSAIC will automatically open the <code>tools/web/visualizer.html</code> in your default browser once the simulation
 starts.</p>
 <div class="alert alert-warning">
   <div>
diff --git a/docs/visualization/index.xml b/docs/visualization/index.xml
index 2e262e5..7d65b5d 100644
--- a/docs/visualization/index.xml
+++ b/docs/visualization/index.xml
@@ -13,12 +13,12 @@
     </image>
     
     <item>
-      <title>FileOutput</title>
+      <title>File Output Generator</title>
       <link>https://www.eclipse.org/mosaic/docs/visualization/filevis/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/visualization/filevis/</guid>
-      <description>&lt;p&gt;The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For
-each interaction the FileOutput receives, one line (or more in case of an iteration object) is added
+      <description>&lt;p&gt;The File Output Generator is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For
+each interaction the File Output receives, one line (or more in case of an iteration object) is added
 to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.&lt;/p&gt;
 &lt;p&gt;One example output could be the following:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-csv&#34;&gt;CELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000
@@ -73,11 +73,11 @@
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt;
-&lt;td&gt;Sets the start time in seconds for visualization. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
+&lt;td&gt;Sets the start time in seconds for output generation. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;end&lt;/code&gt;&lt;/td&gt;
-&lt;td&gt;Sets the end time in seconds for visualization. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
+&lt;td&gt;Sets the end time in seconds for output generation. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;loader&lt;/code&gt;&lt;/td&gt;
@@ -103,7 +103,7 @@
 &lt;p&gt;&lt;em&gt;Specific Configuration for interaction&lt;/em&gt;&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Attribute &lt;code&gt;id&lt;/code&gt; indicates the interaction type, namely the class name of the interaction.&lt;/li&gt;
-&lt;li&gt;The element &lt;code&gt;entries&lt;/code&gt; defines the format and content of the finally visualized subscription record.&lt;/li&gt;
+&lt;li&gt;The element &lt;code&gt;entries&lt;/code&gt; defines the format and content of the handled subscription record.&lt;/li&gt;
 &lt;li&gt;The element &lt;code&gt;entries&lt;/code&gt; is composed of several sub-elements &lt;code&gt;entry&lt;/code&gt;, which correspond to columns of a subscription
 record and the sequence of the columns is the same as that of sub-elements entry.&lt;/li&gt;
 &lt;/ul&gt;
@@ -168,7 +168,7 @@
 &lt;p&gt;Note: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.&lt;/p&gt;
 &lt;h2 id=&#34;additional-features&#34;&gt;Additional features&lt;/h2&gt;
 &lt;h4 id=&#34;limit-output-on-time-frame&#34;&gt;Limit output on time frame&lt;/h4&gt;
-&lt;p&gt;You can configure the FileVisualizer to write out interactions within a specific frame of simulation time.
+&lt;p&gt;You can configure the File Output Generator to write out interactions within a specific frame of simulation time.
 This can be configured by setting the &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; attributes accordingly:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
 &amp;lt;output id=&amp;quot;fileoutput&amp;quot; enabled=&amp;quot;true&amp;quot; 
@@ -177,12 +177,12 @@
 	...
 &amp;lt;/output&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;An example for restricting visualization of interactions within a time frame&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;An example for restricting output generation of interactions within a time frame&lt;/em&gt;&lt;/p&gt;
 &lt;h4 id=&#34;compress-output&#34;&gt;Compress Output&lt;/h4&gt;
 &lt;p&gt;The tag &lt;code&gt;&amp;lt;write&amp;gt;file+compress&amp;lt;/write&amp;gt;&lt;/code&gt; can be added to the output configuration, in order
 to compress the output using gzip compression. This feature is suitable for large-scale scenarios with
 many outputs.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;fileVisualizer&amp;quot; loader=&amp;quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader&amp;quot;&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;output&amp;quot; loader=&amp;quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader&amp;quot;&amp;gt;
 	&amp;lt;write&amp;gt;file+compress&amp;lt;/write&amp;gt;
 	...
 &amp;lt;/output&amp;gt;
@@ -191,33 +191,33 @@
     </item>
     
     <item>
-      <title>Statistics Visualizer</title>
+      <title>Statistics Output</title>
       <link>https://www.eclipse.org/mosaic/docs/visualization/statistics/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/visualization/statistics/</guid>
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The &lt;strong&gt;Statistics Visualizer&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
+&lt;p&gt;The &lt;strong&gt;Statistics Output Generator&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;p&gt;The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.
-With the Statistics Visualizer you will be able to obtain short or detailed results of the simulation,
-e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.&lt;/p&gt;
+&lt;p&gt;Statistics Output is another output generating tool to easily measure basic simulation outcomes.
+You will be able to obtain short or detailed results of the simulation, e.g. travel times or the average speeds
+of groups of vehicles, or the average flow on induction loops.&lt;/p&gt;
 &lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
 &lt;ul&gt;
-&lt;li&gt;The main configuration file for all visualizers is located at &lt;code&gt;scenarios/&amp;lt;scenarioName&amp;gt;/visualizer/visualizer_config.xml&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;The main configuration file for all output generators is located at &lt;code&gt;&amp;lt;scenarioName&amp;gt;/output/output_config.xml&lt;/code&gt;&lt;/li&gt;
 &lt;/ul&gt;
-&lt;p&gt;In order to use the Statistics Visualizer, the attribute &lt;code&gt;enabled&lt;/code&gt; of the root element &lt;code&gt;visualizer&lt;/code&gt; must be
+&lt;p&gt;In order to use the Statistics Output, the attribute &lt;code&gt;enabled&lt;/code&gt; of the root element &lt;code&gt;output&lt;/code&gt; must be
 set to &amp;ldquo;true&amp;rdquo;, as shown in the following listing.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;visualizer id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
 	[..]
-&amp;lt;/visualizer &amp;gt;
+&amp;lt;/output&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;Configuration header for Statistics Visualizer&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Configuration header for Statistics Output&lt;/em&gt;&lt;/p&gt;
 &lt;h2 id=&#34;specification&#34;&gt;Specification&lt;/h2&gt;
-&lt;p&gt;In this section, we take a closer look at the Statistics Visualizer by using examples and demonstrations. For
+&lt;p&gt;In this section, we take a closer look at the Statistics Output by using examples and demonstrations. For
 each type of retrieving data we create a &lt;code&gt;&amp;lt;statistic&amp;gt;&amp;lt;/statistic&amp;gt;&lt;/code&gt; block. Inside the block we define
 one certain data type we want to retrieve in a &lt;source&gt; element. If you want to retrieve different data
 types, just create another &lt;code&gt;&amp;lt;statistic&amp;gt;&lt;/code&gt; block for each of them.&lt;/p&gt;
@@ -235,10 +235,10 @@
 	&amp;lt;source&amp;gt;NameOfSource&amp;lt;/source&amp;gt;
 &amp;lt;/statistic&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;Source options of Statistics Visualizer&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Source options of Statistics Output&lt;/em&gt;&lt;/p&gt;
 &lt;h2 id=&#34;application&#34;&gt;Application&lt;/h2&gt;
-&lt;p&gt;This section will demonstrate the basic idea and usage of the Statistics Visualizer depending on the
-individual requirements. Besides the retrieving raw data, the Statistics Visualizer has further features for
+&lt;p&gt;This section will demonstrate the basic idea and usage of the Statistics Output depending on the
+individual requirements. Next to retrieving raw data, the Statistics Output has further features for
 processing of the obtained data.&lt;/p&gt;
 &lt;ol&gt;
 &lt;li&gt;&lt;code&gt;source&lt;/code&gt;: Data to obtain, choose between:
@@ -247,10 +247,10 @@
 &lt;li&gt;&lt;code&gt;VehicleStops&lt;/code&gt; - The total number of stops during the journey of each vehicle.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleTravelTimes&lt;/code&gt; - The total travel time in s of the vehicles.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleDelayTimes&lt;/code&gt; - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s).&lt;/li&gt;
-&lt;li&gt;&lt;code&gt;VehicleTravelledDistances&lt;/code&gt; - The travelled distance inmof the vehicles.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;VehicleTravelledDistances&lt;/code&gt; - The travelled distance of the vehicles in m.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleFuelConsumptions&lt;/code&gt; - The fuel consumptions of the vehicles in l per km.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleHeadways&lt;/code&gt; - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor.&lt;/li&gt;
-&lt;li&gt;&lt;code&gt;DetectorFlow&lt;/code&gt; - The flows of each subscripted induction loop.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;DetectorFlow&lt;/code&gt; - The flows of each subscribed induction loop.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/li&gt;
 &lt;/ol&gt;
@@ -280,17 +280,17 @@
 &lt;/ul&gt;
 &lt;/li&gt;
 &lt;/ol&gt;
-&lt;p&gt;The following example will show an example of how you can specify the Statictics Visualizer according to
+&lt;p&gt;The following example will show an example of how you can specify the Statictics Output according to
 your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want
 to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim
 scenario) and then calculate the average vehicle travel time value for each of these groups.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;visualizer id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
 	&amp;lt;statistic filename=&amp;quot;AverageVehicleTravelTimes&amp;quot; output=&amp;quot;short&amp;quot;&amp;gt;
 		&amp;lt;source&amp;gt;VehicleTravelTimes&amp;lt;/source&amp;gt;
 		&amp;lt;group-by&amp;gt;VehicleGroup&amp;lt;/group-by&amp;gt;
 		&amp;lt;aggregation&amp;gt;Average&amp;lt;/aggregation&amp;gt;
 	&amp;lt;/statistic&amp;gt;
-&amp;lt;/visualizer&amp;gt;
+&amp;lt;/output&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;em&gt;Getting the Average time by vehicle class&lt;/em&gt;&lt;/p&gt;
 &lt;p&gt;You can also combine filters if you want to get a certain interval with upper and lower boundaries. With
@@ -304,7 +304,7 @@
 further processing as separate values for each of these steps (like &lt;code&gt;VehicleSpeeds&lt;/code&gt;, &lt;code&gt;VehicleHeadways&lt;/code&gt;).
 These data types need to be aggregated to one value per vehicle if you want to group them by value or
 filter them.&lt;/p&gt;
-&lt;p&gt;For demonstration, the StatisticsVisualizer is configured for the scenario Barnim and calculates the
+&lt;p&gt;For demonstration, the Statistics Output is configured for the scenario Barnim and calculates the
 average travel times of the vehicles and additionally groups them. As a result, the simulation produces
 the following CSV file in the log directory:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-csv&#34;&gt;Group;Value;Total;
@@ -312,7 +312,7 @@
 Cellular;463.87;12;
 Unequipped;459.18;84;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;The AverageVehicleTravelTime.csv file produced by the Statistics Visualizer in the Barnim scenario&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;The AverageVehicleTravelTime.csv file produced by the Statistics Output in the Barnim scenario&lt;/em&gt;&lt;/p&gt;
 </description>
     </item>
     
@@ -324,7 +324,7 @@
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The &lt;strong&gt;ITEF&lt;/strong&gt; is part of &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;.&lt;br&gt;
+&lt;p&gt;&lt;strong&gt;ITEF&lt;/strong&gt; is part of &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
@@ -447,7 +447,7 @@
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The 3D visualization &lt;strong&gt;RHABMap&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
+&lt;p&gt;The 3D visualization &lt;strong&gt;PHABMap&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
diff --git a/docs/visualization/itef/index.html b/docs/visualization/itef/index.html
index e124299..10ce9a9 100644
--- a/docs/visualization/itef/index.html
+++ b/docs/visualization/itef/index.html
@@ -33,7 +33,7 @@
   
     
   
-  <meta name="description" content="The ITEF is part of MOSAIC Extended.
+  <meta name="description" content="ITEF is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios.">
 
@@ -244,7 +244,7 @@
   <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/itef/">
   <meta property="og:title" content="Integrated Test and Evaluation Framework (ITEF) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content="The ITEF is part of MOSAIC Extended.
+  <meta property="og:description" content="ITEF is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
@@ -579,10 +579,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -597,11 +593,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li class="active">
@@ -740,8 +736,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -802,7 +807,7 @@
             <div class="alert alert-extended">
   <span class="extended-icon" style="background-image: url(/mosaic/img/alert-extended.svg)"></span>
   <div>
-<p>The <strong>ITEF</strong> is part of <a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a>.<br>
+<p><strong>ITEF</strong> is part of <a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a>.<br>
 For further information on licenses, feel free to contact us via <strong><a href="mailto:mosaic@fokus.fraunhofer.de"><a href="mailto:mosaic@fokus.fraunhofer.de">mosaic@fokus.fraunhofer.de</a></a></strong>.</p>
   </div>
 </div>
@@ -930,7 +935,7 @@
   
   <div class="post-nav-item col-6">
     <div class="meta-nav">Previous</div>
-    <a href="/mosaic/docs/visualization/statistics/" rel="next">Statistics Visualizer</a>
+    <a href="/mosaic/docs/visualization/statistics/" rel="next">Statistics Output</a>
   </div>
   
   
diff --git a/docs/visualization/phabmap/index.html b/docs/visualization/phabmap/index.html
index 58eb56e..177a8a1 100644
--- a/docs/visualization/phabmap/index.html
+++ b/docs/visualization/phabmap/index.html
@@ -33,7 +33,7 @@
   
     
   
-  <meta name="description" content="The 3D visualization RHABMap is part of MOSAIC Extended.
+  <meta name="description" content="The 3D visualization PHABMap is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation.">
 
@@ -244,7 +244,7 @@
   <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/phabmap/">
   <meta property="og:title" content="3D Visualization (PHABMap) | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content="The 3D visualization RHABMap is part of MOSAIC Extended.
+  <meta property="og:description" content="The 3D visualization PHABMap is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
   The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
@@ -579,10 +579,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -597,11 +593,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -740,8 +736,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -802,7 +807,7 @@
             <div class="alert alert-extended">
   <span class="extended-icon" style="background-image: url(/mosaic/img/alert-extended.svg)"></span>
   <div>
-<p>The 3D visualization <strong>RHABMap</strong> is part of <strong><a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a></strong>.<br>
+<p>The 3D visualization <strong>PHABMap</strong> is part of <strong><a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a></strong>.<br>
 For further information on licenses, feel free to contact us via <strong><a href="mailto:mosaic@fokus.fraunhofer.de"><a href="mailto:mosaic@fokus.fraunhofer.de">mosaic@fokus.fraunhofer.de</a></a></strong>.</p>
   </div>
 </div>
diff --git a/docs/visualization/statistics/index.html b/docs/visualization/statistics/index.html
index d858de7..20d9594 100644
--- a/docs/visualization/statistics/index.html
+++ b/docs/visualization/statistics/index.html
@@ -33,9 +33,9 @@
   
     
   
-  <meta name="description" content="The Statistics Visualizer is part of MOSAIC Extended.
+  <meta name="description" content="The Statistics Output Generator is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
-  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.">
+  Statistics Output is another output generating tool to easily measure basic simulation outcomes.">
 
   
   <link rel="alternate" hreflang="en-us" href="https://www.eclipse.org/mosaic/docs/visualization/statistics/">
@@ -243,10 +243,10 @@
   
   <meta property="og:site_name" content="Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
   <meta property="og:url" content="https://www.eclipse.org/mosaic/docs/visualization/statistics/">
-  <meta property="og:title" content="Statistics Visualizer | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
-  <meta property="og:description" content="The Statistics Visualizer is part of MOSAIC Extended.
+  <meta property="og:title" content="Statistics Output | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility">
+  <meta property="og:description" content="The Statistics Output Generator is part of MOSAIC Extended.
 For further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.
-  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
+  Statistics Output is another output generating tool to easily measure basic simulation outcomes."><meta property="og:image" content="https://www.eclipse.org/mosaic/images/logo.svg">
   <meta property="twitter:image" content="https://www.eclipse.org/mosaic/images/logo.svg"><meta property="og:locale" content="en-us">
   
     
@@ -271,7 +271,7 @@
 
 
 
-  <title>Statistics Visualizer | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
+  <title>Statistics Output | Eclipse MOSAIC – A Multi-Domain and Multi-Scale Simulation Framework for Connected and Automated Mobility</title>
 
 </head>
 
@@ -579,10 +579,6 @@
         <a href="/mosaic/docs/run_simulations/results/">Simulation Results</a>
       </li>
       
-      <li >
-        <a href="/mosaic/docs/run_simulations/simulation_set/">Run a Simulation Set</a>
-      </li>
-      
     </ul>
     
 
@@ -597,11 +593,11 @@
       </li>
       
       <li >
-        <a href="/mosaic/docs/visualization/filevis/">FileOutput</a>
+        <a href="/mosaic/docs/visualization/filevis/">File Output</a>
       </li>
       
       <li class="active">
-        <a href="/mosaic/docs/visualization/statistics/">Statistics Visualizer</a>
+        <a href="/mosaic/docs/visualization/statistics/">Statistics Output</a>
       </li>
       
       <li >
@@ -740,8 +736,17 @@
         <a href="/mosaic/docs/extending_mosaic/delay_models/">Delay Models</a>
       </li>
       
+    </ul>
+    
+
+  </div>
+  
+  <div class="docs-toc-item">
+    <a class="docs-toc-link" href="/mosaic/docs/api_docs/">API Documentation</a>
+    <ul class="nav docs-sidenav">
+      
       <li >
-        <a href="/mosaic/docs/extending_mosaic/java_docs/">Java Docs</a>
+        <a href="/mosaic/docs/api_docs/">Javadoc</a>
       </li>
       
     </ul>
@@ -812,32 +817,32 @@
       <article class="article">
 
         <div class="docs-article-container">
-          <h1>Statistics Visualizer</h1>
+          <h1>Statistics Output</h1>
 
           <div class="article-style">
             <div class="alert alert-extended">
   <span class="extended-icon" style="background-image: url(/mosaic/img/alert-extended.svg)"></span>
   <div>
-<p>The <strong>Statistics Visualizer</strong> is part of <strong><a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a></strong>.<br>
+<p>The <strong>Statistics Output Generator</strong> is part of <strong><a href="/mosaic/download#overview" title="MOSAIC Extended">MOSAIC Extended</a></strong>.<br>
 For further information on licenses, feel free to contact us via <strong><a href="mailto:mosaic@fokus.fraunhofer.de"><a href="mailto:mosaic@fokus.fraunhofer.de">mosaic@fokus.fraunhofer.de</a></a></strong>.</p>
   </div>
 </div>
-<p>The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.
-With the Statistics Visualizer you will be able to obtain short or detailed results of the simulation,
-e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.</p>
+<p>Statistics Output is another output generating tool to easily measure basic simulation outcomes.
+You will be able to obtain short or detailed results of the simulation, e.g. travel times or the average speeds
+of groups of vehicles, or the average flow on induction loops.</p>
 <h2 id="configuration">Configuration</h2>
 <ul>
-<li>The main configuration file for all visualizers is located at <code>scenarios/&lt;scenarioName&gt;/visualizer/visualizer_config.xml</code></li>
+<li>The main configuration file for all output generators is located at <code>&lt;scenarioName&gt;/output/output_config.xml</code></li>
 </ul>
-<p>In order to use the Statistics Visualizer, the attribute <code>enabled</code> of the root element <code>visualizer</code> must be
+<p>In order to use the Statistics Output, the attribute <code>enabled</code> of the root element <code>output</code> must be
 set to &ldquo;true&rdquo;, as shown in the following listing.</p>
-<pre><code class="language-xml">&lt;visualizer id=&quot;statistics&quot; enabled=&quot;true&quot; loader=&quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&quot;&gt;
+<pre><code class="language-xml">&lt;output id=&quot;statistics&quot; enabled=&quot;true&quot; loader=&quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig&quot;&gt;
 	[..]
-&lt;/visualizer &gt;
+&lt;/output&gt;
 </code></pre>
-<p><em>Configuration header for Statistics Visualizer</em></p>
+<p><em>Configuration header for Statistics Output</em></p>
 <h2 id="specification">Specification</h2>
-<p>In this section, we take a closer look at the Statistics Visualizer by using examples and demonstrations. For
+<p>In this section, we take a closer look at the Statistics Output by using examples and demonstrations. For
 each type of retrieving data we create a <code>&lt;statistic&gt;&lt;/statistic&gt;</code> block. Inside the block we define
 one certain data type we want to retrieve in a <source> element. If you want to retrieve different data
 types, just create another <code>&lt;statistic&gt;</code> block for each of them.</p>
@@ -855,10 +860,10 @@
 	&lt;source&gt;NameOfSource&lt;/source&gt;
 &lt;/statistic&gt;
 </code></pre>
-<p><em>Source options of Statistics Visualizer</em></p>
+<p><em>Source options of Statistics Output</em></p>
 <h2 id="application">Application</h2>
-<p>This section will demonstrate the basic idea and usage of the Statistics Visualizer depending on the
-individual requirements. Besides the retrieving raw data, the Statistics Visualizer has further features for
+<p>This section will demonstrate the basic idea and usage of the Statistics Output depending on the
+individual requirements. Next to retrieving raw data, the Statistics Output has further features for
 processing of the obtained data.</p>
 <ol>
 <li><code>source</code>: Data to obtain, choose between:
@@ -867,10 +872,10 @@
 <li><code>VehicleStops</code> - The total number of stops during the journey of each vehicle.</li>
 <li><code>VehicleTravelTimes</code> - The total travel time in s of the vehicles.</li>
 <li><code>VehicleDelayTimes</code> - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s).</li>
-<li><code>VehicleTravelledDistances</code> - The travelled distance inmof the vehicles.</li>
+<li><code>VehicleTravelledDistances</code> - The travelled distance of the vehicles in m.</li>
 <li><code>VehicleFuelConsumptions</code> - The fuel consumptions of the vehicles in l per km.</li>
 <li><code>VehicleHeadways</code> - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor.</li>
-<li><code>DetectorFlow</code> - The flows of each subscripted induction loop.</li>
+<li><code>DetectorFlow</code> - The flows of each subscribed induction loop.</li>
 </ul>
 </li>
 </ol>
@@ -900,17 +905,17 @@
 </ul>
 </li>
 </ol>
-<p>The following example will show an example of how you can specify the Statictics Visualizer according to
+<p>The following example will show an example of how you can specify the Statictics Output according to
 your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want
 to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim
 scenario) and then calculate the average vehicle travel time value for each of these groups.</p>
-<pre><code class="language-xml">&lt;visualizer id=&quot;statistics&quot; enabled=&quot;true&quot; loader=&quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&quot;&gt;
+<pre><code class="language-xml">&lt;output id=&quot;statistics&quot; enabled=&quot;true&quot; loader=&quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig&quot;&gt;
 	&lt;statistic filename=&quot;AverageVehicleTravelTimes&quot; output=&quot;short&quot;&gt;
 		&lt;source&gt;VehicleTravelTimes&lt;/source&gt;
 		&lt;group-by&gt;VehicleGroup&lt;/group-by&gt;
 		&lt;aggregation&gt;Average&lt;/aggregation&gt;
 	&lt;/statistic&gt;
-&lt;/visualizer&gt;
+&lt;/output&gt;
 </code></pre>
 <p><em>Getting the Average time by vehicle class</em></p>
 <p>You can also combine filters if you want to get a certain interval with upper and lower boundaries. With
@@ -924,7 +929,7 @@
 further processing as separate values for each of these steps (like <code>VehicleSpeeds</code>, <code>VehicleHeadways</code>).
 These data types need to be aggregated to one value per vehicle if you want to group them by value or
 filter them.</p>
-<p>For demonstration, the StatisticsVisualizer is configured for the scenario Barnim and calculates the
+<p>For demonstration, the Statistics Output is configured for the scenario Barnim and calculates the
 average travel times of the vehicles and additionally groups them. As a result, the simulation produces
 the following CSV file in the log directory:</p>
 <pre><code class="language-csv">Group;Value;Total;
@@ -932,7 +937,7 @@
 Cellular;463.87;12;
 Unequipped;459.18;84;
 </code></pre>
-<p><em>The AverageVehicleTravelTime.csv file produced by the Statistics Visualizer in the Barnim scenario</em></p>
+<p><em>The AverageVehicleTravelTime.csv file produced by the Statistics Output in the Barnim scenario</em></p>
 
           </div>
 
@@ -949,7 +954,7 @@
   
   <div class="post-nav-item col-6">
     <div class="meta-nav">Previous</div>
-    <a href="/mosaic/docs/visualization/filevis/" rel="next">FileOutput</a>
+    <a href="/mosaic/docs/visualization/filevis/" rel="next">File Output Generator</a>
   </div>
   
   
diff --git a/download/index.html b/download/index.html
index a536c72..282c8af 100644
--- a/download/index.html
+++ b/download/index.html
@@ -870,7 +870,7 @@
 <tr>
 <td style="text-align:left"></td>
 <td style="text-align:left"><strong><a href="/mosaic/docs/building_scenarios/scenario_convert/" title="Scenario Convert">Scenario Convert</a></strong></td>
-<td style="text-align:center">-</td>
+<td style="text-align:center">(✓)**</td>
 <td style="text-align:center"><strong>✓</strong></td>
 </tr>
 <tr>
@@ -889,6 +889,8 @@
 </table>
 <p>*) For the commercial version of MOSAIC Extended please leave us a message at <a href="mailto:mosaic@fokus.fraunhofer.de">mosaic@fokus.fraunhofer.de</a> and we will
 create an individual offer suitable to your needs.</p>
+<p>**) Scenario Convert is not part of the open-source version of Eclipse MOSAIC, but can be freely used and downloaded
+from the link on top.</p>
 
     </div>
     
diff --git a/img/background-home-01.jpg b/img/background-home-01.jpg
deleted file mode 100644
index 77ba9c2..0000000
--- a/img/background-home-01.jpg
+++ /dev/null
Binary files differ
diff --git a/img/background-home-01.xcf b/img/background-home-01.xcf
deleted file mode 100644
index b3e23db..0000000
--- a/img/background-home-01.xcf
+++ /dev/null
Binary files differ
diff --git a/img/features.xcf b/img/features.xcf
deleted file mode 100644
index bc7153a..0000000
--- a/img/features.xcf
+++ /dev/null
Binary files differ
diff --git a/img/logos/projects/ebasecamp.png b/img/logos/projects/ebasecamp.png
new file mode 100644
index 0000000..ca62dfe
--- /dev/null
+++ b/img/logos/projects/ebasecamp.png
Binary files differ
diff --git a/img/logos/projects/emerge2.png b/img/logos/projects/emerge2.png
new file mode 100644
index 0000000..dad96bb
--- /dev/null
+++ b/img/logos/projects/emerge2.png
Binary files differ
diff --git a/img/logos/projects/predrive.png b/img/logos/projects/predrive.png
new file mode 100644
index 0000000..0c3c4c6
--- /dev/null
+++ b/img/logos/projects/predrive.png
Binary files differ
diff --git a/img/logos/projects/simtd.jpg b/img/logos/projects/simtd.jpg
deleted file mode 100644
index 621f62a..0000000
--- a/img/logos/projects/simtd.jpg
+++ /dev/null
Binary files differ
diff --git a/img/logos/projects/simtd.png b/img/logos/projects/simtd.png
new file mode 100644
index 0000000..f240605
--- /dev/null
+++ b/img/logos/projects/simtd.png
Binary files differ
diff --git a/img/simulator-coupling.png b/img/simulator-coupling.png
index eb62ff1..40272df 100644
--- a/img/simulator-coupling.png
+++ b/img/simulator-coupling.png
Binary files differ
diff --git a/index.html b/index.html
index 4021a8a..ff0c912 100644
--- a/index.html
+++ b/index.html
@@ -1508,7 +1508,7 @@
       <div class="inner">
         <div class="row">
           <div class="eclipse-mosaic-title text-left">
-            <h2>Eclipse MOSAIC Simulation Framework</h2>
+            <h2>Eclipse MOSAIC Simulation Runtime Infrastructure</h2>
             
 
 
diff --git a/index.json b/index.json
index 7e3336c..4bbc306 100644
--- a/index.json
+++ b/index.json
@@ -1 +1 @@
-[{"authors":["fokus"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":-62135596800,"objectID":"cbf22d51976246e8f80b5f6a1df3bf83","permalink":"https://www.eclipse.org/mosaic/author/fraunhofer-fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/author/fraunhofer-fokus/","section":"authors","summary":"","tags":null,"title":"Fraunhofer FOKUS","type":"authors"},{"authors":null,"categories":null,"content":"Applications in Eclipse MOSAIC are simulated by the Eclipse MOSAIC Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;). To actively gain execution at some later point in time, an application can also schedule a generic event itself. When the application is executing, it has access to a set of methods, allowing to trigger actions like sensing messages or controlling the vehicle, influencing the current simulation (the application \u0026ldquo;acts\u0026rdquo;).\nDeveloping Applications Developing custom applications in Eclipse MOSAIC is rather easy. The best way to learn it is by looking at the source code of actual applications. For this purpose, we provide the source code of all tutorial applications and further examples.\nFor an easy understanding of the application API, the following questions and their answers should help:\n  What is required to get my own application to run in Eclipse MOSAIC? In Eclipse MOSAIC it is very easy to build your own application. First, it needs to inherit from the AbstractApplication class (see following section). Secondly, the application must be mapped to a vehicle (or RSU, or traffic light, \u0026hellip;) via the mapping configuration (see section mapping). Finally, the application must be compiled as a Jar-File and placed into the application directory of your scenario.\n  How can I access vehicle functions from within the application, such as sending V2X messages? Every applications has access to the OperatingSystem of the underlying unit which allows to change its state or to initiate actions, such as sending messages to other vehicles.\n  How can I react to events during the simulation, such as receiving V2X messages? For each application you decide, which events the application should listen to. For example, if your application needs to react upon incoming V2X messages, it simply implements the CommunicationApplication interface. In the following section you can find all available interfaces applications can implement.\n  Create a ’Hello world’ application based on Maven For this example you need to install Maven which is used to resolve required MOSAIC dependencies and to compile your application Java code into a Jar file. Follow the steps to build an example application:\n Create a new folder HelloWorldApp: └─ HelloWorldApp ├─ src | └─ main | └─ java | └─ HelloWorldApp.java └─ pom.xml   Place a pom.xml with the following content: \u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;project xmlns=\u0026quot;http://maven.apache.org/POM/4.0.0\u0026quot; xmlns:xsi=\u0026quot;http://www.w3.org/2001/XMLSchema-instance\u0026quot; xsi:schemaLocation=\u0026quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\u0026quot;\u0026gt; \u0026lt;modelVersion\u0026gt;4.0.0\u0026lt;/modelVersion\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic.app\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;HelloWorldApp\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;0.0.1\u0026lt;/version\u0026gt; \u0026lt;packaging\u0026gt;jar\u0026lt;/packaging\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;mosaic-application\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.0-SNAPSHOT\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; \u0026lt;/project\u0026gt;   Create a new application in src/main/java/HelloWorldApp.java: import org.eclipse.mosaic.fed.application.app.AbstractApplication; import org.eclipse.mosaic.fed.application.app.api.VehicleApplication; import org.eclipse.mosaic.fed.application.app.api.os.VehicleOperatingSystem; import org.eclipse.mosaic.lib.objects.vehicle.VehicleData; import org.eclipse.mosaic.lib.util.scheduling.Event; public class HelloWorldApp extends AbstractApplication\u0026lt;VehicleOperatingSystem\u0026gt; implements VehicleApplication { @Override public void onStartup() { getLog().info(\u0026quot;Hello World!\u0026quot;); } @Override public void onVehicleUpdated(VehicleData previousVehicleData, VehicleData updatedVehicleData) { getLog().info(\u0026quot;Driving {} m/s.\u0026quot;, updatedVehicleData.getSpeed()); } @Override public void onShutdown() { getLog().info(\u0026quot;Good bye!\u0026quot;); } @Override public void processEvent(Event event) { // ... } }   Build the application using maven: mvn clean install   Copy the JAR file from target/HelloWorldApp-0.0.1.jar to the application directory of your simulation scenario. Use the fully qualified name HelloWorldApp in the mapping_config.json to load the application onto vehicles.  Application Interfaces You may have noticed that the HellowWorldApp extends from the class [...].AbstractApplication\u0026lt;OS\u0026gt;. In order to define the type of unit your application can run on, you need to speficy the operating system by choosing one of the following:\n VehicleOperatingSystem - for applications mapped to normal vehicles. ElectricVehicleOperatingSystem - for applications for vehicles with electro mobility features. RoadSideUnitOperatingSystem - for applications mapped to RSUs. TrafficLightOperatingSystem - for applications mapped to traffic lights. TrafficManagementCenterOperatingSystem - for applications mapped to TMCs. ChargingStationOperatingSystem - for applications mapped to charging stations.  See package: org.eclipse.mosaic.fed.application.app.api.os.*\nFurthermore, your application can implement the following 7 interfaces in order to get informed on specific events:\n VehicleApplication - get informed when information about the vehicles state is updated. ElectricVehicleApplication - get informed on electric vehicle specific events. CommunicationApplication - react on incoming V2X messages. MosaicApplication - get informed on Eclipse MOSAIC internal events. TrafficLightApplication - get noticed when the traffic light program is changed. ChargingStationApplication - react on state changes of the charging station. TrafficManagementCenterApplication - get informed on state changes of road infrastructure.  See package: org.eclipse.mosaic.fed.application.app.api.*\n Basic Functions and Concepts for Applications The following section describes how applications are implemented.\nEvent hooks Applications are implemented by reacting to specific events. Those events are, amongst others:\n The simulation has started: All static units (e.g. road side units) are set up (onStartup() is called) Once a vehicle has been added to the simulation, all its configured applications are initialized (onStartup() is called) The data of the vehicle has changed, e.g. after the traffic simulator has finished one simulationstep (onVehicleUpdated() is called). A unit has received a V2X message from another entity (onMessageReceived is called). A unit which has send a V2X message via a ITS-G5 topocast receives an acknowledgement (onAcknowledgementReceived() is called).  Another example:\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .actor{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 text.actor \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .actor-line{stroke:grey;}#mermaid-1603209753374 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-1603209753374 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-1603209753374 #arrowhead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .sequenceNumber{fill:white;}#mermaid-1603209753374 #sequencenumber{fill:#333;}#mermaid-1603209753374 #crosshead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .messageText{fill:#333;stroke:#333;}#mermaid-1603209753374 .labelBox{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 .labelText,#mermaid-1603209753374 .labelText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopText,#mermaid-1603209753374 .loopText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:hsl(259.6261682243,59.7765363128%,87.9019607843%);}#mermaid-1603209753374 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-1603209753374 .noteText,#mermaid-1603209753374 .noteText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 sequence{fill:apa;}RTIApplicationSimulatorApplication1Application2VehicleRegistrationonStartup()onStartup()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()sendV2xMessage()V2xMessageTransmissionV2xMessageReceiptiononMessageReceived()VehicleUpdates (remove)onShutdown()onShutdown()RTIApplicationSimulatorApplication1Application2   Example sequence of onStartup, onUpdate, onMessageReceived and onShutdown of two applications.\nA onStartup() method, which enables the ITS-G5 communication module of the unit, could be implemented the following:\n@Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio().channel(AdHocChannel.CCH).power(50).create() ); }  A onMessageReceived() method, which reacts upon a DENM message, could be implemented as:\n@Override public void onMessageReceived(ReceivedV2xMessage receivedV2xMessage) { final V2xMessage msg = receivedV2xMessage.getMessage(); if (msg instanceof Denm) { Denm denm = (Denm)msg; GeoPoint eventLocation = denm.getEventLocation(); //TODO you can add further implementation here } }  Trigger own Events It is possible to trigger own events at specific times within the application. For this purpose, the application has access to an own event manager. Each event requires a simulation timestamp when it should be called, and an event processor.\nThe following code triggers an event in 10 seconds after the application has been initialied:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this); getOs().getEventManager().addEvent(event); } @Override public void processEvent(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  To address a specific method to process the event, Java lambda expressions could be used:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this::mySpecificMethod); getOs().getEventManager().addEvent(event); } public void mySpecificMethod(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  Using the Operating System Each application has access to the operating system of its unit. Depending on the type of unit, the operating system provides different methods. For example, an application which is mapped on vehicles, has access to the VehicleOperatingSystem by calling this.getOperatingSystem() (or this.getOs() to keep it short). The following examples show a bit of the capabilities the VehicleOperatingSystem provides:\nGet the current simulation time (in nanoseconds):\nlong time = this.getOs().getSimulationTime();  Return the name of the unit (e.g. \u0026ldquo;veh_0\u0026rdquo;):\nString nameOfUnit = this.getOs().getId();  Get access to vehicle data, such as speed, position, heading, and the like:\ndouble speed = this.getOs().getVehicleData().getSpeed(); GeoPoint position = this.getOs().getVehicleData().getPosition();  Change parameters of the vehicle during the simulation, such as its maximum speed:\nthis.getOs().requestVehicleParametersUpdate() .changeMaxSpeed(10) // m/s .changeMaxAcceleration(2.4) .apply();  Get the current lane index of the vehicle and change lane to left (within 5000 ms):\nint laneIndex = this.getOs().getRoadPosition().getLaneIndex(); int newLaneIndex = Math.max(0, laneIndex - 1); this.getOs().changeLane(newLaneIndex, 5000);  Sending a V2X message via ITS-G5 singlehop broadcast:\nMessageRouting routing = this.getOs().getAdHocModule().createMessageRouting().topoBroadCast(); V2xMessage message = new MyV2xMessage(routing); this.getOs().getAdHocModule().sendV2xMessage(message);  Park the vehicle in 200 meters at the right side of the road for 3 minutes:\ndouble distance = 200; double duration = 3 * 60 * 1000; IRoadPosition stopPosition = RoadPositionFactory.createAlongRoute( getOs().getNavigationModule().getRoadPosition(), getOs().getNavigationModule().getCurrentRoute(), 0, distance ); this.getOs().stop(distance, duration, Stop.StopMode.PARK);  Navigation The navigation of vehicles (i.e. calculation of routes) is handled completely by the Eclipse MOSAIC Application Simulator. Each vehicle is equipped with a navigation system which provides all required information and functions for navigational purposes:\n Retrieve the current position and heading of the vehicle. Get the target of the vehicle. Calculate various routes from the current position to an arbitrary target. Choose a suitable route out of existing ones from the current position to an arbitrary target. Switch onto a specific route.  In order to provide routing functionality, a map model based on Open Street Map data is used, which needs to be transformed before the simulation using scenario-convert. The map data including initial routes for vehicles is provided with the database file which needs to be located in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/\u0026lt;scenario_name\u0026gt;.db\nConfiguration If the database needs to be located somewhere else, the path can be specified in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ ... \u0026quot;navigationConfiguration\u0026quot;: { \u0026quot;databaseFile\u0026quot;: \u0026quot;path/to/scenario.db\u0026quot; } }  The following snippet show, how the navigation system can be used within an application:\n//get navigation module INavigationModule navigationModule = getOs().getNavigationModule(); //choose current target as target position RoutingPosition targetPosition = new RoutingPosition(navigationModule.getTargetPosition()); //set routing parameters to fastest route search RoutingParameters params = new RoutingParameters().costFunction(IRoutingCostFunction.Fastest); //calculate routes RoutingResponse response = navigationModule.calculateRoutes(targetPosition, params); //switch to best route if (response.getBestRoute() != null) { boolean routeSwitched = navigationModule.switchRoute(response.getBestRoute()); ... }  Access SUMO TraCI from applications If SUMO is used as a traffic simulator and a special functionality is required, the sendSumoTraciRequest function in the OperatingSystem can be used.\nThe function expects a string (a unique identifier which will be assigned to the response) and a byte array (representing the complete Traffic Control Interface (TraCI) request including the header). The message identifier can be an empty string.\nIn all cases the command will trigger a response. The application can receive the response from the method onSumoTraciResult. This method will receive a SumoTraciResult object. This response contains the specified identifier. The application must handle the identification process of the response itself.\n Be careful when using this interface and the TraCI commands. The commands are delivered to TraCI without any prior checks.\n   You can find the example application SumoTraciInteractionApp in the additional examples bundle on the DCAITI website.\n   Debugging of applications To debug an application, remote debugging needs to be used. The following steps need to be performed in order to debug the application:\n Open the application in your IDE. Modify your mosaic.sh or mosaic.bat by adding debug parameters to the java call:\njava -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4100 ... Add a new debug profile in your IDE for remote debugging. Make sure to correctly configure port 4100 (or whichever port you provided in step 2). Launch Eclipse MOSAIC with the argument -w 0 to disable the watchdog timer otherwise it will interfere with debugging. Connect your debugger in your IDE with the running simulation.  ","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"f3e4e878d3a3df21f512128da34ee9b3","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/","section":"docs","summary":"Applications in Eclipse MOSAIC are simulated by the Eclipse MOSAIC Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;).","tags":null,"title":"Basics in Application Development","type":"docs"},{"authors":null,"categories":null,"content":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated. It consists of the original simulator that is connected to its federate ambassador and an instance of an Eclipse MOSAIC ambassador. The federates run on top of the Eclipse MOSAIC Runtime Infrastructure (lower part of Figure 1) which offers services for federation-, interaction- and time management. The communication between the federates and the runtime infrastructure is enabled by ambassadors. More precisely, a federate that wants to access services of the RTI can use a designated RTI-Ambassador that provides access to the provided services. In the opposite direction, i.e. if the runtime infrastructure wants to invoke operations on the federate implementation, a federate ambassador is used. Each federate ambassador implements the same interface that is used by Eclipse MOSAIC to control the simulator and to provide interactions from other federates.\n Schematic illustration of Eclipse MOSAIC Runtime Infrastructure    Time Management The main problem in executing a federation is the synchronization of its federates. Each federate is a discrete-event simulator with an ordered event list from which sequentially the first event is processed. Consequently, the Time Management is necessary for coordinating the simulation and synchronizing participating federates. It assures that each federate processes its events in correct order.\nAccording to Fujimoto the time management in a federated environment includes two key components: Interaction (Message) order and time stamps. Note that we usually use the word \u0026lsquo;intercation\u0026rsquo; when talking about communication between federates, \u0026lsquo;message\u0026rsquo; will be used in the context of (V2X)-communication.\nThe Interaction Order service is completely implemented in Eclipse MOSAIC with the following design rationale: Each request of a federate to execute a local event is mapped to a global event within the Time management. Such an event consists of three attributes: simulation time, priority, and lookahead time. The simulation time defines the time in the simulation at which the event has to be processed. The priority allows defining an order of events that are scheduled at the same time. The third attribute, the lookahead time, describes an idle period following after an event. It is used to signalize that no further event will be scheduled and no interaction will be sent within this period. All events are scheduled by storing them in an event list in ascending order according to their simulation time. In case of equal simulation times, they are ordered in descending order to their priority. A time management cycle consists of three steps.\n  The federate invokes a time management service to request its logical time to advance. While Time Advance Request (TAR) is more suitable for time-stepped simulators, Next Event Request (NER) is the preferred primitive for event-driven federates.\n  The RTI delivers certain interactions to the federate. Each federate receives the interactions in the processInteraction() method.\n  The RTI completes the cycle by invoking a federate defined procedure called Time Advance Grant to indicate the federate’s logical time has been advanced. Eclipse MOSAIC supports the sequential and the parallel conservative mechanism for advancing time.\n   Interaction Management The exchange of data among federates is offered by the Interaction Management using interactions. Eclipse MOSAIC and its federates are decoupled through a publish-subscribe paradigm provided by the Interaction Management. A published interaction is forwarded to each subscriber directly after it has been published. However, a receiving federate is not allowed to advance its time based on an interaction but must request a time advancement if necessary. An interaction consists of its creation time, an identifier describing its type, and optional data. Interactions to exchange traffic, network, vehicle, and sensor data are predefined. These interactions are used to define a standardized communication behaviour.\nSubscribe Interaction Before a federate can receive interactions, it has to subscribe to them. The Interaction Management offers two different ways to subscribe to certain interactions. A federate can either define a interaction type only to receive all interactions of this type or, additionally, define conditions to filter interactions by their content. If a federate is not longer interested in subscribed interactions, it can rescind its interest.\nPublish Interaction Each federate is allowed to publish any interaction at any valid time of the simulation. After a interaction is published, the Interaction Management forwards the interaction to each federate that has subscribed to this type of interaction. A federate receiving a interaction can ignore it or request to advance its local time to handle this interaction.\n Federation Management The Federation Management is responsible for the administration of participating federates. This includes deploying, starting, stopping, and undeploying federates in a distributed system. Before running a simulation, the Federation Management creates an empty federation. After that, federates join the federation. Already joined federates can be removed from a federation, if they are not necessary for the rest of the simulation. After a simulation is finished, the Federation Management frees used resources.\nCreate Federation Creates an empty federation. After a federation is created, it is possible to join federates.\nJoin Federation A joining simulator is defined by a unique name and a FederateHandle. This handle contains the information whether start-up and deployment of the simulator are required to be handled by the Federation Management. In this case, further deployment and start-up information are included.\nStop Federation After a simulation is finished, all joined federates are resigned and their used resources are freed. All references are removed and necessary tasks to stop and undeploy the federate are executed.\nImplementation Details When a simulator is about to join a federation, a FederateHandle is passed to the Federation Manage- ment. A handle includes a Federate Ambassador that is responsible for all communication with the RTI as well as all identifiers for interactions it wants to subscribe to. Additionally, it contains two flags indicating how the simulator is started and if the simulator needs to be deployed by the Federation Management. For the deployment, the handle consists a reference to the directory including all binaries and host parameters consisting of an address and a directory in which the simulator shall be deployed. To start a simulator a start-command is included.\nIf the simulator is running, its ambassador is registered for coordinating the simulator during the sim- ulation run. Afterwards, the Federation Management initiates the subscription to interactions on behalf of an ambassador. Otherwise, before the ambassador is registered, the Federation Management starts and, if necessary, deploys the simulator on a local or a remote machine and connects it to its ambassador. The connection is created by redirecting the output of the started simulator to its ambassador. Based on the incoming data, the Federate Ambassador is responsible for configuring its communication with the simulator.\nLocal Federation Management In case a simulator is to be deployed on a local machine, its binaries are copied into the simulation directory that is defined within the host parameters. Afterwards, using the start-command the simulator is started in a new process and its output is redirected to the ambassador. Additionally, a mapping between ambassador and process reference is stored. Finally, when the federate is resigned, the ambassador is called to shut down its corresponding simulator. Finally, the mapped process is killed and all copied files are removed.\nDistributed Federation Management To administrate simulators on remote hosts, the Federation Management uses the Secure Shell (SSH) protocol to send commands and the associated Secure File Transfer Protocol (SFTP) to transfer binaries. After a process is started remotely, a mapping between ambassador, its process id, and the host on which is running are stored. Finally, when the federate is resigned, the remotely running process is killed and all binaries are removed.\n","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"1c65951f20f713cdbe7d5eea3c44701f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/","section":"docs","summary":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated.","tags":null,"title":"Core Concepts","type":"docs"},{"authors":null,"categories":null,"content":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the link above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document. Install additional software required by the simulation (see below), e.g. Eclipse SUMO  Folder Content └─ \u0026lt;mosaic-root\u0026gt; ├─ etc | ├─ hosts.json .................. Configuration of the execution host, e.g. temporary directory. | ├─ logback.xml ................. Configuration of log files and levels. | └─ runtime.json ................ Configuration of all Ambassadors and Federates coupled with the MOSAIC ├─ lib ............................. Directory with all Java compiled libraries required for MOSAIC. ├─ logs ............................ Directory with log files. ├─ scenarios ....................... Directory containing all simulation scenarios. ├─ tools ........................... Additional tools, like the HTML Visualizer. ├─ CONTRIBUTING.md ├─ LICENSE ├─ mosaic.bat ...................... Start script for Windows systems. └─ mosaic.sh ....................... Start script for GNU/Linux systems.  Additional Software The following table gives an overview of supported environments and simulators. Please make sure that you install those versions only.\n   Component Required  Version       Java yes Java 7 and below not supported Java 8  supported Java 11 and above  limited supported           Eclipse SUMO yes* 0.32.0 and below not supported 1.0.1 to 1.6.0  supported above 1.6.0  not tested    OMNeT++ optional 5.4 and below not supported  5.5  supported 5.6 and above  not supported    INET optional 4.0 and below not supported  4.1  supported 4.2 and above  not supported    ns-3 optional 3.27 and below not supported 3.28  supported 3.29 and above  not tested    * All provided scenarios require SUMO to be installed. However, if a different traffic or vehicle simulator is coupled, SUMO is not certainly required.\nUpdate Eclipse MOSAIC In order to update Eclipse MOSAIC to a new version, please perform the following steps manually:\n Backup your personal simulation scenarios from MOSAIC\u0026rsquo;s scenarios directory. Remove your old MOSAIC installation completely. Install MOSAIC by extracting the current binary archive from above. Copy your simulation scenarios back to MOSAIC\u0026rsquo;s scenarios directory. Take care of possible updates of the used software and simulators from third party (see the Compatibility Matrix above).  ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"0d7696d24c78e212b3f7477df55bfbb6","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/","section":"docs","summary":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the link above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document.","tags":null,"title":"Download Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.g. traffic, communication, application, electricity, or other).\nEach of the simulators must implement an interface, the so-called Ambassador. The ambassador communicates with the actual simulator, which is represented by the Federate. For some cases, if the simulator is directly coupled with the RTI (e.g. Application, or cell), the ambassador also represents the federate. This architecture allows a simple coupling of own simulators.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TraCIProtobufEclipse MOSAIC RTIEclipse SUMOOMNeT++ApplicationAmbassadorSumoAmbassadorOmnetppAmbassador   The following simulators are coupled already with MOSAIC:\n table th:first-of-type { width: 26%; }     Domain Simulator Name Description     Application Simulation MOSAIC Application Application prototyping and simulation.        Traffic / Vehicle Simulation Eclipse SUMO Microscopic Traffic simulation.    PHABMACS Sub-microscopic vehicle simulation with 3D visualization. Documentation will be published soon.        Network / Communication Simulation OMNeT\u0026#43;\u0026#43; Event-based network simulator for ITS-G5 and cellular communication.    ns-3 Event-based network simulator for ITS-G5 and cellular communication.    MOSAIC Simple Network Simulator Simulator for ITS-G5 ad-hoc communication using simplified models.    MOSAIC Cell Simulator for cellular communication.        Environment Simulation MOSAIC Environment Environmental event simulation.        E-Mobility Simulation MOSAIC Battery Electric vehicle simulation.    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7998013f795ff6ddbb68d3d1e213effe","permalink":"https://www.eclipse.org/mosaic/docs/simulators/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/","section":"docs","summary":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.","tags":null,"title":"Overview","type":"docs"},{"authors":null,"categories":null,"content":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.bat -s \u0026lt;scenario-name\u0026gt; mosaic.bat -c .\\scenarios\\\u0026lt;scenario_name\u0026gt;\\scenario_config.json  CLI Options The Eclipse MOSAIC start script supports the following arguments:\n table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 80%; }     Option Description     -c\n--configuration The primary configuration file which is scenario dependent and located in the according scenario folder. This file transitively includes other necessary configuration files. Usually you will use the file \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json.   -s\n--scenario If the main configuration file of your scenario is located in the default scenario directory of MOSAIC (i.e. in \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json), this option can be used instead of the -c option by passing only the scenario name -s \u0026lt;scenario_name\u0026gt;.   -w\n--watchdog-interval The interval of the internal alive check (in seconds) which is used by MOSAIC to detect execution stalls. This parameter is not mandatory and it is also possible to turn off the watchdog (-w 0) for debug sessions.   -o\n--log-level Override all specified logging-levels. This option is useful for debugging simulations. For example logging every possible event would be done with -o TRACE.   -b\n--realtime-brake With this parameter, the simulation will be slowed down to a desired Real Time Factor, if possible. When simulations already run slower than real time, this factor will have no effect. For example, use -b 1 to execute the simulation in real time.   -r\n--random-seed The global random seed to set for the simulation run. This is usually defined in the scenario_config.json, but can be overridden using this option.   -v\n--start-visualizer Opens a page in your default browser which visualizes all vehicle movements of the simulation on a map. This option only works, if your scenario is configured with the Websocket Visualizer.   -h\n--help Prints a help screen.    While Eclipse MOSAIC is running, it prints some information on the command line:\n[user@gnulinux mosaic]$ ./mosaic.sh -s HelloWorld 2020-09-08 16:46:09,794 INFO ROOT - Running Eclipse MOSAIC 20.0-SNAPSHOT on Java JRE v1.8.0_202 (AdoptOpenJdk) 2020-09-08 16:46:09,941 INFO FederationManagement - Start federation with id 'HelloWorld' 2020-09-08 16:46:09,943 INFO FederationManagement - Add ambassador/federate with id 'application' 2020-09-08 16:46:09,944 INFO FederationManagement - Add ambassador/federate with id 'mapping' 2020-09-08 16:46:09,945 INFO FederationManagement - Add ambassador/federate with id 'sumo' 2020-09-08 16:46:09,946 INFO FederationManagement - Deploying federate 'sumo' locally in .\\tmp\\sumo 2020-09-08 16:46:09,962 INFO FederationManagement - Starting federate 'sumo' locally in .\\tmp\\sumo 16:46:17 - Simulating: 195000000000ns (195.0s / 1000.0s) - 19.5% (RTF:33.10, ETC:25.2s)  The current simulation progress is shown in the following format.\n current wall clock time current simulation time in [ns] and [s] progress in % Real Time Factor (RTF) and Estimated Time to Completion (ETC)  The RTF is the ratio of simulated time to simulation duration in wall clock time, e.g. a real time factor greater than 1.0 means, the simulation is running faster than real time. Both RTF and ETC are calculated based on the performance of the last five seconds of the simulation and should only give a rough overview, how long a simulation can take. Depending on the simulation setup, the values can differ heavily between start and end of a simulation.\nScenario Configuration The configuration of a simulation scenario consists of a detailed description for each coupled simulator. The main configuration file is found under scenario_config.json, which defines the list of coupled simulators:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  This way, simulators can be easily added or removed from the simulation. Each of the coupled simulators is configured in the directory of the scenario_config.json file. The release bundle comes with a set of tutorial scenarios, which are described in detail in the Tutorials section.\nGather results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time. Moreover, Eclipse MOSAIC offers uniformly formatted and visually prepared results using various  Visualizer implementations.\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7482da389f363e79fed6bdad86e18c99","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/","section":"docs","summary":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.","tags":null,"title":"Run a single simulation","type":"docs"},{"authors":null,"categories":null,"content":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.\nThe following file structure shows the minimum setup of a typical simulation scenario in Eclipse MOSAIC:\n└─ \u0026lt;scenarioName\u0026gt; ├─ application | └─ \u0026lt;scenarioName\u0026gt;.db................ Scenario database file ├─ mapping | └─ mapping_config.json ............. Mapping configuration file ├─ sumo | └─ \u0026lt;scenarioName\u0026gt;.net.xml .......... SUMO network file | └─ \u0026lt;scenarioName\u0026gt;.sumocfg .......... SUMO configuration file └─ scenario_config.json ............... Basic configuration of the simulation scenario  In addition to those files, each simulator need to be provided with their custom configuration files.\nMain Configuration The main configuration file of a scenario is scenario_config.json. In this file basic properties are configured, such as the name of the scenario, the random seed, and activated simulators. Such a file looks like the following:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } }, \u0026quot;network\u0026quot;: { \u0026quot;netMask\u0026quot;: \u0026quot;255.255.0.0\u0026quot;, \u0026quot;vehicleNet\u0026quot;: \u0026quot;10.1.0.0\u0026quot;, \u0026quot;rsuNet\u0026quot;: \u0026quot;10.2.0.0\u0026quot;, \u0026quot;tlNet\u0026quot;: \u0026quot;10.3.0.0\u0026quot;, \u0026quot;csNet\u0026quot;: \u0026quot;10.4.0.0\u0026quot;, \u0026quot;serverNet\u0026quot;: \u0026quot;10.5.0.0\u0026quot;, \u0026quot;tmcNet\u0026quot;: \u0026quot;10.6.0.0\u0026quot; } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  The following fields needs to be configured:\n id - The name of the scenario duration - The duration of the simulation in seconds. randomSeed - The seed to initialze the random number generator with in order to have deterministic results. If not set, a random seed is taken. projection - Configures the coordinate transformation from geographic coordinates to cartesian coordinates. Having a correct setting here is crucial to get correct results that map to real world coordinates so the simulation results can be visualized in some way. The center coordinate will be used to determine the correct UTM zone, the cartesianOffset can be determined by having a look at the trafﬁc simulators network ﬁle, e.g. SUMOs *.net.xml contains this information in the netOffset attribute of the location tag. network - Within this config the address resolution scheme is speciﬁed. The subnets for all unit types are described here. Usually, default configuration should be sufficient. However, if you have many vehicles in your scenario the IP address space would be to small to provide enough addresses. In such cases, the netMask and all subnets have to be configured accordingly. Last but not least, the federate tags define which simulators are active in the simulation.  Traffic Simulator Configuration The generated files for the used traffic simulator are placed into the folder named after that simulator, e. g. sumo . For example, the \u0026lt;scenarioName\u0026gt;.sumo.cfg describes the main configuration of the SUMO simulator, which should refer to a network file and a route file:\n\u0026lt;configuration\u0026gt; \u0026lt;input\u0026gt; \u0026lt;net-file value=\u0026quot;MyScenario.net.xml\u0026quot; /\u0026gt; \u0026lt;route-files value=\u0026quot;MyScenario.rou.xml\u0026quot; /\u0026gt; \u0026lt;/input\u0026gt; \u0026lt;/configuration\u0026gt;  While the *.net.xml is a mandatory file to be placed within the sumo directory, the *.rou.xml is automatically generated by the SumoAmbassador when the simulation is started. More information on the configuration of SUMO can be found here.\nApplications and Mapping Vehicles Usually you want the simulated vehicles to be equipped with some kind of applications that inﬂuence the vehicles behavior. To do that you copy the jar files of your applications to the folder \u0026lt;scenarioName\u0026gt;/applicationNT . Having the applications in place you will have to create a mapping_config.json file in the folder \u0026lt;scenarioName\u0026gt;/mapping .\nThe following file would spawn 1 vehicle every five seconds (720 veh/hour divided by 3600 sec) until it reaches the max number of vehicles: 500. All the vehicles would be equipped with an application sending CA-messages periodically.\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ] }  Traffic lights If you want to simulate traffic lights equipped with applications, traffic lights should be defined in the simulator specific configuration file and also added to the mapping configuration file. The applications can be equipped by explicitly specifying them as \u0026ldquo;applications\u0026rdquo;\n{ \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp\u0026quot; ] } ] }  or by referring to previosly defined prototypes:\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.fed.applicationNT.etsiApplications.impl.Vehicle\u0026quot; ] }, { \u0026quot;name\u0026quot;: \u0026quot;TrafficLight\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vimrti.app.phabmacstestapp.TrafficLightTestApp\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ], \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  Please note that traffic light name and traffic light itself in the mapping file stand for a traffic light group controlling a whole junction. Traffic light group can consist of many individual traffic lights controlling an exact lane. The value of the \u0026ldquo;tlGroupId\u0026rdquo; key MUST coincide with the name of the traffic light group in the traffic simulator related configuration file (with tlLogic id for SUMO and with junction id for Phabmacs).\nFor SUMO, the description of traffic light groups and their programs can be found in scenarioname.net.xml:\n\u0026lt;tlLogic id=\u0026quot;26704448\u0026quot; type=\u0026quot;static\u0026quot; programID=\u0026quot;1\u0026quot; offset=\u0026quot;0\u0026quot;\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;GGrG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;yyry\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;rrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rryy\u0026quot;/\u0026gt; \u0026lt;/tlLogic\u0026gt;  mapping_config.json:\n{ ... \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  More information on the mapping configuration can be found here.\nFor more information about how SUMO traffic lights work please refer to SUMO Traffic Lights.\nFor Phabmacs, one should create a separate configuration file containing the description of traffic light groups and traffic light programs.\nmapping_config.json:\n{ ... \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;prototype\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  phabmacs_config.json:\n{ ... \u0026quot;ttlFile\u0026quot;:\u0026quot;berlinTrafficLights.ttl.json\u0026quot;, ... }  An example of how the traffic light configuration can look like in berlinTrafficLights.ttl.json:\n{ \u0026quot;programs\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;default\u0026quot;, \u0026quot;phases\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;duration\u0026quot;: 10, \u0026quot;groupStates\u0026quot;: [ \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot; ] }, { \u0026quot;id\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;duration\u0026quot;: 15, \u0026quot;groupStates\u0026quot;: [ \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot;, \u0026quot;red\u0026quot;, \u0026quot;green\u0026quot; ] } ], \u0026quot;transitions\u0026quot;: [ { \u0026quot;from\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;yellowPhaseDuration\u0026quot;: 3, \u0026quot;allRedPhaseDuration\u0026quot;: 3, \u0026quot;redYellowPhaseDuration\u0026quot;: 1 }, { \u0026quot;from\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;0\u0026quot;, \u0026quot;yellowPhaseDuration\u0026quot;: 3, \u0026quot;allRedPhaseDuration\u0026quot;: 6, \u0026quot;redYellowPhaseDuration\u0026quot;: 1 } ] } ], \u0026quot;junctions\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;signalGroups\u0026quot;: [ { \u0026quot;id\u0026quot;: \u0026quot;K1\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51187173469569, \u0026quot;longitude\u0026quot;: 13.309426296977083 } }, { \u0026quot;id\u0026quot;: \u0026quot;K2\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.511666041314484, \u0026quot;longitude\u0026quot;: 13.3092408198885 } }, { \u0026quot;id\u0026quot;: \u0026quot;K3\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51155112036543, \u0026quot;longitude\u0026quot;: 13.30933672655086 } }, { \u0026quot;id\u0026quot;: \u0026quot;K4\u0026quot;, \u0026quot;tlLocation\u0026quot;:{ \u0026quot;latitude\u0026quot;: 52.51200251720905, \u0026quot;longitude\u0026quot;: 13.30936414260184, \u0026quot;heading\u0026quot;: 180.0 }, \u0026quot;lanes\u0026quot;: [ 0 ] } ], \u0026quot;availablePrograms\u0026quot;: [ \u0026quot;default\u0026quot; ] } ] }  The applicationNT folder furthermore needs a generated database file \u0026lt;scenarioName\u0026gt;.db . This database file contains information about the road network (road topology) and all routes the vehicles can drive on. This file is usually generated by the tool scenario-convert, which is described here in detail.\nCommunication Simulator The configuration of the communication parameters are usually not dependent from the location of the road network. Therefore, most of the required files can be extracted from other scenarios, such Barnim or Tiergarten. Depending on the simulator you will need to configure the geographic extend of the simulation area. You can ﬁnd that data in the trafﬁc simulators network file, e.g. SUMOs *.net.xml contains this information in the convBoundary attribute of the location tag.\n For OMNeT++, it concerns the values of constraintArea in the omnetpp.ini For the Eclipse MOSAIC Cell simulator, the expansions do not need to be conﬁgured directly. However, the areas of the conﬁgured regions (in regions.json) have to be in line with the scenario location. The SNS also comes without an additional expansion deﬁnition.  Further information on the communication simulators can be found in: ns-3 SNS Eclipse MOSAIC Cell OMNeT++\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"911d7d211da284d47641d647331b899d","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/","section":"docs","summary":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.","tags":null,"title":"Simulation Scenarios","type":"docs"},{"authors":null,"categories":null,"content":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created. It runs in the browser and shows an OpenLayers Map with markers, indicating the positions of all vehicles, as well as overall the simulation progresses.\n Red vehicles are sending messages and green vehicles are receiving messages at that specific point of time in the simulation.   To start the visualization, simply open the bin/tools/visualizer.html in your browser. As soon as the page has finished loading all of its content, it starts trying to connect to the WebSocket created by the Eclipse MOSAIC simulation. The WebSocket is also enabled by default for the tutorial scenario Barnim. For more details see the file Barnim/visualizers/visualizer_config.xml.\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;visualizer id=\u0026quot;websocket\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.WebsocketVisualizerConfig\u0026quot;\u0026gt; \u0026lt;synchronized\u0026gt;true\u0026lt;/synchronized\u0026gt; \u0026lt;port\u0026gt;46587\u0026lt;/port\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageReception\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageTransmission\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;RsuRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;TrafficLightRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;/subscriptions\u0026gt; \u0026lt;/visualizer\u0026gt; \u0026lt;/configuration\u0026gt;  As soon, as the simulation is running, you should see vehicle markers moving around and indicating if they are sending V2X messages (green) or receiving V2X message (red).\nThe status bar at the bottom of the page indicates the current connection/simulation state. There are four possible states:\n Connecting - Trying to connect to the WebSocket opened by Eclipse MOSAIC. Simulating - Periodically fetching simulation data and updating markers accordingly. Simulation finished - The simulation has finished. Error - An error occurred. Either there was a problem caused by the WebSocket itself, or a timeout occurred while trying to connect to the WebSocket.  After the simulation has finished, you can click on the reconnect button and then run the simulation again. You can also start the visualization at each simulation run, using the command line parameter -v. In that case, Eclipse MOSAIC will automatically open the bin/tools/visualizer.html in your default browser once the simulation starts.\n By default, the WebSocket Visualizer does not work on Microsoft Edge. UWP (UniversalWindows Platform) apps onWindows 10 do not have direct network access but are subject to a network isolation for security reasons, preventing localhost loopback by default. WhileMicrosoft Edge itself does allow localhost access, it treats localhost as an Internet site, which leads to restrictions e.g. for IPC over IP. To prevent this, an exception for Edgemust be added to the network isolation via the following command in an elevated command prompt:\nCheckNetIsolation LoopbackExempt -a -n=\u0026quot;Microsoft.MicrosoftEdge_8wekyb3d8bbwe\u0026quot;    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"4ceda5b87ab93856c1c3520fdb9ecfb3","permalink":"https://www.eclipse.org/mosaic/docs/visualization/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/","section":"docs","summary":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created.","tags":null,"title":"WebSocket Visualizer","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.g. for communication, traffic, and application simulations. For the synchronization and data exchange, the provided runtime infrastructure uses common concepts similar to ones defined in the High Level Architecture (HLA ) standard proposed by the IEEE. Simulators are integrated following the ambassador/federate principle and messages (we call them interactions) are used to implement the time synchronization and data exchange amongst them. Consequently, the runtime infrastructure allows a flexible combination of time-discrete simulators for V2X simulations and the like. Based on the varying requirements for specific use-cases, arbitrary simulators can be added to Eclipse MOSAIC and will be executed together.\nThis online documentations provides detailed information for the current release of Eclipse MOSAIC. The following objectives are target of this documentation:\n1.\u0026nbsp; Getting Started Download and installation.Learn more    2.\u0026nbsp; Run Simulations Run single simulation or simulation sets.Learn more    3.\u0026nbsp; Visualization Visualize and evaluate simulation results.Learn more    4.\u0026nbsp; Simulators Configure external and integrated simulators.Learn more    5.\u0026nbsp; Building Scenarios Build your own simulation scenarios.Learn more    6.\u0026nbsp; Create Applications Develop applications for the Application Simulator.Learn more    7.\u0026nbsp; Extending Eclipse MOSAIC Extend Eclipse MOSAIC.Learn more     ","date":1596672000,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1596672000,"objectID":"4cdd37113783e47641dd300543c94e1b","permalink":"https://www.eclipse.org/mosaic/docs/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/docs/","section":"docs","summary":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.","tags":null,"title":"Eclipse MOSAIC Documentation","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more detail.\n Cellular Communication Ad-hoc Communication  Depending on the needs of the application, there are different approaches to solve the communication issue in Eclipse MOSAIC simulations. However, a distinction must be made between inter vehicle communication and Vehicle-to-X communication. Also, it is possible to modify the selected communication mode dependent on requirements.\nGenerally, the following modes are available based on network:\nCellular Communication\n Geobroadcast Geocast Topocast  Ad-hoc Communication\n Geobroadcast Geocast Topobroadcast Topocast   Cellular Communication The cellular network is known from wireless mobile communication and the principle is to divide the entire geographic area into several smaller parts called \u0026ldquo;cells\u0026rdquo;. Each cell has a fixed-location transceiver with a coverage ratio.\nEclipse MOSAIC enables the communication with all the existing vehicles via Geobroadcast mode or direct communication via Geocast in a specific area (circular, rectangular). In contrast, the Topocast mode is not restricted to a specific area.\nCellular Geobroadcast The principle function of the Geobroadcast is to communicate with all entities within a geographical area. Eclipse MOSAIC offers the possibility to configure a specific geographical area which can be either a circular or a rectangular area.\nThe following figure illustrates a vehicle veh_2 which is communicating with the other vehicles(veh_1, veh_3) within a radius R.\n Illustration of Geobroadcast in a spezific circular area   A circular communication area can be defined with the geoBroadCast(GeoCircle geoCircle) from an Eclipse MOSAIC application, as shown below:\nGeoCircle transmissionArea = new GeoCircle(GeoPoint.latlon(52.5, 13.2), 3000); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  A rectangular destination area can be defined similarly:\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Geocast Compared to Geobroadcasting, a Geocast addresses a receiver with an unique address. Addressing can be in the form of an IP-Address or a receiver-ID (e.g. veh_0). Again, the communication area can be configured as circular or rectangular.\nAssume, the veh_1 has a message which is addressed to veh_2. In order to send the message, veh_1 first examines whether the vehicle with ID veh_2 is located within the transmission area. If this is the case, the message will be transmitted. In figure below is this situation illustrated.\n Cellular Geocast to address a receiver within a defined area   The following methods are provided for the configuring the transmission area (Circle or Rectangle) and the addressing to the receiver(hostname or ip address).\n geoCast(GeoCircle geoCircle, String receiverName)  geoCast(GeoRectangle geoRectangle, String receiverName) geoCast(GeoCircle geoCircle, byte[] ipAddress) geoCast(GeoRectangle geoRectangle, byte[] ipAddress)  GeoCircle transmissionArea = new GeoCircle( GeoPoint.latlon(52.5, 13.2), 3000); String receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().geoCast(transmissionArea, receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Topocast Compared to Geocast or Geobroadcast, the Topocast is totally independent of geographical conditions and the addressing can be in the form of an IP-Address or a receiver-ID.\nThe next figure illustrates how the veh_0 is communicating with veh_1 in Topocast mode.\n Topocast mode for direct addressing without geographical constraints   The code example below shows how we can configure the requirements of the communication in Topocast mode.\nString receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().topoCast(receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));   Ad-hoc Communication The Ad-hoc network does not rely on a pre-existing infrastructure. Provided that vehicles are equipped with Ad-hoc modules, they are able to communicate with each other dynamically. In case of a sufficient number of Ad-hoc equipped vehicles, a message can be transferred via hops quickly over a long distance.\nEclipse MOSAIC also enables the communication via a specific Ad-hoc channel within the wireless Ad-hoc network. However, the Ad-hoc channels for vehicular communication are limited and standardized by the IEEE 802.11p. The licensed frequency band 5.9 GHz (5.85-5.925 GHz) for Intelligent Transportation Systems(ITS) will be used as Ad-hoc channels.\nThe following table shows the possible channels on the 5.9 GHz band used for V2X communication.\n   Channel Number 0 1 2 3 4 5 6     Channel Name SCH1 SCH2 SCH3 CCH SCH4 SCH5 SCH6   Frequency Band 5.86 5.87 5.88 5.89 5.9 5.91 5.92    Configuring AdHoc Capabilities The first step to enable your application to use Ad hoc capabilities, is to make sure it extends the AbstractSimulationUnit-class or one of its child-classes (e.g. VehicleUnit, ChargingStationUnit) found in package org.eclipse.mosaic.fed.application.ambassador.simulation. Additionally, if you want your application to act upon the reception or transmission of messages, make sure it implements the interface CommunicationApplication.\nOnce this is done, make sure to configure and enable the AdHoc-module in your application. Below is an example configuration taken from the Tiergarten-tutorial. Instead of configuring the .power(...)[mW] it is also possible to configure a .distance(...)[m].\n// Example of AdHocConfiguration (see TiergartenVehicle.java) @Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio() .channel(AdHocChannel.CCH) .power(50) .create()); }  Ad-hoc Topobroadcast In Topobroadcast mode, the communication between vehicles is regardless of the geographic conditions. However, the communicating entities must be operated on the same Ad-hoc channel and there are two options to use the Topobroadcast:\n Singlehop Multihop  Singlehop approach in Topobroadcast For Singlehop, it is not necessary to specify the number of hops explicitly which indicates the lifespan of a message, because in Singlehop, any message has a lifespan of hop = 1. Moreover, Eclipse MOSAIC allows to use the default method topoBroadCast() which automatically assigns a Control Channel (CCH) for the simulation entity and a lifespan based on the Singlehop principle. Alternatively you can use the non-default method topoBroadCast(AdHocChannel) in order to specify the Ad-hoc channel.\nBelow are some configuration examples of the default addressing method topoBroadCast() and non-default addressing method topoBroadCast(AdHocChannel).\nMessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  The following figure shows a simplified model based on the Singlehop principle. The veh_1 sends messages to all simulation entites(RSU, veh_2) that are using the same Ad-hoc channel. After transmission, the message can no longer be forwarded by the receiver.\n Overview Singlehop with specified Ad-hoc channel   Multihop approach in Topobroadcast In Multihop, the lifespan (amount of hops) of a message can be specified, allowing larger communication distances.\nThe following figure shows a Multihop example with a data package D (M, h = 2) from the vehicle veh_0 which contains a message M and a hop number h = 2. Assuming that a lot of simulation entities are using the same Ad-hoc channel the message can be forwarded over a along distance. After each forward the hop number will be incremented by 1. Since the hop amount was set to 2, the forwarding will stop after 2 increments.\n Overview Multihop principle   The next code snippet shows a configuration example with an Ad-hoc channel and a message lifespan hops = 2.\nAdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel, hops); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));   In order to use the Multihop approach in OMNeT++ and ns-3 provided by Eclipse MOSAIC, its necessary to implement a routing protocol in network simulators (OMNeT++, ns-3). But the built in communication simulator SNS includes a simple routing protocol “Flooding”.\n  Ad-hoc Topocast In addition to the Topobroadcast, the communication in Topocast mode will be addressed explicitly to the recipient and the addressing can be done either through receiver name (vehicle-ID e.g. veh_0) or the IP-Address of the vehicle.\nfinal byte[] ipv4Address = {127,36,50,4}; AdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoCast(ipv4Address, hops, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geobroadcast In contrast to Cellular Network above, the simulation entities act as active communication part (transmitter and receiver) and all simulation entities within range are getting messages in Geobroadcast mode.\nAs example in the following illustration, The vehicles veh_0, veh_2, veh_3 and the RSU are Ad-hoc equipped and there is no vehicle in the communication range of RSU, therefore a hop is not possible to next vehicle veh_0. But the vehicles veh_2 and veh_3 are able to communicate with each other.\n Principle of Ad-hoc Geobroadcast mode   With the methods\n geoBroadCast(GeoCircle geoCircle) geoBroadCast(GeoRectangle geoRectangle)  of the Eclipse MOSAIC class AdHocMessageRoutingBuilder ,we are able, to configure the required area as a circle or a rectangle.\nGeoPoint center = GeoPoint.latlon(52.5, 13.2); GeoCircle adHocModule = new GeoCircle(center, 3000); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(adHocModule); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Analogous to the examples above, we can also configure the transmission area as a rectangle.\nThe next code snippet illustrates a possible configuration with a rectangular transmission area and a specified Ad-hoc channel.\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); final double radius = 3000.0; GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(transmissionArea, AdHocChannel.SCH1); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geocast The class AdHocMessageRoutingBuilder only has one method for Geocasting mode, geoCast(DestinationAddress destinationAddress, AdHocChannel adHocChannel). Communication is possible if the IP-address of receiver is known and both (receiver and transmitter) are on the same Ad-hoc channel.\n In this context the name Geocast is misleading, because a geological condition is not necessary.\n  As you can see in the next picture, the RSU uses the Ad-hoc channel SCH1 and several vehicles use different Ad-hoc channels. Assuming the RSU tries to send a message to veh_1 and has knowledge about the IP-Address of veh_1, if the vehicle veh_1 also uses the same channel SCH1, the transmission will be completed successfully.\n Ad-hoc Geocast communication between entities using the same channel   Below you can see a possible configuration.\nfinal byte[] ipv4Address = {127,36,50,4}; DestinationAddress destAddress = new DestinationAddress(ipv4Address); AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoCast(destAddress, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  CAM - Implementation A Cooperative Awareness Messages (CAM) consists of four parts:\n Header with generic information MessageBody ServiceList TaggedValue list  First of all, generic information like protocol version, creation time stamp are submitted. Normally this data set follows a network beacon, which already contains data like position and speed. Nevertheless, this functionality must be implemented in the network layer, that means in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body can contain either RSU or Vehicle awareness data. In the first case, only the RSU type is submitted, but this probably changes with a new CAM specification. In the second case, we provide date like vehicle width, length, position, speed, type and heading. The specification is not completely implemented, especially acceleration data and light, brake status are missing. The third part of the CAM specification, the service list, is also not implemented. This will probably change, when a list of services is defined by the ETSI. Last but not least a message contains a tagged list, a key value map with optional data. This is fully implemented and is used for our traffic light CAM messages, which provide the traffic light status in such a list.\nUser defined tagged values If you are required to exchange custom data within CAMs, the field UserTaggedValue can be used. For adding such data to the CAM, the application needs to implement the method beforeGetAndResetUserTaggedValue() from the CommunicationApplication interface. If a CAM is about to be sent, the custom data can be set using the getOs().setUserTaggedValue(byte[]) method. The receiver can simple access the data by accessing the field directly from the received CAM message:\nbyte[] value = cam.getUserTaggedValue (); if (value != null) { // read user tagged value} }  Timing Requirements CAMs are generated by the CAM Management and passed to lower layers when any of following rules apply:\n maximum time interval between CAM generations: $1s$; minimum time interval between CAM generations: $0.1s$; generate CAM when absolute difference between current heading (towards North) and last CAM heading \u0026gt; $4 deg$; generate CAM when distance between current position and last CAM position \u0026gt; $5m$ generate CAM when absolute difference between current speed and last CAM speed \u0026gt; $1ms$; These rules are checked latest every $100ms$;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"d32a5f22c5ae5d143ef2bc4c35a326c8","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/communication/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/develop_applications/communication/","section":"docs","summary":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell.","tags":null,"title":"Communication in Applications","type":"docs"},{"authors":null,"categories":null,"content":"The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event. An event describes when it should be processed and which information is processed. Moreover an event has an assigned priority.\nAttributes of Event The class Event contains the following attributes:\n long time: defines the time when the execution of the event is triggered. long nice: defines the priority of the event. When multiple events are scheduled for the sametime, the events are ordered in ascending order. List\u0026lt;EventProcessor\u0026gt; processors: is a list of components that shall process the event. Object resource: is an object that contains additional information designated for the processor of the event. The resource can be any object.  Methods of Event  Event(): There are multiple constructors for Event with different parameters. Every constructor sets default values for the attributes that are not defined by the arguments of the constructor. Event newTime(long time): allows the creation of a new event with a new execution time based String getResourceSimpleClassName(): returns the class name of the resource as String. int compareTo(Event event): implements the standardized Java interface Comparable. Toorder the events, first the time of the event is evaluated. In case the times are equal, the priority of the events is compared.  Interface EventManager The interface EventManager defines the method void addEvent(Event event) that needs to be implemented to add an event to the execution.\nInterface EventScheduler The interface EventScheduler extends the interface EventManager and is used for classes that trigger events.\nMethods of EventScheduler  boolean isEmpty(): returns true if the scheduler contains no elements, otherwise it returns false. long getNextEventTime(): returns the time of the next event. long getScheduledTime(): returns the time when the last event has been executed. List\u0026lt;Event\u0026gt; scheduleEvents(long time): returns a list of objects that are scheduled for a certain simulation time. Set\u0026lt;Event\u0026gt; getAllEvents(): returns a set of all events that are considered by the scheduler.  EventSchedulerImpl The class EventSchedulerImpl is an implementation of the interface EventScheduler.\nInterface EventProcessor The interface EventProcessor defines how the execution module gets the events. The execution module therefore has to implement the following methods:\n void processEvent(Event event): The module processes the event. boolean canProcessEvent(): returns true when the module is currently able to process new events, otherwise it returns false.  InterceptedEvent Class EventInterceptor In some situation it is useful to intercept events before they actually reach the intended processors. By intercepting the events it is possible to apply further monitoring and to filter which events the event processors receive. The class EventInterceptor is used to construct objects of the type InterceptedEvent. In the constructor it is possible to specify an EventManager that manages the intercepted events. Moreover, objects of the type EventProcessor can be specified that shall process the intercepted events.\nClass InterceptedEvent The class InterceptedEvents extends the class Event. It is used to provide type safe allocations of events that shall be intercepted.\n","date":1565481600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565481600,"objectID":"77fcc6d6f359287fbc8c37d7e6c54048","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/","publishdate":"2019-08-11T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/event_scheduler/","section":"docs","summary":"The different modules of the Eclipse MOSAIC Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event.","tags":null,"title":"Event Scheduling","type":"docs"},{"authors":null,"categories":null,"content":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles, and the Eclipse MOSAIC Application Simulator requires detailed information about the road infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is used which is placed in the applicationNT folder of the scenario. This database consists of the following tables:\nDatabase tables    Database Name Description     Node Contains all Nodes of the road network such as junctions and nodes describing the geometry of a road. Each node is identified by an unique ID (long).(refer to http://wiki.openstreetmap.org/wiki/Node)   Way Provides various properties for each way of the road network.(refer to http://wiki.openstreetmap.org/wiki/Way   WayConsistsOf Provides a list of nodes for each way of the road network.   Connection Contains a list of all connections of the road network including the way it originally is part of. Each connection describes an directed edge between two junctions in the road network.   ConnectionConsistsOf Provides a list of nodes each connection consists of.   Restriction Provides information about turn restrictions. Each turn restriction is described by a from-connection, a via-node, and a to-connection. This data is used for route calculation purposes.   TrafficSignals Contains detailed information about traffic lights and their signalling program. Currently not used.   Route Contains a list of all routes known for the simulation scenario. All routes referenced in the Mapping configuration must be presentin this table.   Building Corner Wall Provides information about buildings alongside the road network, e.g. for visualization purposes or sophisticated communication simulation models.   Version Contains the version of the Eclipse MOSAIC installation which was initially used to create the database.    Road network model This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes and connections can be seen. A node is either a junction or describes the geometry of a road. A connection is a directed edge between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating way, which may consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.\n Nodes and connections of the road network   Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern aaa_bbb_ccc):\n aaa - ID of the originating way bbb - ID of the node the connection starts at. ccc - ID of the node the connection ends in.   ID of connection in road network   Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge. Therefore, the following objects are identified as following:\nEdges are described by one start and one end node. The identifier of an edge consists of two parts (using the string pattern aaa_bbb_ccc_ddd):\n aaa_bbb_ccc - ID the connection the edge belongs to. ddd - ID of the node the edge starts at.   Structure of the Edge-ID   Lanes are described by an edge and a lane index. The identifier of a lane consists of two parts (using the string pattern aaa_bbb_ccc_ddd_e):\n aaa_bbb_ccc_ddd - ID the edge the lane belongs to. e - Index of the lane, starting by 0 (leftmost lane).   Structure of the Lane-ID   ","date":1565049600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565049600,"objectID":"1d92f8a189d6829395465481d4b2ddad","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/road_traffic/","section":"docs","summary":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates.","tags":null,"title":"Scenario Database","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"ad9ca34c3728e0522fcf5122cbadab93","permalink":"https://www.eclipse.org/mosaic/group/fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/fokus/","section":"group","summary":"The **Fraunhofer Institute for Open Communication Systems (FOKUS)** is the leading group behind the simulation framework Eclipse MOSAIC, which has now been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners and researches to test smart mobility services and intelligent traffic scenarios.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.\nOne example output could be the following:\nCELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000 V2X_MESSAGE_TRANSMISSION;6000000000;DENM;3;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;7000000000;veh_0;35.501624617716296;186.33236029307432;52.655993308955196;13.569065826100868;0.0;35.501624617716296;-0.6083753822837039;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_REGISTRATION;7000000000;veh_1;ElectricVehicle;null;Unequipped;5.0;2.5;70.0;2.6;4.5;0.5;1.0;1.0;0.0;1;1;0.0 VEHICLE_UPDATES;8000000000;veh_0;34.978651295430026;186.33236029306624;52.65568017869267;13.569019012494635;0.0;70.48027591314633;-0.5229733222862691;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false V2X_MESSAGE_TRANSMISSION;8000000000;DENM;4;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;9000000000;veh_0;35.73455352933612;186.33236029306624;52.65536028153272;13.56897118787549;0.0;106.21482944248245;0.7559022339060917;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_UPDATES;9000000000;veh_1;35.52345835176762;186.33265000325784;52.65599046030636;13.569112899208802;0.0;35.52345835176762;-0.5865416482323766;0.0;false;1;4067968_28830219_3290027832_2450938914;1;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false  Configuring the FileOutput  The main configuration file is located at \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenarioName\u0026gt;/output/output_config.xml  Basic configuration The following listing shows a basic example for the configuration of the FileOutput:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;filename\u0026gt;output.csv\u0026lt;/filename\u0026gt; \u0026lt;directory\u0026gt;.\u0026lt;/directory\u0026gt; \u0026lt;separator\u0026gt;;\u0026lt;/separator\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;...\u0026quot;\u0026gt; ... \u0026lt;/subscription\u0026gt; ... \u0026lt;/subscriptions\u0026gt;\u0026gt; \u0026lt;/output\u0026gt;  Basic configuration parameters for FileOutput\nThe usage of the parameters is described in the following table:\n   Parameter Usage     id Sets the id for the output   enabled If set to \u0026ldquo;false\u0026rdquo;, output is not used (default value is \u0026ldquo;true\u0026rdquo;)   update Sets the update interval in seconds for the output   start Sets the start time in seconds for visualization. This has nothing to do with the run time of the actual simulation   end Sets the end time in seconds for visualization. This has nothing to do with the run time of the actual simulation   loader Sets where the output is loaded from using the Java-class (see previous listing)    Basic Configuration of file output\nInteraction record Each interaction record is derived from a certain interaction type and composed of several entries,which are separated by Element separator.\nThe configuration of the file output is explained at the example of the VehicleUpdates interaction:\n\u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;\u0026gt; \u0026lt;entries\u0026gt; \u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Name\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Speed\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Longitude\u0026lt;/entry\u0026gt; \u0026lt;/entries\u0026gt; \u0026lt;/subscription\u0026gt;  Specific Configuration for interaction\n Attribute id indicates the interaction type, namely the class name of the interaction. The element entries defines the format and content of the finally visualized subscription record. The element entries is composed of several sub-elements entry, which correspond to columns of a subscription record and the sequence of the columns is the same as that of sub-elements entry.  In total, there are three basic types of entries:\nConstant Every quoted entry is defined as a constant. The content inside the quotation will be directly written into each corresponding interaction record.\n\u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt;  An example for constant type entry\nBasic method The Basic method type accesses values of the interaction object by using the appropriate getXXX() methods. For an entry, the root object for method invoking is the corresponding interaction class, here VehicleUpdates. As this object provides the simulation time by calling the getter method getTime(), the entry Time retrieves the requested value. If a null object is returned before the last method of cascaded methods is invoked, then null will be written to the corresponding field.\n\u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt;  An example for constant type entry\nIteration \u0026lt;entry\u0026gt;Updated:Id\u0026lt;/entry\u0026gt;  An example for method type entry with iteration\nThe first part of this example is Updated , which means to invoke the getUpdated method of class VehicleUpdates. Then a list of VehicleInfo objects is returned. The character : indicates the iteration, which means that for each of the VehicleInfo objects in the returned list the getId method is invoked.\nCascading \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt;  An example for method type entry with iteration and cascading\nIn this example, there is a dot operation, which is a cascade operation. Here getPosition method of VehicleInfo class is called and a GlobalPosition object is returned. Then we continuously invoke the getLatitude method of this GlobalPosition object.\nExtended Method All the methods involved above are the basic methods. There also is some functionality, which we cannot extract from these existing methods. So an extended method set is offered to meet these requirements and also as an extension point in the future.\n\u0026lt;entry\u0026gt;TimeInSec\u0026lt;/entry\u0026gt;  An example for simple extended method type entry\nWith existing methods of VehicleUpdates and its super class Interaction, we cannot get the timestamp of a interaction in second. (only Interaction.getTime, which returns a time in ns, is available). Here, getTimeInSec is a method extension for Interaction class. The extended method set will be listed later.\nFurther details The method type of entry definition supports cascaded iteration as follows:\n\u0026lt;entry\u0026gt;List1:List2:Id\u0026lt;/entry\u0026gt;  An example for cascaded iteration\nIt is possible to handle several different iterating operations, coming from the entry definition:\n\u0026lt;entry\u0026gt;Senders:Id\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Receivers:Id\u0026lt;/entry\u0026gt;  An example for multi-level iteration\ngetSenders() and getReceivers() are two different iterations. In this case, a combination of both Ids from the lists will be generated. The result may look like this:\nsender1, receiver1 sender1, receiver2 sender2, receiver1 sender2, receiver2  Output result of the above listing\nNote: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.\nAdditional features Limit output on time frame You can configure the FileVisualizer to write out interactions within a specific frame of simulation time. This can be configured by setting the start and end attributes accordingly:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; start=\u0026quot;300\u0026quot; end=\u0026quot;1000\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; ... \u0026lt;/output\u0026gt;  An example for restricting visualization of interactions within a time frame\nCompress Output The tag \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; can be added to the output configuration, in order to compress the output using gzip compression. This feature is suitable for large-scale scenarios with many outputs.\n\u0026lt;output id=\u0026quot;fileVisualizer\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; ... \u0026lt;/output\u0026gt;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"8a0ce6620232f8de93a82bc2989cf5de","permalink":"https://www.eclipse.org/mosaic/docs/visualization/filevis/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/filevis/","section":"docs","summary":"The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the FileOutput receives, one line (or more in case of an iteration object) is added to a CSV output file.","tags":null,"title":"FileOutput","type":"docs"},{"authors":null,"categories":null,"content":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.\nEclipse MOSAIC Application Simulator The Application Simulator plays an important role in the simulation of vehicles and its functions. It provides the capability to model the application logic for different simulation units (e.g. vehicles, road side units (RSUs), traffic lights, and others) as well as possible interaction attempts between the units via different communication links.\nFolder Structure └─ \u0026lt;scenario_name\u0026gt; ├─ application | ├─ YourApplication.jar | ├─ application_config.json ............. Configuration file for the ambassador. | └─ \u0026lt;scenario_name\u0026gt;.db .................. Database file for navigation. └─ mapping └─ mapping_config.json ................. Configuration file for the ambassador.  This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenario_name\u0026gt;/application/application_config.json. However, it is not necessary to provide such file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC installation package.\nOverview Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application Mapping). The applications for the units are basically compiled JAVA classes, which extend the abstract class AbstractApplication. Those classes have to be deployed as pre-compiled JAR files into the application folder of the simulated scenario.\n  Overview of interaction between applications and the unit\u0026rsquo;s operating system with its modules. An example V2X message propagation is presented.   Application Operating System The AbstractApplication possesses a unit-specific OperatingSystem, which allows interactions with the simulated parameters. The operating system provides access to information like the current time or position of the units and could control unit-specific actions (like slowDown() for vehicles).\nAs the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and sending messages) are more complex, they are separated into the specific modules NavigationModule (Navigation + Routing for vehicles) / RoutingModule (Routing-only for static units) and AdHocModule / CellModule with APIs dedicated to their purpose.\nThe following table lists all modules a unit\u0026rsquo;s operating system could provide.\n   Module Description     NavigationModule Full featured access to the central navigation component for vehicles   RoutingModule Access to routing functionalities for static units as RSUs   AdHocModule Communication via ad hoc mode, using WIFI or ITS G5 specific means (e.g. for addressing)   CellModule Communication via cellular services (different configuration / addressing modes)     Note: The presented communication modules AdHocModule, CellModule are used for the sending part of a transmission. The message reception is realized by Application Interfaces provided by the CommunicationApplication.\n Application Interfaces Application interfaces handle call-backs to incoming events via their methods, like onVehicleUpdated(), called by the application simulator. The following table lists all interfaces usable for application implementation, the type of unit as well as important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the \u0026ldquo;Provides\u0026rdquo; column. The elementary interface (Application) provides the methods onStartup(), onShutdown(). Implementation details are given in Development of applications.\n   Interface Applicable to Provides Description     Application / AbstractApplication all onStartup, onShutdown Elementary application class providing an operating system   ConfigurableApplication all  Basic application class providing an operating system and a configuration, which automatically loaded from a JSON file.   CommunicationApplication all onMessageReceived, onAcknowledgementReceived, onCamBuilding, onMessageTransmitted All applications that implement some form of V2X communication are to implement this interface.   VehicleApplication vehicle onVehicleUpdated General vehicle funtionality   ElectricVehicleApplication vehicle onBatteryStateUpdated, onChargingRequestRejected Electric vehicle functionality   TrafficSignAwareApplication vehicle onTrafficSignInvalidated, onTrafficSignNoticed Used by vehicles which are aware of traffic signs.   TrafficLightApplication traffic light onTrafficLightGroupUpdated Traffic light functionality   TrafficManagementCenterApplication TMC onInductionLoopUpdated, onLaneAreaDetectorUpdated Traffic management functionality   MosaicApplication all onSumoTraciResponded, onInteractionReceived Features that involve customized RTI-interactions of MOSAIC    Note: A roadside unit (RSU) is the most unit and usually communicates only. Thus, an RSU application implements CommunicationApplication.\n Configuration The Application simulator is configured in the file \u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ \u0026quot;messageCacheTime\u0026quot;: \u0026quot;30s\u0026quot;, \u0026quot;minimalPayloadLength\u0026quot;: 200, \u0026quot;encodePayloads\u0026quot;: true, \u0026quot;navigationConfiguration\u0026quot; : { \u0026quot;type\u0026quot;: \u0026quot;database\u0026quot; } }  Furthermore, depending on the deployed applications, the applications itself may offer configuration options in custom configuration files (e.g. ETSIApplication.json or ETSIApplication_veh_0.json).\n Eclipse MOSAIC Mapping Closely related to the Application Simulator, the Mapping Ambassador is used for the initial choreography of a simulation. It defines two major aspects for the simulation units:\n number, properties, position (e.g. of RSUs, traffic lights) or initial routes (of vehicles, simulated in a traffic/vehicle simulator) specific application(s) to be \u0026ldquo;mapped\u0026rdquo; on the simulation units and simulated in the Application Simulation  The JSON based configuration is located in \u0026lt;scenario_name\u0026gt;/mapping/mapping_config.json.\nConfiguration The Mapping configuration is divided into different parts:\n Pre Definitions of prototypes and deviations Entity Definitions of vehicles, rsus, tls servers and tmcs Advanced Vehicle Definitions (including route generation) in matrixMappers Common Definitions in config  Prototypes prototypes define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in shorter Mapping configurations.\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CamVehicle\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;length\u0026quot;: 5.00, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp\u0026quot; ] } ]  Prototypes can be created for all types of entities. Next to the list of applications which is available for all types of entities, vehicle types provide various other parameters to be adjusted.\n   Parameter Description Deviation     vehicleClass The class of the vehicle, e.g. Car, ElectricVehicle, EmergencyVehicle, Bicycle, HeavyGoodsVehicle, and more.    accel The maximum acceleration of the vehicle in $m/s^2$. Yes   decel The maximum deceleration of the vehicle in $m/s^2$, e.g. when stopping for traffic lights. Yes   emergencyDecel The maximum deceleration of the vehicle in $m/s^2$, in order to avoid accidents.    length The length of the vehicle in $m$. Yes   maxSpeed The maximum speed of the vehicle in $m/s$. Yes   minGap The minimum gap towards the leader in $m$, i.e. the space in front in a traffic jam. Yes   sigma The driver\u0026rsquo;s imperfection $[0,1]$.    tau The reaction time (or time headway) of the vehicle in $s$. Yes   speedFactor This factor is used to determine the speed limit to comply on roads, e.g. 1.1 would exceed the speed limit by 10%. Yes   laneChangeMode The lane changing behavior of the vehicle: COOPERATIVE. CAUTIOUS, AGGRESSIVE, PASSIVE, OFF    applications The list of applications to map onto this vehicle type.     For the majority of the parameters above (see column \u0026ldquo;Deviation\u0026rdquo;), a normal distribution can be created. In that case, each individual vehicle spawned with this prototype will be loaded with a random value within this distribution. To achieve this, a separate deviations attribute must be added to the type:\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;length\u0026quot;: 5.0, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;deviations\u0026quot;: { \u0026quot;length\u0026quot;: 1.2, \u0026quot;maxSpeed\u0026quot;: 5.0 } } ]  According to the config above, the basic parameter value conforms to the expected value, and the given value in the deviations attribute conforms to the $\\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\\sigma$.\nEntities Vehicles\nThe vehicles-section is the centerpiece of the Mapping configuration. It defines the departures (times and number), routes, and types of the vehicles.\nEach spawner in this list generates a traffic stream of vehicles on a certain route. The vehicles stream begins at startingTime and generates vehicles until maxNumberVehicles is reached. The time between two consecutively vehicles is implicitly given by the targetFlow property, which defines how many vehicles per hour are going to be spawned.\nEach vehicle spawner must refer to at least one vehicle type (types). A vehicle type must either refer to a type from the prototypes section by using its name, or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type is referenced in the types attribute, weights can be used to specify the ratios to choose between them when loading an individual vehicle. If no weights are defined, individual vehicle types are assumed to be distributed equally.\n Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.\n \u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;NormalVehicle\u0026quot;, // this vehicle has no applications \u0026quot;applications\u0026quot;: [ ], \u0026quot;weight\u0026quot;: 0.2 } ] } ]  Additional notes:\n The route refers to a route usually defined in the scenario database file (*.db) of the scenario. In order to define only one single vehicle to be spawned, the maxNumberVehicles property can be set to 1. By defining the endingTime property, the flow is stopped from being generated when the given simulation time is reached. By defining the spawningMode to one of the following values, the departure time of the individual vehicles can be adjusted:  CONSTANT - default case, all vehicles have equal time distance to match target_flow. POISSON - vehicles depart within a Poisson distribution, resulting in a more natural traffic flow. GROW - the flow of departing vehicles increases linear up to target_flow. SHRINK - the flow of departing vehicles decreases linear starting at target_flow. GROW_AND_SHRINK - the flow of departing vehicles increases up to target_flow and decreases afterwards.   By defining the laneSelectionMode to one the following values, the selection of the departure lane can be adjusted:  DEFAULT - selects the lane for the next vehicle based on the list of given lanes in a roundrobin manner. ROUNDROBIN_HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to DEFAULT. HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to BEST. RANDOM - the vehicle will be placed randomly on one of the available lanes of the road. FREE - the vehicle will be placed on a free lane of the road. BEST - the vehicle will be placed on the best lane of the road, according to the current traffic situation and departure speed.    Road Side Units\nThe rsus-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a defined position (lat, lon coordinates). Referring to prototype definitions with simply specifying its name in the name property will automatically fill in relevant properties of the RSU.\n\u0026quot;rsus\u0026quot;: [ { \u0026quot;lat\u0026quot;: 52.65027, \u0026quot;lon\u0026quot;: 13.54500, \u0026quot;name\u0026quot;: \u0026quot;WeatherServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.barnim.WeatherServer\u0026quot; ] } ]  Traffic Lights\nIn the trafficLights-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS). The tlGroupId-property allows mapping of applications to the traffic light groups, referring them by Id.\nAlternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the scenario. (Note: The weights do not have to add up to 100 or 1. Consequently, all traffic lights will be mapped using the specified prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you have to define one traffic light without any applications and add a weight to it.\n\u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp\u0026quot; ] }, { \u0026quot;tlGroupId\u0026quot;: \u0026quot;252864802\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp\u0026quot; ] } ]  For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to Simulation Scenarios - Traffic Lights.\nServers\nThe servers-array can be used to specify server units, which can be used to communicate with other units via the cell module. Capacity configurations for servers should be done when enabling the CellModule. Delay and transmission models are configured in the network.json of the cell module (see here).\n Note: The group parameter in the mapping configuration has to match with the id in the network configuration in order to properly function.\n \u0026quot;servers\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;MyServer\u0026quot;, \u0026quot;group\u0026quot;: \u0026quot;TestServers\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;ServerApp1\u0026quot;, \u0026quot;ServerApp2\u0026quot; ] } ]  Traffic Management Centers\nThe tmc-section offers the possibility to define instances of a Traffic Management Center (TMC). A TMC provides the possibility to interact with the infrastructure of the road, i.e. retrieving traffic properties from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits). Additionally, TMCs are an extension of Servers and can be configured in the same way that servers are\n\u0026quot;tmcs\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;HighwayManagement\u0026quot;, \u0026quot;group\u0026quot;: \u0026quot;TestTmcServers\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.highway.HighwayManagementApp()\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ \u0026quot;detector_0\u0026quot;, \u0026quot;detector_1\u0026quot;, \u0026quot;detector_2\u0026quot; ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ]   All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles in every simulation run with regard to the given ratios at each point in time the simulation). The Stochastic Mapping results in a random order of mapped units.\n Use Type Distributions in Complex Traffic Scenarios In the case, you have many vehicle spawners defined and you want to distribute prototypes on those vehicles equally without defining them again and again, you can use typeDistributions. By doing so, it is very simple to adjust the list of types and weights at only one place in the configuration file.\nInstead of defining an equal list of types and weights for each single vehicle spawner, like in this example:\n\u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] } ]  \u0026hellip; you can use typeDistributions to define the distribution of types for each vehicle once and reuse them:\n\u0026quot;typeDistributions\u0026quot;: { \u0026quot;exampleTypeDist\u0026quot; : [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, \u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; } ]  Advanced vehicle spawners with route generation It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the matrixMappers-list. Each MatrixMapper consists of a list of points, the vehicle-types to be used and the actual flow-values (odValues) between each of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.\nThe MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between each of the points.\n\u0026quot;matrixMappers\u0026quot;: [ { \u0026quot;points\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CityA\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 52, \u0026quot;longitude\u0026quot;: 13 }, \u0026quot;radius\u0026quot;: 1000 } }, { \u0026quot;name\u0026quot;: \u0026quot;CityB\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 48, \u0026quot;longitude\u0026quot;: 10 }, \u0026quot;radius\u0026quot;: 1000 } } ], \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot; } ], \u0026quot;odValues\u0026quot;: [ [0, 100], //100 vehicles from CityA to CityB [200, 0] //200 vehicles from CityB to CityA ] } ]  Common Configuration Next to the specific configuration of prototypes and simulation entities, some general parameters can be adjusted:\n{ \u0026quot;config\u0026quot;: { \u0026quot;scaleTraffic\u0026quot; : 1.0, \u0026quot;start\u0026quot;: 0, \u0026quot;end\u0026quot;: 500, \u0026quot;adjustStartingTimes\u0026quot;: false, \u0026quot;randomizeFlows\u0026quot;: false, \u0026quot;randomizeStartingTimes\u0026quot; : false, \u0026quot;randomizeWeights\u0026quot;: false } }     Parameter Description     scaleTraffic Scales the targetFlow of spawned vehicles per hour as well as the maxNumberVehicles by the given factor.   start Adjusts the point in time (in $s$) to start spawning vehicles. Any vehicle spawner with a lower startingTime will be ignored.   end Adjusts the point in time (in $s$) to end spawning vehicles. Any vehicle spawner with a greater startingTime will be ignored.   adjustStartingTimes If set to true, the starting time of each spawner is reduced by the value in start.   randomizeFlows If set to true, the departure time of vehicles within a vehicle spawner is slightly randomized.   randomizeStartingTimes If set to true, the starting time of each vehicle spawner is slightly randomized.   randomizeWeights If set to true, each weight greater than zero is slightly randomized.    Unit Identifiers Every traffic object in Eclipse MOSAIC has a globally unique string identifier. These identifiers are used to identify a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.\n   Traffic Object Eclipse MOSAIC Internal ID     Vehicle veh_\u0026lt;seq_nr\u0026gt;   RSU rsu_\u0026lt;seq_nr\u0026gt;   TMC tmc_\u0026lt;seq_nr\u0026gt;   Traffic Light tl_\u0026lt;group_id\u0026gt;     seq_nr is the sequence number of simulated vehicles, RSUs, TMCs, each starting from zero. group_id is the group id of the traffic light.   ##Basic Applications\nEclipse MOSAIC is shipped with several example applications which can be loaded on the vehicles. Next to the applications shipped with the tutorial scenarios Barnim and Tiergarten, there are further example applications to be found on our website.\nAdditionally, we provide an ETSI conform application which implement specific CAM generation rules for vehicles (org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp), which is described in the following:\nETSI Application for vehicles This application generates ETSI data for its simulation unit (e.g. heading, position, speed and time for vehicles). According to its configuration, the application then sends out CAMs to other vehicles in range. Note that the messages are only send when the time lies between the configured minimum and maximum interval.\nCurrently, the default configuration (ETSIApplication.json) for the ETSI application looks like this:\n{ /* The maximum time offset (here 1 second) of sending CA-messages * (the offset will be different for every single vehicle to avoid interference) */ \u0026quot;maxStartOffset\u0026quot;: 1000000000, /* CAMs are sent at most every 1 second */ \u0026quot;minInterval\u0026quot;: 100000000, /* CAMs are sent at least every 1 second */ \u0026quot;maxInterval\u0026quot;: 1000000000, /* CAMs are sent when the position of the vehicle changes at least about 4 meters */ \u0026quot;positionChange\u0026quot;: 4, /* CAMs are sent when the heading of the vehicle changes at least about 4 degrees */ \u0026quot;headingChange\u0026quot;: 4, /* CAMs are sent when the velocity of the vehicle changes at least about 0.5 m/s */ \u0026quot;velocityChange\u0026quot;: 0.5 }  The CAMs sent out by this application consist of four parts:\n Header with generic information MessageBody TaggedValue list  First of all, generic information like protocol version and creation time stamp are transmitted. Normally this data set follows a network beacon, already containing data like position and speed. Nevertheless this functionality must be implemented in the network layer, i.e. in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body contains vehicle awareness data, including data like vehicle width, length, position, speed, type and heading. However, the specification is not completely implemented. Last but not least a message can contain optional data.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"bf25e52bde5c4e80a5aa654a38a7b644","permalink":"https://www.eclipse.org/mosaic/docs/simulators/application_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/application_simulator/","section":"docs","summary":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.","tags":null,"title":"Application Simulator","type":"docs"},{"authors":null,"categories":null,"content":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time.\nHowever, these logs do not conform to a generic formatting. For uniformly formatted or visually prepared results, Eclipse MOSAIC offers different Visualizers. For example, the FileVisualizer generates detailed outputs of e.g. vehicle positions, speeds, or message exchanges.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"c60b5956ddd6a163875c0dc191dc8c6e","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/run_mosaic/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/run_mosaic/","section":"docs","summary":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level.","tags":null,"title":"Run a simulation with Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"  The tool scenario-convert is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.\nIt will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation, route calculation\u0026hellip;).\nBased on a MOSAIC database, scenario-convert can export the data to SUMO-conform formats. Furthermore one can choose, whether to use routes generated by scenario-convert, use existing routes or build own routes via route generation tools (e.g. DUAROUTER by SUMO).\nThis chapter intends to highlight the most common workflows for the work with scenario-convert. We will be using this OSM-file for most of the use cases So feel free to follow along with the steps to get a better understanding on how the scenario-convert-script functions.\n Complete reference of the scenario-convert script.\n   OSM-File of Steglitz   Creating a complete Eclipse MOSAIC-scenario from an OSM-file with one command This is the most straight forward way to create a scenario from your OSM-file. We will use the option --osm2mosaic, which is a combination of the options --osm2db and --db2mosaic.\nLet\u0026rsquo;s start off by showing you how a complete call could look like:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Change mosaic.version to the current version you are using.\nIn this section we use the scenario name steglitz. as synonym for path/to/steglitz..\n  This achieves a couple of things. First off the script is going to create a SQLite-database, which is used by Eclipse MOSAIC. Furthermore, a directory will be created, which should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm ├─ application | └─ steglitz.db ├─ cell | ├─ cell_config.json | ├─ network.json | └─ regions.json ├─ environment | └─ environment_config.json ├─ mapping | └─ mapping_config.json ├─ ns3 | ├─ ns3_config.json | └─ ns3_federate_config.xml ├─ omnetpp | ├─ omnetpp_config.json | └─ omnetpp.ini ├─ output | └─ output_config.xml ├─ sns | └─ sns_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let\u0026rsquo;s walk through all these files:\n First the steglitz.db will be created using the steglitz.osm-file. The steglitz.db will be used to create steglitz.con.xml, steglitz.edg.xml and steglitz.nod.xml, which are files used by SUMO.  SUMO Netconvert is used to create steglitz.net.xml, which is a network representation in SUMO. Now the SUMO-configuration steglitz.sumo.cfg is written. Afterwards the mapping_config.json and scenario_config.json are created and all files are moved to the right place. In the scenario_config.json values like the center coordinate will automatically be set using data from the SUMO related files.  While this is technically sufficient to start working on your scenario there are a couple of other things you can do to achieve better results.\nClean the OSM-file using Osmosis\nOsmosis will automatically be used to create a new OSM-file with the suffix _cleaned. The created file will contain much less clutter and usually is better suited for simulation purposes. Check the images below to see the difference the clean-up process can make.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Uncleaned OSM-file     Cleaned OSM-file      Uncleaned Net-file     Cleaned Net-file     To avoid \u0026ldquo;cleaning\u0026rdquo; the OSM-file, please use the option \u0026ldquo;skip-osm-filter\u0026rdquo;.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter  Generating Routes\nThe scenario-convert also offers the option --generate-routes, which will generate a route-file, given some additional information. For example purposes we will run the following command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  This will calculate three routes between the two given coordinates.\nAlternatively you can use the following command in order to generate routes with node-id\u0026rsquo;s as start and end point, which can be found in the steglitz.nod.xml file.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-node-id 267350668 --route-end-node-id 313139970 --number-of-routes 3  see below for all command line options.\nExporting Traffic Lights\nAnother feature of the scenario-convert script is the ability to export traffic lights from the osm-file to be used by SUMOs netconvert. The extended call would look like this:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3 --export-traffic-lights  Conlusion\nThis wraps up one of the main workflows with the scenario-convert-script. A quick reminder on what we achieved:\n Cleaned up an OSM-file to only contain relevant data. Converted that OSM-file to formats that Eclipse MOSAIC/SUMO can handle. Created the project structure for a scenario. Calculated routes between two coordinates.  With all of this you can now start further developing your scenario. For a more detailed description on the next steps please have a look here (Simulation Scenarios) and here (Application Development).\nWhile this is the \u0026lsquo;happy world\u0026rsquo; workflow it is often necessary to manually adapt routes and insert them into your scenario. The following workflow will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.\nImporting Routes to your scenario As mentioned above your routes won\u0026rsquo;t always be created by the scenario-convert script. We generated some routes for the steglitz-scenario using SUMO\u0026rsquo;s duarouter, which you can find here. We\u0026rsquo;ll start with only the steglitz.osm and steglitz.rou.xml files:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz.rou.xml  Creating the database\nWe\u0026rsquo;ll start off by solely creating the database and applying OSMOSIS with the following command:\njava -jar scenario-convert.jar --osm2db -i steglitz.osm  The directory should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.db ├─ steglitz.osm ├─ steglitz.rou.xml └─ steglitz_cleaned.osm  Importing the route-file\n This is the interesting part of this workflow. 👍\n Let\u0026rsquo;s import our routes into the database.\nWe achieve this by calling:\njava -jar scenario-convert.jar --sumo2db -i steglitz.rou.xml -d .\\steglitz.db  Now all new routes are imported into our database. The following image shows a visualization of one of the created routes.\n Visualization of one of the routes   Creating the scenario\nThe final step is to create the scenario from the files we created so far.\njava -jar scenario-convert.jar --db2mosaic -d .\\steglitz.db  Instead of copying our SUMO-files this will generate all necessary files and move them into a Eclipse MOSAIC-conform folder structure:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json  As you can see the resulting folder structure looks just like the final output from the first workflow described.\nConclusion\nYou should now know how you can manually add routes to your scenario and have a deeper understanding of the way that some of the script parameters work.\nAttached Files A list of all attached files in this chapter:\n Steglitz OSM-file Steglitz Route-file  Reference documentation for scenario-convert Usage of scenario-convert The following listing shows an overview for the usage of scenario-convert:\n Usage: scenario-convert [OPERATION] -d \u0026lt;DATABASEFILE\u0026gt; [OPTIONS]* Examples (options in [] are optional): 1. Import an osm file and write data into database scenario-convert --osm2db -i \u0026lt;OSMFILE\u0026gt; [-o] [-d \u0026lt;DATABASE\u0026gt;] 2. Export db content to sumo-readable files scenario-convert --db2sumo -d \u0026lt;DATABASE\u0026gt; [-s \u0026lt;SUMOPREFIX\u0026gt;] [-n] 3. Reimport a sumo routefile into a database scenario-convert --sumo2db -d \u0026lt;DATABASE\u0026gt; -i \u0026lt;ROUTEFILE\u0026gt; 4. Combine steps 1 and 2 scenario-convert --osm2sumo -d \u0026lt;DATABASE\u0026gt; -i \u0026lt;OSMFILE\u0026gt; [-s \u0026lt;SUMOPREFIX\u0026gt;] 5. Export db content to Shapefile format scenario-convert --db2shp -d \u0026lt;DATABASE\u0026gt; 6. Import an srtm file and write elevation data to nodes of an existing database scenario-convert --srtm2db -i \u0026lt;SRTMFILE\u0026gt; -d \u0026lt;DATABASE\u0026gt; ------------------------------------------------------------------------------- CONFIGURATION FILE: -h,--help Prints this help screen. -c,--config-file \u0026lt;PATH\u0026gt; Optional, refers to a configuration file which contains all parameters in JSON format. --osm2db Converts a OpenStreetMap file to a new scenario database. --sumo2db Imports a SUMO Network/Routefile. Be aware that you may have to re-export an imported network. --srtm2db Imports an SRTM file and writes elevation data to nodes. --db2sumo Exports the network to SUMO node and edge files. --db2shp Exports the database into Shapefile format. --db2mosaic Creates directory structure for a MOSAIC scenario based on the database contents. --osm2sumo Combination of osm2db and db2sumo. --osm2mosaic Combination of osm2db and db2vsimrti. --update Updates the database to the current scheme. -d,--database \u0026lt;PATH\u0026gt; The path to the database. For import: File to import to. If not given, a new file is created. For export: File to load from. For update operations: file to update. -i,--input \u0026lt;PATH\u0026gt; Defines an input file to use in an import. File type depends on the import operation (OSM File/Database file/SUMO net file/SUMO route file). -s,--sumo-prefix \u0026lt;STRING\u0026gt; Prefix for the generated sumo files (uses database name when not defined). -f,--force Force overwrite of existing files instead of incrementing file names. -m,--mapping-file \u0026lt;PATH\u0026gt; Uses the given mapping configuration to export existing vehicleTypes and vehicles data to *.rou.xml (with --export-routes). --import-lat \u0026lt;DOUBLE\u0026gt; Center latitude of imported region to project coordinates. --import-lon \u0026lt;DOUBLE\u0026gt; Center longitude of imported region to project coordinates. --import-zone \u0026lt;STRING\u0026gt; UTM zone of location for projecting coords in default format (e.g. 32n). -g,--generate-routes Generates route(s) from one point to another. The begin and end for the route must be known (see below options). --route-begin-lat \u0026lt;DOUBLE\u0026gt; Latitude of the starting point, needs --route-begin-lon as well. --route-begin-lon \u0026lt;DOUBLE\u0026gt; Longitude of the starting point, needs --route-begin-lat as well. --route-begin-latlon \u0026lt;DOUBLE,DOUBLE\u0026gt; [latitude],[longitude] of the starting point. --route-begin-node-id \u0026lt;STRING\u0026gt; OSM node id of the starting point (use instead of lat/lon). --route-end-lat \u0026lt;DOUBLE\u0026gt; Latitude of the starting point, needs --route-end-lon as well. --route-end-lon \u0026lt;DOUBLE\u0026gt; Longitude of the starting point, needs --route-end-lat as well. --route-end-latlon \u0026lt;DOUBLE,DOUBLE\u0026gt; [latitude],[longitude] of the ending point. --route-end-node-id \u0026lt;STRING\u0026gt; OSM node id of the ending point (use instead of lat/lon). --route-matrix \u0026lt;STRING,STRING,...\u0026gt; Calculates all possible routes starting and ending at the given nodes, given as comma-separated list (e.g. 12345,87123,89123) --number-of-routes \u0026lt;INTEGER\u0026gt; Defines the number of alternative routes to be calculated (default=1). --skip-osm-filter Skips automatic filtering of the OSM file (only with osm2xxx). -b,--import-buildings Write OSM building information in database. --ignore-turn-restrictions Ignore all defined turn restrictions on OSM import. --disable-graph-cleanup Turns off the removal of unconnected parts from the main traffic network graph . Since several components of VSimRTI require one main graph without disconnected ways and nodes, this option should be used only if the cleanup procedure is faulty. --skip-netconvert Skips automatic starting sumo netconvert for creating netfile (only with xxx2sumo). --skip-traffic-lights-export Skips automatic exporting traffic light information for nodes (only with xxx2sumo). --osm-speeds-file \u0026lt;PATH\u0026gt; Define a property file which contains speed information which are used to set the speed for OSM ways without a max speed tag (only with osm2xxx). --osm-speeds-overwrite If set to true , the maxspeed tags of ways are ignored and replaced by either default values , or by speed information defined via the --osm-speeds-file option (only with osm2xxx). ------------------------------------------------------------------------------- File placement: When a database file is given with -d every created file will be placed by the database file in the given path. When the file is passed without a path the path used to execute the command from will be used as a base. For import operations where -d is omited all files will be placed alongside the input file given. When a file to be created already exist the filename will be postfixed with an incrementing number. This behaviour can be overwritten -------------------------------------------------------------------------------  Configuration-files for scenario-convert Scenario-convert offers a way to safe your conversion-parameters in a JSON configuration file using the option -c or --config-file.\nThe following listing shows how to save the options used in the example above:\n{ \u0026#34;operatingMode\u0026#34;: \u0026#34;osm2mosaic\u0026#34;, \u0026#34;inputFile\u0026#34;: \u0026#34;steglitz.osm\u0026#34;, \u0026#34;executeOsmosis\u0026#34;: true, \u0026#34;generateRoutes\u0026#34;: true, \u0026#34;routeBeginLatLon\u0026#34;: \u0026#34;52.457616,13.318392\u0026#34;, \u0026#34;routeEndLatLon\u0026#34;: \u0026#34;52.454774,13.333554\u0026#34;, \u0026#34;numberOfRoutes\u0026#34;: 3 }  Speed-files Below you can find a properties file which can be used during the import of OSM data in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the option --osm-speeds-file \u0026lt;FILE\u0026gt;. In the speed properties file, for each way type a speed value can be defined, according to the OSM highway key.\n# the unit the speed values are defined in [kmh, ms] speed.unit = kmh # the default speed for all way types which are not defined here speed.default = 30 # autobahn highway.motorway = 130 highway.motorway_link = 70 # bundesstrasse (germany) highway.trunk = 70 highway.trunk_link = 65 # linking bigger town highway.primary = 65 highway.primary_link = 60 # linking towns \u0026#43; villages highway.secondary = 60 highway.secondary_link = 50 #streets without middle line separation highway.tertiary = 50 highway.tertiary_link = 40 highway.residential = 30 #special roads highway.living_street = 5 highway.service = 20 # unclassified roads highway.unclassified = 30 highway.road = 20 # forest tracks highway.track 15  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"485ead0ca3596dfe810e10c66ea5a027","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_convert/","section":"docs","summary":"The tool scenario-convert is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.","tags":null,"title":"Scenario Convert","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;. For each simulation run a new folder is created.\n└─ log-\u0026lt;timestamp\u0026gt; ├─ apps | ├─ \u0026lt;unitType\u0026gt;_\u0026lt;unitId\u0026gt; ................. Detailed application specific logs for each unit | ├─ OperatingSystem.log ................. Detailed operating system logs for the unit | └─ ExampleApp.log ...................... Detailed application specific logs for each application. ├─ activities.csv ......................... Simulation details in comma separated value-format ├─ Application.log ....................... Information about the application ambassador ├─ Cell.log ............................... Cellular network log ├─ ChargingStation.log .................... ChargingStation ambassador log ├─ Communication.log ...................... (Ad hoc) network simulation ambassador log ├─ CommunicationDetails.log ............... Detailed output of network simulator (ns-3 or OMNeT++) ├─ Environment.log ........................ Logs of the environmental eventserver ├─ Mapping.log ............................ Mapping configuration logs ├─ MOSAIC.log ............................. General information, e.g. startup sequence information ├─ Navigation.log ......................... Detailed logs about navigation component in the application ambassador ├─ Traffic.log ............................ Traffic simulation log (SUMO or others) └─ visualizer.csv ......................... Recorded data of the integrated File Output Generator  In addition to standard logging output for each federate there is a activities.csv file which contains detailed information about sent and received interactions. This file can be used to trace a simulation run for deep debugging. To enable this feature, the log level of the logger activities has to be set to INFO in the logback.xml (see section below).\nLogging The main configuration file for logging is \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. In this file, the log output can be configured in great detail. This file can be adjusted to your needs, e.g. you can set up a more detailed logging for communication components but set a less verbose output for Eclipse MOSAIC\u0026rsquo;s internal interactions or traffic simulation depending on your simulation focus.\nEclipse MOSAIC uses LOGback as logging framework. LOGback offers a lot of parameters to adapt the output to your needs. Please refer to this site for a detailed overview of all parameters you can use in the logback.xml file.\nPlease note that you can adjust the output to your needs by setting different log levels (ERROR, INFO, DEBUG etc.) for each component in the file at \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. This might also influence the simulation performance because of a possibly high amount of data to be logged.\nFederate specific logging Depending on the simulation purpose, further configuration possibilities for federate specific logging may be of interest.\nFor instance, OMNeT++ exhibits an elaborated logging concept. The omnetpp.ini in the scenario folder includes options to adjust the logging levels. The outputs of this federate are written to CommunicationDetails.log.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"2607b5551624e7e4887eac7256574426","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/results/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/results/","section":"docs","summary":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;.","tags":null,"title":"Simulation Results","type":"docs"},{"authors":null,"categories":null,"content":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator. It implements predefined interfaces of the Eclipse MOSAIC core library and is directly coupled with Eclipse MOSAIC. Second, your simulator needs to communicate with the Federate Ambassador. For this purpose, you either need to implement your own protocol to control the simulator, or use existing ones of your respective simulator (e.g. SUMO provides the TraCI byte buffer protocol).\n Implementing a Federate Ambassador In order to simplify federate development and to make the usage of the mechanisms provided by the RTI safer, an abstract class called AbstractFederateAmbassador is provided by the Eclipse MOSAIC core package. It implements the FederateAmbassador interface and handles incoming interactions as well as time advance grants according to the specified federate behaviour. When a federate implementation is making use of the AbstractFederateAmbassador as a super class, it has to provide two information to the superclass while constructing an instance of the class. These are:\n  isTimeConstrained: The general way this parameter can be understood, is that if it is set to true the federate is sensitive towards the time stamp order of interactions. The AbstractFederateAmbassador will then queue incoming interactions and request a time advance from the RTI in order to ensure that processing the received interaction is safe. At the time the requested time advance is granted, every queued interaction with a time stamp smaller or equal to the granted time will be delivered to the federate for processing. If set to false, incoming interactions will be forwarded immediately to the federate, thus resulting in a receive-order of interactions at the federate.\n  isTimeRegulating: Specifies whether the federate will publish time stamped interactions and thus can influence the time advances of other federates in the federation. If set to true, the AbstractFederateAmbassador will request time advances with respect to the specified lookahead value of the federate in order to avoid that time management schedules the execution of other federates while queued interactions are processed. If set to false, time advance requests that are issued due to incoming interactions will be flagged with an unlimited lookahead, allowing the RTI to schedule other federates while incoming interactions are processed.\n   Flowchart of Interaction handling   Further notes Coupling a multitude of different simulators and properly syncing them is a non-trivial task and requires a lot of effort in order to function correctly. If you have read up on High Level Architecture before (have a look here and at the linked references) you might notice, that the previous flowchart does not completely reflect the proposed mechanisms. For instance, the isTimeRegulating flag has no effect, when the isTimeConstrained flag is not set.\nSo at some points you might stumble upon federates, which have their isTimeConstrained and isTimeRegulating flags set to different values as you would expect. An example of this is the ApplicationAmbassador. One would expect it to be time-constrained as well as time-regulating. This isn\u0026rsquo;t the case though, because the ApplicationAmbassador implements its own time- and event-management, which would interfere with the internal mechanisms.\nWhen implementing your own federate, you can use the existing ones as reference.\nExample A federate that is timeConstrained and timeRegulated can handle a time stamped interaction only after receiving a corresponding time advance grant. For that reason, the AbstractFederateAmbassador caches the incoming interactions in a local queue and requests a time advance with the interactions time stamp. After getting a grant for that time stamp, it forwards the interaction via the processInteraction method call and afterwards invokes processTimeAdvanceGrant to allow the federate to proceed in its local simulation time. In the activity diagram in the following figure, the process of handling of incoming interactions with respect to the federate configuration is illustrated.\n Sequence diagram illustrating the flow of information.   Integration into Eclipse MOSAIC The first step to integrate a new component is the extension of the configuration file etc/defaults.xml. An example for a federate configuration can be found in following listing.\n\u0026quot;federates\u0026quot;: [ ... { \u0026quot;id\u0026quot;: \u0026quot;omnetpp\u0026quot;, \u0026quot;classname\u0026quot;: \u0026quot;org.eclipse.mosaic.fed.omnetpp.ambassador.OmnetppAmbassador\u0026quot;, \u0026quot;configuration\u0026quot;: \u0026quot;omnetpp_config.json\u0026quot;, \u0026quot;configurationDeployPath\u0026quot;: \u0026quot;omnetpp-federate/simulations\u0026quot;, \u0026quot;priority\u0026quot;: 50, \u0026quot;dockerImage\u0026quot;: \u0026quot;\u0026quot;, \u0026quot;host\u0026quot;: \u0026quot;local\u0026quot;, \u0026quot;port\u0026quot;: 4998, \u0026quot;deploy\u0026quot;: true, \u0026quot;start\u0026quot;: true, \u0026quot;subscriptions\u0026quot;: [ \u0026quot;VehicleRegistration\u0026quot;, \u0026quot;RsuRegistration\u0026quot;, \u0026quot;TrafficLightRegistration\u0026quot;, ... ], \u0026quot;javaClasspathEntries\u0026quot;: [] }, ... ]  The following parameters are available:\n  class - Attribute giving the full qualified name of the Java class which implements the Feder- ateAmbassador interface.\n  id - The id of the federate. This value should be as short as possible and will be also used for identifying the configuration folder within scenarios.\n  deploy - If set to true, the federate placed under bin/fed/ will be copied to the execution host (according to the host configuration file).\n  start - If set to true, the federate will be started by the federation management using the start command specified in the configuration file or this implementation.\n  subscriptions - A list of interaction names which the Federate Ambassador subscribes for. If any other ambassador sends out one of those interactions, this ambassador will receive them.\n   Interaction extension Another possibility to extend Eclipse MOSAIC is to add a new interaction to the set of predefined interactions. In the following figure, the abstract class Interaction, implemented interaction extensions, and a place holder for further extensions (rectangles with grey fonts and a dotted border) are illustrated. When the InteractionManagement forwards interactions among federates, it chooses the destination based on a interaction id and an optional condition. Furthermore, it synchronizes the interaction delivery based on their times. The abstract class Interaction offers these attributes but no further content. The exchanged content has to be implemented by extending the class Interaction. The already implemented extensions cover the content necessary to simulate common scenarios. However, for further scenarios further interactions might be required.\n Interaction classes and their relationships..   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"029b4f7b54e0aba61d23421e910663b7","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/simulator_coupling/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/simulator_coupling/","section":"docs","summary":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator.","tags":null,"title":"Simulator Coupling","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.0   Website  https://www.eclipse.org/sumo/   Supported version(s) 1.0.1, 1.1.0 (limited support), 1.2.0 - 1.7.0 (full support)        Installation Download Eclipse SUMO Download the SUMO binary bundle or installer from the SUMO website. Linux users may build SUMO from the source code. Please refer to the SUMO Wiki for further information.\n In order to run SUMO with Eclipse MOSAIC you need to make the SUMO binaries available system wide by adding the SUMO binary folder to your PATH environment variable. Alternatively, the environment variable SUMO_HOME can be used to define the installation directory of SUMO.\n   We recommend to use the 64 bit version of SUMO if you want to simulate scenarios with a big traffic network.\n  Configuration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/sumo/sumo_config.json. If no such file exists, the following default configuration options are used:\n{ \u0026quot;updateInterval\u0026quot;: 1000, \u0026quot;sumoConfigurationFile\u0026quot;: \u0026quot;\u0026lt;scenarioName\u0026gt;.sumo.cfg\u0026quot;, \u0026quot;exitOnInsertionError\u0026quot;: true, \u0026quot;additionalSumoParameters\u0026quot;: \u0026quot;--time-to-teleport 0 --seed 100000\u0026quot;, \u0026quot;subscriptions\u0026quot;: [\u0026quot;roadposition\u0026quot;, \u0026quot;signals\u0026quot;, \u0026quot;emissions\u0026quot;] }  Next to sumo_config.json, the following configuration files are required for every SUMO simulation scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ sumo ├─ \u0026lt;scenarioName\u0026gt;.net.xml .............. SUMO Network file ├─ \u0026lt;scenarioName\u0026gt;.rou.xml .............. SUMO Route file ├─ \u0026lt;scenarioName\u0026gt;.sumocfg .............. SUMO configuration file └─ sumo_config.json .................... Ambassador configuraition file]  The SUMO configuration consists of sumo specific config files and the sumo-ambassador configuration file. The main configuration file name must end with the suffix *.cfg, which needs to refer to the network and route files. The network file is mandatory and should be generated with the scenario-convert tool provided with Eclipse MOSAIC.\nThe \u0026lt;scenarioName\u0026gt;.rou.xml is optional and is generated automatically for each simulation run. The routes for each vehicle are then usualy taken from the scenario database. However, those routes can be overriden by defining them manually in the route file.\n With Eclipse MOSAIC, the traffic definition (definition of vehicles, flows, vehicle types) is part of the Mapping configuration file. Any vehicles or flows defined within the \u0026lt;scenarioName\u0026gt;.rou.xml are ignored and won’t be simulated by SUMO.\n  Vehicle related parameters, such as acceleration, maximum speed, and the like, are configured via the Mapping configuration file. However, some SUMO specific parameters, like the car following model, needs to be configured separately in the route file. For example, if you have configured a vehicle type called MyVehicle in the Mapping configuration, you can set specific parameters for this type in the \u0026lt;scenarioName\u0026gt;.rou.xml as following:\n\u0026lt;routes\u0026gt; \u0026lt;vType id=\u0026quot;MyVehicle\u0026quot; carFollowModel=\u0026quot;IDM\u0026quot; lcKeepRight=\u0026quot;10\u0026quot;\u0026gt; \u0026lt;/routes\u0026gt;  Further information about SUMO and its configuration can be found in the official SUMO wiki.\nUsing the SUMO GUI with Eclipse MOSAIC It is also possible to use the graphical interface of SUMO in order to visualize and interact with the simulation. To achieve this, Eclipse MOSAIC can be configured to start the GUI process of SUMO as the federate rather than the command line interface. In order to use the SUMO GUI the file \u0026lt;mosaic\u0026gt;/etc/mosaic.xml needs to be edited. Here, the entry org.eclipse.mosaic.fed.sumo.ambassador.SumoAmbassador must be replaced with org.eclipse.mosaic.fed.sumo.ambassador.SumoGuiAmbassador.\n Keep in mind to launch Eclipse MOSAIC with the argument -w 0 in order to disable the watchdog timer. Otherwise it would shutdown Eclipse MOSAIC if the simulation is paused in the SUMO GUI.\n  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"86514c669b0224d14af4801daf24dc4c","permalink":"https://www.eclipse.org/mosaic/docs/simulators/traffic_simulator_sumo/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/traffic_simulator_sumo/","section":"docs","summary":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.","tags":null,"title":"Eclipse SUMO - Simulation of Urban MObility","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"5a65785fcf26ff856f02501a2dff644b","permalink":"https://www.eclipse.org/mosaic/group/dcaiti/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/dcaiti/","section":"group","summary":"The **Daimler Center for Automotive IT Innovations (DCAITI)** was founded in 2006 as a joint initiative of Daimler AG and the Technical University of Berlin. The DCAITI uses Eclipse MOSAIC since many years for various research projects in the field of automated and connected driving. Together with the TU Berlin students gain practical experience in software development by using and extending this simulation framework and models.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates. Note that we use the word \u0026ldquo;interaction\u0026rdquo; whenever we describe communication between federates, whereas we talk about a \u0026ldquo;message\u0026rdquo; primarily when concerned with V2X-communication.\nAll interactions are categorized by the package they are contained in, which corresponds to their main context/purpose. The \u0026ldquo;Sent by\u0026rdquo; column is not necessarily complete for all interactions but should give an idea where interactions are used.\nmapping All interactions in this package are concerned with adding/registering simulation-units to the simulation. While most of the introductions are handled by the Mapping- or Application-ambassador, some of them are handled by the ambassadors for the traffic simulators (see LuST-scenario). In this case the interactions are used to initialize the scenario.\n   Interaction name Description Sent by     VehicleRegistration This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator. Mapping\nApplication   ChargingStationRegistration This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s. Mapping   RsuRegistration This interaction indicates the introduction of a roadside unit to the simulation. Mapping   TmcRegistration This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for. Mapping   ServerRegistration This interaction indicates the introduction of a server to the simulation. It holds a list of all applications. Mapping3   TrafficLightRegistration This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system. Mapping   TrafficSignRegistration This interaction indicates the introduction of a traffic sign. Mapping    mapping.advanced Interactions in this package are still concerned with the mapping of vehicles but differ from simple simulation unit registration.\n   Interaction name Description Sent by     ScenarioTrafficLightRegistration This interaction contains the phases and their duration of each traffic light in the simulation. This interaction shall be generated by the traffic simulators at start up (e.g. SUMO) Sumo\nPhabmacs   ScenarioVehicleRegistration This interaction is used to add vehicles to a simulation using a preconfigured scenario, which could be defined by using Sumo. Sumo(Scenario)   RoutelessVehicleRegistration This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the Application-ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards. Mapping    communication This package contains interactions regarding the setup of communication-components in simulation units and interactions concerned with the transfer of V2X-messages.\n   Interaction name Description Sent by     AdHocCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s ad-hoc communication facilities. Application   CellularCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s cellular communication facilities. Application    Interactions related to V2X-message transfer.\n   Interaction name Description Sent by     V2xMessageAcknowledgement This interaction is used by a communication simulator to inform about success or failure of a packet transmission. Typically, the application simulator should subscribe to this interaction. Cell   V2xMessageReception This interaction is intended to be used to exchange information about a received V2X message. Omnet++\nns-3\nSimpleNetworkSimulator\ncell   V2xFullMessageReception This interaction carries the payload that represents an arbitrary V2XMessage that is supposed to be received by the receiver of this Eclipse MOSAIC Interaction. Omnet++\nns-3\nSimpleNetworkSimulator\nCell   V2xMessageRemoval This interaction is intended to be used to exchange information about V2X messages, that are to be deleted. Application   V2xMessageTransmission This interaction is sent in order to trigger the transportation of a V2XMessage over a wireless network to a given geographical destination area. Application    vehicle The interactions contained in this package are usually used to enable applications to forward vehicle-control to the used traffic simulators.\n   Interaction name Description Sent by     VehicleActuatorsChange This interaction is used to directly control the throttle/brake of an vehicle. At the moment this is only supported by Phabmacs. Application   VehicleDistanceSensorActivation This interaction is used to enable the distance sensors of a vehicle. A multitude of sensors can be enabled with one interaction given they use the same maximum lookahead distance. Application   VehicleFederateAssignment This interaction is intended to be used, when more than one traffic simulator is used in a simulation. It enables the passing of information on which vehicle are passed externally. At the moment this is used by the PhSCA-ambassador. PhaSCA   VehicleLaneChange This interaction initiates a lane change for the given vehicle, which should be consumed by the traffic simulators. Application   VehicleParametersChange This interaction requests to update various parameters of the vehicle or its driver. Application   VehicleResume This interaction requests the given vehicle to continue its journey after being stopped beforehand. The interaction should be handled by traffic simulators Application   VehicleRouteChange This interaction is used to change a route for vehicle by its id. It can be assumed that the given route id has been propagated by either a VehicleRoutesInitialization- or VehicleRouteRegistration-interaction. Application   VehicleRouteRegistration This interaction is used to propagate a newly generated route which is not yet known. It consists of the id of the route and a list of all its edges. Application   VehicleSightDistanceConfiguration This interaction is used to configure the sight distance for a vehicle (driver), this information can for example be used to implement applications regarding traffic sign recognition. Application   VehicleSlowDown This interaction initiates the vehicle to slow down in a given interval. The request should be handled by traffic simulators. The name \u0026lsquo;SlowDown\u0026rsquo; is inherited by Sumo and a little bit misleading, the speed can also be increased. Application   VehicleSpeedChange This interaction sets the current speed of the given vehicle. This should be handled by traffic simulators Application   VehicleStop This interaction requests the given vehicle to stop at the given road position, it should be handled by traffic simulators. Application    traffic Interactions in this package are focused around traffic management and communication with traffic simulators.\n   Interaction name Description Sent by     CellularHandoverUpdates This interaction is used by the cell ambassador to communicate handovers. cell   InductionLoopDetectorSubscription This interaction subscribes a unit to the data of an induction loop detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LaneAreaDetectorSubscription This interaction subscribes a unit to the data of a lane area detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LanePropertyChange This interaction contains lane properties to be changed. Concretely, it sets a list of allowed and disallowed vehicle classes per lane and a new maximum speed limit that shall be changed. The changed lane properties have to be omitted to the traffic simulator to be handled. Application   TrafficDetectorUpdates This extension of {@link Interaction} combines updates of lane area and induction loop detectors. Usually the updates are supplied by the traffic simulator and will be filtered by applications subscribed to them. Sumo   TrafficLightStateChange This interaction is intended to be used to forward a request to change the state of a simulated traffic light. This interaction can be used to implement different controlling strategies for traffic lights. Application   TrafficLightUpdate This interaction is a container for traffic light update. It is sent by the SumoAmbassador to inform simulation units about an updated traffic light state. Sumo   VehicleUpdates This interaction is used to update the position of some or all vehicles of the simulation. It consists of three lists, containing newly added vehicles, vehicles which were updated since the last simulation step, and vehicles which have been removed from the traffic simulation. Sumo\nPhabmacs   VehicleTypesInitialization This interaction is required for each simulation. It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier. Mapping   VehicleRoutesInitialization This interaction is required for each simulation. It contains all routes vehicles will take during the simulation. Other ambassadors may cache this interaction in order to have access on the routes, which are later identified by their identifier. Application    electricity All interactions contained in this package are related to electric vehicles and the surrounding infrastructure.\n   Interaction name Description Sent by     ChargingDenialResponse This interaction is sent out by the charging station ambassador to inform the application simulator (the vehicles) when a charging station is already in use. e.g. a vehicle wants to start charging on an engaged charging station -\u0026gt; ChargingStartDenial. ChargingStation   ChargingStartResponse This interaction is intended to be used to forward a started charging process at a ChargingSpot to the RTI. ChargingStation   ChargingStationUpdates This extension interaction is intended to be used to forward the updated state of a ChargingStation to the RTI. ChargingStation   ChargingStopResponse This interaction is intended to be used to forward a stopped charging process at a charging station to the RTI. ChargingStation   VehicleChargingStartRequest This interaction is intended to be used to forward a request from a vehicle to start charging its battery at a charging station to the RTI. Application   VehicleChargingStopRequest This interaction is intended to be used to forward a request from a vehicle to stop charging its battery at a charging station to the RTI. Application   VehicleElectricityUpdates This interaction is used to inform the applications of simulation units about changed electric information, send out by the battery ambassador. Battery    environment The interactions in this package are used for handling the communication about environment sensors.\n   Interaction name Description Sent by     EnvironmentSensorActivation This interaction is intended to be used to signal interest in sensor information for a specific simulation unit. Application   EnvironmentSensorUpdates This interaction is intended to be used to exchange sensor data. EventServer   GlobalEnvironmentUpdates This extension of interaction contains a list of current environment events and their locations. Those events can than be used to react upon a changing environment. EventServer    trafficsigns Interactions in this package are used to communicate changes in variable traffic signs, e.g. changing the speed limit.\n   Interaction name Description Sent by     AbstractTrafficSignChange This interaction can be sent to traffic sign ambassador in order to change a variable traffic sign. All interaction-classes, that are concerned with changing traffic signs extend this class. Application   TrafficSignLaneAssignmentChange This interaction can be sent to traffic sign ambassador in order to change a variable lane assignment sign. Application   TrafficSignSpeedLimitChange This interaction can be sent to traffic sign ambassador in order to change a variable speed sign. Application   VehicleSeenTrafficSingsUpdate This interaction stores a map of all traffic signs which are in sight distance of a specific vehicle and a map of all traffic signs which became invalid for that vehicle. TrafficSign    application Interactions in this package are used for applications. They are used to communicate custom information/data via the RTI.\n   Interaction name Description Sent by     ApplicationInteraction This interaction is intended to be used in custom applications, it can be extended for simulation units to react upon different influences and can be used for intercommunication between applications. Application   ItefLogging This interaction is used to exchange log-tuples for the ITEF (Integrated Testing and Evaluation Framework). Application   SumoTraciRequest This interaction is used to send a byte array message to SUMO TraCI. The request will be handled by TraCI and trigger a SumoTraciResponse. Application   SumoTraciResponse This interaction holds the TraCI response for a SumoTraciRequest. It is sent by the SumoAmbassador and will usually be handled by the Application that sent the request. Sumo    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"7f431be72ccf4101c02872c325977e3f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/interactions/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/interactions/","section":"docs","summary":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates.","tags":null,"title":"Interactions in Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter. For more detailed explanations of the configurations have a look at this chapter.\nIf you already played with the Barnim-tutorial you probably noticed, that it contains far more folders in the scenario structure compared to the Steglitz example. Those additional directories contain configurations for various simulators.\n└─ Barnim ├─ application ├─ cell ├─ environment ├─ mapping ├─ ns3 ├─ output ├─ sns ├─ sumo └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let the cars loose As a starting point we\u0026rsquo;ll look at the scenario that we created using this command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  We\u0026rsquo;ll end up with a folder looking like this:\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  If you have a look in the mapping_config.json, you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this file as a blueprint for your own scenario, have a look here to get more details on possible adaptions.\nBelow is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars follow.\n Communication Simulators (cell, ns3, omnetpp, sns) We won\u0026rsquo;t implement any functionality for the steglitz example here but rather have a look at the Barnim-tutorial. In the scenario_config.json of the Barnim scenario you can see where the communication simulators are activated:\n\u0026quot;federates\u0026quot;: { \u0026quot;cell\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;sns\u0026quot;: true }  Our tutorials and additional examples demonstrate use cases for communication usages and you should have a look at them if you are uncertain where to start. Furthermore we recommend copying the configuration-files for the simulator you are going to use from the Barnim scenario. It contains the most complete configurations and is well maintained.\nIf you are an expert with one of the external network simulators ( ns3, OMNeT++) the Barnim scenario will also give you an overview on how to configure those.\nOther Simulators Here we\u0026rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the Event Server and the Battery Simulator.\nEvent server The event server can be used to emit events to vehicles inside it\u0026rsquo;s predefined borders. In the Barnim scenario an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.\nEvery defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look at the eventserver_config.json to see how this can be configured. If you want to use the event server make sure to have it enabled in the scenario_config.json.\nBattery The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can dynamically load your own battery, vehicle and environment models. Have a look a the battery_config.json, taken from the Barnim scenario. The three models used are included with Eclipse MOSAIC and you can freely use them.\nOutput There are various options to generate output results of your simulations (see the visualization chapter). Visualizing doesn\u0026rsquo;t necessarily mean you will end up with moving pictures of cars driving along your predefined routes.\nLet\u0026rsquo;s get back to the steglitz-scenario and try to calculate the average travel time of our vehicles. The first step is to create a file called visualizer_config.xml in a new directory called visualizer. If you used the scenario-convert tool the file should be generated automatically.\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ output | └─ output_config.xml ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Next make sure the visualization federate is activated in the scenario_config.json.\n\u0026lt;!-- Visualization --\u0026gt; \u0026lt;federate id=\u0026quot;visualizer\u0026quot; active=\u0026quot;true\u0026quot;/\u0026gt;  Now we have to configure the statistics visualizer itself. This visualizer_config.xml contains the basic configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please refer to statistics visualizer.\nGo ahead and run the simulation one more time. Afterwards the log-directory should contain a file called AverageVehicleTravelTime.csv in a directory called StatisticsVisualizer:\ngroup;group-value;total; Car;186.369;336;  This tells us that there was a total amount of 336 vehicles of the type car in the simulation, which traveled for 186.369 seconds on average.\nConclusion\nAfter this small, hands-on introduction to visualizers you should know where to configure them and after some additional reading, you should be able to configure different types of visualizers for your use-cases.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"a4ca6c187ad91d08aae3125ab16bd8e7","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_configuration/","section":"docs","summary":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter.","tags":null,"title":"Additional Scenario Configuration","type":"docs"},{"authors":null,"categories":null,"content":"  This feature is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation. To this end, the is a tool to apply different configurations to a scenario, after which a series of simulations is executed via CLI by calling the start script.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e8beb745ee20688b28a1a708883ced00","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/simulation_set/","section":"docs","summary":"This feature is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  A common objective when running simulations is to assess the impact of different parameter settings for a specific scenario on the results of the simulation.","tags":null,"title":"Run a Simulation Set","type":"docs"},{"authors":null,"categories":null,"content":"  The Statistics Visualizer is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes. With the Statistics Visualizer you will be able to obtain short or detailed results of the simulation, e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.\nConfiguration  The main configuration file for all visualizers is located at scenarios/\u0026lt;scenarioName\u0026gt;/visualizer/visualizer_config.xml  In order to use the Statistics Visualizer, the attribute enabled of the root element visualizer must be set to \u0026ldquo;true\u0026rdquo;, as shown in the following listing.\n\u0026lt;visualizer id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; [..] \u0026lt;/visualizer \u0026gt;  Configuration header for Statistics Visualizer\nSpecification In this section, we take a closer look at the Statistics Visualizer by using examples and demonstrations. For each type of retrieving data we create a \u0026lt;statistic\u0026gt;\u0026lt;/statistic\u0026gt; block. Inside the block we define one certain data type we want to retrieve in a  element. If you want to retrieve different data types, just create another \u0026lt;statistic\u0026gt; block for each of them.\nYou can also set the wanted file name in the attribute filename of the statistic element. If the attribute has not been given, each \u0026lt;statistic\u0026gt; block will get the name accordingly to the order number, for example 1. StatisticsVisualizer-Block.csv.\nIn the output attribute two options (short|verbose) can be selected. The short option provides us a compact log file with information about only the highest level of the retrieved data (e.g. aggregate values of grouped vehicles) in contrast to verbose option which also provides informations about every individual vehicle in each group.\nFor a successful start, the element source must be placed in the first position in the statistic children element list. Different options of possible data types, one of which must be specified in the source element can be seen below.\n\u0026lt;statistic filename=\u0026quot;ChooseItYourself\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;NameOfSource\u0026lt;/source\u0026gt; \u0026lt;/statistic\u0026gt;  Source options of Statistics Visualizer\nApplication This section will demonstrate the basic idea and usage of the Statistics Visualizer depending on the individual requirements. Besides the retrieving raw data, the Statistics Visualizer has further features for processing of the obtained data.\n source: Data to obtain, choose between:  VehicleSpeeds - Obtain the speeds of the vehicles of each simulation step. VehicleStops - The total number of stops during the journey of each vehicle. VehicleTravelTimes - The total travel time in s of the vehicles. VehicleDelayTimes - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s). VehicleTravelledDistances - The travelled distance inmof the vehicles. VehicleFuelConsumptions - The fuel consumptions of the vehicles in l per km. VehicleHeadways - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor. DetectorFlow - The flows of each subscripted induction loop.     For using the detector flow type, inductions loops need to be configured in the SUMO and mapping configuration files (e.g. Highway tutorial).\n   group-by: The vehicles will be grouped by its vehicle type name (VehicleType), group they belong to (VehicleGroup), or obtained data value (e.g. Interval:200 categorizes values into groups of size 200).\n  aggregation: Average | Harmonic aggregation of the obtained values. An attribute deviation can be set to true or false (it’s false if the attribute is not given). This attribute can be used for grouped values to get the deviation of each value from the aggregated group value or to get a standard deviation based on biased sample variance for groups (in the short output version).\n  filter: Filtering with the attribute filterType (possible values are keep and remove).\n Filtering by required value slots with two options to specify them: MoreThan:Value or LessThan:Value (e.g. MoreThan:5 to collect values which are bigger than 5 only) Filtering by vehicle type. VehicleType:Type (e.g. VehicleType:Car to collect values only of vehicles of type \u0026ldquo;Car\u0026rdquo;) Filtering by time. Time:From-To (e.g. Time:0-100 to collect values only of the first 100s of simulation time)    The following example will show an example of how you can specify the Statictics Visualizer according to your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim scenario) and then calculate the average vehicle travel time value for each of these groups.\n\u0026lt;visualizer id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; \u0026lt;statistic filename=\u0026quot;AverageVehicleTravelTimes\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;VehicleTravelTimes\u0026lt;/source\u0026gt; \u0026lt;group-by\u0026gt;VehicleGroup\u0026lt;/group-by\u0026gt; \u0026lt;aggregation\u0026gt;Average\u0026lt;/aggregation\u0026gt; \u0026lt;/statistic\u0026gt; \u0026lt;/visualizer\u0026gt;  Getting the Average time by vehicle class\nYou can also combine filters if you want to get a certain interval with upper and lower boundaries. With the following input instruction, only vehicles with the obtained data values between 250 and 500 will be left after filtering.\n\u0026lt;filter filterType=\u0026quot;keep\u0026quot;\u0026gt;LessThan:500\u0026lt;/filter\u0026gt; \u0026lt;filter filterType=\u0026quot;remove\u0026quot;\u0026gt;LessThan:250\u0026lt;/filter\u0026gt;  An example for filtering\nPlease notice that some sources are being not only obtained in each simulation step but also collected for further processing as separate values for each of these steps (like VehicleSpeeds, VehicleHeadways). These data types need to be aggregated to one value per vehicle if you want to group them by value or filter them.\nFor demonstration, the StatisticsVisualizer is configured for the scenario Barnim and calculates the average travel times of the vehicles and additionally groups them. As a result, the simulation produces the following CSV file in the log directory:\nGroup;Value;Total; AdHoc;399.14;24; Cellular;463.87;12; Unequipped;459.18;84;  The AverageVehicleTravelTime.csv file produced by the Statistics Visualizer in the Barnim scenario\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"f3aea6e70248def0891ed9bd89706cbb","permalink":"https://www.eclipse.org/mosaic/docs/visualization/statistics/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/statistics/","section":"docs","summary":"The Statistics Visualizer is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.","tags":null,"title":"Statistics Visualizer","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"00c72d014237189758fbbed269e91b7d","permalink":"https://www.eclipse.org/mosaic/group/openmobility/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/openmobility/","section":"group","summary":"The **openMobility Working Group** was founded to support the development and broad introduction of open source mobility modeling and simulation technologies. The aim of the Working Group is to deliver a openMobility framework of tools based on validated models, which are accepted as standard tools in industry applications and academia. Eclipse MOSAIC is one part of the broad range of tools developed in this group.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent. Subsequently, it will find all the Java Archive (JAR) files in the application configuration directory, belonging to the currently started scenario, and add their classes to the class path. These JARs contain the application classes. Furthermore, the ApplicationAmbassador is registered as a handle for different Eclipse MOSAIC messages in the configuration file etc/mosaic.xml in the Eclipse MOSAIC folder. After initialization, the Application Simulator will receive these messages from Eclipse MOSAIC when they appear and perform corresponding actions.\nNode Creation  Application Simulator basic flow / node creation classes   Application classes are only instantiated when a node, carrying that application, is created. This is signaled by messages for node creation like (AddedVehicle,AddedRsu,AddedTrafficLight, \u0026hellip;). When the Mapping ambassador spawns a new node, it will send those messages to the RTI. The message then contains the fully qualified names of all applications associated with the spawned node, as well as the vehicle type itself. Depending on this type, the Application Simulator creates a new SimulationUnit object (i.e. a subclass of SimulationUnit like Vehicle, RoadSideUnit or TrafficLight), representing the new node. This task is served by the UnitSimulatorclass, which performs book keeping of all SimulationUnits. Upon Creation of a node, the UnitSimulator will schedule an event to start all applications, belonging to the new node. The required information is saved in a StartApplications object, which also includes a ApplicationUnit object, an abstract representation of a node (a.k.a. unit) having at least one application.\nHowever, as, for example, SUMO does not simulate vehicles strictly from their creation on, but only since their first movement, Applications for vehicles cannot be started directly upon an AddedVehicle message. Instead, every added vehicle will be kept in the addedVehicles Map, until a VehicleMovements message, belonging to that vehicle is processed. The vehicle will then be added by the UnitSimulator like any other node.\nOther Messages and Time Advance Apart from the ones for node creation, there are many other messages (see Interactions), signaling events to the Application Simulator. For most of them, an event in the future will be programmed, such that the implied action is carried out at that simulation time. The processing of the events happens when the RTI calls the advanceTime() method on the ambassador. Upon this, Application Simulator will obtain a list of all events up to the new time and let the processor of the event process them. Every potential event processor implements the EventProcessor interface. The corresponding method is the advanceTime() method of ApplicationAmbassador, which calls scheduleEvents() on the event scheduler. Subsequently, some interesting messages and their handling process is sketched shortly:\n   Message Description     VehicleUpdates Signals that a vehicle has moved. The Vehicle object, which is a subclass of SimulationUnit, that corresponds to the moved vehicle will be updated to contain the new position. The new information is encapsulated in a VehicleInfo object, containing different vehicle data. To update the data, an event is scheduled at the given time and processed upon time advance. Vehicles not yet added to the simulation (see Node Creation), are added by calling addVehicleIfNotYetAdded().   MessageReceiption This message represents the reception of a V2X-message by a simulated node. The SimulationUnit with the id saved in the ReceivedV2XMessage object is scheduled for the processing of the message at the given simulation time. When simulation time reaches the reception time, the SimulationUnit will obtain the message from the message cache and hand it to all applications that implement the CommunicationApplication interface in the method SimulationUnit.processReceiveV2XMessage().   ApplicationInteraction While most other messages are specific to the a SimulationUnit, that then forwards the event to its applications, the ApplicationSpecificMessage is directly handed to all applications. Thereby, the SimulationUnit, whose applications shall receive the message can be specified. If this is not done, all applications of all units will get the message and have the opportunity to handle it.    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"ba98bef533abd0bfde76ff58f6af3458","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/application_ambassador_details/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/application_ambassador_details/","section":"docs","summary":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent.","tags":null,"title":"Application Ambassador - Implementation Details","type":"docs"},{"authors":null,"categories":null,"content":"  The ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios. It is suited for field operational tests as well as simulations.\nITEF also offers a variety of visualization features, making a comparison of different vehicles or between equipped and unequipped vehicles easy. It is structured into 4 screens, whereas the following 3 screens are intended for the visualization.\nThe Replay screen (see Figure 1) is intended to be used for an initial overview of the test run. The main feature is the display of the vehicle movements on a map, while the player can be used to playback the movement situation. In this manner, the ITEF allows a location and time dependent evaluation of simulation test runs.\n ITEF Replay Screen   The Evaluate screen (see Figure 2) allows the detailed investigation of the correlations in a test run. The main feature of this screen is to display the behavior summarized over the whole run. The structure of this screen with is similar to the Replay screen. However, the focus here is on the detailed (statistical) summary of evaluated metrics.\n ITEF Evaluate Screen   Finally, the Statistics screen (see Figure 3) provides statistical evaluations of the test and simulation run. Currently, statistics on Vehicle Speed, Travel Time, Travel Distance and severalmore are supported.\n ITEF Statistics Screen   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"90c70d06303c99232632c33c319ffb8b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/itef/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/itef/","section":"docs","summary":"The ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios.","tags":null,"title":"Integrated Test and Evaluation Framework (ITEF)","type":"docs"},{"authors":null,"categories":null,"content":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication. For this kind of simulations, external model frameworks have to be included. Currently, there are two prominent model frameworks which cover whole model suites for according focus of wireless research. These are the Mobility Framework and the INET Framework. As INET provides all models necessary for simulating Vehicle-2-X communication, it is selected for the integration to Eclipse MOSAIC.\nFor more information on the INET extension you should look closer on the website.\n          Operating System GNU/Linux\n(Windows with mingw)    License GPL, free to use for academic use    Supported version(s) OMNeT++ 5.5 INET 4.1 http://www.omnetpp.org https://inet.omnetpp.org    Installation There are two installation types of the Eclipse MOSAIC OMNeT++ Federate:    Type Description     USER This installation type addresses those who only want to use the OMNeT++ network simulator for simulations.\nNetwork configurations can also be adjusted.\nIf you install the federate with this installation type, OMNeT++ 5.5 and INET 4.1 will automatically be installed inside \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp during the installation.   DEVELOPER The installation for developers addresses those who want to make changes or extend the Eclipse MOSAIC OMNeT++ Federate.\nThis installation type awaits that OMNeT++ 5.5 and INET 4.1 are already installed on your system and\n- PATH contains /path/to/omnetpp/bin\n- LD_LIBRARY_PATH contains /path/to/omnetpp/lib and /path/to/inet/src\n- C_INCLUDE_PATH contains /path/to/omnetpp/include and /path/to/inet/src     If you already have OMNeT++ 5.5 and INET 4.1 installed on your system, but you simply want to use OMNeT++ for simulations with Eclipse MOSAIC without developing further the Eclipse MOSAIC OMNeT++ Federate, you may also choose the installation for developers to avoid multiple installations of OMNeT++ and INET on your system.\n  First of all, please make sure that you have the following libraries installed: unzip, tar, bison, flex, gcc, python, protoc\n The installation of the current version of the OMNeT++ Federate was tested with protobuf version 3.7.0.\nIt is recommended to install this version. Here you receive more information about how to install protobuf.\n  Follow the links and download the source code of OMNeT++, INET and the Eclipse MOSAIC OMNeT++ Federate:    Software Version Link     OMNeT++ 5.5 https://omnetpp.org/download/   INET 4.1 https://github.com/inet-framework/inet/releases   Eclipse MOSAIC OMNeT++ Federate 20.0 Download    Available parameters of omnet_installer.sh:     Parameter Value Description     -t --installation-type \u0026lt;INSTALLATION_TYPE\u0026gt; Either USER or DEVELOPER.   -o --omnetpp \u0026lt;PATH_TO_OMNET_TGZ\u0026gt; Provide the archive containing the OMNeT++ source. You can obtain it from https://omnetpp.org/download/   -i --inet \u0026lt;PATH_TO_INET_TGZ\u0026gt; Provide the archive containing the inet source code. You can obtain it from https://inet.omnetpp.org/Download.html. If not given, the inet-source files are downloaded by this installation script.   -f --federate \u0026lt;PATH_TO_FEDERATE_ZIP\u0026gt; Provide the archive containing the OMNeT++-federate and patches for coupling OMNeT++ to Eclipse MOSAIC. If not given, the omnetpp-federate is downloaded by this installation script.   -so --skip-omnetpp - Skip the installation of OMNeT++   -si --skip-inet - Skip the installation of INET   -q --quiet - Less output and no interaction required   -j --parallel \u0026lt;NUMBER_OF_THREADS\u0026gt; Enables make to use the given number of compilation threads.\nPer default your systems maximum is selected automatically.   -u --uninstall - Uninstalls the OMNeT++ federate   -h --help - Shows this usage screen    Installation for Users Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type USER \\ --omnetpp /path/to/omnetpp-OMNETPP_VERSION-src.tgz \\ --inet /path/to/inet-INET_VERSION-src.tgz \\ --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip  For the installation type USER the parameters -o, -i and -f are required.\nThe installation script should terminate with SUCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\nInstallation for Developers Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type DEVELOPER \\ --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip  For the installation type DEVELOPER the parameter -f is required.\nThe installation script should terminate with SUCCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\n How to develop Eclipse MOSAIC OMNeT++ Federate\nOMNeT++ Federate Configuration To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open \u0026lt;scenarioName\u0026gt;/mosaic/mosaic_config.xml and enable OMNeT++:\n\u0026lt;federate id=\u0026quot;omnetpp\u0026quot; active=\u0026quot;true\u0026quot; /\u0026gt;  Now, when you run this scenario, Eclipse MOSAIC will automatically start the Eclipse MOSAIC OMNeT++ Federate.\nThe main configuration of the Eclipse MOSAIC OMNeT++ Federate is done within the configuration files omnetpp.ini and omnetpp_config.json in the scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ omnetpp ├─ omnetpp.ini ...................... OMNeT++ federate configuration file └─ omnetpp_config.json .............. Ambassador configuration file  The whole OMNeT++ specific configuration is done via the omnetpp.ini file. It covers static parts for the simulator coupling such as the specific Eclipse MOSAIC Event Scheduler and the ScenarioManager. Furthermore, logging configurations and the typical parameters for the communication layers (MAC, PHY and Radio Channel) are addressed. The communication parameters are different for vehicles and RSUs. Please refer to the OMNeT++ documentation on the OMNeT++ homepage for further information about the structure of the omnetpp.ini file.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"208d551c9e8045f1304b3efe6800d7dd","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_omnetpp/","section":"docs","summary":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication.","tags":null,"title":"Network Simulator OMNeT++","type":"docs"},{"authors":null,"categories":null,"content":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols. It simulates both unicast and multicast protocols and is used extensively in research on mobile ad-hoc networks.\nRegardless, ns-2 still remains in active use and will continue to be maintained in the near future. For Eclipse MOSAIC coupling, only ns-3 will be available.\nLike other network simulators, ns-3 has a relatively steep learning curve, especially compared to GUI- based simulators. If you have no prior experience with ns-3, we recommend to familiarize yourself with the ns-3 simulation environment and the ns-3 simulation basics first. The ns-3 documentation can be found under: https://www.nsnam.org/documentation\nTo take your first steps with ns-3, you might want to download 2 the latest version, build a copy of ns-3 (it uses the Python-based build-system waf) and take a look at the examples, that are shipped within most of the ns-3 source code repositories and packages. You might also examine the simulation output and try to adjust it.\nTypically, a ns-3 user will work under a Linux environment. For those running under Windows, there do exist environments which simulate the Linux environment to various degrees. The ns-3 project has in the past (but not presently) supported the Cygwin environment for these users (see http://www.cygwin.com for details on downloading). MiniGW is presently not officially supported, however there are also some people who managed to use it with ns-3. For detailed information of how to setup ns-3, please refer to their Wiki: https://www.nsnam.org/wiki/Installation\nFor more information on how to setup ns-3 with Eclipse MOSAIC, please just refer to the following section. We prepared an installation script, which manages most of the required work.\n As stated above, ns-3 is primarily developed on and for GNU/Linux platforms. Since Windows is such a widely used platform and Cygwin is not a perfect emulation of any Linux, we highly recommended for non-Linux users to consider the installation of a Linux virtual machine with a virtual machine environment, such as VMware or VirtualBox.\n      Software information     Developer(s) Tom Henderson, Mathieu Lacage, George Riley, Mitch Watrous, Gustavo Carneiro, Tommaso Pecorella and others   Written in C++ (core) and Python (bindings)   Operating system GNU/Linux FreeBSD Mac OS X   License Free software: GNU GPLv2   Website http://www.nsnam.org/   Supported version(s) 3.28   Dependencies libprotobuf 3.3.0    libxml2    libsqlite3   Deployed in MOSAIC all-in-one no (and need a patch to link)    ns3-ambassador folder structure └─ \u0026lt;scenario_name\u0026gt; └─ ns3 ├─ ns3_config.json ................. Ambassador configuration file ├─ configTechnologies.xml ...........ns-3 federate configuration file └─ confWifi.xml .....................ns-3 federate configuration file  Installation Eclipse MOSAIC offers support for the current stable release of ns-3 (3.28), that was released in March 2018. Older versions of ns-3 (prior to 3.28) are not supported. However, also for newer versions we cannot guarantee the correct operation. The coupling to Eclipse MOSAIC is designed in a manner of minimal code changes on the ns-3 simulator itself to keep the update capabilities for future versions.\nPrerequisites For GNU/Linux platforms, the minimal requirements to run basic simulations are a gcc or clang compiler and a Python interpreter. At least you need the following packages to be installed:\nMinimum requirement:\ngcc g++ python python-dev  For a complete list of required packages for different distributions, please refer to the ns-3 installation guide: https://www.nsnam.org/wiki/Installation\nPlease make sure the following libraries are installed before running the installation script:\n libxml2 libsqlite3 libprotobuf 3.3.0  Run the installation script  ns-3 requires several packages to be installed on your computer. You will need to ensure, that all required libraries are present on your system before proceeding. You may need superuser permissions to install packages.\n   If your local protobuf version does not fit the required one, the installation may fail with an error. In that case, you can run the install script with the -p flag. This will rebuild the protobuf files during installation and allow it to proceed correctly.\n  To ease the installation of ns-3 for Eclipse MOSAIC, the installation process has been delegated to an installation script, that can be found in the associated ns-3 federate folder.\nns3-ambassador federate folder structure:\n└─ mosaic/bin/fed/ns3 └─ ns3 ├─ Dockerfile.sh ....................Dockerfile for ns-3 federate └─ ns3_installer.sh ................ Installation script for ns-3  The ns-3 installation script accomplishes the following tasks:\n Download ns-3 tarball from the offical sources Download the ns-3 federate for Eclipse MOSAIC. Apply a patch to ns-3 in order to make it work with Eclipse MOSAIC. Add the ns-3 federate to the waf build system. Configure and build the patched ns-3 with the ns-3 federate.  In order to start the simulation, the following steps need to be performed:\n Set up the confWifi.xml-file in the scenario folder (see section Configuration). An example confWifi.xml - file is shipped with the Tiergarten scenario. For reasonable result logging, the logger-configuration in mosaic/etc/logback.xml has to be adapted to support the ns-3 ambassador and federate. At last ns-3 has to be activated in the mosaic_config.xml and the simulation can be started.  Installation in Docker environment  This is an experimental feature. Please refer to our mailing list if you experience any problems.\n  This guide gives instructions to execute the ns-3 federate inside a docker container. If you already installed ns-3 on your machine following the steps before, you can skip this section.\nDocker 5 is a new approach to execute software. More precisely, it \u0026ldquo;wraps software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, and system libraries\u0026rdquo;. As a result, the software is executed within a container and its execution does not rely on the environment the container is running in.\nIn context of Eclipse MOSAIC, this approach allows to execute ns-3 within a docker container. The user does not need to manually install ns-3 and can even run ns-3 on Windows hosts.\n Install Docker ≥ 1.13 on your machine. To get everything to work, please make sure to execute the following steps depending on your operating system:  Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab. Linux - Make sure your user account belongs to the unix-group docker. You may need to restart your machine.   Switch to the location of the Dockerfile in mosaic/bin/fed/ns3 Execute the following command on command line:\ndocker build -t ns3-federate:mosaic.\nThis could take a while to finish. Enter the name of the docker image etc/defaults.xml in the ns3-section into the tag dockerImage:  \u0026lt;federate class=\u0026quot;...\u0026quot;\u0026gt; \u0026lt;id\u0026gt;ns3\u0026lt;/id\u0026gt; ... \u0026lt;dockerImage\u0026gt;ns3-federate:mosaic\u0026lt;/dockerImage\u0026gt; ... \u0026lt;/federate \u0026gt;  You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the mosaic_config.xml.\nConfiguration The whole ns-3 specific configuration is done via the confWifi.xml and configTechnologies.xml files.\nconfWifi.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;wifi\u0026gt; \u0026lt;!-- IPv4 address generator --\u0026gt; \u0026lt;ipConfiguration\u0026gt; \u0026lt;ip address=\u0026quot;192.168.0.0\u0026quot; mask=\u0026quot;255.255.0.0\u0026quot;/\u0026gt; \u0026lt;/ipConfiguration\u0026gt; \u0026lt;!-- Calculate a propagation delay --\u0026gt; \u0026lt;propagationDelayModel\u0026gt; \u0026lt;delay model= \u0026quot;ns3::NonePropagationDelayModel\u0026quot;/\u0026gt; \u0026lt;/propagationDelayModel\u0026gt; \u0026lt;!-- Modelize the propagation loss through a transmission medium --\u0026gt; \u0026lt;propagationLossModel\u0026gt; \u0026lt;loss model= \u0026quot;ns3::FriisPropagationLossModel\u0026quot;/\u0026gt; \u0026lt;/propagationLossModel\u0026gt; \u0026lt;wifiConfiguration\u0026gt; \u0026lt;!-- Create non QoS-enabled MAC layers --\u0026gt; \u0026lt;wifiMac property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::AdhocWifiMac\u0026quot;/\u0026gt; \u0026lt;!-- Wifi PHY mode --\u0026gt; \u0026lt;wifiManager property=\u0026quot;phyMode\u0026quot; value=\u0026quot;OfdmRate54Mbps\u0026quot;/\u0026gt; \u0026lt;!-- Wifi manager --\u0026gt; \u0026lt;wifiManager property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::ConstantRateWifiManager\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;EnergyDetectionThreshold\u0026quot; value=\u0026quot;-81.0\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to declare CCA BUSY state --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;CcaMode1Threshold\u0026quot; value=\u0026quot;-99.0\u0026quot;/\u0026gt; \u0026lt;!-- Transmission gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Reception gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Number of transmission power levels available between TxPowerStart and TxPowerEnd included --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerLevels\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;!-- Maximum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerEnd\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Minimum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerStart\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxNoiseFigure\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Channel center frequency = Channel starting frequency + 5 MHz * (nch - 1) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;ChannelNumber\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;/wifiConfiguration\u0026gt; \u0026lt;/wifi\u0026gt;  The IP configuration information includes the network address and network mask. The ns-3 propagation module defines two generic interfaces, namely PropagationLossModel and PropagationDelayModel, for the modelling of propagation loss respectively propagation delay.\nIn the default confWifi.xml, the Wi-Fi device uses the ns-3 standard propagation delay model ns3::ConstantSpeedPropagationDelayModel and the ns-3 standard propagation loss model ns3::FriisPropagationLossModel. Radio propagation models in ns-3 can easily be exchanged with the ns-3 class registration system (see the ns-3 documentation for details). The Wi-Fi configuration includes additional parameters, like sending power and antenna gain.\nconfigTechnologies.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;ns3Configuration\u0026gt; \u0026lt;installers\u0026gt; \u0026lt;installer type=\u0026quot;ns3::WifiVehicleInstaller\u0026quot; name=\u0026quot;WifiVehicle\u0026quot; file=\u0026quot;confWifi.xml\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;installer type=\u0026quot;ns3::MobilityModelInstaller\u0026quot; name=\u0026quot;Mobility\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;/installers\u0026gt; \u0026lt;/ns3Configuration\u0026gt;  The configuration manager of the ns-3 federate defines, which installer should be loaded for the Wi-Fi device (refering to the confWifi.xml) and the mobility model. Usually, you don’t need to take any changes and simply use the default configuration file, that ships with the ns-3 federate.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"10a4ba934e0981b530dd053b83c60773","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_ns3/","section":"docs","summary":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols.","tags":null,"title":"Network Simulator ns-3","type":"docs"},{"authors":null,"categories":null,"content":"  The 3D visualization RHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation. Next to the road network, which can be optionally rendered by the visualizer, the following units and events are visualized:\n Vehicle movements coming from the traffic simulation Road Side Units at their defined location V2X-messages sent via cellular communication (indicated as green circles) V2X-messages sent via ITS-G5 communication (indicated as blue circles) V2X-messages received by vehicles (indicated as red circles)   The 3D visualization tool PHABMap displaying events from the simulation   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"262992c33ea9dc690e168169b920406b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/phabmap/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/phabmap/","section":"docs","summary":"The 3D visualization RHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation.","tags":null,"title":"3D Visualization (PHABMap)","type":"docs"},{"authors":null,"categories":null,"content":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre. It is designed to handle large road networks faster than real-time. Each vehicle has an own route and is simulated individually. To simulate the movements of the vehicles on the network, a model is used that uses discrete time steps of e.g. 1 s. Thousands of vehicles can be simulated in real time on a desktop PC, including simulation of traffic lights, right-of-way rules, and lane changing models. Simulations can either run via the command line or are visualized using the openGL-API (SUMO-GUI). SUMO networks are created by importing other formats, such as OpenStreetMap data, Shapefiles or TIGE-maps; or by generating artificial networks. Furthermore, vehicle routes, based on different routing paradigms, can be computed.\nSUMO and Eclipse MOSAIC We have integrated the traffic simulator SUMO to be able to simulate heterogeneous driving vehicles and a set of vehicles that have a predefined routes based on an imported roadmap. Additionally, during the runtime of a simulation, it is possible that routes of simulated vehicles are changed and that vehicle positions are extracted at arbitrary points in time. The integration of SUMO into a Eclipse MOSAIC based simulation is illustrated in the following figure. The integrated Traffic Control Interface (TraCI) Server offers an interface to exchange commands and positions using a socket interface with a proprietary byte protocol. Analogous to the TraCI Server, a TraCI Client is implemented that is integrated in an ambassador implementing the TraCI protocol. Therefore, SUMO can be integrated without modifications.\n SUMO connected to Eclipse MOSAIC   During a simulation run, per default SUMO is paused and TraCI is listening for commands. After each advanced time grant, SUMO offers the new vehicle positions which are broadcast by its ambassador to other federates. Furthermore, if the ambassador receives a request to change the route of a specific vehicle, it is forwarded to SUMO. Thus, at the next time-advancement, the new route is integrated.\nSimulation of Vehicles For each vehicle which has been defined in the mapping configuration, a VehicleRegistration interaction is sent to the SumoAmbassador which adds those vehicles to the simulation via TraCI. Furthermore, vehicle data is subscribed which is updated with every simulation step. After each step of the simulation this data is bundled into a VehicleInfo object which is distributed among other ambassadors within the VehicleUpdates interaction. The following data is available for each vehicle:\n Position Speed, Acceleration, Heading, Slope State of vehicle signals (e.g. turn indicators) Emission dispersion (CO2, NOX, etc.) Fuel consumption Information about the road the vehicle is driving on (road position) Id of the route  Traffic lights in SUMO Depending on which light is active (red, yellow or green), every traffic light got different phases. In theory, any combination of dis- or enabled lights is possible, but SUMO only handles combinations which make sense. In SUMOs traffic light concept every traffic light got a bitset of the status of each phase. Every bitset is a combination as mentioned above. When a car approaches a junction, it gets the actual bitset (combination) of the traffic light. To explain the code, an example is given:\n\u0026lt;tl-logic type=\u0026quot;static\u0026quot;\u0026gt; \u0026lt;key\u0026gt;0\u0026lt;/key\u0026gt; \u0026lt;subkey\u0026gt;my program\u0026lt;/subkey\u0026gt; \u0026lt;phaseno\u0026gt;8\u0026lt;/phaseno\u0026gt; \u0026lt;offset\u0026gt;0\u0026lt;/offset\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;GGggrrrrGGggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;yyggrrrryyggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrGGrrrrrrGGrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rryyrrrrrryyrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;rrrrGGggrrrrGGgg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrryyggrrrryygg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrrrrrGGrrrrrrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrrrryyrrrrrryy\u0026quot;/\u0026gt; \u0026lt;/tl-logic\u0026gt;  This example shows the traffic light program of one junction. It shows the different status’ of each light of each traffic signal, which are positioned on the junction. In this example every string of a phase e.g. \u0026ldquo;GGggrrrrGGggrrrr\u0026rdquo; (first phase) got 16 characters. Every char stands for one light on the junction. On this junction are four traffic lights with four signals each. To understand the different status of each light in one period (8 phases) the program should be read from top to the bottom. It is possible to change or create your own program by editing the .net file with the tool Netedit.\nHandling of traffic lights in Eclipse MOSAIC After the TraCI connection has been established, all available traffic light groups are read out of SUMO via TraCI. This information is packed into the three classes TrafficLightGroup, TrafficLightSignal, and TrafficLightPhase. While a traffic light group contains a list of signals which control one intersec- tion (which can consist of several nodes), a list of all existing traffic light groups is sent to the RTI via a ScenarioTrafficLightRegistration interaction.\nTraCI Client Implementation The SumoAmbassador communicates with the federate (SUMO process) via TraCI. In this socket based communication protocol, the server (SUMO) listens to commands and responds accordingly.\nEach message send to SUMO consist of a header and the command or result message, according to the following scheme:\n 0 7 8 15 +--------------------------------------+ | Message Length including this header | +--------------------------------------+ | (Message Length, continued) | +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_0 | Command / Result_0 content | | +--------------------------------------+ / ... +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_n -1 | Command / Result_n-1 content | | +--------------------------------------+ /  A more detailed description can be found here: http://sumo.dlr.de/wiki/TraCI/Protocol\nCommands Each TraCI command is identified by an command identifier. For example, the command 0xC4 is used to change the state of a vehicle. Most of the commands need further specification, such as the parameter of the vehicle which is required to be changed. Those parameters are usually accessed by variable identifiers (e.g. 0x40 addresses the speed of an entity). A full list of commands and variables supported by TraCI can be found here: http://sumo.dlr.de/wiki/TraCI\nHere is an example of a command message to change the speed of the vehicle \u0026ldquo;veh_0\u0026rdquo; to 14m/s:\n 0 7 8 15 23 24 31 +-----------------------------------------------------------------------------+ | 25 (Message length) | +-----------------------------------------------------------------------------+ | 21 (Length) | 0xC4 (Command) | 0x40 (Variable) | +-----------------------------------------------------------------------------+ 5 (String length as 4 Byte Integer) | \u0026quot;v\u0026quot; | +-----------------------------------------------------------------------------+ | \u0026quot;e\u0026quot; | \u0026quot;h\u0026quot; | \u0026quot;_\u0026quot; | \u0026quot;0\u0026quot; | +-----------------------------------------------------------------------------+ | 0x0B (Double type)| 40.0 (8 Byte Double) +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ | +-------------------+  AbstractTraciCommand In the TraCI client implementation of the SumoAmbassador the whole construction of messages is done in the class AbstractTraciCommand. The message header containing the message and command lengths is constructed automatically as well as all parameters defined by the specific command. To achieve this, each class which extends the AbstractTraciCommand needs to define the command, the variable and all parameters which are required for the specific command:\nprotected VehicleSetSpeed() { super(TraciVersion.LOWEST); write() .command(0xC4) // = change vehicle state .variable(0x04) // = set speed of entity .writeStringParam() // = vehicle id .writeDoubleParamWithType(); // = speed value }  This example shows the command implementation for setting the speed for a vehicle. In the constructor, the write methods provides a builder-like construct allowing to define the command, the variable, and all parameters which are later passed dynamically to the command. Here, the command is specified as 0xC4 (= change vehicle state) and the variable as 0x04 (= speed of the entity). Furthermore, two parameters are defined: The first string parameter represents the ID of the vehicle, the second double parameter defines the speed value to be set (according to http://sumo.dlr.de/wiki/TraCI/Change_Vehicle_State). Note, the order of the specified command contents is from crucial importance. E.g. the command must always be specified before the variable, and the variable before all parameters.\nAll parameters defined in the constructor (here: [String, Double] ), need to be assigned with values as soon as the command is executed. For this purpose, the command implementation needs to call the method execute of the super class with the parameter values in the specified order:\npublic void setSpeed(TraciConnection traciCon, String vehicleId, double speedValue) { super.execute(traciCon, vehicleId, value); }  Within the execute method, the AbstractTraciCommand constructs the whole message and sends it to the TraCI server (SUMO). Furthermore, the AbstractTraciCommand also reads the response, extracts the status of the response (successful or error) and reads all values returned by the server. Usually, commands which changes the state of an entity only (like VehicleSetSpeed) do not respond with complex results. However, a command which wants to retrieve a value of an entity needs to read out the result from the response (e.g. VehicleGetRouteId which returns the current route identifier of the vehicle). For this purpose, each command needs to specify how the response should be handled:\nprotected VehicleGetRouteId() { super(TraciVersion.LOWEST); write() .command(0xA4) // = retrieve vehicle state .variable(0x53) // = route id of entity .writeStringParam(); // = write vehicle id read() .skipBytes(2) // = skip command and variable in response .skipString() // = skip vehicle id, not relevant .readStringWithType(); // = read route id  This example shows the command implementation for getting the route id of a vehicle. As well as write, the method read returns a builder-like construct which provides methods to define how the response is handled. Here, the first two bytes of the response should be skipped, as well as the string which follows afterwards. The value the command is interested in is the following string value which holds the id of the route. By using the method readStringWithType the string is read out and is passed to the method constructResult which needs to be implemented by the command as well:\npublic String getRouteId(TraciConnection con, String vehicle) { return super.executeAndReturn(con, vehicle); } @Override protected String constructResult(Status status, Object... objects) { return (String) objects[0]; }  In this simple case the result of the command consists of one result object only (the route id). Therefore, it is just extracted from the array of result objects and directly returned.\nWriting parameters In order to write parameters and read results according to the specification of the protocol, several reader and writer implementations exist. For parameters to be written in the command various writers exists to write single bytes, strings, integers, and doubles, or special writers for writing lists. The same is for readers.\nIn the following example, the IntegerTraciWriter is shown:\npublic class IntegerTraciWriter extends AbstractTraciParameterWriter\u0026lt;Integer\u0026gt; { public IntegerTraciWriter() { super(4); } public IntegerTraciWriter(int value) { super(4, value); } @Override public int getVariableLength(Integer argument) { return getLength(); } @Override public void write(DataOutputStream out) throws IOException { out.writeInt(value); } @Override public void writeVariableArgument(DataOutputStream out, Integer argument) { out.writeInt(argument); } }  Each writer has two tasks. Firstly, it needs to determine the length of the parameter value. For example, an integer parameter is always 4 bytes long, whereas the length of a string parameter depends on the size of the argument. Therefore, each writer needs to be able to determine the variable length according to a given value. Secondly, it needs to write out the actual value into the DataOutputStream (which represents the channel to the TraCI server). Furthermore is each writer able to write fixed values, such as the command identifier which does not change, or variable arguments, such as the vehicle id.\nReading results In the following example, the IntegerTraciReader is shown:\npublic class IntegerTraciReader extends AbstractTraciResultReader\u0026lt;Integer\u0026gt; { public IntegerTraciReader() { super(null); } public IntegerTraciReader(Matcher\u0026lt;Integer\u0026gt; matcher) { super(matcher); } @Override protected Integer readFromStream(DataInputStream in) throws IOException { return readInt(in); } }  A reader has three tasks. Firstly, it reads out a value from the DataInputStream (which represents the response channel to the TraCI client) according to the protocol specification. For example, an integer can be read out directly, while a string requires several single reading operations. Secondly, the reader needs to take track of the number of bytes it has read in total. To achieve this it is recommended to use the provided methods of the super class, such as readInt, readString, or readByte .However, if values need to be read directly from the DataInputStream, the protected field numBytesRead must always be increased accordingly. Thirdly, the reader needs to define if the read out value fulfils certain requirements. Such requirement can be, that a certain value is expected. In this case, a matcher might be passed to the super constructor.\nAccessing the commands For each command, only one object should be instantiated during runtime. To achieve this, the CommandRegister is used. This class stores a command once it is created returns only one instance per command class:\nfinal RouteAdd routeAddCommand = commandRegister.getOrCreate(RouteAdd.class); //... do something  However, commands should not be accessed directly in the code, but rather using the various facades available:\n TraciRouteFacade - Route specific command calls, such as addRoute and getRouteEdges . TraciSimulationFacade - Provides methods to control the simulation, such as simulateStep . TraciTrafficLightFacade - Provides methods to get or set values for traffic lights. TraciVehicleFacade - Provides methods to get or set values for vehicles. All those facades can be accessed via the TraciClient.  Exception handling Exceptions are thrown and handled as following:\n  If a command results in a status response with the status code Error, a TraciCommandException is thrown. If this exception is thrown, the TraCI connection is still alive and can be used for further commands. The facades decide how to handle this exception then and may throw an InternalFederateException or log a warning message.\n  If a command could not be written properly, or the result could not be read out as wished, an InternalFederateException is thrown and an Emergency Exit is initiated, which eventually shuts down the TraCI connection. This also happens if a reader or writer throws any kind of Exception.\n  Version handling With future releases of SUMO new TraCI commands will emerge. To achieve downward compatibility each command can define the lowest TraCI Version it supports. For example, a command which was introduced with SUMO 0.30.0 and is annotated accordingly, would be skipped automatically if the version of the TraCI server is lower. However, this concept has not been tested yet properly.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"619eca86fee9768692c3090a256ba49b","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/sumo_ambassador_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/sumo_ambassador_details/","section":"docs","summary":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre.","tags":null,"title":"Sumo Ambassador Implementation","type":"docs"},{"authors":null,"categories":null,"content":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places. Those abstractions will be discussed later on.\nConfiguration The SNS offers some configurability regarding the way transmissions are simulated.\nMain Configuration:\n   Parameter Description type Default Value     maximumTtl Defines the upper bound for the amount of hops a message can make. (Note: messages can have individual ttl\u0026rsquo;s) int 10   singlehopRadius Fallback radius to be used for transmission, if no radius is defined in the AdhocConfiguration double 509.4   singlehopDelay A delay configuration for the direct communication between two nodes. ( See here) Delay `ConstantDelay |   singlehopTransmission This contains the transmission configurations for lossProbability and maxRetries. CTransmission n/a   adhocTransmissionModel A class extending AdhocTransmissionModel, this will decide the logic for transmissions. AdhocTransmissionModel SimpleAdhoc TransmissionModel     On default the SNS will use the SimpleAdhocTransmissionModel with a ConstantDelay using 0 as delay. This means it usually makes sense to specify the AdhocTransmissionModel explicitly and use a more realistic Delay. Example Configuration:\n { \u0026quot;maximumTtl\u0026quot;: 20, \u0026quot;singlehopRadius\u0026quot;: 300.5, \u0026quot;singlehopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;1.5 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.5 ms\u0026quot; }, \u0026quot;singlehopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 0 }, \u0026quot;adhocTransmissionModel\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleAdhocTransmissionModel\u0026quot;, \u0026quot;simpleMultihopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }, \u0026quot;simpleMultihopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } }  Transmission Logic SNS differentiates between two types of Ad hoc transmissions, geographically- and topologically-scoped transmissions, which generally are abbreviated with GeoCast and TopoCast respectively.\nGeoCasts are limited to BroadCasts. Accordingly, there is no explicit addressing of receivers (other than 255.255.255.255), instead a destination area is specified. However, GeoCasts allow for multihop forwarding.\nTopoCasts on the other hand use means of IPv4 addressing to transmit messages. Since the SNS was not build to simulate transmissions using complex topology-constructs, TopoCasts are limited to transmissions with a single hop. However, TopoCasts support BroadCasts and UniCasts (we are omitting Anycasts). Most transmissions in the Ad hoc domain will be some form of Broadcast, meaning every reachable entity is eligible to receive a message.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TopoCastGeoCastYesYesYesNoYesNoV2X-TransmissionTransmission TypeBroadcast\nor Unicast?Broadcast?Simulate TopoCast using\nsinglehop configuration.Simple transmission\nmodel?Simulate transmission using\nsimpleMultihopDelay.Sender directly able to reach\ndestination area?Flooding in destination areaGreedy Forwarding to reach area,\nthen flooding in destination areay.  This flowchart tells how different types of messages are handled internally.   TopoCasts The only way of directly addressing entities is a SingleHopUniCast (see figure below), the sender will try to address an entity in its transmission range.   SingleHopUniCast: The RSU is directly addressing the green vehicle.   The counterpart to that is a SingleHopBroadCast (see figure below), this form of transmission is commonly used for CAMs (Cooperative Awareness Messages) and other types of intermediate warning messages to all entities in transmission range.\n  SingleHopBroadCast: The RSU is addressing all units in transmission range.   GeoCasts As already explained, GeoCasts do not support direct addressing, so there is no form of UniCast. Instead of addressing entities, GeoCasts specify a destination area in which a message should be distributed. The SNS supports two ways to simulate GeoCasts. A simple but performant model (SimpleAdhocTransmissionModel) \u0026amp; a fairly realistic model ( SophisticatedAdhocTransmissionModel).\nThe simple model assumes a transmission to all entities in the specified area, whereas the delay will be calculated using the configured delay-type and the successful reception will be determined by the uniformly distributed lossProbability. The figure below depicts this behaviour   Simple GeoBroadCast: The RSU is sending to all entities in the destination area. All arrows (transmissions) will have a uniquely calculated delay or possible loss.   The realistic model accounts for possible transmission failures more accurately. The easiest case is that the sender itself is inside of the destination area1 and will start a Flooding Transmission within this area (see figure below).   GeoBroadCast using Flooding Transmission. Note: the area is not limited to circles.   In case the sending entity is outside of the destination area, a Forwarding Transmission has to be executed first. This is can also be described as an AnyCast, since the goal of this transmission is to reach any entity inside the destination area. We try to achieve this by building a \u0026ldquo;chain\u0026rdquo; of entities, that will forward the message to the destination are (see figure below).   Forwarding Transmission, by building a \u0026ldquo;chain\u0026rdquo; of vehicles.   The SNS however never uses Forwarding Transmissions individually, rather they are combined with a Flooding Transmission, which will simulate a way, that GeaCasts can be implemented in reality. The figure below depicts this behaviour.   Forwarding Transmission followed by a Flooding Transmission to realistically simulate GeoCasts.   Transmission Models As already mentioned in the previous abstracts, the SNS supports different transmission models for different use cases. Depending on the configuration of the SNS and the type of message send, different models will be used. The models are located in the package org.eclipse.mosaic.fed.sns.ambassador.model. This chapter aims to give a detailed inside in the workings of the models.\nSimpleAdhocTransmissionModel This is the most basic of all transmission models and will be your model of choice if you are not interested in completely accurate transmission results but care for performance. This model will approximate GeoCasts using the defined simpleMultihopDelay and simpleMultihopTransmission parameters. For TopoCasts the usual singlehopDelay will be used. This model only checks, whether a potential receiver is inside the destination area and has enabled Adhoc capabilities. If those conditions are met it will simulate the transmission by calculating an actual delay value and saving it into a transmission-result. Such a result holds information of the success of the transmission, the delay-value, the amount of hops, and the number of attempts. Though the amount of hops will always be 1 for this model.\nSophisticatedAdhocTransmissionModel This model offers are more realistic simulation of adhoc transmissions, using an implementation of a greedy-forwarding and flooding algorithm (see here (greedy forwarding) \u0026amp; here (flooding)). For TopoCasts this model behaves very similarly to the SimpleAdhocTransmissionModel, since TopoCasts are always configured with only one hop. For GeoCasts however, this model follows the flowchart above, trying to \u0026ldquo;approach\u0026rdquo; a destination area if it can\u0026rsquo;t be reached directly.\nApproaching (Greedy forwarding) Approaching can be imagined as building a \u0026ldquo;chain\u0026rdquo; of entities to reach an area. However, there is no guarantee, that even if such a chain exists, it will be found. The way that this chain is build follows the subsequent steps:\n Start from the sender and collect all reachable entities. Choose out of all reachable entities the one, that is closest to any node in the destination area. Use the chosen node and repeat the first step. Repeat until either a node inside the destination area is reached, or the TTL (time to live) is exceeded.  By always choosing the node with the shortest distance to the destination area, we omit a lot of possible solutions. Greedy Forwarding isn\u0026rsquo;t optimal, but offers a performant approach for this problem. \u0026ldquo;Face Routing\u0026rdquo;-algorithms will always find a path if one exists, however this hasn\u0026rsquo;t been implemented yet (feel free to contribute :). The figure below shows an example of those shortcomings, the message will be send using the green nodes and won\u0026rsquo;t receive the destination area, even though there is a possible \u0026ldquo;chain\u0026rdquo; using the yellow nodes.\n image/svg+xml       Layer 1 Destination Area Destination Area Destination Area Sender Sender Sender    This figure depicts a case were the Approaching Transmission wouldn\u0026rsquo;t reach the destination area, even though there is a possible way. (The dashed lines represent the communication range)   Flooding The implementation of Flooding is fairly equivalent as described on wikipedia. Each entity forwards the message to all entities in its communication range. Entities, that already received the message won\u0026rsquo;t receive it again; this is different from many real-life implementations, where messages are send to all reachable entities except the sender. However, since the simulation has total knowledge of all simulated entities, it is easier to overcome a lot of the disadvantages, that flooding faces in real world implementations.\nImplementing your own AdhocTransmissionModel If the implemented models don\u0026rsquo;t suffice your needs you can easily implement your own. Create a class extending AdhocTransmissionModel and implement the abstract methods for sending TopoCasts/GeoCasts. A possible extension could be to allow for multihop TopoCasts, building an actual topology and transmit your messages using that topology. Also, the aforementioned \u0026ldquo;Face-Routing\u0026rdquo; could be of interest. Additionally, the calculation of delays could be made more realistic.\nAccessing SNS-functionality from your applications In order for your scenario to enable the SNS follow the steps here. An overview of how to configure AdHoc-modules and usage of the API for Routing and Message-Building functions, can be found here.\n  Or is able to communicate with an entity inside the destination area. \u0026#x21a9;\u0026#xfe0e;\n   ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"848a0c0a1afd14ed7264603bb2725ecf","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_sns/","section":"docs","summary":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places.","tags":null,"title":"Simple Network Simulator (SNS)","type":"docs"},{"authors":null,"categories":null,"content":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them. That means at first the internals of one node are introduced which incorporate mainly the communication stack and a mobilitymodel. Afterwards, especially the scenario management is presented which builds up on the individual nodes and controls themajor part of the simulation. These both aspects are in similar way needed formost mobile communication simulation with OMNeT++ even in an isolated setup. However, specifically for interaction and synchronization with the other simulators in the Eclipse MOSAIC environment, a third pillar is necessary. This scheduler module is very important for the system as it implements the time management and event scheduling according to Eclipse MOSAIC specific concepts.\nNode Internals The main part of the node model consists of the communication stack. The submodules for communication are adopted from the INETMANET framework. Hence, it is primarily important to define the connections between the individual modules. However, there are also modules which needed to be implemented for the dedicated purpose of the coupling within the Eclipse MOSAIC environment. Finally, all modules are linked together to a compound module using the NED language. The following figure depicts the node architecture. It needs to be said that the concept currently supports two different kinds of nodes for Vehicles and RSUs, while V2X-based traffic lights are treated as RSUs. For the first approach these two kinds of nodes have the equal construction in terms of modules. The difference at the moment is that they can be configured with different values for parameters e.g. that Vehicles and RSUs have a different antenna height which is important for Two Ray Ground ReflectionModel. Furthermore, this concept is capable for later extensions e.g. for simulations when RSUs should be equipped with an additional network interface to build the bridge fromAd hoc Domain to the Fixed Infrastructure Domain (i.e. Internet).\n Architecture of one Node   Communication Stack The right part of the block diagram in the figure above depicts the communication stack. It is based on the module Wlan which is a compound module itself and covers the complete IEEE 802.11 network interface card with the MAC and PHY Layer and the Radio Channel. The configuration of different values for standard parameters e.g. the PHY bit rate or size of the contention window of the MAC can be exchanged within the omnetpp.ini-file (which introduces the parameters of the according module ned-files). Please note that the configuration allows different values for each kind of nodes and hence it is possible to configure another propagation model or carrier frequency for Vehicles compared to RSUs. Even if the possibility for such a configuration exists, it should be avoided and common parameters should consistently be configured twice with the same value.\nThe next module in the communication stack is the NetworkLayer. Once again it is a compound module and already a collection of most important protocols. The following protocols from version IPv4 are supported in this layer.\n IP (Internet Protocol) of course as primary protocol of the Network Layer ICMP (Internet ControlMessage Protocol) for information and error messages IGMP (Internet GroupManagement Protocol) for management ofmulticast functionality ARP (Address Resolution Protocol) for mapping of IP Addresses toMAC Addresses  Furthermore, the standalone modules InterfaceTable and RoutingTable are related to the Network Layer. The first one is needed to support multiple Network Interface Cards e.g. for wireless and fixed LAN in one node. It is already included for possible further extensions as previously mentioned, but up to now it has only one entry which is the Network Interface Card for Wlan. The second one is a table for simple Routing. This module is needed for correct instantiation of a node via the FlatNetworkGenerator as explained later in this section.\nThe TransportLayer of the communication stack is made up of TCP for reliable connections and UDP.\nThe modules VSimRTIReliableApp and VSimRTIUnreliableApp of Application Layer are the entry points for application messages for the communication stack for the following reasons. The communication oriented models of INETMANET have their focus more on the framing for communication and less on the real content. That means that content is often modeled with dummy payloads where only the length is of interest. In contrast, V2X applications which are simulated in the Eclipse MOSAIC Application Simulator. Rely on the correct transmission of contents. Hence, the modules VSimRTIReliableApp and VSimRTIUnreliableApp are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager to send new messages to lower layers and forward messages themselves back to the ScenarioManager upon reception. The main tasks are generally acting as an application within the scope of OMNeT++ and encapsulating themessage contents to packets to prepare them for sending. While functionality of an UDP application is fully supported in VSimRTIUnreliableApp, the complete TCP application functionality is restricted in VSimRTIReliableApp. Note that up to now it is not entirely clarified if and how TCP should be supported in V2X use cases for safety and traffic efficiency with their broadcast characteristics, think of different roles of server and client in TCP. When the Eclipse MOSAIC ScenarioManager properties are detailed later in this section, it is also explained how the connection between the Eclipse MOSAIC ScenarioManager and the Eclipse MOSAIC Apps is realized. This connection needs to be established dynamically and is therefore not assigned with a connecting arrow like the fixed connections between the modules of communication stack.\nMobility Model The second important component of the node is the mobility module VSimRTIMobility, which extends the BasicMobility. Unlike other mobility models as RandomWaypoint it does not generate node movements itself and has a straight static character. Node position updates are always triggered by the Eclipse MOSAIC ScenarioManager. Hence,mobility is completely controlled by Eclipse MOSAIC and in turn by the coupled traffic simulator. After successful position update the VSimRTIMobility module informs other modules about this event via the NotificationBoard.\nAdditional Functionality At last, the module NotificationBoard is defined for each node. This module was already mentioned in the model overview of INETMANET. It enables a very efficient way for dynamic communication between the individual modules. There is no direct and static connection needed between the modules, because modules can subscribe dynamically for notification about dedicated events.\nSimulation Setup The setup of the complete simulation is illustrated in the following Figure 3 From the view of OMNeT++, the simulation is a network which has a dynamic topology and is referenced as the simulated network in the omnetpp.ini-file for configuration. The ini-file gives access to all parameters which are offered to be configured by the included simple modules. The parameters are referred to by their hierarchical names with the simulated network as root module. As it is possible to assign already default values for parameters in the modules NED file, not every parameter needs to be configured in the ini-file. The simulation consists of basically three parts.\n Architecture of the whole Simulation Scenario   Simulated Nodes Obviously the major part of the simulation is dedicated to the nodes. They are compound modules either from type Vehicle or RSU and have the properties as described in the previous section. The number of nodes in the simulation can vary over simulation time and is dynamically managed by the Eclipse MOSAIC ScenarioManager.\nCommon Communication Dependent Modules The second part covers the modules which actually count to the communication stack, but are common for all simulated nodes. These modules are the ChannelControl and the FlatNetworkGenerator. The ChannelControl keeps track of all nodes, their positions and Radio Channels. The main task is to determine which nodes are in communication range and which other nodes are within interference distance. The FlatNetworkGenerator is part of the Network Layer. It is used to instantiate a network with a flat topology and assigns the IP addresses to all nodes. Additionally it runs Dijstra’s shortest path algorithm to discover the routes and adds them into the routing tables. It is assumed that the routing tables are of kind of the RoutingTable from the specific NetworkLayer package. This is the reason why every node is equipped with the RoutingTable submodule. This approach works out for the current simulation purposes, but when any Ad hoc Routing protocols will be introduced to the simulation model the FlatNetworkGenerator and the RoutingTable modules are likely be obsolete and would have to be replaced.\nEclipse MOSAIC ScenarioManager The ScenarioManager is an experimental feature that implements a central control instance in simulations with INETMANET framework. It is loaded with a script in XML notation and is used to setup and control simulation experiments. Actually the original ScenarioManager and the new Eclipse MOSAIC ScenarioManager have nearly nothing in common but the fact that both are used as a central management instance to enhance simple configurations to simulate more sophisticated scenarios. The general tasks of the Eclipse MOSAIC ScenarioManager contain the simulation start up with instantiation of common modules as ChannelControl and initialization of the Eclipse MOSAIC EventScheduler (detailed later) and the controlled simulation shut down. But most important beside these are the management of node mobility and management of V2X communication which are triggered by Eclipse MOSAIC during simulation.\nThe Mobility Management is responsible for administration of simulated nodes and their mobility. This includes introducing nodes to simulation, updating node positions and removing nodes from simulation.\nThe node introduction method is triggered by Eclipse MOSAIC with the commands ADD_NODES or ADD_RSU_NODES respectively. It adds the node according to its node id to the managed modules and creates the complete compound module. Important for later message handling is the setup of connections to the dedicated Eclipse MOSAIC App, which is done via so called gates. At the moment, the Eclipse MOSAIC Apps are statically initialized, but the concept is suitable to be extended later when other transport protocols and in turn applications have to be simulated.\nUpon MOVE_NODE command, which contains the affected node id and new position to be updated, the node is moved via the VSimRTIMobility module.\nAt last the REMOVE_NODE command indicates that a node leaves the simulation. On this event, the according node is deleted and unregistered from managed modules.\nThe CommunicationManagement controls the sending and receiving of V2X messages.\nThe SEND_V2X_MESSAGE command initiates the sending process. It contains the sender node id and the transport protocol. Thus the Eclipse MOSAIC ScenarioManager can select the according Eclipse MOSAIC app at the according node.\nWhen a message from another node successfully arrives at the application layer the Eclipse MOSAIC ScenarioManager is notified by the according node. Then, it sets up a RECV_V2X_MESSAGE which is sent back to Eclipse MOSAIC via the Eclipse MOSAIC EventScheduler. This intermediate step is introduced, since the Eclipse MOSAIC EventScheduler is the only instance, which is connected to Eclipse MOSAIC and which knows when it is safe to receive and send interactions.\nSimulator Coupling OMNeT++ is connected to Eclipse MOSAIC according to the concept of high-level-architecture (HLA). That means that the OMNeT++ simulation program itself is encapsulated in the OMNeT++ federate. To enable the coupling according to Eclipse MOSAIC concept, two components needed to be developed. First, the OMNeT++ federate is extended with the customized Eclipse MOSAIC EventScheduler, which can receive and send interactions forMobility and CommunicationManagement. The second component is the OMNeT++ Ambassador that can handle on the one hand the OMNeT++ specific connection and on the other hand the well-defined interface to Eclipse MOSAIC. The emphasis of both components lies in the synchronized exchange of interactions i.e. a time management mechanism must be jointly realized by them. For this purpose the conservative synchronization mechanism is implemented. The following figure gives an overview of the included compenents.\n Overview of Simulator Coupling   Eclipse MOSAIC EventScheduler The Eclipse MOSAIC EventScheduler extends the simple standard scheduler of OMNeT++ to be able to implement the time management for the Conservative Synchronization with Eclipse MOSAIC. It is the only module in OMNeT++ which has access to the event queue or Future Event Set (FES). Since the OMNeT++ simulation is an event driven simulation the scheduler has to fulfill two tasks. The first task is the actual scheduling part which is always invoked by the simulation kernel to schedule the next event. It allows all events from the FES to be processed up to the granted logical time $T$. If there are only events with a later time $T'$ than $T$ left in the FES, it sends the Next Event Request (NER) to the OMNeT++ Ambassador at Eclipse MOSAIC side and blocks the OMNeT++ simulation. Then the second task comes into operation. If necessary, it coordinates the Receive Interaction procedure and merges the external events from Eclipse MOSAIC and hence from other federates to the internal FES. Events with the same time stamp are ordered to the FES according to first come first serve mechanism. Note that the handling of these simultaneous events is generally important to ensure repeatable execution of simulations. The decision about ordering is in control of the federate itself, since the RTI does not sufficiently have the information to do this. After the Receive Interaction step, the RTI completes the time management cycle with the Time Advance Grant for $T'$. At this point the scheduler can set its logical time to $T = T'$ and unblock the further processing.\nAdditionally the Eclipse MOSAIC EventScheduler provides the service for other modules to send interactions back to the OMNeT++ Ambassador, since it is also the one module which is connected to Eclipse MOSAIC. Currently, this is used by the Eclipse MOSAIC ScenarioManager to report the RECEIVE_V2X_MESSAGES.\nEclipse MOSAIC OMNeT++ Federate Development This section provides a description how to set up the OMNeT++ IDE for the Eclipse MOSAIC OMNeT++ Federate Development.\nAt this point it is awaited, that the Eclipse MOSAIC OMNeT++ Federate is successfully installed.\nPrepare OMNeT++ IDE   Create an empty directory somewhere inside your home directory. We will call it \u0026lt;omnetpp_workspace\u0026gt; from here on. This directory will be used as a workspace in your OMNeT++ IDE.\n  Open your OMNeT++ IDE by executing omnetpp in your terminal.\n  Select \u0026lt;omnetpp_workspace\u0026gt; as workspace and continue by clicking Launch.\n  Close the \u0026ldquo;Welcome\u0026rdquo; screen.\n  Since your workspace is empty, the OMNeT++ IDE will ask you if you want to install the INET framework and OMNeT++ programming examples.\n OMNeT++ IDE: Install INET   Decide by yourself if you want to do that:\n By clicking OK the INET framework is going to be installed into an inet folder in your \u0026lt;omnetpp_workspace\u0026gt; If you already have INET installed somewhere you can skip the installation and import your existing INET project:  Cancel the dialog. Choose File \u0026gt; Open Projects from File System... In the new window choose the directory of your existing INET installation as Import Source and click Finish      The project inet should now be visible in the Project Explorer of your OMNeT++ IDE.\n  Right-click on free space in the Project Explorer and choose New \u0026gt; OMNeT++ Project...\n OMNeT++ IDE: Create new OMNeT++ Project     In the new window:\n Name the new project federate Uncheck the box before Use default location, click Browse and select:\n\u0026lt;mosaic\u0026gt;/bin/fed/omnetpp/omnetpp_federate_src/src\n OMNeT++ IDE: Create new OMNeT++ Project    Click Next    On the following Initial Contents page select Empty Project and continue by clicking Finish\nYou should now find two projects in the Project Explorer of your OMNeT++ IDE: inet and federate\n  Right-click on the federate project and choose Properties\n Go to Project references and check the box before inet\n Choose project references       That\u0026rsquo;s it! None of the files should now be marked with an error symbol.\n Configure Rebuild Configuration Since the Eclipse MOSAIC OMNeT++ Federate is not a classic OMNeT++ project, it cannot be build regulary with the OMNeT++ IDE by just clicking on the Build button. However, to make the build process easy and intuitive we provide a simple build script and the following desciption how to configure the OMNeT++ IDE to enable building on a single click:\n In the OMNeT++ IDE select Run \u0026gt; External Tools \u0026gt; External Tools Configuration... Double-click in the left column on Program to create a new configuration. Call it rebuild federate In the Main tab:  Under Location choose Browse Workspace... and select federate/rebuild_federate.sh Still in the Main tab under Working Directory choose Browse Workspace... and select federate  OMNeT++ IDE Build Configuration      In the Build tab uncheck the box before Build before launch\n OMNeT++ IDE Build Configuration    Now you can Apply your changes and click on Run. Since you have built the project at least once, you can rebuild it again by clicking here:\n Run rebuild     The following video shows the above described steps:\n  Configure Debug Configuration To debug the Eclipse MOSAIC OMNeT++ Federate during simulation you need to create a Debug Configuration. The following instruction will tell you how to that:\n In your OMNeT++ IDE choose Run \u0026gt; Debug Configurations... In the new window double-click on OMNeT++ Simulation in the left column and name the new created debug configuration federate. In the Executable row check other and type /federate/federate In the Working dir row type /federate In the Ini file(s) row type debug.ini omnetpp.ini At the end of the page click on the More \u0026gt;\u0026gt; link. And make sure all fields in the Advanced area are empty. For Projects to build select Do not build automatically before launch Now Apply your changes and try your configuration by clicking Debug  The following images shows the final debug configuration:\n Final debug configuration    The OMNeT++ Ambassador The OMNeT++ Ambassador is the intermediate component between OMNeT++ and Eclipse MOSAIC. As it implements the interface of an abstract federate ambassador in Eclipse MOSAIC. In the initialization phase the Ambassador applies for the TimeManagement policies time constrained and time regulated at the RTI. Remind that time constrained means that the time advances of the OMNeT++ Federate are dependent on the other simulators in the federation and time regulating means that the OMNeT++ Federate itself can prevent other federates from advancing their time.\nThe OMNeT++ simulation starts initially with an empty event queue and hence it needs to receive an interaction to fill the event queue with the first events to be processed. That means that the typical time management cycle in the Ambassador starts at step two with the Receive Interaction procedure. Note that messages within Eclipse MOSAIC usually effect more than one interaction e.g. a VehicleUpdates interaction contains information for added nodes and moved nodes. These are exchanged with OMNeT++ using a simple byte protocol. After this procedure the third step of time management cycle is processed with the initial Time Advance Grant. This is the point when the OMNeT++ simulation is able to start and the initialization phase is finished. Hence the time management cycle can be executed from first step which is waiting for a new NER until no federate requests further events and the simulation is finished.\nThe Time Representation One important issue for the simulation coupling is the common representation of the logical time at the RTI and the different federates in the federation. Normally, the time is a federate-defined abstract data type. The requirements for such a time are the ability for comparison and addition and most important the possibility of conversion without the loss of precision. Otherwise, deadlocks in the synchronization procedure are guaranteed. On the one hand Eclipse MOSAIC treats times as a 64-bit integer with a resolution of nanoseconds. On the other hand the OMNeT++ simulation time is represented by the type simtime_t which is a typedef to double. It is generally known that conversions from floating point to fixed point are vulnerable to rounding errors. To circumvent this issue the underlying raw 64-bit integer of the simtime_t representation is also made accessible, which works perfect if the scale exponent for time precision was previously initialized to $-9$ (i.e. nanoseconds).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e17d5285bdeec55226cf2b05562bd701","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/omnetpp_details/","section":"docs","summary":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them.","tags":null,"title":"OMNeT++ Federate Implementation","type":"docs"},{"authors":null,"categories":null,"content":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC. The implementations can be found in the package org.eclipse.mosaic.lib.model.delay. Note prior to the release of MOSAIC delay values were configured using Milliseconds as unit, this has been refactored to Nanoseconds. Alternatively you can specify delay values using a String with a unit (eg \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot;).\nDelay Models The Delay class represents an implementation for a specific delay model. The following model implementation exist:\nConstantDelay The ConstantDelay-class is arguably the simplest implementation of Delay. This model is configured with a single field delay, which the generateDelay(...)-method will simply return.\nWhile this delay doesn\u0026rsquo;t provide realistic behaviour in most cases it is optimal for testing purposes as it can easily be retraced.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot; }  SimpleRandomDelay The SimpleRandomDelay model allows for the generated delays to be randomly distributed between a minDelay and a maxDelay. Additionally, the steps field is used to limit the amount of different delays, by equally separating the interval into the amount of steps specified. This delay provides a simple and performant way to randomize and thereby more realistically reflect real-world delays.\nFor example, with the configuration below, one of the following delays is randomly chosen: [0.4, 0.9, 1.4, 1.9, 2.4] ms.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;0.4 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.4 ms\u0026quot; }  Gamma Delays MOSAIC provides two types of delays using a Gamma-distribution to sample values, namely GammaRandomDelay and GammaSpeedDelay. The parameters for the used Gamma-distribution have been determined experimentally. The GammaSpeedDelay extends the GammaRandomDelay by a speed penalty. Both delay-types aim to provide more realistic solution, than the previous models, but come with the downside of complexity.\nConfigurations:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaSpeedDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"991360c7135b1da7033c0bd4be1d7e9f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/delay_models/","section":"docs","summary":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC.","tags":null,"title":"Delay Models","type":"docs"},{"authors":null,"categories":null,"content":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable. Users interested in a different kind of simulation of cellular communication may use other simulators and develop ambassadors connecting them to Eclipse MOSAIC.\nThe Cellular Simulator in the current state consists of three main modules:\n UplinkModule GeocasterModule DownlinkModule  The Geocaster module simulates a mandatory component for ITS communication. It is inspired by the several architectures from research projects as simTD or CONVERGE to enable ITS use cases over cellular networks. It mainly takes over the task of an addressing and routing component with geographic knowledge to support geo-addressing. However, it also supports regular topological addressing. The Uplink and DownlinkModule are responsible for the transmission simulation. They account for the aspects of transmission delays, packet losses and available data rates. In this context,Uplink and Downlink always refer to the direction towards respectively from the Geocaster. For instance, a transmission from an Internet-based server towards a vehicle would include an Uplink between the server and the Geocaster and a Downlink between the Geocaster and the vehicle. While the Uplink direction only allows point-to-point communication (Unicast), the Downlink supports point-to-point (Unicast) as well as point-to-multipoint (Multicast).\nCellAmbassador folder structure The Eclipse MOSAIC Cell simulator can be configured via three distinct configuration files, which can be found within the scenarios' folder structure:\n└─ \u0026lt;scenario_name\u0026gt; └─ cell ├─ cell_config.json ................ Cell ambassador configuration file ├─ network.json ..................... Network configuration file └─ regions.json ..................... Regions configuration file  The network and regions configuration files are referenced in the cellular ambassador configuration file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration We provide a cellular configuration file in the example scenarios of Tiergarten and Barnim. Please note that in the default configuration of this scenario the Cellular Simulator is deactivated. To activate the cellular simulator just enable the cell federate in the scenario_config.json:\n\u0026quot;federates\u0026quot;: { ... \u0026quot;cell\u0026quot;: true, ... }  The central configuration for the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/cell_config.json could look like this:\n{ \u0026quot;debugGeocasting\u0026quot;: false, \u0026quot;visualizeRegions\u0026quot;: true, \u0026quot;networkConfigurationFile\u0026quot;: \u0026quot;network.json \u0026quot;, \u0026quot;regionConfigurationFile\u0026quot;: \u0026quot;regions.json \u0026quot; }  The visualizeRegions-option from the cell_config.json is used to write a KML-file that visualizes the used cell regions. Google Earth can be used to display it.\nThe configuration for the global network in the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/network.json could look like this:\n{ \u0026quot;globalNetwork\u0026quot;: { \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;50 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } }  Server configuration MOSAIC supports a type of simulation units, called servers. Traffic Management Centers are a specialised type of server. What differentiates servers from other units is, that they are treated as having no geographical location and instead are located \u0026ldquo;inside the internet.\u0026rdquo;. This concept omits prior shortcoming, where one would have to configure RSU\u0026rsquo;s as servers.\nServers are also configured in the network.json as follows:\n{ \u0026quot;globalNetwork\u0026quot;: { [...] }, \u0026quot;servers\u0026quot;: { { \u0026quot;id\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.5, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } } }, { [...] } } }  Servers get their configuration for the delay and retransmission models from the network.json and the configuration for the capacity-module has to be made from within an application, by activating the CellModule and properly setting the bit rates. This could look as follows:\ngetOs().getCellModule().enable( new CellModuleConfiguration() .maxUlBitrate(10000) .maxDlBitrate(10000) );  For the CellAmbassador to be able to recognize servers, the group-field in the mapping must match the id-field in the network.json, this also allows for multiple servers to utilize the same configuration. A mapping_config.json using the configuration from above could look as follows:\n{ ..., \u0026quot;tmcs\u0026quot;: [ { \u0026quot;group\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;TestApplication\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ], \u0026quot;servers\u0026quot;: [ { \u0026quot;group\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;TestApplication\u0026quot; ] } ], ... }   Note that all bandwidths are given in bit per second and all delays in nanoseconds, unless explicitly defined differently. Also, every json configuration goes through a minifier, so comments are allowed in the configuration files. An example would be the comment before the globalNetwork option.\n Delay regions Additionally, the user has the option to define regions with individual delays. This can be used to simulate areas with bad reception, crowded areas etc.\nThe regions should be stored in \u0026lt;scenarioName\u0026gt;/cell/regions.json. An example definition for a single region called Ernst-Reuter-Platz could look like this:\n{ \u0026quot;regions\u0026quot;:[ { \u0026quot;id\u0026quot;: \u0026quot;Ernst-Reuter-Platz\u0026quot;, \u0026quot;area\u0026quot;: { \u0026quot;nw\u0026quot;: { \u0026quot;lon\u0026quot;:13.3249, \u0026quot;lat\u0026quot;:52.5131 }, \u0026quot;se\u0026quot;: { \u0026quot;lon\u0026quot;:13.3273, \u0026quot;lat\u0026quot;:52.5125 } }, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 4, \u0026quot;minDelay\u0026quot;: \u0026quot;50 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;120 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;220 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } ] }  Note that nw represents the upper-left (north-west) point of the rectangle and se the lower-right (southeast). For further information about the possible options, please refer to the Eclipse MOSAIC API documentation.\nThe actual configuration of the uplink and the downlink modules for each region exhibits the identical format as configuration of the globalNetwork in the network.json.\nWhen no regions are found, or if a node (a vehicle) is not within a specified region, the globalNetwork defined in the network.json-File will be used as the delay model.\nTransmission simulation One of the most important feature of the cellular simulator is an estimation of the delay experienced through the transport over the cellular network.\nThe cellular simulator offers various modes to estimate the delay of the transmissions. The type of estimation is specified with by delayType for the uplink and downlink for each region. You may also refer to the Delay-Chapter.\n delay.type = ’ConstantDelay’: The message is transmitted with the latency being exactly equal to delay. delay.type = ’SimpleRandomDelay’: The latency can assume different (randomly generated and uniformly distributed) values between minDelay and maxDelay. The number of different values is determined by steps. delay.type = ’GammaRandomDelay’: A gamma distribution is used to estimate the latency, with $ \\alpha $ = 2 and $ \\beta $= 2. The minimal delay minDelay is added to the result. The curve is fitted so that the maximum likelihood for the delay is exactly equal to expDelay. delay.type = ’GammaSpeedDelay’: This mode closely resembles the GammaRandomDelay. Additionally, a penalty for the velocity with which the node is moving is calculated. This penalty is then added to the original delay. The GammaRandomDelay and the GammaSpeedDelay are derived from a measurement campaign during a research project at the DCAITI.  The two different modes for the downlink are unicast and multicast which are configured separately. Multicast aims to simulate the features of Multimedia Broadcast Multicast Service (MBMS). The main difference in terms of the transmission for unicast and multicast is the handling of undeliverable messages. For unicast, the options lossProbability and maxRetries are used. Pr is short for packet retransmit and denotes the probability for a failed delivery and a subsequent retransmit. The maximum number of retries for the retransmission is configured through the maxRetries-option. The probability of a successful retransmit is recalculated on every try.\nIn case of multicast the lossProbability is used as packet loss rate. The value is factored into the delay calculation. In contrast to the unicast, just one transmission attempt is made for multicast.\nOperation Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled by the Geocaster.\nThe Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the Application Simulator.\nIt supports the following addressing and casting schemes.\n CellTopocast is the normal unicast, where the Geocaster simply resolves the single receiver via theIPResolver. Hence, the CellTopocast directly routes the message further. Currently, Topocast doesn\u0026rsquo;t allow broadcast or anycast addresses, but any transmission protocols (tcp, udp).\n CellGeoUnicast addresses every node in the destination area individually. In this way it takes a geographic address and results in a loop to generate multiple unicasts.\n CellGeoBroadcast, which is basically MBMS, uses one broadcast to all nodes in the destined regions.The MBMS uses the different transmission mode of multicast in the downlink. CellGeoUnicast as well as CellGeoBroadcast require broadcast, but don’t allow tcp (as ack for broadcasts is denied).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"9a45880dc681c4e5ebf695dc5a761ad6","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_cell/","section":"docs","summary":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable.","tags":null,"title":"Network Simulator Cell","type":"docs"},{"authors":null,"categories":null,"content":" ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"1229190b1a57dc55c1b108bbe8a27a26","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/java_docs/","section":"docs","summary":" ","tags":null,"title":"Java Docs","type":"docs"},{"authors":null,"categories":null,"content":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration The root node of the configuration is a list of environment events. Each event require the type of the event, a rectangle area, a strength and the time window. The following example shows the configuration of an \u0026ldquo;Obstacle\u0026rdquo; event which is valid in the designated area (Rectangle) during the simulation time between 0 to 2000 seconds:\n{ \u0026quot;events\u0026quot; : [ { \u0026quot;type\u0026quot;: { \u0026quot;sensorType\u0026quot;: \u0026quot;OBSTACLE\u0026quot;, \u0026quot;value\u0026quot;: 1 }, \u0026quot;location\u0026quot;: { \u0026quot;area\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;Rectangle\u0026quot;, \u0026quot;a\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53654, \u0026quot;longitude\u0026quot;: 13.42116 }, \u0026quot;b\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53435, \u0026quot;longitude\u0026quot;: 13.42366 } } }, \u0026quot;time\u0026quot;: { \u0026quot;start\u0026quot;: \u0026quot;0 s\u0026quot;, \u0026quot;end\u0026quot;: \u0026quot;2000 s\u0026quot; } } ] }  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e2e8c6da6205aac6b2834ce5bed20d3d","permalink":"https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/environment_simulator/","section":"docs","summary":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed.","tags":null,"title":"Environment Simulator","type":"docs"},{"authors":null,"categories":null,"content":"The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs. This also holds true for the environment model and the vehicle model. However, simple models for vehicle, environment and the battery are provided and will be briefly explained in the following sections.\n  The Battery Simulator is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Installation This simulator does not need to be installed. It is delivered as part of the MOSAIC Extended installation package.\nConfiguration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/battery/battery_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ battery └─ battery_config.json ................. Battery ambassador configuration file  Vehicle model The vehicle model holds the general properties of a vehicle. Examples would be the weight of the vehicle and the voltage at which the electric engine operates. However, as with the other models, the provided class for the vehicle model direct affects what can be configured here. If other properties are needed for the vehicle, this is the right place to put them. To implement an own vehicle, the class AVehicleModel has to be extended.\nBattery model The battery model defines the battery used by the vehicle itself. Useful properties could be the number of cells and their capacity. As with the vehicle, this class can be freely defined and use configuration values placed in the batteryModelConfig-area. To implement an own battery model, the class ABatteryModel needs to be extended.\nEnvironment model Normally environmental factors like rolling resistance of the given underground or air drag go into this section. At the current state, just a minimal environment model is bundled with the battery ambassador, mainly to show what is possible. To implement a custom environmentmodel, AEnvironmentModel has to be extended.\nSample configuration { \u0026quot;vehicleModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.vehicle.ElectricSmart\u0026quot;, \u0026quot;vehicleModelConfig\u0026quot;: { \u0026quot;Mass\u0026quot;: 1060, \u0026quot;ReferenceArea\u0026quot;: 1.95, \u0026quot;DragCoefficient\u0026quot;: 0.375, \u0026quot;TankToWheelEfficiency\u0026quot;: 0.7, \u0026quot;EletricMotorOperatingVoltage\u0026quot;: 350, \u0026quot;ConsumerOperatingVoltage\u0026quot;: 12 }, \u0026quot;batteryModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.battery.VerySimpleBatteryModel\u0026quot;, \u0026quot;batteryModelConfig\u0026quot;: { \u0026quot;NumberOfCells\u0026quot;: 93, \u0026quot;CellVoltage\u0026quot;: 4.3, \u0026quot;CellCapacityInAh\u0026quot;: 50, \u0026quot;eff_Summer\u0026quot;: 0.8448, \u0026quot;RechargingType\u0026quot;: 2, \u0026quot;MinSOC\u0026quot;: 0.30, \u0026quot;MaxSOC\u0026quot;: 0.70 }, \u0026quot;environmentModelClass\u0026quot;: \u0026quot;com.dcaiti.vsimrti.fed.battery.sim.models.environment.DefaultEnvironment\u0026quot;, \u0026quot;environmentModelConfig\u0026quot;: { \u0026quot;Gravity\u0026quot;: 9.81, \u0026quot;FluidDensity\u0026quot;: 1.293, \u0026quot;RollingResistanceCoefficient\u0026quot;: 0.01 }, \u0026quot;consumers\u0026quot;: [ { \u0026quot;Radio\u0026quot;: 10 }, { \u0026quot;HeadLight\u0026quot;: 100 } ] }  This listing shows how the vehicle, environment and battery model classes for the bundled models are configured. Additionally, an arbitrary number of consumers can be configured that draw additional power from the battery. In this case, headlights and a radio are pre-defined.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"564b92ca6ad0f78206e0f1291d3a1002","permalink":"https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/battery_simulator/","section":"docs","summary":"The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given needs.","tags":null,"title":"MOSAIC Battery Simulator","type":"docs"},{"authors":null,"categories":null,"content":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.\nRelease Date 2020-10-19\nChangelog [M+] Moved main code to new public repository github-com/eclipse-mosaic [M+] Changed license to EPL 2.0 [M+] Revised and refactored all public code. [M+] Significantly improved and extended the documentation, including new tutorials [M-] Replaced dependencies which are incompatible with EPL. [M+] Major overhaul of configuration files, e.g. * vsimrti/vsimrti_config.xml -\u0026gt; scenario_config.json * etc/defaults.xml -\u0026gt; etc/runtime.json [A+] Mapping configuration has been extended with new features (e.g. typeDistributions, parameter variations). [A+] New API for traffic light applications [C+] SNS supports most important Geo-Routing features for ad-hoc multihop communication [T+] Now supports SUMO 1.7.0  Changelog (Features and Bugfixes) Legend:\n[M] Eclipse MOSAIC\n[A] Application simulator\n[B] Battery simulator\n[C] Communication simulator\n[E] Environment simulator\n[N] Navigation component\n[S] Scenario-convert\n[T] Traffic simulator\n[+/-] new Feature/Bugfix\n","date":1603065600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1603065600,"objectID":"cc4c07b071bbda44d7b128dbd1954e1e","permalink":"https://www.eclipse.org/mosaic/post/release-20-0/","publishdate":"2020-10-19T00:00:00Z","relpermalink":"/mosaic/post/release-20-0/","section":"post","summary":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.","tags":null,"title":"First release of Eclipse MOSAIC","type":"post"},{"authors":[],"categories":[],"content":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.\nWhether dynamic lane assignment or traffic light phase assistant, new mobility services are designed to increase safety, efficiency, comfort, and facilitate environmentally friendly transport. The Eclipse MOSAIC simulation environment allows to explore how this can be achieved, before the services are tested in field trials on the road. Eclipse MOSAIC can also be used for testing driver assistance systems and to optimize the entire traffic.\nFlexible coupling of simulators Eclipse MOSAIC integrates, depending on the simulation scenario, different aspects like individual building blocks into a holistic system, e.g., traffic congestion, battery charging of electric cars, or communication between other road users and a central cloud. The level of detail for individual aspects is variable: from a rough mobility scenario for an entire city to detailed individual driving maneuvers.\nThe open-source version of Eclipse MOSAIC already includes several simulators, e.g., Eclipse SUMO for traffic and OMNeT++ and ns-3 for communication. Further simulators can be coupled, e.g., Fraunhofer FOKUS offers the simulator PHABMACS for the realistic modeling of autonomous vehicles.\nIn addition to the simulator coupling, Eclipse MOSAIC manages the following tasks:\n Federation: Individual simulators are interchangeable within a scenario. Interaction: Information from one simulator is also taken into account by others. Time: All simulators run synchronously.  Additionally, Eclipse MOSAIC offers several tools for evaluation and visualization of the results, which are also included in the open-source package.\nIn the recently completed EU project INFRAMIX, Eclipse MOSAIC was used to test scenarios for the future road that allow mixed traffic between conventional and automated vehicles.\nFraunhofer FOKUS has been a strategic development member of the Eclipse Foundation since May of this year and works in close cooperation with the partners of the working groups OpenMobility and openADx (Open Source for Autonomous Driving).\nFurther information about Eclipse MOSAIC: https://www.eclipse.org/mosaic https://github.com/eclipse/mosaic\nFurther information about INFRAMIX: https://www.fokus.fraunhofer.de/de/fokus/news/inframix-projekt_2020_08\nFurther information about EclipseCon: https://www.eclipsecon.org/2020\n","date":1602806400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1602806400,"objectID":"945968ed12d4d56ceff36a8ffcc80747","permalink":"https://www.eclipse.org/mosaic/post/eclipse-mosaic/","publishdate":"2020-10-16T00:00:00Z","relpermalink":"/mosaic/post/eclipse-mosaic/","section":"post","summary":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.","tags":[],"title":"Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC","type":"post"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"8576ec274c98b3831668a172fa632d80","permalink":"https://www.eclipse.org/mosaic/about/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/about/","section":"","summary":"Hello!","tags":null,"title":"About","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7cb4b52984a9d47af29166100a552aba","permalink":"https://www.eclipse.org/mosaic/get_in_contact/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/get_in_contact/","section":"","summary":"Eclipse MOSAIC.","tags":null,"title":"Contact","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"614f103684a170a5d2fd1d1f92949420","permalink":"https://www.eclipse.org/mosaic/contribution/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/contribution/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Contribution to Eclipse MOSAIC","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"bf47fe1505bc48f51aef798d7a4d34a6","permalink":"https://www.eclipse.org/mosaic/download/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/download/","section":"","summary":"List of links to download the latest releases and other components.","tags":null,"title":"Download","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7bb3ac9163e73505cd320646a459de77","permalink":"https://www.eclipse.org/mosaic/community/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/community/","section":"","summary":"Eclipse MOSAIC Community","tags":null,"title":"Eclipse MOSAIC Community","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"9eb50f9088083bebcb7e4cf99e22b9ed","permalink":"https://www.eclipse.org/mosaic/news/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/news/","section":"","summary":"News","tags":null,"title":"News","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"23d1e75f872528fc12f5f2b142375ff7","permalink":"https://www.eclipse.org/mosaic/publications/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/publications/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Publications","type":"widget_page"}]
\ No newline at end of file
+[{"authors":["fokus"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":-62135596800,"objectID":"cbf22d51976246e8f80b5f6a1df3bf83","permalink":"https://www.eclipse.org/mosaic/author/fraunhofer-fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/author/fraunhofer-fokus/","section":"authors","summary":"","tags":null,"title":"Fraunhofer FOKUS","type":"authors"},{"authors":null,"categories":null,"content":"Applications in Eclipse MOSAIC are simulated by the Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;). To actively gain execution at some later point in time, an application can also schedule a generic event itself. When the application is executing, it has access to a set of methods, allowing to trigger actions like sensing messages or controlling the vehicle, influencing the current simulation (the application \u0026ldquo;acts\u0026rdquo;).\nDeveloping Applications Developing custom applications in Eclipse MOSAIC is rather easy. The best way to learn it is by looking at the source code of actual applications. For this purpose, we provide the source code of all tutorial applications and further examples.\nFor an easy understanding of the application API, the following questions and their answers should help:\n  What is required to get my own application to run in Eclipse MOSAIC? In Eclipse MOSAIC it is very easy to build your own application. First, it needs to inherit from the AbstractApplication class (see following section). Secondly, the application must be mapped to a vehicle (or RSU, or traffic light, \u0026hellip;) via the mapping configuration (see section mapping). Finally, the application must be compiled as a Jar-File and placed into the application directory of your scenario.\n  How can I access vehicle functions from within the application, such as sending V2X messages? Every applications has access to the OperatingSystem of the underlying unit which allows to change its state or to initiate actions, such as sending messages to other vehicles.\n  How can I react to events during the simulation, such as receiving V2X messages? For each application you decide, which events the application should listen to. For example, if your application needs to react upon incoming V2X messages, it simply implements the CommunicationApplication interface. In the following section you can find all available interfaces applications can implement.\n  Create a ’Hello world’ application based on Maven For this example you need to install Maven which is used to resolve required MOSAIC dependencies and to compile your application Java code into a Jar file. Follow the steps to build an example application:\n Create a new folder HelloWorldApp: └─ HelloWorldApp ├─ src | └─ main | └─ java | └─ HelloWorldApp.java └─ pom.xml   Place a pom.xml with the following content: \u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;project xmlns=\u0026quot;http://maven.apache.org/POM/4.0.0\u0026quot; xmlns:xsi=\u0026quot;http://www.w3.org/2001/XMLSchema-instance\u0026quot; xsi:schemaLocation=\u0026quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\u0026quot;\u0026gt; \u0026lt;modelVersion\u0026gt;4.0.0\u0026lt;/modelVersion\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic.app\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;HelloWorldApp\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;0.0.1\u0026lt;/version\u0026gt; \u0026lt;packaging\u0026gt;jar\u0026lt;/packaging\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.eclipse.mosaic\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;mosaic-application\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.0-SNAPSHOT\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; \u0026lt;/project\u0026gt;   Create a new application in src/main/java/HelloWorldApp.java: import org.eclipse.mosaic.fed.application.app.AbstractApplication; import org.eclipse.mosaic.fed.application.app.api.VehicleApplication; import org.eclipse.mosaic.fed.application.app.api.os.VehicleOperatingSystem; import org.eclipse.mosaic.lib.objects.vehicle.VehicleData; import org.eclipse.mosaic.lib.util.scheduling.Event; public class HelloWorldApp extends AbstractApplication\u0026lt;VehicleOperatingSystem\u0026gt; implements VehicleApplication { @Override public void onStartup() { getLog().info(\u0026quot;Hello World!\u0026quot;); } @Override public void onVehicleUpdated(VehicleData previousVehicleData, VehicleData updatedVehicleData) { getLog().info(\u0026quot;Driving {} m/s.\u0026quot;, updatedVehicleData.getSpeed()); } @Override public void onShutdown() { getLog().info(\u0026quot;Good bye!\u0026quot;); } @Override public void processEvent(Event event) { // ... } }   Build the application using maven: mvn clean install   Copy the JAR file from target/HelloWorldApp-0.0.1.jar to the application directory of your simulation scenario. Use the fully qualified name HelloWorldApp in the mapping_config.json to load the application onto vehicles.  Application Interfaces You may have noticed that the HellowWorldApp extends from the class [...].AbstractApplication\u0026lt;OS\u0026gt;. In order to define the type of unit your application can run on, you need to speficy the operating system by choosing one of the following:\n VehicleOperatingSystem - for applications mapped to normal vehicles. ElectricVehicleOperatingSystem - for applications for vehicles with electro mobility features. RoadSideUnitOperatingSystem - for applications mapped to RSUs. TrafficLightOperatingSystem - for applications mapped to traffic lights. TrafficManagementCenterOperatingSystem - for applications mapped to TMCs. ChargingStationOperatingSystem - for applications mapped to charging stations.  See package: org.eclipse.mosaic.fed.application.app.api.os.*\nFurthermore, your application can implement the following 7 interfaces in order to get informed on specific events:\n VehicleApplication - get informed when information about the vehicles state is updated. ElectricVehicleApplication - get informed on electric vehicle specific events. CommunicationApplication - react on incoming V2X messages. MosaicApplication - get informed on Eclipse MOSAIC internal events. TrafficLightApplication - get noticed when the traffic light program is changed. ChargingStationApplication - react on state changes of the charging station. TrafficManagementCenterApplication - get informed on state changes of road infrastructure.  See package: org.eclipse.mosaic.fed.application.app.api.*\n Basic Functions and Concepts for Applications The following section describes how applications are implemented.\nEvent hooks Applications are implemented by reacting to specific events. Those events are, amongst others:\n The simulation has started: All static units (e.g. road side units) are set up (onStartup() is called) Once a vehicle has been added to the simulation, all its configured applications are initialized (onStartup() is called) The data of the vehicle has changed, e.g. after the traffic simulator has finished one simulationstep (onVehicleUpdated() is called). A unit has received a V2X message from another entity (onMessageReceived is called). A unit which has send a V2X message via a ITS-G5 topocast receives an acknowledgement (onAcknowledgementReceived() is called).  Another example:\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .actor{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 text.actor \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .actor-line{stroke:grey;}#mermaid-1603209753374 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-1603209753374 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-1603209753374 #arrowhead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .sequenceNumber{fill:white;}#mermaid-1603209753374 #sequencenumber{fill:#333;}#mermaid-1603209753374 #crosshead path{fill:#333;stroke:#333;}#mermaid-1603209753374 .messageText{fill:#333;stroke:#333;}#mermaid-1603209753374 .labelBox{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603209753374 .labelText,#mermaid-1603209753374 .labelText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopText,#mermaid-1603209753374 .loopText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:hsl(259.6261682243,59.7765363128%,87.9019607843%);}#mermaid-1603209753374 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-1603209753374 .noteText,#mermaid-1603209753374 .noteText \u0026gt; tspan{fill:black;stroke:none;}#mermaid-1603209753374 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 sequence{fill:apa;}RTIApplicationSimulatorApplication1Application2VehicleRegistrationonStartup()onStartup()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()VehicleUpdatesonVehicleUpdated()onVehicleUpdated()sendV2xMessage()V2xMessageTransmissionV2xMessageReceiptiononMessageReceived()VehicleUpdates (remove)onShutdown()onShutdown()RTIApplicationSimulatorApplication1Application2   Example sequence of onStartup, onUpdate, onMessageReceived and onShutdown of two applications.\nA onStartup() method, which enables the ITS-G5 communication module of the unit, could be implemented the following:\n@Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio().channel(AdHocChannel.CCH).power(50).create() ); }  A onMessageReceived() method, which reacts upon a DENM message, could be implemented as:\n@Override public void onMessageReceived(ReceivedV2xMessage receivedV2xMessage) { final V2xMessage msg = receivedV2xMessage.getMessage(); if (msg instanceof Denm) { Denm denm = (Denm)msg; GeoPoint eventLocation = denm.getEventLocation(); //TODO you can add further implementation here } }  Trigger own Events It is possible to trigger own events at specific times within the application. For this purpose, the application has access to an own event manager. Each event requires a simulation timestamp when it should be called, and an event processor.\nThe following code triggers an event in 10 seconds after the application has been initialied:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this); getOs().getEventManager().addEvent(event); } @Override public void processEvent(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  To address a specific method to process the event, Java lambda expressions could be used:\n@Override public void onStartup() { Event event = new Event(getOs().getSimulationTime() + 10 * TIME.SECOND, this::mySpecificMethod); getOs().getEventManager().addEvent(event); } public void mySpecificMethod(Event event) { getLog().info(\u0026quot;Event has been triggered\u0026quot;); // TODO }  Using the Operating System Each application has access to the operating system of its unit. Depending on the type of unit, the operating system provides different methods. For example, an application which is mapped on vehicles, has access to the VehicleOperatingSystem by calling this.getOperatingSystem() (or this.getOs() to keep it short). The following examples show a bit of the capabilities the VehicleOperatingSystem provides:\nGet the current simulation time (in nanoseconds):\nlong time = this.getOs().getSimulationTime();  Return the name of the unit (e.g. \u0026ldquo;veh_0\u0026rdquo;):\nString nameOfUnit = this.getOs().getId();  Get access to vehicle data, such as speed, position, heading, and the like:\ndouble speed = this.getOs().getVehicleData().getSpeed(); GeoPoint position = this.getOs().getVehicleData().getPosition();  Change parameters of the vehicle during the simulation, such as its maximum speed:\nthis.getOs().requestVehicleParametersUpdate() .changeMaxSpeed(10) // m/s .changeMaxAcceleration(2.4) .apply();  Get the current lane index of the vehicle and change lane to left (within 5000 ms):\nint laneIndex = this.getOs().getRoadPosition().getLaneIndex(); int newLaneIndex = Math.max(0, laneIndex - 1); this.getOs().changeLane(newLaneIndex, 5000);  Sending a V2X message via ITS-G5 singlehop broadcast:\nMessageRouting routing = this.getOs().getAdHocModule().createMessageRouting().topoBroadCast(); V2xMessage message = new MyV2xMessage(routing); this.getOs().getAdHocModule().sendV2xMessage(message);  Park the vehicle in 200 meters at the right side of the road for 3 minutes:\ndouble distance = 200; double duration = 3 * 60 * 1000; IRoadPosition stopPosition = RoadPositionFactory.createAlongRoute( getOs().getNavigationModule().getRoadPosition(), getOs().getNavigationModule().getCurrentRoute(), 0, distance ); this.getOs().stop(distance, duration, Stop.StopMode.PARK);  Navigation The navigation of vehicles (i.e. calculation of routes) is handled completely by the Application Simulator. Each vehicle is equipped with a navigation system which provides all required information and functions for navigational purposes:\n Retrieve the current position and heading of the vehicle. Get the target of the vehicle. Calculate various routes from the current position to an arbitrary target. Choose a suitable route out of existing ones from the current position to an arbitrary target. Switch onto a specific route.  In order to provide routing functionality, a map model based on Open Street Map data is used, which needs to be transformed before the simulation using scenario-convert. The map data including initial routes for vehicles is provided with the database file which needs to be located in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/\u0026lt;scenario_name\u0026gt;.db\nConfiguration If the database needs to be located somewhere else, the path can be specified in mosaic/scenarios/\u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ ... \u0026quot;navigationConfiguration\u0026quot;: { \u0026quot;databaseFile\u0026quot;: \u0026quot;path/to/scenario.db\u0026quot; } }  The following snippet show, how the navigation system can be used within an application:\n//get navigation module INavigationModule navigationModule = getOs().getNavigationModule(); //choose current target as target position RoutingPosition targetPosition = new RoutingPosition(navigationModule.getTargetPosition()); //set routing parameters to fastest route search RoutingParameters params = new RoutingParameters().costFunction(IRoutingCostFunction.Fastest); //calculate routes RoutingResponse response = navigationModule.calculateRoutes(targetPosition, params); //switch to best route if (response.getBestRoute() != null) { boolean routeSwitched = navigationModule.switchRoute(response.getBestRoute()); ... }  Access SUMO TraCI from applications If SUMO is used as a traffic simulator and a special functionality is required, the sendSumoTraciRequest function in the OperatingSystem can be used.\nThe function expects a string (a unique identifier which will be assigned to the response) and a byte array (representing the complete Traffic Control Interface (TraCI) request including the header). The message identifier can be an empty string.\nIn all cases the command will trigger a response. The application can receive the response from the method onSumoTraciResult. This method will receive a SumoTraciResult object. This response contains the specified identifier. The application must handle the identification process of the response itself.\n Be careful when using this interface and the TraCI commands. The commands are delivered to TraCI without any prior checks.\n   You can find the example application SumoTraciInteractionApp in the additional examples bundle on the DCAITI website.\n   Debugging of applications To debug an application, remote debugging needs to be used. The following steps need to be performed in order to debug the application:\n Open the application in your IDE. Modify your mosaic.sh or mosaic.bat by adding debug parameters to the java call:\njava -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4100 ... Add a new debug profile in your IDE for remote debugging. Make sure to correctly configure port 4100 (or whichever port you provided in step 2). Launch Eclipse MOSAIC with the argument -w 0 to disable the watchdog timer otherwise it will interfere with debugging. Connect your debugger in your IDE with the running simulation.  ","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"f3e4e878d3a3df21f512128da34ee9b3","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/","section":"docs","summary":"Applications in Eclipse MOSAIC are simulated by the Application Simulator. Such an application is programmed in Java and follows an event-based execution flow. Thereby, certain methods of the application are called by the Application Simulator upon corresponding events (the application \u0026ldquo;reacts\u0026rdquo;).","tags":null,"title":"Basics in Application Development","type":"docs"},{"authors":null,"categories":null,"content":" ","date":1593471600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1593471600,"objectID":"73996a350495164dd7fb2b4e81c403df","permalink":"https://www.eclipse.org/mosaic/docs/api_docs/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/api_docs/","section":"docs","summary":" ","tags":null,"title":"Javadoc of Eclipse MOSAIC source code","type":"docs"},{"authors":null,"categories":null,"content":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated. It consists of the original simulator that is connected to its federate ambassador and an instance of an Eclipse MOSAIC ambassador. The federates run on top of the Eclipse MOSAIC Runtime Infrastructure (lower part of Figure 1) which offers services for federation-, interaction- and time management. The communication between the federates and the runtime infrastructure is enabled by ambassadors. More precisely, a federate that wants to access services of the RTI can use a designated RTI-Ambassador that provides access to the provided services. In the opposite direction, i.e. if the runtime infrastructure wants to invoke operations on the federate implementation, a federate ambassador is used. Each federate ambassador implements the same interface that is used by Eclipse MOSAIC to control the simulator and to provide interactions from other federates.\n Schematic illustration of Eclipse MOSAIC Runtime Infrastructure    Time Management The main problem in executing a federation is the synchronization of its federates. Each federate is a discrete-event simulator with an ordered event list from which sequentially the first event is processed. Consequently, the Time Management is necessary for coordinating the simulation and synchronizing participating federates. It assures that each federate processes its events in correct order.\nAccording to Fujimoto the time management in a federated environment includes two key components: Interaction (Message) order and time stamps. Note that we usually use the word \u0026lsquo;intercation\u0026rsquo; when talking about communication between federates, \u0026lsquo;message\u0026rsquo; will be used in the context of (V2X)-communication.\nThe Interaction Order service is completely implemented in Eclipse MOSAIC with the following design rationale: Each request of a federate to execute a local event is mapped to a global event within the Time management. Such an event consists of three attributes: simulation time, priority, and lookahead time. The simulation time defines the time in the simulation at which the event has to be processed. The priority allows defining an order of events that are scheduled at the same time. The third attribute, the lookahead time, describes an idle period following after an event. It is used to signalize that no further event will be scheduled and no interaction will be sent within this period. All events are scheduled by storing them in an event list in ascending order according to their simulation time. In case of equal simulation times, they are ordered in descending order to their priority. A time management cycle consists of three steps.\n  The federate invokes a time management service to request its logical time to advance. While Time Advance Request (TAR) is more suitable for time-stepped simulators, Next Event Request (NER) is the preferred primitive for event-driven federates.\n  The RTI delivers certain interactions to the federate. Each federate receives the interactions in the processInteraction() method.\n  The RTI completes the cycle by invoking a federate defined procedure called Time Advance Grant to indicate the federate’s logical time has been advanced. Eclipse MOSAIC supports the sequential and the parallel conservative mechanism for advancing time.\n   Interaction Management The exchange of data among federates is offered by the Interaction Management using interactions. Eclipse MOSAIC and its federates are decoupled through a publish-subscribe paradigm provided by the Interaction Management. A published interaction is forwarded to each subscriber directly after it has been published. However, a receiving federate is not allowed to advance its time based on an interaction but must request a time advancement if necessary. An interaction consists of its creation time, an identifier describing its type, and optional data. Interactions to exchange traffic, network, vehicle, and sensor data are predefined. These interactions are used to define a standardized communication behaviour.\nSubscribe Interaction Before a federate can receive interactions, it has to subscribe to them. The Interaction Management offers two different ways to subscribe to certain interactions. A federate can either define a interaction type only to receive all interactions of this type or, additionally, define conditions to filter interactions by their content. If a federate is not longer interested in subscribed interactions, it can rescind its interest.\nPublish Interaction Each federate is allowed to publish any interaction at any valid time of the simulation. After a interaction is published, the Interaction Management forwards the interaction to each federate that has subscribed to this type of interaction. A federate receiving a interaction can ignore it or request to advance its local time to handle this interaction.\n Federation Management The Federation Management is responsible for the administration of participating federates. This includes deploying, starting, stopping, and undeploying federates in a distributed system. Before running a simulation, the Federation Management creates an empty federation. After that, federates join the federation. Already joined federates can be removed from a federation, if they are not necessary for the rest of the simulation. After a simulation is finished, the Federation Management frees used resources.\nCreate Federation Creates an empty federation. After a federation is created, it is possible to join federates.\nJoin Federation A joining simulator is defined by a unique name and a FederateHandle. This handle contains the information whether start-up and deployment of the simulator are required to be handled by the Federation Management. In this case, further deployment and start-up information are included.\nStop Federation After a simulation is finished, all joined federates are resigned and their used resources are freed. All references are removed and necessary tasks to stop and undeploy the federate are executed.\nImplementation Details When a simulator is about to join a federation, a FederateHandle is passed to the Federation Manage- ment. A handle includes a Federate Ambassador that is responsible for all communication with the RTI as well as all identifiers for interactions it wants to subscribe to. Additionally, it contains two flags indicating how the simulator is started and if the simulator needs to be deployed by the Federation Management. For the deployment, the handle consists a reference to the directory including all binaries and host parameters consisting of an address and a directory in which the simulator shall be deployed. To start a simulator a start-command is included.\nIf the simulator is running, its ambassador is registered for coordinating the simulator during the sim- ulation run. Afterwards, the Federation Management initiates the subscription to interactions on behalf of an ambassador. Otherwise, before the ambassador is registered, the Federation Management starts and, if necessary, deploys the simulator on a local or a remote machine and connects it to its ambassador. The connection is created by redirecting the output of the started simulator to its ambassador. Based on the incoming data, the Federate Ambassador is responsible for configuring its communication with the simulator.\nLocal Federation Management In case a simulator is to be deployed on a local machine, its binaries are copied into the simulation directory that is defined within the host parameters. Afterwards, using the start-command the simulator is started in a new process and its output is redirected to the ambassador. Additionally, a mapping between ambassador and process reference is stored. Finally, when the federate is resigned, the ambassador is called to shut down its corresponding simulator. Finally, the mapped process is killed and all copied files are removed.\nDistributed Federation Management To administrate simulators on remote hosts, the Federation Management uses the Secure Shell (SSH) protocol to send commands and the associated Secure File Transfer Protocol (SFTP) to transfer binaries. After a process is started remotely, a mapping between ambassador, its process id, and the host on which is running are stored. Finally, when the federate is resigned, the remotely running process is killed and all binaries are removed.\n","date":1565049600,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1565049600,"objectID":"1c65951f20f713cdbe7d5eea3c44701f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/","section":"docs","summary":"To run a simulation, a federation of simulators has to be created. This federation consists of one federate for each participating simulator. In the upper part of Figure 1, the inner structure of a federate is illustrated.","tags":null,"title":"Core Concepts","type":"docs"},{"authors":null,"categories":null,"content":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the mirror above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document. Install additional software required by the simulation (see below), e.g. Eclipse SUMO  Folder Content └─ \u0026lt;mosaic-root\u0026gt; ├─ etc | ├─ hosts.json .................. Configuration of the execution host, e.g. temporary directory. | ├─ logback.xml ................. Configuration of log files and levels. | └─ runtime.json ................ Configuration of all Ambassadors and Federates coupled with the MOSAIC ├─ lib ............................. Directory with all Java compiled libraries required for MOSAIC. ├─ logs ............................ Directory with log files. ├─ scenarios ....................... Directory containing all simulation scenarios. ├─ tools ........................... Additional tools, like the HTML Visualizer. ├─ CONTRIBUTING.md ├─ LICENSE ├─ mosaic.bat ...................... Start script for Windows systems. └─ mosaic.sh ....................... Start script for GNU/Linux systems.  Additional Software Each simulation with Eclipse MOSAIC requires additional software. For the Runtime Infrastructure, Java is required. to be installed. Furthermore, each simulation requires additional simulators to be installed, for example the traffic simulation tool SUMO.\nThe following table gives an overview of supported environments and simulators. Please make sure that you install those versions only.\n   Component Required  Version       Java yes Java 7 and below not supported Java 8  supported Java 11 and above  limited supported           Eclipse SUMO yes* 0.32.0 and below not supported 1.0.1 to 1.7.0  supported above 1.7.0  not tested    OMNeT++ optional 5.4 and below not supported  5.5  supported 5.6 and above  not supported    INET optional 4.0 and below not supported  4.1  supported 4.2 and above  not supported    ns-3 optional 3.27 and below not supported 3.28  supported 3.29 and above  not tested    * All provided scenarios require SUMO to be installed. However, if a different traffic or vehicle simulator is coupled, SUMO is not certainly required.\nUpdate Eclipse MOSAIC In order to update Eclipse MOSAIC to a new version, please perform the following steps manually:\n Backup your personal simulation scenarios from MOSAIC\u0026rsquo;s scenarios directory. Remove your old MOSAIC installation completely. Install MOSAIC by extracting the current binary archive from above. Copy your simulation scenarios back to MOSAIC\u0026rsquo;s scenarios directory. Take care of possible updates of the used software and simulators from third party (see the Compatibility Matrix above).  ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"0d7696d24c78e212b3f7477df55bfbb6","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/","section":"docs","summary":"Download Eclipse MOSAIC from DCAITI mirror   Download the eclipse-mosaic-20.0.zip bundle from the mirror above. Extract the package to an arbitrary path. This installation path is referenced as \u0026lt;mosaic-root\u0026gt; throughout the entire document.","tags":null,"title":"Download Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.g. traffic, communication, application, electricity, or other).\nEach of the simulators must implement an interface, the so-called Ambassador. The ambassador communicates with the actual simulator, which is represented by the Federate. For some cases, if the simulator is directly coupled with the RTI (e.g. Application, or cell), the ambassador also represents the federate. This architecture allows a simple coupling of own simulators.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TraCIProtobufEclipse MOSAIC RTIEclipse SUMOOMNeT++ApplicationAmbassadorSumoAmbassadorOmnetppAmbassador   The following simulators are coupled already with MOSAIC:\n table th:first-of-type { width: 26%; }     Domain Simulator Name Description     Application Simulation MOSAIC Application Application prototyping and simulation.        Traffic / Vehicle Simulation Eclipse SUMO Microscopic Traffic simulation.    PHABMACS Sub-microscopic vehicle simulation with 3D visualization. Documentation will be published soon.        Network / Communication Simulation OMNeT\u0026#43;\u0026#43; Event-based network simulator for ITS-G5 and cellular communication.    ns-3 Event-based network simulator for ITS-G5 and cellular communication.    MOSAIC Simple Network Simulator Simulator for ITS-G5 ad-hoc communication using simplified models.    MOSAIC Cell Simulator for cellular communication.        Environment Simulation MOSAIC Environment Environmental event simulation.        E-Mobility Simulation MOSAIC Battery Electric vehicle simulation.    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7998013f795ff6ddbb68d3d1e213effe","permalink":"https://www.eclipse.org/mosaic/docs/simulators/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/","section":"docs","summary":"The runtime infrastructure of Eclipse MOSAIC couples different simulators and can\u0026rsquo;t be run alone and, therefore, it requires pre-installed simulators. Each simulator coupled with the RTI of MOSAIC usually covers a specific domain (e.","tags":null,"title":"Overview","type":"docs"},{"authors":null,"categories":null,"content":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.bat -s \u0026lt;scenario-name\u0026gt; mosaic.bat -c .\\scenarios\\\u0026lt;scenario_name\u0026gt;\\scenario_config.json  CLI Options The Eclipse MOSAIC start script supports the following arguments:\n table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 80%; }     Option Description     -c\n--configuration The primary configuration file which is scenario dependent and located in the according scenario folder. This file transitively includes other necessary configuration files. Usually you will use the file \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json.   -s\n--scenario If the main configuration file of your scenario is located in the default scenario directory of MOSAIC (i.e. in \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json), this option can be used instead of the -c option by passing only the scenario name -s \u0026lt;scenario_name\u0026gt;.   -w\n--watchdog-interval The interval of the internal alive check (in seconds) which is used by MOSAIC to detect execution stalls. This parameter is not mandatory and it is also possible to turn off the watchdog (-w 0) for debug sessions.   -o\n--log-level Override all specified logging-levels. This option is useful for debugging simulations. For example logging every possible event would be done with -o TRACE.   -b\n--realtime-brake With this parameter, the simulation will be slowed down to a desired Real Time Factor, if possible. When simulations already run slower than real time, this factor will have no effect. For example, use -b 1 to execute the simulation in real time.   -r\n--random-seed The global random seed to set for the simulation run. This is usually defined in the scenario_config.json, but can be overridden using this option.   -v\n--start-visualizer Opens a page in your default browser which visualizes all vehicle movements of the simulation on a map. This option only works, if your scenario is configured with the Websocket Visualizer.   -h\n--help Prints a help screen.    While Eclipse MOSAIC is running, it prints some information on the command line:\n[user@gnulinux mosaic]$ ./mosaic.sh -s HelloWorld 2020-09-08 16:46:09,794 INFO ROOT - Running Eclipse MOSAIC 20.0-SNAPSHOT on Java JRE v1.8.0_202 (AdoptOpenJdk) 2020-09-08 16:46:09,941 INFO FederationManagement - Start federation with id 'HelloWorld' 2020-09-08 16:46:09,943 INFO FederationManagement - Add ambassador/federate with id 'application' 2020-09-08 16:46:09,944 INFO FederationManagement - Add ambassador/federate with id 'mapping' 2020-09-08 16:46:09,945 INFO FederationManagement - Add ambassador/federate with id 'sumo' 2020-09-08 16:46:09,946 INFO FederationManagement - Deploying federate 'sumo' locally in .\\tmp\\sumo 2020-09-08 16:46:09,962 INFO FederationManagement - Starting federate 'sumo' locally in .\\tmp\\sumo 16:46:17 - Simulating: 195000000000ns (195.0s / 1000.0s) - 19.5% (RTF:33.10, ETC:25.2s)  The current simulation progress is shown in the following format.\n current wall clock time current simulation time in [ns] and [s] progress in % Real Time Factor (RTF) and Estimated Time to Completion (ETC)  The RTF is the ratio of simulated time to simulation duration in wall clock time, e.g. a real time factor greater than 1.0 means, the simulation is running faster than real time. Both RTF and ETC are calculated based on the performance of the last five seconds of the simulation and should only give a rough overview, how long a simulation can take. Depending on the simulation setup, the values can differ heavily between start and end of a simulation.\nScenario Configuration The configuration of a simulation scenario consists of a detailed description for each coupled simulator. The main configuration file is found under scenario_config.json, which defines the list of coupled simulators:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  This way, simulators can be easily added or removed from the simulation. Each of the coupled simulators is configured in the directory of the scenario_config.json file. The release bundle comes with a set of tutorial scenarios, which are described in detail in the Tutorials section.\nGather results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time. Moreover, Eclipse MOSAIC offers uniformly formatted and visually prepared results using various  Output Generator implementations.\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"7482da389f363e79fed6bdad86e18c99","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/","section":"docs","summary":"To run a single simulation via Command Line Interface (CLI), call the Eclipse MOSAIC start script with the following command line arguments.\nGNU/Linux ./mosaic.sh -s \u0026lt;scenario-name\u0026gt; ./mosaic.sh -c ./scenarios/\u0026lt;scenario_name\u0026gt;/scenario_config.json  Windows mosaic.","tags":null,"title":"Run a single simulation","type":"docs"},{"authors":null,"categories":null,"content":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.\nThe following file structure shows the minimum setup of a typical simulation scenario in Eclipse MOSAIC:\n└─ \u0026lt;scenarioName\u0026gt; ├─ application | └─ \u0026lt;scenarioName\u0026gt;.db................ Scenario database file ├─ mapping | └─ mapping_config.json ............. Mapping configuration file ├─ sumo | └─ \u0026lt;scenarioName\u0026gt;.net.xml .......... SUMO network file | └─ \u0026lt;scenarioName\u0026gt;.sumocfg .......... SUMO configuration file └─ scenario_config.json ............... Basic configuration of the simulation scenario  In addition to those files, each simulator need to be provided with their custom configuration files.\nMain Configuration The main configuration file of a scenario is scenario_config.json. In this file basic properties are configured, such as the name of the scenario, the random seed, and activated simulators. Such a file looks like the following:\n{ \u0026quot;simulation\u0026quot;: { \u0026quot;id\u0026quot;: \u0026quot;Barnim\u0026quot;, \u0026quot;duration\u0026quot;: \u0026quot;1000s\u0026quot;, \u0026quot;randomSeed\u0026quot;: 268965854, \u0026quot;projection\u0026quot;: { \u0026quot;centerCoordinates\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.511289, \u0026quot;longitude\u0026quot;: 13.3167457 }, \u0026quot;cartesianOffset\u0026quot;: { \u0026quot;x\u0026quot;: -385769.05, \u0026quot;y\u0026quot;: -5819239.29 } }, \u0026quot;network\u0026quot;: { \u0026quot;netMask\u0026quot;: \u0026quot;255.255.0.0\u0026quot;, \u0026quot;vehicleNet\u0026quot;: \u0026quot;10.1.0.0\u0026quot;, \u0026quot;rsuNet\u0026quot;: \u0026quot;10.2.0.0\u0026quot;, \u0026quot;tlNet\u0026quot;: \u0026quot;10.3.0.0\u0026quot;, \u0026quot;csNet\u0026quot;: \u0026quot;10.4.0.0\u0026quot;, \u0026quot;serverNet\u0026quot;: \u0026quot;10.5.0.0\u0026quot;, \u0026quot;tmcNet\u0026quot;: \u0026quot;10.6.0.0\u0026quot; } }, \u0026quot;federates\u0026quot;: { \u0026quot;application\u0026quot;: true, \u0026quot;environment\u0026quot;: false, \u0026quot;cell\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;sns\u0026quot;: false, \u0026quot;sumo\u0026quot;: true, \u0026quot;visualizer\u0026quot;: true } }  The following fields needs to be configured:\n id - The name of the scenario duration - The duration of the simulation in seconds. randomSeed - The seed to initialze the random number generator with in order to have deterministic results. If not set, a random seed is taken. projection - Configures the coordinate transformation from geographic coordinates to cartesian coordinates. Having a correct setting here is crucial to get correct results that map to real world coordinates so the simulation results can be visualized in some way. The center coordinate will be used to determine the correct UTM zone, the cartesianOffset can be determined by having a look at the trafﬁc simulators network ﬁle, e.g. SUMOs *.net.xml contains this information in the netOffset attribute of the location tag. network - Within this config the address resolution scheme is speciﬁed. The subnets for all unit types are described here. Usually, default configuration should be sufficient. However, if you have many vehicles in your scenario the IP address space would be to small to provide enough addresses. In such cases, the netMask and all subnets have to be configured accordingly. Last but not least, the federate tags define which simulators are active in the simulation.  Traffic Simulator Configuration The generated files for the used traffic simulator are placed into the folder named after that simulator, e. g. sumo . For example, the \u0026lt;scenarioName\u0026gt;.sumocfg describes the main configuration of the SUMO simulator, which should refer to a network file and a route file:\n\u0026lt;configuration\u0026gt; \u0026lt;input\u0026gt; \u0026lt;net-file value=\u0026quot;MyScenario.net.xml\u0026quot; /\u0026gt; \u0026lt;route-files value=\u0026quot;MyScenario.rou.xml\u0026quot; /\u0026gt; \u0026lt;/input\u0026gt; \u0026lt;/configuration\u0026gt;  While the *.net.xml is a mandatory file to be placed within the sumo directory, the *.rou.xml is automatically generated by the SumoAmbassador when the simulation is started. More information on the configuration of SUMO can be found here.\nApplications and Mapping Vehicles Usually you want the simulated vehicles to be equipped with some kind of applications that influence the vehicle\u0026rsquo;s behavior. To do that you copy the jar files of your applications to the folder \u0026lt;scenarioName\u0026gt;/application . Having the applications in place you will have to create a mapping_config.json file in the folder \u0026lt;scenarioName\u0026gt;/mapping .\nThe following file would spawn 1 vehicle every five seconds (720 veh/hour divided by 3600 sec) until it reaches the max number of vehicles: 500. All the vehicles would be equipped with an application sending CA-messages periodically.\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ] }  Traffic lights If you want to simulate traffic lights equipped with applications, traffic lights should be defined in the simulator specific configuration file and also added to the mapping configuration file. The applications can be equipped by explicitly specifying them as \u0026ldquo;applications\u0026rdquo;\n{ \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp\u0026quot; ] } ] }  or by referring to previously defined prototypes:\n{ \u0026quot;prototypes\u0026quot;:[ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;maxSpeed\u0026quot;: 80.0, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp\u0026quot; ] }, { \u0026quot;name\u0026quot;: \u0026quot;TrafficLight\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp\u0026quot; ] } ], \u0026quot;vehicles\u0026quot;:[ { \u0026quot;startingTime\u0026quot;: 0.0, \u0026quot;targetFlow\u0026quot;: 720, \u0026quot;maxNumberVehicles\u0026quot;: 500, \u0026quot;route\u0026quot;: \u0026quot;3\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot; } ] } ], \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;Bismarkstr_Krummestr\u0026quot;, \u0026quot;name\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  Please note that traffic light name and traffic light itself in the mapping file stand for a traffic light group controlling a whole junction. Traffic light group can consist of many individual traffic lights controlling an exact lane. The value of the \u0026ldquo;tlGroupId\u0026rdquo; key MUST coincide with the name of the traffic light group in the traffic simulator related configuration file (with tlLogic id for SUMO and with junction id for Phabmacs).\nFor SUMO, the description of traffic light groups and their programs can be found in \u0026lt;scenarioname\u0026gt;.net.xml:\n\u0026lt;tlLogic id=\u0026quot;26704448\u0026quot; type=\u0026quot;static\u0026quot; programID=\u0026quot;1\u0026quot; offset=\u0026quot;0\u0026quot;\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;GGrG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;yyry\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;39\u0026quot; state=\u0026quot;rrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rryy\u0026quot;/\u0026gt; \u0026lt;/tlLogic\u0026gt;  Corresponding mapping_config.json:\n{ ... \u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;name\u0026quot;: \u0026quot;TrafficLight\u0026quot; } ] }  More information on the mapping configuration can be found here.\nFor more information about how SUMO traffic lights work please refer to SUMO Traffic Lights.\nThe application folder furthermore needs a generated database file \u0026lt;scenarioName\u0026gt;.db . This database file contains information about the road network (road topology) and all routes the vehicles can drive on. This file is usually generated by the tool scenario-convert, which is described here in detail.\nCommunication Simulator The configuration of the communication parameters are usually not dependent from the location of the road network. Therefore, most of the required files can be extracted from other scenarios, such Barnim or Tiergarten. Depending on the simulator you will need to configure the geographic extend of the simulation area. You can ﬁnd that data in the trafﬁc simulators network file, e.g. SUMOs *.net.xml contains this information in the convBoundary attribute of the location tag.\n For OMNeT++, it concerns the values of constraintArea in the omnetpp.ini For the Eclipse MOSAIC Cell simulator, the expansions do not need to be conﬁgured directly. However, the areas of the conﬁgured regions (in regions.json) have to be in line with the scenario location. The SNS also comes without an additional expansion deﬁnition.  Further information on the communication simulators can be found in: Eclipse MOSAIC SNS Eclipse MOSAIC Cell OMNeT++ ns-3\n","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"911d7d211da284d47641d647331b899d","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/","section":"docs","summary":"This section provides information on creating own simulation scenarios. A scenario is generally a folder structure that reflects the different components usually found in a simulation. Each of the folders contains various configuration files which in total describe the simulation setup, including the movements of the vehicles, the definition of the road network, communication properties, and the like.","tags":null,"title":"Simulation Scenarios","type":"docs"},{"authors":null,"categories":null,"content":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created. It runs in the browser and shows an OpenLayers Map with markers, indicating the positions of all vehicles, as well as overall the simulation progresses.\n Red vehicles are sending messages and green vehicles are receiving messages at that specific point of time in the simulation.   To start the visualization, simply open the tools/web/visualizer.html in your browser. As soon as the page has finished loading all of its content, it starts trying to connect to the WebSocket created by the Eclipse MOSAIC simulation. The WebSocket is also enabled by default for the tutorial scenario Barnim. For more details see the file Barnim/output/output_config.xml.\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;output id=\u0026quot;websocket\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.websocket.WebsocketVisualizerLoader\u0026quot;\u0026gt; \u0026lt;synchronized\u0026gt;true\u0026lt;/synchronized\u0026gt; \u0026lt;port\u0026gt;46587\u0026lt;/port\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageReception\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;V2xMessageTransmission\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;VehicleRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;RsuRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;subscription id=\u0026quot;TrafficLightRegistration\u0026quot; enabled=\u0026quot;true\u0026quot;/\u0026gt; \u0026lt;/subscriptions\u0026gt; \u0026lt;/output\u0026gt; \u0026lt;/configuration\u0026gt;  As soon, as the simulation is running, you should see vehicle markers moving around and indicating if they are sending V2X messages (green) or receiving V2X message (red).\nThe status bar at the bottom of the page indicates the current connection/simulation state. There are four possible states:\n Connecting - Trying to connect to the WebSocket opened by Eclipse MOSAIC. Simulating - Periodically fetching simulation data and updating markers accordingly. Simulation finished - The simulation has finished. Error - An error occurred. Either there was a problem caused by the WebSocket itself, or a timeout occurred while trying to connect to the WebSocket.  After the simulation has finished, you can click on the reconnect button and then run the simulation again. You can also start the visualization at each simulation run, using the command line parameter -v. In that case, Eclipse MOSAIC will automatically open the tools/web/visualizer.html in your default browser once the simulation starts.\n By default, the WebSocket Visualizer does not work on Microsoft Edge. UWP (UniversalWindows Platform) apps onWindows 10 do not have direct network access but are subject to a network isolation for security reasons, preventing localhost loopback by default. WhileMicrosoft Edge itself does allow localhost access, it treats localhost as an Internet site, which leads to restrictions e.g. for IPC over IP. To prevent this, an exception for Edgemust be added to the network isolation via the following command in an elevated command prompt:\nCheckNetIsolation LoopbackExempt -a -n=\u0026quot;Microsoft.MicrosoftEdge_8wekyb3d8bbwe\u0026quot;    ","date":1557010800,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1557010800,"objectID":"4ceda5b87ab93856c1c3520fdb9ecfb3","permalink":"https://www.eclipse.org/mosaic/docs/visualization/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/","section":"docs","summary":"To get a simple and instant impression of a simulation or to get an idea of how fast it runs or where a simulation is located, the WebSocket Visualizer was created.","tags":null,"title":"WebSocket Visualizer","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.g. for communication, traffic, and application simulations. For the synchronization and data exchange, the provided runtime infrastructure uses common concepts similar to ones defined in the High Level Architecture (HLA ) standard proposed by the IEEE. Simulators are integrated following the ambassador/federate principle and messages (we call them interactions) are used to implement the time synchronization and data exchange amongst them. Consequently, the runtime infrastructure allows a flexible combination of time-discrete simulators for V2X simulations and the like. Based on the varying requirements for specific use-cases, arbitrary simulators can be added to Eclipse MOSAIC and will be executed together.\nThis online documentations provides detailed information for the current release of Eclipse MOSAIC. The following objectives are target of this documentation:\n1.\u0026nbsp; Getting Started Download and installation.Learn more    2.\u0026nbsp; Run Simulations Run single simulation or simulation sets.Learn more    3.\u0026nbsp; Visualization Visualize and evaluate simulation results.Learn more    4.\u0026nbsp; Simulators Configure external and integrated simulators.Learn more    5.\u0026nbsp; Building Scenarios Build your own simulation scenarios.Learn more    6.\u0026nbsp; Create Applications Develop applications for the Application Simulator.Learn more    7.\u0026nbsp; Extending Eclipse MOSAIC Extend Eclipse MOSAIC.Learn more    8.\u0026nbsp; API Documentation Technical documentation, such as Javadoc.Learn more     ","date":1596672000,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1596672000,"objectID":"4cdd37113783e47641dd300543c94e1b","permalink":"https://www.eclipse.org/mosaic/docs/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/docs/","section":"docs","summary":"Eclipse MOSAIC was built to provide users with the flexibility to perform mobility based simulations with their own choice of simulators. In order to provide the flexibility to exchange a simulator without changing the underlying infrastructure, Eclipse MOSAIC offers interfaces for the integration of different simulators, e.","tags":null,"title":"Eclipse MOSAIC Documentation","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more detail.\n Cellular Communication Ad-hoc Communication  Depending on the needs of the application, there are different approaches to solve the communication issue in Eclipse MOSAIC simulations. However, a distinction must be made between inter vehicle communication and Vehicle-to-X communication. Also, it is possible to modify the selected communication mode dependent on requirements.\nGenerally, the following modes are available based on network:\nCellular Communication\n Geobroadcast Geocast Topocast  Ad-hoc Communication\n Geobroadcast Geocast Topobroadcast Topocast   Cellular Communication The cellular network is known from wireless mobile communication and the principle is to divide the entire geographic area into several smaller parts called \u0026ldquo;cells\u0026rdquo;. Each cell has a fixed-location transceiver with a coverage ratio.\nEclipse MOSAIC enables the communication with all the existing vehicles via Geobroadcast mode or direct communication via Geocast in a specific area (circular, rectangular). In contrast, the Topocast mode is not restricted to a specific area.\nCellular Geobroadcast The principle function of the Geobroadcast is to communicate with all entities within a geographical area. Eclipse MOSAIC offers the possibility to configure a specific geographical area which can be either a circular or a rectangular area.\nThe following figure illustrates a vehicle veh_2 which is communicating with the other vehicles(veh_1, veh_3) within a radius R.\n Illustration of Geobroadcast in a spezific circular area   A circular communication area can be defined with the geoBroadCast(GeoCircle geoCircle) from an Eclipse MOSAIC application, as shown below:\nGeoCircle transmissionArea = new GeoCircle(GeoPoint.latlon(52.5, 13.2), 3000); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  A rectangular destination area can be defined similarly:\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getCellModule().createMessageRouting().geoBroadCast(transmissionArea); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Geocast Compared to Geobroadcasting, a Geocast addresses a receiver with an unique address. Addressing can be in the form of an IP-Address or a receiver-ID (e.g. veh_0). Again, the communication area can be configured as circular or rectangular.\nAssume, the veh_1 has a message which is addressed to veh_2. In order to send the message, veh_1 first examines whether the vehicle with ID veh_2 is located within the transmission area. If this is the case, the message will be transmitted. In figure below is this situation illustrated.\n Cellular Geocast to address a receiver within a defined area   The following methods are provided for the configuring the transmission area (Circle or Rectangle) and the addressing to the receiver(hostname or ip address).\n geoCast(GeoCircle geoCircle, String receiverName)  geoCast(GeoRectangle geoRectangle, String receiverName) geoCast(GeoCircle geoCircle, byte[] ipAddress) geoCast(GeoRectangle geoRectangle, byte[] ipAddress)  GeoCircle transmissionArea = new GeoCircle( GeoPoint.latlon(52.5, 13.2), 3000); String receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().geoCast(transmissionArea, receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Cellular Topocast Compared to Geocast or Geobroadcast, the Topocast is totally independent of geographical conditions and the addressing can be in the form of an IP-Address or a receiver-ID.\nThe next figure illustrates how the veh_0 is communicating with veh_1 in Topocast mode.\n Topocast mode for direct addressing without geographical constraints   The code example below shows how we can configure the requirements of the communication in Topocast mode.\nString receiverName = \u0026quot;veh_0\u0026quot;; MessageRouting routing = getOs().getCellModule().createMessageRouting().topoCast(receiverName); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));   Ad-hoc Communication The Ad-hoc network does not rely on a pre-existing infrastructure. Provided that vehicles are equipped with Ad-hoc modules, they are able to communicate with each other dynamically. In case of a sufficient number of Ad-hoc equipped vehicles, a message can be transferred via hops quickly over a long distance.\nEclipse MOSAIC also enables the communication via a specific Ad-hoc channel within the wireless Ad-hoc network. However, the Ad-hoc channels for vehicular communication are limited and standardized by the IEEE 802.11p. The licensed frequency band 5.9 GHz (5.85-5.925 GHz) for Intelligent Transportation Systems(ITS) will be used as Ad-hoc channels.\nThe following table shows the possible channels on the 5.9 GHz band used for V2X communication.\n   Channel Number 0 1 2 3 4 5 6     Channel Name SCH1 SCH2 SCH3 CCH SCH4 SCH5 SCH6   Frequency Band 5.86 5.87 5.88 5.89 5.9 5.91 5.92    Configuring AdHoc Capabilities The first step to enable your application to use Ad hoc capabilities, is to make sure it extends the AbstractSimulationUnit-class or one of its child-classes (e.g. VehicleUnit, ChargingStationUnit) found in package org.eclipse.mosaic.fed.application.ambassador.simulation. Additionally, if you want your application to act upon the reception or transmission of messages, make sure it implements the interface CommunicationApplication.\nOnce this is done, make sure to configure and enable the AdHoc-module in your application. Below is an example configuration taken from the Tiergarten-tutorial. Instead of configuring the .power(...)[mW] it is also possible to configure a .distance(...)[m].\n// Example of AdHocConfiguration (see TiergartenVehicle.java) @Override public void onStartup() { getOs().getAdHocModule().enable(new AdHocModuleConfiguration() .addRadio() .channel(AdHocChannel.CCH) .power(50) .create()); }  Ad-hoc Topobroadcast In Topobroadcast mode, the communication between vehicles is regardless of the geographic conditions. However, the communicating entities must be operated on the same Ad-hoc channel and there are two options to use the Topobroadcast:\n Singlehop Multihop  Singlehop approach in Topobroadcast For Singlehop, it is not necessary to specify the number of hops explicitly which indicates the lifespan of a message, because in Singlehop, any message has a lifespan of hop = 1. Moreover, Eclipse MOSAIC allows to use the default method topoBroadCast() which automatically assigns a Control Channel (CCH) for the simulation entity and a lifespan based on the Singlehop principle. Alternatively you can use the non-default method topoBroadCast(AdHocChannel) in order to specify the Ad-hoc channel.\nBelow are some configuration examples of the default addressing method topoBroadCast() and non-default addressing method topoBroadCast(AdHocChannel).\nMessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  The following figure shows a simplified model based on the Singlehop principle. The veh_1 sends messages to all simulation entites(RSU, veh_2) that are using the same Ad-hoc channel. After transmission, the message can no longer be forwarded by the receiver.\n Overview Singlehop with specified Ad-hoc channel   Multihop approach in Topobroadcast In Multihop, the lifespan (amount of hops) of a message can be specified, allowing larger communication distances.\nThe following figure shows a Multihop example with a data package D (M, h = 2) from the vehicle veh_0 which contains a message M and a hop number h = 2. Assuming that a lot of simulation entities are using the same Ad-hoc channel the message can be forwarded over a along distance. After each forward the hop number will be incremented by 1. Since the hop amount was set to 2, the forwarding will stop after 2 increments.\n Overview Multihop principle   The next code snippet shows a configuration example with an Ad-hoc channel and a message lifespan hops = 2.\nAdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoBroadCast(commonChannel, hops); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));   In order to use the Multihop approach in OMNeT++ and ns-3 provided by Eclipse MOSAIC, its necessary to implement a routing protocol in network simulators (OMNeT++, ns-3). But the built in communication simulator SNS includes a simple routing protocol “Flooding”.\n  Ad-hoc Topocast In addition to the Topobroadcast, the communication in Topocast mode will be addressed explicitly to the recipient and the addressing can be done either through receiver name (vehicle-ID e.g. veh_0) or the IP-Address of the vehicle.\nfinal byte[] ipv4Address = {127,36,50,4}; AdHocChannel commonChannel = AdHocChannel.SCH1; int hops = 2; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().topoCast(ipv4Address, hops, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geobroadcast In contrast to Cellular Network above, the simulation entities act as active communication part (transmitter and receiver) and all simulation entities within range are getting messages in Geobroadcast mode.\nAs example in the following illustration, The vehicles veh_0, veh_2, veh_3 and the RSU are Ad-hoc equipped and there is no vehicle in the communication range of RSU, therefore a hop is not possible to next vehicle veh_0. But the vehicles veh_2 and veh_3 are able to communicate with each other.\n Principle of Ad-hoc Geobroadcast mode   With the methods\n geoBroadCast(GeoCircle geoCircle) geoBroadCast(GeoRectangle geoRectangle)  of the Eclipse MOSAIC class AdHocMessageRoutingBuilder ,we are able, to configure the required area as a circle or a rectangle.\nGeoPoint center = GeoPoint.latlon(52.5, 13.2); GeoCircle adHocModule = new GeoCircle(center, 3000); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(adHocModule); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  Analogous to the examples above, we can also configure the transmission area as a rectangle.\nThe next code snippet illustrates a possible configuration with a rectangular transmission area and a specified Ad-hoc channel.\nGeoPoint pointA = GeoPoint.latlon(52.51355, 13.22000); GeoPoint pointB = GeoPoint.latlon(52.52000, 13.21000); final double radius = 3000.0; GeoRectangle transmissionArea = new GeoRectangle(pointA, pointB); MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoBroadCast(transmissionArea, AdHocChannel.SCH1); getOs().getCellModule().sendV2XMessage(new MyV2XMessage(routing));  Ad-hoc Geocast The class AdHocMessageRoutingBuilder only has one method for Geocasting mode, geoCast(DestinationAddress destinationAddress, AdHocChannel adHocChannel). Communication is possible if the IP-address of receiver is known and both (receiver and transmitter) are on the same Ad-hoc channel.\n In this context the name Geocast is misleading, because a geological condition is not necessary.\n  As you can see in the next picture, the RSU uses the Ad-hoc channel SCH1 and several vehicles use different Ad-hoc channels. Assuming the RSU tries to send a message to veh_1 and has knowledge about the IP-Address of veh_1, if the vehicle veh_1 also uses the same channel SCH1, the transmission will be completed successfully.\n Ad-hoc Geocast communication between entities using the same channel   Below you can see a possible configuration.\nfinal byte[] ipv4Address = {127,36,50,4}; DestinationAddress destAddress = new DestinationAddress(ipv4Address); AdHocChannel commonChannel = AdHocChannel.SCH1; MessageRouting routing = getOs().getAdHocModule().createMessageRouting().geoCast(destAddress, commonChannel); getOs().getAdHocModule().sendV2XMessage(new MyV2XMessage(routing));  CAM - Implementation A Cooperative Awareness Messages (CAM) consists of four parts:\n Header with generic information MessageBody ServiceList TaggedValue list  First of all, generic information like protocol version, creation time stamp are submitted. Normally this data set follows a network beacon, which already contains data like position and speed. Nevertheless, this functionality must be implemented in the network layer, that means in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body can contain either RSU or Vehicle awareness data. In the first case, only the RSU type is submitted, but this probably changes with a new CAM specification. In the second case, we provide date like vehicle width, length, position, speed, type and heading. The specification is not completely implemented, especially acceleration data and light, brake status are missing. The third part of the CAM specification, the service list, is also not implemented. This will probably change, when a list of services is defined by the ETSI. Last but not least a message contains a tagged list, a key value map with optional data. This is fully implemented and is used for our traffic light CAM messages, which provide the traffic light status in such a list.\nUser defined tagged values If you are required to exchange custom data within CAMs, the field UserTaggedValue can be used. For adding such data to the CAM, the application needs to implement the method beforeGetAndResetUserTaggedValue() from the CommunicationApplication interface. If a CAM is about to be sent, the custom data can be set using the getOs().setUserTaggedValue(byte[]) method. The receiver can simple access the data by accessing the field directly from the received CAM message:\nbyte[] value = cam.getUserTaggedValue (); if (value != null) { // read user tagged value} }  Timing Requirements CAMs are generated by the CAM Management and passed to lower layers when any of following rules apply:\n maximum time interval between CAM generations: $1s$; minimum time interval between CAM generations: $0.1s$; generate CAM when absolute difference between current heading (towards North) and last CAM heading \u0026gt; $4 deg$; generate CAM when distance between current position and last CAM position \u0026gt; $5m$ generate CAM when absolute difference between current speed and last CAM speed \u0026gt; $1ms$; These rules are checked latest every $100ms$;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"d32a5f22c5ae5d143ef2bc4c35a326c8","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/communication/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/develop_applications/communication/","section":"docs","summary":"Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the communication should occur. Communication can be achieved with external network simulators ( OMNeT++, ns-3) or one of the built-in communication simulators SNS or Eclipse MOSAIC Cell.","tags":null,"title":"Communication in Applications","type":"docs"},{"authors":null,"categories":null,"content":"The different modules of the Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event. An event describes when it should be processed and which information is processed. Moreover an event has an assigned priority.\nAttributes of Event The class Event contains the following attributes:\n long time: defines the time when the execution of the event is triggered. long nice: defines the priority of the event. When multiple events are scheduled for the sametime, the events are ordered in ascending order. List\u0026lt;EventProcessor\u0026gt; processors: is a list of components that shall process the event. Object resource: is an object that contains additional information designated for the processor of the event. The resource can be any object.  Methods of Event  Event(): There are multiple constructors for Event with different parameters. Every constructor sets default values for the attributes that are not defined by the arguments of the constructor. Event newTime(long time): allows the creation of a new event with a new execution time based String getResourceSimpleClassName(): returns the class name of the resource as String. int compareTo(Event event): implements the standardized Java interface Comparable. Toorder the events, first the time of the event is evaluated. In case the times are equal, the priority of the events is compared.  Interface EventManager The interface EventManager defines the method void addEvent(Event event) that needs to be implemented to add an event to the execution.\nInterface EventScheduler The interface EventScheduler extends the interface EventManager and is used for classes that trigger events.\nMethods of EventScheduler  boolean isEmpty(): returns true if the scheduler contains no elements, otherwise it returns false. long getNextEventTime(): returns the time of the next event. long getScheduledTime(): returns the time when the last event has been executed. List\u0026lt;Event\u0026gt; scheduleEvents(long time): returns a list of objects that are scheduled for a certain simulation time. Set\u0026lt;Event\u0026gt; getAllEvents(): returns a set of all events that are considered by the scheduler.  EventSchedulerImpl The class EventSchedulerImpl is an implementation of the interface EventScheduler.\nInterface EventProcessor The interface EventProcessor defines how the execution module gets the events. The execution module therefore has to implement the following methods:\n void processEvent(Event event): The module processes the event. boolean canProcessEvent(): returns true when the module is currently able to process new events, otherwise it returns false.  InterceptedEvent Class EventInterceptor In some situation it is useful to intercept events before they actually reach the intended processors. By intercepting the events it is possible to apply further monitoring and to filter which events the event processors receive. The class EventInterceptor is used to construct objects of the type InterceptedEvent. In the constructor it is possible to specify an EventManager that manages the intercepted events. Moreover, objects of the type EventProcessor can be specified that shall process the intercepted events.\nClass InterceptedEvent The class InterceptedEvents extends the class Event. It is used to provide type safe allocations of events that shall be intercepted.\n","date":1565481600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565481600,"objectID":"77fcc6d6f359287fbc8c37d7e6c54048","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/","publishdate":"2019-08-11T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/event_scheduler/","section":"docs","summary":"The different modules of the Application Simulator communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.\nEvent The class Event contains the information that is necessary to process an event.","tags":null,"title":"Event Scheduling","type":"docs"},{"authors":null,"categories":null,"content":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles, and the Application Simulator requires detailed information about the road infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is used which is placed in the application folder of the scenario. This database consists of the following tables:\nDatabase tables    Database Name Description     Node Contains all Nodes of the road network such as junctions and nodes describing the geometry of a road. Each node is identified by an unique ID (long).(refer to http://wiki.openstreetmap.org/wiki/Node)   Way Provides various properties for each way of the road network.(refer to http://wiki.openstreetmap.org/wiki/Way   WayConsistsOf Provides a list of nodes for each way of the road network.   Connection Contains a list of all connections of the road network including the way it originally is part of. Each connection describes an directed edge between two junctions in the road network.   ConnectionConsistsOf Provides a list of nodes each connection consists of.   Restriction Provides information about turn restrictions. Each turn restriction is described by a from-connection, a via-node, and a to-connection. This data is used for route calculation purposes.   TrafficSignals Contains detailed information about traffic lights and their signalling program. Currently not used.   Route Contains a list of all routes known for the simulation scenario. All routes referenced in the Mapping configuration must be presentin this table.   Building Corner Wall Provides information about buildings alongside the road network, e.g. for visualization purposes or sophisticated communication simulation models.   Version Contains the version of the Eclipse MOSAIC installation which was initially used to create the database.    Road network model This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes and connections can be seen. A node is either a junction or describes the geometry of a road. A connection is a directed edge between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating way, which may consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.\n Nodes and connections of the road network   Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern aaa_bbb_ccc):\n aaa - ID of the originating way bbb - ID of the node the connection starts at. ccc - ID of the node the connection ends in.   ID of connection in road network   Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge. Therefore, the following objects are identified as following:\nEdges are described by one start and one end node. The identifier of an edge consists of two parts (using the string pattern aaa_bbb_ccc_ddd):\n aaa_bbb_ccc - ID the connection the edge belongs to. ddd - ID of the node the edge starts at.   Structure of the Edge-ID   Lanes are described by an edge and a lane index. The identifier of a lane consists of two parts (using the string pattern aaa_bbb_ccc_ddd_e):\n aaa_bbb_ccc_ddd - ID the edge the lane belongs to. e - Index of the lane, starting by 0 (leftmost lane).   Structure of the Lane-ID   ","date":1565049600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1565049600,"objectID":"1d92f8a189d6829395465481d4b2ddad","permalink":"https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/","publishdate":"2019-08-06T00:00:00Z","relpermalink":"/mosaic/docs/develop_applications/road_traffic/","section":"docs","summary":"Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates.","tags":null,"title":"Scenario Database","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"ad9ca34c3728e0522fcf5122cbadab93","permalink":"https://www.eclipse.org/mosaic/group/fokus/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/fokus/","section":"group","summary":"The **Fraunhofer Institute for Open Communication Systems (FOKUS)** is the leading group behind the simulation framework Eclipse MOSAIC, which has now been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners and researches to test smart mobility services and intelligent traffic scenarios.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The File Output Generator is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the File Output receives, one line (or more in case of an iteration object) is added to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.\nOne example output could be the following:\nCELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000 V2X_MESSAGE_TRANSMISSION;6000000000;DENM;3;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;7000000000;veh_0;35.501624617716296;186.33236029307432;52.655993308955196;13.569065826100868;0.0;35.501624617716296;-0.6083753822837039;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_REGISTRATION;7000000000;veh_1;ElectricVehicle;null;Unequipped;5.0;2.5;70.0;2.6;4.5;0.5;1.0;1.0;0.0;1;1;0.0 VEHICLE_UPDATES;8000000000;veh_0;34.978651295430026;186.33236029306624;52.65568017869267;13.569019012494635;0.0;70.48027591314633;-0.5229733222862691;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false V2X_MESSAGE_TRANSMISSION;8000000000;DENM;4;rsu_0;52.65027;13.545;0.0;CELL_GEOCAST;/255.255.255.255;null VEHICLE_UPDATES;9000000000;veh_0;35.73455352933612;186.33236029306624;52.65536028153272;13.56897118787549;0.0;106.21482944248245;0.7559022339060917;0.0;false;1;4067968_28830219_3290027832_2450938914;0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false VEHICLE_UPDATES;9000000000;veh_1;35.52345835176762;186.33265000325784;52.65599046030636;13.569112899208802;0.0;35.52345835176762;-0.5865416482323766;0.0;false;1;4067968_28830219_3290027832_2450938914;1;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;false;false;false  Configuring the FileOutput  The main configuration file is located at \u0026lt;mosaic-root\u0026gt;/scenarios/\u0026lt;scenarioName\u0026gt;/output/output_config.xml  Basic configuration The following listing shows a basic example for the configuration of the FileOutput:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;filename\u0026gt;output.csv\u0026lt;/filename\u0026gt; \u0026lt;directory\u0026gt;.\u0026lt;/directory\u0026gt; \u0026lt;separator\u0026gt;;\u0026lt;/separator\u0026gt; \u0026lt;subscriptions\u0026gt; \u0026lt;subscription id=\u0026quot;...\u0026quot;\u0026gt; ... \u0026lt;/subscription\u0026gt; ... \u0026lt;/subscriptions\u0026gt;\u0026gt; \u0026lt;/output\u0026gt;  Basic configuration parameters for FileOutput\nThe usage of the parameters is described in the following table:\n   Parameter Usage     id Sets the id for the output   enabled If set to \u0026ldquo;false\u0026rdquo;, output is not used (default value is \u0026ldquo;true\u0026rdquo;)   update Sets the update interval in seconds for the output   start Sets the start time in seconds for output generation. This has nothing to do with the run time of the actual simulation   end Sets the end time in seconds for output generation. This has nothing to do with the run time of the actual simulation   loader Sets where the output is loaded from using the Java-class (see previous listing)    Basic Configuration of file output\nInteraction record Each interaction record is derived from a certain interaction type and composed of several entries,which are separated by Element separator.\nThe configuration of the file output is explained at the example of the VehicleUpdates interaction:\n\u0026lt;subscription id=\u0026quot;VehicleUpdates\u0026quot; enabled=\u0026quot;true\u0026quot;\u0026gt; \u0026lt;entries\u0026gt; \u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Name\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Speed\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Updated:Position.Longitude\u0026lt;/entry\u0026gt; \u0026lt;/entries\u0026gt; \u0026lt;/subscription\u0026gt;  Specific Configuration for interaction\n Attribute id indicates the interaction type, namely the class name of the interaction. The element entries defines the format and content of the handled subscription record. The element entries is composed of several sub-elements entry, which correspond to columns of a subscription record and the sequence of the columns is the same as that of sub-elements entry.  In total, there are three basic types of entries:\nConstant Every quoted entry is defined as a constant. The content inside the quotation will be directly written into each corresponding interaction record.\n\u0026lt;entry\u0026gt;\u0026quot;UPDATE_VEHICLE\u0026quot;\u0026lt;/entry\u0026gt;  An example for constant type entry\nBasic method The Basic method type accesses values of the interaction object by using the appropriate getXXX() methods. For an entry, the root object for method invoking is the corresponding interaction class, here VehicleUpdates. As this object provides the simulation time by calling the getter method getTime(), the entry Time retrieves the requested value. If a null object is returned before the last method of cascaded methods is invoked, then null will be written to the corresponding field.\n\u0026lt;entry\u0026gt;Time\u0026lt;/entry\u0026gt;  An example for constant type entry\nIteration \u0026lt;entry\u0026gt;Updated:Id\u0026lt;/entry\u0026gt;  An example for method type entry with iteration\nThe first part of this example is Updated , which means to invoke the getUpdated method of class VehicleUpdates. Then a list of VehicleInfo objects is returned. The character : indicates the iteration, which means that for each of the VehicleInfo objects in the returned list the getId method is invoked.\nCascading \u0026lt;entry\u0026gt;Updated:Position.Latitude\u0026lt;/entry\u0026gt;  An example for method type entry with iteration and cascading\nIn this example, there is a dot operation, which is a cascade operation. Here getPosition method of VehicleInfo class is called and a GlobalPosition object is returned. Then we continuously invoke the getLatitude method of this GlobalPosition object.\nExtended Method All the methods involved above are the basic methods. There also is some functionality, which we cannot extract from these existing methods. So an extended method set is offered to meet these requirements and also as an extension point in the future.\n\u0026lt;entry\u0026gt;TimeInSec\u0026lt;/entry\u0026gt;  An example for simple extended method type entry\nWith existing methods of VehicleUpdates and its super class Interaction, we cannot get the timestamp of a interaction in second. (only Interaction.getTime, which returns a time in ns, is available). Here, getTimeInSec is a method extension for Interaction class. The extended method set will be listed later.\nFurther details The method type of entry definition supports cascaded iteration as follows:\n\u0026lt;entry\u0026gt;List1:List2:Id\u0026lt;/entry\u0026gt;  An example for cascaded iteration\nIt is possible to handle several different iterating operations, coming from the entry definition:\n\u0026lt;entry\u0026gt;Senders:Id\u0026lt;/entry\u0026gt; \u0026lt;entry\u0026gt;Receivers:Id\u0026lt;/entry\u0026gt;  An example for multi-level iteration\ngetSenders() and getReceivers() are two different iterations. In this case, a combination of both Ids from the lists will be generated. The result may look like this:\nsender1, receiver1 sender1, receiver2 sender2, receiver1 sender2, receiver2  Output result of the above listing\nNote: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.\nAdditional features Limit output on time frame You can configure the File Output Generator to write out interactions within a specific frame of simulation time. This can be configured by setting the start and end attributes accordingly:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt; \u0026lt;output id=\u0026quot;fileoutput\u0026quot; enabled=\u0026quot;true\u0026quot; start=\u0026quot;300\u0026quot; end=\u0026quot;1000\u0026quot; update=\u0026quot;5\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; ... \u0026lt;/output\u0026gt;  An example for restricting output generation of interactions within a time frame\nCompress Output The tag \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; can be added to the output configuration, in order to compress the output using gzip compression. This feature is suitable for large-scale scenarios with many outputs.\n\u0026lt;output id=\u0026quot;output\u0026quot; loader=\u0026quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader\u0026quot;\u0026gt; \u0026lt;write\u0026gt;file+compress\u0026lt;/write\u0026gt; ... \u0026lt;/output\u0026gt;  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"8a0ce6620232f8de93a82bc2989cf5de","permalink":"https://www.eclipse.org/mosaic/docs/visualization/filevis/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/filevis/","section":"docs","summary":"The File Output Generator is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For each interaction the File Output receives, one line (or more in case of an iteration object) is added to a CSV output file.","tags":null,"title":"File Output Generator","type":"docs"},{"authors":null,"categories":null,"content":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.\nEclipse MOSAIC Application Simulator The Application Simulator plays an important role in the simulation of vehicles and its functions. It provides the capability to model the application logic for different simulation units (e.g. vehicles, road side units (RSUs), traffic lights, and others) as well as possible interaction attempts between the units via different communication links.\nFolder Structure └─ \u0026lt;scenario_name\u0026gt; ├─ application | ├─ YourApplication.jar | ├─ application_config.json ............. Configuration file for the ambassador. | └─ \u0026lt;scenario_name\u0026gt;.db .................. Database file for navigation. └─ mapping └─ mapping_config.json ................. Configuration file for the ambassador.  This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenario_name\u0026gt;/application/application_config.json. However, it is not necessary to provide such file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC installation package.\nOverview Each simulation unit (e.g. vehicle, RSU, traffic light ..) can have different applications (depending on their application Mapping). The applications for the units are basically compiled JAVA classes, which extend the abstract class AbstractApplication. Those classes have to be deployed as pre-compiled JAR files into the application folder of the simulated scenario.\n  Overview of interaction between applications and the unit\u0026rsquo;s operating system with its modules. An example V2X message propagation is presented.   Application Operating System The AbstractApplication possesses a unit-specific OperatingSystem, which allows interactions with the simulated parameters. The operating system provides access to information like the current time or position of the units and could control unit-specific actions (like slowDown() for vehicles).\nAs the interaction types for navigation (retrieving road network information and calculating routes) and communication (preparing and sending messages) are more complex, they are separated into the specific modules NavigationModule (Navigation + Routing for vehicles) / RoutingModule (Routing-only for static units) and AdHocModule / CellModule with APIs dedicated to their purpose.\nThe following table lists all modules a unit\u0026rsquo;s operating system could provide.\n   Module Description     NavigationModule Full featured access to the central navigation component for vehicles   RoutingModule Access to routing functionalities for static units as RSUs   AdHocModule Communication via ad hoc mode, using WIFI or ITS G5 specific means (e.g. for addressing)   CellModule Communication via cellular services (different configuration / addressing modes)     Note: The presented communication modules AdHocModule, CellModule are used for the sending part of a transmission. The message reception is realized by Application Interfaces provided by the CommunicationApplication.\n Application Interfaces Application interfaces handle call-backs to incoming events via their methods, like onVehicleUpdated(), called by the application simulator. The following table lists all interfaces usable for application implementation, the type of unit as well as important other interfaces it implements. Interface specific public methods which have to be implemented by the user are listed in the \u0026ldquo;Provides\u0026rdquo; column. The elementary interface (Application) provides the methods onStartup(), onShutdown(). Implementation details are given in Development of applications.\n   Interface Applicable to Provides Description     Application / AbstractApplication all onStartup, onShutdown Elementary application class providing an operating system   ConfigurableApplication all  Basic application class providing an operating system and a configuration, which automatically loaded from a JSON file.   CommunicationApplication all onMessageReceived, onAcknowledgementReceived, onCamBuilding, onMessageTransmitted All applications that implement some form of V2X communication are to implement this interface.   VehicleApplication vehicle onVehicleUpdated General vehicle funtionality   ElectricVehicleApplication vehicle onBatteryStateUpdated, onChargingRequestRejected Electric vehicle functionality   TrafficSignAwareApplication vehicle onTrafficSignInvalidated, onTrafficSignNoticed Used by vehicles which are aware of traffic signs.   TrafficLightApplication traffic light onTrafficLightGroupUpdated Traffic light functionality   TrafficManagementCenterApplication TMC onInductionLoopUpdated, onLaneAreaDetectorUpdated Traffic management functionality   MosaicApplication all onSumoTraciResponded, onInteractionReceived Features that involve customized RTI-interactions of MOSAIC    Note: A roadside unit (RSU) is the most unit and usually communicates only. Thus, an RSU application implements CommunicationApplication.\n Configuration The Application simulator is configured in the file \u0026lt;scenario_name\u0026gt;/application/application_config.json:\n{ \u0026quot;messageCacheTime\u0026quot;: \u0026quot;30s\u0026quot;, \u0026quot;minimalPayloadLength\u0026quot;: 200, \u0026quot;encodePayloads\u0026quot;: true, \u0026quot;navigationConfiguration\u0026quot; : { \u0026quot;type\u0026quot;: \u0026quot;database\u0026quot; } }  Furthermore, depending on the deployed applications, the applications itself may offer configuration options in custom configuration files (e.g. ETSIApplication.json or ETSIApplication_veh_0.json).\n Eclipse MOSAIC Mapping Closely related to the Application Simulator, the Mapping Ambassador is used for the initial choreography of a simulation. It defines two major aspects for the simulation units:\n number, properties, position (e.g. of RSUs, traffic lights) or initial routes (of vehicles, simulated in a traffic/vehicle simulator) specific application(s) to be \u0026ldquo;mapped\u0026rdquo; on the simulation units and simulated in the Application Simulation  The JSON based configuration is located in \u0026lt;scenario_name\u0026gt;/mapping/mapping_config.json.\nConfiguration The Mapping configuration is divided into different parts:\n Pre Definitions of prototypes and deviations Entity Definitions of vehicles, rsus, tls servers and tmcs Advanced Vehicle Definitions (including route generation) in matrixMappers Common Definitions in config  Prototypes prototypes define models for other objects, which can be reused later in the other sections of the Mapping. This allows reusing the definition of certain entities such as vehicles or the combination of multiple applications, reducing redundancies and resulting in shorter Mapping configurations.\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CamVehicle\u0026quot;, \u0026quot;accel\u0026quot;: 2.6, \u0026quot;decel\u0026quot;: 4.5, \u0026quot;length\u0026quot;: 5.00, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp\u0026quot; ] } ]  Prototypes can be created for all types of entities. Next to the list of applications which is available for all types of entities, vehicle types provide various other parameters to be adjusted.\n   Parameter Description Deviation     vehicleClass The class of the vehicle, e.g. Car, ElectricVehicle, EmergencyVehicle, Bicycle, HeavyGoodsVehicle, and more.    accel The maximum acceleration of the vehicle in $m/s^2$. Yes   decel The maximum deceleration of the vehicle in $m/s^2$, e.g. when stopping for traffic lights. Yes   emergencyDecel The maximum deceleration of the vehicle in $m/s^2$, in order to avoid accidents.    length The length of the vehicle in $m$. Yes   maxSpeed The maximum speed of the vehicle in $m/s$. Yes   minGap The minimum gap towards the leader in $m$, i.e. the space in front in a traffic jam. Yes   sigma The driver\u0026rsquo;s imperfection $[0,1]$.    tau The reaction time (or time headway) of the vehicle in $s$. Yes   speedFactor This factor is used to determine the speed limit to comply on roads, e.g. 1.1 would exceed the speed limit by 10%. Yes   laneChangeMode The lane changing behavior of the vehicle: COOPERATIVE. CAUTIOUS, AGGRESSIVE, PASSIVE, OFF    applications The list of applications to map onto this vehicle type.     For the majority of the parameters above (see column \u0026ldquo;Deviation\u0026rdquo;), a normal distribution can be created. In that case, each individual vehicle spawned with this prototype will be loaded with a random value within this distribution. To achieve this, a separate deviations attribute must be added to the type:\n\u0026quot;prototypes\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;Car\u0026quot;, \u0026quot;length\u0026quot;: 5.0, \u0026quot;maxSpeed\u0026quot;: 70.0, \u0026quot;deviations\u0026quot;: { \u0026quot;length\u0026quot;: 1.2, \u0026quot;maxSpeed\u0026quot;: 5.0 } } ]  According to the config above, the basic parameter value conforms to the expected value, and the given value in the deviations attribute conforms to the $\\sigma$ of the Gaussian distribution(meaning for the example of maxSpeed that ~68% of the values will be located in the interval [65.0, 75.0]). The deviation will be limited to ±2$\\sigma$.\nEntities Vehicles\nThe vehicles-section is the centerpiece of the Mapping configuration. It defines the departures (times and number), routes, and types of the vehicles.\nEach spawner in this list generates a traffic stream of vehicles on a certain route. The vehicles stream begins at startingTime and generates vehicles until maxNumberVehicles is reached. The time between two consecutively vehicles is implicitly given by the targetFlow property, which defines how many vehicles per hour are going to be spawned.\nEach vehicle spawner must refer to at least one vehicle type (types). A vehicle type must either refer to a type from the prototypes section by using its name, or be defined as a completely new vehicle type with all necessary parameters. If more than one vehicle type is referenced in the types attribute, weights can be used to specify the ratios to choose between them when loading an individual vehicle. If no weights are defined, individual vehicle types are assumed to be distributed equally.\n Note: if at least one vehicle type has a weight defined, all types without a defined weight are ignored.\n \u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;NormalVehicle\u0026quot;, // this vehicle has no applications \u0026quot;applications\u0026quot;: [ ], \u0026quot;weight\u0026quot;: 0.2 } ] } ]  Additional notes:\n The route refers to a route usually defined in the scenario database file (*.db) of the scenario. In order to define only one single vehicle to be spawned, the maxNumberVehicles property can be set to 1. By defining the endingTime property, the flow is stopped from being generated when the given simulation time is reached. By defining the spawningMode to one of the following values, the departure time of the individual vehicles can be adjusted:  CONSTANT - default case, all vehicles have equal time distance to match target_flow. POISSON - vehicles depart within a Poisson distribution, resulting in a more natural traffic flow. GROW - the flow of departing vehicles increases linear up to target_flow. SHRINK - the flow of departing vehicles decreases linear starting at target_flow. GROW_AND_SHRINK - the flow of departing vehicles increases up to target_flow and decreases afterwards.   By defining the laneSelectionMode to one the following values, the selection of the departure lane can be adjusted:  DEFAULT - selects the lane for the next vehicle based on the list of given lanes in a roundrobin manner. ROUNDROBIN_HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to DEFAULT. HIGHWAY - trucks will be spawned on the rightmost lane, all other vehicles according to BEST. RANDOM - the vehicle will be placed randomly on one of the available lanes of the road. FREE - the vehicle will be placed on a free lane of the road. BEST - the vehicle will be placed on the best lane of the road, according to the current traffic situation and departure speed.    Road Side Units\nThe rsus-section offers the possibility to define instances of application supported Road Side Units (RSU)s and place them on a defined position (lat, lon coordinates). Referring to prototype definitions with simply specifying its name in the name property will automatically fill in relevant properties of the RSU.\n\u0026quot;rsus\u0026quot;: [ { \u0026quot;lat\u0026quot;: 52.65027, \u0026quot;lon\u0026quot;: 13.54500, \u0026quot;name\u0026quot;: \u0026quot;WeatherServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.app.tutorial.WeatherServerApp\u0026quot; ] } ]  Traffic Lights\nIn the trafficLights-section, applications can be mapped to traffic light groups. Usually, individual traffic lights are part of traffic light groups to control a whole junction, whereas the junction possesses a certain position. The traffic light groups and their positions are defined in the simulator specific configuration file (e.g. the *.net.xml for SUMO and *.ttl.json for PHABMACS). The tlGroupId-property allows mapping of applications to the traffic light groups, referring them by Id.\nAlternatively, the definition of weights leads to a random distribution of the referred applications through ALL traffic lights of the scenario. (Note: The weights do not have to add up to 100 or 1. Consequently, all traffic lights will be mapped using the specified prototypes as soon as one weight differs from zero. So in case you don’t want all traffic lights to have applications running on them you have to define one traffic light without any applications and add a weight to it.\n\u0026quot;trafficLights\u0026quot;: [ { \u0026quot;tlGroupId\u0026quot;: \u0026quot;26704448\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp\u0026quot; ] }, { \u0026quot;tlGroupId\u0026quot;: \u0026quot;252864802\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp\u0026quot; ] } ]  For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to Simulation Scenarios - Traffic Lights.\nServers\nThe servers-array can be used to specify server units, which can be used to communicate with other units via the cell module. Capacity configurations for servers should be done when enabling the CellModule. Delay and transmission models are configured in the network.json of the cell module (see here).\n Note: The group parameter in the mapping configuration has to match with the id in the network configuration in order to properly function.\n \u0026quot;servers\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;MyServer\u0026quot;, \u0026quot;group\u0026quot;: \u0026quot;TestServers\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;ServerApp1\u0026quot;, \u0026quot;ServerApp2\u0026quot; ] } ]  Traffic Management Centers\nThe tmc-section offers the possibility to define instances of a Traffic Management Center (TMC). A TMC provides the possibility to interact with the infrastructure of the road, i.e. retrieving traffic properties from detectors (e.g. traffic flow), and changing properties from the road (e.g. speed limits). Additionally, TMCs are an extension of Servers and can be configured in the same way that servers are\n\u0026quot;tmcs\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;HighwayManagement\u0026quot;, \u0026quot;group\u0026quot;: \u0026quot;TestTmcServers\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;com.dcaiti.vsimrti.app.tutorials.highway.HighwayManagementApp()\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ \u0026quot;detector_0\u0026quot;, \u0026quot;detector_1\u0026quot;, \u0026quot;detector_2\u0026quot; ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ]   All unit spawners could be realized in two different ways. The Deterministic Mapping produces the exact same sequence of mapped vehicles in every simulation run with regard to the given ratios at each point in time the simulation). The Stochastic Mapping results in a random order of mapped units.\n Use Type Distributions in Complex Traffic Scenarios In the case, you have many vehicle spawners defined and you want to distribute prototypes on those vehicles equally without defining them again and again, you can use typeDistributions. By doing so, it is very simple to adjust the list of types and weights at only one place in the configuration file.\nInstead of defining an equal list of types and weights for each single vehicle spawner, like in this example:\n\u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] } ]  \u0026hellip; you can use typeDistributions to define the distribution of types for each vehicle once and reuse them:\n\u0026quot;typeDistributions\u0026quot;: { \u0026quot;exampleTypeDist\u0026quot; : [ { \u0026quot;name\u0026quot;: \u0026quot;TypeA\u0026quot;, \u0026quot;weight\u0026quot;: 0.1 }, { \u0026quot;name\u0026quot;: \u0026quot;TypeB\u0026quot;, \u0026quot;weight\u0026quot;: 0.9 } ] }, \u0026quot;vehicles\u0026quot;: [ { \u0026quot;startingTime\u0026quot;: 5.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;1\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; }, { \u0026quot;startingTime\u0026quot;: 55.0, \u0026quot;targetFlow\u0026quot;: 1800, \u0026quot;maxNumberVehicles\u0026quot;: 120, \u0026quot;route\u0026quot;: \u0026quot;2\u0026quot;, \u0026quot;typeDistribution\u0026quot;: \u0026quot;exampleTypeDist\u0026quot; } ]  Advanced vehicle spawners with route generation It is also possible to define and use OD (origin-destination) matrices by adding a ODMatrixMapper to the matrixMappers-list. Each MatrixMapper consists of a list of points, the vehicle-types to be used and the actual flow-values (odValues) between each of the points. It is possible to define multiple matrices. This way can achieve distinctively different compositions of the vehicle flows.\nThe MatrixMapper will be called before the actual execution of the simulation and will generate vehicle-spawners for the flow between each of the points.\n\u0026quot;matrixMappers\u0026quot;: [ { \u0026quot;points\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CityA\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 52, \u0026quot;longitude\u0026quot;: 13 }, \u0026quot;radius\u0026quot;: 1000 } }, { \u0026quot;name\u0026quot;: \u0026quot;CityB\u0026quot;, \u0026quot;position\u0026quot;: { \u0026quot;center\u0026quot;: { \u0026quot;latitude\u0026quot;: 48, \u0026quot;longitude\u0026quot;: 10 }, \u0026quot;radius\u0026quot;: 1000 } } ], \u0026quot;types\u0026quot;: [ { \u0026quot;name\u0026quot;: \u0026quot;CAMVehicle\u0026quot; } ], \u0026quot;odValues\u0026quot;: [ [0, 100], //100 vehicles from CityA to CityB [200, 0] //200 vehicles from CityB to CityA ] } ]  Common Configuration Next to the specific configuration of prototypes and simulation entities, some general parameters can be adjusted:\n{ \u0026quot;config\u0026quot;: { \u0026quot;scaleTraffic\u0026quot; : 1.0, \u0026quot;start\u0026quot;: 0, \u0026quot;end\u0026quot;: 500, \u0026quot;adjustStartingTimes\u0026quot;: false, \u0026quot;randomizeFlows\u0026quot;: false, \u0026quot;randomizeStartingTimes\u0026quot; : false, \u0026quot;randomizeWeights\u0026quot;: false } }     Parameter Description     scaleTraffic Scales the targetFlow of spawned vehicles per hour as well as the maxNumberVehicles by the given factor.   start Adjusts the point in time (in $s$) to start spawning vehicles. Any vehicle spawner with a lower startingTime will be ignored.   end Adjusts the point in time (in $s$) to end spawning vehicles. Any vehicle spawner with a greater startingTime will be ignored.   adjustStartingTimes If set to true, the starting time of each spawner is reduced by the value in start.   randomizeFlows If set to true, the departure time of vehicles within a vehicle spawner is slightly randomized.   randomizeStartingTimes If set to true, the starting time of each vehicle spawner is slightly randomized.   randomizeWeights If set to true, each weight greater than zero is slightly randomized.    Unit Identifiers Every traffic object in Eclipse MOSAIC has a globally unique string identifier. These identifiers are used to identify a traffic object in Eclipse MOSAIC as well as in different ambassadors. From user’s aspect, these identifiers will be seen in the log files which are generated after a simulation. The following table explains, which identifier belongs to which traffic object.\n   Traffic Object Eclipse MOSAIC Internal ID     Vehicle veh_\u0026lt;seq_nr\u0026gt;   RSU rsu_\u0026lt;seq_nr\u0026gt;   TMC tmc_\u0026lt;seq_nr\u0026gt;   Traffic Light tl_\u0026lt;group_id\u0026gt;     seq_nr is the sequence number of simulated vehicles, RSUs, TMCs, each starting from zero. group_id is the group id of the traffic light.   ##Basic Applications\nEclipse MOSAIC is shipped with several example applications which can be loaded on the vehicles. Next to the applications shipped with the tutorial scenarios Barnim and Tiergarten, there are further example applications to be found on our website.\nAdditionally, we provide an ETSI conform application which implement specific CAM generation rules for vehicles (org.eclipse.mosaic.fed.application.app.etsi.VehicleCamSendingApp), which is described in the following:\nETSI Application for vehicles This application generates ETSI data for its simulation unit (e.g. heading, position, speed and time for vehicles). According to its configuration, the application then sends out CAMs to other vehicles in range. Note that the messages are only send when the time lies between the configured minimum and maximum interval.\nCurrently, the default configuration (ETSIApplication.json) for the ETSI application looks like this:\n{ /* The maximum time offset (here 1 second) of sending CA-messages * (the offset will be different for every single vehicle to avoid interference) */ \u0026quot;maxStartOffset\u0026quot;: 1000000000, /* CAMs are sent at most every 1 second */ \u0026quot;minInterval\u0026quot;: 100000000, /* CAMs are sent at least every 1 second */ \u0026quot;maxInterval\u0026quot;: 1000000000, /* CAMs are sent when the position of the vehicle changes at least about 4 meters */ \u0026quot;positionChange\u0026quot;: 4, /* CAMs are sent when the heading of the vehicle changes at least about 4 degrees */ \u0026quot;headingChange\u0026quot;: 4, /* CAMs are sent when the velocity of the vehicle changes at least about 0.5 m/s */ \u0026quot;velocityChange\u0026quot;: 0.5 }  The CAMs sent out by this application consist of four parts:\n Header with generic information MessageBody TaggedValue list  First of all, generic information like protocol version and creation time stamp are transmitted. Normally this data set follows a network beacon, already containing data like position and speed. Nevertheless this functionality must be implemented in the network layer, i.e. in the network simulator. At the moment this is not supported and is therefore compensated in the next message part, the message body. The body contains vehicle awareness data, including data like vehicle width, length, position, speed, type and heading. However, the specification is not completely implemented. Last but not least a message can contain optional data.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"bf25e52bde5c4e80a5aa654a38a7b644","permalink":"https://www.eclipse.org/mosaic/docs/simulators/application_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/application_simulator/","section":"docs","summary":"This section presents the architecture and the main features of the Application Simulator as well as the related Mapping Ambassador, which is used to configure individual simulation entities (or simulation units) and \u0026ldquo;map\u0026rdquo; applications to them.","tags":null,"title":"Application Simulator","type":"docs"},{"authors":null,"categories":null,"content":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level. Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time.\nHowever, these logs do not conform to a generic formatting. For uniformly formatted or visually prepared results, Eclipse MOSAIC offers different Visualizers and Output Generators. For example, the FileOutputGenerator generates detailed outputs of e.g. vehicle positions, speeds, or message exchanges. In the scenarios brought by the latest release, this output mechanism is already configured.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"c60b5956ddd6a163875c0dc191dc8c6e","permalink":"https://www.eclipse.org/mosaic/docs/getting_started/run_mosaic/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/getting_started/run_mosaic/","section":"docs","summary":"Start a simulation with Eclipse MOSAIC using the command line:\n./mosaic.sh -s Barnim -v  mosaic.bat -s Barnim -v   Barnim scenario   Simulation results All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level.","tags":null,"title":"Run a simulation with Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"  The tool scenario-convert is part of MOSAIC Extended.\nHowever, you can use scenario-convert for free to generate scenarios which are executable with Eclipse MOSAIC. Get it here.\n  Download scenario-convert from DCAITI mirror  scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.\nIt will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation, route calculation\u0026hellip;).\nBased on a MOSAIC database, scenario-convert can export the data to SUMO-conform formats. Furthermore one can choose, whether to use routes generated by scenario-convert, use existing routes or build own routes via route generation tools (e.g. DUAROUTER by SUMO).\nThis chapter intends to highlight the most common workflows for the work with scenario-convert. We will be using this OSM-file for most of the use cases So feel free to follow along with the steps to get a better understanding on how the scenario-convert-script functions.\n Here you can find a complete reference to all options scenario-convert offers.\n   OSM-File of Steglitz   Creating a complete Eclipse MOSAIC-scenario from an OSM-file with one command This is the most straight forward way to create a scenario from your OSM-file. We will use the option --osm2mosaic, which is a combination of the options --osm2db and --db2mosaic.\nLet\u0026rsquo;s start off by showing you how a complete call could look like:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Change mosaic.version to the current version you are using.\nIn this section we use the scenario name steglitz. as synonym for path/to/steglitz..\n  This achieves a couple of things. First off the script is going to create a SQLite-database, which is used by Eclipse MOSAIC. Furthermore, a directory will be created, which should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm ├─ application | └─ steglitz.db ├─ cell | ├─ cell_config.json | ├─ network.json | └─ regions.json ├─ environment | └─ environment_config.json ├─ mapping | └─ mapping_config.json ├─ ns3 | ├─ ns3_config.json | └─ ns3_federate_config.xml ├─ omnetpp | ├─ omnetpp_config.json | └─ omnetpp.ini ├─ output | └─ output_config.xml ├─ sns | └─ sns_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let\u0026rsquo;s walk through all these files:\n First the steglitz.db will be created using the steglitz.osm-file. The steglitz.db will be used to create steglitz.con.xml, steglitz.edg.xml and steglitz.nod.xml, which are files used by SUMO.  SUMO Netconvert is used to create steglitz.net.xml, which is a network representation in SUMO. Now the SUMO-configuration steglitz.sumo.cfg is written. Afterwards the mapping_config.json and scenario_config.json are created and all files are moved to the right place. In the scenario_config.json values like the center coordinate will automatically be set using data from the SUMO related files.  While this is technically sufficient to start working on your scenario there are a couple of other things you can do to achieve better results.\nClean the OSM-file using Osmosis\nOsmosis will automatically be used to create a new OSM-file with the suffix _cleaned. The created file will contain much less clutter and usually is better suited for simulation purposes. Check the images below to see the difference the clean-up process can make.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm   Uncleaned OSM-file     Cleaned OSM-file      Uncleaned Net-file     Cleaned Net-file     To avoid \u0026ldquo;cleaning\u0026rdquo; the OSM-file, please use the option \u0026ldquo;skip-osm-filter\u0026rdquo;.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --skip-osm-filter  Generating Routes\nThe scenario-convert also offers the option --generate-routes, which will generate a route-file, given some additional information. For example purposes we will run the following command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  This will calculate three routes between the two given coordinates.\nAlternatively you can use the following command in order to generate routes with node-id\u0026rsquo;s as start and end point, which can be found in the steglitz.nod.xml file.\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-node-id 267350668 --route-end-node-id 313139970 --number-of-routes 3  see below for all command line options.\nExporting Traffic Lights\nAnother feature of the scenario-convert script is the ability to export traffic lights from the osm-file to be used by SUMOs netconvert. The extended call would look like this:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3 --export-traffic-lights  Conlusion\nThis wraps up one of the main workflows with the scenario-convert-script. A quick reminder on what we achieved:\n Cleaned up an OSM-file to only contain relevant data. Converted that OSM-file to formats that Eclipse MOSAIC/SUMO can handle. Created the project structure for a scenario. Calculated routes between two coordinates.  With all of this you can now start further developing your scenario. For a more detailed description on the next steps please have a look here (Simulation Scenarios) and here (Application Development).\nWhile this is the \u0026lsquo;happy world\u0026rsquo; workflow it is often necessary to manually adapt routes and insert them into your scenario. The following workflow will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.\nImporting Routes to your scenario As mentioned above your routes won\u0026rsquo;t always be created by the scenario-convert script. We generated some routes for the steglitz-scenario using SUMO\u0026rsquo;s duarouter, which you can find here. We\u0026rsquo;ll start with only the steglitz.osm and steglitz.rou.xml files:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz.rou.xml  Creating the database\nWe\u0026rsquo;ll start off by solely creating the database and applying OSMOSIS with the following command:\njava -jar scenario-convert.jar --osm2db -i steglitz.osm  The directory should look like this:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.db ├─ steglitz.osm ├─ steglitz.rou.xml └─ steglitz_cleaned.osm  Importing the route-file\n This is the interesting part of this workflow. 👍\n Let\u0026rsquo;s import our routes into the database.\nWe achieve this by calling:\njava -jar scenario-convert.jar --sumo2db -i steglitz.rou.xml -d .\\steglitz.db  Now all new routes are imported into our database. The following image shows a visualization of one of the created routes.\n Visualization of one of the routes   Creating the scenario\nThe final step is to create the scenario from the files we created so far.\njava -jar scenario-convert.jar --db2mosaic -d .\\steglitz.db  Instead of copying our SUMO-files this will generate all necessary files and move them into a Eclipse MOSAIC-conform folder structure:\n└─ \u0026lt;working-directory\u0026gt; ├─ steglitz.osm └─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json  As you can see the resulting folder structure looks just like the final output from the first workflow described.\nConclusion\nYou should now know how you can manually add routes to your scenario and have a deeper understanding of the way that some of the script parameters work.\nAttached Files A list of all attached files in this chapter:\n Steglitz OSM-file Steglitz Route-file  Reference documentation for scenario-convert Usage of scenario-convert The following listing shows an overview for the usage of scenario-convert:\n Usage: scenario-convert [OPERATION] -d \u0026lt;DATABASEFILE\u0026gt; [OPTIONS]* Examples (options in [] are optional): 1. Import an osm file and write data into database scenario-convert --osm2db -i \u0026lt;OSMFILE\u0026gt; [-o] [-d \u0026lt;DATABASE\u0026gt;] 2. Export db content to sumo-readable files scenario-convert --db2sumo -d \u0026lt;DATABASE\u0026gt; [-s \u0026lt;SUMOPREFIX\u0026gt;] [-n] 3. Reimport a sumo routefile into a database scenario-convert --sumo2db -d \u0026lt;DATABASE\u0026gt; -i \u0026lt;ROUTEFILE\u0026gt; 4. Combine steps 1 and 2 scenario-convert --osm2sumo -d \u0026lt;DATABASE\u0026gt; -i \u0026lt;OSMFILE\u0026gt; [-s \u0026lt;SUMOPREFIX\u0026gt;] 5. Export db content to Shapefile format scenario-convert --db2shp -d \u0026lt;DATABASE\u0026gt; 6. Import an srtm file and write elevation data to nodes of an existing database scenario-convert --srtm2db -i \u0026lt;SRTMFILE\u0026gt; -d \u0026lt;DATABASE\u0026gt; ------------------------------------------------------------------------------- CONFIGURATION FILE: -h,--help Prints this help screen. -c,--config-file \u0026lt;PATH\u0026gt; Optional, refers to a configuration file which contains all parameters in JSON format. --osm2db Converts a OpenStreetMap file to a new scenario database. --sumo2db Imports a SUMO Network/Routefile. Be aware that you may have to re-export an imported network. --srtm2db Imports an SRTM file and writes elevation data to nodes. --db2sumo Exports the network to SUMO node and edge files. --db2shp Exports the database into Shapefile format. --db2mosaic Creates directory structure for a MOSAIC scenario based on the database contents. --osm2sumo Combination of osm2db and db2sumo. --osm2mosaic Combination of osm2db and db2vsimrti. --update Updates the database to the current scheme. -d,--database \u0026lt;PATH\u0026gt; The path to the database. For import: File to import to. If not given, a new file is created. For export: File to load from. For update operations: file to update. -i,--input \u0026lt;PATH\u0026gt; Defines an input file to use in an import. File type depends on the import operation (OSM File/Database file/SUMO net file/SUMO route file). -s,--sumo-prefix \u0026lt;STRING\u0026gt; Prefix for the generated sumo files (uses database name when not defined). -f,--force Force overwrite of existing files instead of incrementing file names. -m,--mapping-file \u0026lt;PATH\u0026gt; Uses the given mapping configuration to export existing vehicleTypes and vehicles data to *.rou.xml (with --export-routes). --import-lat \u0026lt;DOUBLE\u0026gt; Center latitude of imported region to project coordinates. --import-lon \u0026lt;DOUBLE\u0026gt; Center longitude of imported region to project coordinates. --import-zone \u0026lt;STRING\u0026gt; UTM zone of location for projecting coords in default format (e.g. 32n). -g,--generate-routes Generates route(s) from one point to another. The begin and end for the route must be known (see below options). --route-begin-lat \u0026lt;DOUBLE\u0026gt; Latitude of the starting point, needs --route-begin-lon as well. --route-begin-lon \u0026lt;DOUBLE\u0026gt; Longitude of the starting point, needs --route-begin-lat as well. --route-begin-latlon \u0026lt;DOUBLE,DOUBLE\u0026gt; [latitude],[longitude] of the starting point. --route-begin-node-id \u0026lt;STRING\u0026gt; OSM node id of the starting point (use instead of lat/lon). --route-end-lat \u0026lt;DOUBLE\u0026gt; Latitude of the starting point, needs --route-end-lon as well. --route-end-lon \u0026lt;DOUBLE\u0026gt; Longitude of the starting point, needs --route-end-lat as well. --route-end-latlon \u0026lt;DOUBLE,DOUBLE\u0026gt; [latitude],[longitude] of the ending point. --route-end-node-id \u0026lt;STRING\u0026gt; OSM node id of the ending point (use instead of lat/lon). --route-matrix \u0026lt;STRING,STRING,...\u0026gt; Calculates all possible routes starting and ending at the given nodes, given as comma-separated list (e.g. 12345,87123,89123) --number-of-routes \u0026lt;INTEGER\u0026gt; Defines the number of alternative routes to be calculated (default=1). --skip-osm-filter Skips automatic filtering of the OSM file (only with osm2xxx). -b,--import-buildings Write OSM building information in database. --ignore-turn-restrictions Ignore all defined turn restrictions on OSM import. --disable-graph-cleanup Turns off the removal of unconnected parts from the main traffic network graph . Since several components of VSimRTI require one main graph without disconnected ways and nodes, this option should be used only if the cleanup procedure is faulty. --skip-netconvert Skips automatic starting sumo netconvert for creating netfile (only with xxx2sumo). --skip-traffic-lights-export Skips automatic exporting traffic light information for nodes (only with xxx2sumo). --osm-speeds-file \u0026lt;PATH\u0026gt; Define a property file which contains speed information which are used to set the speed for OSM ways without a max speed tag (only with osm2xxx). --osm-speeds-overwrite If set to true , the maxspeed tags of ways are ignored and replaced by either default values , or by speed information defined via the --osm-speeds-file option (only with osm2xxx). ------------------------------------------------------------------------------- File placement: When a database file is given with -d every created file will be placed by the database file in the given path. When the file is passed without a path the path used to execute the command from will be used as a base. For import operations where -d is omited all files will be placed alongside the input file given. When a file to be created already exist the filename will be postfixed with an incrementing number. This behaviour can be overwritten -------------------------------------------------------------------------------  Configuration-files for scenario-convert Scenario-convert offers a way to safe your conversion-parameters in a JSON configuration file using the option -c or --config-file.\nThe following listing shows how to save the options used in the example above:\n{ \u0026#34;operatingMode\u0026#34;: \u0026#34;osm2mosaic\u0026#34;, \u0026#34;inputFile\u0026#34;: \u0026#34;steglitz.osm\u0026#34;, \u0026#34;executeOsmosis\u0026#34;: true, \u0026#34;generateRoutes\u0026#34;: true, \u0026#34;routeBeginLatLon\u0026#34;: \u0026#34;52.457616,13.318392\u0026#34;, \u0026#34;routeEndLatLon\u0026#34;: \u0026#34;52.454774,13.333554\u0026#34;, \u0026#34;numberOfRoutes\u0026#34;: 3 }  Speed-files Below you can find a properties file which can be used during the import of OSM data in order to define speeds for ways, which do not have a maxspeeds-tag defined. For this purpose use the option --osm-speeds-file \u0026lt;FILE\u0026gt;. In the speed properties file, for each way type a speed value can be defined, according to the OSM highway key.\n# the unit the speed values are defined in [kmh, ms] speed.unit = kmh # the default speed for all way types which are not defined here speed.default = 30 # autobahn highway.motorway = 130 highway.motorway_link = 70 # bundesstrasse (germany) highway.trunk = 70 highway.trunk_link = 65 # linking bigger town highway.primary = 65 highway.primary_link = 60 # linking towns \u0026#43; villages highway.secondary = 60 highway.secondary_link = 50 #streets without middle line separation highway.tertiary = 50 highway.tertiary_link = 40 highway.residential = 30 #special roads highway.living_street = 5 highway.service = 20 # unclassified roads highway.unclassified = 30 highway.road = 20 # forest tracks highway.track 15  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"485ead0ca3596dfe810e10c66ea5a027","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_convert/","section":"docs","summary":"The tool scenario-convert is part of MOSAIC Extended.\nHowever, you can use scenario-convert for free to generate scenarios which are executable with Eclipse MOSAIC. Get it here.\n  Download scenario-convert from DCAITI mirror  scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from external sources like OpenStreetMap, SUMO etc into your existing scenarios.","tags":null,"title":"Scenario Convert","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;. For each simulation run a new folder is created.\n└─ log-\u0026lt;timestamp\u0026gt; ├─ apps | └─ \u0026lt;unitType\u0026gt;_\u0026lt;unitId\u0026gt; ................. Detailed application specific logs for each unit | ├─ OperatingSystem.log ............. Detailed operating system logs for the unit | └─ ExampleApp.log .................. Detailed application specific logs for each application. ├─ activities.csv ......................... Simulation details in comma separated value-format ├─ Application.log ....................... Information about the application ambassador ├─ Cell.log ............................... Cellular network log ├─ ChargingStation.log .................... ChargingStation ambassador log ├─ Communication.log ...................... (Ad hoc) network simulation ambassador log ├─ CommunicationDetails.log ............... Detailed output of network simulator (ns-3 or OMNeT++) ├─ Environment.log ........................ Logs of the environmental eventserver ├─ Mapping.log ............................ Mapping configuration logs ├─ MOSAIC.log ............................. General information, e.g. startup sequence information ├─ Navigation.log ......................... Detailed logs about navigation component in the application ambassador ├─ Traffic.log ............................ Traffic simulation log (SUMO or others) └─ output.csv ............................. Recorded data of the integrated File Output Generator  In addition to standard logging output for each federate there is a activities.csv file which contains detailed information about sent and received interactions. This file can be used to trace a simulation run for deep debugging. To enable this feature, the log level of the logger activities has to be set to INFO in the logback.xml (see section below).\nLogging The main configuration file for logging is \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. In this file, the log output can be configured in great detail. This file can be adjusted to your needs, e.g. you can set up a more detailed logging for communication components but set a less verbose output for Eclipse MOSAIC\u0026rsquo;s internal interactions or traffic simulation depending on your simulation focus.\nEclipse MOSAIC uses LOGback as logging framework. LOGback offers a lot of parameters to adapt the output to your needs. Please refer to this site for a detailed overview of all parameters you can use in the logback.xml file.\nPlease note that you can adjust the output to your needs by setting different log levels (ERROR, INFO, DEBUG etc.) for each component in the file at \u0026lt;mosaic-root\u0026gt;/etc/logback.xml. This might also influence the simulation performance because of a possibly high amount of data to be logged.\nFederate specific logging Depending on the simulation purpose, further configuration possibilities for federate specific logging may be of interest.\nFor instance, OMNeT++ exhibits an elaborated logging concept. The omnetpp.ini in the scenario folder includes options to adjust the logging levels. The outputs of this federate are written to CommunicationDetails.log.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"2607b5551624e7e4887eac7256574426","permalink":"https://www.eclipse.org/mosaic/docs/run_simulations/results/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/run_simulations/results/","section":"docs","summary":"Eclipse MOSAIC generates log files for each simulation run. Log files are generated for the ambassadors of each coupled federate respectively simulator and for the RTI itself. The log files are stored in the folder \u0026lt;mosaic-root\u0026gt;/logs/log-\u0026lt;timestamp\u0026gt;.","tags":null,"title":"Simulation Results","type":"docs"},{"authors":null,"categories":null,"content":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator. It implements predefined interfaces of the Eclipse MOSAIC core library and is directly coupled with Eclipse MOSAIC. Second, your simulator needs to communicate with the Federate Ambassador. For this purpose, you either need to implement your own protocol to control the simulator, or use existing ones of your respective simulator (e.g. SUMO provides the TraCI byte buffer protocol).\n Implementing a Federate Ambassador In order to simplify federate development and to make the usage of the mechanisms provided by the RTI safer, an abstract class called AbstractFederateAmbassador is provided by the Eclipse MOSAIC core package. It implements the FederateAmbassador interface and handles incoming interactions as well as time advance grants according to the specified federate behaviour. When a federate implementation is making use of the AbstractFederateAmbassador as a super class, it has to provide two information to the superclass while constructing an instance of the class. These are:\n  isTimeConstrained: The general way this parameter can be understood, is that if it is set to true the federate is sensitive towards the time stamp order of interactions. The AbstractFederateAmbassador will then queue incoming interactions and request a time advance from the RTI in order to ensure that processing the received interaction is safe. At the time the requested time advance is granted, every queued interaction with a time stamp smaller or equal to the granted time will be delivered to the federate for processing. If set to false, incoming interactions will be forwarded immediately to the federate, thus resulting in a receive-order of interactions at the federate.\n  isTimeRegulating: Specifies whether the federate will publish time stamped interactions and thus can influence the time advances of other federates in the federation. If set to true, the AbstractFederateAmbassador will request time advances with respect to the specified lookahead value of the federate in order to avoid that time management schedules the execution of other federates while queued interactions are processed. If set to false, time advance requests that are issued due to incoming interactions will be flagged with an unlimited lookahead, allowing the RTI to schedule other federates while incoming interactions are processed.\n   Flowchart of Interaction handling   Further notes Coupling a multitude of different simulators and properly syncing them is a non-trivial task and requires a lot of effort in order to function correctly. If you have read up on High Level Architecture before (have a look here and at the linked references) you might notice, that the previous flowchart does not completely reflect the proposed mechanisms. For instance, the isTimeRegulating flag has no effect, when the isTimeConstrained flag is not set.\nSo at some points you might stumble upon federates, which have their isTimeConstrained and isTimeRegulating flags set to different values as you would expect. An example of this is the ApplicationAmbassador. One would expect it to be time-constrained as well as time-regulating. This isn\u0026rsquo;t the case though, because the ApplicationAmbassador implements its own time- and event-management, which would interfere with the internal mechanisms.\nWhen implementing your own federate, you can use the existing ones as reference.\nExample A federate that is timeConstrained and timeRegulated can handle a time stamped interaction only after receiving a corresponding time advance grant. For that reason, the AbstractFederateAmbassador caches the incoming interactions in a local queue and requests a time advance with the interactions time stamp. After getting a grant for that time stamp, it forwards the interaction via the processInteraction method call and afterwards invokes processTimeAdvanceGrant to allow the federate to proceed in its local simulation time. In the activity diagram in the following figure, the process of handling of incoming interactions with respect to the federate configuration is illustrated.\n Sequence diagram illustrating the flow of information.   Integration into Eclipse MOSAIC The first step to integrate a new component is the extension of the configuration file etc/runtime.json. An example for a federate configuration can be found in following listing.\n\u0026quot;federates\u0026quot;: [ ... { \u0026quot;id\u0026quot;: \u0026quot;omnetpp\u0026quot;, \u0026quot;classname\u0026quot;: \u0026quot;org.eclipse.mosaic.fed.omnetpp.ambassador.OmnetppAmbassador\u0026quot;, \u0026quot;configuration\u0026quot;: \u0026quot;omnetpp_config.json\u0026quot;, \u0026quot;configurationDeployPath\u0026quot;: \u0026quot;omnetpp-federate/simulations\u0026quot;, \u0026quot;priority\u0026quot;: 50, \u0026quot;dockerImage\u0026quot;: \u0026quot;\u0026quot;, \u0026quot;host\u0026quot;: \u0026quot;local\u0026quot;, \u0026quot;port\u0026quot;: 4998, \u0026quot;deploy\u0026quot;: true, \u0026quot;start\u0026quot;: true, \u0026quot;subscriptions\u0026quot;: [ \u0026quot;VehicleRegistration\u0026quot;, \u0026quot;RsuRegistration\u0026quot;, \u0026quot;TrafficLightRegistration\u0026quot;, ... ], \u0026quot;javaClasspathEntries\u0026quot;: [] }, ... ]  The following parameters are available:\n  class - Attribute giving the full qualified name of the Java class which implements the Feder- ateAmbassador interface.\n  id - The id of the federate. This value should be as short as possible and will be also used for identifying the configuration folder within scenarios.\n  deploy - If set to true, the federate placed under bin/fed/ will be copied to the execution host (according to the host configuration file).\n  start - If set to true, the federate will be started by the federation management using the start command specified in the configuration file or this implementation.\n  subscriptions - A list of interaction names which the Federate Ambassador subscribes for. If any other ambassador sends out one of those interactions, this ambassador will receive them.\n   Interaction extension Another possibility to extend Eclipse MOSAIC is to add a new interaction to the set of predefined interactions. In the following figure, the abstract class Interaction, implemented interaction extensions, and a place holder for further extensions (rectangles with grey fonts and a dotted border) are illustrated. When the InteractionManagement forwards interactions among federates, it chooses the destination based on a interaction id and an optional condition. Furthermore, it synchronizes the interaction delivery based on their times. The abstract class Interaction offers these attributes but no further content. The exchanged content has to be implemented by extending the class Interaction. The already implemented extensions cover the content necessary to simulate common scenarios. However, for further scenarios further interactions might be required.\n Interaction classes and their relationships..   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"029b4f7b54e0aba61d23421e910663b7","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/simulator_coupling/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/simulator_coupling/","section":"docs","summary":"This section provides general information which helps to couple your own simulator with Eclipse MOSAIC. For a successful coupling, two parts are required: the Federate Ambassador is the communication interface between the RTI and your simulator.","tags":null,"title":"Simulator Coupling","type":"docs"},{"authors":null,"categories":null,"content":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.0   Website  https://www.eclipse.org/sumo/   Supported version(s) 1.0.1, 1.1.0 (limited support), 1.2.0 - 1.7.0 (full support)        Installation Download Eclipse SUMO Download the SUMO binary bundle or installer from the SUMO website. Linux users may build SUMO from the source code. Please refer to the SUMO Wiki for further information.\n In order to run SUMO with Eclipse MOSAIC you need to make the SUMO binaries available system wide by adding the SUMO binary folder to your PATH environment variable. Alternatively, the environment variable SUMO_HOME can be used to define the installation directory of SUMO.\n   We recommend to use the 64 bit version of SUMO if you want to simulate scenarios with a big traffic network.\n  Configuration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/sumo/sumo_config.json. If no such file exists, the following default configuration options are used:\n{ \u0026quot;updateInterval\u0026quot;: 1000, \u0026quot;sumoConfigurationFile\u0026quot;: \u0026quot;\u0026lt;scenarioName\u0026gt;.sumo.cfg\u0026quot;, \u0026quot;exitOnInsertionError\u0026quot;: true, \u0026quot;additionalSumoParameters\u0026quot;: \u0026quot;--time-to-teleport 0 --seed 100000\u0026quot;, \u0026quot;subscriptions\u0026quot;: [\u0026quot;roadposition\u0026quot;, \u0026quot;signals\u0026quot;, \u0026quot;emissions\u0026quot;] }  Next to sumo_config.json, the following configuration files are required for every SUMO simulation scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ sumo ├─ \u0026lt;scenarioName\u0026gt;.net.xml .............. SUMO Network file ├─ \u0026lt;scenarioName\u0026gt;.rou.xml .............. SUMO Route file ├─ \u0026lt;scenarioName\u0026gt;.sumocfg .............. SUMO configuration file └─ sumo_config.json .................... Ambassador configuraition file]  The SUMO configuration consists of sumo specific config files and the sumo-ambassador configuration file. The main configuration file name must end with the suffix *.cfg, which needs to refer to the network and route files. The network file is mandatory and should be generated with the scenario-convert tool provided with Eclipse MOSAIC.\nThe \u0026lt;scenarioName\u0026gt;.rou.xml is optional and is generated automatically for each simulation run. The routes for each vehicle are then usualy taken from the scenario database. However, those routes can be overriden by defining them manually in the route file.\n With Eclipse MOSAIC, the traffic definition (definition of vehicles, flows, vehicle types) is part of the Mapping configuration file. Any vehicles or flows defined within the \u0026lt;scenarioName\u0026gt;.rou.xml are ignored and won’t be simulated by SUMO.\n  Vehicle related parameters, such as acceleration, maximum speed, and the like, are configured via the Mapping configuration file. However, some SUMO specific parameters, like the car following model, needs to be configured separately in the route file. For example, if you have configured a vehicle type called MyVehicle in the Mapping configuration, you can set specific parameters for this type in the \u0026lt;scenarioName\u0026gt;.rou.xml as following:\n\u0026lt;routes\u0026gt; \u0026lt;vType id=\u0026quot;MyVehicle\u0026quot; carFollowModel=\u0026quot;IDM\u0026quot; lcKeepRight=\u0026quot;10\u0026quot;\u0026gt; \u0026lt;/routes\u0026gt;  Further information about SUMO and its configuration can be found in the official SUMO wiki.\nUsing the SUMO GUI with Eclipse MOSAIC It is also possible to use the graphical interface of SUMO in order to visualize and interact with the simulation. To achieve this, Eclipse MOSAIC can be configured to start the GUI process of SUMO as the federate rather than the command line interface. In order to use the SUMO GUI the file \u0026lt;mosaic\u0026gt;/etc/mosaic.xml needs to be edited. Here, the entry org.eclipse.mosaic.fed.sumo.ambassador.SumoAmbassador must be replaced with org.eclipse.mosaic.fed.sumo.ambassador.SumoGuiAmbassador.\n Keep in mind to launch Eclipse MOSAIC with the argument -w 0 in order to disable the watchdog timer. Otherwise it would shutdown Eclipse MOSAIC if the simulation is paused in the SUMO GUI.\n  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"86514c669b0224d14af4801daf24dc4c","permalink":"https://www.eclipse.org/mosaic/docs/simulators/traffic_simulator_sumo/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/traffic_simulator_sumo/","section":"docs","summary":"Eclipse SUMO is an highly portable, microscopic and continuous road traffic simulation tool. It is designed to handle large road networks faster than real-time and simulates each vehicle individually.\n         Operating System GNU/Linux and Microsoft Windows   License EPL-2.","tags":null,"title":"Eclipse SUMO - Simulation of Urban MObility","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"5a65785fcf26ff856f02501a2dff644b","permalink":"https://www.eclipse.org/mosaic/group/dcaiti/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/dcaiti/","section":"group","summary":"The **Daimler Center for Automotive IT Innovations (DCAITI)** was founded in 2006 as a joint initiative of Daimler AG and the Technical University of Berlin. The DCAITI uses Eclipse MOSAIC since many years for various research projects in the field of automated and connected driving. Together with the TU Berlin students gain practical experience in software development by using and extending this simulation framework and models.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates. Note that we use the word \u0026ldquo;interaction\u0026rdquo; whenever we describe communication between federates, whereas we talk about a \u0026ldquo;message\u0026rdquo; primarily when concerned with V2X-communication.\nAll interactions are categorized by the package they are contained in, which corresponds to their main context/purpose. The \u0026ldquo;Sent by\u0026rdquo; column is not necessarily complete for all interactions but should give an idea where interactions are used.\nmapping All interactions in this package are concerned with adding/registering simulation-units to the simulation. While most of the introductions are handled by the Mapping- or Application-ambassador, some of them are handled by the ambassadors for the traffic simulators (see LuST-scenario). In this case the interactions are used to initialize the scenario.\n   Interaction name Description Sent by     VehicleRegistration This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator. Mapping\nApplication   ChargingStationRegistration This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s. Mapping   RsuRegistration This interaction indicates the introduction of a roadside unit to the simulation. Mapping   TmcRegistration This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for. Mapping   ServerRegistration This interaction indicates the introduction of a server to the simulation. It holds a list of all applications. Mapping3   TrafficLightRegistration This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system. Mapping   TrafficSignRegistration This interaction indicates the introduction of a traffic sign. Mapping    mapping.advanced Interactions in this package are still concerned with the mapping of vehicles but differ from simple simulation unit registration.\n   Interaction name Description Sent by     ScenarioTrafficLightRegistration This interaction contains the phases and their duration of each traffic light in the simulation. This interaction shall be generated by the traffic simulators at start up (e.g. SUMO) Sumo\nPhabmacs   ScenarioVehicleRegistration This interaction is used to add vehicles to a simulation using a preconfigured scenario, which could be defined by using Sumo. Sumo(Scenario)   RoutelessVehicleRegistration This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the Application-ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards. Mapping    communication This package contains interactions regarding the setup of communication-components in simulation units and interactions concerned with the transfer of V2X-messages.\n   Interaction name Description Sent by     AdHocCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s ad-hoc communication facilities. Application   CellularCommunicationConfiguration This interaction is intended to be used to exchange information about the configuration of a vehicle’s cellular communication facilities. Application    Interactions related to V2X-message transfer.\n   Interaction name Description Sent by     V2xMessageAcknowledgement This interaction is used by a communication simulator to inform about success or failure of a packet transmission. Typically, the application simulator should subscribe to this interaction. Cell   V2xMessageReception This interaction is intended to be used to exchange information about a received V2X message. Omnet++\nns-3\nSimpleNetworkSimulator\ncell   V2xFullMessageReception This interaction carries the payload that represents an arbitrary V2XMessage that is supposed to be received by the receiver of this Eclipse MOSAIC Interaction. Omnet++\nns-3\nSimpleNetworkSimulator\nCell   V2xMessageRemoval This interaction is intended to be used to exchange information about V2X messages, that are to be deleted. Application   V2xMessageTransmission This interaction is sent in order to trigger the transportation of a V2XMessage over a wireless network to a given geographical destination area. Application    vehicle The interactions contained in this package are usually used to enable applications to forward vehicle-control to the used traffic simulators.\n   Interaction name Description Sent by     VehicleActuatorsChange This interaction is used to directly control the throttle/brake of an vehicle. At the moment this is only supported by Phabmacs. Application   VehicleDistanceSensorActivation This interaction is used to enable the distance sensors of a vehicle. A multitude of sensors can be enabled with one interaction given they use the same maximum lookahead distance. Application   VehicleFederateAssignment This interaction is intended to be used, when more than one traffic simulator is used in a simulation. It enables the passing of information on which vehicle are passed externally. At the moment this is used by the PhSCA-ambassador. PhaSCA   VehicleLaneChange This interaction initiates a lane change for the given vehicle, which should be consumed by the traffic simulators. Application   VehicleParametersChange This interaction requests to update various parameters of the vehicle or its driver. Application   VehicleResume This interaction requests the given vehicle to continue its journey after being stopped beforehand. The interaction should be handled by traffic simulators Application   VehicleRouteChange This interaction is used to change a route for vehicle by its id. It can be assumed that the given route id has been propagated by either a VehicleRoutesInitialization- or VehicleRouteRegistration-interaction. Application   VehicleRouteRegistration This interaction is used to propagate a newly generated route which is not yet known. It consists of the id of the route and a list of all its edges. Application   VehicleSightDistanceConfiguration This interaction is used to configure the sight distance for a vehicle (driver), this information can for example be used to implement applications regarding traffic sign recognition. Application   VehicleSlowDown This interaction initiates the vehicle to slow down in a given interval. The request should be handled by traffic simulators. The name \u0026lsquo;SlowDown\u0026rsquo; is inherited by Sumo and a little bit misleading, the speed can also be increased. Application   VehicleSpeedChange This interaction sets the current speed of the given vehicle. This should be handled by traffic simulators Application   VehicleStop This interaction requests the given vehicle to stop at the given road position, it should be handled by traffic simulators. Application    traffic Interactions in this package are focused around traffic management and communication with traffic simulators.\n   Interaction name Description Sent by     CellularHandoverUpdates This interaction is used by the cell ambassador to communicate handovers. cell   InductionLoopDetectorSubscription This interaction subscribes a unit to the data of an induction loop detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LaneAreaDetectorSubscription This interaction subscribes a unit to the data of a lane area detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. Application   LanePropertyChange This interaction contains lane properties to be changed. Concretely, it sets a list of allowed and disallowed vehicle classes per lane and a new maximum speed limit that shall be changed. The changed lane properties have to be omitted to the traffic simulator to be handled. Application   TrafficDetectorUpdates This extension of {@link Interaction} combines updates of lane area and induction loop detectors. Usually the updates are supplied by the traffic simulator and will be filtered by applications subscribed to them. Sumo   TrafficLightStateChange This interaction is intended to be used to forward a request to change the state of a simulated traffic light. This interaction can be used to implement different controlling strategies for traffic lights. Application   TrafficLightUpdate This interaction is a container for traffic light update. It is sent by the SumoAmbassador to inform simulation units about an updated traffic light state. Sumo   VehicleUpdates This interaction is used to update the position of some or all vehicles of the simulation. It consists of three lists, containing newly added vehicles, vehicles which were updated since the last simulation step, and vehicles which have been removed from the traffic simulation. Sumo\nPhabmacs   VehicleTypesInitialization This interaction is required for each simulation. It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier. Mapping   VehicleRoutesInitialization This interaction is required for each simulation. It contains all routes vehicles will take during the simulation. Other ambassadors may cache this interaction in order to have access on the routes, which are later identified by their identifier. Application    electricity All interactions contained in this package are related to electric vehicles and the surrounding infrastructure.\n   Interaction name Description Sent by     ChargingDenialResponse This interaction is sent out by the charging station ambassador to inform the application simulator (the vehicles) when a charging station is already in use. e.g. a vehicle wants to start charging on an engaged charging station -\u0026gt; ChargingStartDenial. ChargingStation   ChargingStartResponse This interaction is intended to be used to forward a started charging process at a ChargingSpot to the RTI. ChargingStation   ChargingStationUpdates This extension interaction is intended to be used to forward the updated state of a ChargingStation to the RTI. ChargingStation   ChargingStopResponse This interaction is intended to be used to forward a stopped charging process at a charging station to the RTI. ChargingStation   VehicleChargingStartRequest This interaction is intended to be used to forward a request from a vehicle to start charging its battery at a charging station to the RTI. Application   VehicleChargingStopRequest This interaction is intended to be used to forward a request from a vehicle to stop charging its battery at a charging station to the RTI. Application   VehicleElectricityUpdates This interaction is used to inform the applications of simulation units about changed electric information, send out by the battery ambassador. Battery    environment The interactions in this package are used for handling the communication about environment sensors.\n   Interaction name Description Sent by     EnvironmentSensorActivation This interaction is intended to be used to signal interest in sensor information for a specific simulation unit. Application   EnvironmentSensorUpdates This interaction is intended to be used to exchange sensor data. EventServer   GlobalEnvironmentUpdates This extension of interaction contains a list of current environment events and their locations. Those events can than be used to react upon a changing environment. EventServer    trafficsigns Interactions in this package are used to communicate changes in variable traffic signs, e.g. changing the speed limit.\n   Interaction name Description Sent by     AbstractTrafficSignChange This interaction can be sent to traffic sign ambassador in order to change a variable traffic sign. All interaction-classes, that are concerned with changing traffic signs extend this class. Application   TrafficSignLaneAssignmentChange This interaction can be sent to traffic sign ambassador in order to change a variable lane assignment sign. Application   TrafficSignSpeedLimitChange This interaction can be sent to traffic sign ambassador in order to change a variable speed sign. Application   VehicleSeenTrafficSingsUpdate This interaction stores a map of all traffic signs which are in sight distance of a specific vehicle and a map of all traffic signs which became invalid for that vehicle. TrafficSign    application Interactions in this package are used for applications. They are used to communicate custom information/data via the RTI.\n   Interaction name Description Sent by     ApplicationInteraction This interaction is intended to be used in custom applications, it can be extended for simulation units to react upon different influences and can be used for intercommunication between applications. Application   ItefLogging This interaction is used to exchange log-tuples for the ITEF (Integrated Testing and Evaluation Framework). Application   SumoTraciRequest This interaction is used to send a byte array message to SUMO TraCI. The request will be handled by TraCI and trigger a SumoTraciResponse. Application   SumoTraciResponse This interaction holds the TraCI response for a SumoTraciRequest. It is sent by the SumoAmbassador and will usually be handled by the Application that sent the request. Sumo    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"7f431be72ccf4101c02872c325977e3f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/interactions/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/interactions/","section":"docs","summary":"This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates.","tags":null,"title":"Interactions in Eclipse MOSAIC","type":"docs"},{"authors":null,"categories":null,"content":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter. For more detailed explanations of the configurations have a look at this chapter.\nIf you already played with the Barnim-tutorial you probably noticed, that it contains far more folders in the scenario structure compared to the Steglitz example. Those additional directories contain configurations for various simulators.\n└─ Barnim ├─ application ├─ cell ├─ environment ├─ mapping ├─ ns3 ├─ output ├─ sns ├─ sumo └─ scenario_config.json .................. Basic configuration of the simulation scenario  Let the cars loose As a starting point we\u0026rsquo;ll look at the scenario that we created using this command:\njava -jar scenario-convert.jar --osm2mosaic -i steglitz.osm -o --generate-routes --route-begin-latlon 52.4551693,13.3193474 --route-end-latlon 52.4643101,13.3206834 --number-of-routes 3  We\u0026rsquo;ll end up with a folder looking like this:\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  If you have a look in the mapping_config.json, you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this file as a blueprint for your own scenario, have a look here to get more details on possible adaptions.\nBelow is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars follow.\n Communication Simulators (cell, ns3, omnetpp, sns) We won\u0026rsquo;t implement any functionality for the steglitz example here but rather have a look at the Barnim-tutorial. In the scenario_config.json of the Barnim scenario you can see where the communication simulators are activated:\n\u0026quot;federates\u0026quot;: { \u0026quot;cell\u0026quot;: false, \u0026quot;omnetpp\u0026quot;: false, \u0026quot;ns3\u0026quot;: false, \u0026quot;sns\u0026quot;: true }  Our tutorials and additional examples demonstrate use cases for communication usages and you should have a look at them if you are uncertain where to start. Furthermore we recommend copying the configuration-files for the simulator you are going to use from the Barnim scenario. It contains the most complete configurations and is well maintained.\nIf you are an expert with one of the external network simulators ( ns3, OMNeT++) the Barnim scenario will also give you an overview on how to configure those.\nOther Simulators Here we\u0026rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the Event Server and the Battery Simulator.\nEvent server The event server can be used to emit events to vehicles inside it\u0026rsquo;s predefined borders. In the Barnim scenario an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.\nEvery defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look at the eventserver_config.json to see how this can be configured. If you want to use the event server make sure to have it enabled in the scenario_config.json.\nBattery The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can dynamically load your own battery, vehicle and environment models. Have a look a the battery_config.json, taken from the Barnim scenario. The three models used are included with Eclipse MOSAIC and you can freely use them.\nOutput There are various options to generate output results of your simulations (see the visualization chapter).\nThe first step is to create a file called output_config.xml in a new directory called output. If you used the scenario-convert tool the file should be generated automatically.\n└─ steglitz ├─ application | └─ steglitz.db ├─ mapping | └─ mapping_config.json ├─ output | └─ output_config.xml ├─ sumo | ├─ steglitz.net.xml | └─ steglitz.sumocfg └─ scenario_config.json .................. Basic configuration of the simulation scenario  Example configuration for output generation can be taken from the example scenarios from the tutorials section.\n``` Now we have to configure the statistics visualizer itself. This `visualizer_config.xml` contains the basic configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please refer to [statistics visualizer](/docs/visualization/statistics). Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called `AverageVehicleTravelTime.csv` in a directory called `StatisticsVisualizer`: ``` group;group-value;total; Car;186.369;336; ``` This tells us that there was a total amount of 336 vehicles of the type `car` in the simulation, which traveled for 186.369 seconds on average.-- Conclusion\nAfter this small, hands-on introduction to visualizers you should know where to configure them and after some additional reading, you should be able to configure different types of visualizers for your use-cases.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"a4ca6c187ad91d08aae3125ab16bd8e7","permalink":"https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_configuration/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/building_scenarios/scenario_configuration/","section":"docs","summary":"This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC. We will continue with the tutorial-style explanations following up on the Steglitz-example from the previous chapter.","tags":null,"title":"Additional Scenario Configuration","type":"docs"},{"authors":null,"categories":null,"content":"  The Statistics Output Generator is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Statistics Output is another output generating tool to easily measure basic simulation outcomes. You will be able to obtain short or detailed results of the simulation, e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.\nConfiguration  The main configuration file for all output generators is located at \u0026lt;scenarioName\u0026gt;/output/output_config.xml  In order to use the Statistics Output, the attribute enabled of the root element output must be set to \u0026ldquo;true\u0026rdquo;, as shown in the following listing.\n\u0026lt;output id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; [..] \u0026lt;/output\u0026gt;  Configuration header for Statistics Output\nSpecification In this section, we take a closer look at the Statistics Output by using examples and demonstrations. For each type of retrieving data we create a \u0026lt;statistic\u0026gt;\u0026lt;/statistic\u0026gt; block. Inside the block we define one certain data type we want to retrieve in a  element. If you want to retrieve different data types, just create another \u0026lt;statistic\u0026gt; block for each of them.\nYou can also set the wanted file name in the attribute filename of the statistic element. If the attribute has not been given, each \u0026lt;statistic\u0026gt; block will get the name accordingly to the order number, for example 1. StatisticsVisualizer-Block.csv.\nIn the output attribute two options (short|verbose) can be selected. The short option provides us a compact log file with information about only the highest level of the retrieved data (e.g. aggregate values of grouped vehicles) in contrast to verbose option which also provides informations about every individual vehicle in each group.\nFor a successful start, the element source must be placed in the first position in the statistic children element list. Different options of possible data types, one of which must be specified in the source element can be seen below.\n\u0026lt;statistic filename=\u0026quot;ChooseItYourself\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;NameOfSource\u0026lt;/source\u0026gt; \u0026lt;/statistic\u0026gt;  Source options of Statistics Output\nApplication This section will demonstrate the basic idea and usage of the Statistics Output depending on the individual requirements. Next to retrieving raw data, the Statistics Output has further features for processing of the obtained data.\n source: Data to obtain, choose between:  VehicleSpeeds - Obtain the speeds of the vehicles of each simulation step. VehicleStops - The total number of stops during the journey of each vehicle. VehicleTravelTimes - The total travel time in s of the vehicles. VehicleDelayTimes - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s). VehicleTravelledDistances - The travelled distance of the vehicles in m. VehicleFuelConsumptions - The fuel consumptions of the vehicles in l per km. VehicleHeadways - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor. DetectorFlow - The flows of each subscribed induction loop.     For using the detector flow type, inductions loops need to be configured in the SUMO and mapping configuration files (e.g. Highway tutorial).\n   group-by: The vehicles will be grouped by its vehicle type name (VehicleType), group they belong to (VehicleGroup), or obtained data value (e.g. Interval:200 categorizes values into groups of size 200).\n  aggregation: Average | Harmonic aggregation of the obtained values. An attribute deviation can be set to true or false (it’s false if the attribute is not given). This attribute can be used for grouped values to get the deviation of each value from the aggregated group value or to get a standard deviation based on biased sample variance for groups (in the short output version).\n  filter: Filtering with the attribute filterType (possible values are keep and remove).\n Filtering by required value slots with two options to specify them: MoreThan:Value or LessThan:Value (e.g. MoreThan:5 to collect values which are bigger than 5 only) Filtering by vehicle type. VehicleType:Type (e.g. VehicleType:Car to collect values only of vehicles of type \u0026ldquo;Car\u0026rdquo;) Filtering by time. Time:From-To (e.g. Time:0-100 to collect values only of the first 100s of simulation time)    The following example will show an example of how you can specify the Statictics Output according to your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim scenario) and then calculate the average vehicle travel time value for each of these groups.\n\u0026lt;output id=\u0026quot;statistics\u0026quot; enabled=\u0026quot;true\u0026quot; loader=\u0026quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig\u0026quot;\u0026gt; \u0026lt;statistic filename=\u0026quot;AverageVehicleTravelTimes\u0026quot; output=\u0026quot;short\u0026quot;\u0026gt; \u0026lt;source\u0026gt;VehicleTravelTimes\u0026lt;/source\u0026gt; \u0026lt;group-by\u0026gt;VehicleGroup\u0026lt;/group-by\u0026gt; \u0026lt;aggregation\u0026gt;Average\u0026lt;/aggregation\u0026gt; \u0026lt;/statistic\u0026gt; \u0026lt;/output\u0026gt;  Getting the Average time by vehicle class\nYou can also combine filters if you want to get a certain interval with upper and lower boundaries. With the following input instruction, only vehicles with the obtained data values between 250 and 500 will be left after filtering.\n\u0026lt;filter filterType=\u0026quot;keep\u0026quot;\u0026gt;LessThan:500\u0026lt;/filter\u0026gt; \u0026lt;filter filterType=\u0026quot;remove\u0026quot;\u0026gt;LessThan:250\u0026lt;/filter\u0026gt;  An example for filtering\nPlease notice that some sources are being not only obtained in each simulation step but also collected for further processing as separate values for each of these steps (like VehicleSpeeds, VehicleHeadways). These data types need to be aggregated to one value per vehicle if you want to group them by value or filter them.\nFor demonstration, the Statistics Output is configured for the scenario Barnim and calculates the average travel times of the vehicles and additionally groups them. As a result, the simulation produces the following CSV file in the log directory:\nGroup;Value;Total; AdHoc;399.14;24; Cellular;463.87;12; Unequipped;459.18;84;  The AverageVehicleTravelTime.csv file produced by the Statistics Output in the Barnim scenario\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"f3aea6e70248def0891ed9bd89706cbb","permalink":"https://www.eclipse.org/mosaic/docs/visualization/statistics/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/statistics/","section":"docs","summary":"The Statistics Output Generator is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  Statistics Output is another output generating tool to easily measure basic simulation outcomes.","tags":null,"title":"Statistics Output","type":"docs"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"00c72d014237189758fbbed269e91b7d","permalink":"https://www.eclipse.org/mosaic/group/openmobility/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/mosaic/group/openmobility/","section":"group","summary":"The **openMobility Working Group** was founded to support the development and broad introduction of open source mobility modeling and simulation technologies. The aim of the Working Group is to deliver a openMobility framework of tools based on validated models, which are accepted as standard tools in industry applications and academia. Eclipse MOSAIC is one part of the broad range of tools developed in this group.","tags":null,"title":"","type":"group"},{"authors":null,"categories":null,"content":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent. Subsequently, it will find all the Java Archive (JAR) files in the application configuration directory, belonging to the currently started scenario, and add their classes to the class path. These JARs contain the application classes. Furthermore, the ApplicationAmbassador is registered as a handle for different Eclipse MOSAIC messages in the configuration file etc/runtime.json in the Eclipse MOSAIC folder. After initialization, the Application Simulator will receive these messages from Eclipse MOSAIC when they appear and perform corresponding actions.\nNode Creation  Application Simulator basic flow / node creation classes   Application classes are only instantiated when a node, carrying that application, is created. This is signaled by messages for node creation like (AddedVehicle,AddedRsu,AddedTrafficLight, \u0026hellip;). When the Mapping ambassador spawns a new node, it will send those messages to the RTI. The message then contains the fully qualified names of all applications associated with the spawned node, as well as the vehicle type itself. Depending on this type, the Application Simulator creates a new SimulationUnit object (i.e. a subclass of SimulationUnit like Vehicle, RoadSideUnit or TrafficLight), representing the new node. This task is served by the UnitSimulatorclass, which performs book keeping of all SimulationUnits. Upon Creation of a node, the UnitSimulator will schedule an event to start all applications, belonging to the new node. The required information is saved in a StartApplications object, which also includes a ApplicationUnit object, an abstract representation of a node (a.k.a. unit) having at least one application.\nHowever, as, for example, SUMO does not simulate vehicles strictly from their creation on, but only since their first movement, Applications for vehicles cannot be started directly upon an AddedVehicle message. Instead, every added vehicle will be kept in the addedVehicles Map, until a VehicleMovements message, belonging to that vehicle is processed. The vehicle will then be added by the UnitSimulator like any other node.\nOther Messages and Time Advance Apart from the ones for node creation, there are many other messages (see Interactions), signaling events to the Application Simulator. For most of them, an event in the future will be programmed, such that the implied action is carried out at that simulation time. The processing of the events happens when the RTI calls the advanceTime() method on the ambassador. Upon this, Application Simulator will obtain a list of all events up to the new time and let the processor of the event process them. Every potential event processor implements the EventProcessor interface. The corresponding method is the advanceTime() method of ApplicationAmbassador, which calls scheduleEvents() on the event scheduler. Subsequently, some interesting messages and their handling process is sketched shortly:\n   Message Description     VehicleUpdates Signals that a vehicle has moved. The Vehicle object, which is a subclass of SimulationUnit, that corresponds to the moved vehicle will be updated to contain the new position. The new information is encapsulated in a VehicleInfo object, containing different vehicle data. To update the data, an event is scheduled at the given time and processed upon time advance. Vehicles not yet added to the simulation (see Node Creation), are added by calling addVehicleIfNotYetAdded().   MessageReceiption This message represents the reception of a V2X-message by a simulated node. The SimulationUnit with the id saved in the ReceivedV2XMessage object is scheduled for the processing of the message at the given simulation time. When simulation time reaches the reception time, the SimulationUnit will obtain the message from the message cache and hand it to all applications that implement the CommunicationApplication interface in the method SimulationUnit.processReceiveV2XMessage().   ApplicationInteraction While most other messages are specific to the a SimulationUnit, that then forwards the event to its applications, the ApplicationSpecificMessage is directly handed to all applications. Thereby, the SimulationUnit, whose applications shall receive the message can be specified. If this is not done, all applications of all units will get the message and have the opportunity to handle it.    ","date":1596672000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1596672000,"objectID":"ba98bef533abd0bfde76ff58f6af3458","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/application_ambassador_details/","publishdate":"2020-08-06T00:00:00Z","relpermalink":"/mosaic/docs/extending_mosaic/application_ambassador_details/","section":"docs","summary":"The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class ApplicationAmbassador is started by the RTI and creates different components, like the SimulationKernel singleton or the CentralNavigationComponent.","tags":null,"title":"Application Ambassador - Implementation Details","type":"docs"},{"authors":null,"categories":null,"content":"  ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios. It is suited for field operational tests as well as simulations.\nITEF also offers a variety of visualization features, making a comparison of different vehicles or between equipped and unequipped vehicles easy. It is structured into 4 screens, whereas the following 3 screens are intended for the visualization.\nThe Replay screen (see Figure 1) is intended to be used for an initial overview of the test run. The main feature is the display of the vehicle movements on a map, while the player can be used to playback the movement situation. In this manner, the ITEF allows a location and time dependent evaluation of simulation test runs.\n ITEF Replay Screen   The Evaluate screen (see Figure 2) allows the detailed investigation of the correlations in a test run. The main feature of this screen is to display the behavior summarized over the whole run. The structure of this screen with is similar to the Replay screen. However, the focus here is on the detailed (statistical) summary of evaluated metrics.\n ITEF Evaluate Screen   Finally, the Statistics screen (see Figure 3) provides statistical evaluations of the test and simulation run. Currently, statistics on Vehicle Speed, Travel Time, Travel Distance and severalmore are supported.\n ITEF Statistics Screen   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"90c70d06303c99232632c33c319ffb8b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/itef/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/itef/","section":"docs","summary":"ITEF is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Integrated Test and Evaluation Framework (ITEF) is a webtool for planning and evaluating vehicular communication scenarios.","tags":null,"title":"Integrated Test and Evaluation Framework (ITEF)","type":"docs"},{"authors":null,"categories":null,"content":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication. For this kind of simulations, external model frameworks have to be included. Currently, there are two prominent model frameworks which cover whole model suites for according focus of wireless research. These are the Mobility Framework and the INET Framework. As INET provides all models necessary for simulating Vehicle-2-X communication, it is selected for the integration to Eclipse MOSAIC.\nFor more information on the INET extension you should look closer on the website.\n          Operating System GNU/Linux\n(Windows with mingw)    License GPL, free to use for academic use    Supported version(s) OMNeT++ 5.5 INET 4.1 http://www.omnetpp.org https://inet.omnetpp.org    Installation There are two installation types of the MOSAIC OMNeT++ Federate:\n   Type Description     USER This installation type addresses those who only want to use the OMNeT++ network simulator for simulations.\nNetwork configurations can also be adjusted.\nIf you install the federate with this installation type, OMNeT++ 5.5 and INET 4.1 will automatically be installed inside \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp during the installation.   DEVELOPER The installation for developers addresses those who want to make changes or extend the MOSAIC OMNeT++ Federate.\nThis installation type awaits that OMNeT++ 5.5 and INET 4.1 are already installed on your system and\n- PATH contains /path/to/omnetpp/bin\n- LD_LIBRARY_PATH contains /path/to/omnetpp/lib and /path/to/inet/src\n- C_INCLUDE_PATH contains /path/to/omnetpp/include and /path/to/inet/src     If you already have OMNeT++ 5.5 and INET 4.1 installed on your system, but you simply want to use OMNeT++ for simulations with Eclipse MOSAIC without developing further the MOSAIC OMNeT++ Federate, you may also choose the installation for developers to avoid multiple installations of OMNeT++ and INET on your system.\n  First of all, please make sure that you have the following libraries installed: unzip, tar, bison, flex, gcc, python, protoc\n The installation of the current version of the OMNeT++ Federate was tested with protobuf version 3.7.0.\nIt is recommended to install this version. Here you receive more information about how to install protobuf.\n  Follow the links and download the source code of OMNeT++, INET and the MOSAIC OMNeT++ Federate:\n   Software Version Link     OMNeT++ 5.5 https://omnetpp.org/download/   INET 4.1 https://github.com/inet-framework/inet/releases   MOSAIC OMNeT++ Federate 20.0 https://github.com/mosaic-addons/omnetpp-federate/releases    Available parameters of omnet_installer.sh:\n    Parameter Value Description     -t --installation-type \u0026lt;INSTALLATION_TYPE\u0026gt; Either USER or DEVELOPER.   -o --omnetpp \u0026lt;PATH_TO_OMNET_TGZ\u0026gt; Provide the archive containing the OMNeT++ source. You can obtain it from https://omnetpp.org/download/   -i --inet \u0026lt;PATH_TO_INET_TGZ\u0026gt; Provide the archive containing the inet source code. You can obtain it from https://inet.omnetpp.org/Download.html. If not given, the inet-source files are downloaded by this installation script.   -f --federate \u0026lt;PATH_TO_FEDERATE_ZIP\u0026gt; Provide the archive containing the OMNeT++-federate and patches for coupling OMNeT++ to Eclipse MOSAIC. If not given, the omnetpp-federate is downloaded by this installation script.   -so --skip-omnetpp - Skip the installation of OMNeT++   -si --skip-inet - Skip the installation of INET   -q --quiet - Less output and no interaction required   -j --parallel \u0026lt;NUMBER_OF_THREADS\u0026gt; Enables make to use the given number of compilation threads.\nPer default your systems maximum is selected automatically.   -u --uninstall - Uninstalls the OMNeT++ federate   -h --help - Shows this usage screen    Installation for Users Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type USER \\ --omnetpp /path/to/omnetpp-5.5-src.tgz \\ --inet /path/to/inet-4.1-src.tgz \\ --federate /path/to/omnetpp-federate-20.0.zip  For the installation type USER the parameters -o, -i and -f are required.\nThe installation script should terminate with SUCESS: The MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\nInstallation for Developers Run the installation script (this takes a few minutes):\ncd \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp chmod +x omnet_installer.sh` ./omnet_install.sh \\ --installation-type DEVELOPER \\ --federate /path/to/omnetpp-federate-20.0.zip  For the installation type DEVELOPER the parameter -f is required.\nThe installation script should terminate with SUCCESS: The MOSAIC OMNeT++ Federate was successfully installed. otherwise the installation failed.\n Extending MOSAIC OMNeT++ Federate\nOMNeT++ Federate Configuration To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open \u0026lt;scenarioName\u0026gt;/scenario_config.json and enable OMNeT++:\n\u0026quot;federates\u0026quot;: { ... \u0026quot;omnetpp\u0026quot;: true, ... }  Now, when you run this scenario, Eclipse MOSAIC will automatically start the MOSAIC OMNeT++ Federate.\nThe main configuration of the MOSAIC OMNeT++ Federate is done within the configuration files omnetpp.ini and omnetpp_config.json in the scenario:\n└─ \u0026lt;scenario_name\u0026gt; └─ omnetpp ├─ omnetpp.ini ...................... OMNeT++ federate configuration file └─ omnetpp_config.json .............. Ambassador configuration file  The whole OMNeT++ specific configuration is done via the omnetpp.ini file. It covers static parts for the simulator coupling such as the specific Eclipse MOSAIC Event Scheduler and the ScenarioManager. Furthermore, logging configurations and the typical parameters for the communication layers (MAC, PHY and Radio Channel) are addressed. The communication parameters are different for vehicles and RSUs. Please refer to the OMNeT++ documentation on the OMNeT++ homepage for further information about the structure of the omnetpp.ini file.\nInstallation in Docker environment  This is an experimental feature. Please refer to our mailing list if you experience any problems.\n  This guide gives instructions to execute the OMNeT++ federate inside a docker container. If you already installed OMNeT++ on your machine following the steps before, you can skip this section.\nDocker is a new approach to execute software. More precisely, it \u0026ldquo;wraps software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, and system libraries\u0026rdquo;. As a result, the software is executed within a container and its execution does not rely on the environment the container is running in.\nIn context of Eclipse MOSAIC, this approach allows to execute OMNeT++ within a docker container. The user does not need to manually install OMNeT++ and can even run OMNeT++ on Windows hosts.\n Install Docker ≥ 1.13 on your machine. To get everything to work, please make sure to execute the following steps depending on your operating system:  Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab. Linux - Make sure your user account belongs to the unix-group docker. You may need to restart your machine.   Switch to the location of the Dockerfile in \u0026lt;mosaic\u0026gt;/bin/fed/omnetpp Execute the following command on command line:\ndocker build -t omnetpp-federate.\nThis could take a while to finish. Enter the name of the docker image etc/runtime.json in the omnetpp-section into the property dockerImage:  \u0026quot;federates\u0026quot;: [ ... { \u0026quot;id\u0026quot;: \u0026quot;omnetpp\u0026quot;, \u0026quot;dockerImage\u0026quot;: \u0026quot;omnetpp-federate\u0026quot;, ... }, ... ]  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"208d551c9e8045f1304b3efe6800d7dd","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_omnetpp/","section":"docs","summary":"OMNeT++ is a simulation platform for discrete-event systems. Even though it is primarily targeted at simulating computer networks and distributed systems, it cannot be used without any extensions for wireless communication.","tags":null,"title":"Network Simulator OMNeT++","type":"docs"},{"authors":null,"categories":null,"content":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols. It simulates both unicast and multicast protocols and is used extensively in research on mobile ad-hoc networks.\nRegardless, ns-2 still remains in active use and will continue to be maintained in the near future. For Eclipse MOSAIC coupling, only ns-3 will be available.\nLike other network simulators, ns-3 has a relatively steep learning curve, especially compared to GUI- based simulators. If you have no prior experience with ns-3, we recommend to familiarize yourself with the ns-3 simulation environment and the ns-3 simulation basics first. The ns-3 documentation can be found under: https://www.nsnam.org/documentation\nTo take your first steps with ns-3, you might want to download 2 the latest version, build a copy of ns-3 (it uses the Python-based build-system waf) and take a look at the examples, that are shipped within most of the ns-3 source code repositories and packages. You might also examine the simulation output and try to adjust it.\nTypically, a ns-3 user will work under a Linux environment. For those running under Windows, there do exist environments which simulate the Linux environment to various degrees. The ns-3 project has in the past (but not presently) supported the Cygwin environment for these users (see http://www.cygwin.com for details on downloading). MiniGW is presently not officially supported, however there are also some people who managed to use it with ns-3. For detailed information of how to setup ns-3, please refer to their Wiki: https://www.nsnam.org/wiki/Installation\nFor more information on how to setup ns-3 with Eclipse MOSAIC, please just refer to the following section. We prepared an installation script, which manages most of the required work.\n As stated above, ns-3 is primarily developed on and for GNU/Linux platforms. Since Windows is such a widely used platform and Cygwin is not a perfect emulation of any Linux, we highly recommended for non-Linux users to consider the installation of a Linux virtual machine with a virtual machine environment, such as VMware or VirtualBox.\n      Software information     Developer(s) Tom Henderson, Mathieu Lacage, George Riley, Mitch Watrous, Gustavo Carneiro, Tommaso Pecorella and others   Written in C++ (core) and Python (bindings)   Operating system GNU/Linux FreeBSD Mac OS X   License Free software: GNU GPLv2   Website http://www.nsnam.org/   Supported version(s) 3.28   Dependencies libprotobuf 3.3.0    libxml2    libsqlite3   Deployed in MOSAIC all-in-one no (and need a patch to link)    ns3-ambassador folder structure └─ \u0026lt;scenario_name\u0026gt; └─ ns3 ├─ ns3_config.json ................. Ambassador configuration file ├─ configTechnologies.xml ...........ns-3 federate configuration file └─ confWifi.xml .....................ns-3 federate configuration file  Installation Eclipse MOSAIC offers support for the current stable release of ns-3 (3.28), that was released in March 2018. Older versions of ns-3 (prior to 3.28) are not supported. However, also for newer versions we cannot guarantee the correct operation. The coupling to Eclipse MOSAIC is designed in a manner of minimal code changes on the ns-3 simulator itself to keep the update capabilities for future versions.\nPrerequisites For GNU/Linux platforms, the minimal requirements to run basic simulations are a gcc or clang compiler and a Python interpreter. At least you need the following packages to be installed:\nMinimum requirement:\ngcc g++ python python-dev  For a complete list of required packages for different distributions, please refer to the ns-3 installation guide: https://www.nsnam.org/wiki/Installation\nPlease make sure the following libraries are installed before running the installation script:\n libxml2 libsqlite3 libprotobuf 3.3.0  Run the installation script  ns-3 requires several packages to be installed on your computer. You will need to ensure, that all required libraries are present on your system before proceeding. You may need superuser permissions to install packages.\n   If your local protobuf version does not fit the required one, the installation may fail with an error. In that case, you can run the install script with the -p flag. This will rebuild the protobuf files during installation and allow it to proceed correctly.\n  To ease the installation of ns-3 for Eclipse MOSAIC, the installation process has been delegated to an installation script, that can be found in the associated ns-3 federate folder.\nns3-ambassador federate folder structure:\n└─ mosaic/bin/fed/ns3 └─ ns3 ├─ Dockerfile.sh ....................Dockerfile for ns-3 federate └─ ns3_installer.sh ................ Installation script for ns-3  The ns-3 installation script accomplishes the following tasks:\n Download ns-3 tarball from the offical sources Download the ns-3 federate for Eclipse MOSAIC. Apply a patch to ns-3 in order to make it work with Eclipse MOSAIC. Add the ns-3 federate to the waf build system. Configure and build the patched ns-3 with the ns-3 federate.  In order to start the simulation, the following steps need to be performed:\n Set up the confWifi.xml-file in the scenario folder (see section Configuration). An example confWifi.xml - file is shipped with the Tiergarten scenario. For reasonable result logging, the logger-configuration in mosaic/etc/logback.xml has to be adapted to support the ns-3 ambassador and federate. At last ns-3 has to be activated in the mosaic_config.xml and the simulation can be started.  Installation in Docker environment  This is an experimental feature. Please refer to our mailing list if you experience any problems.\n  This guide gives instructions to execute the ns-3 federate inside a docker container. If you already installed ns-3 on your machine following the steps before, you can skip this section.\nDocker is a new approach to execute software. More precisely, it \u0026ldquo;wraps software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, and system libraries\u0026rdquo;. As a result, the software is executed within a container and its execution does not rely on the environment the container is running in.\nIn context of Eclipse MOSAIC, this approach allows to execute ns-3 within a docker container. The user does not need to manually install ns-3 and can even run ns-3 on Windows hosts.\n Install Docker ≥ 1.13 on your machine. To get everything to work, please make sure to execute the following steps depending on your operating system:  Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab. Linux - Make sure your user account belongs to the unix-group docker. You may need to restart your machine.   Switch to the location of the Dockerfile in \u0026lt;mosaic\u0026gt;/bin/fed/ns3 Execute the following command on command line:\ndocker build -t ns3-federate.\nThis could take a while to finish. Enter the name of the docker image etc/runtime.json in the ns3-section into the property dockerImage:  \u0026quot;federates\u0026quot;: [ ... { \u0026quot;id\u0026quot;: \u0026quot;ns3\u0026quot;, \u0026quot;dockerImage\u0026quot;: \u0026quot;ns3-federate\u0026quot;, ... }, ... ]  You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the scenario_config.json.\nConfiguration The whole ns-3 specific configuration is done via the confWifi.xml and configTechnologies.xml files.\nconfWifi.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;wifi\u0026gt; \u0026lt;!-- IPv4 address generator --\u0026gt; \u0026lt;ipConfiguration\u0026gt; \u0026lt;ip address=\u0026quot;192.168.0.0\u0026quot; mask=\u0026quot;255.255.0.0\u0026quot;/\u0026gt; \u0026lt;/ipConfiguration\u0026gt; \u0026lt;!-- Calculate a propagation delay --\u0026gt; \u0026lt;propagationDelayModel\u0026gt; \u0026lt;delay model= \u0026quot;ns3::NonePropagationDelayModel\u0026quot;/\u0026gt; \u0026lt;/propagationDelayModel\u0026gt; \u0026lt;!-- Modelize the propagation loss through a transmission medium --\u0026gt; \u0026lt;propagationLossModel\u0026gt; \u0026lt;loss model= \u0026quot;ns3::FriisPropagationLossModel\u0026quot;/\u0026gt; \u0026lt;/propagationLossModel\u0026gt; \u0026lt;wifiConfiguration\u0026gt; \u0026lt;!-- Create non QoS-enabled MAC layers --\u0026gt; \u0026lt;wifiMac property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::AdhocWifiMac\u0026quot;/\u0026gt; \u0026lt;!-- Wifi PHY mode --\u0026gt; \u0026lt;wifiManager property=\u0026quot;phyMode\u0026quot; value=\u0026quot;OfdmRate54Mbps\u0026quot;/\u0026gt; \u0026lt;!-- Wifi manager --\u0026gt; \u0026lt;wifiManager property=\u0026quot;type\u0026quot; value=\u0026quot;ns3::ConstantRateWifiManager\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;EnergyDetectionThreshold\u0026quot; value=\u0026quot;-81.0\u0026quot;/\u0026gt; \u0026lt;!-- The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to declare CCA BUSY state --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;CcaMode1Threshold\u0026quot; value=\u0026quot;-99.0\u0026quot;/\u0026gt; \u0026lt;!-- Transmission gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Reception gain (dB) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxGain\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Number of transmission power levels available between TxPowerStart and TxPowerEnd included --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerLevels\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;!-- Maximum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerEnd\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Minimum available transmission level (dbm) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;TxPowerStart\u0026quot; value=\u0026quot;17.0\u0026quot;/\u0026gt; \u0026lt;!-- Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;RxNoiseFigure\u0026quot; value=\u0026quot;0.0\u0026quot;/\u0026gt; \u0026lt;!-- Channel center frequency = Channel starting frequency + 5 MHz * (nch - 1) --\u0026gt; \u0026lt;wifiPhy property=\u0026quot;ChannelNumber\u0026quot; value=\u0026quot;1\u0026quot;/\u0026gt; \u0026lt;/wifiConfiguration\u0026gt; \u0026lt;/wifi\u0026gt;  The IP configuration information includes the network address and network mask. The ns-3 propagation module defines two generic interfaces, namely PropagationLossModel and PropagationDelayModel, for the modelling of propagation loss respectively propagation delay.\nIn the default confWifi.xml, the Wi-Fi device uses the ns-3 standard propagation delay model ns3::ConstantSpeedPropagationDelayModel and the ns-3 standard propagation loss model ns3::FriisPropagationLossModel. Radio propagation models in ns-3 can easily be exchanged with the ns-3 class registration system (see the ns-3 documentation for details). The Wi-Fi configuration includes additional parameters, like sending power and antenna gain.\nconfigTechnologies.xml:\n\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot; standalone=\u0026quot;no\u0026quot;?\u0026gt; \u0026lt;ns3Configuration\u0026gt; \u0026lt;installers\u0026gt; \u0026lt;installer type=\u0026quot;ns3::WifiVehicleInstaller\u0026quot; name=\u0026quot;WifiVehicle\u0026quot; file=\u0026quot;confWifi.xml\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;installer type=\u0026quot;ns3::MobilityModelInstaller\u0026quot; name=\u0026quot;Mobility\u0026quot; default=\u0026quot;true\u0026quot; /\u0026gt; \u0026lt;/installers\u0026gt; \u0026lt;/ns3Configuration\u0026gt;  The configuration manager of the ns-3 federate defines, which installer should be loaded for the Wi-Fi device (refering to the confWifi.xml) and the mobility model. Usually, you don’t need to take any changes and simply use the default configuration file, that ships with the ns-3 federate.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"10a4ba934e0981b530dd053b83c60773","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_ns3/","section":"docs","summary":"The ns-3 is a discrete-event network simulator that was developed as a replacement for the popular network simulator 2 (ns-2) and mainly focuses upon improving the core architecture, software integration, models, and educational components for real-world network devices and protocols.","tags":null,"title":"Network Simulator ns-3","type":"docs"},{"authors":null,"categories":null,"content":"  The 3D visualization PHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation. Next to the road network, which can be optionally rendered by the visualizer, the following units and events are visualized:\n Vehicle movements coming from the traffic simulation Road Side Units at their defined location V2X-messages sent via cellular communication (indicated as green circles) V2X-messages sent via ITS-G5 communication (indicated as blue circles) V2X-messages received by vehicles (indicated as red circles)   The 3D visualization tool PHABMap displaying events from the simulation   ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"262992c33ea9dc690e168169b920406b","permalink":"https://www.eclipse.org/mosaic/docs/visualization/phabmap/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/visualization/phabmap/","section":"docs","summary":"The 3D visualization PHABMap is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The Eclipse MOSAIC 3D Visualization Tool is based on the PHABMACS vehicle simulator and uses the same 3D engine and models to visualize vehicle movements and various events which occur during the simulation.","tags":null,"title":"3D Visualization (PHABMap)","type":"docs"},{"authors":null,"categories":null,"content":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre. It is designed to handle large road networks faster than real-time. Each vehicle has an own route and is simulated individually. To simulate the movements of the vehicles on the network, a model is used that uses discrete time steps of e.g. 1 s. Thousands of vehicles can be simulated in real time on a desktop PC, including simulation of traffic lights, right-of-way rules, and lane changing models. Simulations can either run via the command line or are visualized using the openGL-API (SUMO-GUI). SUMO networks are created by importing other formats, such as OpenStreetMap data, Shapefiles or TIGE-maps; or by generating artificial networks. Furthermore, vehicle routes, based on different routing paradigms, can be computed.\nSUMO and Eclipse MOSAIC We have integrated the traffic simulator SUMO to be able to simulate heterogeneous driving vehicles and a set of vehicles that have a predefined routes based on an imported roadmap. Additionally, during the runtime of a simulation, it is possible that routes of simulated vehicles are changed and that vehicle positions are extracted at arbitrary points in time. The integration of SUMO into a Eclipse MOSAIC based simulation is illustrated in the following figure. The integrated Traffic Control Interface (TraCI) Server offers an interface to exchange commands and positions using a socket interface with a proprietary byte protocol. Analogous to the TraCI Server, a TraCI Client is implemented that is integrated in an ambassador implementing the TraCI protocol. Therefore, SUMO can be integrated without modifications.\n SUMO connected to Eclipse MOSAIC   During a simulation run, per default SUMO is paused and TraCI is listening for commands. After each advanced time grant, SUMO offers the new vehicle positions which are broadcast by its ambassador to other federates. Furthermore, if the ambassador receives a request to change the route of a specific vehicle, it is forwarded to SUMO. Thus, at the next time-advancement, the new route is integrated.\nSimulation of Vehicles For each vehicle which has been defined in the mapping configuration, a VehicleRegistration interaction is sent to the SumoAmbassador which adds those vehicles to the simulation via TraCI. Furthermore, vehicle data is subscribed which is updated with every simulation step. After each step of the simulation this data is bundled into a VehicleInfo object which is distributed among other ambassadors within the VehicleUpdates interaction. The following data is available for each vehicle:\n Position Speed, Acceleration, Heading, Slope State of vehicle signals (e.g. turn indicators) Emission dispersion (CO2, NOX, etc.) Fuel consumption Information about the road the vehicle is driving on (road position) Id of the route  Traffic lights in SUMO Depending on which light is active (red, yellow or green), every traffic light got different phases. In theory, any combination of dis- or enabled lights is possible, but SUMO only handles combinations which make sense. In SUMOs traffic light concept every traffic light got a bitset of the status of each phase. Every bitset is a combination as mentioned above. When a car approaches a junction, it gets the actual bitset (combination) of the traffic light. To explain the code, an example is given:\n\u0026lt;tl-logic type=\u0026quot;static\u0026quot;\u0026gt; \u0026lt;key\u0026gt;0\u0026lt;/key\u0026gt; \u0026lt;subkey\u0026gt;my program\u0026lt;/subkey\u0026gt; \u0026lt;phaseno\u0026gt;8\u0026lt;/phaseno\u0026gt; \u0026lt;offset\u0026gt;0\u0026lt;/offset\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;GGggrrrrGGggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;yyggrrrryyggrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrGGrrrrrrGGrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rryyrrrrrryyrrrr\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;31\u0026quot; state=\u0026quot;rrrrGGggrrrrGGgg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrryyggrrrryygg\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;6\u0026quot; state=\u0026quot;rrrrrrGGrrrrrrGG\u0026quot;/\u0026gt; \u0026lt;phase duration=\u0026quot;5\u0026quot; state=\u0026quot;rrrrrryyrrrrrryy\u0026quot;/\u0026gt; \u0026lt;/tl-logic\u0026gt;  This example shows the traffic light program of one junction. It shows the different status’ of each light of each traffic signal, which are positioned on the junction. In this example every string of a phase e.g. \u0026ldquo;GGggrrrrGGggrrrr\u0026rdquo; (first phase) got 16 characters. Every char stands for one light on the junction. On this junction are four traffic lights with four signals each. To understand the different status of each light in one period (8 phases) the program should be read from top to the bottom. It is possible to change or create your own program by editing the .net file with the tool Netedit.\nHandling of traffic lights in Eclipse MOSAIC After the TraCI connection has been established, all available traffic light groups are read out of SUMO via TraCI. This information is packed into the three classes TrafficLightGroup, TrafficLightSignal, and TrafficLightPhase. While a traffic light group contains a list of signals which control one intersec- tion (which can consist of several nodes), a list of all existing traffic light groups is sent to the RTI via a ScenarioTrafficLightRegistration interaction.\nTraCI Client Implementation The SumoAmbassador communicates with the federate (SUMO process) via TraCI. In this socket based communication protocol, the server (SUMO) listens to commands and responds accordingly.\nEach message send to SUMO consist of a header and the command or result message, according to the following scheme:\n 0 7 8 15 +--------------------------------------+ | Message Length including this header | +--------------------------------------+ | (Message Length, continued) | +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_0 | Command / Result_0 content | | +--------------------------------------+ / ... +--------------------------------------+ \\ | Length | Identifier | | +--------------------------------------+ \u0026gt; Command / Result_n -1 | Command / Result_n-1 content | | +--------------------------------------+ /  A more detailed description can be found here: http://sumo.dlr.de/wiki/TraCI/Protocol\nCommands Each TraCI command is identified by an command identifier. For example, the command 0xC4 is used to change the state of a vehicle. Most of the commands need further specification, such as the parameter of the vehicle which is required to be changed. Those parameters are usually accessed by variable identifiers (e.g. 0x40 addresses the speed of an entity). A full list of commands and variables supported by TraCI can be found here: http://sumo.dlr.de/wiki/TraCI\nHere is an example of a command message to change the speed of the vehicle \u0026ldquo;veh_0\u0026rdquo; to 14m/s:\n 0 7 8 15 23 24 31 +-----------------------------------------------------------------------------+ | 25 (Message length) | +-----------------------------------------------------------------------------+ | 21 (Length) | 0xC4 (Command) | 0x40 (Variable) | +-----------------------------------------------------------------------------+ 5 (String length as 4 Byte Integer) | \u0026quot;v\u0026quot; | +-----------------------------------------------------------------------------+ | \u0026quot;e\u0026quot; | \u0026quot;h\u0026quot; | \u0026quot;_\u0026quot; | \u0026quot;0\u0026quot; | +-----------------------------------------------------------------------------+ | 0x0B (Double type)| 40.0 (8 Byte Double) +-----------------------------------------------------------------------------+ +-----------------------------------------------------------------------------+ | +-------------------+  AbstractTraciCommand In the TraCI client implementation of the SumoAmbassador the whole construction of messages is done in the class AbstractTraciCommand. The message header containing the message and command lengths is constructed automatically as well as all parameters defined by the specific command. To achieve this, each class which extends the AbstractTraciCommand needs to define the command, the variable and all parameters which are required for the specific command:\nprotected VehicleSetSpeed() { super(TraciVersion.LOWEST); write() .command(0xC4) // = change vehicle state .variable(0x04) // = set speed of entity .writeStringParam() // = vehicle id .writeDoubleParamWithType(); // = speed value }  This example shows the command implementation for setting the speed for a vehicle. In the constructor, the write methods provides a builder-like construct allowing to define the command, the variable, and all parameters which are later passed dynamically to the command. Here, the command is specified as 0xC4 (= change vehicle state) and the variable as 0x04 (= speed of the entity). Furthermore, two parameters are defined: The first string parameter represents the ID of the vehicle, the second double parameter defines the speed value to be set (according to http://sumo.dlr.de/wiki/TraCI/Change_Vehicle_State). Note, the order of the specified command contents is from crucial importance. E.g. the command must always be specified before the variable, and the variable before all parameters.\nAll parameters defined in the constructor (here: [String, Double] ), need to be assigned with values as soon as the command is executed. For this purpose, the command implementation needs to call the method execute of the super class with the parameter values in the specified order:\npublic void setSpeed(TraciConnection traciCon, String vehicleId, double speedValue) { super.execute(traciCon, vehicleId, value); }  Within the execute method, the AbstractTraciCommand constructs the whole message and sends it to the TraCI server (SUMO). Furthermore, the AbstractTraciCommand also reads the response, extracts the status of the response (successful or error) and reads all values returned by the server. Usually, commands which changes the state of an entity only (like VehicleSetSpeed) do not respond with complex results. However, a command which wants to retrieve a value of an entity needs to read out the result from the response (e.g. VehicleGetRouteId which returns the current route identifier of the vehicle). For this purpose, each command needs to specify how the response should be handled:\nprotected VehicleGetRouteId() { super(TraciVersion.LOWEST); write() .command(0xA4) // = retrieve vehicle state .variable(0x53) // = route id of entity .writeStringParam(); // = write vehicle id read() .skipBytes(2) // = skip command and variable in response .skipString() // = skip vehicle id, not relevant .readStringWithType(); // = read route id  This example shows the command implementation for getting the route id of a vehicle. As well as write, the method read returns a builder-like construct which provides methods to define how the response is handled. Here, the first two bytes of the response should be skipped, as well as the string which follows afterwards. The value the command is interested in is the following string value which holds the id of the route. By using the method readStringWithType the string is read out and is passed to the method constructResult which needs to be implemented by the command as well:\npublic String getRouteId(TraciConnection con, String vehicle) { return super.executeAndReturn(con, vehicle); } @Override protected String constructResult(Status status, Object... objects) { return (String) objects[0]; }  In this simple case the result of the command consists of one result object only (the route id). Therefore, it is just extracted from the array of result objects and directly returned.\nWriting parameters In order to write parameters and read results according to the specification of the protocol, several reader and writer implementations exist. For parameters to be written in the command various writers exists to write single bytes, strings, integers, and doubles, or special writers for writing lists. The same is for readers.\nIn the following example, the IntegerTraciWriter is shown:\npublic class IntegerTraciWriter extends AbstractTraciParameterWriter\u0026lt;Integer\u0026gt; { public IntegerTraciWriter() { super(4); } public IntegerTraciWriter(int value) { super(4, value); } @Override public int getVariableLength(Integer argument) { return getLength(); } @Override public void write(DataOutputStream out) throws IOException { out.writeInt(value); } @Override public void writeVariableArgument(DataOutputStream out, Integer argument) { out.writeInt(argument); } }  Each writer has two tasks. Firstly, it needs to determine the length of the parameter value. For example, an integer parameter is always 4 bytes long, whereas the length of a string parameter depends on the size of the argument. Therefore, each writer needs to be able to determine the variable length according to a given value. Secondly, it needs to write out the actual value into the DataOutputStream (which represents the channel to the TraCI server). Furthermore is each writer able to write fixed values, such as the command identifier which does not change, or variable arguments, such as the vehicle id.\nReading results In the following example, the IntegerTraciReader is shown:\npublic class IntegerTraciReader extends AbstractTraciResultReader\u0026lt;Integer\u0026gt; { public IntegerTraciReader() { super(null); } public IntegerTraciReader(Matcher\u0026lt;Integer\u0026gt; matcher) { super(matcher); } @Override protected Integer readFromStream(DataInputStream in) throws IOException { return readInt(in); } }  A reader has three tasks. Firstly, it reads out a value from the DataInputStream (which represents the response channel to the TraCI client) according to the protocol specification. For example, an integer can be read out directly, while a string requires several single reading operations. Secondly, the reader needs to take track of the number of bytes it has read in total. To achieve this it is recommended to use the provided methods of the super class, such as readInt, readString, or readByte .However, if values need to be read directly from the DataInputStream, the protected field numBytesRead must always be increased accordingly. Thirdly, the reader needs to define if the read out value fulfils certain requirements. Such requirement can be, that a certain value is expected. In this case, a matcher might be passed to the super constructor.\nAccessing the commands For each command, only one object should be instantiated during runtime. To achieve this, the CommandRegister is used. This class stores a command once it is created returns only one instance per command class:\nfinal RouteAdd routeAddCommand = commandRegister.getOrCreate(RouteAdd.class); //... do something  However, commands should not be accessed directly in the code, but rather using the various facades available:\n TraciRouteFacade - Route specific command calls, such as addRoute and getRouteEdges . TraciSimulationFacade - Provides methods to control the simulation, such as simulateStep . TraciTrafficLightFacade - Provides methods to get or set values for traffic lights. TraciVehicleFacade - Provides methods to get or set values for vehicles. All those facades can be accessed via the TraciClient.  Exception handling Exceptions are thrown and handled as following:\n  If a command results in a status response with the status code Error, a TraciCommandException is thrown. If this exception is thrown, the TraCI connection is still alive and can be used for further commands. The facades decide how to handle this exception then and may throw an InternalFederateException or log a warning message.\n  If a command could not be written properly, or the result could not be read out as wished, an InternalFederateException is thrown and an Emergency Exit is initiated, which eventually shuts down the TraCI connection. This also happens if a reader or writer throws any kind of Exception.\n  Version handling With future releases of SUMO new TraCI commands will emerge. To achieve downward compatibility each command can define the lowest TraCI Version it supports. For example, a command which was introduced with SUMO 0.30.0 and is annotated accordingly, would be skipped automatically if the version of the TraCI server is lower. However, this concept has not been tested yet properly.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"619eca86fee9768692c3090a256ba49b","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/sumo_ambassador_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/sumo_ambassador_details/","section":"docs","summary":"The Simulation of Urban Mobility (SUMO) simulator is an open source microscopic, multi-modal traf- fic simulation package which is developed by the Institute of Transportation research at the German Aerospace Centre.","tags":null,"title":"Sumo Ambassador Implementation","type":"docs"},{"authors":null,"categories":null,"content":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places. Those abstractions will be discussed later on.\nConfiguration The SNS offers some configurability regarding the way transmissions are simulated.\nMain Configuration:\n   Parameter Description type Default Value     maximumTtl Defines the upper bound for the amount of hops a message can make. (Note: messages can have individual ttl\u0026rsquo;s) int 10   singlehopRadius Fallback radius to be used for transmission, if no radius is defined in the AdhocConfiguration double 509.4   singlehopDelay A delay configuration for the direct communication between two nodes. ( See here) Delay `ConstantDelay |   singlehopTransmission This contains the transmission configurations for lossProbability and maxRetries. CTransmission n/a   adhocTransmissionModel A class extending AdhocTransmissionModel, this will decide the logic for transmissions. AdhocTransmissionModel SimpleAdhoc TransmissionModel     On default the SNS will use the SimpleAdhocTransmissionModel with a ConstantDelay using 0 as delay. This means it usually makes sense to specify the AdhocTransmissionModel explicitly and use a more realistic Delay. Example Configuration:\n { \u0026quot;maximumTtl\u0026quot;: 20, \u0026quot;singlehopRadius\u0026quot;: 300.5, \u0026quot;singlehopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;1.5 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.5 ms\u0026quot; }, \u0026quot;singlehopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 0 }, \u0026quot;adhocTransmissionModel\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleAdhocTransmissionModel\u0026quot;, \u0026quot;simpleMultihopDelay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }, \u0026quot;simpleMultihopTransmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } }  Transmission Logic SNS differentiates between two types of Ad hoc transmissions, geographically- and topologically-scoped transmissions, which generally are abbreviated with GeoCast and TopoCast respectively.\nGeoCasts are limited to BroadCasts. Accordingly, there is no explicit addressing of receivers (other than 255.255.255.255), instead a destination area is specified. However, GeoCasts allow for multihop forwarding.\nTopoCasts on the other hand use means of IPv4 addressing to transmit messages. Since the SNS was not build to simulate transmissions using complex topology-constructs, TopoCasts are limited to transmissions with a single hop. However, TopoCasts support BroadCasts and UniCasts (we are omitting Anycasts). Most transmissions in the Ad hoc domain will be some form of Broadcast, meaning every reachable entity is eligible to receive a message.\n#mermaid-1603209753374{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603209753374 .error-icon{fill:#552222;}#mermaid-1603209753374 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603209753374 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603209753374 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603209753374 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603209753374 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603209753374 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603209753374 .marker{fill:#333333;}#mermaid-1603209753374 .marker.cross{stroke:#333333;}#mermaid-1603209753374 svg{font-family:\"trebuchet ms\",verdana,arial;font-size:16px;}#mermaid-1603209753374 .label{font-family:\"trebuchet ms\",verdana,arial;color:#333;}#mermaid-1603209753374 .label text{fill:#333;}#mermaid-1603209753374 .node rect,#mermaid-1603209753374 .node circle,#mermaid-1603209753374 .node ellipse,#mermaid-1603209753374 .node polygon,#mermaid-1603209753374 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1603209753374 .node .label{text-align:center;}#mermaid-1603209753374 .node.clickable{cursor:pointer;}#mermaid-1603209753374 .arrowheadPath{fill:#333333;}#mermaid-1603209753374 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1603209753374 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1603209753374 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1603209753374 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1603209753374 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1603209753374 .cluster text{fill:#333;}#mermaid-1603209753374 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1603209753374:root{--mermaid-font-family:\"trebuchet ms\",verdana,arial;}#mermaid-1603209753374 flowchart{fill:apa;}TopoCastGeoCastYesYesYesNoYesNoV2X-TransmissionTransmission TypeBroadcast\nor Unicast?Broadcast?Simulate TopoCast using\nsinglehop configuration.Simple transmission\nmodel?Simulate transmission using\nsimpleMultihopDelay.Sender directly able to reach\ndestination area?Flooding in destination areaGreedy Forwarding to reach area,\nthen flooding in destination areay.  This flowchart tells how different types of messages are handled internally.   TopoCasts The only way of directly addressing entities is a SingleHopUniCast (see figure below), the sender will try to address an entity in its transmission range.   SingleHopUniCast: The RSU is directly addressing the green vehicle.   The counterpart to that is a SingleHopBroadCast (see figure below), this form of transmission is commonly used for CAMs (Cooperative Awareness Messages) and other types of intermediate warning messages to all entities in transmission range.\n  SingleHopBroadCast: The RSU is addressing all units in transmission range.   GeoCasts As already explained, GeoCasts do not support direct addressing, so there is no form of UniCast. Instead of addressing entities, GeoCasts specify a destination area in which a message should be distributed. The SNS supports two ways to simulate GeoCasts. A simple but performant model (SimpleAdhocTransmissionModel) \u0026amp; a fairly realistic model ( SophisticatedAdhocTransmissionModel).\nThe simple model assumes a transmission to all entities in the specified area, whereas the delay will be calculated using the configured delay-type and the successful reception will be determined by the uniformly distributed lossProbability. The figure below depicts this behaviour   Simple GeoBroadCast: The RSU is sending to all entities in the destination area. All arrows (transmissions) will have a uniquely calculated delay or possible loss.   The realistic model accounts for possible transmission failures more accurately. The easiest case is that the sender itself is inside of the destination area1 and will start a Flooding Transmission within this area (see figure below).   GeoBroadCast using Flooding Transmission. Note: the area is not limited to circles.   In case the sending entity is outside of the destination area, a Forwarding Transmission has to be executed first. This is can also be described as an AnyCast, since the goal of this transmission is to reach any entity inside the destination area. We try to achieve this by building a \u0026ldquo;chain\u0026rdquo; of entities, that will forward the message to the destination are (see figure below).   Forwarding Transmission, by building a \u0026ldquo;chain\u0026rdquo; of vehicles.   The SNS however never uses Forwarding Transmissions individually, rather they are combined with a Flooding Transmission, which will simulate a way, that GeaCasts can be implemented in reality. The figure below depicts this behaviour.   Forwarding Transmission followed by a Flooding Transmission to realistically simulate GeoCasts.   Transmission Models As already mentioned in the previous abstracts, the SNS supports different transmission models for different use cases. Depending on the configuration of the SNS and the type of message send, different models will be used. The models are located in the package org.eclipse.mosaic.fed.sns.ambassador.model. This chapter aims to give a detailed inside in the workings of the models.\nSimpleAdhocTransmissionModel This is the most basic of all transmission models and will be your model of choice if you are not interested in completely accurate transmission results but care for performance. This model will approximate GeoCasts using the defined simpleMultihopDelay and simpleMultihopTransmission parameters. For TopoCasts the usual singlehopDelay will be used. This model only checks, whether a potential receiver is inside the destination area and has enabled Adhoc capabilities. If those conditions are met it will simulate the transmission by calculating an actual delay value and saving it into a transmission-result. Such a result holds information of the success of the transmission, the delay-value, the amount of hops, and the number of attempts. Though the amount of hops will always be 1 for this model.\nSophisticatedAdhocTransmissionModel This model offers are more realistic simulation of adhoc transmissions, using an implementation of a greedy-forwarding and flooding algorithm (see here (greedy forwarding) \u0026amp; here (flooding)). For TopoCasts this model behaves very similarly to the SimpleAdhocTransmissionModel, since TopoCasts are always configured with only one hop. For GeoCasts however, this model follows the flowchart above, trying to \u0026ldquo;approach\u0026rdquo; a destination area if it can\u0026rsquo;t be reached directly.\nApproaching (Greedy forwarding) Approaching can be imagined as building a \u0026ldquo;chain\u0026rdquo; of entities to reach an area. However, there is no guarantee, that even if such a chain exists, it will be found. The way that this chain is build follows the subsequent steps:\n Start from the sender and collect all reachable entities. Choose out of all reachable entities the one, that is closest to any node in the destination area. Use the chosen node and repeat the first step. Repeat until either a node inside the destination area is reached, or the TTL (time to live) is exceeded.  By always choosing the node with the shortest distance to the destination area, we omit a lot of possible solutions. Greedy Forwarding isn\u0026rsquo;t optimal, but offers a performant approach for this problem. \u0026ldquo;Face Routing\u0026rdquo;-algorithms will always find a path if one exists, however this hasn\u0026rsquo;t been implemented yet (feel free to contribute :). The figure below shows an example of those shortcomings, the message will be send using the green nodes and won\u0026rsquo;t receive the destination area, even though there is a possible \u0026ldquo;chain\u0026rdquo; using the yellow nodes.\n image/svg+xml       Layer 1 Destination Area Destination Area Destination Area Sender Sender Sender    This figure depicts a case were the Approaching Transmission wouldn\u0026rsquo;t reach the destination area, even though there is a possible way. (The dashed lines represent the communication range)   Flooding The implementation of Flooding is fairly equivalent as described on wikipedia. Each entity forwards the message to all entities in its communication range. Entities, that already received the message won\u0026rsquo;t receive it again; this is different from many real-life implementations, where messages are send to all reachable entities except the sender. However, since the simulation has total knowledge of all simulated entities, it is easier to overcome a lot of the disadvantages, that flooding faces in real world implementations.\nImplementing your own AdhocTransmissionModel If the implemented models don\u0026rsquo;t suffice your needs you can easily implement your own. Create a class extending AdhocTransmissionModel and implement the abstract methods for sending TopoCasts/GeoCasts. A possible extension could be to allow for multihop TopoCasts, building an actual topology and transmit your messages using that topology. Also, the aforementioned \u0026ldquo;Face-Routing\u0026rdquo; could be of interest. Additionally, the calculation of delays could be made more realistic.\nAccessing SNS-functionality from your applications In order for your scenario to enable the SNS follow the steps here. An overview of how to configure AdHoc-modules and usage of the API for Routing and Message-Building functions, can be found here.\n  Or is able to communicate with an entity inside the destination area. \u0026#x21a9;\u0026#xfe0e;\n   ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"848a0c0a1afd14ed7264603bb2725ecf","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_sns/","section":"docs","summary":"The Simple Network Simulator (SNS) aims to provide simple and fast capabilities for the transmission of V2X-messages using Ad hoc communication. In order to stay performant the simulator makes abstractions in certain places.","tags":null,"title":"Simple Network Simulator (SNS)","type":"docs"},{"authors":null,"categories":null,"content":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them. That means at first the internals of one node are introduced which incorporate mainly the communication stack and a mobilitymodel. Afterwards, especially the scenario management is presented which builds up on the individual nodes and controls themajor part of the simulation. These both aspects are in similar way needed formost mobile communication simulation with OMNeT++ even in an isolated setup. However, specifically for interaction and synchronization with the other simulators in the Eclipse MOSAIC environment, a third pillar is necessary. This scheduler module is very important for the system as it implements the time management and event scheduling according to Eclipse MOSAIC specific concepts.\nNode Internals The main part of the node model consists of the communication stack. The submodules for communication are adopted from the INETMANET framework. Hence, it is primarily important to define the connections between the individual modules. However, there are also modules which needed to be implemented for the dedicated purpose of the coupling within the Eclipse MOSAIC environment. Finally, all modules are linked together to a compound module using the NED language. The following figure depicts the node architecture. It needs to be said that the concept currently supports two different kinds of nodes for Vehicles and RSUs, while V2X-based traffic lights are treated as RSUs. For the first approach these two kinds of nodes have the equal construction in terms of modules. The difference at the moment is that they can be configured with different values for parameters e.g. that Vehicles and RSUs have a different antenna height which is important for Two Ray Ground ReflectionModel. Furthermore, this concept is capable for later extensions e.g. for simulations when RSUs should be equipped with an additional network interface to build the bridge fromAd hoc Domain to the Fixed Infrastructure Domain (i.e. Internet).\n Architecture of one Node   Communication Stack The right part of the block diagram in the figure above depicts the communication stack. It is based on the module Wlan which is a compound module itself and covers the complete IEEE 802.11 network interface card with the MAC and PHY Layer and the Radio Channel. The configuration of different values for standard parameters e.g. the PHY bit rate or size of the contention window of the MAC can be exchanged within the omnetpp.ini-file (which introduces the parameters of the according module ned-files). Please note that the configuration allows different values for each kind of nodes and hence it is possible to configure another propagation model or carrier frequency for Vehicles compared to RSUs. Even if the possibility for such a configuration exists, it should be avoided and common parameters should consistently be configured twice with the same value.\nThe next module in the communication stack is the NetworkLayer. Once again it is a compound module and already a collection of most important protocols. The following protocols from version IPv4 are supported in this layer.\n IP (Internet Protocol) of course as primary protocol of the Network Layer ICMP (Internet ControlMessage Protocol) for information and error messages IGMP (Internet GroupManagement Protocol) for management ofmulticast functionality ARP (Address Resolution Protocol) for mapping of IP Addresses toMAC Addresses  Furthermore, the standalone modules InterfaceTable and RoutingTable are related to the Network Layer. The first one is needed to support multiple Network Interface Cards e.g. for wireless and fixed LAN in one node. It is already included for possible further extensions as previously mentioned, but up to now it has only one entry which is the Network Interface Card for Wlan. The second one is a table for simple Routing. This module is needed for correct instantiation of a node via the FlatNetworkGenerator as explained later in this section.\nThe TransportLayer of the communication stack is made up of TCP for reliable connections and UDP.\nThe modules VSimRTIReliableApp and VSimRTIUnreliableApp of Application Layer are the entry points for application messages for the communication stack for the following reasons. The communication oriented models of INETMANET have their focus more on the framing for communication and less on the real content. That means that content is often modeled with dummy payloads where only the length is of interest. In contrast, V2X applications which are simulated in the Application Simulator. Rely on the correct transmission of contents. Hence, the modules VSimRTIReliableApp and VSimRTIUnreliableApp are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager to send new messages to lower layers and forward messages themselves back to the ScenarioManager upon reception. The main tasks are generally acting as an application within the scope of OMNeT++ and encapsulating themessage contents to packets to prepare them for sending. While functionality of an UDP application is fully supported in VSimRTIUnreliableApp, the complete TCP application functionality is restricted in VSimRTIReliableApp. Note that up to now it is not entirely clarified if and how TCP should be supported in V2X use cases for safety and traffic efficiency with their broadcast characteristics, think of different roles of server and client in TCP. When the Eclipse MOSAIC ScenarioManager properties are detailed later in this section, it is also explained how the connection between the Eclipse MOSAIC ScenarioManager and the Eclipse MOSAIC Apps is realized. This connection needs to be established dynamically and is therefore not assigned with a connecting arrow like the fixed connections between the modules of communication stack.\nMobility Model The second important component of the node is the mobility module VSimRTIMobility, which extends the BasicMobility. Unlike other mobility models as RandomWaypoint it does not generate node movements itself and has a straight static character. Node position updates are always triggered by the Eclipse MOSAIC ScenarioManager. Hence,mobility is completely controlled by Eclipse MOSAIC and in turn by the coupled traffic simulator. After successful position update the VSimRTIMobility module informs other modules about this event via the NotificationBoard.\nAdditional Functionality At last, the module NotificationBoard is defined for each node. This module was already mentioned in the model overview of INETMANET. It enables a very efficient way for dynamic communication between the individual modules. There is no direct and static connection needed between the modules, because modules can subscribe dynamically for notification about dedicated events.\nSimulation Setup The setup of the complete simulation is illustrated in the following Figure 3 From the view of OMNeT++, the simulation is a network which has a dynamic topology and is referenced as the simulated network in the omnetpp.ini-file for configuration. The ini-file gives access to all parameters which are offered to be configured by the included simple modules. The parameters are referred to by their hierarchical names with the simulated network as root module. As it is possible to assign already default values for parameters in the modules NED file, not every parameter needs to be configured in the ini-file. The simulation consists of basically three parts.\n Architecture of the whole Simulation Scenario   Simulated Nodes Obviously the major part of the simulation is dedicated to the nodes. They are compound modules either from type Vehicle or RSU and have the properties as described in the previous section. The number of nodes in the simulation can vary over simulation time and is dynamically managed by the Eclipse MOSAIC ScenarioManager.\nCommon Communication Dependent Modules The second part covers the modules which actually count to the communication stack, but are common for all simulated nodes. These modules are the ChannelControl and the FlatNetworkGenerator. The ChannelControl keeps track of all nodes, their positions and Radio Channels. The main task is to determine which nodes are in communication range and which other nodes are within interference distance. The FlatNetworkGenerator is part of the Network Layer. It is used to instantiate a network with a flat topology and assigns the IP addresses to all nodes. Additionally it runs Dijstra’s shortest path algorithm to discover the routes and adds them into the routing tables. It is assumed that the routing tables are of kind of the RoutingTable from the specific NetworkLayer package. This is the reason why every node is equipped with the RoutingTable submodule. This approach works out for the current simulation purposes, but when any Ad hoc Routing protocols will be introduced to the simulation model the FlatNetworkGenerator and the RoutingTable modules are likely be obsolete and would have to be replaced.\nEclipse MOSAIC ScenarioManager The ScenarioManager is an experimental feature that implements a central control instance in simulations with INETMANET framework. It is loaded with a script in XML notation and is used to setup and control simulation experiments. Actually the original ScenarioManager and the new Eclipse MOSAIC ScenarioManager have nearly nothing in common but the fact that both are used as a central management instance to enhance simple configurations to simulate more sophisticated scenarios. The general tasks of the Eclipse MOSAIC ScenarioManager contain the simulation start up with instantiation of common modules as ChannelControl and initialization of the Eclipse MOSAIC EventScheduler (detailed later) and the controlled simulation shut down. But most important beside these are the management of node mobility and management of V2X communication which are triggered by Eclipse MOSAIC during simulation.\nThe Mobility Management is responsible for administration of simulated nodes and their mobility. This includes introducing nodes to simulation, updating node positions and removing nodes from simulation.\nThe node introduction method is triggered by Eclipse MOSAIC with the commands ADD_NODES or ADD_RSU_NODES respectively. It adds the node according to its node id to the managed modules and creates the complete compound module. Important for later message handling is the setup of connections to the dedicated Eclipse MOSAIC App, which is done via so called gates. At the moment, the Eclipse MOSAIC Apps are statically initialized, but the concept is suitable to be extended later when other transport protocols and in turn applications have to be simulated.\nUpon MOVE_NODE command, which contains the affected node id and new position to be updated, the node is moved via the VSimRTIMobility module.\nAt last the REMOVE_NODE command indicates that a node leaves the simulation. On this event, the according node is deleted and unregistered from managed modules.\nThe CommunicationManagement controls the sending and receiving of V2X messages.\nThe SEND_V2X_MESSAGE command initiates the sending process. It contains the sender node id and the transport protocol. Thus the Eclipse MOSAIC ScenarioManager can select the according Eclipse MOSAIC app at the according node.\nWhen a message from another node successfully arrives at the application layer the Eclipse MOSAIC ScenarioManager is notified by the according node. Then, it sets up a RECV_V2X_MESSAGE which is sent back to Eclipse MOSAIC via the Eclipse MOSAIC EventScheduler. This intermediate step is introduced, since the Eclipse MOSAIC EventScheduler is the only instance, which is connected to Eclipse MOSAIC and which knows when it is safe to receive and send interactions.\nSimulator Coupling OMNeT++ is connected to Eclipse MOSAIC according to the concept of high-level-architecture (HLA). That means that the OMNeT++ simulation program itself is encapsulated in the OMNeT++ federate. To enable the coupling according to Eclipse MOSAIC concept, two components needed to be developed. First, the OMNeT++ federate is extended with the customized Eclipse MOSAIC EventScheduler, which can receive and send interactions forMobility and CommunicationManagement. The second component is the OMNeT++ Ambassador that can handle on the one hand the OMNeT++ specific connection and on the other hand the well-defined interface to Eclipse MOSAIC. The emphasis of both components lies in the synchronized exchange of interactions i.e. a time management mechanism must be jointly realized by them. For this purpose the conservative synchronization mechanism is implemented. The following figure gives an overview of the included compenents.\n Overview of Simulator Coupling   Eclipse MOSAIC EventScheduler The Eclipse MOSAIC EventScheduler extends the simple standard scheduler of OMNeT++ to be able to implement the time management for the Conservative Synchronization with Eclipse MOSAIC. It is the only module in OMNeT++ which has access to the event queue or Future Event Set (FES). Since the OMNeT++ simulation is an event driven simulation the scheduler has to fulfill two tasks. The first task is the actual scheduling part which is always invoked by the simulation kernel to schedule the next event. It allows all events from the FES to be processed up to the granted logical time $T$. If there are only events with a later time $T'$ than $T$ left in the FES, it sends the Next Event Request (NER) to the OMNeT++ Ambassador at Eclipse MOSAIC side and blocks the OMNeT++ simulation. Then the second task comes into operation. If necessary, it coordinates the Receive Interaction procedure and merges the external events from Eclipse MOSAIC and hence from other federates to the internal FES. Events with the same time stamp are ordered to the FES according to first come first serve mechanism. Note that the handling of these simultaneous events is generally important to ensure repeatable execution of simulations. The decision about ordering is in control of the federate itself, since the RTI does not sufficiently have the information to do this. After the Receive Interaction step, the RTI completes the time management cycle with the Time Advance Grant for $T'$. At this point the scheduler can set its logical time to $T = T'$ and unblock the further processing.\nAdditionally the Eclipse MOSAIC EventScheduler provides the service for other modules to send interactions back to the OMNeT++ Ambassador, since it is also the one module which is connected to Eclipse MOSAIC. Currently, this is used by the Eclipse MOSAIC ScenarioManager to report the RECEIVE_V2X_MESSAGES.\nEclipse MOSAIC OMNeT++ Federate Development This section provides a description how to set up the OMNeT++ IDE for the Eclipse MOSAIC OMNeT++ Federate Development.\nAt this point it is awaited, that the OMNeT++ Federate is successfully installed.\nPrepare OMNeT++ IDE   Create an empty directory somewhere inside your home directory. We will call it \u0026lt;omnetpp_workspace\u0026gt; from here on. This directory will be used as a workspace in your OMNeT++ IDE.\n  Open your OMNeT++ IDE by executing omnetpp in your terminal.\n  Select \u0026lt;omnetpp_workspace\u0026gt; as workspace and continue by clicking Launch.\n  Close the \u0026ldquo;Welcome\u0026rdquo; screen.\n  Since your workspace is empty, the OMNeT++ IDE will ask you if you want to install the INET framework and OMNeT++ programming examples.\n OMNeT++ IDE: Install INET   Decide by yourself if you want to do that:\n By clicking OK the INET framework is going to be installed into an inet folder in your \u0026lt;omnetpp_workspace\u0026gt; If you already have INET installed somewhere you can skip the installation and import your existing INET project:  Cancel the dialog. Choose File \u0026gt; Open Projects from File System... In the new window choose the directory of your existing INET installation as Import Source and click Finish      The project inet should now be visible in the Project Explorer of your OMNeT++ IDE.\n  Right-click on free space in the Project Explorer and choose New \u0026gt; OMNeT++ Project...\n OMNeT++ IDE: Create new OMNeT++ Project     In the new window:\n Name the new project federate Uncheck the box before Use default location, click Browse and select:\n\u0026lt;mosaic\u0026gt;/bin/fed/omnetpp/omnetpp_federate_src/src\n OMNeT++ IDE: Create new OMNeT++ Project    Click Next    On the following Initial Contents page select Empty Project and continue by clicking Finish\nYou should now find two projects in the Project Explorer of your OMNeT++ IDE: inet and federate\n  Right-click on the federate project and choose Properties\n Go to Project references and check the box before inet\n Choose project references       That\u0026rsquo;s it! None of the files should now be marked with an error symbol.\n Configure Rebuild Configuration Since the Eclipse MOSAIC OMNeT++ Federate is not a classic OMNeT++ project, it cannot be build regulary with the OMNeT++ IDE by just clicking on the Build button. However, to make the build process easy and intuitive we provide a simple build script and the following desciption how to configure the OMNeT++ IDE to enable building on a single click:\n In the OMNeT++ IDE select Run \u0026gt; External Tools \u0026gt; External Tools Configuration... Double-click in the left column on Program to create a new configuration. Call it rebuild federate In the Main tab:  Under Location choose Browse Workspace... and select federate/rebuild_federate.sh Still in the Main tab under Working Directory choose Browse Workspace... and select federate  OMNeT++ IDE Build Configuration      In the Build tab uncheck the box before Build before launch\n OMNeT++ IDE Build Configuration    Now you can Apply your changes and click on Run. Since you have built the project at least once, you can rebuild it again by clicking here:\n Run rebuild     The following video shows the above described steps:\n  Configure Debug Configuration To debug the Eclipse MOSAIC OMNeT++ Federate during simulation you need to create a Debug Configuration. The following instruction will tell you how to that:\n In your OMNeT++ IDE choose Run \u0026gt; Debug Configurations... In the new window double-click on OMNeT++ Simulation in the left column and name the new created debug configuration federate. In the Executable row check other and type /federate/federate In the Working dir row type /federate In the Ini file(s) row type debug.ini omnetpp.ini At the end of the page click on the More \u0026gt;\u0026gt; link. And make sure all fields in the Advanced area are empty. For Projects to build select Do not build automatically before launch Now Apply your changes and try your configuration by clicking Debug  The following images shows the final debug configuration:\n Final debug configuration    The OMNeT++ Ambassador The OMNeT++ Ambassador is the intermediate component between OMNeT++ and Eclipse MOSAIC. As it implements the interface of an abstract federate ambassador in Eclipse MOSAIC. In the initialization phase the Ambassador applies for the TimeManagement policies time constrained and time regulated at the RTI. Remind that time constrained means that the time advances of the OMNeT++ Federate are dependent on the other simulators in the federation and time regulating means that the OMNeT++ Federate itself can prevent other federates from advancing their time.\nThe OMNeT++ simulation starts initially with an empty event queue and hence it needs to receive an interaction to fill the event queue with the first events to be processed. That means that the typical time management cycle in the Ambassador starts at step two with the Receive Interaction procedure. Note that messages within Eclipse MOSAIC usually effect more than one interaction e.g. a VehicleUpdates interaction contains information for added nodes and moved nodes. These are exchanged with OMNeT++ using a simple byte protocol. After this procedure the third step of time management cycle is processed with the initial Time Advance Grant. This is the point when the OMNeT++ simulation is able to start and the initialization phase is finished. Hence the time management cycle can be executed from first step which is waiting for a new NER until no federate requests further events and the simulation is finished.\nThe Time Representation One important issue for the simulation coupling is the common representation of the logical time at the RTI and the different federates in the federation. Normally, the time is a federate-defined abstract data type. The requirements for such a time are the ability for comparison and addition and most important the possibility of conversion without the loss of precision. Otherwise, deadlocks in the synchronization procedure are guaranteed. On the one hand Eclipse MOSAIC treats times as a 64-bit integer with a resolution of nanoseconds. On the other hand the OMNeT++ simulation time is represented by the type simtime_t which is a typedef to double. It is generally known that conversions from floating point to fixed point are vulnerable to rounding errors. To circumvent this issue the underlying raw 64-bit integer of the simtime_t representation is also made accessible, which works perfect if the scale exponent for time precision was previously initialized to $-9$ (i.e. nanoseconds).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e17d5285bdeec55226cf2b05562bd701","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/omnetpp_details/","section":"docs","summary":"The OMNeT++ Federate design is based on amicrosimulation where every participating vehicle respectively node is individually modeled and simulated and all entities are clued together in a scenario with one instance the manages the interaction between them.","tags":null,"title":"OMNeT++ Federate Implementation","type":"docs"},{"authors":null,"categories":null,"content":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC. The implementations can be found in the package org.eclipse.mosaic.lib.model.delay. Note prior to the release of MOSAIC delay values were configured using Milliseconds as unit, this has been refactored to Nanoseconds. Alternatively you can specify delay values using a String with a unit (eg \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot;).\nDelay Models The Delay class represents an implementation for a specific delay model. The following model implementation exist:\nConstantDelay The ConstantDelay-class is arguably the simplest implementation of Delay. This model is configured with a single field delay, which the generateDelay(...)-method will simply return.\nWhile this delay doesn\u0026rsquo;t provide realistic behaviour in most cases it is optimal for testing purposes as it can easily be retraced.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;20 ms\u0026quot; }  SimpleRandomDelay The SimpleRandomDelay model allows for the generated delays to be randomly distributed between a minDelay and a maxDelay. Additionally, the steps field is used to limit the amount of different delays, by equally separating the interval into the amount of steps specified. This delay provides a simple and performant way to randomize and thereby more realistically reflect real-world delays.\nFor example, with the configuration below, one of the following delays is randomly chosen: [0.4, 0.9, 1.4, 1.9, 2.4] ms.\nConfiguration:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;0.4 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;2.4 ms\u0026quot; }  Gamma Delays MOSAIC provides two types of delays using a Gamma-distribution to sample values, namely GammaRandomDelay and GammaSpeedDelay. The parameters for the used Gamma-distribution have been determined experimentally. The GammaSpeedDelay extends the GammaRandomDelay by a speed penalty. Both delay-types aim to provide more realistic solution, than the previous models, but come with the downside of complexity.\nConfigurations:\n\u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaRandomDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;GammaSpeedDelay\u0026quot;, \u0026quot;minDelay\u0026quot;: \u0026quot;10 ms\u0026quot;, \u0026quot;expDelay\u0026quot;: \u0026quot;30 ms\u0026quot; }  ","date":1593471600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1593471600,"objectID":"991360c7135b1da7033c0bd4be1d7e9f","permalink":"https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/","publishdate":"2020-06-30T00:00:00+01:00","relpermalink":"/mosaic/docs/extending_mosaic/delay_models/","section":"docs","summary":"MOSAIC has different types of delays implemented for different use cases. This page will give a short introduction into the types and their usages, as well as example configurations, which are used throughout MOSAIC.","tags":null,"title":"Delay Models","type":"docs"},{"authors":null,"categories":null,"content":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable. Users interested in a different kind of simulation of cellular communication may use other simulators and develop ambassadors connecting them to Eclipse MOSAIC.\nThe Cellular Simulator in the current state consists of three main modules:\n UplinkModule GeocasterModule DownlinkModule  The Geocaster module simulates a mandatory component for ITS communication. It is inspired by the several architectures from research projects as simTD or CONVERGE to enable ITS use cases over cellular networks. It mainly takes over the task of an addressing and routing component with geographic knowledge to support geo-addressing. However, it also supports regular topological addressing. The Uplink and DownlinkModule are responsible for the transmission simulation. They account for the aspects of transmission delays, packet losses and available data rates. In this context,Uplink and Downlink always refer to the direction towards respectively from the Geocaster. For instance, a transmission from an Internet-based server towards a vehicle would include an Uplink between the server and the Geocaster and a Downlink between the Geocaster and the vehicle. While the Uplink direction only allows point-to-point communication (Unicast), the Downlink supports point-to-point (Unicast) as well as point-to-multipoint (Multicast).\nCellAmbassador folder structure The Eclipse MOSAIC Cell simulator can be configured via three distinct configuration files, which can be found within the scenarios' folder structure:\n└─ \u0026lt;scenario_name\u0026gt; └─ cell ├─ cell_config.json ................ Cell ambassador configuration file ├─ network.json ..................... Network configuration file └─ regions.json ..................... Regions configuration file  The network and regions configuration files are referenced in the cellular ambassador configuration file.\nInstallation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration We provide a cellular configuration file in the example scenarios of Tiergarten and Barnim. Please note that in the default configuration of this scenario the Cellular Simulator is deactivated. To activate the cellular simulator just enable the cell federate in the scenario_config.json:\n\u0026quot;federates\u0026quot;: { ... \u0026quot;cell\u0026quot;: true, ... }  The central configuration for the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/cell_config.json could look like this:\n{ \u0026quot;debugGeocasting\u0026quot;: false, \u0026quot;visualizeRegions\u0026quot;: true, \u0026quot;networkConfigurationFile\u0026quot;: \u0026quot;network.json \u0026quot;, \u0026quot;regionConfigurationFile\u0026quot;: \u0026quot;regions.json \u0026quot; }  The visualizeRegions-option from the cell_config.json is used to write a KML-file that visualizes the used cell regions. Google Earth can be used to display it.\nThe configuration for the global network in the cellular simulator in the file \u0026lt;scenarioName\u0026gt;/cell/network.json could look like this:\n{ \u0026quot;globalNetwork\u0026quot;: { \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;50 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;100 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.0 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } }  Server configuration MOSAIC supports a type of simulation units, called servers. Traffic Management Centers are a specialised type of server. What differentiates servers from other units is, that they are treated as having no geographical location and instead are located \u0026ldquo;inside the internet.\u0026rdquo;. This concept omits prior shortcoming, where one would have to configure RSU\u0026rsquo;s as servers.\nServers are also configured in the network.json as follows:\n{ \u0026quot;globalNetwork\u0026quot;: { [...] }, \u0026quot;servers\u0026quot;: { { \u0026quot;id\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;ConstantDelay\u0026quot;, \u0026quot;delay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.5, \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 5, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.1, \u0026quot;maxRetries\u0026quot;: 2 } } } }, { [...] } } }  Servers get their configuration for the delay and retransmission models from the network.json and the configuration for the capacity-module has to be made from within an application, by activating the CellModule and properly setting the bit rates. This could look as follows:\ngetOs().getCellModule().enable( new CellModuleConfiguration() .maxUlBitrate(10000) .maxDlBitrate(10000) );  For the CellAmbassador to be able to recognize servers, the group-field in the mapping must match the id-field in the network.json, this also allows for multiple servers to utilize the same configuration. A mapping_config.json using the configuration from above could look as follows:\n{ ..., \u0026quot;tmcs\u0026quot;: [ { \u0026quot;group\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;TestApplication\u0026quot; ], \u0026quot;inductionLoops\u0026quot;: [ ], \u0026quot;laneAreaDetectors\u0026quot;: [ ] } ], \u0026quot;servers\u0026quot;: [ { \u0026quot;group\u0026quot;: \u0026quot;TestServer\u0026quot;, \u0026quot;applications\u0026quot;: [ \u0026quot;TestApplication\u0026quot; ] } ], ... }   Note that all bandwidths are given in bit per second and all delays in nanoseconds, unless explicitly defined differently. Also, every json configuration goes through a minifier, so comments are allowed in the configuration files. An example would be the comment before the globalNetwork option.\n Delay regions Additionally, the user has the option to define regions with individual delays. This can be used to simulate areas with bad reception, crowded areas etc.\nThe regions should be stored in \u0026lt;scenarioName\u0026gt;/cell/regions.json. An example definition for a single region called Ernst-Reuter-Platz could look like this:\n{ \u0026quot;regions\u0026quot;:[ { \u0026quot;id\u0026quot;: \u0026quot;Ernst-Reuter-Platz\u0026quot;, \u0026quot;area\u0026quot;: { \u0026quot;nw\u0026quot;: { \u0026quot;lon\u0026quot;:13.3249, \u0026quot;lat\u0026quot;:52.5131 }, \u0026quot;se\u0026quot;: { \u0026quot;lon\u0026quot;:13.3273, \u0026quot;lat\u0026quot;:52.5125 } }, \u0026quot;uplink\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 4, \u0026quot;minDelay\u0026quot;: \u0026quot;50 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8, \u0026quot;maxRetries\u0026quot;: 2 }, \u0026quot;capacity\u0026quot;: 28000000 }, \u0026quot;downlink\u0026quot;: { \u0026quot;unicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;100 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;200 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;maxRetries\u0026quot;: 2 } }, \u0026quot;multicast\u0026quot;: { \u0026quot;delay\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;SimpleRandomDelay\u0026quot;, \u0026quot;steps\u0026quot;: 3, \u0026quot;minDelay\u0026quot;: \u0026quot;120 ms\u0026quot;, \u0026quot;maxDelay\u0026quot;: \u0026quot;220 ms\u0026quot; }, \u0026quot;transmission\u0026quot;: { \u0026quot;lossProbability\u0026quot;: 0.8 }, \u0026quot;usableCapacity\u0026quot;: 0.6 }, \u0026quot;capacity\u0026quot;: 42200000 } } ] }  Note that nw represents the upper-left (north-west) point of the rectangle and se the lower-right (southeast). For further information about the possible options, please refer to the Eclipse MOSAIC API documentation.\nThe actual configuration of the uplink and the downlink modules for each region exhibits the identical format as configuration of the globalNetwork in the network.json.\nWhen no regions are found, or if a node (a vehicle) is not within a specified region, the globalNetwork defined in the network.json-File will be used as the delay model.\nTransmission simulation One of the most important feature of the cellular simulator is an estimation of the delay experienced through the transport over the cellular network.\nThe cellular simulator offers various modes to estimate the delay of the transmissions. The type of estimation is specified with by delayType for the uplink and downlink for each region. You may also refer to the Delay-Chapter.\n delay.type = ’ConstantDelay’: The message is transmitted with the latency being exactly equal to delay. delay.type = ’SimpleRandomDelay’: The latency can assume different (randomly generated and uniformly distributed) values between minDelay and maxDelay. The number of different values is determined by steps. delay.type = ’GammaRandomDelay’: A gamma distribution is used to estimate the latency, with $ \\alpha $ = 2 and $ \\beta $= 2. The minimal delay minDelay is added to the result. The curve is fitted so that the maximum likelihood for the delay is exactly equal to expDelay. delay.type = ’GammaSpeedDelay’: This mode closely resembles the GammaRandomDelay. Additionally, a penalty for the velocity with which the node is moving is calculated. This penalty is then added to the original delay. The GammaRandomDelay and the GammaSpeedDelay are derived from a measurement campaign during a research project at the DCAITI.  The two different modes for the downlink are unicast and multicast which are configured separately. Multicast aims to simulate the features of Multimedia Broadcast Multicast Service (MBMS). The main difference in terms of the transmission for unicast and multicast is the handling of undeliverable messages. For unicast, the options lossProbability and maxRetries are used. Pr is short for packet retransmit and denotes the probability for a failed delivery and a subsequent retransmit. The maximum number of retries for the retransmission is configured through the maxRetries-option. The probability of a successful retransmit is recalculated on every try.\nIn case of multicast the lossProbability is used as packet loss rate. The value is factored into the delay calculation. In contrast to the unicast, just one transmission attempt is made for multicast.\nOperation Beside the transmission simulation, the Addressing and Routing is the other important aspect of the Cellular Simulator. This task is enabled by the Geocaster.\nThe Geocaster evaluates the message headers for cellular messages, which are created by the communicating applications in the Application Simulator.\nIt supports the following addressing and casting schemes.\n CellTopocast is the normal unicast, where the Geocaster simply resolves the single receiver via theIPResolver. Hence, the CellTopocast directly routes the message further. Currently, Topocast doesn\u0026rsquo;t allow broadcast or anycast addresses, but any transmission protocols (tcp, udp).\n CellGeoUnicast addresses every node in the destination area individually. In this way it takes a geographic address and results in a loop to generate multiple unicasts.\n CellGeoBroadcast, which is basically MBMS, uses one broadcast to all nodes in the destined regions.The MBMS uses the different transmission mode of multicast in the downlink. CellGeoUnicast as well as CellGeoBroadcast require broadcast, but don’t allow tcp (as ack for broadcasts is denied).\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"9a45880dc681c4e5ebf695dc5a761ad6","permalink":"https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/network_simulator_cell/","section":"docs","summary":"The built-in Eclipse MOSAIC Cell Simulator enables the applications to use cellular network communication. The simulation of cellular communication in Eclipse MOSAIC consists of two parts:\n The Cellular Simulator itself and The applications that can communicate over cellular networks in the Application Simulator  These changes are done in a generic way, making the cellular simulator exchangeable.","tags":null,"title":"Network Simulator Cell","type":"docs"},{"authors":null,"categories":null,"content":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed. It is delivered as part of the Eclipse MOSAIC-installation package.\nConfiguration The root node of the configuration is a list of environment events. Each event require the type of the event, a rectangle area, a strength and the time window. The following example shows the configuration of an \u0026ldquo;Obstacle\u0026rdquo; event which is valid in the designated area (Rectangle) during the simulation time between 0 to 2000 seconds:\n{ \u0026quot;events\u0026quot; : [ { \u0026quot;type\u0026quot;: { \u0026quot;sensorType\u0026quot;: \u0026quot;OBSTACLE\u0026quot;, \u0026quot;value\u0026quot;: 1 }, \u0026quot;location\u0026quot;: { \u0026quot;area\u0026quot;: { \u0026quot;type\u0026quot;: \u0026quot;Rectangle\u0026quot;, \u0026quot;a\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53654, \u0026quot;longitude\u0026quot;: 13.42116 }, \u0026quot;b\u0026quot;: { \u0026quot;latitude\u0026quot;: 52.53435, \u0026quot;longitude\u0026quot;: 13.42366 } } }, \u0026quot;time\u0026quot;: { \u0026quot;start\u0026quot;: \u0026quot;0 s\u0026quot;, \u0026quot;end\u0026quot;: \u0026quot;2000 s\u0026quot; } } ] }  ","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"e2e8c6da6205aac6b2834ce5bed20d3d","permalink":"https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/environment_simulator/","section":"docs","summary":"This ambassador can be configured with a configuration file. The specific path is mosaic/scenarios/\u0026lt;scenarioName\u0026gt;/environment/environment_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ environment └─ environment.json ................. Environment ambassador configuration file  Installation This simulator does not need to be installed.","tags":null,"title":"Environment Simulator","type":"docs"},{"authors":null,"categories":null,"content":"  The Battery Simulator is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle characteristics and the battery itself into account. The main feature of the battery ambassador is that it can utilize dynamic class loading to use a battery model provided by the user, depending on the given needs. This also holds true for the environment model and the vehicle model. However, simple models for vehicle, environment and the battery are provided and will be briefly explained in the following sections.\nInstallation This simulator does not need to be installed. It is delivered as part of the MOSAIC Extended installation package.\nConfiguration This ambassador can be configured with a configuration file. The specific path is \u0026lt;scenarioName\u0026gt;/battery/battery_config.json\n└─ \u0026lt;scenario_name\u0026gt; └─ battery └─ battery_config.json ................. Battery ambassador configuration file  Vehicle model The vehicle model holds the general properties of a vehicle. Examples would be the weight of the vehicle and the voltage at which the electric engine operates. However, as with the other models, the provided class for the vehicle model direct affects what can be configured here. If other properties are needed for the vehicle, this is the right place to put them. To implement an own vehicle, the class AVehicleModel has to be extended.\nBattery model The battery model defines the battery used by the vehicle itself. Useful properties could be the number of cells and their capacity. As with the vehicle, this class can be freely defined and use configuration values placed in the batteryModelConfig-area. To implement an own battery model, the class ABatteryModel needs to be extended.\nEnvironment model Normally environmental factors like rolling resistance of the given underground or air drag go into this section. At the current state, just a minimal environment model is bundled with the battery ambassador, mainly to show what is possible. To implement a custom environmentmodel, AEnvironmentModel has to be extended.\nSample configuration { \u0026quot;vehicleModelClass\u0026quot;: \u0026quot;com.dcaiti.mosaic.fed.battery.sim.models.vehicle.ElectricSmart\u0026quot;, \u0026quot;vehicleModelConfig\u0026quot;: { \u0026quot;Mass\u0026quot;: 1060, \u0026quot;ReferenceArea\u0026quot;: 1.95, \u0026quot;DragCoefficient\u0026quot;: 0.375, \u0026quot;TankToWheelEfficiency\u0026quot;: 0.7, \u0026quot;EletricMotorOperatingVoltage\u0026quot;: 350, \u0026quot;ConsumerOperatingVoltage\u0026quot;: 12 }, \u0026quot;batteryModelClass\u0026quot;: \u0026quot;com.dcaiti.mosaic.fed.battery.sim.models.battery.VerySimpleBatteryModel\u0026quot;, \u0026quot;batteryModelConfig\u0026quot;: { \u0026quot;NumberOfCells\u0026quot;: 93, \u0026quot;CellVoltage\u0026quot;: 4.3, \u0026quot;CellCapacityInAh\u0026quot;: 50, \u0026quot;eff_Summer\u0026quot;: 0.8448, \u0026quot;RechargingType\u0026quot;: 2, \u0026quot;MinSOC\u0026quot;: 0.30, \u0026quot;MaxSOC\u0026quot;: 0.70 }, \u0026quot;environmentModelClass\u0026quot;: \u0026quot;com.dcaiti.mosaic.fed.battery.sim.models.environment.DefaultEnvironment\u0026quot;, \u0026quot;environmentModelConfig\u0026quot;: { \u0026quot;Gravity\u0026quot;: 9.81, \u0026quot;FluidDensity\u0026quot;: 1.293, \u0026quot;RollingResistanceCoefficient\u0026quot;: 0.01 }, \u0026quot;consumers\u0026quot;: [ { \u0026quot;Radio\u0026quot;: 10 }, { \u0026quot;HeadLight\u0026quot;: 100 } ] }  This listing shows how the vehicle, environment and battery model classes for the bundled models are configured. Additionally, an arbitrary number of consumers can be configured that draw additional power from the battery. In this case, headlights and a radio are pre-defined.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"564b92ca6ad0f78206e0f1291d3a1002","permalink":"https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/mosaic/docs/simulators/battery_simulator/","section":"docs","summary":"The Battery Simulator is part of MOSAIC Extended.\nFor further information on licenses, feel free to contact us via mosaic@fokus.fraunhofer.de.\n  The MOSAIC Battery Simulator is used to simulate electric vehicles.","tags":null,"title":"MOSAIC Battery Simulator","type":"docs"},{"authors":null,"categories":null,"content":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.\nRelease Date 2020-10-19\nChangelog [M+] Moved main code to new public repository github-com/eclipse-mosaic [M+] Changed license to EPL 2.0 [M+] Revised and refactored all public code. [M+] Significantly improved and extended the documentation, including new tutorials [M-] Replaced dependencies which are incompatible with EPL. [M+] Major overhaul of configuration files, e.g. * vsimrti/vsimrti_config.xml -\u0026gt; scenario_config.json * etc/defaults.xml -\u0026gt; etc/runtime.json [A+] Mapping configuration has been extended with new features (e.g. typeDistributions, parameter variations). [A+] New API for traffic light applications [C+] SNS supports most important Geo-Routing features for ad-hoc multihop communication [T+] Now supports SUMO 1.7.0  Changelog (Features and Bugfixes) Legend:\n[M] Eclipse MOSAIC\n[A] Application simulator\n[B] Battery simulator\n[C] Communication simulator\n[E] Environment simulator\n[N] Navigation component\n[S] Scenario-convert\n[T] Traffic simulator\n[+/-] new Feature/Bugfix\n","date":1603065600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1603065600,"objectID":"cc4c07b071bbda44d7b128dbd1954e1e","permalink":"https://www.eclipse.org/mosaic/post/release-20-0/","publishdate":"2020-10-19T00:00:00Z","relpermalink":"/mosaic/post/release-20-0/","section":"post","summary":"The initial contribution is accomplished! With the autumn version, the committer team from Fraunhofer FOKUS and DCAITI is proud to release Eclipse MOSAIC 20.0 to the open source community. With the runtime infrastructure, core libraries and various implementations of simulators or couplings to existing ones, Eclipse MOSAIC includes the essential feature collection for simulation and virtual testing of connected and automated mobility solutions.","tags":null,"title":"First release of Eclipse MOSAIC","type":"post"},{"authors":[],"categories":[],"content":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.\nWhether dynamic lane assignment or traffic light phase assistant, new mobility services are designed to increase safety, efficiency, comfort, and facilitate environmentally friendly transport. The Eclipse MOSAIC simulation environment allows to explore how this can be achieved, before the services are tested in field trials on the road. Eclipse MOSAIC can also be used for testing driver assistance systems and to optimize the entire traffic.\nFlexible coupling of simulators Eclipse MOSAIC integrates, depending on the simulation scenario, different aspects like individual building blocks into a holistic system, e.g., traffic congestion, battery charging of electric cars, or communication between other road users and a central cloud. The level of detail for individual aspects is variable: from a rough mobility scenario for an entire city to detailed individual driving maneuvers.\nThe open-source version of Eclipse MOSAIC already includes several simulators, e.g., Eclipse SUMO for traffic and OMNeT++ and ns-3 for communication. Further simulators can be coupled, e.g., Fraunhofer FOKUS offers the simulator PHABMACS for the realistic modeling of autonomous vehicles.\nIn addition to the simulator coupling, Eclipse MOSAIC manages the following tasks:\n Federation: Individual simulators are interchangeable within a scenario. Interaction: Information from one simulator is also taken into account by others. Time: All simulators run synchronously.  Additionally, Eclipse MOSAIC offers several tools for evaluation and visualization of the results, which are also included in the open-source package.\nIn the recently completed EU project INFRAMIX, Eclipse MOSAIC was used to test scenarios for the future road that allow mixed traffic between conventional and automated vehicles.\nFraunhofer FOKUS has been a strategic development member of the Eclipse Foundation since May of this year and works in close cooperation with the partners of the working groups OpenMobility and openADx (Open Source for Autonomous Driving).\nFurther information about Eclipse MOSAIC: https://www.eclipse.org/mosaic https://github.com/eclipse/mosaic\nFurther information about INFRAMIX: https://www.fokus.fraunhofer.de/de/fokus/news/inframix-projekt_2020_08\nFurther information about EclipseCon: https://www.eclipsecon.org/2020\n","date":1602806400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1602806400,"objectID":"945968ed12d4d56ceff36a8ffcc80747","permalink":"https://www.eclipse.org/mosaic/post/eclipse-mosaic/","publishdate":"2020-10-16T00:00:00Z","relpermalink":"/mosaic/post/eclipse-mosaic/","section":"post","summary":"On the occasion of EclipseCon 2020, Fraunhofer FOKUS launches its simulation environment Eclipse MOSAIC. This solution is based on VSimRTI (Vehicle-2-X Simulation Runtime Infrastructure), which has been developed over the last 12 years in close cooperation with the DCAITI of the TU Berlin and has already been used by more than 600 partners to test mobility services and traffic scenarios. Eclipse MOSAIC is now partially available as open-source.","tags":[],"title":"Testing mobility scenarios with the Open-Source simulation environment Eclipse MOSAIC","type":"post"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"8576ec274c98b3831668a172fa632d80","permalink":"https://www.eclipse.org/mosaic/about/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/about/","section":"","summary":"Hello!","tags":null,"title":"About","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7cb4b52984a9d47af29166100a552aba","permalink":"https://www.eclipse.org/mosaic/get_in_contact/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/get_in_contact/","section":"","summary":"Eclipse MOSAIC.","tags":null,"title":"Contact","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"614f103684a170a5d2fd1d1f92949420","permalink":"https://www.eclipse.org/mosaic/contribution/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/contribution/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Contribution to Eclipse MOSAIC","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"bf47fe1505bc48f51aef798d7a4d34a6","permalink":"https://www.eclipse.org/mosaic/download/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/download/","section":"","summary":"List of links to download the latest releases and other components.","tags":null,"title":"Download","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"7bb3ac9163e73505cd320646a459de77","permalink":"https://www.eclipse.org/mosaic/community/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/community/","section":"","summary":"Eclipse MOSAIC Community","tags":null,"title":"Eclipse MOSAIC Community","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"9eb50f9088083bebcb7e4cf99e22b9ed","permalink":"https://www.eclipse.org/mosaic/news/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/news/","section":"","summary":"News","tags":null,"title":"News","type":"widget_page"},{"authors":null,"categories":null,"content":"","date":1546300800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546300800,"objectID":"23d1e75f872528fc12f5f2b142375ff7","permalink":"https://www.eclipse.org/mosaic/publications/","publishdate":"2019-01-01T00:00:00Z","relpermalink":"/mosaic/publications/","section":"","summary":"List of publications and thesis related to Eclipse MOSAIC.","tags":null,"title":"Publications","type":"widget_page"}]
\ No newline at end of file
diff --git a/index.xml b/index.xml
index fedc3a6..afa2040 100644
--- a/index.xml
+++ b/index.xml
@@ -20,11 +20,11 @@
       <description>&lt;p&gt;Eclipse MOSAIC has different classes, which allow you to define the network type and the specific area where the
 communication should occur. Communication can be achieved with external
 network simulators (
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;, 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns-3&lt;/a&gt;) or one of the built-in communication simulators 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns&#34;&gt;SNS&lt;/a&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++&lt;/a&gt;, 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/&#34;&gt;ns-3&lt;/a&gt;) or one of the built-in communication simulators 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/&#34;&gt;SNS&lt;/a&gt;
 or 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell&#34;&gt;Eclipse MOSAIC Cell&lt;/a&gt;. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/&#34;&gt;Eclipse MOSAIC Cell&lt;/a&gt;. Furthermore, for a better understanding it is important to consider the network types of Eclipse MOSAIC in more
 detail.&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Cellular Communication&lt;/li&gt;
@@ -386,8 +386,8 @@
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
 &lt;p&gt;In order to use the Multihop approach in OMNeT++ and ns-3 provided by Eclipse MOSAIC, its necessary to implement a
-routing protocol in network simulators (&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;, &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns-3&lt;/a&gt;). But the
-built in communication simulator &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns&#34;&gt;SNS&lt;/a&gt; includes a simple routing protocol “Flooding”.&lt;/p&gt;
+routing protocol in network simulators (&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++&lt;/a&gt;, &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/&#34;&gt;ns-3&lt;/a&gt;). But the
+built in communication simulator &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_sns/&#34;&gt;SNS&lt;/a&gt; includes a simple routing protocol “Flooding”.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
 &lt;h3 id=&#34;ad-hoc-topocast&#34;&gt;Ad-hoc Topocast&lt;/h3&gt;
@@ -565,7 +565,7 @@
       <pubDate>Sun, 11 Aug 2019 00:00:00 +0000</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/develop_applications/event_scheduler/</guid>
       <description>&lt;p&gt;The different modules of the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt; communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/#eclipse-mosaic-application-simulator&#34;&gt;Application Simulator&lt;/a&gt; communicate over events that are triggered at a specific simulation time. The following classes and interfaces model theses events.&lt;/p&gt;
 &lt;h3 id=&#34;event&#34;&gt;Event&lt;/h3&gt;
 &lt;p&gt;The class &lt;code&gt;Event&lt;/code&gt; contains the information that is necessary to process an event. An event describes when it should be processed and which information is processed. Moreover an event has an assigned priority.&lt;/p&gt;
 &lt;h4 id=&#34;attributes-of-event&#34;&gt;Attributes of Event&lt;/h4&gt;
@@ -624,8 +624,12 @@
       <link>https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/</link>
       <pubDate>Tue, 06 Aug 2019 00:00:00 +0000</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/develop_applications/road_traffic/</guid>
-      <description>&lt;p&gt;Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles, and the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt; requires detailed information about the road infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is used which is placed in the applicationNT folder of the scenario. This database consists of the following tables:&lt;/p&gt;
+      <description>&lt;p&gt;Each scenario to be simulated with Eclipse MOSAIC requires a database which contains information about the road infrastructure and routes the
+vehicles drive on. This information is used by various federates. For example, the SUMO federate needs to know initial routes for vehicles,
+and the 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Application Simulator&lt;/a&gt; requires detailed information about the road
+infrastructure to provide applications with methods for route calculation. For this purpose, an embedded SQLite database is
+used which is placed in the &lt;code&gt;application&lt;/code&gt; folder of the scenario. This database consists of the following tables:&lt;/p&gt;
 &lt;h3 id=&#34;database-tables&#34;&gt;Database tables&lt;/h3&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -678,7 +682,12 @@
 &lt;/tbody&gt;
 &lt;/table&gt;
 &lt;h3 id=&#34;road-network-model&#34;&gt;Road network model&lt;/h3&gt;
-&lt;p&gt;This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes and connections can be seen. A &lt;code&gt;node&lt;/code&gt; is either a junction or describes the geometry of a road. A &lt;code&gt;connection&lt;/code&gt; is a directed edge between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating &lt;code&gt;way&lt;/code&gt;, which may consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.&lt;/p&gt;
+&lt;p&gt;This section describes the model of the road network used by various components of Eclipse MOSAIC. In the next figure various nodes
+and connections can be seen. A &lt;code&gt;node&lt;/code&gt; is either a junction or describes the geometry of a road. A &lt;code&gt;connection&lt;/code&gt; is a directed edge
+between two junction nodes. That also means, that two separate connections exists for a road segment which can be traversed in both
+directions. Each connection consists of at least two nodes (start and end junction node). Between those nodes, other nodes can exist
+which describe the curvature of the road segment. Furthermore, each connection has a reference to its originating &lt;code&gt;way&lt;/code&gt;, which may
+consist of various connections. A way contains further properties, such as the maximum speed or the type of the road.&lt;/p&gt;
 
 
 
@@ -713,7 +722,8 @@
 
 &lt;/figure&gt;
 
-&lt;p&gt;Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern &lt;code&gt;aaa_bbb_ccc&lt;/code&gt;):&lt;/p&gt;
+&lt;p&gt;Nodes and ways are identified by unique IDs derived from the base OSM network file. Connections, however, are not part of the OSM standard
+and their identifiers are generated during the import. Each connection ID consists of three parts (using the string pattern &lt;code&gt;aaa_bbb_ccc&lt;/code&gt;):&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;code&gt;aaa&lt;/code&gt; - ID of the originating way&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;bbb&lt;/code&gt; - ID of the node the connection starts at.&lt;/li&gt;
@@ -753,7 +763,8 @@
 
 &lt;/figure&gt;
 
-&lt;p&gt;Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge. Therefore, the following objects are identified as following:&lt;/p&gt;
+&lt;p&gt;Some components of Eclipse MOSAIC need to identify further parts of the road network, such as one edge between two nodes, or one specific lane of one edge.
+Therefore, the following objects are identified as following:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;Edges&lt;/code&gt; are described by one start and one end node. The identifier of an edge consists of two parts (using the string pattern &lt;code&gt;aaa_bbb_ccc_ddd&lt;/code&gt;):&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;code&gt;aaa_bbb_ccc&lt;/code&gt; - ID the connection the edge belongs to.&lt;/li&gt;
@@ -844,12 +855,12 @@
     </item>
     
     <item>
-      <title>FileOutput</title>
+      <title>File Output Generator</title>
       <link>https://www.eclipse.org/mosaic/docs/visualization/filevis/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/visualization/filevis/</guid>
-      <description>&lt;p&gt;The FileOutput is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For
-each interaction the FileOutput receives, one line (or more in case of an iteration object) is added
+      <description>&lt;p&gt;The File Output Generator is a tool which gives you the opportunity to log specific Eclipse MOSAIC interaction types. For
+each interaction the File Output receives, one line (or more in case of an iteration object) is added
 to a CSV output file. This allows to track the movements of vehicles or to monitor the V2X message exchange.&lt;/p&gt;
 &lt;p&gt;One example output could be the following:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-csv&#34;&gt;CELL_CONFIGURATION;6000000000;veh_0;true;7200000000;1400000000
@@ -904,11 +915,11 @@
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt;
-&lt;td&gt;Sets the start time in seconds for visualization. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
+&lt;td&gt;Sets the start time in seconds for output generation. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;end&lt;/code&gt;&lt;/td&gt;
-&lt;td&gt;Sets the end time in seconds for visualization. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
+&lt;td&gt;Sets the end time in seconds for output generation. This has nothing to do with the run time of the actual simulation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;loader&lt;/code&gt;&lt;/td&gt;
@@ -934,7 +945,7 @@
 &lt;p&gt;&lt;em&gt;Specific Configuration for interaction&lt;/em&gt;&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;Attribute &lt;code&gt;id&lt;/code&gt; indicates the interaction type, namely the class name of the interaction.&lt;/li&gt;
-&lt;li&gt;The element &lt;code&gt;entries&lt;/code&gt; defines the format and content of the finally visualized subscription record.&lt;/li&gt;
+&lt;li&gt;The element &lt;code&gt;entries&lt;/code&gt; defines the format and content of the handled subscription record.&lt;/li&gt;
 &lt;li&gt;The element &lt;code&gt;entries&lt;/code&gt; is composed of several sub-elements &lt;code&gt;entry&lt;/code&gt;, which correspond to columns of a subscription
 record and the sequence of the columns is the same as that of sub-elements entry.&lt;/li&gt;
 &lt;/ul&gt;
@@ -999,7 +1010,7 @@
 &lt;p&gt;Note: the longest matched prefix will be considered as the same iterating operation, which means they are in the same level of iteration structure.&lt;/p&gt;
 &lt;h2 id=&#34;additional-features&#34;&gt;Additional features&lt;/h2&gt;
 &lt;h4 id=&#34;limit-output-on-time-frame&#34;&gt;Limit output on time frame&lt;/h4&gt;
-&lt;p&gt;You can configure the FileVisualizer to write out interactions within a specific frame of simulation time.
+&lt;p&gt;You can configure the File Output Generator to write out interactions within a specific frame of simulation time.
 This can be configured by setting the &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; attributes accordingly:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
 &amp;lt;output id=&amp;quot;fileoutput&amp;quot; enabled=&amp;quot;true&amp;quot; 
@@ -1008,12 +1019,12 @@
 	...
 &amp;lt;/output&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;An example for restricting visualization of interactions within a time frame&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;An example for restricting output generation of interactions within a time frame&lt;/em&gt;&lt;/p&gt;
 &lt;h4 id=&#34;compress-output&#34;&gt;Compress Output&lt;/h4&gt;
 &lt;p&gt;The tag &lt;code&gt;&amp;lt;write&amp;gt;file+compress&amp;lt;/write&amp;gt;&lt;/code&gt; can be added to the output configuration, in order
 to compress the output using gzip compression. This feature is suitable for large-scale scenarios with
 many outputs.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;fileVisualizer&amp;quot; loader=&amp;quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader&amp;quot;&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;output&amp;quot; loader=&amp;quot;org.eclipse.mosaic.fed.output.generator.file.FileOutputLoader&amp;quot;&amp;gt;
 	&amp;lt;write&amp;gt;file+compress&amp;lt;/write&amp;gt;
 	...
 &amp;lt;/output&amp;gt;
@@ -1402,7 +1413,7 @@
         &amp;quot;lat&amp;quot;: 52.65027,
         &amp;quot;lon&amp;quot;: 13.54500,
         &amp;quot;name&amp;quot;: &amp;quot;WeatherServer&amp;quot;,
-        &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.barnim.WeatherServer&amp;quot; ]
+        &amp;quot;applications&amp;quot;: [ &amp;quot;org.eclipse.mosaic.app.tutorial.WeatherServerApp&amp;quot; ]
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
@@ -1418,22 +1429,22 @@
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;trafficLights&amp;quot;: [
     {
         &amp;quot;tlGroupId&amp;quot;: &amp;quot;26704448&amp;quot;,
-        &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp&amp;quot; ]
+        &amp;quot;applications&amp;quot;: [ &amp;quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&amp;quot; ]
     },
     {
         &amp;quot;tlGroupId&amp;quot;: &amp;quot;252864802&amp;quot;,
-        &amp;quot;applications&amp;quot;: [ &amp;quot;com.dcaiti.vsimrti.app.tutorials.tiergarten.trafficLight.TrafficLightApp&amp;quot; ]
+        &amp;quot;applications&amp;quot;: [ &amp;quot;org.eclipse.mosaic.app.tutorial.TrafficLightApp&amp;quot; ]
     }
 ]
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;For more information, explained for detailed examples with different mapping options regarding traffic lights, please refer to
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/#traffic-lights&#34;&gt;Simulation Scenarios - Traffic Lights&lt;/a&gt;.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/#traffic-lights&#34;&gt;Simulation Scenarios - Traffic Lights&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Servers&lt;/strong&gt;&lt;/p&gt;
 &lt;p&gt;The &lt;code&gt;servers&lt;/code&gt;-array can be used to specify server units, which can be used to communicate with other units via the cell module.
 Capacity configurations for servers should be done when enabling the &lt;code&gt;CellModule&lt;/code&gt;. Delay and transmission models are configured
 in the &lt;code&gt;network.json&lt;/code&gt; of the cell module (see 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_cell/&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Note: The &lt;code&gt;group&lt;/code&gt; parameter in the mapping configuration has to match with the id in the network configuration in order to
 properly function.&lt;/p&gt;
@@ -1738,7 +1749,9 @@
 &lt;p&gt;All active simulators as well as the according ambassadors generate certain logging output, depending on their configured logging level.
 Therefore, these logs are very helpful to retrace and understand the individual states during the simulation time.&lt;/p&gt;
 &lt;p&gt;However, these logs do not conform to a generic formatting. For uniformly formatted or visually prepared results,
-Eclipse MOSAIC offers different Visualizers. For example, the &lt;code&gt;FileVisualizer&lt;/code&gt; generates detailed outputs of e.g. vehicle positions, speeds, or message exchanges.&lt;/p&gt;
+Eclipse MOSAIC offers different Visualizers and Output Generators. For example, the &lt;code&gt;FileOutputGenerator&lt;/code&gt; generates detailed outputs of e.g.
+vehicle positions, speeds, or message exchanges. In the scenarios brought by the latest release, this output mechanism is already
+configured.&lt;/p&gt;
 </description>
     </item>
     
@@ -1750,11 +1763,19 @@
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The tool &lt;strong&gt;scenario-convert&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
-For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
+  &lt;p&gt;The tool &lt;strong&gt;scenario-convert&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
+&lt;p&gt;However, you can use scenario-convert &lt;strong&gt;for free&lt;/strong&gt; to generate scenarios which are executable with Eclipse MOSAIC. &lt;strong&gt;&lt;a href=&#34;https://www.dcaiti.tu-berlin.de/research/simulation/download/&#34; title=&#34;Get it here&#34;&gt;Get it here&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;p&gt;Scenario-convert is a useful tool, which can be used to create new scenarios or import and export data from
+&lt;div style=&#34;text-align: center;&#34;&gt;
+
+
+    
+
+&lt;a class=&#34;mosaic-btn mosaic-btn-primary&#34; href=&#34;https://www.dcaiti.tu-berlin.de/research/simulation/download/&#34; title=&#34;Download scenario-convert from DCAITI mirror&#34;&gt;&lt;i class=&#34;fas fa-download&#34;&gt;&lt;/i&gt;Download scenario-convert from DCAITI mirror&lt;/a&gt;
+
+&lt;/div&gt;
+&lt;p&gt;&lt;strong&gt;scenario-convert&lt;/strong&gt; is a useful tool, which can be used to create new scenarios or import and export data from
 external sources like OpenStreetMap, SUMO etc into your existing scenarios.&lt;br&gt;
 It will create a database, which is the basis for all map-related tasks performed by Eclipse MOSAIC (e.g. navigation,
 route calculation&amp;hellip;).&lt;br&gt;
@@ -1762,11 +1783,11 @@
 Furthermore one can choose, whether to use routes generated by &lt;code&gt;scenario-convert&lt;/code&gt;, use existing
 routes or  build own routes via route generation tools (e.g. DUAROUTER by SUMO).&lt;/p&gt;
 &lt;p&gt;This chapter intends to highlight the most common workflows for the work with &lt;code&gt;scenario-convert&lt;/code&gt;.
-We will be using &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;&lt;code&gt;this&lt;/code&gt;&lt;/a&gt; OSM-file for most of the
+We will be using &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;&lt;code&gt;this&lt;/code&gt;&lt;/a&gt; OSM-file for most of the
 use cases So feel free to follow along with the steps to get a better understanding on how the &lt;code&gt;scenario-convert&lt;/code&gt;-script functions.&lt;/p&gt;
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
-&lt;p&gt;&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;Complete reference of the scenario-convert script&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&#34;#reference-documentation-for-scenario-convert&#34;&gt;Here&lt;/a&gt; you can find a complete reference to all options scenario-convert offers.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
 
@@ -2048,9 +2069,9 @@
 &lt;/ul&gt;
 &lt;p&gt;With all of this you can now start further developing your scenario. For a more detailed description on the next steps
 please have a look 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/&#34;&gt;here (Simulation Scenarios)&lt;/a&gt; and
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/&#34;&gt;here (Simulation Scenarios)&lt;/a&gt; and
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/application_development/&#34;&gt;here (Application Development)&lt;/a&gt;.&lt;br&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/&#34;&gt;here (Application Development)&lt;/a&gt;.&lt;br&gt;
 While this is the &amp;lsquo;happy world&amp;rsquo; workflow it is often necessary to manually adapt routes and
 insert them into your scenario. The following workflow
 will explain how that is done and you will also get a more detailed overview of the scenario-convert-functions.&lt;/p&gt;
@@ -2145,8 +2166,8 @@
 &lt;h3 id=&#34;attached-files&#34;&gt;Attached Files&lt;/h3&gt;
 &lt;p&gt;A list of all attached files in this chapter:&lt;/p&gt;
 &lt;ul&gt;
-&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;Steglitz OSM-file&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz.rou.xml&#34; download&gt;Steglitz Route-file&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.osm&#34; download&gt;Steglitz OSM-file&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz.rou.xml&#34; download&gt;Steglitz Route-file&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;h2 id=&#34;reference-documentation-for-scenario-convert&#34;&gt;Reference documentation for scenario-convert&lt;/h2&gt;
 &lt;h3 id=&#34;usage-of-scenario-convert&#34;&gt;Usage of scenario-convert&lt;/h3&gt;
@@ -2315,9 +2336,9 @@
 folder &lt;code&gt;&amp;lt;mosaic-root&amp;gt;/logs/log-&amp;lt;timestamp&amp;gt;&lt;/code&gt;. For each simulation run a new folder is created.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ log-&amp;lt;timestamp&amp;gt;
    ├─ apps
-   |  ├─ &amp;lt;unitType&amp;gt;_&amp;lt;unitId&amp;gt; ................. Detailed application specific logs for each unit
-   |  ├─ OperatingSystem.log ................. Detailed operating system logs for the unit
-   |  └─ ExampleApp.log ...................... Detailed application specific logs for each application.
+   |  └─ &amp;lt;unitType&amp;gt;_&amp;lt;unitId&amp;gt; ................. Detailed application specific logs for each unit
+   |      ├─ OperatingSystem.log ............. Detailed operating system logs for the unit
+   |      └─ ExampleApp.log .................. Detailed application specific logs for each application.
    ├─ activities.csv ......................... Simulation details in comma separated value-format
    ├─ Application.log  ....................... Information about the application ambassador
    ├─ Cell.log ............................... Cellular network log
@@ -2329,7 +2350,7 @@
    ├─ MOSAIC.log ............................. General information, e.g. startup sequence information
    ├─ Navigation.log ......................... Detailed logs about navigation component in the application ambassador
    ├─ Traffic.log ............................ Traffic simulation log (SUMO or others)
-   └─ visualizer.csv ......................... Recorded data of the integrated File Output Generator
+   └─ output.csv ............................. Recorded data of the integrated File Output Generator
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;In addition to standard logging output for each federate there is a &lt;code&gt;activities.csv&lt;/code&gt; file which contains
 detailed information about sent and received interactions. This file can be used to trace a
@@ -2483,7 +2504,7 @@
 &lt;/figure&gt;
 
 &lt;h3 id=&#34;integration-into-eclipse-mosaic&#34;&gt;Integration into Eclipse MOSAIC&lt;/h3&gt;
-&lt;p&gt;The first step to integrate a new component is the extension of the configuration file &lt;code&gt;etc/defaults.xml&lt;/code&gt;.
+&lt;p&gt;The first step to integrate a new component is the extension of the configuration file &lt;code&gt;etc/runtime.json&lt;/code&gt;.
 An example for a federate configuration can be found in following listing.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
     ...
@@ -2703,7 +2724,7 @@
 &lt;p&gt;All interactions in this package are concerned with adding/registering simulation-units to the simulation.
 While most of the introductions are handled by the &lt;code&gt;Mapping&lt;/code&gt;- or &lt;code&gt;Application&lt;/code&gt;-ambassador, some of them
 are handled by the ambassadors for the traffic simulators (see 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/lust&#34;&gt;LuST&lt;/a&gt;-scenario).
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/lust/&#34;&gt;LuST&lt;/a&gt;-scenario).
 In this case the interactions are used to initialize the scenario.&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
@@ -3128,11 +3149,11 @@
       <description>&lt;p&gt;This chapter aims to give you a brief overview of additional simulators and visualizers that can be used with Eclipse MOSAIC.
 We will continue with the tutorial-style explanations following up on the Steglitz-example from the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert&#34;&gt;previous chapter&lt;/a&gt;. For more detailed explanations of the configurations have a
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenario_convert/&#34;&gt;previous chapter&lt;/a&gt;. For more detailed explanations of the configurations have a
 look at 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios&#34;&gt;this chapter&lt;/a&gt;.&lt;br&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/&#34;&gt;this chapter&lt;/a&gt;.&lt;br&gt;
 If you already played with the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial you probably noticed, that it contains far
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim&lt;/a&gt;-tutorial you probably noticed, that it contains far
 more folders in the scenario structure compared to the Steglitz example. Those additional directories contain
 configurations for various simulators.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ Barnim
@@ -3162,10 +3183,10 @@
    |  └─ steglitz.sumocfg
    └─ scenario_config.json .................. Basic configuration of the simulation scenario
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;If you have a look in the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz_mapping_config.json&#34; download&gt;&lt;code&gt;mapping_config.json&lt;/code&gt;&lt;/a&gt;,
+&lt;p&gt;If you have a look in the &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz_mapping_config.json&#34; download&gt;&lt;code&gt;mapping_config.json&lt;/code&gt;&lt;/a&gt;,
 you can see that the scenario-convert script automatically assigns cars to the three routes created. You can use this
 file as a blueprint for your own scenario, have a look 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/scenarios/#applications-and-mapping&#34;&gt;here&lt;/a&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/#applications-and-mapping&#34;&gt;here&lt;/a&gt;
 to get more details on possible adaptions.&lt;br&gt;
 Below is a short video of the scenario displayed in the SUMO-GUI. We marked the three different routes the cars
 follow.&lt;/p&gt;
@@ -3190,7 +3211,7 @@
 &lt;h2 id=&#34;communication-simulators-cell-ns3-omnetpp-sns&#34;&gt;Communication Simulators (cell, ns3, omnetpp, sns)&lt;/h2&gt;
 &lt;p&gt;We won&amp;rsquo;t implement any functionality for the steglitz example here but rather have a look at the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &lt;code&gt;scenario_config.json&lt;/code&gt; of the Barnim scenario you can see where the
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim&lt;/a&gt;-tutorial. In the &lt;code&gt;scenario_config.json&lt;/code&gt; of the Barnim scenario you can see where the
 communication simulators are activated:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: {
     &amp;quot;cell&amp;quot;: false,
@@ -3200,16 +3221,16 @@
 }
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;Our 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials&#34;&gt;tutorials&lt;/a&gt; and 
+&lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/&#34;&gt;tutorials&lt;/a&gt; and 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/additional_examples/&#34;&gt;additional examples&lt;/a&gt; demonstrate use cases for
 communication usages and you should have a look at them if you are uncertain where to start. Furthermore we
 recommend copying the configuration-files for the simulator you are going to use from the 
 &lt;a href=&#34;https://www.eclipse.org/mosaic/tutorials/barnim_basic/&#34;&gt;Barnim scenario&lt;/a&gt;. It
 contains the most complete configurations and is well maintained.&lt;br&gt;
 If you are an expert with one of the external network simulators (
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3&#34;&gt;ns3&lt;/a&gt;,
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_ns3/&#34;&gt;ns3&lt;/a&gt;,
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;OMNeT++&lt;/a&gt;) the Barnim scenario will also give
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++&lt;/a&gt;) the Barnim scenario will also give
 you an overview on how to configure those.&lt;/p&gt;
 &lt;h2 id=&#34;other-simulators&#34;&gt;Other Simulators&lt;/h2&gt;
 &lt;p&gt;Here we&amp;rsquo;ll discuss two simulators integrated with Eclipse MOSAIC and their use-cases, namely the &lt;code&gt;Event Server&lt;/code&gt; and the
@@ -3218,19 +3239,17 @@
 &lt;p&gt;The event server can be used to emit events to vehicles inside it&amp;rsquo;s predefined borders. In the Barnim scenario
 an event server is used to simulate an icy area, which is then noticed by the sensor of a weather server RSU.&lt;br&gt;
 Every defined event requires a type, a defined geographical area (e.g. circular, rectangular), the strength and a time frame. Have a look
-at the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/eventserver_config.json&#34; download&gt;&lt;code&gt;eventserver_config.json&lt;/code&gt;&lt;/a&gt; to see how this can be
+at the &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/eventserver_config.json&#34; download&gt;&lt;code&gt;eventserver_config.json&lt;/code&gt;&lt;/a&gt; to see how this can be
 configured. If you want to use the event server make sure to have it enabled in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
 &lt;h3 id=&#34;battery&#34;&gt;Battery&lt;/h3&gt;
 &lt;p&gt;The battery simulator is used to simulate electric vehicles. It offers a lot of customization, because you can
-dynamically load your own battery, vehicle and environment models. Have a look a the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/battery_config.json&#34; download&gt;&lt;code&gt;battery_config.json&lt;/code&gt;&lt;/a&gt;, taken from the Barnim scenario.
+dynamically load your own battery, vehicle and environment models. Have a look a the &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/battery_config.json&#34; download&gt;&lt;code&gt;battery_config.json&lt;/code&gt;&lt;/a&gt;, taken from the Barnim scenario.
 The three models used are included with Eclipse MOSAIC and you can freely use them.&lt;/p&gt;
 &lt;h2 id=&#34;output&#34;&gt;Output&lt;/h2&gt;
 &lt;p&gt;There are various options to generate output results of your simulations (see the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/visualization/filevis&#34;&gt;visualization chapter&lt;/a&gt;). Visualizing doesn&amp;rsquo;t necessarily mean you
-will end up with moving pictures of cars driving along your predefined routes.&lt;br&gt;
-Let&amp;rsquo;s get back to the steglitz-scenario and try to calculate the average travel time of our vehicles.
-The first step is to create a file called &lt;code&gt;visualizer_config.xml&lt;/code&gt; in a new directory called &lt;code&gt;visualizer&lt;/code&gt;.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/visualization/filevis/&#34;&gt;visualization chapter&lt;/a&gt;).&lt;/p&gt;
+&lt;p&gt;The first step is to create a file called &lt;code&gt;output_config.xml&lt;/code&gt; in a new directory called &lt;code&gt;output&lt;/code&gt;.
 If you used the scenario-convert tool the file should be generated automatically.&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ steglitz
    ├─ application
@@ -3244,21 +3263,24 @@
    |  └─ steglitz.sumocfg
    └─ scenario_config.json .................. Basic configuration of the simulation scenario
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Next make sure the visualization federate is activated in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;&amp;lt;!-- Visualization --&amp;gt;
-&amp;lt;federate id=&amp;quot;visualizer&amp;quot; active=&amp;quot;true&amp;quot;/&amp;gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Now we have to configure the statistics visualizer itself. This &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/building_scenarios/files/steglitz_visualizer_config.xml&#34; download&gt;&lt;code&gt;visualizer_config.xml&lt;/code&gt;&lt;/a&gt; contains the basic
+&lt;p&gt;Example configuration for output generation can be taken from the example scenarios from the tutorials section.&lt;/p&gt;
+&lt;!--
+Next make sure the visualization federate is activated in the `scenario_config.json`.
+```
+&lt;!-- Visualization --&gt;
+&lt;federate id=&#34;output&#34; active=&#34;true&#34;/&gt;
+```
+Now we have to configure the statistics visualizer itself. This &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/docs/building_scenarios/files/steglitz_visualizer_config.xml&#34; download&gt;`visualizer_config.xml`&lt;/a&gt; contains the basic
 configuration in order to calculate the average travel times for the vehicles. If you want to make adaptions, please
-refer to 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/visualization/statistics&#34;&gt;statistics visualizer&lt;/a&gt;.&lt;br&gt;
-Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called
-&lt;code&gt;AverageVehicleTravelTime.csv&lt;/code&gt; in a directory called &lt;code&gt;StatisticsVisualizer&lt;/code&gt;:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;group;group-value;total;
+refer to [statistics visualizer](/docs/visualization/statistics).  
+Go ahead and run the simulation one more time. Afterwards the log-directory should contain a file called 
+`AverageVehicleTravelTime.csv` in a directory called `StatisticsVisualizer`:
+```
+group;group-value;total;
 Car;186.369;336;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;This tells us that there was a total amount of 336 vehicles of the type &lt;code&gt;car&lt;/code&gt; in the simulation, which traveled
-for 186.369  seconds on average.&lt;/p&gt;
+```
+This tells us that there was a total amount of 336 vehicles of the type `car` in the simulation, which traveled
+for 186.369  seconds on average.--&gt;
 &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
 After this small, hands-on introduction to visualizers you should know where to configure them and after some additional
 reading, you should be able to configure different types of visualizers for your use-cases.&lt;/p&gt;
@@ -3266,51 +3288,33 @@
     </item>
     
     <item>
-      <title>Run a Simulation Set</title>
-      <link>https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/</link>
-      <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
-      <guid>https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/</guid>
-      <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
-  &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
-  &lt;div&gt;
-&lt;p&gt;This feature is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
-For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
-  &lt;/div&gt;
-&lt;/div&gt;
-&lt;p&gt;A common objective when running simulations is to assess the impact of different parameter settings for
-a specific scenario on the results of the simulation. To this end, the is a tool to apply
-different configurations to a scenario, after which a series of simulations is executed via CLI by calling the start script.&lt;/p&gt;
-</description>
-    </item>
-    
-    <item>
-      <title>Statistics Visualizer</title>
+      <title>Statistics Output</title>
       <link>https://www.eclipse.org/mosaic/docs/visualization/statistics/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/visualization/statistics/</guid>
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The &lt;strong&gt;Statistics Visualizer&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
+&lt;p&gt;The &lt;strong&gt;Statistics Output Generator&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;p&gt;The Statictics Visualizer is another visualisation tool to easily measure basic simulation outcomes.
-With the Statistics Visualizer you will be able to obtain short or detailed results of the simulation,
-e.g. travel times or the average speeds of groups of vehicles, or the average flow on induction loops.&lt;/p&gt;
+&lt;p&gt;Statistics Output is another output generating tool to easily measure basic simulation outcomes.
+You will be able to obtain short or detailed results of the simulation, e.g. travel times or the average speeds
+of groups of vehicles, or the average flow on induction loops.&lt;/p&gt;
 &lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
 &lt;ul&gt;
-&lt;li&gt;The main configuration file for all visualizers is located at &lt;code&gt;scenarios/&amp;lt;scenarioName&amp;gt;/visualizer/visualizer_config.xml&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;The main configuration file for all output generators is located at &lt;code&gt;&amp;lt;scenarioName&amp;gt;/output/output_config.xml&lt;/code&gt;&lt;/li&gt;
 &lt;/ul&gt;
-&lt;p&gt;In order to use the Statistics Visualizer, the attribute &lt;code&gt;enabled&lt;/code&gt; of the root element &lt;code&gt;visualizer&lt;/code&gt; must be
+&lt;p&gt;In order to use the Statistics Output, the attribute &lt;code&gt;enabled&lt;/code&gt; of the root element &lt;code&gt;output&lt;/code&gt; must be
 set to &amp;ldquo;true&amp;rdquo;, as shown in the following listing.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;visualizer id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
 	[..]
-&amp;lt;/visualizer &amp;gt;
+&amp;lt;/output&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;Configuration header for Statistics Visualizer&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Configuration header for Statistics Output&lt;/em&gt;&lt;/p&gt;
 &lt;h2 id=&#34;specification&#34;&gt;Specification&lt;/h2&gt;
-&lt;p&gt;In this section, we take a closer look at the Statistics Visualizer by using examples and demonstrations. For
+&lt;p&gt;In this section, we take a closer look at the Statistics Output by using examples and demonstrations. For
 each type of retrieving data we create a &lt;code&gt;&amp;lt;statistic&amp;gt;&amp;lt;/statistic&amp;gt;&lt;/code&gt; block. Inside the block we define
 one certain data type we want to retrieve in a &lt;source&gt; element. If you want to retrieve different data
 types, just create another &lt;code&gt;&amp;lt;statistic&amp;gt;&lt;/code&gt; block for each of them.&lt;/p&gt;
@@ -3328,10 +3332,10 @@
 	&amp;lt;source&amp;gt;NameOfSource&amp;lt;/source&amp;gt;
 &amp;lt;/statistic&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;Source options of Statistics Visualizer&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;Source options of Statistics Output&lt;/em&gt;&lt;/p&gt;
 &lt;h2 id=&#34;application&#34;&gt;Application&lt;/h2&gt;
-&lt;p&gt;This section will demonstrate the basic idea and usage of the Statistics Visualizer depending on the
-individual requirements. Besides the retrieving raw data, the Statistics Visualizer has further features for
+&lt;p&gt;This section will demonstrate the basic idea and usage of the Statistics Output depending on the
+individual requirements. Next to retrieving raw data, the Statistics Output has further features for
 processing of the obtained data.&lt;/p&gt;
 &lt;ol&gt;
 &lt;li&gt;&lt;code&gt;source&lt;/code&gt;: Data to obtain, choose between:
@@ -3340,10 +3344,10 @@
 &lt;li&gt;&lt;code&gt;VehicleStops&lt;/code&gt; - The total number of stops during the journey of each vehicle.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleTravelTimes&lt;/code&gt; - The total travel time in s of the vehicles.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleDelayTimes&lt;/code&gt; - The deviation of the travel time compared to the fastest travel time possible for the vehicles (in s).&lt;/li&gt;
-&lt;li&gt;&lt;code&gt;VehicleTravelledDistances&lt;/code&gt; - The travelled distance inmof the vehicles.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;VehicleTravelledDistances&lt;/code&gt; - The travelled distance of the vehicles in m.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleFuelConsumptions&lt;/code&gt; - The fuel consumptions of the vehicles in l per km.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;VehicleHeadways&lt;/code&gt; - Obtain the headway towards the leading vehicle of each vehicle for each simulation step. To obtain this value, an application has to be deployed on the vehicles which activates the front distance sensor.&lt;/li&gt;
-&lt;li&gt;&lt;code&gt;DetectorFlow&lt;/code&gt; - The flows of each subscripted induction loop.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;DetectorFlow&lt;/code&gt; - The flows of each subscribed induction loop.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/li&gt;
 &lt;/ol&gt;
@@ -3373,17 +3377,17 @@
 &lt;/ul&gt;
 &lt;/li&gt;
 &lt;/ol&gt;
-&lt;p&gt;The following example will show an example of how you can specify the Statictics Visualizer according to
+&lt;p&gt;The following example will show an example of how you can specify the Statictics Output according to
 your desired criteria. VehicleTravelTimes are the data we want to retrieve from vehicles and we want
 to group vehicles by the abstract group we can define in mapping configuration file (see e.g. Barnim
 scenario) and then calculate the average vehicle travel time value for each of these groups.&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;visualizer id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.vsimrti.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;output id=&amp;quot;statistics&amp;quot; enabled=&amp;quot;true&amp;quot; loader=&amp;quot;com.dcaiti.mosaic.fed.visualizer.StatisticsVisualizerConfig&amp;quot;&amp;gt;
 	&amp;lt;statistic filename=&amp;quot;AverageVehicleTravelTimes&amp;quot; output=&amp;quot;short&amp;quot;&amp;gt;
 		&amp;lt;source&amp;gt;VehicleTravelTimes&amp;lt;/source&amp;gt;
 		&amp;lt;group-by&amp;gt;VehicleGroup&amp;lt;/group-by&amp;gt;
 		&amp;lt;aggregation&amp;gt;Average&amp;lt;/aggregation&amp;gt;
 	&amp;lt;/statistic&amp;gt;
-&amp;lt;/visualizer&amp;gt;
+&amp;lt;/output&amp;gt;
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;&lt;em&gt;Getting the Average time by vehicle class&lt;/em&gt;&lt;/p&gt;
 &lt;p&gt;You can also combine filters if you want to get a certain interval with upper and lower boundaries. With
@@ -3397,7 +3401,7 @@
 further processing as separate values for each of these steps (like &lt;code&gt;VehicleSpeeds&lt;/code&gt;, &lt;code&gt;VehicleHeadways&lt;/code&gt;).
 These data types need to be aggregated to one value per vehicle if you want to group them by value or
 filter them.&lt;/p&gt;
-&lt;p&gt;For demonstration, the StatisticsVisualizer is configured for the scenario Barnim and calculates the
+&lt;p&gt;For demonstration, the Statistics Output is configured for the scenario Barnim and calculates the
 average travel times of the vehicles and additionally groups them. As a result, the simulation produces
 the following CSV file in the log directory:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-csv&#34;&gt;Group;Value;Total;
@@ -3405,7 +3409,7 @@
 Cellular;463.87;12;
 Unequipped;459.18;84;
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;&lt;em&gt;The AverageVehicleTravelTime.csv file produced by the Statistics Visualizer in the Barnim scenario&lt;/em&gt;&lt;/p&gt;
+&lt;p&gt;&lt;em&gt;The AverageVehicleTravelTime.csv file produced by the Statistics Output in the Barnim scenario&lt;/em&gt;&lt;/p&gt;
 </description>
     </item>
     
@@ -3424,9 +3428,9 @@
       <guid>https://www.eclipse.org/mosaic/docs/extending_mosaic/application_ambassador_details/</guid>
       <description>&lt;p&gt;The Application Simulator is completely implemented as an Eclipse MOSAIC Ambassador in Java. The main class &lt;code&gt;ApplicationAmbassador&lt;/code&gt; is
 started by the RTI and creates different components, like the &lt;code&gt;SimulationKernel&lt;/code&gt; singleton or the &lt;code&gt;CentralNavigationComponent&lt;/code&gt;.
-Subsequently, it will find all the Java Archive (JAR) files in the &lt;em&gt;application&lt;/em&gt; configuration directory, belonging to the currently started
+Subsequently, it will find all the Java Archive (JAR) files in the &lt;code&gt;application&lt;/code&gt; configuration directory, belonging to the currently started
 scenario, and add their classes to the class path. These JARs contain the application classes. Furthermore, the ApplicationAmbassador is
-registered as a handle for different Eclipse MOSAIC messages in the configuration file &lt;em&gt;etc/mosaic.xml&lt;/em&gt; in the Eclipse MOSAIC folder. After
+registered as a handle for different Eclipse MOSAIC messages in the configuration file &lt;code&gt;etc/runtime.json&lt;/code&gt; in the Eclipse MOSAIC folder. After
 initialization, the Application Simulator will receive these messages from Eclipse MOSAIC when they appear and perform corresponding actions.&lt;/p&gt;
 &lt;h3 id=&#34;node-creation&#34;&gt;Node Creation&lt;/h3&gt;
 
@@ -3518,7 +3522,7 @@
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The &lt;strong&gt;ITEF&lt;/strong&gt; is part of &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;.&lt;br&gt;
+&lt;p&gt;&lt;strong&gt;ITEF&lt;/strong&gt; is part of &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
@@ -3676,7 +3680,7 @@
 &lt;/tbody&gt;
 &lt;/table&gt;
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
-&lt;h5 id=&#34;there-are-two-installation-types-of-the-eclipse-mosaic-omnet-federate&#34;&gt;There are two installation types of the Eclipse MOSAIC OMNeT++ Federate:&lt;/h5&gt;
+&lt;p&gt;There are two installation types of the MOSAIC OMNeT++ Federate:&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -3695,7 +3699,7 @@
 &lt;tr&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;
 &lt;a href=&#34;#installation-for-developers&#34;&gt;DEVELOPER&lt;/a&gt;&lt;/td&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;The installation for developers addresses those who want to make changes or extend the Eclipse MOSAIC OMNeT++ Federate.&lt;br&gt;&lt;br&gt;This installation type awaits that &lt;strong&gt;OMNeT++ 
+&lt;td style=&#34;text-align:left&#34;&gt;The installation for developers addresses those who want to make changes or extend the MOSAIC OMNeT++ Federate.&lt;br&gt;&lt;br&gt;This installation type awaits that &lt;strong&gt;OMNeT++ 
 5.5&lt;/strong&gt; and &lt;strong&gt;INET 
 4.1&lt;/strong&gt; are already installed on your system and&lt;br&gt;- &lt;code&gt;PATH&lt;/code&gt; contains &lt;code&gt;/path/to/omnetpp/bin&lt;/code&gt;&lt;br&gt;- &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; contains &lt;code&gt;/path/to/omnetpp/lib&lt;/code&gt; and &lt;code&gt;/path/to/inet/src&lt;/code&gt;&lt;br&gt;- &lt;code&gt;C_INCLUDE_PATH&lt;/code&gt; contains &lt;code&gt;/path/to/omnetpp/include&lt;/code&gt; and &lt;code&gt;/path/to/inet/src&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
@@ -3705,11 +3709,11 @@
   &lt;div&gt;
 &lt;p&gt;If you already have &lt;strong&gt;OMNeT++
 5.5&lt;/strong&gt; and &lt;strong&gt;INET
-4.1&lt;/strong&gt; installed on your system, but you simply want to use &lt;strong&gt;OMNeT++&lt;/strong&gt; for simulations with Eclipse MOSAIC without developing further the Eclipse MOSAIC OMNeT++ Federate, you may also choose the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/#installation-for-developers&#34;&gt;installation for developers&lt;/a&gt; to avoid multiple installations of &lt;strong&gt;OMNeT++&lt;/strong&gt; and &lt;strong&gt;INET&lt;/strong&gt; on your system.&lt;/p&gt;
+4.1&lt;/strong&gt; installed on your system, but you simply want to use &lt;strong&gt;OMNeT++&lt;/strong&gt; for simulations with Eclipse MOSAIC without developing further the MOSAIC OMNeT++ Federate, you may also choose the &lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/#installation-for-developers&#34;&gt;installation for developers&lt;/a&gt; to avoid multiple installations of &lt;strong&gt;OMNeT++&lt;/strong&gt; and &lt;strong&gt;INET&lt;/strong&gt; on your system.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;h5 id=&#34;first-of-all-please-make-sure-that-you-have-the-following-libraries-installed&#34;&gt;First of all, please make sure that you have the following libraries installed:&lt;/h5&gt;
-&lt;p&gt;&lt;code&gt;unzip&lt;/code&gt;, &lt;code&gt;tar&lt;/code&gt;, &lt;code&gt;bison&lt;/code&gt;, &lt;code&gt;flex&lt;/code&gt;, &lt;code&gt;gcc&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;protoc&lt;/code&gt;&lt;/p&gt;
+&lt;p&gt;First of all, please make sure that you have the following libraries installed:
+&lt;code&gt;unzip&lt;/code&gt;, &lt;code&gt;tar&lt;/code&gt;, &lt;code&gt;bison&lt;/code&gt;, &lt;code&gt;flex&lt;/code&gt;, &lt;code&gt;gcc&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;protoc&lt;/code&gt;&lt;/p&gt;
 &lt;div class=&#34;alert alert-note&#34;&gt;
   &lt;div&gt;
 &lt;p&gt;The installation of the current version of the OMNeT++ Federate was tested with protobuf version
@@ -3717,7 +3721,7 @@
 It is recommended to install this version. Here you receive more information about &lt;a href=&#34;https://github.com/protocolbuffers/protobuf/blob/master/src/README.md&#34;&gt;how to install protobuf&lt;/a&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
-&lt;h5 id=&#34;follow-the-links-and-download-the-source-code-of-omnet-inet-and-the-eclipse-mosaic-omnet-federate&#34;&gt;Follow the links and download the source code of OMNeT++, INET and the Eclipse MOSAIC OMNeT++ Federate:&lt;/h5&gt;
+&lt;p&gt;Follow the links and download the source code of OMNeT++, INET and the MOSAIC OMNeT++ Federate:&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -3742,15 +3746,15 @@
 &lt;a href=&#34;https://github.com/inet-framework/inet/releases&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/inet-framework/inet/releases&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
-&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;Eclipse MOSAIC OMNeT++ Federate&lt;/strong&gt;&lt;/td&gt;
+&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;MOSAIC OMNeT++ Federate&lt;/strong&gt;&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;
 20.0&lt;/td&gt;
 &lt;td style=&#34;text-align:left&#34;&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/download&#34;&gt;Download&lt;/a&gt;&lt;/td&gt;
+&lt;a href=&#34;https://github.com/mosaic-addons/omnetpp-federate/releases&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/mosaic-addons/omnetpp-federate/releases&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;h5 id=&#34;available-parameters-of-omnet_installersh&#34;&gt;Available parameters of &lt;code&gt;omnet_installer.sh&lt;/code&gt;:&lt;/h5&gt;
+&lt;p&gt;Available parameters of &lt;code&gt;omnet_installer.sh&lt;/code&gt;:&lt;/p&gt;
 &lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
@@ -3831,30 +3835,34 @@
 chmod +x omnet_installer.sh`
 ./omnet_install.sh \
     --installation-type USER \
-    --omnetpp /path/to/omnetpp-OMNETPP_VERSION-src.tgz \
-    --inet /path/to/inet-INET_VERSION-src.tgz \
-    --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip
+    --omnetpp /path/to/omnetpp-5.5-src.tgz \
+    --inet /path/to/inet-4.1-src.tgz \
+    --federate /path/to/omnetpp-federate-20.0.zip
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;For the installation type &lt;code&gt;USER&lt;/code&gt; the parameters &lt;code&gt;-o&lt;/code&gt;, &lt;code&gt;-i&lt;/code&gt; and &lt;code&gt;-f&lt;/code&gt; are required.&lt;br&gt;
-The installation script should terminate with &lt;code&gt;SUCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
+The installation script should terminate with &lt;code&gt;SUCESS: The MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
 &lt;h4 id=&#34;installation-for-developers&#34;&gt;Installation for Developers&lt;/h4&gt;
 &lt;p&gt;Run the installation script (this takes a few minutes):&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;cd &amp;lt;mosaic&amp;gt;/bin/fed/omnetpp
 chmod +x omnet_installer.sh`
 ./omnet_install.sh \
     --installation-type DEVELOPER \
-    --federate /path/to/omnetpp-federate-MOSAIC_VERSION.zip
+    --federate /path/to/omnetpp-federate-20.0.zip
 &lt;/code&gt;&lt;/pre&gt;
 &lt;p&gt;For the installation type &lt;code&gt;DEVELOPER&lt;/code&gt; the parameter &lt;code&gt;-f&lt;/code&gt; is required.&lt;br&gt;
-The installation script should terminate with &lt;code&gt;SUCCESS: The Eclipse MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
+The installation script should terminate with &lt;code&gt;SUCCESS: The MOSAIC OMNeT++ Federate was successfully installed.&lt;/code&gt; otherwise the installation failed.&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/simulation_federates#eclipse-mosaic-omnet-federate-development&#34;&gt;How to develop Eclipse MOSAIC OMNeT++ Federate&lt;/a&gt;&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/omnetpp_details/&#34;&gt;Extending MOSAIC OMNeT++ Federate&lt;/a&gt;&lt;/p&gt;
 &lt;h3 id=&#34;omnet-federate-configuration&#34;&gt;OMNeT++ Federate Configuration&lt;/h3&gt;
-&lt;p&gt;To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open &lt;code&gt;&amp;lt;scenarioName&amp;gt;/mosaic/mosaic_config.xml&lt;/code&gt; and enable OMNeT++:&lt;/p&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;federate id=&amp;quot;omnetpp&amp;quot; active=&amp;quot;true&amp;quot; /&amp;gt;
+&lt;p&gt;To use OMNeT++ as network simulator in an Eclipse MOSAIC simulation, open &lt;code&gt;&amp;lt;scenarioName&amp;gt;/scenario_config.json&lt;/code&gt; and enable OMNeT++:&lt;/p&gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: {
+   ...
+   &amp;quot;omnetpp&amp;quot;: true,
+   ...
+}
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Now, when you run this scenario, Eclipse MOSAIC will automatically start the Eclipse MOSAIC OMNeT++ Federate.&lt;/p&gt;
-&lt;p&gt;The main configuration of the Eclipse MOSAIC OMNeT++ Federate is done within the configuration files &lt;code&gt;omnetpp.ini&lt;/code&gt; and &lt;code&gt;omnetpp_config.json&lt;/code&gt; in the scenario:&lt;/p&gt;
+&lt;p&gt;Now, when you run this scenario, Eclipse MOSAIC will automatically start the MOSAIC OMNeT++ Federate.&lt;/p&gt;
+&lt;p&gt;The main configuration of the MOSAIC OMNeT++ Federate is done within the configuration files &lt;code&gt;omnetpp.ini&lt;/code&gt; and &lt;code&gt;omnetpp_config.json&lt;/code&gt; in the scenario:&lt;/p&gt;
 &lt;pre&gt;&lt;code class=&#34;language-FOLDER&#34;&gt;└─ &amp;lt;scenario_name&amp;gt;
    └─ omnetpp
       ├─ omnetpp.ini ...................... OMNeT++ federate configuration file
@@ -3866,6 +3874,43 @@
 Channel) are addressed. The communication parameters are different for vehicles and RSUs. Please refer
 to the OMNeT++ documentation on the OMNeT++ homepage for further information about the structure
 of the &lt;code&gt;omnetpp.ini&lt;/code&gt; file.&lt;/p&gt;
+&lt;h3 id=&#34;installation-in-docker-environment&#34;&gt;Installation in Docker environment&lt;/h3&gt;
+&lt;div class=&#34;alert alert-note&#34;&gt;
+  &lt;div&gt;
+&lt;p&gt;This is an experimental feature. Please refer to our mailing list if you experience any problems.&lt;/p&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+&lt;p&gt;This guide gives instructions to execute the OMNeT++ federate inside a docker container. If you already installed
+OMNeT++ on your machine following the steps before, you can skip this section.&lt;/p&gt;
+&lt;p&gt;Docker is a new approach to execute software. More precisely, it &amp;ldquo;wraps software in a complete filesystem
+that contains everything it needs to run: code, runtime, system tools, and system libraries&amp;rdquo;. As a result, the
+software is executed within a container and its execution does not rely on the environment the container is running in.&lt;/p&gt;
+&lt;p&gt;In context of Eclipse MOSAIC, this approach allows to execute OMNeT++ within a docker container. The user does not
+need to manually install OMNeT++ and can even run OMNeT++ on Windows hosts.&lt;/p&gt;
+&lt;ol&gt;
+&lt;li&gt;Install Docker ≥ 1.13 on your machine.&lt;/li&gt;
+&lt;li&gt;To get everything to work, please make sure to execute the following steps depending on your operating system:
+&lt;ul&gt;
+&lt;li&gt;Windows - In the settings, share the drive where Eclipse MOSAIC is installed on. You may need to restart docker in the reset tab.&lt;/li&gt;
+&lt;li&gt;Linux - Make sure your user account belongs to the unix-group &lt;code&gt;docker&lt;/code&gt;. You may need to restart your machine.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/li&gt;
+&lt;li&gt;Switch to the location of the Dockerfile in &lt;code&gt;&amp;lt;mosaic&amp;gt;/bin/fed/omnetpp&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;Execute the following command on command line:&lt;br&gt;
+&lt;code&gt;docker build -t omnetpp-federate&lt;/code&gt;.&lt;br&gt;
+This could take a while to finish.&lt;/li&gt;
+&lt;li&gt;Enter the name of the docker image &lt;code&gt;etc/runtime.json&lt;/code&gt; in the &lt;code&gt;omnetpp&lt;/code&gt;-section into the property &lt;code&gt;dockerImage&lt;/code&gt;:&lt;/li&gt;
+&lt;/ol&gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
+   ...
+   {
+      &amp;quot;id&amp;quot;: &amp;quot;omnetpp&amp;quot;,
+      &amp;quot;dockerImage&amp;quot;: &amp;quot;omnetpp-federate&amp;quot;,
+      ...
+   },
+   ...
+]
+&lt;/code&gt;&lt;/pre&gt;
 </description>
     </item>
     
@@ -4030,7 +4075,7 @@
 &lt;/div&gt;
 &lt;p&gt;This guide gives instructions to execute the ns-3 federate inside a docker container. If you already installed
 ns-3 on your machine following the steps before, you can skip this section.&lt;/p&gt;
-&lt;p&gt;Docker 5 is a new approach to execute software. More precisely, it &amp;ldquo;wraps software in a complete filesystem
+&lt;p&gt;Docker is a new approach to execute software. More precisely, it &amp;ldquo;wraps software in a complete filesystem
 that contains everything it needs to run: code, runtime, system tools, and system libraries&amp;rdquo;. As a result, the
 software is executed within a container and its execution does not rely on the environment the container is running in.&lt;/p&gt;
 &lt;p&gt;In context of Eclipse MOSAIC, this approach allows to execute ns-3 within a docker container. The user does not
@@ -4043,20 +4088,23 @@
 &lt;li&gt;Linux - Make sure your user account belongs to the unix-group &lt;code&gt;docker&lt;/code&gt;. You may need to restart your machine.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/li&gt;
-&lt;li&gt;Switch to the location of the Dockerfile in &lt;code&gt;mosaic/bin/fed/ns3&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;Switch to the location of the Dockerfile in &lt;code&gt;&amp;lt;mosaic&amp;gt;/bin/fed/ns3&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;Execute the following command on command line:&lt;br&gt;
-&lt;code&gt;docker build -t ns3-federate:mosaic&lt;/code&gt;.&lt;br&gt;
+&lt;code&gt;docker build -t ns3-federate&lt;/code&gt;.&lt;br&gt;
 This could take a while to finish.&lt;/li&gt;
-&lt;li&gt;Enter the name of the docker image etc/defaults.xml in the &lt;code&gt;ns3&lt;/code&gt;-section into the tag &lt;code&gt;dockerImage&lt;/code&gt;:&lt;/li&gt;
+&lt;li&gt;Enter the name of the docker image &lt;code&gt;etc/runtime.json&lt;/code&gt; in the &lt;code&gt;ns3&lt;/code&gt;-section into the property &lt;code&gt;dockerImage&lt;/code&gt;:&lt;/li&gt;
 &lt;/ol&gt;
-&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;federate class=&amp;quot;...&amp;quot;&amp;gt;
-    &amp;lt;id&amp;gt;ns3&amp;lt;/id&amp;gt;
-    ...
-    &amp;lt;dockerImage&amp;gt;ns3-federate:mosaic&amp;lt;/dockerImage&amp;gt;
-    ...
-&amp;lt;/federate &amp;gt;
+&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;federates&amp;quot;: [
+   ...
+   {
+      &amp;quot;id&amp;quot;: &amp;quot;ns3&amp;quot;,
+      &amp;quot;dockerImage&amp;quot;: &amp;quot;ns3-federate&amp;quot;,
+      ...
+   },
+   ...
+]
 &lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the &lt;code&gt;mosaic_config.xml&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;You can test the installation of your docker image with the Tiergarten scenario, by activating ns3 in the &lt;code&gt;scenario_config.json&lt;/code&gt;.&lt;/p&gt;
 &lt;h3 id=&#34;configuration&#34;&gt;Configuration&lt;/h3&gt;
 &lt;p&gt;The whole ns-3 specific configuration is done via the &lt;code&gt;confWifi.xml&lt;/code&gt; and &lt;code&gt;configTechnologies.xml&lt;/code&gt; files.&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;confWifi.xml:&lt;/strong&gt;&lt;/p&gt;
@@ -4133,7 +4181,7 @@
       <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
-&lt;p&gt;The 3D visualization &lt;strong&gt;RHABMap&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
+&lt;p&gt;The 3D visualization &lt;strong&gt;PHABMap&lt;/strong&gt; is part of &lt;strong&gt;&lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
@@ -5395,7 +5443,7 @@
 oriented models of INETMANET have their focus more on the framing for communication and less on
 the real content. That means that content is often modeled with dummy payloads where only the length is
 of interest. In contrast, V2X applications which are simulated in the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Eclipse MOSAIC Application Simulator&lt;/a&gt;.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/application_simulator/&#34;&gt;Application Simulator&lt;/a&gt;.
 Rely on the correct transmission of contents. Hence, the modules &lt;code&gt;VSimRTIReliableApp&lt;/code&gt; and &lt;code&gt;VSimRTIUnreliableApp&lt;/code&gt;
 are introduced to bridge this gap. They are triggered by the Eclipse MOSAIC ScenarioManager
 to send new messages to lower layers and forward messages themselves back to the ScenarioManager
@@ -5571,7 +5619,7 @@
 &lt;h4 id=&#34;eclipse-mosaic-omnet-federate-development&#34;&gt;Eclipse MOSAIC OMNeT++ Federate Development&lt;/h4&gt;
 &lt;p&gt;This section provides a description how to set up the &lt;strong&gt;OMNeT++ IDE&lt;/strong&gt; for the Eclipse MOSAIC OMNeT++ Federate Development.&lt;/p&gt;
 &lt;p&gt;At this point it is awaited, that the 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp&#34;&gt;Eclipse MOSAIC OMNeT++ Federate is successfully installed&lt;/a&gt;.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/simulators/network_simulator_omnetpp/&#34;&gt;OMNeT++ Federate&lt;/a&gt; is successfully installed.&lt;/p&gt;
 &lt;h5 id=&#34;prepare-omnet-ide&#34;&gt;Prepare OMNeT++ IDE&lt;/h5&gt;
 &lt;ol&gt;
 &lt;li&gt;
@@ -6296,7 +6344,7 @@
 &lt;p&gt;The cellular simulator offers various modes to estimate the delay of the transmissions. The type of
 estimation is specified with by &lt;code&gt;delayType&lt;/code&gt; for the uplink and downlink for each region. You may also refer to the
 
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models&#34;&gt;Delay-Chapter&lt;/a&gt;.&lt;/p&gt;
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/delay_models/&#34;&gt;Delay-Chapter&lt;/a&gt;.&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;&lt;code&gt;delay.type = ’ConstantDelay’&lt;/code&gt;: The message is transmitted with the latency being exactly equal to delay.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;delay.type = ’SimpleRandomDelay’&lt;/code&gt;: The latency can assume different (randomly generated and uniformly distributed) values between
@@ -6323,30 +6371,20 @@
 Application Simulator.&lt;/p&gt;
 &lt;p&gt;It supports the following addressing and casting schemes.&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-topocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellTopocast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is the normal unicast, where the Geocaster simply resolves
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-topocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellTopocast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is the normal unicast, where the Geocaster simply resolves
 the single receiver via theIPResolver. Hence, the CellTopocast directly routes the message further. Currently, Topocast doesn&amp;rsquo;t allow
 broadcast or anycast addresses, but any transmission protocols (tcp, udp).&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-geocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoUnicast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; addresses every node in the destination area individually.
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-geocast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoUnicast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; addresses every node in the destination area individually.
 In this way it takes a geographic address and results in a loop to generate multiple unicasts.&lt;/p&gt;
 &lt;p&gt;
-&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/extending_mosaic/communication/#cellular-geobroadcast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoBroadcast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, which is basically MBMS, uses one broadcast to all
+&lt;a href=&#34;https://www.eclipse.org/mosaic/docs/develop_applications/communication/#cellular-geobroadcast&#34;&gt;&lt;strong&gt;&lt;code&gt;CellGeoBroadcast&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, which is basically MBMS, uses one broadcast to all
 nodes in the destined regions.The MBMS uses the different transmission mode of multicast in the downlink. CellGeoUnicast as well as
 CellGeoBroadcast require broadcast, but don’t allow tcp (as ack for broadcasts is denied).&lt;/p&gt;
 </description>
     </item>
     
     <item>
-      <title>Java Docs</title>
-      <link>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</link>
-      <pubDate>Tue, 30 Jun 2020 00:00:00 +0100</pubDate>
-      <guid>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</guid>
-      <description>&lt;!-- Java Docs need to be copied into /public/java_docs. --&gt;
-&lt;iframe src=&#34;https://www.eclipse.org/mosaic/mosaic/java_docs/&#34; style=&#34;width: 100%; height: calc(100vh - 230px);&#34;&gt;&lt;/iframe&gt;
-</description>
-    </item>
-    
-    <item>
       <title>Environment Simulator</title>
       <link>https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
@@ -6398,19 +6436,19 @@
       <link>https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/</link>
       <pubDate>Sun, 05 May 2019 00:00:00 +0100</pubDate>
       <guid>https://www.eclipse.org/mosaic/docs/simulators/battery_simulator/</guid>
-      <description>&lt;p&gt;The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle
-characteristics and the battery itself into account. The main feature of the battery ambassador is that it
-can utilize dynamic class loading to use a batterymodel provided by the user, depending on the given
-needs. This also holds true for the environment model and the vehicle model. However, simple models
-for vehicle, environment and the battery are provided and will be briefly explained in the following
-sections.&lt;/p&gt;
-&lt;div class=&#34;alert alert-extended&#34;&gt;
+      <description>&lt;div class=&#34;alert alert-extended&#34;&gt;
   &lt;span class=&#34;extended-icon&#34; style=&#34;background-image: url(/mosaic/img/alert-extended.svg)&#34;&gt;&lt;/span&gt;
   &lt;div&gt;
 &lt;p&gt;The &lt;strong&gt;Battery Simulator&lt;/strong&gt; is part of &lt;a href=&#34;https://www.eclipse.org/mosaic/mosaic/download#overview&#34; title=&#34;MOSAIC Extended&#34;&gt;MOSAIC Extended&lt;/a&gt;.&lt;br&gt;
 For further information on licenses, feel free to contact us via &lt;strong&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;&lt;a href=&#34;mailto:mosaic@fokus.fraunhofer.de&#34;&gt;mosaic@fokus.fraunhofer.de&lt;/a&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;
+&lt;p&gt;The MOSAIC Battery Simulator is used to simulate electric vehicles. It takes environment, vehicle
+characteristics and the battery itself into account. The main feature of the battery ambassador is that it
+can utilize dynamic class loading to use a battery model provided by the user, depending on the given
+needs. This also holds true for the environment model and the vehicle model. However, simple models
+for vehicle, environment and the battery are provided and will be briefly explained in the following
+sections.&lt;/p&gt;
 &lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
 &lt;p&gt;This simulator does not need to be installed. It is delivered as part of the MOSAIC Extended installation package.&lt;/p&gt;
 &lt;h3 id=&#34;configuration&#34;&gt;Configuration&lt;/h3&gt;
@@ -6438,7 +6476,7 @@
 to be extended.&lt;/p&gt;
 &lt;h3 id=&#34;sample-configuration&#34;&gt;Sample configuration&lt;/h3&gt;
 &lt;pre&gt;&lt;code class=&#34;language-Json&#34;&gt;{
-    &amp;quot;vehicleModelClass&amp;quot;: &amp;quot;com.dcaiti.vsimrti.fed.battery.sim.models.vehicle.ElectricSmart&amp;quot;,
+    &amp;quot;vehicleModelClass&amp;quot;: &amp;quot;com.dcaiti.mosaic.fed.battery.sim.models.vehicle.ElectricSmart&amp;quot;,
     &amp;quot;vehicleModelConfig&amp;quot;: {
             &amp;quot;Mass&amp;quot;: 1060,
             &amp;quot;ReferenceArea&amp;quot;: 1.95,
@@ -6447,7 +6485,7 @@
             &amp;quot;EletricMotorOperatingVoltage&amp;quot;: 350,
             &amp;quot;ConsumerOperatingVoltage&amp;quot;: 12
     },
-    &amp;quot;batteryModelClass&amp;quot;: &amp;quot;com.dcaiti.vsimrti.fed.battery.sim.models.battery.VerySimpleBatteryModel&amp;quot;,
+    &amp;quot;batteryModelClass&amp;quot;: &amp;quot;com.dcaiti.mosaic.fed.battery.sim.models.battery.VerySimpleBatteryModel&amp;quot;,
     &amp;quot;batteryModelConfig&amp;quot;: {
             &amp;quot;NumberOfCells&amp;quot;: 93,
             &amp;quot;CellVoltage&amp;quot;: 4.3,
@@ -6457,7 +6495,7 @@
             &amp;quot;MinSOC&amp;quot;: 0.30,
             &amp;quot;MaxSOC&amp;quot;: 0.70
         },
-    &amp;quot;environmentModelClass&amp;quot;: &amp;quot;com.dcaiti.vsimrti.fed.battery.sim.models.environment.DefaultEnvironment&amp;quot;,
+    &amp;quot;environmentModelClass&amp;quot;: &amp;quot;com.dcaiti.mosaic.fed.battery.sim.models.environment.DefaultEnvironment&amp;quot;,
     &amp;quot;environmentModelConfig&amp;quot;: {
             &amp;quot;Gravity&amp;quot;: 9.81,
             &amp;quot;FluidDensity&amp;quot;: 1.293,
diff --git a/sitemap.xml b/sitemap.xml
index 61673f4..67c575e 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -23,6 +23,11 @@
   </url>
   
   <url>
+    <loc>https://www.eclipse.org/mosaic/docs/api_docs/</loc>
+    <lastmod>2020-06-30T00:00:00+01:00</lastmod>
+  </url>
+  
+  <url>
     <loc>https://www.eclipse.org/mosaic/docs/extending_mosaic/</loc>
     <lastmod>2019-08-06T00:00:00+00:00</lastmod>
   </url>
@@ -106,11 +111,6 @@
   </url>
   
   <url>
-    <loc>https://www.eclipse.org/mosaic/docs/run_simulations/simulation_set/</loc>
-    <lastmod>2019-05-05T00:00:00+01:00</lastmod>
-  </url>
-  
-  <url>
     <loc>https://www.eclipse.org/mosaic/docs/visualization/statistics/</loc>
     <lastmod>2019-05-05T00:00:00+01:00</lastmod>
   </url>
@@ -170,11 +170,6 @@
   </url>
   
   <url>
-    <loc>https://www.eclipse.org/mosaic/docs/extending_mosaic/java_docs/</loc>
-    <lastmod>2020-06-30T00:00:00+01:00</lastmod>
-  </url>
-  
-  <url>
     <loc>https://www.eclipse.org/mosaic/docs/simulators/environment_simulator/</loc>
     <lastmod>2019-05-05T00:00:00+01:00</lastmod>
   </url>
