validation hint

Signed-off-by: Axel Meinhardt <axel.meinhardt@bosch-si.com>
diff --git a/200.html b/200.html
index 7f1b823..2a9758d 100644
--- a/200.html
+++ b/200.html
@@ -5,5 +5,5 @@
   <link href="/unide/files/1750fa95f99b26cdec14.css" rel="stylesheet"></head>
   <body data-n-head="">
     <div id="__nuxt"><style>#nuxt-loading {  visibility: hidden;  opacity: 0;  position: absolute;  left: 0;  right: 0;  top: 0;  bottom: 0;  display: flex;  justify-content: center;  align-items: center;  flex-direction: column;  animation: nuxtLoadingIn 10s ease;  -webkit-animation: nuxtLoadingIn 10s ease;  animation-fill-mode: forwards;  overflow: hidden;}@keyframes nuxtLoadingIn {  0% {visibility: hidden;opacity: 0;  }  20% {visibility: visible;opacity: 0;  }  100% {visibility: visible;opacity: 1;  }}@-webkit-keyframes nuxtLoadingIn {  0% {visibility: hidden;opacity: 0;  }  20% {visibility: visible;opacity: 0;  }  100% {visibility: visible;opacity: 1;  }}#nuxt-loading>div,#nuxt-loading>div:after {  border-radius: 50%;  width: 5rem;  height: 5rem;}#nuxt-loading>div {  font-size: 10px;  position: relative;  text-indent: -9999em;  border: .5rem solid #F5F5F5;  border-left: .5rem solid #50237f;  -webkit-transform: translateZ(0);  -ms-transform: translateZ(0);  transform: translateZ(0);  -webkit-animation: nuxtLoading 1.1s infinite linear;  animation: nuxtLoading 1.1s infinite linear;}#nuxt-loading.error>div {  border-left: .5rem solid #ff4500;  animation-duration: 5s;}@-webkit-keyframes nuxtLoading {  0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);  }  100% {-webkit-transform: rotate(360deg);transform: rotate(360deg);  }}@keyframes nuxtLoading {  0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);  }  100% {-webkit-transform: rotate(360deg);transform: rotate(360deg);  }}</style><script>window.addEventListener('error', function () {  var e = document.getElementById('nuxt-loading');  if (e) e.className += ' error';});</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div>
-  <script type="text/javascript" src="/unide/files/8da2e70987bcbfbd2f5b.js"></script><script type="text/javascript" src="/unide/files/c01c4654e10f48ab3d43.js"></script><script type="text/javascript" src="/unide/files/77dcc0254c88ffffb5bd.js"></script></body>
+  <script type="text/javascript" src="/unide/files/aec9bc92e805f0157061.js"></script><script type="text/javascript" src="/unide/files/c01c4654e10f48ab3d43.js"></script><script type="text/javascript" src="/unide/files/77dcc0254c88ffffb5bd.js"></script></body>
 </html>
diff --git a/article/index.html b/article/index.html
index a1f7dbd..25617ad 100644
--- a/article/index.html
+++ b/article/index.html
@@ -64,6 +64,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/12/Unide-proposal-online/index.html b/blog/2016/9/12/Unide-proposal-online/index.html
index ed30cb9..ff14980 100644
--- a/blog/2016/9/12/Unide-proposal-online/index.html
+++ b/blog/2016/9/12/Unide-proposal-online/index.html
@@ -80,6 +80,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-proposal-online",content:'<p>We\'re happy to announce, that the proposal for our new Eclipse Project is online! You can find it at <a href="https://projects.eclipse.org/proposals/unide">https://projects.eclipse.org/proposals/unide</a>. For further discussions, there\'s the <a href="https://www.eclipse.org/forums/index.php/t/1080186/">forum post</a> as well.<br>\nNow, it\'s time to study all details about Eclipse processes and <a href="https://eclipse.org/legal/eplfaq.php#3RDPARTY">license regulations</a>.</p>\n<div class="card">\n\t<header class="card-header is-primary">\n\t\t<p class="card-header-title"><i class="fa fa-pencil">&nbsp;</i>Did you know?</p>\n\t</header>\n\t<div class="card-content">\n\t\t<div class="content">\n\t\t\tThe projects name is derived from <b>un</b>derstand <b>i</b>ndustry <b>de</b>vices. Other ideas like <b>co</b>nnect <b>i</b>ndustry <b>ma</b>chines turned out to have meanings in foreign languages or being trademarked already.\n\t\t</div>\n\t</div>\n</div>\n',url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3),tags:["project start"],next:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-proposal-online",content:'<p>We\'re happy to announce, that the proposal for our new Eclipse Project is online! You can find it at <a href="https://projects.eclipse.org/proposals/unide">https://projects.eclipse.org/proposals/unide</a>. For further discussions, there\'s the <a href="https://www.eclipse.org/forums/index.php/t/1080186/">forum post</a> as well.<br>\nNow, it\'s time to study all details about Eclipse processes and <a href="https://eclipse.org/legal/eplfaq.php#3RDPARTY">license regulations</a>.</p>\n<div class="card">\n\t<header class="card-header is-primary">\n\t\t<p class="card-header-title"><i class="fa fa-pencil">&nbsp;</i>Did you know?</p>\n\t</header>\n\t<div class="card-content">\n\t\t<div class="content">\n\t\t\tThe projects name is derived from <b>un</b>derstand <b>i</b>ndustry <b>de</b>vices. Other ideas like <b>co</b>nnect <b>i</b>ndustry <b>ma</b>chines turned out to have meanings in foreign languages or being trademarked already.\n\t\t</div>\n\t</div>\n</div>\n',url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3),tags:["project start"],next:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/12/index.html b/blog/2016/9/12/index.html
index 0bf05c6..27790ed 100644
--- a/blog/2016/9/12/index.html
+++ b/blog/2016/9/12/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/16/Project-approved/index.html b/blog/2016/9/16/Project-approved/index.html
index b7829c9..27591c5 100644
--- a/blog/2016/9/16/Project-approved/index.html
+++ b/blog/2016/9/16/Project-approved/index.html
@@ -77,6 +77,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Project-approved",content:'<p>Unide proposal has been approved to be an Eclipse Project! You can now find all relevant information at <a href="https://projects.eclipse.org/projects/iot.unide">https://projects.eclipse.org/projects/iot.unide</a>.</p>\n<p>There\'s still some paperwork pending, but it looks promising! Next steps are</p>\n<ul>\n<li>creating a proper homepage with relevant information and the PPMP specification</li>\n<li>license checking of initial commitment code.</li>\n<li>getting in touch with Eclipse community</li>\n<li>making plans for the upcoming months</li>\n</ul>\n<p>If you are interested in industry 4.0, IoT stack in manufacturing or you are building industry machines and want to find out more about the possiblities with PPMP, let us know: <a href="mailto:unide-inbox@eclipse.org?subject=Interested%20in%20contributing">unide-inbox@eclipse.org</a></p>\n',url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3),tags:["project start"],prev:{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online"},next:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Project-approved",content:'<p>Unide proposal has been approved to be an Eclipse Project! You can now find all relevant information at <a href="https://projects.eclipse.org/projects/iot.unide">https://projects.eclipse.org/projects/iot.unide</a>.</p>\n<p>There\'s still some paperwork pending, but it looks promising! Next steps are</p>\n<ul>\n<li>creating a proper homepage with relevant information and the PPMP specification</li>\n<li>license checking of initial commitment code.</li>\n<li>getting in touch with Eclipse community</li>\n<li>making plans for the upcoming months</li>\n</ul>\n<p>If you are interested in industry 4.0, IoT stack in manufacturing or you are building industry machines and want to find out more about the possiblities with PPMP, let us know: <a href="mailto:unide-inbox@eclipse.org?subject=Interested%20in%20contributing">unide-inbox@eclipse.org</a></p>\n',url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3),tags:["project start"],prev:{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online"},next:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/16/index.html b/blog/2016/9/16/index.html
index 71afde3..c88f07a 100644
--- a/blog/2016/9/16/index.html
+++ b/blog/2016/9/16/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/21/Official-launch/index.html b/blog/2016/9/21/Official-launch/index.html
index c677267..b48119f 100644
--- a/blog/2016/9/21/Official-launch/index.html
+++ b/blog/2016/9/21/Official-launch/index.html
@@ -76,6 +76,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Official-launch",content:'<p>Today, we officially launch Unide. In the last days, we have redesigned the logo, published Blog posts and started work on the initial (code) contributions.<br>\nIt even seems like good timing, since there was a <a href="http://m.heise.de/newsticker/meldung/Umfrage-Unternehmen-fordern-offene-Plattform-fuer-die-Industrie-4-0-3327135.html">survey in Germany about open platforms &amp; standards in industry 4.0</a>, basically asking for something like Unide/PPMP.</p>\n<h3>the logo</h3>\n<p>Unide and PPMP\'s goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you (&quot;<em>U</em>&quot;) highlighted and connects to rings. As a side note, we found that the words almost look like <em>you-nice</em>.</p>\n<h3>blog entries</h3>\n<p>If you are interested in further readings, check out the post at <a href="http://blog.bosch-si.com">blog.bosch-si.com</a>.</p>\n<h3>initial contributions</h3>\n<p>We are working on creating the initial contributions for Unide. Since there are a few legal aspects we have to consider, stay tuned. The code will be published to our <a href="https://github.com/eclipse/unide">github repository</a>.</p>\n',url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3),tags:["project start"],prev:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"},next:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Official-launch",content:'<p>Today, we officially launch Unide. In the last days, we have redesigned the logo, published Blog posts and started work on the initial (code) contributions.<br>\nIt even seems like good timing, since there was a <a href="http://m.heise.de/newsticker/meldung/Umfrage-Unternehmen-fordern-offene-Plattform-fuer-die-Industrie-4-0-3327135.html">survey in Germany about open platforms &amp; standards in industry 4.0</a>, basically asking for something like Unide/PPMP.</p>\n<h3>the logo</h3>\n<p>Unide and PPMP\'s goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you (&quot;<em>U</em>&quot;) highlighted and connects to rings. As a side note, we found that the words almost look like <em>you-nice</em>.</p>\n<h3>blog entries</h3>\n<p>If you are interested in further readings, check out the post at <a href="http://blog.bosch-si.com">blog.bosch-si.com</a>.</p>\n<h3>initial contributions</h3>\n<p>We are working on creating the initial contributions for Unide. Since there are a few legal aspects we have to consider, stay tuned. The code will be published to our <a href="https://github.com/eclipse/unide">github repository</a>.</p>\n',url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3),tags:["project start"],prev:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"},next:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/21/index.html b/blog/2016/9/21/index.html
index de90c09..7b66ea9 100644
--- a/blog/2016/9/21/index.html
+++ b/blog/2016/9/21/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/27/News-coverage/index.html b/blog/2016/9/27/News-coverage/index.html
index 931a3f6..39dbead 100644
--- a/blog/2016/9/27/News-coverage/index.html
+++ b/blog/2016/9/27/News-coverage/index.html
@@ -75,6 +75,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"News-coverage",content:'<p>After the <a href="/unide/2016/09/21/Official%20launch/">Official launch</a> of unide and PPMP, there was some media coverage about the project.</p>\n<p>Triggered by a statement by <a href="http://www.bosch.com/en/com/bosch_group/board_management/dr_rer_nat_volkmar_denner/volkmar-denner.html">Bosch CEO Volkmar Denner</a> on <em><a href="http://www.bosch-presse.de/pressportal/en/bosch-initiates-new-machine-language-for-industry-4-0-65216.html">&quot;initiating new machine language for Industry 4.0&quot;</a></em>, twitter, blogs and magazines mention PPMP, e.g.:</p>\n<ul>\n<li><a href="https://www.elektormagazine.com/news/free-ppmp-from-bosch-makes-industry-4-0-open-for-all">electormagazine</a></li>\n<li><a href="http://www.computer-automation.de/feldebene/vernetzung/artikel/134233/">computer-automation</a> (de)</li>\n</ul>\n<p>Looking forward to spreading the word further.</p>\n',url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3),tags:["media"],prev:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"},next:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"News-coverage",content:'<p>After the <a href="/unide/2016/09/21/Official%20launch/">Official launch</a> of unide and PPMP, there was some media coverage about the project.</p>\n<p>Triggered by a statement by <a href="http://www.bosch.com/en/com/bosch_group/board_management/dr_rer_nat_volkmar_denner/volkmar-denner.html">Bosch CEO Volkmar Denner</a> on <em><a href="http://www.bosch-presse.de/pressportal/en/bosch-initiates-new-machine-language-for-industry-4-0-65216.html">&quot;initiating new machine language for Industry 4.0&quot;</a></em>, twitter, blogs and magazines mention PPMP, e.g.:</p>\n<ul>\n<li><a href="https://www.elektormagazine.com/news/free-ppmp-from-bosch-makes-industry-4-0-open-for-all">electormagazine</a></li>\n<li><a href="http://www.computer-automation.de/feldebene/vernetzung/artikel/134233/">computer-automation</a> (de)</li>\n</ul>\n<p>Looking forward to spreading the word further.</p>\n',url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3),tags:["media"],prev:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"},next:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/27/index.html b/blog/2016/9/27/index.html
index 2d0b1f6..de37820 100644
--- a/blog/2016/9/27/index.html
+++ b/blog/2016/9/27/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/9/index.html b/blog/2016/9/index.html
index be84198..5befd0f 100644
--- a/blog/2016/9/index.html
+++ b/blog/2016/9/index.html
@@ -82,6 +82,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3)},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3)},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3)},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3)},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3)},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3)},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2016/index.html b/blog/2016/index.html
index 517510f..01d6e96 100644
--- a/blog/2016/index.html
+++ b/blog/2016/index.html
@@ -82,6 +82,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3)},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3)},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3)},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:new Date(1474967667e3)},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:new Date(1474451263e3)},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:new Date(1474028197e3)},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:new Date(1473672397e3)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/10/19/i40-testbed-started/index.html b/blog/2017/10/19/i40-testbed-started/index.html
index 3a65060..bbadbe9 100644
--- a/blog/2017/10/19/i40-testbed-started/index.html
+++ b/blog/2017/10/19/i40-testbed-started/index.html
@@ -71,6 +71,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"i40-testbed-started",content:'<p>The Eclipse IoT Working group has started another testbed around Production Performance Management. Together with other Eclipse projects but also manufacturing companies, we aim to showcase and test the software in real life scenarios.<br>\n<a href="https://www.contact-software.com">Contact Software</a>, <a href="https://www.eurotech.com">Eurotech</a> and <a href="https://www.eclipse.org/4diac/">Eclipse 4diac</a> provide bindings to actual machines, Unide and PPMP will be used for structuring and normalizing the information, <a href="https://projects.eclipse.org/projects/iot.hono">Ecipse Hono</a> and other provide the advanced infrastructure and <a href="https://www.influxdata.com/">influx data</a> persists the data.<br>\nYou can find more information in the <a href="https://eclipse.org/org/press-release/20171019_industry40_testbed.php">Press Release</a> or the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">homepage of the testbed</a>.</p>\n',url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5),tags:["testbed"],prev:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"},next:{url:"/blog/2018/1/26/New-website",title:"Updated Website"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"i40-testbed-started",content:'<p>The Eclipse IoT Working group has started another testbed around Production Performance Management. Together with other Eclipse projects but also manufacturing companies, we aim to showcase and test the software in real life scenarios.<br>\n<a href="https://www.contact-software.com">Contact Software</a>, <a href="https://www.eurotech.com">Eurotech</a> and <a href="https://www.eclipse.org/4diac/">Eclipse 4diac</a> provide bindings to actual machines, Unide and PPMP will be used for structuring and normalizing the information, <a href="https://projects.eclipse.org/projects/iot.hono">Ecipse Hono</a> and other provide the advanced infrastructure and <a href="https://www.influxdata.com/">influx data</a> persists the data.<br>\nYou can find more information in the <a href="https://eclipse.org/org/press-release/20171019_industry40_testbed.php">Press Release</a> or the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">homepage of the testbed</a>.</p>\n',url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5),tags:["testbed"],prev:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"},next:{url:"/blog/2018/1/26/New-website",title:"Updated Website"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/10/19/index.html b/blog/2017/10/19/index.html
index b465fbc..79cb10c 100644
--- a/blog/2017/10/19/index.html
+++ b/blog/2017/10/19/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/10/6/DZone-article-published/index.html b/blog/2017/10/6/DZone-article-published/index.html
index 8bd0859..9453672 100644
--- a/blog/2017/10/6/DZone-article-published/index.html
+++ b/blog/2017/10/6/DZone-article-published/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"DZone-article-published",content:'<p>A new article about PPMP and the Eclipse Unide project was published at <a href="https://dzone.com/articles/eclipse-unide-a-way-to-establish-an-open-industry">DZone</a>!<br>\nIt explains how to use the <a href="https://www.eclipse.org/unide/2017/06/29/Validator-Online/">PPMP validator</a>, gives an overview of the InfluxDB / Grafana visualisation and how this setup can be used in an Eclipse Testbed.</p>\n',url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6),tags:["media"],prev:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"},next:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"DZone-article-published",content:'<p>A new article about PPMP and the Eclipse Unide project was published at <a href="https://dzone.com/articles/eclipse-unide-a-way-to-establish-an-open-industry">DZone</a>!<br>\nIt explains how to use the <a href="https://www.eclipse.org/unide/2017/06/29/Validator-Online/">PPMP validator</a>, gives an overview of the InfluxDB / Grafana visualisation and how this setup can be used in an Eclipse Testbed.</p>\n',url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6),tags:["media"],prev:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"},next:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/10/6/index.html b/blog/2017/10/6/index.html
index 3be7132..5e85aef 100644
--- a/blog/2017/10/6/index.html
+++ b/blog/2017/10/6/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/10/index.html b/blog/2017/10/index.html
index c053240..aacfff4 100644
--- a/blog/2017/10/index.html
+++ b/blog/2017/10/index.html
@@ -74,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5)},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5)},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/3/23/Unide-at-BCX/index.html b/blog/2017/3/23/Unide-at-BCX/index.html
index 67c00f9..e5e9f8d 100644
--- a/blog/2017/3/23/Unide-at-BCX/index.html
+++ b/blog/2017/3/23/Unide-at-BCX/index.html
@@ -78,6 +78,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-at-BCX",content:'<p>Unide and PPMP were used in <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">Bosch Connected Experience Hackaton</a> by students and developers to connect sensors to backend solutions in just two days!<br>\nThey even took a professional video:</p>\n<center>\n<iframe width="400" height="300" src="https://www.youtube.com/embed/Pq88mIx-lnQ?ecver=1" frameborder="0" allowfullscreen></iframe>\n</center>\n<p>Also in the same conference, Bosch CEO Dr. Volkmar Denner <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">refered to PPMP again</a>:</p>\n<blockquote>\n\t<p>On a more practical level, the product performance management protocol, or PPMP, is being tried out at the Bosch plant in Homburg, Germany, as part of a joint Industrie 4.0 and IIC testbed. Bosch itself developed the PPMP, which is available to all at no cost. It allows small and medium-sized enterprises to transmit data from their sensors quickly, simply, and securely to the production systems of large companies. This helps remove some of the obstacles preventing entry into connected manufacturing. This first practical experience will be used to further refine the new protocol – work which will be done by Eclipse, an open-source community. Once again, we see that openness is our life blood.</p>\n\t<footer>Dr. Volkmar Denner, Bosch CEO</footer>\n</blockquote>\n',url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5),tags:["media"],prev:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"},next:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-at-BCX",content:'<p>Unide and PPMP were used in <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">Bosch Connected Experience Hackaton</a> by students and developers to connect sensors to backend solutions in just two days!<br>\nThey even took a professional video:</p>\n<center>\n<iframe width="400" height="300" src="https://www.youtube.com/embed/Pq88mIx-lnQ?ecver=1" frameborder="0" allowfullscreen></iframe>\n</center>\n<p>Also in the same conference, Bosch CEO Dr. Volkmar Denner <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">refered to PPMP again</a>:</p>\n<blockquote>\n\t<p>On a more practical level, the product performance management protocol, or PPMP, is being tried out at the Bosch plant in Homburg, Germany, as part of a joint Industrie 4.0 and IIC testbed. Bosch itself developed the PPMP, which is available to all at no cost. It allows small and medium-sized enterprises to transmit data from their sensors quickly, simply, and securely to the production systems of large companies. This helps remove some of the obstacles preventing entry into connected manufacturing. This first practical experience will be used to further refine the new protocol – work which will be done by Eclipse, an open-source community. Once again, we see that openness is our life blood.</p>\n\t<footer>Dr. Volkmar Denner, Bosch CEO</footer>\n</blockquote>\n',url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5),tags:["media"],prev:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"},next:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/3/23/index.html b/blog/2017/3/23/index.html
index 816c953..771a450 100644
--- a/blog/2017/3/23/index.html
+++ b/blog/2017/3/23/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/3/index.html b/blog/2017/3/index.html
index 5a64970..13f79f0 100644
--- a/blog/2017/3/index.html
+++ b/blog/2017/3/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/6/1/New-process-message-spec/index.html b/blog/2017/6/1/New-process-message-spec/index.html
index 1a08b04..845f6c8 100644
--- a/blog/2017/6/1/New-process-message-spec/index.html
+++ b/blog/2017/6/1/New-process-message-spec/index.html
@@ -69,6 +69,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-process-message-spec",content:'<p>We’re happy to announce, that the process message specification is online! You can find it at <a href="http://www.eclipse.org/unide/specification">http://www.eclipse.org/unide/specification</a>. With this type of messages you have a standard format for sending data out of discrete and possibly complex processes. <img src="/unide/images/processPayload.png" alt="alt text"></p>\n',url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5),tags:["process message"],prev:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"},next:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-process-message-spec",content:'<p>We’re happy to announce, that the process message specification is online! You can find it at <a href="http://www.eclipse.org/unide/specification">http://www.eclipse.org/unide/specification</a>. With this type of messages you have a standard format for sending data out of discrete and possibly complex processes. <img src="/unide/images/processPayload.png" alt="alt text"></p>\n',url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5),tags:["process message"],prev:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"},next:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/6/1/index.html b/blog/2017/6/1/index.html
index 8a4256c..40d5236 100644
--- a/blog/2017/6/1/index.html
+++ b/blog/2017/6/1/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/6/29/Validator-Online/index.html b/blog/2017/6/29/Validator-Online/index.html
index 01e6f35..f321466 100644
--- a/blog/2017/6/29/Validator-Online/index.html
+++ b/blog/2017/6/29/Validator-Online/index.html
@@ -77,6 +77,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Validator-Online",content:"<p>Our first PPMP-Validator as a HTTP-server is online!</p>\n<p>What we already contribtuted as sourcecode to the Unide-project we've also installed on an eclipse sandbox server. Now you are able to validate your PPMP-messages through the internet without running the server on your local machine. The intention is to make the latest specification validator accessible to everyone at anytime.</p>\n<p>You can reach the server by sending POST-requests to the following endpoints:</p>\n<pre>\n<a>http://unide.eclipse.org/rest/v2/message?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/measurement?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/process?validate=true</a>\n</pre>\n<p>Further functions of the sandbox server will be also visualization and storaging of incoming PPMP-messages.</p>\n",url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5),tags:["validator"],prev:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"},next:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Validator-Online",content:"<p>Our first PPMP-Validator as a HTTP-server is online!</p>\n<p>What we already contribtuted as sourcecode to the Unide-project we've also installed on an eclipse sandbox server. Now you are able to validate your PPMP-messages through the internet without running the server on your local machine. The intention is to make the latest specification validator accessible to everyone at anytime.</p>\n<p>You can reach the server by sending POST-requests to the following endpoints:</p>\n<pre>\n<a>http://unide.eclipse.org/rest/v2/message?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/measurement?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/process?validate=true</a>\n</pre>\n<p>Further functions of the sandbox server will be also visualization and storaging of incoming PPMP-messages.</p>\n",url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5),tags:["validator"],prev:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"},next:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/6/29/index.html b/blog/2017/6/29/index.html
index 865e4f9..9aa9a3d 100644
--- a/blog/2017/6/29/index.html
+++ b/blog/2017/6/29/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/6/index.html b/blog/2017/6/index.html
index 0589c61..76d3245 100644
--- a/blog/2017/6/index.html
+++ b/blog/2017/6/index.html
@@ -74,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5)},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5)},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2017/index.html b/blog/2017/index.html
index 4a98202..2797caa 100644
--- a/blog/2017/index.html
+++ b/blog/2017/index.html
@@ -86,6 +86,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5)},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6)},{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5)},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5)},{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:new Date(15083712e5)},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:new Date(1507248e6)},{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:new Date(14986944e5)},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:new Date(14962752e5)},{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:new Date(14902884e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/1/26/New-website/index.html b/blog/2018/1/26/New-website/index.html
index ad580f8..f10bcc1 100644
--- a/blog/2018/1/26/New-website/index.html
+++ b/blog/2018/1/26/New-website/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-website",content:'<p>It turned out that even with multiple reviews, it is possible to have small mistakes in the PPMP documentation. In order to avoid such contradictions between diagrams, specification, json-schema and eventual implementation, we decided to rework the project structure and fixed <a href="https://github.com/eclipse/unide/issues/21">the JSON Schemas</a>. The corresponding uml diagrams are generated with <a href="http://plantuml.com/">plantuml</a>. For even better understandibility, the attributes are sorted lexicographically.</p>\n<p>Although the website has the same look, it is completely reworked as a <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page application</a> to generate the specification directly from the json-schema. Instead of using <a href="https://hexo.io/">hexo</a> it is now based on <a href="https://nuxtjs.org/">nuxt.js</a>. <a href="https://vuejs.org/">Vue.js</a> as a basis for nuxt is also used in the <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">new PPMP client application called binsa</a>.</p>\n',url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5),tags:["media"],prev:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"},next:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-website",content:'<p>It turned out that even with multiple reviews, it is possible to have small mistakes in the PPMP documentation. In order to avoid such contradictions between diagrams, specification, json-schema and eventual implementation, we decided to rework the project structure and fixed <a href="https://github.com/eclipse/unide/issues/21">the JSON Schemas</a>. The corresponding uml diagrams are generated with <a href="http://plantuml.com/">plantuml</a>. For even better understandibility, the attributes are sorted lexicographically.</p>\n<p>Although the website has the same look, it is completely reworked as a <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page application</a> to generate the specification directly from the json-schema. Instead of using <a href="https://hexo.io/">hexo</a> it is now based on <a href="https://nuxtjs.org/">nuxt.js</a>. <a href="https://vuejs.org/">Vue.js</a> as a basis for nuxt is also used in the <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">new PPMP client application called binsa</a>.</p>\n',url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5),tags:["media"],prev:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"},next:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/1/26/index.html b/blog/2018/1/26/index.html
index d72a846..f07698d 100644
--- a/blog/2018/1/26/index.html
+++ b/blog/2018/1/26/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/1/index.html b/blog/2018/1/index.html
index 8a01aec..246403a 100644
--- a/blog/2018/1/index.html
+++ b/blog/2018/1/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/2/11/Transform-PPMP-with-camel/index.html b/blog/2018/2/11/Transform-PPMP-with-camel/index.html
index 818f1b2..1c658c3 100644
--- a/blog/2018/2/11/Transform-PPMP-with-camel/index.html
+++ b/blog/2018/2/11/Transform-PPMP-with-camel/index.html
@@ -706,6 +706,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Transform-PPMP-with-camel",content:'<p>The Production Performance Management Protocol (PPMP) is a simple structure to send out machine data. Unide, as its hosting project, is supposed to provide exemplary implementations.</p>\n<p>We have already published <a href="https://github.com/eclipse/unide/tree/master/servers/rest">a REST server</a>, <a href="https://github.com/eclipse/unide.java">java-</a> and <a href="https://github.com/eclipse/unide.python">python-</a> bindings and an <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">html5-client</a>. But how are these implementations used in real life?</p>\n<h1>The Challenge</h1>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Welding robots" title="BMW plant, spot welding" src="/unide/images/blog/Transform-PPMP-with-camel-welding.jpg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>In the automotive industry, <a href="https://en.wikipedia.org/wiki/Spot_welding">welding spots</a> are crucial for the quality of a car and the security of the passenger. In modern production lines, hundreds of welding spots have to be precisely set in a single shift. In order to reduce product rework, scrap, destructible tests and machine downtime, the quality should be monitored consistently. That\'s what special welding controller in machines do. Unfortunately, this data is often only used locally, for a short period of time and in proprietary formats. Just enough to determine the immediate process outcome. In that case, further opportunities of analysing the information are not taken. With the continuous increase in complexity, price and time pressure, the demand for further processing and optimization grows. The data could be used to prevent or even predict maintenance or just store the data in long time archives in case of legal disputes.</p>\n<p>One prerequisite for such connectivity is the hardware and its connectivity. Older generations of welding controllers can only be accessed with proprietary stacks (like the <a href="https://www.boschrexroth.com/en/xc/products/product-groups/welding-technology/controllers-with-power-section/mf-system-psi6000/index">PSI 6000</a>) whereas newer generations (like the <a href="https://www.boschrexroth.com/en/xc/company/press/index2-29696">PRC 7000</a>) are much more flexible in terms of networking and communication. In general, there are two aspects that make up the communication: the transport protocol and the structure of the payload. This is similar to our daily life: if you want to chat with your friends, you need to use the same messenger or communication technology (phone, email) and you need speak the same language (English, German etc.).</p>\n<p>In the following sections, let\'s assume we need to transform the transport protocol as well as the payload. The data is generated by a welding controller and should be passed to <a href="https://unide.eclipse.org">the unide REST server</a> for persisting it in a dedicated timeseries database.</p>\n<h1>The Approach</h1>\n<p>We want to find a way to receive the data, transform it into PPMP and store it into a database in our <a href="https://unide.eclipse.org">REST Server</a>.</p>\n<p>First, we need to understand which interfaces the controller has, which communication protocol is used, and how the payload would be interpreted. In the case of the PSI 6000, it was configured to publish the quality data to a <a href="https://de.wikipedia.org/wiki/MQTT">mqtt</a> message broker (here: <a href="https://mosquitto.org/">Eclipse mosquitto</a>). We don\'t have an extensive documentation of the payload, but we can look at samples of it (some Curve data shortened at the end):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"Name"</span><span class="token operator">:</span> <span class="token string">"WeldLog/UIR Testrack 24/"</span><span class="token punctuation">,</span>\n  <span class="token property">"WeldTimer"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n  <span class="token property">"TimeStamp"</span><span class="token operator">:</span> <span class="token string">"2018-01-17T10:41:00.0008436+01:00"</span><span class="token punctuation">,</span>\n  <span class="token property">"OutputFormat"</span><span class="token operator">:</span> <span class="token string">"JSON"</span><span class="token punctuation">,</span>\n  <span class="token property">"Message"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n    <span class="token property">"WeldLog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n      <span class="token property">"protRecord_ID"</span><span class="token operator">:</span> <span class="token number">734827</span><span class="token punctuation">,</span>\n      <span class="token property">"dateTime"</span><span class="token operator">:</span> <span class="token string">"2018-01-15T16:52:32.09"</span><span class="token punctuation">,</span>\n      <span class="token property">"timerName"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n      <span class="token property">"progNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"spotName"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"wear"</span><span class="token operator">:</span> <span class="token number">8312480</span><span class="token punctuation">,</span>\n      <span class="token property">"wearPerCent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"measureState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"powerState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceStateAdd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceRepeat"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorMode"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemandStd"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"ilsts"</span><span class="token operator">:</span> <span class="token number">13.14</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand1"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation1"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand2"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual2"</span><span class="token operator">:</span> <span class="token number">13.16</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation2"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand3"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation3"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"phaStd"</span><span class="token operator">:</span> <span class="token number">24.96</span><span class="token punctuation">,</span>\n      <span class="token property">"pha1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"pha2"</span><span class="token operator">:</span> <span class="token number">24.64</span><span class="token punctuation">,</span>\n      <span class="token property">"pha3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"t_iDemandStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"tActualStd"</span><span class="token operator">:</span> <span class="token number">878</span><span class="token punctuation">,</span>\n      <span class="token property">"partIdentString"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"tipDressCounter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"electrodeNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForceSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThicknessSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGpSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSpotWithSg"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorCurrent"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorTemp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForce"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThickness"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGc"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspJunction"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspMax"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaActual"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaMinDemand"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSplashTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"nuggetDiameter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"usp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"normingTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStartTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"returnToConstantCurrent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"declineUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"offsetUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"currentFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"triggerTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrRegulationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageActualValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageRefValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"currentActualValue"</span><span class="token operator">:</span> <span class="token number">13.17</span><span class="token punctuation">,</span>\n      <span class="token property">"currentReferenceValue"</span><span class="token operator">:</span> <span class="token number">13.95</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeActualValue"</span><span class="token operator">:</span> <span class="token number">876</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeRefValue"</span><span class="token operator">:</span> <span class="token number">760</span><span class="token punctuation">,</span>\n      <span class="token property">"energyActualValue"</span><span class="token operator">:</span> <span class="token number">395.1261</span><span class="token punctuation">,</span>\n      <span class="token property">"energyRefValue"</span><span class="token operator">:</span> <span class="token number">342</span><span class="token punctuation">,</span>\n      <span class="token property">"powerActualValue"</span><span class="token operator">:</span> <span class="token number">395.133</span><span class="token punctuation">,</span>\n      <span class="token property">"powerRefValue"</span><span class="token operator">:</span> <span class="token number">449.35</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceActualValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceRefValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthActualValue"</span><span class="token operator">:</span> <span class="token number">25.02</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthRefValue"</span><span class="token operator">:</span> <span class="token number">26.19</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorActValue"</span><span class="token operator">:</span> <span class="token number">55</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"thresholdStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"wldEffectStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uipActualValue"</span><span class="token operator">:</span> <span class="token number">126</span><span class="token punctuation">,</span>\n      <span class="token property">"uipRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirExpulsionTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMeasuringActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirRegulationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppRefCntValue"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppActCntValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_1"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_2"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_3"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_4"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_5"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_6"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_7"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_8"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_9"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_10"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_11"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_12"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_13"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_14"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_15"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_16"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_17"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_18"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"uipMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfActualValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrModeOff"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"reweldActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"weldspotRefIdent"</span><span class="token operator">:</span> <span class="token string">"UIR_PART"</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Torque_Gp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Force_Corr"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Weldspot_Geo_Wear"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Wear_Length"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Beam_UpArching"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"CurrentCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">11621</span><span class="token punctuation">,</span>\n        <span class="token number">15434</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"VoltageCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">39</span><span class="token punctuation">,</span>\n        <span class="token number">29</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"ForceCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>That\'s already very detailed, but it\'s unclear which device / welding spot the data comes from and what the timing of the curves was. Let\'s get some more structure in with PPMP!</p>\n<p>In PPMP, we have the option to differentiate between discrete manufacturing data (MES - part produced) by using the <a href="/unide/specification/measurement-message">measurement-message</a> and detailed process data by using the <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>. In the welding payload, that\'s all combined in one message. So we also want to split this payload into two.</p>\n<h2>Introducing Apache Camel</h2>\n<div class="card figure is-pulled-left">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Apache Camel" title="Apache Camel" src="/unide/images/blog/Transform-PPMP-with-camel-camel.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tApache Camel, <a href="https://www.apache.org/licenses/LICENSE-2.0">(Apache&nbsp;License&nbsp;2.0)</a>\n\t</div>\n</div>\n<p><a href="https://en.wikipedia.org/wiki/Apache_Camel">Apache Camel</a> is a java-based Open Source framework, that can transform and route data. It supports most of the <a href="https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns">Enterprise Integration Patterns</a> and hundreds(!) of <a href="http://camel.apache.org/components.html">connectors / components</a>. Think of it as an extensive transformation and workflow automation engine. In fact, it\'s so powerful and versatile, that it unfortunately doesn\'t come with a visual user interface or a plug-and-play installer. Luckily, for everyone who doesn\'t happen to be a java expert, there\'s also an xml configuration (via <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">spring xml</a>). And that\'s mostly all we need!</p>\n<h2>Transforming the Communication Protocol</h2>\n<p>We will use Spring XML to configure Apache Camel. The workflow in Camel are called <code>&lt;routes&gt;</code>. So let\'s create a route that transforms our mqtt to REST protocol:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>That\'s it! A <code>&lt;route&gt;</code> that reads<code>&lt;from&gt;</code> mqtt and forwards <code>&lt;to&gt;</code> http. Not so difficult, is it? We could use many of the other <a href="http://camel.apache.org/components.html">connectors / components</a> in the example above as well to transform from/to different protocols.</p>\n<p>But wait! The welding payload above was not PPMP. So we also need to normalize the payload.</p>\n<h2>Normalizing the Payload</h2>\n<p>Now that we can easily convert protocols, let\'s address the structure of the payload. Overall, we want to have a workflow that looks as described in the diagram below:</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="data workflow" title="data workflow" src="/unide/images/blog/Transform-PPMP-with-camel-1.svg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tWorkflow to extract the data from controller, convert it and send the data to the cloud application\n\t</div>\n</div>\n<p>The extra steps here are:</p>\n<ol>\n<li>transform the PSI 6000 JSON String payload to a java object</li>\n<li>transform the PSI 6000 java object to two PPMP-java objects (<a href="/unide/specification/measurement-message">measurement-message</a> and <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>)</li>\n<li>split up the two PPMP objects</li>\n<li>route the objects individually</li>\n<li>transform each PPMP object back to a String</li>\n</ol>\n<h3>Create the PSI 6000 Java Object</h3>\n<p>Luckily, there are helpers for transforming json (or xml) to plain old java objects (POJOs). We are using <a href="http://www.jsonschema2pojo.org/">jsonschema2pojo</a> to convert the above json sample to POJOs with Jackson 2.x annotation. I name the resulting data type class <code>PSI6000DataType</code> and organize it in the package <code>org.eclipse.iot.unide.integrators</code>. Based on the given testdata, jsonschema2pojo cannot fully deduct all attribute types correctly. In order to allow floating point values, we would rename all <code>Integer</code> and <code>Object</code> types to <code>Number</code> in the WeldLog.java file. Also in the same file, we would change the type of the <code>dateTime</code> field from String to <code>LocalDateTime</code> to be more accurate:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token annotation punctuation">@JsonProperty</span><span class="token punctuation">(</span><span class="token string">"dateTime"</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonSerialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeSerializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonDeserialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeDeserializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token keyword">private</span> LocalDateTime dateTime<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>For that, we also need to include the respective imports:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonDeserialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonSerialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>deser<span class="token punctuation">.</span>LocalDateTimeDeserializer<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>ser<span class="token punctuation">.</span>LocalDateTimeSerializer<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>and adjust the getter (<code>getDateTime()</code>), setter (<code>setDateTime()</code>) and the type in the constructor (<code>public WeldLog(...)</code>) accordingly.</p>\n<p>Camel will be able to transform (&quot;<em>unmarshal</em>&quot;) this datatype from a string to a POJO after adding the definition to the above Spring XML:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Use unide.java binding for PPMP Java Objects</h3>\n<p>For eventually transforming the PPMP objects back to String (&quot;<em>marshal</em>&quot;), we can make use of the <a href="https://github.com/eclipse/unide.java">unide PPMP java binding</a>. Just adjust the dataFormats section of the Spring XML so that it reads:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> \n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Create the Workflow</h3>\n<p>In order to better structure data flow, we use multiple <code>&lt;route&gt;</code>-s: one for retrieving the data and two more after the split of the payload. They are connected via the virtual camel protocol &quot;<em>direct</em>&quot;. In the following Spring XML, you can also find some <code>&lt;log&gt;</code> points and additional steps to set http header (<code>&lt;setHeader&gt;</code>) for posting to the unide server:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>bean</span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span> <span class="token attr-name">autoStartup</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>unmarshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Type<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>application/json; charset=utf-8<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>CamelHttpMethod<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>POST<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>done<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>{"result": true }<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[0]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId measurement: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>measurement sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[1]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId process: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/process?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>process sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>You might have noticed that we have not yet discussed one important item in this workflow: how do we actually transform the payload from one format to another?</p>\n<h3>Transforming from PSI 6000 POJO to PPMP POJOs</h3>\n<p>One thing that we\'ll hardwire as java code is the transformation from the source to the target structure. The same functionality could be achieved with scripting components (e.g. <a href="http://camel.apache.org/groovy.html">groovy</a>, but that would be less powerful and worse performance. Since we don\'t expect the format to change but mostly the workflow or endpoints, implementing a java bean is not too much effort. Here\'s how:<br>\nApache Camel offers a <code>Processor</code> interface that can be used to override the <code>process()</code> function. This function receives the complete message (<code>exchange</code>) and can modify it in any way. Since we have created the PSI 6000 Java Object already and want to produce PPMP java objects, the logic is mostly about creating the child objects and wiring the suitable getter to corresponding setter.</p>\n<pre class="language-java"><code class="language-java"><span class="token keyword">package</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>integrators<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>OffsetDateTime<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>ZoneOffset<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Arrays<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>LinkedList<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Exchange<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Message<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Processor<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>Device<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>MetaData<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>MeasurementsWrapper<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Process<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>ProcessWrapper<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>core<span class="token punctuation">.</span>JsonProcessingException<span class="token punctuation">;</span>\n\n<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PSI6000</span> <span class="token keyword">implements</span> <span class="token class-name">Processor</span> <span class="token punctuation">{</span>\n\n\t<span class="token keyword">public</span> <span class="token function">PSI6000</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap <span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap map<span class="token punctuation">,</span> String name<span class="token punctuation">,</span> Number value<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tmap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t\t<span class="token keyword">return</span> map<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token annotation punctuation">@Override</span>\n\t<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">process</span><span class="token punctuation">(</span>Exchange exchange<span class="token punctuation">)</span> <span class="token keyword">throws</span> JsonProcessingException<span class="token punctuation">,</span> Exception <span class="token punctuation">{</span>\n\t\tMessage msg <span class="token operator">=</span> exchange<span class="token punctuation">.</span><span class="token function">getIn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tPSI6000DataType doc <span class="token operator">=</span> msg<span class="token punctuation">.</span><span class="token function">getBody</span><span class="token punctuation">(</span>PSI6000DataType<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tObject <span class="token punctuation">[</span><span class="token punctuation">]</span>bundle <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformProcess</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmsg<span class="token punctuation">.</span><span class="token function">setBody</span><span class="token punctuation">(</span>bundle<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\texchange<span class="token punctuation">.</span><span class="token function">setOut</span><span class="token punctuation">(</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">setSpotName</span><span class="token punctuation">(</span>Device device<span class="token punctuation">,</span> WeldLog wl<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tString spotName <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>spotName <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> spotName<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tMetaData md <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MetaData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tmd<span class="token punctuation">.</span><span class="token function">setMetaDataValue</span><span class="token punctuation">(</span><span class="token string">"spotName"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tdevice<span class="token punctuation">.</span><span class="token function">setMetaData</span><span class="token punctuation">(</span>md<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> ProcessWrapper <span class="token function">transformProcess</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tProcessWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ProcessWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tOffsetDateTime odt <span class="token operator">=</span> OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// process</span>\n\t\tProcess process <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Process</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setExternalProcessId</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getProtRecordID</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setProcess</span><span class="token punctuation">(</span>process<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">//values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"curentCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"voltageCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"forceCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getForceCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> MeasurementsWrapper <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tMeasurementsWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MeasurementsWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"$_time"</span><span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wearPerCent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWearPerCent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"measureState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMeasureState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceStateAdd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceStateAdd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceRepeat"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceRepeat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorMode"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorMode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"ilsts"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIlsts</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"phaStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPhaStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"t_iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tActualStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTActualStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "partIdentString",</span>\n\t\t<span class="token comment">// wl.getPartIdentString());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tipDressCounter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTipDressCounter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"electrodeNo"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getElectrodeNo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForceSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThicknessSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThicknessSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGpSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGpSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSpotWithSg"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSpotWithSg</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorTemp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorTemp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForce"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForce</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThickness"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThickness</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGc"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGc</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspJunction"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspJunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspMax"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspMax</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaActual"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaActual</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaMinDemand"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaMinDemand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSplashTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSplashTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"nuggetDiameter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNuggetDiameter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"usp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"normingTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNormingTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStartTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStartTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"returnToConstantCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReturnToConstantCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"declineUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getDeclineUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"offsetUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getOffsetUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"triggerTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTriggerTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentReferenceValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentReferenceValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorActValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorActValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"thresholdStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getThresholdStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wldEffectStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWldEffectStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirExpulsionTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirExpulsionTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppRefCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppRefCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppActCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppActCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP161</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP162</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP163</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_4"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP164</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_5"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP165</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_6"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP326</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_7"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP167</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_8"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP168</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_9"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP169</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_10"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1610</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_11"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1611</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_12"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3212</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_13"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1613</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_14"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1614</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_15"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1615</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_16"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1616</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_17"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1617</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_18"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3218</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrModeOff"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrModeOff</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"reweldActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReweldActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "weldspotRefIdent",</span>\n\t\t<span class="token comment">// wl.getWeldspotRefIdent());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Torque_Gp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgTorqueGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Force_Corr"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceCorr</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Weldspot_Geo_Wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWeldspotGeoWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Wear_Length"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWearLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Beam_UpArching"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgBeamUpArching</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<h1>Summary</h1>\n<p>It takes a while to understand the involved software components. Yet, once the set up is running, it gets much easier to adapt it to another Use Case. And another. The pattern of wiring protocols and transforming the payload is very similar. The involved frameworks are powerful enough to support many Use Cases. This article is supposed to show that there are simple possibilities to transform transport protocols and payloads, so that you can focus on addressing functional challenges.</p>\n',url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5),tags:["use cases"],prev:{url:"/blog/2018/1/26/New-website",title:"Updated Website"},next:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Transform-PPMP-with-camel",content:'<p>The Production Performance Management Protocol (PPMP) is a simple structure to send out machine data. Unide, as its hosting project, is supposed to provide exemplary implementations.</p>\n<p>We have already published <a href="https://github.com/eclipse/unide/tree/master/servers/rest">a REST server</a>, <a href="https://github.com/eclipse/unide.java">java-</a> and <a href="https://github.com/eclipse/unide.python">python-</a> bindings and an <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">html5-client</a>. But how are these implementations used in real life?</p>\n<h1>The Challenge</h1>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Welding robots" title="BMW plant, spot welding" src="/unide/images/blog/Transform-PPMP-with-camel-welding.jpg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>In the automotive industry, <a href="https://en.wikipedia.org/wiki/Spot_welding">welding spots</a> are crucial for the quality of a car and the security of the passenger. In modern production lines, hundreds of welding spots have to be precisely set in a single shift. In order to reduce product rework, scrap, destructible tests and machine downtime, the quality should be monitored consistently. That\'s what special welding controller in machines do. Unfortunately, this data is often only used locally, for a short period of time and in proprietary formats. Just enough to determine the immediate process outcome. In that case, further opportunities of analysing the information are not taken. With the continuous increase in complexity, price and time pressure, the demand for further processing and optimization grows. The data could be used to prevent or even predict maintenance or just store the data in long time archives in case of legal disputes.</p>\n<p>One prerequisite for such connectivity is the hardware and its connectivity. Older generations of welding controllers can only be accessed with proprietary stacks (like the <a href="https://www.boschrexroth.com/en/xc/products/product-groups/welding-technology/controllers-with-power-section/mf-system-psi6000/index">PSI 6000</a>) whereas newer generations (like the <a href="https://www.boschrexroth.com/en/xc/company/press/index2-29696">PRC 7000</a>) are much more flexible in terms of networking and communication. In general, there are two aspects that make up the communication: the transport protocol and the structure of the payload. This is similar to our daily life: if you want to chat with your friends, you need to use the same messenger or communication technology (phone, email) and you need speak the same language (English, German etc.).</p>\n<p>In the following sections, let\'s assume we need to transform the transport protocol as well as the payload. The data is generated by a welding controller and should be passed to <a href="https://unide.eclipse.org">the unide REST server</a> for persisting it in a dedicated timeseries database.</p>\n<h1>The Approach</h1>\n<p>We want to find a way to receive the data, transform it into PPMP and store it into a database in our <a href="https://unide.eclipse.org">REST Server</a>.</p>\n<p>First, we need to understand which interfaces the controller has, which communication protocol is used, and how the payload would be interpreted. In the case of the PSI 6000, it was configured to publish the quality data to a <a href="https://de.wikipedia.org/wiki/MQTT">mqtt</a> message broker (here: <a href="https://mosquitto.org/">Eclipse mosquitto</a>). We don\'t have an extensive documentation of the payload, but we can look at samples of it (some Curve data shortened at the end):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"Name"</span><span class="token operator">:</span> <span class="token string">"WeldLog/UIR Testrack 24/"</span><span class="token punctuation">,</span>\n  <span class="token property">"WeldTimer"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n  <span class="token property">"TimeStamp"</span><span class="token operator">:</span> <span class="token string">"2018-01-17T10:41:00.0008436+01:00"</span><span class="token punctuation">,</span>\n  <span class="token property">"OutputFormat"</span><span class="token operator">:</span> <span class="token string">"JSON"</span><span class="token punctuation">,</span>\n  <span class="token property">"Message"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n    <span class="token property">"WeldLog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n      <span class="token property">"protRecord_ID"</span><span class="token operator">:</span> <span class="token number">734827</span><span class="token punctuation">,</span>\n      <span class="token property">"dateTime"</span><span class="token operator">:</span> <span class="token string">"2018-01-15T16:52:32.09"</span><span class="token punctuation">,</span>\n      <span class="token property">"timerName"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n      <span class="token property">"progNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"spotName"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"wear"</span><span class="token operator">:</span> <span class="token number">8312480</span><span class="token punctuation">,</span>\n      <span class="token property">"wearPerCent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"measureState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"powerState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceStateAdd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceRepeat"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorMode"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemandStd"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"ilsts"</span><span class="token operator">:</span> <span class="token number">13.14</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand1"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation1"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand2"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual2"</span><span class="token operator">:</span> <span class="token number">13.16</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation2"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand3"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation3"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"phaStd"</span><span class="token operator">:</span> <span class="token number">24.96</span><span class="token punctuation">,</span>\n      <span class="token property">"pha1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"pha2"</span><span class="token operator">:</span> <span class="token number">24.64</span><span class="token punctuation">,</span>\n      <span class="token property">"pha3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"t_iDemandStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"tActualStd"</span><span class="token operator">:</span> <span class="token number">878</span><span class="token punctuation">,</span>\n      <span class="token property">"partIdentString"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"tipDressCounter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"electrodeNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForceSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThicknessSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGpSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSpotWithSg"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorCurrent"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorTemp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForce"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThickness"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGc"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspJunction"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspMax"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaActual"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaMinDemand"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSplashTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"nuggetDiameter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"usp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"normingTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStartTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"returnToConstantCurrent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"declineUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"offsetUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"currentFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"triggerTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrRegulationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageActualValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageRefValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"currentActualValue"</span><span class="token operator">:</span> <span class="token number">13.17</span><span class="token punctuation">,</span>\n      <span class="token property">"currentReferenceValue"</span><span class="token operator">:</span> <span class="token number">13.95</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeActualValue"</span><span class="token operator">:</span> <span class="token number">876</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeRefValue"</span><span class="token operator">:</span> <span class="token number">760</span><span class="token punctuation">,</span>\n      <span class="token property">"energyActualValue"</span><span class="token operator">:</span> <span class="token number">395.1261</span><span class="token punctuation">,</span>\n      <span class="token property">"energyRefValue"</span><span class="token operator">:</span> <span class="token number">342</span><span class="token punctuation">,</span>\n      <span class="token property">"powerActualValue"</span><span class="token operator">:</span> <span class="token number">395.133</span><span class="token punctuation">,</span>\n      <span class="token property">"powerRefValue"</span><span class="token operator">:</span> <span class="token number">449.35</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceActualValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceRefValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthActualValue"</span><span class="token operator">:</span> <span class="token number">25.02</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthRefValue"</span><span class="token operator">:</span> <span class="token number">26.19</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorActValue"</span><span class="token operator">:</span> <span class="token number">55</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"thresholdStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"wldEffectStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uipActualValue"</span><span class="token operator">:</span> <span class="token number">126</span><span class="token punctuation">,</span>\n      <span class="token property">"uipRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirExpulsionTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMeasuringActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirRegulationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppRefCntValue"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppActCntValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_1"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_2"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_3"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_4"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_5"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_6"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_7"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_8"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_9"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_10"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_11"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_12"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_13"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_14"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_15"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_16"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_17"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_18"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"uipMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfActualValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrModeOff"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"reweldActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"weldspotRefIdent"</span><span class="token operator">:</span> <span class="token string">"UIR_PART"</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Torque_Gp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Force_Corr"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Weldspot_Geo_Wear"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Wear_Length"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Beam_UpArching"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"CurrentCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">11621</span><span class="token punctuation">,</span>\n        <span class="token number">15434</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"VoltageCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">39</span><span class="token punctuation">,</span>\n        <span class="token number">29</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"ForceCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>That\'s already very detailed, but it\'s unclear which device / welding spot the data comes from and what the timing of the curves was. Let\'s get some more structure in with PPMP!</p>\n<p>In PPMP, we have the option to differentiate between discrete manufacturing data (MES - part produced) by using the <a href="/unide/specification/measurement-message">measurement-message</a> and detailed process data by using the <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>. In the welding payload, that\'s all combined in one message. So we also want to split this payload into two.</p>\n<h2>Introducing Apache Camel</h2>\n<div class="card figure is-pulled-left">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Apache Camel" title="Apache Camel" src="/unide/images/blog/Transform-PPMP-with-camel-camel.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tApache Camel, <a href="https://www.apache.org/licenses/LICENSE-2.0">(Apache&nbsp;License&nbsp;2.0)</a>\n\t</div>\n</div>\n<p><a href="https://en.wikipedia.org/wiki/Apache_Camel">Apache Camel</a> is a java-based Open Source framework, that can transform and route data. It supports most of the <a href="https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns">Enterprise Integration Patterns</a> and hundreds(!) of <a href="http://camel.apache.org/components.html">connectors / components</a>. Think of it as an extensive transformation and workflow automation engine. In fact, it\'s so powerful and versatile, that it unfortunately doesn\'t come with a visual user interface or a plug-and-play installer. Luckily, for everyone who doesn\'t happen to be a java expert, there\'s also an xml configuration (via <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">spring xml</a>). And that\'s mostly all we need!</p>\n<h2>Transforming the Communication Protocol</h2>\n<p>We will use Spring XML to configure Apache Camel. The workflow in Camel are called <code>&lt;routes&gt;</code>. So let\'s create a route that transforms our mqtt to REST protocol:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>That\'s it! A <code>&lt;route&gt;</code> that reads<code>&lt;from&gt;</code> mqtt and forwards <code>&lt;to&gt;</code> http. Not so difficult, is it? We could use many of the other <a href="http://camel.apache.org/components.html">connectors / components</a> in the example above as well to transform from/to different protocols.</p>\n<p>But wait! The welding payload above was not PPMP. So we also need to normalize the payload.</p>\n<h2>Normalizing the Payload</h2>\n<p>Now that we can easily convert protocols, let\'s address the structure of the payload. Overall, we want to have a workflow that looks as described in the diagram below:</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="data workflow" title="data workflow" src="/unide/images/blog/Transform-PPMP-with-camel-1.svg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tWorkflow to extract the data from controller, convert it and send the data to the cloud application\n\t</div>\n</div>\n<p>The extra steps here are:</p>\n<ol>\n<li>transform the PSI 6000 JSON String payload to a java object</li>\n<li>transform the PSI 6000 java object to two PPMP-java objects (<a href="/unide/specification/measurement-message">measurement-message</a> and <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>)</li>\n<li>split up the two PPMP objects</li>\n<li>route the objects individually</li>\n<li>transform each PPMP object back to a String</li>\n</ol>\n<h3>Create the PSI 6000 Java Object</h3>\n<p>Luckily, there are helpers for transforming json (or xml) to plain old java objects (POJOs). We are using <a href="http://www.jsonschema2pojo.org/">jsonschema2pojo</a> to convert the above json sample to POJOs with Jackson 2.x annotation. I name the resulting data type class <code>PSI6000DataType</code> and organize it in the package <code>org.eclipse.iot.unide.integrators</code>. Based on the given testdata, jsonschema2pojo cannot fully deduct all attribute types correctly. In order to allow floating point values, we would rename all <code>Integer</code> and <code>Object</code> types to <code>Number</code> in the WeldLog.java file. Also in the same file, we would change the type of the <code>dateTime</code> field from String to <code>LocalDateTime</code> to be more accurate:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token annotation punctuation">@JsonProperty</span><span class="token punctuation">(</span><span class="token string">"dateTime"</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonSerialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeSerializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonDeserialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeDeserializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token keyword">private</span> LocalDateTime dateTime<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>For that, we also need to include the respective imports:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonDeserialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonSerialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>deser<span class="token punctuation">.</span>LocalDateTimeDeserializer<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>ser<span class="token punctuation">.</span>LocalDateTimeSerializer<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>and adjust the getter (<code>getDateTime()</code>), setter (<code>setDateTime()</code>) and the type in the constructor (<code>public WeldLog(...)</code>) accordingly.</p>\n<p>Camel will be able to transform (&quot;<em>unmarshal</em>&quot;) this datatype from a string to a POJO after adding the definition to the above Spring XML:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Use unide.java binding for PPMP Java Objects</h3>\n<p>For eventually transforming the PPMP objects back to String (&quot;<em>marshal</em>&quot;), we can make use of the <a href="https://github.com/eclipse/unide.java">unide PPMP java binding</a>. Just adjust the dataFormats section of the Spring XML so that it reads:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> \n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Create the Workflow</h3>\n<p>In order to better structure data flow, we use multiple <code>&lt;route&gt;</code>-s: one for retrieving the data and two more after the split of the payload. They are connected via the virtual camel protocol &quot;<em>direct</em>&quot;. In the following Spring XML, you can also find some <code>&lt;log&gt;</code> points and additional steps to set http header (<code>&lt;setHeader&gt;</code>) for posting to the unide server:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>bean</span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span> <span class="token attr-name">autoStartup</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>unmarshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Type<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>application/json; charset=utf-8<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>CamelHttpMethod<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>POST<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>done<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>{"result": true }<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[0]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId measurement: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>measurement sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[1]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId process: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/process?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>process sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>You might have noticed that we have not yet discussed one important item in this workflow: how do we actually transform the payload from one format to another?</p>\n<h3>Transforming from PSI 6000 POJO to PPMP POJOs</h3>\n<p>One thing that we\'ll hardwire as java code is the transformation from the source to the target structure. The same functionality could be achieved with scripting components (e.g. <a href="http://camel.apache.org/groovy.html">groovy</a>, but that would be less powerful and worse performance. Since we don\'t expect the format to change but mostly the workflow or endpoints, implementing a java bean is not too much effort. Here\'s how:<br>\nApache Camel offers a <code>Processor</code> interface that can be used to override the <code>process()</code> function. This function receives the complete message (<code>exchange</code>) and can modify it in any way. Since we have created the PSI 6000 Java Object already and want to produce PPMP java objects, the logic is mostly about creating the child objects and wiring the suitable getter to corresponding setter.</p>\n<pre class="language-java"><code class="language-java"><span class="token keyword">package</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>integrators<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>OffsetDateTime<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>ZoneOffset<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Arrays<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>LinkedList<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Exchange<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Message<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Processor<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>Device<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>MetaData<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>MeasurementsWrapper<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Process<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>ProcessWrapper<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>core<span class="token punctuation">.</span>JsonProcessingException<span class="token punctuation">;</span>\n\n<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PSI6000</span> <span class="token keyword">implements</span> <span class="token class-name">Processor</span> <span class="token punctuation">{</span>\n\n\t<span class="token keyword">public</span> <span class="token function">PSI6000</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap <span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap map<span class="token punctuation">,</span> String name<span class="token punctuation">,</span> Number value<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tmap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t\t<span class="token keyword">return</span> map<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token annotation punctuation">@Override</span>\n\t<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">process</span><span class="token punctuation">(</span>Exchange exchange<span class="token punctuation">)</span> <span class="token keyword">throws</span> JsonProcessingException<span class="token punctuation">,</span> Exception <span class="token punctuation">{</span>\n\t\tMessage msg <span class="token operator">=</span> exchange<span class="token punctuation">.</span><span class="token function">getIn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tPSI6000DataType doc <span class="token operator">=</span> msg<span class="token punctuation">.</span><span class="token function">getBody</span><span class="token punctuation">(</span>PSI6000DataType<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tObject <span class="token punctuation">[</span><span class="token punctuation">]</span>bundle <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformProcess</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmsg<span class="token punctuation">.</span><span class="token function">setBody</span><span class="token punctuation">(</span>bundle<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\texchange<span class="token punctuation">.</span><span class="token function">setOut</span><span class="token punctuation">(</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">setSpotName</span><span class="token punctuation">(</span>Device device<span class="token punctuation">,</span> WeldLog wl<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tString spotName <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>spotName <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> spotName<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tMetaData md <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MetaData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tmd<span class="token punctuation">.</span><span class="token function">setMetaDataValue</span><span class="token punctuation">(</span><span class="token string">"spotName"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tdevice<span class="token punctuation">.</span><span class="token function">setMetaData</span><span class="token punctuation">(</span>md<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> ProcessWrapper <span class="token function">transformProcess</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tProcessWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ProcessWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tOffsetDateTime odt <span class="token operator">=</span> OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// process</span>\n\t\tProcess process <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Process</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setExternalProcessId</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getProtRecordID</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setProcess</span><span class="token punctuation">(</span>process<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">//values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"curentCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"voltageCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"forceCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getForceCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> MeasurementsWrapper <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tMeasurementsWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MeasurementsWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"$_time"</span><span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wearPerCent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWearPerCent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"measureState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMeasureState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceStateAdd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceStateAdd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceRepeat"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceRepeat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorMode"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorMode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"ilsts"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIlsts</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"phaStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPhaStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"t_iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tActualStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTActualStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "partIdentString",</span>\n\t\t<span class="token comment">// wl.getPartIdentString());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tipDressCounter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTipDressCounter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"electrodeNo"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getElectrodeNo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForceSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThicknessSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThicknessSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGpSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGpSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSpotWithSg"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSpotWithSg</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorTemp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorTemp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForce"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForce</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThickness"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThickness</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGc"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGc</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspJunction"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspJunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspMax"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspMax</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaActual"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaActual</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaMinDemand"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaMinDemand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSplashTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSplashTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"nuggetDiameter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNuggetDiameter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"usp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"normingTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNormingTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStartTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStartTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"returnToConstantCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReturnToConstantCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"declineUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getDeclineUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"offsetUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getOffsetUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"triggerTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTriggerTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentReferenceValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentReferenceValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorActValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorActValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"thresholdStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getThresholdStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wldEffectStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWldEffectStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirExpulsionTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirExpulsionTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppRefCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppRefCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppActCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppActCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP161</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP162</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP163</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_4"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP164</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_5"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP165</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_6"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP326</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_7"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP167</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_8"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP168</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_9"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP169</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_10"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1610</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_11"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1611</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_12"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3212</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_13"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1613</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_14"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1614</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_15"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1615</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_16"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1616</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_17"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1617</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_18"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3218</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrModeOff"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrModeOff</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"reweldActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReweldActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "weldspotRefIdent",</span>\n\t\t<span class="token comment">// wl.getWeldspotRefIdent());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Torque_Gp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgTorqueGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Force_Corr"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceCorr</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Weldspot_Geo_Wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWeldspotGeoWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Wear_Length"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWearLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Beam_UpArching"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgBeamUpArching</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<h1>Summary</h1>\n<p>It takes a while to understand the involved software components. Yet, once the set up is running, it gets much easier to adapt it to another Use Case. And another. The pattern of wiring protocols and transforming the payload is very similar. The involved frameworks are powerful enough to support many Use Cases. This article is supposed to show that there are simple possibilities to transform transport protocols and payloads, so that you can focus on addressing functional challenges.</p>\n',url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5),tags:["use cases"],prev:{url:"/blog/2018/1/26/New-website",title:"Updated Website"},next:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/2/11/index.html b/blog/2018/2/11/index.html
index 9ca9ac9..7a062f4 100644
--- a/blog/2018/2/11/index.html
+++ b/blog/2018/2/11/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/2/13/grinding-machine-scenario/index.html b/blog/2018/2/13/grinding-machine-scenario/index.html
index cf75ece..219ee54 100644
--- a/blog/2018/2/13/grinding-machine-scenario/index.html
+++ b/blog/2018/2/13/grinding-machine-scenario/index.html
@@ -192,6 +192,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"grinding-machine-scenario",content:'<h2>Abstract</h2>\n<p>In this blog post we present a real world condition monitoring scenario used in<br>\nthe <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, where Unide and<br>\nPPMP plays a crucial role. Moreover, we also provide a code repository and<br>\ninstructions so that you can recreate the scenario in your own computer and<br>\nlearn about its components and the communication with each other.</p>\n<h2>Introduction</h2>\n<p>In the context of the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, a<br>\nreal world condition monitoring scenario has been recreated, in which a<br>\ngrinding machine is being continuously monitored allowing to have real time<br>\nhealth checks and prevent unexpected failures.</p>\n<p>This scenario consists of the following building blocks: device, gateway,<br>\nbackend. The communication between them happens seamlessly thanks to the<br>\nProduction Performance management Protocol (PPMP).</p>\n<ul>\n<li>\n<p>The device, i.e. the grinding machine, has been retrofitted with an<br>\nacceleration sensor attached to one of its critical components. The data<br>\nprovided by this sensor is routed to the gateway in the form of a <a href="https://www.eclipse.org/unide/specification/measurement-message#messageDetail">PPMP<br>\nMeasurement Message</a>.</p>\n</li>\n<li>\n<p>The gateway receives the raw acceleration measurements, calculates some<br>\nstatistical characteristics and and applies some machine learning techniques<br>\nto them in order to evaluate the condition of the grinding machine. Then both<br>\nthe statistical values and the condition are routed to the backend, again in<br>\nthe form of a PPMP Measurement Message.</p>\n</li>\n<li>\n<p>The backend, usually in the cloud, is any component that &quot;speaks PPMP&quot; and<br>\nperforms meaningful operations on the incoming messages. Most frequently it<br>\nis responsible for storing the arriving data and making it available to apps<br>\nthat want to consume it. Common responsibilities of these apps are the<br>\nrepresentation or display of the data (e.g. dashboards), or workflows<br>\nmanagement (e.g. the grinding machine is in bad condition and an inspection<br>\nmust be carried out).</p>\n<p>The backend can be swapped effortless with any entity adhering to PPMP standard.<br>\nIn the Eclipse PPM Testbed at least two different backends have been used:</p>\n<ul>\n<li>One directly based on <a href="https://github.com/eclipse/unide">Unide</a></li>\n<li>One based on <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a>.</li>\n</ul>\n</li>\n</ul>\n<h2>Hands-on demonstration</h2>\n<p>In order to make this scenario more hands-on and interesting, within the<br>\n<a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement">Production Performance Management Testbed repository</a> project in Github, we<br>\nhave set up a <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/grinding-machine">subproject for the grinding machine scenario</a>. There you can<br>\nfind a thorough description and code to simulate the device and the gateway,<br>\nand route messages to a given backend. The only requirements are git and conda<br>\n(the easiest way to get conda is to <a href="https://conda.io/miniconda.html">install miniconda</a>).</p>\n<p>So, let\'s get started! First of all, open your terminal and clone the<br>\nrepository:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement eclipse-testbed-ppm\n$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>Then move to the grinding machine subproject directory:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>In that folder you will see two subfolders. The first one<br>\n<code>unide-grinding-machine</code> contains a Python program that simulates grinding<br>\nmachine and the second one <code>unide-grinding-machine-gateway</code> simulates the<br>\ngateway.</p>\n<h3>Grinding Machine simulator</h3>\n<p>Let\'s start with the first component. First <code>cd</code> to <code>unide-grinding-machine</code><br>\nand then create the conda environment:</p>\n<pre class="language-bash"><code class="language-bash">$ conda <span class="token function">env</span> create --prefix<span class="token operator">=</span>env\n</code></pre>\n<p>And then in order to use this environment, we need to activate it.</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">source</span> activate <span class="token function">env</span>    <span class="token comment"># or in windows: activate env </span>\n</code></pre>\n<p>Run <code>unide-grinding-machine -h</code> to get familiar with the CLI. With this<br>\nexecutable we can generate some machine grinding data, and (for the moment)<br>\nprint messages to the console. To do so, run <code>unide-grinding-machine send random</code> and you should get a large message on the console. This is the PPMP<br>\nmessage ought to be sent to the gateway.</p>\n<p>We don\'t have a gateway so far, but don\'t worry, we will get to that in a<br>\nminute. Don\'t close this console!</p>\n<h3>Gateway simulator</h3>\n<p>Open a new console, and similarly to the previous point, first <code>cd</code> to<br>\n<code>unide-grinding-machine-gateway</code>, create the environment (<code>conda env create --prefix=env</code>) and activate it (<code>source activate env</code>).</p>\n<p>The run the command <code>unide-grinding-machine-gateway -h</code> to test that everything<br>\nis in place. You should get the CLI documentation.</p>\n<p>Now, let\'s fire up the gateway by calling <code>unide-grinding-machine-gateway start_server</code>, and a message like this should show up:</p>\n<pre class="language-bash"><code class="language-bash">Running <span class="token operator">&lt;</span>unide_grinding_machine_gateway.server.App object at 0x<span class="token punctuation">..</span><span class="token punctuation">..</span>.<span class="token operator">></span>\nListening on http://127.0.0.1:5000\nPress Ctrl-C to stop<span class="token punctuation">..</span>.\n</code></pre>\n<p>We are getting closer. Leave the gateway running.</p>\n<h3>Communication Device-Gateway</h3>\n<p>Let\'s go back to the previous console where we had the <code>unide-grinding-machine</code><br>\nenvironment and  call again the <code>unide-grinding-machine</code> program, but this time<br>\npassing the as an argument where the gateway is listening to messages.</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000\n</code></pre>\n<p>If you take peek at the gateway output, you should see new information printed<br>\nout, which is a PPMP message containing the result of the classification<br>\nalgorithms applied to the device data we just sent to it.</p>\n<p>We are getting somewhere! But still, it is not extremely useful to print some<br>\ncharacters into a console, is it?</p>\n<h3>Communication Device-Gateway-Backend</h3>\n<p>There is only a small but relevant point missing: the routing from the gateway<br>\nto the backend. We need a backend and the Unide project provides a service that<br>\ncan be used as a playground for these purposes. So let\'s restart the gateway,<br>\nthis time passing the Unide endpoint:</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine-gateway start_server --endpoint<span class="token operator">=</span>https://unide.eclipse.org/rest/v2\n</code></pre>\n<p>Now we can use the <code>unide-grinding-machine</code> to send raw data to the gateway<br>\nwhich in turn sends its results to the backend.  In order to be able to<br>\nidentify this data later, we are going to define a proper device ID (argument<br>\n<code>--device-id</code>), and also tell it to send data once each 10 seconds (argument<br>\n<code>--period</code>):</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000 --device-id<span class="token operator">=</span>IoT-000028--3 --period<span class="token operator">=</span>10\n</code></pre>\n<p>Once started, a continuous flow of data is pumped through each component until<br>\nit reaches the backend, allowing us to use the applications that consume this<br>\ndata. For instance, the basic backend provided by Unide offers a <a href="https://grafana.com/">Grafana</a> based<br>\ndashboard that offers live monitoring of the statistical values calculated in the<br>\ngateway:</p>\n<p><img src="/unide/images/blog/grinding-machine-grafana-dashboard.png" alt="Grafana based dashboard monitoring grinding machine"></p>\n<p>If instead of that we use the the <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a> based backend,<br>\nwe can see a different and richer dashboard: charts, 3D models, list of<br>\nmaintenance events, device master data and the Activity Stream, a place where<br>\ndifferent parties can exchange information related to the grinding machine:</p>\n<p><img src="/unide/images/blog/grinding-machine-ce4iot-dashboard.png" alt="CONTACT Elements for IoT Dashboard"></p>\n',url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7),tags:["use cases"],prev:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"},next:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"grinding-machine-scenario",content:'<h2>Abstract</h2>\n<p>In this blog post we present a real world condition monitoring scenario used in<br>\nthe <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, where Unide and<br>\nPPMP plays a crucial role. Moreover, we also provide a code repository and<br>\ninstructions so that you can recreate the scenario in your own computer and<br>\nlearn about its components and the communication with each other.</p>\n<h2>Introduction</h2>\n<p>In the context of the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, a<br>\nreal world condition monitoring scenario has been recreated, in which a<br>\ngrinding machine is being continuously monitored allowing to have real time<br>\nhealth checks and prevent unexpected failures.</p>\n<p>This scenario consists of the following building blocks: device, gateway,<br>\nbackend. The communication between them happens seamlessly thanks to the<br>\nProduction Performance management Protocol (PPMP).</p>\n<ul>\n<li>\n<p>The device, i.e. the grinding machine, has been retrofitted with an<br>\nacceleration sensor attached to one of its critical components. The data<br>\nprovided by this sensor is routed to the gateway in the form of a <a href="https://www.eclipse.org/unide/specification/measurement-message#messageDetail">PPMP<br>\nMeasurement Message</a>.</p>\n</li>\n<li>\n<p>The gateway receives the raw acceleration measurements, calculates some<br>\nstatistical characteristics and and applies some machine learning techniques<br>\nto them in order to evaluate the condition of the grinding machine. Then both<br>\nthe statistical values and the condition are routed to the backend, again in<br>\nthe form of a PPMP Measurement Message.</p>\n</li>\n<li>\n<p>The backend, usually in the cloud, is any component that &quot;speaks PPMP&quot; and<br>\nperforms meaningful operations on the incoming messages. Most frequently it<br>\nis responsible for storing the arriving data and making it available to apps<br>\nthat want to consume it. Common responsibilities of these apps are the<br>\nrepresentation or display of the data (e.g. dashboards), or workflows<br>\nmanagement (e.g. the grinding machine is in bad condition and an inspection<br>\nmust be carried out).</p>\n<p>The backend can be swapped effortless with any entity adhering to PPMP standard.<br>\nIn the Eclipse PPM Testbed at least two different backends have been used:</p>\n<ul>\n<li>One directly based on <a href="https://github.com/eclipse/unide">Unide</a></li>\n<li>One based on <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a>.</li>\n</ul>\n</li>\n</ul>\n<h2>Hands-on demonstration</h2>\n<p>In order to make this scenario more hands-on and interesting, within the<br>\n<a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement">Production Performance Management Testbed repository</a> project in Github, we<br>\nhave set up a <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/grinding-machine">subproject for the grinding machine scenario</a>. There you can<br>\nfind a thorough description and code to simulate the device and the gateway,<br>\nand route messages to a given backend. The only requirements are git and conda<br>\n(the easiest way to get conda is to <a href="https://conda.io/miniconda.html">install miniconda</a>).</p>\n<p>So, let\'s get started! First of all, open your terminal and clone the<br>\nrepository:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement eclipse-testbed-ppm\n$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>Then move to the grinding machine subproject directory:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>In that folder you will see two subfolders. The first one<br>\n<code>unide-grinding-machine</code> contains a Python program that simulates grinding<br>\nmachine and the second one <code>unide-grinding-machine-gateway</code> simulates the<br>\ngateway.</p>\n<h3>Grinding Machine simulator</h3>\n<p>Let\'s start with the first component. First <code>cd</code> to <code>unide-grinding-machine</code><br>\nand then create the conda environment:</p>\n<pre class="language-bash"><code class="language-bash">$ conda <span class="token function">env</span> create --prefix<span class="token operator">=</span>env\n</code></pre>\n<p>And then in order to use this environment, we need to activate it.</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">source</span> activate <span class="token function">env</span>    <span class="token comment"># or in windows: activate env </span>\n</code></pre>\n<p>Run <code>unide-grinding-machine -h</code> to get familiar with the CLI. With this<br>\nexecutable we can generate some machine grinding data, and (for the moment)<br>\nprint messages to the console. To do so, run <code>unide-grinding-machine send random</code> and you should get a large message on the console. This is the PPMP<br>\nmessage ought to be sent to the gateway.</p>\n<p>We don\'t have a gateway so far, but don\'t worry, we will get to that in a<br>\nminute. Don\'t close this console!</p>\n<h3>Gateway simulator</h3>\n<p>Open a new console, and similarly to the previous point, first <code>cd</code> to<br>\n<code>unide-grinding-machine-gateway</code>, create the environment (<code>conda env create --prefix=env</code>) and activate it (<code>source activate env</code>).</p>\n<p>The run the command <code>unide-grinding-machine-gateway -h</code> to test that everything<br>\nis in place. You should get the CLI documentation.</p>\n<p>Now, let\'s fire up the gateway by calling <code>unide-grinding-machine-gateway start_server</code>, and a message like this should show up:</p>\n<pre class="language-bash"><code class="language-bash">Running <span class="token operator">&lt;</span>unide_grinding_machine_gateway.server.App object at 0x<span class="token punctuation">..</span><span class="token punctuation">..</span>.<span class="token operator">></span>\nListening on http://127.0.0.1:5000\nPress Ctrl-C to stop<span class="token punctuation">..</span>.\n</code></pre>\n<p>We are getting closer. Leave the gateway running.</p>\n<h3>Communication Device-Gateway</h3>\n<p>Let\'s go back to the previous console where we had the <code>unide-grinding-machine</code><br>\nenvironment and  call again the <code>unide-grinding-machine</code> program, but this time<br>\npassing the as an argument where the gateway is listening to messages.</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000\n</code></pre>\n<p>If you take peek at the gateway output, you should see new information printed<br>\nout, which is a PPMP message containing the result of the classification<br>\nalgorithms applied to the device data we just sent to it.</p>\n<p>We are getting somewhere! But still, it is not extremely useful to print some<br>\ncharacters into a console, is it?</p>\n<h3>Communication Device-Gateway-Backend</h3>\n<p>There is only a small but relevant point missing: the routing from the gateway<br>\nto the backend. We need a backend and the Unide project provides a service that<br>\ncan be used as a playground for these purposes. So let\'s restart the gateway,<br>\nthis time passing the Unide endpoint:</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine-gateway start_server --endpoint<span class="token operator">=</span>https://unide.eclipse.org/rest/v2\n</code></pre>\n<p>Now we can use the <code>unide-grinding-machine</code> to send raw data to the gateway<br>\nwhich in turn sends its results to the backend.  In order to be able to<br>\nidentify this data later, we are going to define a proper device ID (argument<br>\n<code>--device-id</code>), and also tell it to send data once each 10 seconds (argument<br>\n<code>--period</code>):</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000 --device-id<span class="token operator">=</span>IoT-000028--3 --period<span class="token operator">=</span>10\n</code></pre>\n<p>Once started, a continuous flow of data is pumped through each component until<br>\nit reaches the backend, allowing us to use the applications that consume this<br>\ndata. For instance, the basic backend provided by Unide offers a <a href="https://grafana.com/">Grafana</a> based<br>\ndashboard that offers live monitoring of the statistical values calculated in the<br>\ngateway:</p>\n<p><img src="/unide/images/blog/grinding-machine-grafana-dashboard.png" alt="Grafana based dashboard monitoring grinding machine"></p>\n<p>If instead of that we use the the <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a> based backend,<br>\nwe can see a different and richer dashboard: charts, 3D models, list of<br>\nmaintenance events, device master data and the Activity Stream, a place where<br>\ndifferent parties can exchange information related to the grinding machine:</p>\n<p><img src="/unide/images/blog/grinding-machine-ce4iot-dashboard.png" alt="CONTACT Elements for IoT Dashboard"></p>\n',url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7),tags:["use cases"],prev:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"},next:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/2/13/index.html b/blog/2018/2/13/index.html
index f5a60fb..795f0b0 100644
--- a/blog/2018/2/13/index.html
+++ b/blog/2018/2/13/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/2/index.html b/blog/2018/2/index.html
index 06f216b..e9d28cd 100644
--- a/blog/2018/2/index.html
+++ b/blog/2018/2/index.html
@@ -74,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7)},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7)},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/3/26/Release-0.2.0/index.html b/blog/2018/3/26/Release-0.2.0/index.html
index 968d714..7e7c569 100644
--- a/blog/2018/3/26/Release-0.2.0/index.html
+++ b/blog/2018/3/26/Release-0.2.0/index.html
@@ -198,6 +198,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Release-0.2.0",content:'<p>Finally, the second version (0.2.0) of the Eclipse unide project is released! The <a href="http://unide.eclipse.org">REST Server on the Testserver</a> has been updated as well.</p>\n<h1>Quick start</h1>\n<h2>Binsa chrome app</h2>\n<p>Download the binsa chrome app from <a href="http://download.eclipse.org/unide/binsa.crx">download page</a>. Open your chrome browser at <a href="chrome://extensions">chrome://extensions</a> and drag the binsa.crx file onto the page. You should be able to see your new chrome app in <a href="chrome://apps">chrome://apps</a></p>\n<h2>REST Server</h2>\n<p>Download the REST server file from <a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/ppmp-server-0.2.0.jar">repo.eclipse.org</a>, create a simple configuration file (e.g. application_conf.json):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">false</span>\n<span class="token punctuation">}</span>\n\n</code></pre>\n<p>and start the server</p>\n<pre class="language-bash"><code class="language-bash">java -jar ppmp-server-0.2.0.jar -conf application_conf.json\n</code></pre>\n<p>Point your browser to <a href="http://localhost:8090">http://localhost:8090</a> and see the servers documentation running on your local server! At this point, PPMP validation (via HTTP POST to <code>/rest/v2/validate</code>) is enabled, but no persistence.</p>\n<p>If you want to send data to the server, a quick way is via <a href="https://www.getpostman.com/">Postman App</a>, which is available as native app or <a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Chrome app</a>. Once installed and started, you can easily use the &quot;Import &gt; Import From Link&quot; feature to get the prepared <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_collection.json">unide.postman_collection.json</a> and the corresponding <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_environment.json">unide.postman_environment</a>. You should now have Machine/Measurement/Process messages and requests prepared in the Collections tab. In order to send, you could extend the URL with &quot;/validate&quot; and hit &quot;Send&quot; button. If you get the response</p>\n<blockquote>\n<p>Ppmp Message of type \'xy\' is valid</p>\n</blockquote>\n<p>the unide REST server works as expected!</p>\n<h1>Persistence</h1>\n<h2>Influx DB</h2>\n<p><a href="https://portal.influxdata.com/downloads">Download</a> the InfluxDB Time-Series Data Storage and unzip or install it on your system. By default, it opens an http port at 8086. In order to make use of it, the configuration file should be modified, e.g. to:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"influxDb"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.url"</span><span class="token operator">:</span> <span class="token string">"http://localhost:8086"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.user"</span><span class="token operator">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.password"</span><span class="token operator">:</span> <span class="token string">"root"</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>After starting the database and the unide REST server, it should be possible to send POST requests to <code>http://localhost:8090/rest/v2</code>. This path receives all message types. To query the database after, use:<br>\n<a href="http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT%20*%20FROM%20%22ppmp_measurements%22">http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT * FROM &quot;ppmp_measurements&quot;</a> or the other databases that are documented on the <a href="http://localhost:8090/#influxdb_schema_design">running server instance</a>, respectively.</p>\n<h2>SQL (timescale, h2)</h2>\n<p>Download the appropriate jdbc driver, e.g. <a href="http://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar">h2-*.jar</a>, modify the configuration file, e.g. for h2:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"sql"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.driver"</span><span class="token operator">:</span> <span class="token string">"org.h2.Driver"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.url"</span><span class="token operator">:</span> <span class="token string">"jdbc:h2:./test"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.user"</span><span class="token operator">:</span> <span class="token string">"sa"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.password"</span><span class="token operator">:</span> <span class="token string">""</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>Start the PPMP Server with the jdbc dependency on the classpath, e.g.:</p>\n<pre class="language-bash"><code class="language-bash">java -cp <span class="token string">"h2-1.4.197.jar;ppmp-server-0.2.0.jar"</span> io.vertx.core.Launcher org.eclipse.iot.unide.server.MainVerticle -conf application.conf\n</code></pre>\n<p>Now, all the data send to the REST server is persisted in the file <code>test.mv.db</code>.<br>\nFor concurrent db actions (reading while writing), use the h2 tcp server instead. h2 is not recommended for production use!</p>\n<h1>Background</h1>\n<h2>Download</h2>\n<p>Available artifacts for download:</p>\n<ul>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-schema/2.0.0/">PPMP Schema v2</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-java-binding/0.2.0/">PPMP java Binding</a></li>\n<li><a href="https://pypi.python.org/packages/d5/af/c90911d1da56a1ed0238338ba01068d43b8cd0137e9ca52b0f52a279f73e/unide_python-0.2.0-py2.py3-none-any.whl#md5=ca67bcd536b3a4015f72f5fa53d36543">PPMP Python Binding</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/">PPMP Server</a></li>\n<li><a href="http://download.eclipse.org/unide/binsa.crx">binsa client chrome app</a></li>\n</ul>\n<p>Source code:</p>\n<ul>\n<li><a href="https://github.com/eclipse/unide/releases/tag/v0.2.0">unide</a></li>\n<li><a href="https://github.com/eclipse/unide.java/releases/tag/v0.2.0">java binding</a></li>\n<li><a href="https://github.com/eclipse/unide.python/releases/tag/v0.2.0">python binding</a></li>\n</ul>\n<h2>Release notes</h2>\n<h3>REST Server improvements (refactoring &amp; persistence)</h3>\n<ul>\n<li>Added persistence to timeseries/postgres db</li>\n<li>Outfactored schema files</li>\n<li>Adjusted maven file</li>\n<li>Added unit tests</li>\n<li>Added documentation &amp; java docs</li>\n<li>Adjusted error handling</li>\n<li>Removed unused code</li>\n<li>Added postman collections</li>\n<li>Added grafana configuration file</li>\n</ul>\n<h3>New HTML5 simulation client</h3>\n<ul>\n<li>Progressive Webapp runs as website (see <a href="https://unide.eclipse.org/binsa">https://unide.eclipse.org/binsa</a>), browser app, native client (via <a href="https://nwjs.io/">nw.js</a>) or app (via <a href="https://cordova.apache.org/">Apache cordova</a>)</li>\n</ul>\n<h3>PPMP JSON Schema files</h3>\n<ul>\n<li>Introduced separate bundle for schemas</li>\n<li>general fixes\n<ul>\n<li>make schema draft-06 compliant</li>\n<li>added \'id\' and \'descriptions\' where applicable</li>\n<li>added \'type\' and \'default\' for enums</li>\n<li>added \'required\' fields where necessary</li>\n<li>made \'additionalProperties\': true explicit for \'metaData\'</li>\n<li>sorted the properties for improved readability</li>\n</ul>\n</li>\n<li>message_schema fixes\n<ul>\n<li>added minItems: 1 to messages</li>\n</ul>\n</li>\n<li>measurement_schema fixes\n<ul>\n<li>completed \'limits\' specification</li>\n<li>added \'patternProperties\' and minProperties detail to \'series\'</li>\n<li>added minItems: 1 to measurements</li>\n</ul>\n</li>\n<li>process_schema fixes\n<ul>\n<li>made \'id\' and \'name\' of a \'program\' mandatory</li>\n<li>fixed \'shutoffValues\', having properties not items</li>\n<li>fixed \'limits\', having properties not items and number values rather than object values as limits</li>\n<li>fixed \'specialValues\' to be an array of specialValue items with \'name\' for indicating the nature, rather than one single object with its keys indicating the nature. Offering optional \'$_time\' tag to be consistent with measurements.</li>\n<li>completed \'series\' definition</li>\n</ul>\n</li>\n</ul>\n<h3>Website</h3>\n<ul>\n<li>Autogenerating PPMP specification from JSON schemas to avoid discrepancies</li>\n<li>Generating UML schemas with plantuml</li>\n<li>Using similar HTML5 stack as simulation client for SPA website</li>\n</ul>\n<h3>Other</h3>\n<ul>\n<li>java and new python bindings in separate github repositories</li>\n</ul>\n',url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4),tags:["releases"],prev:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"},next:{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Release-0.2.0",content:'<p>Finally, the second version (0.2.0) of the Eclipse unide project is released! The <a href="http://unide.eclipse.org">REST Server on the Testserver</a> has been updated as well.</p>\n<h1>Quick start</h1>\n<h2>Binsa chrome app</h2>\n<p>Download the binsa chrome app from <a href="http://download.eclipse.org/unide/binsa.crx">download page</a>. Open your chrome browser at <a href="chrome://extensions">chrome://extensions</a> and drag the binsa.crx file onto the page. You should be able to see your new chrome app in <a href="chrome://apps">chrome://apps</a></p>\n<h2>REST Server</h2>\n<p>Download the REST server file from <a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/ppmp-server-0.2.0.jar">repo.eclipse.org</a>, create a simple configuration file (e.g. application_conf.json):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">false</span>\n<span class="token punctuation">}</span>\n\n</code></pre>\n<p>and start the server</p>\n<pre class="language-bash"><code class="language-bash">java -jar ppmp-server-0.2.0.jar -conf application_conf.json\n</code></pre>\n<p>Point your browser to <a href="http://localhost:8090">http://localhost:8090</a> and see the servers documentation running on your local server! At this point, PPMP validation (via HTTP POST to <code>/rest/v2/validate</code>) is enabled, but no persistence.</p>\n<p>If you want to send data to the server, a quick way is via <a href="https://www.getpostman.com/">Postman App</a>, which is available as native app or <a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Chrome app</a>. Once installed and started, you can easily use the &quot;Import &gt; Import From Link&quot; feature to get the prepared <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_collection.json">unide.postman_collection.json</a> and the corresponding <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_environment.json">unide.postman_environment</a>. You should now have Machine/Measurement/Process messages and requests prepared in the Collections tab. In order to send, you could extend the URL with &quot;/validate&quot; and hit &quot;Send&quot; button. If you get the response</p>\n<blockquote>\n<p>Ppmp Message of type \'xy\' is valid</p>\n</blockquote>\n<p>the unide REST server works as expected!</p>\n<h1>Persistence</h1>\n<h2>Influx DB</h2>\n<p><a href="https://portal.influxdata.com/downloads">Download</a> the InfluxDB Time-Series Data Storage and unzip or install it on your system. By default, it opens an http port at 8086. In order to make use of it, the configuration file should be modified, e.g. to:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"influxDb"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.url"</span><span class="token operator">:</span> <span class="token string">"http://localhost:8086"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.user"</span><span class="token operator">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.password"</span><span class="token operator">:</span> <span class="token string">"root"</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>After starting the database and the unide REST server, it should be possible to send POST requests to <code>http://localhost:8090/rest/v2</code>. This path receives all message types. To query the database after, use:<br>\n<a href="http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT%20*%20FROM%20%22ppmp_measurements%22">http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT * FROM &quot;ppmp_measurements&quot;</a> or the other databases that are documented on the <a href="http://localhost:8090/#influxdb_schema_design">running server instance</a>, respectively.</p>\n<h2>SQL (timescale, h2)</h2>\n<p>Download the appropriate jdbc driver, e.g. <a href="http://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar">h2-*.jar</a>, modify the configuration file, e.g. for h2:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"sql"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.driver"</span><span class="token operator">:</span> <span class="token string">"org.h2.Driver"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.url"</span><span class="token operator">:</span> <span class="token string">"jdbc:h2:./test"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.user"</span><span class="token operator">:</span> <span class="token string">"sa"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.password"</span><span class="token operator">:</span> <span class="token string">""</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>Start the PPMP Server with the jdbc dependency on the classpath, e.g.:</p>\n<pre class="language-bash"><code class="language-bash">java -cp <span class="token string">"h2-1.4.197.jar;ppmp-server-0.2.0.jar"</span> io.vertx.core.Launcher org.eclipse.iot.unide.server.MainVerticle -conf application.conf\n</code></pre>\n<p>Now, all the data send to the REST server is persisted in the file <code>test.mv.db</code>.<br>\nFor concurrent db actions (reading while writing), use the h2 tcp server instead. h2 is not recommended for production use!</p>\n<h1>Background</h1>\n<h2>Download</h2>\n<p>Available artifacts for download:</p>\n<ul>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-schema/2.0.0/">PPMP Schema v2</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-java-binding/0.2.0/">PPMP java Binding</a></li>\n<li><a href="https://pypi.python.org/packages/d5/af/c90911d1da56a1ed0238338ba01068d43b8cd0137e9ca52b0f52a279f73e/unide_python-0.2.0-py2.py3-none-any.whl#md5=ca67bcd536b3a4015f72f5fa53d36543">PPMP Python Binding</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/">PPMP Server</a></li>\n<li><a href="http://download.eclipse.org/unide/binsa.crx">binsa client chrome app</a></li>\n</ul>\n<p>Source code:</p>\n<ul>\n<li><a href="https://github.com/eclipse/unide/releases/tag/v0.2.0">unide</a></li>\n<li><a href="https://github.com/eclipse/unide.java/releases/tag/v0.2.0">java binding</a></li>\n<li><a href="https://github.com/eclipse/unide.python/releases/tag/v0.2.0">python binding</a></li>\n</ul>\n<h2>Release notes</h2>\n<h3>REST Server improvements (refactoring &amp; persistence)</h3>\n<ul>\n<li>Added persistence to timeseries/postgres db</li>\n<li>Outfactored schema files</li>\n<li>Adjusted maven file</li>\n<li>Added unit tests</li>\n<li>Added documentation &amp; java docs</li>\n<li>Adjusted error handling</li>\n<li>Removed unused code</li>\n<li>Added postman collections</li>\n<li>Added grafana configuration file</li>\n</ul>\n<h3>New HTML5 simulation client</h3>\n<ul>\n<li>Progressive Webapp runs as website (see <a href="https://unide.eclipse.org/binsa">https://unide.eclipse.org/binsa</a>), browser app, native client (via <a href="https://nwjs.io/">nw.js</a>) or app (via <a href="https://cordova.apache.org/">Apache cordova</a>)</li>\n</ul>\n<h3>PPMP JSON Schema files</h3>\n<ul>\n<li>Introduced separate bundle for schemas</li>\n<li>general fixes\n<ul>\n<li>make schema draft-06 compliant</li>\n<li>added \'id\' and \'descriptions\' where applicable</li>\n<li>added \'type\' and \'default\' for enums</li>\n<li>added \'required\' fields where necessary</li>\n<li>made \'additionalProperties\': true explicit for \'metaData\'</li>\n<li>sorted the properties for improved readability</li>\n</ul>\n</li>\n<li>message_schema fixes\n<ul>\n<li>added minItems: 1 to messages</li>\n</ul>\n</li>\n<li>measurement_schema fixes\n<ul>\n<li>completed \'limits\' specification</li>\n<li>added \'patternProperties\' and minProperties detail to \'series\'</li>\n<li>added minItems: 1 to measurements</li>\n</ul>\n</li>\n<li>process_schema fixes\n<ul>\n<li>made \'id\' and \'name\' of a \'program\' mandatory</li>\n<li>fixed \'shutoffValues\', having properties not items</li>\n<li>fixed \'limits\', having properties not items and number values rather than object values as limits</li>\n<li>fixed \'specialValues\' to be an array of specialValue items with \'name\' for indicating the nature, rather than one single object with its keys indicating the nature. Offering optional \'$_time\' tag to be consistent with measurements.</li>\n<li>completed \'series\' definition</li>\n</ul>\n</li>\n</ul>\n<h3>Website</h3>\n<ul>\n<li>Autogenerating PPMP specification from JSON schemas to avoid discrepancies</li>\n<li>Generating UML schemas with plantuml</li>\n<li>Using similar HTML5 stack as simulation client for SPA website</li>\n</ul>\n<h3>Other</h3>\n<ul>\n<li>java and new python bindings in separate github repositories</li>\n</ul>\n',url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4),tags:["releases"],prev:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"},next:{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/3/26/index.html b/blog/2018/3/26/index.html
index 48ac0b7..11a3cd0 100644
--- a/blog/2018/3/26/index.html
+++ b/blog/2018/3/26/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/3/index.html b/blog/2018/3/index.html
index 2e2e0c3..c6d1438 100644
--- a/blog/2018/3/index.html
+++ b/blog/2018/3/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/9/4/Template-for-PPMP-transformation/index.html b/blog/2018/9/4/Template-for-PPMP-transformation/index.html
index 87d5c26..c610b08 100644
--- a/blog/2018/9/4/Template-for-PPMP-transformation/index.html
+++ b/blog/2018/9/4/Template-for-PPMP-transformation/index.html
@@ -233,6 +233,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Template-for-PPMP-transformation",content:'<h1>Quick start</h1>\n<p>In <a href="https://www.eclipse.org/unide/blog/2018/2/11/Transform-PPMP-with-camel/">a previous blog post</a>, I have already introduced Apache Camel as a tool to transform to PPMP. In this post, I want to dive a little deeper to get you started with your own transformation.<br>\nYou can find corresponding source code with some transformation examples <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/camel-integrator">in the repository of the Eclipse PPM Testbed</a>. After download or checkout of the project, you can easily package everything necessary for an installation via <a href="https://maven.apache.org/">Apache Maven</a> and java 8+:</p>\n<pre class="language-bash"><code class="language-bash"><span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement.git\n<span class="token function">cd</span> eclipseiot-testbed-productionperformancemanagement\n<span class="token function">cd</span> camel-integrator\nmvn package\n</code></pre>\n<p>After successful build, you should get a zip file at <code>target/camel-integrator-*-assembly.zip</code> with the following content</p>\n<ul>\n<li><code>bin</code><br>\nThe IntegratorStarter* files for Windows and Linux can be used to start the integrator manually. WinServiceInstaller.bat und WinServiceUninstaller.bat can be executed with Admin permissions in Windows to register/unregister this java application as Windows Service called &quot;Integrator Service&quot;.</li>\n<li><code>conf</code><br>\nThis is where the main configuration file <code>application-context.xml</code>, further included spring xml configurations, as well as the configuration for logging <code>log4j.properties</code> and a key-value-file for quick configuration <code>application.properties</code> can be found. After modification of any of them, the integrator should be restarted.</li>\n<li><code>lib</code><br>\nContains all java dependencies and their dependencies as individual jar files</li>\n<li><code>log</code><br>\nAfter the first start, you will find an additional directory that contains the logs of every execution, as defined in the <code>conf/log4j.properties</code> file.</li>\n</ul>\n<p>So this <code>camel-integrator-*-assembly.zip</code> is all you need, ready to being shipped and installed in your target system.</p>\n<h1>How can I modify this?</h1>\n<p>In the <code>conf</code> folder of the output or <code>src/main/resources</code> src folder, you\'ll find multiple examples on how to use Apache Camel with Production Performance Management Protocol. Most of the examples are based on <a href="https://github.com/apache/camel/blob/master/components/camel-spring/src/main/docs/spring.adoc">spring xml</a>.<br>\nThe most important terms to understand them are:</p>\n<table>\n<thead>\n<tr>\n<th>xml tag</th>\n<th>meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bean</td>\n<td>additional functionality, coded as java class / function</td>\n</tr>\n<tr>\n<td>camelContext</td>\n<td>the main, camel specific configurations</td>\n</tr>\n<tr>\n<td>route</td>\n<td>describes the data flow as process</td>\n</tr>\n<tr>\n<td>from / to</td>\n<td>entry / exit points for the data flow. This is also, were external systems are accessed via <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">components</a></td>\n</tr>\n<tr>\n<td>onException</td>\n<td>error handling for the data flow</td>\n</tr>\n<tr>\n<td>pipeline, multicast, ...</td>\n<td>routing of data via <a href="http://camel.apache.org/enterprise-integration-patterns.html">Enterprise Integration pattern</a></td>\n</tr>\n</tbody>\n</table>\n<p>Among others, you\'ll find:</p>\n<div class="card figure is-pulled-right">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="html log file" title="html log file" src="/unide/images/blog/Transform-PPMP-with-camel-2-logfile.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\thtml logfile before transformation to PPMP\n\t</div>\n</div>\n<ul>\n<li><code>application-context.xml</code><br>\nMain entry file to start camel routes. It contains a general PPMP validation REST endpoint that reuses the route from <code>ppmp-validate-context.xml</code></li>\n<li><code>mqtt-context.xml</code><br>\nA simple example of converting transport protocol (mqtt to REST), without looking at the payload</li>\n<li><code>ppmp-splitAndRewrite-context.xml</code><br>\nShows how to receive (PPMP-) payload via different REST paths (/rest or /ppm), and each forwarding to two seperate endpoints (/rest and /ppm)\n<ul>\n<li><code>ppmpRewrite.xml</code> and <code>ppmRewrite.xml</code><br>\nmapping examples to rewrite the urls</li>\n</ul>\n</li>\n<li><code>ppmp-validate-context.xml</code><br>\nA simple validation route for PPMP messages that can be reused in many other routes.</li>\n<li><code>psi6000-transform-context.xml</code><br>\nA more advanced example of converting a psi6000 JSON format, converting it to plain old java object (POJO), transforming that to PPMP POJOs (using <a href="https://github.com/eclipse/unide.java">unide.java</a>) and forwarding these to actual REST endpoints</li>\n<li><code>kistler.xml</code><br>\nThis example takes html files with a structure similar to the test file in <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/blob/master/camel-integrator/src/test/data/00000855.html"><code>src/test/data/00000855.html</code></a>, cleans the html structure, retrieves the relevant parts via <a href="https://en.wikipedia.org/wiki/XPath">XPath</a> and creates a PPMP process message out of that</li>\n<li><code>application.properties</code><br>\nContains key/value pairs that can be used in the camel context configurations.</li>\n<li><code>log4j.properties</code><br>\nThe configuration for logging. For testing purposes, the log4j.properties in /src/test/resources is used.</li>\n</ul>\n<p>In order to get familiar with these transformations, I suggest you:</p>\n<ul>\n<li>open the <code>application-context.xml</code> in your favorite editor</li>\n<li>remove the <code>&lt;import .../&gt;</code> statements</li>\n<li>add your own <code>&lt;route&gt;...&lt;/route&gt;</code>, maybe as simple as<pre class="language-xml"><code class="language-xml">  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://0.0.0.0:9090/<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n  \t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>hello world!<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n</code></pre>\n</li>\n<li>start a run directly (with bundling to a zip file) with:<pre class="language-bash"><code class="language-bash">  mvn exec:java\n</code></pre>\n</li>\n<li>and review the result. With the example above, just open the url <a href="http://localhost:9090">http://localhost:9090</a> and see the <code>hello world!</code> in your browser</li>\n</ul>\n<p>If you prefer a visual model of these camel xml definitions, you could also make use of <a href="https://tools.jboss.org/features/fusetools.html">JBoss Fuse Tooling</a> which is available for <a href="https://projects.eclipse.org/releases/oxygen">Eclipse Workbench 4.3+</a> through <a href="https://marketplace.eclipse.org/content/jboss-tools">the Marketplace</a>. Be aware that this might cause additional overhead.</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="JBoss Tools" title="JBoss Tools for Eclipse Workbench" src="/unide/images/blog/Transform-PPMP-with-camel-2-eclipse.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tJBoss Tools for Eclipse Workbench\n\t</div>\n</div>\n<p>If you want to make use of any other of the (as of camel 2.21.0) <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">281+ components</a>, you should add the respective maven dependency to the <code>pom.xml</code>. For example:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>project</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependencies</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependency</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>groupId</span><span class="token punctuation">></span></span>org.apache.camel<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>groupId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>artifactId</span><span class="token punctuation">></span></span>camel-amqp<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>artifactId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>version</span><span class="token punctuation">></span></span>${camel.version}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>version</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependency</span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependencies</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>project</span><span class="token punctuation">></span></span>\n</code></pre>\n<h1>Testing</h1>\n<p>Testing is an important part of the development cycle, especially for the core components that have to work reliably in a production environment.<br>\nThe project includes example tests in the <code>src/test</code> folder:</p>\n<ul>\n<li><code>java</code><br>\ncontains the actual java unit tests that make use of <a href="https://github.com/apache/camel/blob/61a58836da57bab38ce719cbd1effd36253687a4/docs/user-manual/en/spring-testing.adoc"><code>CamelSpringTestSupport</code></a> to wire xml CamelContext configuration, test data and expected results together</li>\n<li><code>resources</code><br>\ncontains the spring xml configuration that is used by the java test classes and resamble the actual configurations from <code>src/main/resources</code></li>\n<li><code>data</code><br>\ncontains testdata for the data flows and the transformation</li>\n</ul>\n<p>Tests can easily be run from within an IDE (eclipse, visual code studio etc.) or via commandline</p>\n<pre class="language-bash"><code class="language-bash">mvn <span class="token function">test</span>\n</code></pre>\n<p>You will see the output of the test runs. If it looks like this, it works as expected:</p>\n<pre class="language-bash"><code class="language-bash">Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.846 sec\n\nResults <span class="token keyword">:</span>\n\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0\n\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> BUILD SUCCESS\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Total time: 32.267 s\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Finished at: 2018-04-09T15:25:25+02:00\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Final Memory: 25M/85M\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n</code></pre>\n<h1>Summary</h1>\n<p>The provided camel project template facilitates the creation of simple connectors. You can download it, modify or extend it, package the integrator to a zip file and deploy it on a target server. The included scripts help registering the integrator as an operating system service to run 24/7.</p>\n',url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5),tags:["use cases"],prev:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"},next:{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Template-for-PPMP-transformation",content:'<h1>Quick start</h1>\n<p>In <a href="https://www.eclipse.org/unide/blog/2018/2/11/Transform-PPMP-with-camel/">a previous blog post</a>, I have already introduced Apache Camel as a tool to transform to PPMP. In this post, I want to dive a little deeper to get you started with your own transformation.<br>\nYou can find corresponding source code with some transformation examples <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/camel-integrator">in the repository of the Eclipse PPM Testbed</a>. After download or checkout of the project, you can easily package everything necessary for an installation via <a href="https://maven.apache.org/">Apache Maven</a> and java 8+:</p>\n<pre class="language-bash"><code class="language-bash"><span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement.git\n<span class="token function">cd</span> eclipseiot-testbed-productionperformancemanagement\n<span class="token function">cd</span> camel-integrator\nmvn package\n</code></pre>\n<p>After successful build, you should get a zip file at <code>target/camel-integrator-*-assembly.zip</code> with the following content</p>\n<ul>\n<li><code>bin</code><br>\nThe IntegratorStarter* files for Windows and Linux can be used to start the integrator manually. WinServiceInstaller.bat und WinServiceUninstaller.bat can be executed with Admin permissions in Windows to register/unregister this java application as Windows Service called &quot;Integrator Service&quot;.</li>\n<li><code>conf</code><br>\nThis is where the main configuration file <code>application-context.xml</code>, further included spring xml configurations, as well as the configuration for logging <code>log4j.properties</code> and a key-value-file for quick configuration <code>application.properties</code> can be found. After modification of any of them, the integrator should be restarted.</li>\n<li><code>lib</code><br>\nContains all java dependencies and their dependencies as individual jar files</li>\n<li><code>log</code><br>\nAfter the first start, you will find an additional directory that contains the logs of every execution, as defined in the <code>conf/log4j.properties</code> file.</li>\n</ul>\n<p>So this <code>camel-integrator-*-assembly.zip</code> is all you need, ready to being shipped and installed in your target system.</p>\n<h1>How can I modify this?</h1>\n<p>In the <code>conf</code> folder of the output or <code>src/main/resources</code> src folder, you\'ll find multiple examples on how to use Apache Camel with Production Performance Management Protocol. Most of the examples are based on <a href="https://github.com/apache/camel/blob/master/components/camel-spring/src/main/docs/spring.adoc">spring xml</a>.<br>\nThe most important terms to understand them are:</p>\n<table>\n<thead>\n<tr>\n<th>xml tag</th>\n<th>meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bean</td>\n<td>additional functionality, coded as java class / function</td>\n</tr>\n<tr>\n<td>camelContext</td>\n<td>the main, camel specific configurations</td>\n</tr>\n<tr>\n<td>route</td>\n<td>describes the data flow as process</td>\n</tr>\n<tr>\n<td>from / to</td>\n<td>entry / exit points for the data flow. This is also, were external systems are accessed via <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">components</a></td>\n</tr>\n<tr>\n<td>onException</td>\n<td>error handling for the data flow</td>\n</tr>\n<tr>\n<td>pipeline, multicast, ...</td>\n<td>routing of data via <a href="http://camel.apache.org/enterprise-integration-patterns.html">Enterprise Integration pattern</a></td>\n</tr>\n</tbody>\n</table>\n<p>Among others, you\'ll find:</p>\n<div class="card figure is-pulled-right">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="html log file" title="html log file" src="/unide/images/blog/Transform-PPMP-with-camel-2-logfile.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\thtml logfile before transformation to PPMP\n\t</div>\n</div>\n<ul>\n<li><code>application-context.xml</code><br>\nMain entry file to start camel routes. It contains a general PPMP validation REST endpoint that reuses the route from <code>ppmp-validate-context.xml</code></li>\n<li><code>mqtt-context.xml</code><br>\nA simple example of converting transport protocol (mqtt to REST), without looking at the payload</li>\n<li><code>ppmp-splitAndRewrite-context.xml</code><br>\nShows how to receive (PPMP-) payload via different REST paths (/rest or /ppm), and each forwarding to two seperate endpoints (/rest and /ppm)\n<ul>\n<li><code>ppmpRewrite.xml</code> and <code>ppmRewrite.xml</code><br>\nmapping examples to rewrite the urls</li>\n</ul>\n</li>\n<li><code>ppmp-validate-context.xml</code><br>\nA simple validation route for PPMP messages that can be reused in many other routes.</li>\n<li><code>psi6000-transform-context.xml</code><br>\nA more advanced example of converting a psi6000 JSON format, converting it to plain old java object (POJO), transforming that to PPMP POJOs (using <a href="https://github.com/eclipse/unide.java">unide.java</a>) and forwarding these to actual REST endpoints</li>\n<li><code>kistler.xml</code><br>\nThis example takes html files with a structure similar to the test file in <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/blob/master/camel-integrator/src/test/data/00000855.html"><code>src/test/data/00000855.html</code></a>, cleans the html structure, retrieves the relevant parts via <a href="https://en.wikipedia.org/wiki/XPath">XPath</a> and creates a PPMP process message out of that</li>\n<li><code>application.properties</code><br>\nContains key/value pairs that can be used in the camel context configurations.</li>\n<li><code>log4j.properties</code><br>\nThe configuration for logging. For testing purposes, the log4j.properties in /src/test/resources is used.</li>\n</ul>\n<p>In order to get familiar with these transformations, I suggest you:</p>\n<ul>\n<li>open the <code>application-context.xml</code> in your favorite editor</li>\n<li>remove the <code>&lt;import .../&gt;</code> statements</li>\n<li>add your own <code>&lt;route&gt;...&lt;/route&gt;</code>, maybe as simple as<pre class="language-xml"><code class="language-xml">  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://0.0.0.0:9090/<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n  \t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>hello world!<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n</code></pre>\n</li>\n<li>start a run directly (with bundling to a zip file) with:<pre class="language-bash"><code class="language-bash">  mvn exec:java\n</code></pre>\n</li>\n<li>and review the result. With the example above, just open the url <a href="http://localhost:9090">http://localhost:9090</a> and see the <code>hello world!</code> in your browser</li>\n</ul>\n<p>If you prefer a visual model of these camel xml definitions, you could also make use of <a href="https://tools.jboss.org/features/fusetools.html">JBoss Fuse Tooling</a> which is available for <a href="https://projects.eclipse.org/releases/oxygen">Eclipse Workbench 4.3+</a> through <a href="https://marketplace.eclipse.org/content/jboss-tools">the Marketplace</a>. Be aware that this might cause additional overhead.</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="JBoss Tools" title="JBoss Tools for Eclipse Workbench" src="/unide/images/blog/Transform-PPMP-with-camel-2-eclipse.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tJBoss Tools for Eclipse Workbench\n\t</div>\n</div>\n<p>If you want to make use of any other of the (as of camel 2.21.0) <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">281+ components</a>, you should add the respective maven dependency to the <code>pom.xml</code>. For example:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>project</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependencies</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependency</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>groupId</span><span class="token punctuation">></span></span>org.apache.camel<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>groupId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>artifactId</span><span class="token punctuation">></span></span>camel-amqp<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>artifactId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>version</span><span class="token punctuation">></span></span>${camel.version}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>version</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependency</span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependencies</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>project</span><span class="token punctuation">></span></span>\n</code></pre>\n<h1>Testing</h1>\n<p>Testing is an important part of the development cycle, especially for the core components that have to work reliably in a production environment.<br>\nThe project includes example tests in the <code>src/test</code> folder:</p>\n<ul>\n<li><code>java</code><br>\ncontains the actual java unit tests that make use of <a href="https://github.com/apache/camel/blob/61a58836da57bab38ce719cbd1effd36253687a4/docs/user-manual/en/spring-testing.adoc"><code>CamelSpringTestSupport</code></a> to wire xml CamelContext configuration, test data and expected results together</li>\n<li><code>resources</code><br>\ncontains the spring xml configuration that is used by the java test classes and resamble the actual configurations from <code>src/main/resources</code></li>\n<li><code>data</code><br>\ncontains testdata for the data flows and the transformation</li>\n</ul>\n<p>Tests can easily be run from within an IDE (eclipse, visual code studio etc.) or via commandline</p>\n<pre class="language-bash"><code class="language-bash">mvn <span class="token function">test</span>\n</code></pre>\n<p>You will see the output of the test runs. If it looks like this, it works as expected:</p>\n<pre class="language-bash"><code class="language-bash">Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.846 sec\n\nResults <span class="token keyword">:</span>\n\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0\n\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> BUILD SUCCESS\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Total time: 32.267 s\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Finished at: 2018-04-09T15:25:25+02:00\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Final Memory: 25M/85M\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n</code></pre>\n<h1>Summary</h1>\n<p>The provided camel project template facilitates the creation of simple connectors. You can download it, modify or extend it, package the integrator to a zip file and deploy it on a target server. The included scripts help registering the integrator as an operating system service to run 24/7.</p>\n',url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5),tags:["use cases"],prev:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"},next:{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/9/4/index.html b/blog/2018/9/4/index.html
index a0f1897..3046b48 100644
--- a/blog/2018/9/4/index.html
+++ b/blog/2018/9/4/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/9/index.html b/blog/2018/9/index.html
index 9c2529a..56d92ce 100644
--- a/blog/2018/9/index.html
+++ b/blog/2018/9/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2018/index.html b/blog/2018/index.html
index 0318931..02817ac 100644
--- a/blog/2018/index.html
+++ b/blog/2018/index.html
@@ -86,6 +86,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5)},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4)},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7)},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5)},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:new Date(15360192e5)},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:new Date(152206074e4)},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:new Date(151848e7)},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:new Date(15183072e5)},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:new Date(15169248e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2019/3/1/Version-3/index.html b/blog/2019/3/1/Version-3/index.html
index af49786..63037a3 100644
--- a/blog/2019/3/1/Version-3/index.html
+++ b/blog/2019/3/1/Version-3/index.html
@@ -92,6 +92,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Version-3",content:"<p>After a long discussion phase, the PPMP version 3 is finally linked on the specification page. Special thanks to <a href=\"https://github.com/bgusach\">bgusach</a>, <a href=\"https://github.com/bf-bryants\">bf-bryants</a>, <a href=\"https://github.com/muelsen\">muelsen</a> and <a href=\"https://github.com/alaendle\">alaendle</a> for their contributions <a href=\"https://github.com/eclipse/unide/issues\">via github issues</a>!</p>\n<h1>The most important changes</h1>\n<ul>\n<li><code>context</code> section in <code>measurements</code><br>\nThe optional context section ccontains information on how to interpret the measurements. This includes\n<ul>\n<li>the field '<code>type</code>' (Number, String or Boolean value) indicates which format the <code>&lt;values&gt;</code> of a <code>series</code> have.</li>\n<li>The <code>unit</code> key can be used to describe the unit of measurement. There are different understandings and standarizations for units ('C' stands for Coulomb, not Celsius), like <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">International System of Units</a>, <a href=\"https://tools.ietf.org/html/draft-ietf-core-senml-14#section-12.1\">SenML</a>, <a href=\"https://www.iso.org/obp/ui/#iso:std:iso:80000:-1:ed-1:v1:en\">ISO 80000-1:2009</a>, etc.. The <code>unit</code> key here is a string without further restriction. If that is needed, it can be specified via an URI in <code>namespace</code>.</li>\n<li><code>namespace</code> may contain an URI to identify further detail on the values in this measurement section. This can be a description of units, lengths or naming conventions for measurement points, but also a reference to a semantic model.</li>\n</ul>\n</li>\n<li><code>series</code> can contain other than numeric measurements<br>\nif <code>context.type</code> contains any of 'BASE64', 'BOOLEAN', 'NUMBER', 'STRING', 'REF' or 'OTHER', the corresponding measurement in <code>series</code> are represented in this type ('REF', 'OTHER' and 'BASE64' are Strings). This way for example, even small base64 encoded binary data, as send from iolink devices, can be included. 'REF' could be used in multipart messages to reference to other sections or even external content.</li>\n<li><code>mode</code> and <code>state</code> are introduced in <code>device</code> and replaces v2's <code>operationalMode</code>, which was found to not clearly diffentiate the functional mode and technical state.</li>\n<li>A common <code>id</code> was used and replaces different spellings in <code>deviceID</code>, <code>partID</code>, <code>program.id</code>.</li>\n<li><code>additionalData</code> in the various sections is used for any kind of not-specified data, that should be included in the telegram. Where v2's <code>metaData</code> had to be key/String pairs, <code>additionalData</code> can also be complex JSON objects.</li>\n<li><code>time</code> field replaces the v2 <code>$_time</code> field, which is difficult to represent in some programming languages. Note that <code>time</code> is not an Integer anymore but a JSON number, to allow sub-millisecond values.</li>\n<li>no more <code>shutoffValues</code> and <code>shutoffPhase</code><br>\n<code>shutoffValues</code> can be expressed as specialValues with a meaningful <code>name</code>, <code>shutoffPhase</code> is the measurement with the latest timestamp <code>ts</code>.</li>\n<li>a common definition.json schema is used for sections that are used in multiple telegrams. With the help of JSON schema 'anyOf', sections inherit and can extend from these base definitions.</li>\n</ul>\n<h1>Next steps</h1>\n<p>The most recent updates and this post should finalize the v3 schema. Vetos with suggestions that find a consensus fairly soon after posting are stil accepted <a href=\"https://github.com/eclipse/unide/issues\">via github issues</a>. Major changes and suggestions should rather be addressed to a v4.</p>\n<p>The bindings and server should be updated to accept and validate v3 as well. After updating further dependencies, creating eclipse CQs and undergoing the release process, everything should be wrapped up in the unide release 0.3.0.</p>\n",url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5),tags:["v3"],prev:{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{post:{name:"Version-3",content:"<p>After a long discussion phase, the PPMP version 3 is finally linked on the specification page. Special thanks to <a href=\"https://github.com/bgusach\">bgusach</a>, <a href=\"https://github.com/bf-bryants\">bf-bryants</a>, <a href=\"https://github.com/muelsen\">muelsen</a> and <a href=\"https://github.com/alaendle\">alaendle</a> for their contributions <a href=\"https://github.com/eclipse/unide/issues\">via github issues</a>!</p>\n<h1>The most important changes</h1>\n<ul>\n<li><code>context</code> section in <code>measurements</code><br>\nThe optional context section ccontains information on how to interpret the measurements. This includes\n<ul>\n<li>the field '<code>type</code>' (Number, String or Boolean value) indicates which format the <code>&lt;values&gt;</code> of a <code>series</code> have.</li>\n<li>The <code>unit</code> key can be used to describe the unit of measurement. There are different understandings and standarizations for units ('C' stands for Coulomb, not Celsius), like <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">International System of Units</a>, <a href=\"https://tools.ietf.org/html/draft-ietf-core-senml-14#section-12.1\">SenML</a>, <a href=\"https://www.iso.org/obp/ui/#iso:std:iso:80000:-1:ed-1:v1:en\">ISO 80000-1:2009</a>, etc.. The <code>unit</code> key here is a string without further restriction. If that is needed, it can be specified via an URI in <code>namespace</code>.</li>\n<li><code>namespace</code> may contain an URI to identify further detail on the values in this measurement section. This can be a description of units, lengths or naming conventions for measurement points, but also a reference to a semantic model.</li>\n</ul>\n</li>\n<li><code>series</code> can contain other than numeric measurements<br>\nif <code>context.type</code> contains any of 'BASE64', 'BOOLEAN', 'NUMBER', 'STRING', 'REF' or 'OTHER', the corresponding measurement in <code>series</code> are represented in this type ('REF', 'OTHER' and 'BASE64' are Strings). This way for example, even small base64 encoded binary data, as send from iolink devices, can be included. 'REF' could be used in multipart messages to reference to other sections or even external content.</li>\n<li><code>mode</code> and <code>state</code> are introduced in <code>device</code> and replaces v2's <code>operationalMode</code>, which was found to not clearly diffentiate the functional mode and technical state.</li>\n<li>A common <code>id</code> was used and replaces different spellings in <code>deviceID</code>, <code>partID</code>, <code>program.id</code>.</li>\n<li><code>additionalData</code> in the various sections is used for any kind of not-specified data, that should be included in the telegram. Where v2's <code>metaData</code> had to be key/String pairs, <code>additionalData</code> can also be complex JSON objects.</li>\n<li><code>time</code> field replaces the v2 <code>$_time</code> field, which is difficult to represent in some programming languages. Note that <code>time</code> is not an Integer anymore but a JSON number, to allow sub-millisecond values.</li>\n<li>no more <code>shutoffValues</code> and <code>shutoffPhase</code><br>\n<code>shutoffValues</code> can be expressed as specialValues with a meaningful <code>name</code>, <code>shutoffPhase</code> is the measurement with the latest timestamp <code>ts</code>.</li>\n<li>a common definition.json schema is used for sections that are used in multiple telegrams. With the help of JSON schema 'anyOf', sections inherit and can extend from these base definitions.</li>\n</ul>\n<h1>Next steps</h1>\n<p>The most recent updates and this post should finalize the v3 schema. Vetos with suggestions that find a consensus fairly soon after posting are stil accepted <a href=\"https://github.com/eclipse/unide/issues\">via github issues</a>. Major changes and suggestions should rather be addressed to a v4.</p>\n<p>The bindings and server should be updated to accept and validate v3 as well. After updating further dependencies, creating eclipse CQs and undergoing the release process, everything should be wrapped up in the unide release 0.3.0.</p>\n",url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5),tags:["v3"],prev:{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation"}}}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/c3e469380ccd51a92bb6.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2019/3/1/index.html b/blog/2019/3/1/index.html
index 4db4a11..49c6466 100644
--- a/blog/2019/3/1/index.html
+++ b/blog/2019/3/1/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2019/3/index.html b/blog/2019/3/index.html
index 25cd02f..1d6e316 100644
--- a/blog/2019/3/index.html
+++ b/blog/2019/3/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/2019/index.html b/blog/2019/index.html
index 87dc290..e477f8d 100644
--- a/blog/2019/index.html
+++ b/blog/2019/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:new Date(15513984e5)}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/blog/index.html b/blog/index.html
index 25ffcfa..bd5a12b 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -86,6 +86,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:"2019-03-01T00:00:00.000Z"},{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2019/3/1/Version-3",title:"PPMP Version 3 release candidate",date:"2019-03-01T00:00:00.000Z"},{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/1cf0d23982851c579fa1.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/faq/index.html b/faq/index.html
index bd1edf6..e55fb00 100644
--- a/faq/index.html
+++ b/faq/index.html
@@ -82,6 +82,6 @@
         October 2016
       </a>
       (4)
-    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{}],error:null,serverRendered:!0}</script><script src="/unide/files/8da2e70987bcbfbd2f5b.js" defer></script><script src="/unide/files/e6b72c80ba4bc8cff618.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
+    </li></ul></div></div></div></div> <footer class="footer"><div class="container"><div class="columns is-mobile is-multiline is-centered"><div class="column is-narrow"><a href="http://www.eclipse.org">Eclipse Foundation</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></div> <div class="column is-narrow"><a href="https://eclipse.org/security/">Security reports</a></div> <div class="column is-narrow"><a href="http://www.eclipse.org/legal/">Legal</a></div></div></div></footer></div></div></div><script>window.__NUXT__={layout:"sidebar",data:[{}],error:null,serverRendered:!0}</script><script src="/unide/files/aec9bc92e805f0157061.js" defer></script><script src="/unide/files/7e5b30c8046b1e015c6b.js" defer></script><script src="/unide/files/c01c4654e10f48ab3d43.js" defer></script><script src="/unide/files/77dcc0254c88ffffb5bd.js" defer></script>
   </body>
 </html>
diff --git a/files/6c9e9d004259ae561413.js b/files/335477b030d41a005fb6.js
similarity index 88%
rename from files/6c9e9d004259ae561413.js
rename to files/335477b030d41a005fb6.js
index 983b3f0..e7ff680 100644
--- a/files/6c9e9d004259ae561413.js
+++ b/files/335477b030d41a005fb6.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[1],Array(146).concat([function(t,n,r){var e=r(206),o="object"==typeof self&&self&&self.Object===Object&&self,c=e||o||Function("return this")();t.exports=c},function(t,n){t.exports=function(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}},,function(t,n,r){var e=r(6),o=r(204)(!0);e(e.S,"Object",{entries:function(t){return o(t)}})},function(t,n){var r=Array.isArray;t.exports=r},function(t,n){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,n,r){"use strict";function e(t,i){return function(t){if(Array.isArray(t))return t}(t)||function(t,i){var n=[],r=!0,e=!1,o=void 0;try{for(var c,f=t[Symbol.iterator]();!(r=(c=f.next()).done)&&(n.push(c.value),!i||n.length!==i);r=!0);}catch(t){e=!0,o=t}finally{try{r||null==f.return||f.return()}finally{if(e)throw o}}return n}(t,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}r.d(n,"a",function(){return e})},,function(t,n,r){"use strict";function e(t){for(var n=arguments,i=1;i<arguments.length;i++)for(var p in arguments[i])t[p]=n[i][p];return t}var o={functional:!0,props:{code:{type:String},inline:{type:Boolean,default:!1},language:{type:String,default:"markup"}},render:function(t,n){var code=n.props.code||(n.children&&n.children.length>0?n.children[0].text:""),r=n.props.inline,o=n.props.language,c=Prism.languages[o],f="language-"+o;return r?t("code",e({},n.data,{class:[n.data.class,f],domProps:e({},n.data.domProps,{innerHTML:Prism.highlight(code,c)})})):t("pre",e({},n.data,{class:[n.data.class,f]}),[t("code",{class:f,domProps:{innerHTML:Prism.highlight(code,c)}})])}};t.exports=o},function(t,n,r){var e=r(205);t.exports=function(object,path,t){var n=null==object?void 0:e(object,path);return void 0===n?t:n}},function(t,n,r){var e=r(261),o=r(264);t.exports=function(object,t){var n=o(object,t);return e(n)?n:void 0}},function(t,n,r){var e=r(160),o=r(253),c=r(254),f="[object Null]",l="[object Undefined]",v=e?e.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?l:f:v&&v in Object(t)?o(t):c(t)}},function(t,n,r){var e=r(188),o=r(179);t.exports=function(source,t,object,n){var r=!object;object||(object={});for(var c=-1,f=t.length;++c<f;){var l=t[c],v=n?n(object[l],source[l],l,object,source):void 0;void 0===v&&(v=source[l]),r?o(object,l,v):e(object,l,v)}return object}},,function(t,n,r){var e=r(146).Symbol;t.exports=e},function(t,n,r){var e=r(150),o=r(252),c=r(255),f=r(279);t.exports=function(t,object){return e(t)?t:o(t,object)?[t]:c(f(t))}},function(t,n,r){var e=r(156)(Object,"create");t.exports=e},function(t,n,r){var e=r(269),o=r(270),c=r(271),f=r(272),l=r(273);function v(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}v.prototype.clear=e,v.prototype.delete=o,v.prototype.get=c,v.prototype.has=f,v.prototype.set=l,t.exports=v},function(t,n,r){var e=r(165);t.exports=function(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}},function(t,n){t.exports=function(t,n){return t===n||t!=t&&n!=n}},function(t,n,r){var e=r(275);t.exports=function(map,t){var data=map.__data__;return e(t)?data["string"==typeof t?"string":"hash"]:data.map}},function(t,n,r){var e=r(176),o=r(218);t.exports=function(t){return null!=t&&o(t.length)&&!e(t)}},function(t,n,r){var e=r(222),o=r(300),c=r(167);t.exports=function(object){return c(object)?e(object,!0):o(object)}},,,,,,,function(t,n,r){var e=r(157),o=r(151),c="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||o(t)&&e(t)==c}},function(t,n,r){var e=r(157),o=r(147),c="[object AsyncFunction]",f="[object Function]",l="[object GeneratorFunction]",v="[object Proxy]";t.exports=function(t){if(!o(t))return!1;var n=e(t);return n==f||n==l||n==c||n==v}},function(t,n,r){var e=r(156)(r(146),"Map");t.exports=e},function(t,n,r){var e=r(175),o=1/0;t.exports=function(t){if("string"==typeof t||e(t))return t;var n=t+"";return"0"==n&&1/t==-o?"-0":n}},function(t,n,r){var e=r(212);t.exports=function(object,t,n){"__proto__"==t&&e?e(object,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):object[t]=n}},function(t,n){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,n,r){var e=r(292);t.exports=function(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}},function(t,n,r){var e=r(217)(Object.getPrototypeOf,Object);t.exports=e},function(t,n){var r=Object.prototype;t.exports=function(t){var n=t&&t.constructor;return t===("function"==typeof n&&n.prototype||r)}},function(t,n,r){var e=r(294),o=r(151),c=Object.prototype,f=c.hasOwnProperty,l=c.propertyIsEnumerable,v=e(function(){return arguments}())?e:function(t){return o(t)&&f.call(t,"callee")&&!l.call(t,"callee")};t.exports=v},function(t,n,r){(function(t){var e=r(146),o=r(296),c=n&&!n.nodeType&&n,f=c&&"object"==typeof t&&t&&!t.nodeType&&t,l=f&&f.exports===c?e.Buffer:void 0,v=(l?l.isBuffer:void 0)||o;t.exports=v}).call(this,r(180)(t))},function(t,n){t.exports=function(t){return function(n){return t(n)}}},function(t,n,r){(function(t){var e=r(206),o=n&&!n.nodeType&&n,c=o&&"object"==typeof t&&t&&!t.nodeType&&t,f=c&&c.exports===o&&e.process,l=function(){try{var t=c&&c.require&&c.require("util").types;return t||f&&f.binding&&f.binding("util")}catch(t){}}();t.exports=l}).call(this,r(180)(t))},function(t,n,r){var e=r(179),o=r(165),c=Object.prototype.hasOwnProperty;t.exports=function(object,t,n){var r=object[t];c.call(object,t)&&o(r,n)&&(void 0!==n||t in object)||e(object,t,n)}},function(t,n){var r=9007199254740991,e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,n){var o=typeof t;return!!(n=null==n?r:n)&&("number"==o||"symbol"!=o&&e.test(t))&&t>-1&&t%1==0&&t<n}},function(t,n,r){var e=r(210),o=r(312),c=r(188),f=r(313),l=r(316),v=r(213),y=r(215),h=r(317),x=r(319),d=r(320),j=r(229),_=r(194),w=r(325),O=r(326),A=r(216),m=r(150),S=r(185),P=r(330),z=r(147),I=r(332),k=r(191),E=1,F=2,M=4,T="[object Arguments]",U="[object Function]",B="[object GeneratorFunction]",$="[object Object]",D={};D[T]=D["[object Array]"]=D["[object ArrayBuffer]"]=D["[object DataView]"]=D["[object Boolean]"]=D["[object Date]"]=D["[object Float32Array]"]=D["[object Float64Array]"]=D["[object Int8Array]"]=D["[object Int16Array]"]=D["[object Int32Array]"]=D["[object Map]"]=D["[object Number]"]=D[$]=D["[object RegExp]"]=D["[object Set]"]=D["[object String]"]=D["[object Symbol]"]=D["[object Uint8Array]"]=D["[object Uint8ClampedArray]"]=D["[object Uint16Array]"]=D["[object Uint32Array]"]=!0,D["[object Error]"]=D[U]=D["[object WeakMap]"]=!1,t.exports=function t(n,r,C,V,object,L){var R,W=r&E,N=r&F,G=r&M;if(C&&(R=object?C(n,V,object,L):C(n)),void 0!==R)return R;if(!z(n))return n;var H=m(n);if(H){if(R=w(n),!W)return y(n,R)}else{var J=_(n),K=J==U||J==B;if(S(n))return v(n,W);if(J==$||J==T||K&&!object){if(R=N||K?{}:A(n),!W)return N?x(n,l(R,n)):h(n,f(R,n))}else{if(!D[J])return object?n:{};R=O(n,J,W)}}L||(L=new e);var Q=L.get(n);if(Q)return Q;if(L.set(n,R),I(n))return n.forEach(function(e){R.add(t(e,r,C,e,n,L))}),R;if(P(n))return n.forEach(function(e,o){R.set(o,t(e,r,C,o,n,L))}),R;var X=G?N?j:d:N?keysIn:k,Y=H?void 0:X(n);return o(Y||n,function(e,o){Y&&(e=n[o=e]),c(R,o,t(e,r,C,o,n,L))}),R}},function(t,n,r){var e=r(222),o=r(314),c=r(167);t.exports=function(object){return c(object)?e(object):o(object)}},function(t,n,r){var e=r(318),o=r(226),c=Object.prototype.propertyIsEnumerable,f=Object.getOwnPropertySymbols,l=f?function(object){return null==object?[]:(object=Object(object),e(f(object),function(symbol){return c.call(object,symbol)}))}:o;t.exports=l},function(t,n){t.exports=function(t,n){for(var r=-1,e=n.length,o=t.length;++r<e;)t[o+r]=n[r];return t}},function(t,n,r){var e=r(321),o=r(177),c=r(322),f=r(323),l=r(324),v=r(157),y=r(208),h=y(e),x=y(o),d=y(c),j=y(f),_=y(l),w=v;(e&&"[object DataView]"!=w(new e(new ArrayBuffer(1)))||o&&"[object Map]"!=w(new o)||c&&"[object Promise]"!=w(c.resolve())||f&&"[object Set]"!=w(new f)||l&&"[object WeakMap]"!=w(new l))&&(w=function(t){var n=v(t),r="[object Object]"==n?t.constructor:void 0,e=r?y(r):"";if(e)switch(e){case h:return"[object DataView]";case x:return"[object Map]";case d:return"[object Promise]";case j:return"[object Set]";case _:return"[object WeakMap]"}return n}),t.exports=w},,,,,,,,,,function(t,n,r){var e=r(16),o=r(17),c=r(28).f;t.exports=function(t){return function(n){for(var r,f=o(n),l=e(f),v=l.length,i=0,y=[];v>i;)c.call(f,r=l[i++])&&y.push(t?[r,f[r]]:f[r]);return y}}},function(t,n,r){var e=r(161),o=r(178);t.exports=function(object,path){for(var t=0,n=(path=e(path,object)).length;null!=object&&t<n;)object=object[o(path[t++])];return t&&t==n?object:void 0}},function(t,n,r){(function(n){var r="object"==typeof n&&n&&n.Object===Object&&n;t.exports=r}).call(this,r(22))},function(t,n,r){var e=r(258),o=r(274),c=r(276),f=r(277),l=r(278);function v(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}v.prototype.clear=e,v.prototype.delete=o,v.prototype.get=c,v.prototype.has=f,v.prototype.set=l,t.exports=v},function(t,n){var r=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return r.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},function(t,n){t.exports=function(t,n){for(var r=-1,e=null==t?0:t.length,o=Array(e);++r<e;)o[r]=n(t[r],r,t);return o}},function(t,n,r){var e=r(163),o=r(284),c=r(285),f=r(286),l=r(287),v=r(288);function y(t){var data=this.__data__=new e(t);this.size=data.size}y.prototype.clear=o,y.prototype.delete=c,y.prototype.get=f,y.prototype.has=l,y.prototype.set=v,t.exports=y},function(t,n,r){var e=r(179),o=r(165);t.exports=function(object,t,n){(void 0===n||o(object[t],n))&&(void 0!==n||t in object)||e(object,t,n)}},function(t,n,r){var e=r(156),o=function(){try{var t=e(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=o},function(t,n,r){(function(t){var e=r(146),o=n&&!n.nodeType&&n,c=o&&"object"==typeof t&&t&&!t.nodeType&&t,f=c&&c.exports===o?e.Buffer:void 0,l=f?f.allocUnsafe:void 0;t.exports=function(t,n){if(n)return t.slice();var r=t.length,e=l?l(r):new t.constructor(r);return t.copy(e),e}}).call(this,r(180)(t))},function(t,n,r){var e=r(181);t.exports=function(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}},function(t,n){t.exports=function(source,t){var n=-1,r=source.length;for(t||(t=Array(r));++n<r;)t[n]=source[n];return t}},function(t,n,r){var e=r(293),o=r(182),c=r(183);t.exports=function(object){return"function"!=typeof object.constructor||c(object)?{}:e(o(object))}},function(t,n){t.exports=function(t,n){return function(r){return t(n(r))}}},function(t,n){var r=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=r}},function(t,n,r){var e=r(157),o=r(182),c=r(151),f="[object Object]",l=Function.prototype,v=Object.prototype,y=l.toString,h=v.hasOwnProperty,x=y.call(Object);t.exports=function(t){if(!c(t)||e(t)!=f)return!1;var n=o(t);if(null===n)return!0;var r=h.call(n,"constructor")&&n.constructor;return"function"==typeof r&&r instanceof r&&y.call(r)==x}},function(t,n,r){var e=r(297),o=r(186),c=r(187),f=c&&c.isTypedArray,l=f?o(f):e;t.exports=l},function(t,n){t.exports=function(object,t){if("__proto__"!=t)return object[t]}},function(t,n,r){var e=r(299),o=r(184),c=r(150),f=r(185),l=r(189),v=r(220),y=Object.prototype.hasOwnProperty;t.exports=function(t,n){var r=c(t),h=!r&&o(t),x=!r&&!h&&f(t),d=!r&&!h&&!x&&v(t),j=r||h||x||d,_=j?e(t.length,String):[],w=_.length;for(var O in t)!n&&!y.call(t,O)||j&&("length"==O||x&&("offset"==O||"parent"==O)||d&&("buffer"==O||"byteLength"==O||"byteOffset"==O)||l(O,w))||_.push(O);return _}},function(t,n){t.exports=function(t){return t}},function(t,n,r){var e=r(304),o=Math.max;t.exports=function(t,n,r){return n=o(void 0===n?t.length-1:n,0),function(){for(var c=arguments,f=-1,l=o(c.length-n,0),v=Array(l);++f<l;)v[f]=c[n+f];f=-1;for(var y=Array(n+1);++f<n;)y[f]=c[f];return y[n]=r(v),e(t,this,y)}}},function(t,n,r){var e=r(305),o=r(307)(e);t.exports=o},function(t,n){t.exports=function(){return[]}},function(t,n,r){var e=r(193),o=r(182),c=r(192),f=r(226),l=Object.getOwnPropertySymbols?function(object){for(var t=[];object;)e(t,c(object)),object=o(object);return t}:f;t.exports=l},function(t,n,r){var e=r(193),o=r(150);t.exports=function(object,t,n){var r=t(object);return o(object)?r:e(r,n(object))}},function(t,n,r){var e=r(228),o=r(227),c=r(168);t.exports=function(object){return e(object,c,o)}},,,,,,,,,,,,,,,,,,,,,,,function(t,n,r){var e=r(150),o=r(175),c=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,f=/^\w*$/;t.exports=function(t,object){if(e(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||f.test(t)||!c.test(t)||null!=object&&t in Object(object)}},function(t,n,r){var e=r(160),o=Object.prototype,c=o.hasOwnProperty,f=o.toString,l=e?e.toStringTag:void 0;t.exports=function(t){var n=c.call(t,l),r=t[l];try{t[l]=void 0;var e=!0}catch(t){}var o=f.call(t);return e&&(n?t[l]=r:delete t[l]),o}},function(t,n){var r=Object.prototype.toString;t.exports=function(t){return r.call(t)}},function(t,n,r){var e=r(256),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c=/\\(\\)?/g,f=e(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(o,function(t,r,e,o){n.push(e?o.replace(c,"$1"):r||t)}),n});t.exports=f},function(t,n,r){var e=r(257),o=500;t.exports=function(t){var n=e(t,function(t){return r.size===o&&r.clear(),t}),r=n.cache;return n}},function(t,n,r){var e=r(207),o="Expected a function";function c(t,n){if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new TypeError(o);var r=function(){var e=arguments,o=n?n.apply(this,e):e[0],c=r.cache;if(c.has(o))return c.get(o);var f=t.apply(this,e);return r.cache=c.set(o,f)||c,f};return r.cache=new(c.Cache||e),r}c.Cache=e,t.exports=c},function(t,n,r){var e=r(259),o=r(163),c=r(177);t.exports=function(){this.size=0,this.__data__={hash:new e,map:new(c||o),string:new e}}},function(t,n,r){var e=r(260),o=r(265),c=r(266),f=r(267),l=r(268);function v(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}v.prototype.clear=e,v.prototype.delete=o,v.prototype.get=c,v.prototype.has=f,v.prototype.set=l,t.exports=v},function(t,n,r){var e=r(162);t.exports=function(){this.__data__=e?e(null):{},this.size=0}},function(t,n,r){var e=r(176),o=r(262),c=r(147),f=r(208),l=/^\[object .+?Constructor\]$/,v=Function.prototype,y=Object.prototype,h=v.toString,x=y.hasOwnProperty,d=RegExp("^"+h.call(x).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!c(t)||o(t))&&(e(t)?d:l).test(f(t))}},function(t,n,r){var e,o=r(263),c=(e=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+e:"";t.exports=function(t){return!!c&&c in t}},function(t,n,r){var e=r(146)["__core-js_shared__"];t.exports=e},function(t,n){t.exports=function(object,t){return null==object?void 0:object[t]}},function(t,n){t.exports=function(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}},function(t,n,r){var e=r(162),o="__lodash_hash_undefined__",c=Object.prototype.hasOwnProperty;t.exports=function(t){var data=this.__data__;if(e){var n=data[t];return n===o?void 0:n}return c.call(data,t)?data[t]:void 0}},function(t,n,r){var e=r(162),o=Object.prototype.hasOwnProperty;t.exports=function(t){var data=this.__data__;return e?void 0!==data[t]:o.call(data,t)}},function(t,n,r){var e=r(162),o="__lodash_hash_undefined__";t.exports=function(t,n){var data=this.__data__;return this.size+=this.has(t)?0:1,data[t]=e&&void 0===n?o:n,this}},function(t,n){t.exports=function(){this.__data__=[],this.size=0}},function(t,n,r){var e=r(164),o=Array.prototype.splice;t.exports=function(t){var data=this.__data__,n=e(data,t);return!(n<0||(n==data.length-1?data.pop():o.call(data,n,1),--this.size,0))}},function(t,n,r){var e=r(164);t.exports=function(t){var data=this.__data__,n=e(data,t);return n<0?void 0:data[n][1]}},function(t,n,r){var e=r(164);t.exports=function(t){return e(this.__data__,t)>-1}},function(t,n,r){var e=r(164);t.exports=function(t,n){var data=this.__data__,r=e(data,t);return r<0?(++this.size,data.push([t,n])):data[r][1]=n,this}},function(t,n,r){var e=r(166);t.exports=function(t){var n=e(this,t).delete(t);return this.size-=n?1:0,n}},function(t,n){t.exports=function(t){var n=typeof t;return"string"==n||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==t:null===t}},function(t,n,r){var e=r(166);t.exports=function(t){return e(this,t).get(t)}},function(t,n,r){var e=r(166);t.exports=function(t){return e(this,t).has(t)}},function(t,n,r){var e=r(166);t.exports=function(t,n){var data=e(this,t),r=data.size;return data.set(t,n),this.size+=data.size==r?0:1,this}},function(t,n,r){var e=r(280);t.exports=function(t){return null==t?"":e(t)}},function(t,n,r){var e=r(160),o=r(209),c=r(150),f=r(175),l=1/0,v=e?e.prototype:void 0,y=v?v.toString:void 0;t.exports=function t(n){if("string"==typeof n)return n;if(c(n))return o(n,t)+"";if(f(n))return y?y.call(n):"";var r=n+"";return"0"==r&&1/n==-l?"-0":r}},function(t,n,r){var e=r(6),o=r(204)(!1);e(e.S,"Object",{values:function(t){return o(t)}})},function(t,n,r){var e=r(283),o=r(302)(function(object,source,t){e(object,source,t)});t.exports=o},function(t,n,r){var e=r(210),o=r(211),c=r(289),f=r(291),l=r(147),v=r(168),y=r(221);t.exports=function t(object,source,n,r,h){object!==source&&c(source,function(c,v){if(l(c))h||(h=new e),f(object,source,v,n,t,r,h);else{var x=r?r(y(object,v),c,v+"",object,source,h):void 0;void 0===x&&(x=c),o(object,v,x)}},v)}},function(t,n,r){var e=r(163);t.exports=function(){this.__data__=new e,this.size=0}},function(t,n){t.exports=function(t){var data=this.__data__,n=data.delete(t);return this.size=data.size,n}},function(t,n){t.exports=function(t){return this.__data__.get(t)}},function(t,n){t.exports=function(t){return this.__data__.has(t)}},function(t,n,r){var e=r(163),o=r(177),c=r(207),f=200;t.exports=function(t,n){var data=this.__data__;if(data instanceof e){var r=data.__data__;if(!o||r.length<f-1)return r.push([t,n]),this.size=++data.size,this;data=this.__data__=new c(r)}return data.set(t,n),this.size=data.size,this}},function(t,n,r){var e=r(290)();t.exports=e},function(t,n){t.exports=function(t){return function(object,n,r){for(var e=-1,o=Object(object),c=r(object),f=c.length;f--;){var l=c[t?f:++e];if(!1===n(o[l],l,o))break}return object}}},function(t,n,r){var e=r(211),o=r(213),c=r(214),f=r(215),l=r(216),v=r(184),y=r(150),h=r(295),x=r(185),d=r(176),j=r(147),_=r(219),w=r(220),O=r(221),A=r(298);t.exports=function(object,source,t,n,r,m,S){var P=O(object,t),z=O(source,t),I=S.get(z);if(I)e(object,t,I);else{var k=m?m(P,z,t+"",object,source,S):void 0,E=void 0===k;if(E){var F=y(z),M=!F&&x(z),T=!F&&!M&&w(z);k=z,F||M||T?y(P)?k=P:h(P)?k=f(P):M?(E=!1,k=o(z,!0)):T?(E=!1,k=c(z,!0)):k=[]:_(z)||v(z)?(k=P,v(P)?k=A(P):j(P)&&!d(P)||(k=l(z))):E=!1}E&&(S.set(z,k),r(k,z,n,m,S),S.delete(z)),e(object,t,k)}}},function(t,n,r){var e=r(146).Uint8Array;t.exports=e},function(t,n,r){var e=r(147),o=Object.create,c=function(){function object(){}return function(t){if(!e(t))return{};if(o)return o(t);object.prototype=t;var n=new object;return object.prototype=void 0,n}}();t.exports=c},function(t,n,r){var e=r(157),o=r(151),c="[object Arguments]";t.exports=function(t){return o(t)&&e(t)==c}},function(t,n,r){var e=r(167),o=r(151);t.exports=function(t){return o(t)&&e(t)}},function(t,n){t.exports=function(){return!1}},function(t,n,r){var e=r(157),o=r(218),c=r(151),f={};f["[object Float32Array]"]=f["[object Float64Array]"]=f["[object Int8Array]"]=f["[object Int16Array]"]=f["[object Int32Array]"]=f["[object Uint8Array]"]=f["[object Uint8ClampedArray]"]=f["[object Uint16Array]"]=f["[object Uint32Array]"]=!0,f["[object Arguments]"]=f["[object Array]"]=f["[object ArrayBuffer]"]=f["[object Boolean]"]=f["[object DataView]"]=f["[object Date]"]=f["[object Error]"]=f["[object Function]"]=f["[object Map]"]=f["[object Number]"]=f["[object Object]"]=f["[object RegExp]"]=f["[object Set]"]=f["[object String]"]=f["[object WeakMap]"]=!1,t.exports=function(t){return c(t)&&o(t.length)&&!!f[e(t)]}},function(t,n,r){var e=r(158),o=r(168);t.exports=function(t){return e(t,o(t))}},function(t,n){t.exports=function(t,n){for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);return e}},function(t,n,r){var e=r(147),o=r(183),c=r(301),f=Object.prototype.hasOwnProperty;t.exports=function(object){if(!e(object))return c(object);var t=o(object),n=[];for(var r in object)("constructor"!=r||!t&&f.call(object,r))&&n.push(r);return n}},function(t,n){t.exports=function(object){var t=[];if(null!=object)for(var n in Object(object))t.push(n);return t}},function(t,n,r){var e=r(303),o=r(308);t.exports=function(t){return e(function(object,n){var r=-1,e=n.length,c=e>1?n[e-1]:void 0,f=e>2?n[2]:void 0;for(c=t.length>3&&"function"==typeof c?(e--,c):void 0,f&&o(n[0],n[1],f)&&(c=e<3?void 0:c,e=1),object=Object(object);++r<e;){var source=n[r];source&&t(object,source,r,c)}return object})}},function(t,n,r){var e=r(223),o=r(224),c=r(225);t.exports=function(t,n){return c(o(t,n,e),t+"")}},function(t,n){t.exports=function(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}},function(t,n,r){var e=r(306),o=r(212),c=r(223),f=o?function(t,n){return o(t,"toString",{configurable:!0,enumerable:!1,value:e(n),writable:!0})}:c;t.exports=f},function(t,n){t.exports=function(t){return function(){return t}}},function(t,n){var r=800,e=16,o=Date.now;t.exports=function(t){var n=0,c=0;return function(){var f=o(),l=e-(f-c);if(c=f,l>0){if(++n>=r)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},function(t,n,r){var e=r(165),o=r(167),c=r(189),f=r(147);t.exports=function(t,n,object){if(!f(object))return!1;var r=typeof n;return!!("number"==r?o(object)&&c(n,object.length):"string"==r&&n in object)&&e(object[n],t)}},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}r.d(n,"a",function(){return e})},function(t,n,r){"use strict";function e(t,n){for(var i=0;i<n.length;i++){var r=n[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function o(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}r.d(n,"a",function(){return o})},function(t,n,r){var e=r(190),o=1,c=4;t.exports=function(t){return e(t,o|c)}},function(t,n){t.exports=function(t,n){for(var r=-1,e=null==t?0:t.length;++r<e&&!1!==n(t[r],r,t););return t}},function(t,n,r){var e=r(158),o=r(191);t.exports=function(object,source){return object&&e(source,o(source),object)}},function(t,n,r){var e=r(183),o=r(315),c=Object.prototype.hasOwnProperty;t.exports=function(object){if(!e(object))return o(object);var t=[];for(var n in Object(object))c.call(object,n)&&"constructor"!=n&&t.push(n);return t}},function(t,n,r){var e=r(217)(Object.keys,Object);t.exports=e},function(t,n,r){var e=r(158),o=r(168);t.exports=function(object,source){return object&&e(source,o(source),object)}},function(t,n,r){var e=r(158),o=r(192);t.exports=function(source,object){return e(source,o(source),object)}},function(t,n){t.exports=function(t,n){for(var r=-1,e=null==t?0:t.length,o=0,c=[];++r<e;){var f=t[r];n(f,r,t)&&(c[o++]=f)}return c}},function(t,n,r){var e=r(158),o=r(227);t.exports=function(source,object){return e(source,o(source),object)}},function(t,n,r){var e=r(228),o=r(192),c=r(191);t.exports=function(object){return e(object,c,o)}},function(t,n,r){var e=r(156)(r(146),"DataView");t.exports=e},function(t,n,r){var e=r(156)(r(146),"Promise");t.exports=e},function(t,n,r){var e=r(156)(r(146),"Set");t.exports=e},function(t,n,r){var e=r(156)(r(146),"WeakMap");t.exports=e},function(t,n){var r=Object.prototype.hasOwnProperty;t.exports=function(t){var n=t.length,e=new t.constructor(n);return n&&"string"==typeof t[0]&&r.call(t,"index")&&(e.index=t.index,e.input=t.input),e}},function(t,n,r){var e=r(181),o=r(327),c=r(328),f=r(329),l=r(214),v="[object Boolean]",y="[object Date]",h="[object Map]",x="[object Number]",d="[object RegExp]",j="[object Set]",_="[object String]",w="[object Symbol]",O="[object ArrayBuffer]",A="[object DataView]",m="[object Float32Array]",S="[object Float64Array]",P="[object Int8Array]",z="[object Int16Array]",I="[object Int32Array]",k="[object Uint8Array]",E="[object Uint8ClampedArray]",F="[object Uint16Array]",M="[object Uint32Array]";t.exports=function(object,t,n){var r=object.constructor;switch(t){case O:return e(object);case v:case y:return new r(+object);case A:return o(object,n);case m:case S:case P:case z:case I:case k:case E:case F:case M:return l(object,n);case h:return new r;case x:case _:return new r(object);case d:return c(object);case j:return new r;case w:return f(object)}}},function(t,n,r){var e=r(181);t.exports=function(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}},function(t,n){var r=/\w*$/;t.exports=function(t){var n=new t.constructor(t.source,r.exec(t));return n.lastIndex=t.lastIndex,n}},function(t,n,r){var e=r(160),o=e?e.prototype:void 0,c=o?o.valueOf:void 0;t.exports=function(symbol){return c?Object(c.call(symbol)):{}}},function(t,n,r){var e=r(331),o=r(186),c=r(187),f=c&&c.isMap,l=f?o(f):e;t.exports=l},function(t,n,r){var e=r(194),o=r(151),c="[object Map]";t.exports=function(t){return o(t)&&e(t)==c}},function(t,n,r){var e=r(333),o=r(186),c=r(187),f=c&&c.isSet,l=f?o(f):e;t.exports=l},function(t,n,r){var e=r(194),o=r(151),c="[object Set]";t.exports=function(t){return o(t)&&e(t)==c}},function(t,n,r){var e=r(190),o=1,c=4;t.exports=function(t,n){return e(t,o|c,n="function"==typeof n?n:void 0)}},function(t,n,r){var e=r(209),o=r(190),c=r(336),f=r(161),l=r(158),v=r(340),y=r(341),h=r(229),x=y(function(object,t){var n={};if(null==object)return n;var r=!1;t=e(t,function(path){return path=f(path,object),r||(r=path.length>1),path}),l(object,h(object),n),r&&(n=o(n,7,v));for(var y=t.length;y--;)c(n,t[y]);return n});t.exports=x},function(t,n,r){var e=r(161),o=r(337),c=r(338),f=r(178);t.exports=function(object,path){return path=e(path,object),null==(object=c(object,path))||delete object[f(o(path))]}},function(t,n){t.exports=function(t){var n=null==t?0:t.length;return n?t[n-1]:void 0}},function(t,n,r){var e=r(205),o=r(339);t.exports=function(object,path){return path.length<2?object:e(object,o(path,0,-1))}},function(t,n){t.exports=function(t,n,r){var e=-1,o=t.length;n<0&&(n=-n>o?0:o+n),(r=r>o?o:r)<0&&(r+=o),o=n>r?0:r-n>>>0,n>>>=0;for(var c=Array(o);++e<o;)c[e]=t[e+n];return c}},function(t,n,r){var e=r(219);t.exports=function(t){return e(t)?void 0:t}},function(t,n,r){var e=r(342),o=r(224),c=r(225);t.exports=function(t){return c(o(t,void 0,e),t+"")}},function(t,n,r){var e=r(343);t.exports=function(t){return null!=t&&t.length?e(t,1):[]}},function(t,n,r){var e=r(193),o=r(344);t.exports=function t(n,r,c,f,l){var v=-1,y=n.length;for(c||(c=o),l||(l=[]);++v<y;){var h=n[v];r>0&&c(h)?r>1?t(h,r-1,c,f,l):e(l,h):f||(l[l.length]=h)}return l}},function(t,n,r){var e=r(160),o=r(184),c=r(150),f=e?e.isConcatSpreadable:void 0;t.exports=function(t){return c(t)||o(t)||!!(f&&t&&t[f])}},,function(t,n,r){var e=r(347);t.exports=function(object,path,t){return null==object?object:e(object,path,t)}},function(t,n,r){var e=r(188),o=r(161),c=r(189),f=r(147),l=r(178);t.exports=function(object,path,t,n){if(!f(object))return object;for(var r=-1,v=(path=o(path,object)).length,y=v-1,h=object;null!=h&&++r<v;){var x=l(path[r]),d=t;if(r!=y){var j=h[x];void 0===(d=n?n(j,x,h):void 0)&&(d=f(j)?j:c(path[r+1])?[]:{})}e(h,x,d),h=h[x]}return object}},,,,,,,,,,function(t,n,r){"use strict";function e(t){return function(t){if(Array.isArray(t)){for(var i=0,n=new Array(t.length);i<t.length;i++)n[i]=t[i];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}r.d(n,"a",function(){return e})}])]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[1],Array(146).concat([function(t,n,r){var e=r(206),o="object"==typeof self&&self&&self.Object===Object&&self,c=e||o||Function("return this")();t.exports=c},function(t,n,r){"use strict";function e(t){for(var n=arguments,i=1;i<arguments.length;i++)for(var p in arguments[i])t[p]=n[i][p];return t}var o={functional:!0,props:{code:{type:String},inline:{type:Boolean,default:!1},language:{type:String,default:"markup"}},render:function(t,n){var code=n.props.code||(n.children&&n.children.length>0?n.children[0].text:""),r=n.props.inline,o=n.props.language,c=Prism.languages[o],f="language-"+o;return r?t("code",e({},n.data,{class:[n.data.class,f],domProps:e({},n.data.domProps,{innerHTML:Prism.highlight(code,c)})})):t("pre",e({},n.data,{class:[n.data.class,f]}),[t("code",{class:f,domProps:{innerHTML:Prism.highlight(code,c)}})])}};t.exports=o},function(t,n){t.exports=function(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}},,function(t,n,r){var e=r(6),o=r(204)(!0);e(e.S,"Object",{entries:function(t){return o(t)}})},function(t,n){var r=Array.isArray;t.exports=r},function(t,n){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,n,r){"use strict";function e(t,i){return function(t){if(Array.isArray(t))return t}(t)||function(t,i){var n=[],r=!0,e=!1,o=void 0;try{for(var c,f=t[Symbol.iterator]();!(r=(c=f.next()).done)&&(n.push(c.value),!i||n.length!==i);r=!0);}catch(t){e=!0,o=t}finally{try{r||null==f.return||f.return()}finally{if(e)throw o}}return n}(t,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}r.d(n,"a",function(){return e})},,function(t,n,r){var e=r(205);t.exports=function(object,path,t){var n=null==object?void 0:e(object,path);return void 0===n?t:n}},function(t,n,r){var e=r(261),o=r(264);t.exports=function(object,t){var n=o(object,t);return e(n)?n:void 0}},function(t,n,r){var e=r(160),o=r(253),c=r(254),f="[object Null]",l="[object Undefined]",v=e?e.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?l:f:v&&v in Object(t)?o(t):c(t)}},function(t,n,r){var e=r(188),o=r(179);t.exports=function(source,t,object,n){var r=!object;object||(object={});for(var c=-1,f=t.length;++c<f;){var l=t[c],v=n?n(object[l],source[l],l,object,source):void 0;void 0===v&&(v=source[l]),r?o(object,l,v):e(object,l,v)}return object}},,function(t,n,r){var e=r(146).Symbol;t.exports=e},function(t,n,r){var e=r(151),o=r(252),c=r(255),f=r(279);t.exports=function(t,object){return e(t)?t:o(t,object)?[t]:c(f(t))}},function(t,n,r){var e=r(156)(Object,"create");t.exports=e},function(t,n,r){var e=r(269),o=r(270),c=r(271),f=r(272),l=r(273);function v(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}v.prototype.clear=e,v.prototype.delete=o,v.prototype.get=c,v.prototype.has=f,v.prototype.set=l,t.exports=v},function(t,n,r){var e=r(165);t.exports=function(t,n){for(var r=t.length;r--;)if(e(t[r][0],n))return r;return-1}},function(t,n){t.exports=function(t,n){return t===n||t!=t&&n!=n}},function(t,n,r){var e=r(275);t.exports=function(map,t){var data=map.__data__;return e(t)?data["string"==typeof t?"string":"hash"]:data.map}},function(t,n,r){var e=r(176),o=r(218);t.exports=function(t){return null!=t&&o(t.length)&&!e(t)}},function(t,n,r){var e=r(222),o=r(300),c=r(167);t.exports=function(object){return c(object)?e(object,!0):o(object)}},,,,,,,function(t,n,r){var e=r(157),o=r(152),c="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||o(t)&&e(t)==c}},function(t,n,r){var e=r(157),o=r(148),c="[object AsyncFunction]",f="[object Function]",l="[object GeneratorFunction]",v="[object Proxy]";t.exports=function(t){if(!o(t))return!1;var n=e(t);return n==f||n==l||n==c||n==v}},function(t,n,r){var e=r(156)(r(146),"Map");t.exports=e},function(t,n,r){var e=r(175),o=1/0;t.exports=function(t){if("string"==typeof t||e(t))return t;var n=t+"";return"0"==n&&1/t==-o?"-0":n}},function(t,n,r){var e=r(212);t.exports=function(object,t,n){"__proto__"==t&&e?e(object,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):object[t]=n}},function(t,n){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,n,r){var e=r(292);t.exports=function(t){var n=new t.constructor(t.byteLength);return new e(n).set(new e(t)),n}},function(t,n,r){var e=r(217)(Object.getPrototypeOf,Object);t.exports=e},function(t,n){var r=Object.prototype;t.exports=function(t){var n=t&&t.constructor;return t===("function"==typeof n&&n.prototype||r)}},function(t,n,r){var e=r(294),o=r(152),c=Object.prototype,f=c.hasOwnProperty,l=c.propertyIsEnumerable,v=e(function(){return arguments}())?e:function(t){return o(t)&&f.call(t,"callee")&&!l.call(t,"callee")};t.exports=v},function(t,n,r){(function(t){var e=r(146),o=r(296),c=n&&!n.nodeType&&n,f=c&&"object"==typeof t&&t&&!t.nodeType&&t,l=f&&f.exports===c?e.Buffer:void 0,v=(l?l.isBuffer:void 0)||o;t.exports=v}).call(this,r(180)(t))},function(t,n){t.exports=function(t){return function(n){return t(n)}}},function(t,n,r){(function(t){var e=r(206),o=n&&!n.nodeType&&n,c=o&&"object"==typeof t&&t&&!t.nodeType&&t,f=c&&c.exports===o&&e.process,l=function(){try{var t=c&&c.require&&c.require("util").types;return t||f&&f.binding&&f.binding("util")}catch(t){}}();t.exports=l}).call(this,r(180)(t))},function(t,n,r){var e=r(179),o=r(165),c=Object.prototype.hasOwnProperty;t.exports=function(object,t,n){var r=object[t];c.call(object,t)&&o(r,n)&&(void 0!==n||t in object)||e(object,t,n)}},function(t,n){var r=9007199254740991,e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,n){var o=typeof t;return!!(n=null==n?r:n)&&("number"==o||"symbol"!=o&&e.test(t))&&t>-1&&t%1==0&&t<n}},function(t,n,r){var e=r(210),o=r(312),c=r(188),f=r(313),l=r(316),v=r(213),y=r(215),h=r(317),x=r(319),d=r(320),j=r(229),_=r(194),w=r(325),O=r(326),A=r(216),m=r(151),S=r(185),P=r(330),z=r(148),I=r(332),k=r(191),E=1,F=2,M=4,T="[object Arguments]",U="[object Function]",B="[object GeneratorFunction]",$="[object Object]",D={};D[T]=D["[object Array]"]=D["[object ArrayBuffer]"]=D["[object DataView]"]=D["[object Boolean]"]=D["[object Date]"]=D["[object Float32Array]"]=D["[object Float64Array]"]=D["[object Int8Array]"]=D["[object Int16Array]"]=D["[object Int32Array]"]=D["[object Map]"]=D["[object Number]"]=D[$]=D["[object RegExp]"]=D["[object Set]"]=D["[object String]"]=D["[object Symbol]"]=D["[object Uint8Array]"]=D["[object Uint8ClampedArray]"]=D["[object Uint16Array]"]=D["[object Uint32Array]"]=!0,D["[object Error]"]=D[U]=D["[object WeakMap]"]=!1,t.exports=function t(n,r,C,V,object,L){var R,W=r&E,N=r&F,G=r&M;if(C&&(R=object?C(n,V,object,L):C(n)),void 0!==R)return R;if(!z(n))return n;var H=m(n);if(H){if(R=w(n),!W)return y(n,R)}else{var J=_(n),K=J==U||J==B;if(S(n))return v(n,W);if(J==$||J==T||K&&!object){if(R=N||K?{}:A(n),!W)return N?x(n,l(R,n)):h(n,f(R,n))}else{if(!D[J])return object?n:{};R=O(n,J,W)}}L||(L=new e);var Q=L.get(n);if(Q)return Q;if(L.set(n,R),I(n))return n.forEach(function(e){R.add(t(e,r,C,e,n,L))}),R;if(P(n))return n.forEach(function(e,o){R.set(o,t(e,r,C,o,n,L))}),R;var X=G?N?j:d:N?keysIn:k,Y=H?void 0:X(n);return o(Y||n,function(e,o){Y&&(e=n[o=e]),c(R,o,t(e,r,C,o,n,L))}),R}},function(t,n,r){var e=r(222),o=r(314),c=r(167);t.exports=function(object){return c(object)?e(object):o(object)}},function(t,n,r){var e=r(318),o=r(226),c=Object.prototype.propertyIsEnumerable,f=Object.getOwnPropertySymbols,l=f?function(object){return null==object?[]:(object=Object(object),e(f(object),function(symbol){return c.call(object,symbol)}))}:o;t.exports=l},function(t,n){t.exports=function(t,n){for(var r=-1,e=n.length,o=t.length;++r<e;)t[o+r]=n[r];return t}},function(t,n,r){var e=r(321),o=r(177),c=r(322),f=r(323),l=r(324),v=r(157),y=r(208),h=y(e),x=y(o),d=y(c),j=y(f),_=y(l),w=v;(e&&"[object DataView]"!=w(new e(new ArrayBuffer(1)))||o&&"[object Map]"!=w(new o)||c&&"[object Promise]"!=w(c.resolve())||f&&"[object Set]"!=w(new f)||l&&"[object WeakMap]"!=w(new l))&&(w=function(t){var n=v(t),r="[object Object]"==n?t.constructor:void 0,e=r?y(r):"";if(e)switch(e){case h:return"[object DataView]";case x:return"[object Map]";case d:return"[object Promise]";case j:return"[object Set]";case _:return"[object WeakMap]"}return n}),t.exports=w},,,,,,,,,,function(t,n,r){var e=r(16),o=r(17),c=r(28).f;t.exports=function(t){return function(n){for(var r,f=o(n),l=e(f),v=l.length,i=0,y=[];v>i;)c.call(f,r=l[i++])&&y.push(t?[r,f[r]]:f[r]);return y}}},function(t,n,r){var e=r(161),o=r(178);t.exports=function(object,path){for(var t=0,n=(path=e(path,object)).length;null!=object&&t<n;)object=object[o(path[t++])];return t&&t==n?object:void 0}},function(t,n,r){(function(n){var r="object"==typeof n&&n&&n.Object===Object&&n;t.exports=r}).call(this,r(22))},function(t,n,r){var e=r(258),o=r(274),c=r(276),f=r(277),l=r(278);function v(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}v.prototype.clear=e,v.prototype.delete=o,v.prototype.get=c,v.prototype.has=f,v.prototype.set=l,t.exports=v},function(t,n){var r=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return r.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},function(t,n){t.exports=function(t,n){for(var r=-1,e=null==t?0:t.length,o=Array(e);++r<e;)o[r]=n(t[r],r,t);return o}},function(t,n,r){var e=r(163),o=r(284),c=r(285),f=r(286),l=r(287),v=r(288);function y(t){var data=this.__data__=new e(t);this.size=data.size}y.prototype.clear=o,y.prototype.delete=c,y.prototype.get=f,y.prototype.has=l,y.prototype.set=v,t.exports=y},function(t,n,r){var e=r(179),o=r(165);t.exports=function(object,t,n){(void 0===n||o(object[t],n))&&(void 0!==n||t in object)||e(object,t,n)}},function(t,n,r){var e=r(156),o=function(){try{var t=e(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=o},function(t,n,r){(function(t){var e=r(146),o=n&&!n.nodeType&&n,c=o&&"object"==typeof t&&t&&!t.nodeType&&t,f=c&&c.exports===o?e.Buffer:void 0,l=f?f.allocUnsafe:void 0;t.exports=function(t,n){if(n)return t.slice();var r=t.length,e=l?l(r):new t.constructor(r);return t.copy(e),e}}).call(this,r(180)(t))},function(t,n,r){var e=r(181);t.exports=function(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}},function(t,n){t.exports=function(source,t){var n=-1,r=source.length;for(t||(t=Array(r));++n<r;)t[n]=source[n];return t}},function(t,n,r){var e=r(293),o=r(182),c=r(183);t.exports=function(object){return"function"!=typeof object.constructor||c(object)?{}:e(o(object))}},function(t,n){t.exports=function(t,n){return function(r){return t(n(r))}}},function(t,n){var r=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=r}},function(t,n,r){var e=r(157),o=r(182),c=r(152),f="[object Object]",l=Function.prototype,v=Object.prototype,y=l.toString,h=v.hasOwnProperty,x=y.call(Object);t.exports=function(t){if(!c(t)||e(t)!=f)return!1;var n=o(t);if(null===n)return!0;var r=h.call(n,"constructor")&&n.constructor;return"function"==typeof r&&r instanceof r&&y.call(r)==x}},function(t,n,r){var e=r(297),o=r(186),c=r(187),f=c&&c.isTypedArray,l=f?o(f):e;t.exports=l},function(t,n){t.exports=function(object,t){if("__proto__"!=t)return object[t]}},function(t,n,r){var e=r(299),o=r(184),c=r(151),f=r(185),l=r(189),v=r(220),y=Object.prototype.hasOwnProperty;t.exports=function(t,n){var r=c(t),h=!r&&o(t),x=!r&&!h&&f(t),d=!r&&!h&&!x&&v(t),j=r||h||x||d,_=j?e(t.length,String):[],w=_.length;for(var O in t)!n&&!y.call(t,O)||j&&("length"==O||x&&("offset"==O||"parent"==O)||d&&("buffer"==O||"byteLength"==O||"byteOffset"==O)||l(O,w))||_.push(O);return _}},function(t,n){t.exports=function(t){return t}},function(t,n,r){var e=r(304),o=Math.max;t.exports=function(t,n,r){return n=o(void 0===n?t.length-1:n,0),function(){for(var c=arguments,f=-1,l=o(c.length-n,0),v=Array(l);++f<l;)v[f]=c[n+f];f=-1;for(var y=Array(n+1);++f<n;)y[f]=c[f];return y[n]=r(v),e(t,this,y)}}},function(t,n,r){var e=r(305),o=r(307)(e);t.exports=o},function(t,n){t.exports=function(){return[]}},function(t,n,r){var e=r(193),o=r(182),c=r(192),f=r(226),l=Object.getOwnPropertySymbols?function(object){for(var t=[];object;)e(t,c(object)),object=o(object);return t}:f;t.exports=l},function(t,n,r){var e=r(193),o=r(151);t.exports=function(object,t,n){var r=t(object);return o(object)?r:e(r,n(object))}},function(t,n,r){var e=r(228),o=r(227),c=r(168);t.exports=function(object){return e(object,c,o)}},,,,,,,,,,,,,,,,,,,,,,,function(t,n,r){var e=r(151),o=r(175),c=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,f=/^\w*$/;t.exports=function(t,object){if(e(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||f.test(t)||!c.test(t)||null!=object&&t in Object(object)}},function(t,n,r){var e=r(160),o=Object.prototype,c=o.hasOwnProperty,f=o.toString,l=e?e.toStringTag:void 0;t.exports=function(t){var n=c.call(t,l),r=t[l];try{t[l]=void 0;var e=!0}catch(t){}var o=f.call(t);return e&&(n?t[l]=r:delete t[l]),o}},function(t,n){var r=Object.prototype.toString;t.exports=function(t){return r.call(t)}},function(t,n,r){var e=r(256),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c=/\\(\\)?/g,f=e(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(o,function(t,r,e,o){n.push(e?o.replace(c,"$1"):r||t)}),n});t.exports=f},function(t,n,r){var e=r(257),o=500;t.exports=function(t){var n=e(t,function(t){return r.size===o&&r.clear(),t}),r=n.cache;return n}},function(t,n,r){var e=r(207),o="Expected a function";function c(t,n){if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new TypeError(o);var r=function(){var e=arguments,o=n?n.apply(this,e):e[0],c=r.cache;if(c.has(o))return c.get(o);var f=t.apply(this,e);return r.cache=c.set(o,f)||c,f};return r.cache=new(c.Cache||e),r}c.Cache=e,t.exports=c},function(t,n,r){var e=r(259),o=r(163),c=r(177);t.exports=function(){this.size=0,this.__data__={hash:new e,map:new(c||o),string:new e}}},function(t,n,r){var e=r(260),o=r(265),c=r(266),f=r(267),l=r(268);function v(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}v.prototype.clear=e,v.prototype.delete=o,v.prototype.get=c,v.prototype.has=f,v.prototype.set=l,t.exports=v},function(t,n,r){var e=r(162);t.exports=function(){this.__data__=e?e(null):{},this.size=0}},function(t,n,r){var e=r(176),o=r(262),c=r(148),f=r(208),l=/^\[object .+?Constructor\]$/,v=Function.prototype,y=Object.prototype,h=v.toString,x=y.hasOwnProperty,d=RegExp("^"+h.call(x).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!c(t)||o(t))&&(e(t)?d:l).test(f(t))}},function(t,n,r){var e,o=r(263),c=(e=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+e:"";t.exports=function(t){return!!c&&c in t}},function(t,n,r){var e=r(146)["__core-js_shared__"];t.exports=e},function(t,n){t.exports=function(object,t){return null==object?void 0:object[t]}},function(t,n){t.exports=function(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}},function(t,n,r){var e=r(162),o="__lodash_hash_undefined__",c=Object.prototype.hasOwnProperty;t.exports=function(t){var data=this.__data__;if(e){var n=data[t];return n===o?void 0:n}return c.call(data,t)?data[t]:void 0}},function(t,n,r){var e=r(162),o=Object.prototype.hasOwnProperty;t.exports=function(t){var data=this.__data__;return e?void 0!==data[t]:o.call(data,t)}},function(t,n,r){var e=r(162),o="__lodash_hash_undefined__";t.exports=function(t,n){var data=this.__data__;return this.size+=this.has(t)?0:1,data[t]=e&&void 0===n?o:n,this}},function(t,n){t.exports=function(){this.__data__=[],this.size=0}},function(t,n,r){var e=r(164),o=Array.prototype.splice;t.exports=function(t){var data=this.__data__,n=e(data,t);return!(n<0||(n==data.length-1?data.pop():o.call(data,n,1),--this.size,0))}},function(t,n,r){var e=r(164);t.exports=function(t){var data=this.__data__,n=e(data,t);return n<0?void 0:data[n][1]}},function(t,n,r){var e=r(164);t.exports=function(t){return e(this.__data__,t)>-1}},function(t,n,r){var e=r(164);t.exports=function(t,n){var data=this.__data__,r=e(data,t);return r<0?(++this.size,data.push([t,n])):data[r][1]=n,this}},function(t,n,r){var e=r(166);t.exports=function(t){var n=e(this,t).delete(t);return this.size-=n?1:0,n}},function(t,n){t.exports=function(t){var n=typeof t;return"string"==n||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==t:null===t}},function(t,n,r){var e=r(166);t.exports=function(t){return e(this,t).get(t)}},function(t,n,r){var e=r(166);t.exports=function(t){return e(this,t).has(t)}},function(t,n,r){var e=r(166);t.exports=function(t,n){var data=e(this,t),r=data.size;return data.set(t,n),this.size+=data.size==r?0:1,this}},function(t,n,r){var e=r(280);t.exports=function(t){return null==t?"":e(t)}},function(t,n,r){var e=r(160),o=r(209),c=r(151),f=r(175),l=1/0,v=e?e.prototype:void 0,y=v?v.toString:void 0;t.exports=function t(n){if("string"==typeof n)return n;if(c(n))return o(n,t)+"";if(f(n))return y?y.call(n):"";var r=n+"";return"0"==r&&1/n==-l?"-0":r}},function(t,n,r){var e=r(6),o=r(204)(!1);e(e.S,"Object",{values:function(t){return o(t)}})},function(t,n,r){var e=r(283),o=r(302)(function(object,source,t){e(object,source,t)});t.exports=o},function(t,n,r){var e=r(210),o=r(211),c=r(289),f=r(291),l=r(148),v=r(168),y=r(221);t.exports=function t(object,source,n,r,h){object!==source&&c(source,function(c,v){if(l(c))h||(h=new e),f(object,source,v,n,t,r,h);else{var x=r?r(y(object,v),c,v+"",object,source,h):void 0;void 0===x&&(x=c),o(object,v,x)}},v)}},function(t,n,r){var e=r(163);t.exports=function(){this.__data__=new e,this.size=0}},function(t,n){t.exports=function(t){var data=this.__data__,n=data.delete(t);return this.size=data.size,n}},function(t,n){t.exports=function(t){return this.__data__.get(t)}},function(t,n){t.exports=function(t){return this.__data__.has(t)}},function(t,n,r){var e=r(163),o=r(177),c=r(207),f=200;t.exports=function(t,n){var data=this.__data__;if(data instanceof e){var r=data.__data__;if(!o||r.length<f-1)return r.push([t,n]),this.size=++data.size,this;data=this.__data__=new c(r)}return data.set(t,n),this.size=data.size,this}},function(t,n,r){var e=r(290)();t.exports=e},function(t,n){t.exports=function(t){return function(object,n,r){for(var e=-1,o=Object(object),c=r(object),f=c.length;f--;){var l=c[t?f:++e];if(!1===n(o[l],l,o))break}return object}}},function(t,n,r){var e=r(211),o=r(213),c=r(214),f=r(215),l=r(216),v=r(184),y=r(151),h=r(295),x=r(185),d=r(176),j=r(148),_=r(219),w=r(220),O=r(221),A=r(298);t.exports=function(object,source,t,n,r,m,S){var P=O(object,t),z=O(source,t),I=S.get(z);if(I)e(object,t,I);else{var k=m?m(P,z,t+"",object,source,S):void 0,E=void 0===k;if(E){var F=y(z),M=!F&&x(z),T=!F&&!M&&w(z);k=z,F||M||T?y(P)?k=P:h(P)?k=f(P):M?(E=!1,k=o(z,!0)):T?(E=!1,k=c(z,!0)):k=[]:_(z)||v(z)?(k=P,v(P)?k=A(P):j(P)&&!d(P)||(k=l(z))):E=!1}E&&(S.set(z,k),r(k,z,n,m,S),S.delete(z)),e(object,t,k)}}},function(t,n,r){var e=r(146).Uint8Array;t.exports=e},function(t,n,r){var e=r(148),o=Object.create,c=function(){function object(){}return function(t){if(!e(t))return{};if(o)return o(t);object.prototype=t;var n=new object;return object.prototype=void 0,n}}();t.exports=c},function(t,n,r){var e=r(157),o=r(152),c="[object Arguments]";t.exports=function(t){return o(t)&&e(t)==c}},function(t,n,r){var e=r(167),o=r(152);t.exports=function(t){return o(t)&&e(t)}},function(t,n){t.exports=function(){return!1}},function(t,n,r){var e=r(157),o=r(218),c=r(152),f={};f["[object Float32Array]"]=f["[object Float64Array]"]=f["[object Int8Array]"]=f["[object Int16Array]"]=f["[object Int32Array]"]=f["[object Uint8Array]"]=f["[object Uint8ClampedArray]"]=f["[object Uint16Array]"]=f["[object Uint32Array]"]=!0,f["[object Arguments]"]=f["[object Array]"]=f["[object ArrayBuffer]"]=f["[object Boolean]"]=f["[object DataView]"]=f["[object Date]"]=f["[object Error]"]=f["[object Function]"]=f["[object Map]"]=f["[object Number]"]=f["[object Object]"]=f["[object RegExp]"]=f["[object Set]"]=f["[object String]"]=f["[object WeakMap]"]=!1,t.exports=function(t){return c(t)&&o(t.length)&&!!f[e(t)]}},function(t,n,r){var e=r(158),o=r(168);t.exports=function(t){return e(t,o(t))}},function(t,n){t.exports=function(t,n){for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);return e}},function(t,n,r){var e=r(148),o=r(183),c=r(301),f=Object.prototype.hasOwnProperty;t.exports=function(object){if(!e(object))return c(object);var t=o(object),n=[];for(var r in object)("constructor"!=r||!t&&f.call(object,r))&&n.push(r);return n}},function(t,n){t.exports=function(object){var t=[];if(null!=object)for(var n in Object(object))t.push(n);return t}},function(t,n,r){var e=r(303),o=r(308);t.exports=function(t){return e(function(object,n){var r=-1,e=n.length,c=e>1?n[e-1]:void 0,f=e>2?n[2]:void 0;for(c=t.length>3&&"function"==typeof c?(e--,c):void 0,f&&o(n[0],n[1],f)&&(c=e<3?void 0:c,e=1),object=Object(object);++r<e;){var source=n[r];source&&t(object,source,r,c)}return object})}},function(t,n,r){var e=r(223),o=r(224),c=r(225);t.exports=function(t,n){return c(o(t,n,e),t+"")}},function(t,n){t.exports=function(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}},function(t,n,r){var e=r(306),o=r(212),c=r(223),f=o?function(t,n){return o(t,"toString",{configurable:!0,enumerable:!1,value:e(n),writable:!0})}:c;t.exports=f},function(t,n){t.exports=function(t){return function(){return t}}},function(t,n){var r=800,e=16,o=Date.now;t.exports=function(t){var n=0,c=0;return function(){var f=o(),l=e-(f-c);if(c=f,l>0){if(++n>=r)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}},function(t,n,r){var e=r(165),o=r(167),c=r(189),f=r(148);t.exports=function(t,n,object){if(!f(object))return!1;var r=typeof n;return!!("number"==r?o(object)&&c(n,object.length):"string"==r&&n in object)&&e(object[n],t)}},function(t,n,r){"use strict";function e(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}r.d(n,"a",function(){return e})},function(t,n,r){"use strict";function e(t,n){for(var i=0;i<n.length;i++){var r=n[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function o(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}r.d(n,"a",function(){return o})},function(t,n,r){var e=r(190),o=1,c=4;t.exports=function(t){return e(t,o|c)}},function(t,n){t.exports=function(t,n){for(var r=-1,e=null==t?0:t.length;++r<e&&!1!==n(t[r],r,t););return t}},function(t,n,r){var e=r(158),o=r(191);t.exports=function(object,source){return object&&e(source,o(source),object)}},function(t,n,r){var e=r(183),o=r(315),c=Object.prototype.hasOwnProperty;t.exports=function(object){if(!e(object))return o(object);var t=[];for(var n in Object(object))c.call(object,n)&&"constructor"!=n&&t.push(n);return t}},function(t,n,r){var e=r(217)(Object.keys,Object);t.exports=e},function(t,n,r){var e=r(158),o=r(168);t.exports=function(object,source){return object&&e(source,o(source),object)}},function(t,n,r){var e=r(158),o=r(192);t.exports=function(source,object){return e(source,o(source),object)}},function(t,n){t.exports=function(t,n){for(var r=-1,e=null==t?0:t.length,o=0,c=[];++r<e;){var f=t[r];n(f,r,t)&&(c[o++]=f)}return c}},function(t,n,r){var e=r(158),o=r(227);t.exports=function(source,object){return e(source,o(source),object)}},function(t,n,r){var e=r(228),o=r(192),c=r(191);t.exports=function(object){return e(object,c,o)}},function(t,n,r){var e=r(156)(r(146),"DataView");t.exports=e},function(t,n,r){var e=r(156)(r(146),"Promise");t.exports=e},function(t,n,r){var e=r(156)(r(146),"Set");t.exports=e},function(t,n,r){var e=r(156)(r(146),"WeakMap");t.exports=e},function(t,n){var r=Object.prototype.hasOwnProperty;t.exports=function(t){var n=t.length,e=new t.constructor(n);return n&&"string"==typeof t[0]&&r.call(t,"index")&&(e.index=t.index,e.input=t.input),e}},function(t,n,r){var e=r(181),o=r(327),c=r(328),f=r(329),l=r(214),v="[object Boolean]",y="[object Date]",h="[object Map]",x="[object Number]",d="[object RegExp]",j="[object Set]",_="[object String]",w="[object Symbol]",O="[object ArrayBuffer]",A="[object DataView]",m="[object Float32Array]",S="[object Float64Array]",P="[object Int8Array]",z="[object Int16Array]",I="[object Int32Array]",k="[object Uint8Array]",E="[object Uint8ClampedArray]",F="[object Uint16Array]",M="[object Uint32Array]";t.exports=function(object,t,n){var r=object.constructor;switch(t){case O:return e(object);case v:case y:return new r(+object);case A:return o(object,n);case m:case S:case P:case z:case I:case k:case E:case F:case M:return l(object,n);case h:return new r;case x:case _:return new r(object);case d:return c(object);case j:return new r;case w:return f(object)}}},function(t,n,r){var e=r(181);t.exports=function(t,n){var r=n?e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}},function(t,n){var r=/\w*$/;t.exports=function(t){var n=new t.constructor(t.source,r.exec(t));return n.lastIndex=t.lastIndex,n}},function(t,n,r){var e=r(160),o=e?e.prototype:void 0,c=o?o.valueOf:void 0;t.exports=function(symbol){return c?Object(c.call(symbol)):{}}},function(t,n,r){var e=r(331),o=r(186),c=r(187),f=c&&c.isMap,l=f?o(f):e;t.exports=l},function(t,n,r){var e=r(194),o=r(152),c="[object Map]";t.exports=function(t){return o(t)&&e(t)==c}},function(t,n,r){var e=r(333),o=r(186),c=r(187),f=c&&c.isSet,l=f?o(f):e;t.exports=l},function(t,n,r){var e=r(194),o=r(152),c="[object Set]";t.exports=function(t){return o(t)&&e(t)==c}},function(t,n,r){var e=r(190),o=1,c=4;t.exports=function(t,n){return e(t,o|c,n="function"==typeof n?n:void 0)}},function(t,n,r){var e=r(209),o=r(190),c=r(336),f=r(161),l=r(158),v=r(340),y=r(341),h=r(229),x=y(function(object,t){var n={};if(null==object)return n;var r=!1;t=e(t,function(path){return path=f(path,object),r||(r=path.length>1),path}),l(object,h(object),n),r&&(n=o(n,7,v));for(var y=t.length;y--;)c(n,t[y]);return n});t.exports=x},function(t,n,r){var e=r(161),o=r(337),c=r(338),f=r(178);t.exports=function(object,path){return path=e(path,object),null==(object=c(object,path))||delete object[f(o(path))]}},function(t,n){t.exports=function(t){var n=null==t?0:t.length;return n?t[n-1]:void 0}},function(t,n,r){var e=r(205),o=r(339);t.exports=function(object,path){return path.length<2?object:e(object,o(path,0,-1))}},function(t,n){t.exports=function(t,n,r){var e=-1,o=t.length;n<0&&(n=-n>o?0:o+n),(r=r>o?o:r)<0&&(r+=o),o=n>r?0:r-n>>>0,n>>>=0;for(var c=Array(o);++e<o;)c[e]=t[e+n];return c}},function(t,n,r){var e=r(219);t.exports=function(t){return e(t)?void 0:t}},function(t,n,r){var e=r(342),o=r(224),c=r(225);t.exports=function(t){return c(o(t,void 0,e),t+"")}},function(t,n,r){var e=r(343);t.exports=function(t){return null!=t&&t.length?e(t,1):[]}},function(t,n,r){var e=r(193),o=r(344);t.exports=function t(n,r,c,f,l){var v=-1,y=n.length;for(c||(c=o),l||(l=[]);++v<y;){var h=n[v];r>0&&c(h)?r>1?t(h,r-1,c,f,l):e(l,h):f||(l[l.length]=h)}return l}},function(t,n,r){var e=r(160),o=r(184),c=r(151),f=e?e.isConcatSpreadable:void 0;t.exports=function(t){return c(t)||o(t)||!!(f&&t&&t[f])}},,function(t,n,r){var e=r(347);t.exports=function(object,path,t){return null==object?object:e(object,path,t)}},function(t,n,r){var e=r(188),o=r(161),c=r(189),f=r(148),l=r(178);t.exports=function(object,path,t,n){if(!f(object))return object;for(var r=-1,v=(path=o(path,object)).length,y=v-1,h=object;null!=h&&++r<v;){var x=l(path[r]),d=t;if(r!=y){var j=h[x];void 0===(d=n?n(j,x,h):void 0)&&(d=f(j)?j:c(path[r+1])?[]:{})}e(h,x,d),h=h[x]}return object}},,,,,,,,,,function(t,n,r){"use strict";function e(t){return function(t){if(Array.isArray(t)){for(var i=0,n=new Array(t.length);i<t.length;i++)n[i]=t[i];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}r.d(n,"a",function(){return e})}])]);
\ No newline at end of file
diff --git a/files/ef55f12d8a7588b65c19.js b/files/502370205f0b3be987af.js
similarity index 97%
rename from files/ef55f12d8a7588b65c19.js
rename to files/502370205f0b3be987af.js
index 6ad2930..902f9f9 100644
--- a/files/ef55f12d8a7588b65c19.js
+++ b/files/502370205f0b3be987af.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{361:function(e,r,t){"use strict";t.r(r);var o=t(152),n=(t(61),t(11)),c=(t(21),t(149),t(154)),m=t.n(c),l=t(148),f=t(155),d=t.n(f),h=t(159),v={head:function(){return{title:"Specification for process messages"}},created:function(){var e=this,r=new Date,t="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:t},process:{ts:r.toISOString()},measurements:[{ts:new Date(r.valueOf()+100).toISOString(),series:{force:[26,23,24],pressure:[52.4,46.32,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:t,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildId:"41535"}},part:{type:"SINGLE",partTypeID:"F00VH07328",partID:"420003844",result:"NOK",code:"HUH289",metaData:{toolId:"32324-432143"}},process:{externalProcessId:"b4927dad-58d4-4580-b460-79cefd56775b",ts:r.toISOString(),result:"NOK",shutoffPhase:"phase 2",program:{id:"1",name:"Programm 1",lastChangedDate:"2002-05-30T09:30:10.123+02:00"},shutoffValues:{force:{ts:new Date(r.valueOf()+1e4).toISOString(),value:24,upperError:26,lowerError:22,upperWarn:25,lowerWarn:23,target:24},pressure:{value:50,upperError:52,lowerError:48}},metaData:{maxDuration:"30min",escalation:"shift leader"}},measurements:[{ts:new Date(r.valueOf()+100).toISOString(),phase:"phase 1",name:"heating up",result:"OK",code:"0000 EE01",limits:{pressure:{upperError:4444,lowerError:44,upperWarn:2222,lowerWarn:46,target:35},force:{upperError:[27,24,25],lowerError:[25,22,23]}},specialValues:[{$_time:12,name:"turning point",value:{pressure:24,force:50}}],series:{time:[30,36,42],force:[26,23,24],pressure:[52.4,46.32,44.2432],temperature:[45.4243,46.42342,44.2432]}},{ts:new Date(r.valueOf()+430).toISOString(),phase:"phase 2",name:"processing",result:"OK",series:{$_time:[0,23,24],temperature:[49.2,48.8,50]}}]}},this.$static.examples=Object.entries(Object(n.a)({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","measurements","measurements[0].code","measurements[0].limits","measurements[0].name","measurements[0].phase","measurements[0].result","measurements[0].series","measurements[0].series.$_time","measurements[0].specialValues","measurements[0].specialValues[0].$_time","measurements[0].specialValues[0].name","measurements[0].specialValues[0].value","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result","part.type","process","process.externalProcessId","process.metaData","process.program","process.program.id","process.program.lastChangedDate","process.program.name","process.result","process.shutoffPhase","process.shutoffValues","process.ts"].reduce(function(e,r){return e[r.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=r,e},{'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0]':"measurements[0].limits.pressure",'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1]':"measurements[0].limits.force",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.force",'properties.process.properties.shutoffValues.patternProperties["^[^$]+"]':"process.shutoffValues.force"}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,r){return e['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0].properties.'.concat(r)]="measurements[0].limits.pressure.".concat(r),e['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1].properties.'.concat(r)]="measurements[0].limits.force.".concat(r),e['properties.process.properties.shutoffValues.patternProperties["^[^$]+"].properties.'.concat(r)]="process.shutoffValues.force.".concat(r),e},{}))).reduce(function(r,t){var n=Object(o.a)(t,2),c=n[0],path=n[1],m=d()(e.$static.message,path)||d()(e.$static.complexMessage,path);return m&&(r[c]=[m]),r},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:l.a,prism:m.a,schemaDetail:h.a}},_=t(2),component=Object(_.a)(v,function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"process-message content"},[e._m(0),e._v(" "),t("p",[e._v("The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.")]),e._v(" "),t("img",{staticClass:"is-center",attrs:{src:"images/specification/v2/processPayload.svg",alt:"Class diagram of the process data payload",title:"Class diagram of the process data payload"}}),e._v(" "),t("schemaDetail",{attrs:{type:"v2/process",examples:e.$static.examples}},[t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),t("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[e._v("\n        Process message example\n      ")]),e._v(" "),t("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,r=this._self._c||e;return r("h1",[r("a",{attrs:{id:"Process-Payload",title:"Process Payload"}}),this._v("\n    Process Payload\n  ")])}],!1,null,null,null);r.default=component.exports}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{361:function(e,r,t){"use strict";t.r(r);var o=t(153),n=(t(61),t(11)),c=(t(21),t(150),t(147)),m=t.n(c),l=t(149),f=t(155),d=t.n(f),h=t(159),v={head:function(){return{title:"Specification for process messages"}},created:function(){var e=this,r=new Date,t="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:t},process:{ts:r.toISOString()},measurements:[{ts:new Date(r.valueOf()+100).toISOString(),series:{force:[26,23,24],pressure:[52.4,46.32,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:t,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildId:"41535"}},part:{type:"SINGLE",partTypeID:"F00VH07328",partID:"420003844",result:"NOK",code:"HUH289",metaData:{toolId:"32324-432143"}},process:{externalProcessId:"b4927dad-58d4-4580-b460-79cefd56775b",ts:r.toISOString(),result:"NOK",shutoffPhase:"phase 2",program:{id:"1",name:"Programm 1",lastChangedDate:"2002-05-30T09:30:10.123+02:00"},shutoffValues:{force:{ts:new Date(r.valueOf()+1e4).toISOString(),value:24,upperError:26,lowerError:22,upperWarn:25,lowerWarn:23,target:24},pressure:{value:50,upperError:52,lowerError:48}},metaData:{maxDuration:"30min",escalation:"shift leader"}},measurements:[{ts:new Date(r.valueOf()+100).toISOString(),phase:"phase 1",name:"heating up",result:"OK",code:"0000 EE01",limits:{pressure:{upperError:4444,lowerError:44,upperWarn:2222,lowerWarn:46,target:35},force:{upperError:[27,24,25],lowerError:[25,22,23]}},specialValues:[{$_time:12,name:"turning point",value:{pressure:24,force:50}}],series:{time:[30,36,42],force:[26,23,24],pressure:[52.4,46.32,44.2432],temperature:[45.4243,46.42342,44.2432]}},{ts:new Date(r.valueOf()+430).toISOString(),phase:"phase 2",name:"processing",result:"OK",series:{$_time:[0,23,24],temperature:[49.2,48.8,50]}}]}},this.$static.examples=Object.entries(Object(n.a)({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","measurements","measurements[0].code","measurements[0].limits","measurements[0].name","measurements[0].phase","measurements[0].result","measurements[0].series","measurements[0].series.$_time","measurements[0].specialValues","measurements[0].specialValues[0].$_time","measurements[0].specialValues[0].name","measurements[0].specialValues[0].value","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result","part.type","process","process.externalProcessId","process.metaData","process.program","process.program.id","process.program.lastChangedDate","process.program.name","process.result","process.shutoffPhase","process.shutoffValues","process.ts"].reduce(function(e,r){return e[r.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=r,e},{'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0]':"measurements[0].limits.pressure",'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1]':"measurements[0].limits.force",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.force",'properties.process.properties.shutoffValues.patternProperties["^[^$]+"]':"process.shutoffValues.force"}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,r){return e['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0].properties.'.concat(r)]="measurements[0].limits.pressure.".concat(r),e['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1].properties.'.concat(r)]="measurements[0].limits.force.".concat(r),e['properties.process.properties.shutoffValues.patternProperties["^[^$]+"].properties.'.concat(r)]="process.shutoffValues.force.".concat(r),e},{}))).reduce(function(r,t){var n=Object(o.a)(t,2),c=n[0],path=n[1],m=d()(e.$static.message,path)||d()(e.$static.complexMessage,path);return m&&(r[c]=[m]),r},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:l.a,prism:m.a,schemaDetail:h.a}},_=t(2),component=Object(_.a)(v,function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"process-message content"},[e._m(0),e._v(" "),t("p",[e._v("The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.")]),e._v(" "),t("img",{staticClass:"is-center",attrs:{src:"images/specification/v2/processPayload.svg",alt:"Class diagram of the process data payload",title:"Class diagram of the process data payload"}}),e._v(" "),t("schemaDetail",{attrs:{type:"v2/process",examples:e.$static.examples}},[t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),t("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[e._v("\n        Process message example\n      ")]),e._v(" "),t("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,r=this._self._c||e;return r("h1",[r("a",{attrs:{id:"Process-Payload",title:"Process Payload"}}),this._v("\n    Process Payload\n  ")])}],!1,null,null,null);r.default=component.exports}}]);
\ No newline at end of file
diff --git a/files/5192bd18be1ea2d9d0a7.js b/files/5d7aa3d4daa5e74bc8bd.js
similarity index 96%
rename from files/5192bd18be1ea2d9d0a7.js
rename to files/5d7aa3d4daa5e74bc8bd.js
index 4031407..a0034a2 100644
--- a/files/5192bd18be1ea2d9d0a7.js
+++ b/files/5d7aa3d4daa5e74bc8bd.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{362:function(e,t,r){"use strict";r.r(t);var n=r(152),m=(r(61),r(11)),o=(r(21),r(149),r(154)),c=r.n(o),l=r(148),d=r(155),v=r.n(d),f=r(159),_={head:function(){return{title:"Specification for measurement messages"}},created:function(){var e=this,t=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:r},measurements:[{ts:t.toISOString(),series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:r,operationalStatus:"MM",metaData:{swVersion:"2.0.3.13",swBuildID:"41535"}},part:{partTypeID:"F00VH07328",partID:"420003844",result:"OK",code:"HUH289",metaData:{lotID:"845849",toolID:"32324-432143"}},measurements:[{ts:t.toISOString(),code:"190ABT",result:"OK",series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]},limits:{temperature:{lowerError:40,lowerWarn:45,upperError:50,upperWarn:47.5}}},{ts:new Date(t.valueOf()-5e3).toISOString(),series:{$_time:[0,130,2633],pressure:[52.4,46.32,44.2432]}}]}},this.$static.examples=Object.entries(Object(m.a)({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","measurements","measurements[0].code","measurements[0].limits","measurements[0].result","measurements[0].series","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result"].reduce(function(e,t){return e[t.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=t,e},{'properties.measurements.items.properties.limits.patternProperties["^[^$]+"]':"measurements[0].limits.temperature",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.temperature"}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,t){return e['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].properties.'.concat(t)]="measurements[0].limits.temperature.".concat(t),e},{}))).reduce(function(t,r){var m=Object(n.a)(r,2),o=m[0],path=m[1],c=v()(e.$static.message,path)||v()(e.$static.complexMessage,path);return c&&(t[o]=[c]),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:l.a,prism:c.a,schemaDetail:f.a}},h=r(2),component=Object(h.a)(_,function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"measurement-message content"},[e._m(0),e._v(" "),r("p",[e._v("The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.")]),e._v(" "),r("img",{staticClass:"is-centered",attrs:{src:"images/specification/v2/measurementPayload.svg",alt:"Class diagram of the measurement payload",title:"Class diagram of the measurement payload"}}),e._v(" "),r("schemaDetail",{attrs:{type:"v2/measurement",examples:e.$static.examples}},[r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Multiple message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Measurement-Payload",title:"Measurement Payload"}}),this._v("\n    Measurement Payload\n  ")])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{362:function(e,t,r){"use strict";r.r(t);var n=r(153),m=(r(61),r(11)),o=(r(21),r(150),r(147)),c=r.n(o),l=r(149),d=r(155),v=r.n(d),f=r(159),_={head:function(){return{title:"Specification for measurement messages"}},created:function(){var e=this,t=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:r},measurements:[{ts:t.toISOString(),series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:r,operationalStatus:"MM",metaData:{swVersion:"2.0.3.13",swBuildID:"41535"}},part:{partTypeID:"F00VH07328",partID:"420003844",result:"OK",code:"HUH289",metaData:{lotID:"845849",toolID:"32324-432143"}},measurements:[{ts:t.toISOString(),code:"190ABT",result:"OK",series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]},limits:{temperature:{lowerError:40,lowerWarn:45,upperError:50,upperWarn:47.5}}},{ts:new Date(t.valueOf()-5e3).toISOString(),series:{$_time:[0,130,2633],pressure:[52.4,46.32,44.2432]}}]}},this.$static.examples=Object.entries(Object(m.a)({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","measurements","measurements[0].code","measurements[0].limits","measurements[0].result","measurements[0].series","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result"].reduce(function(e,t){return e[t.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=t,e},{'properties.measurements.items.properties.limits.patternProperties["^[^$]+"]':"measurements[0].limits.temperature",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.temperature"}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,t){return e['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].properties.'.concat(t)]="measurements[0].limits.temperature.".concat(t),e},{}))).reduce(function(t,r){var m=Object(n.a)(r,2),o=m[0],path=m[1],c=v()(e.$static.message,path)||v()(e.$static.complexMessage,path);return c&&(t[o]=[c]),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:l.a,prism:c.a,schemaDetail:f.a}},h=r(2),component=Object(h.a)(_,function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"measurement-message content"},[e._m(0),e._v(" "),r("p",[e._v("The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.")]),e._v(" "),r("img",{staticClass:"is-centered",attrs:{src:"images/specification/v2/measurementPayload.svg",alt:"Class diagram of the measurement payload",title:"Class diagram of the measurement payload"}}),e._v(" "),r("schemaDetail",{attrs:{type:"v2/measurement",examples:e.$static.examples}},[r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Multiple message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Measurement-Payload",title:"Measurement Payload"}}),this._v("\n    Measurement Payload\n  ")])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
diff --git a/files/e6b72c80ba4bc8cff618.js b/files/7e5b30c8046b1e015c6b.js
similarity index 95%
rename from files/e6b72c80ba4bc8cff618.js
rename to files/7e5b30c8046b1e015c6b.js
index 9453c6c..d5a9313 100644
--- a/files/e6b72c80ba4bc8cff618.js
+++ b/files/7e5b30c8046b1e015c6b.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{148:function(e,t,n){"use strict";var o={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(e){this.expanded=!e}},methods:{beforeenter:function(e){this.transitioning=!0,e.style.height=0},enter:function(e){e.style.height=e.scrollHeight+"px"},afterenter:function(e){e.style.height="",this.transitioning=!1},beforeleave:function(e){this.transitioning=!0,e.style.height=e.offsetHeight+"px",e.offsetHeight},leave:function(e){e.style.height=0,e.offsetHeight},afterleave:function(e){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}},r=(n(172),n(2)),component=Object(r.a)(o,function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!e.expanded}},[e.$slots.header?n("header",{staticClass:"card-header",on:{click:function(t){return t.preventDefault(),e.toggle()}}},[n("p",{staticClass:"card-header-title"},[!e.$slots.headerCollapsed||e.expanded?e._t("header"):e._t("headerCollapsed")],2),e._v(" "),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":e.expanded,"fa-angle-up":!e.expanded}})])])]):e._e(),e._v(" "),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":e.beforeleave,leave:e.leave,"after-leave":e.afterleave,"before-enter":e.beforeenter,enter:e.enter,"after-enter":e.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[e._t("default")],2)])])],1)},[],!1,null,null,null);t.a=component.exports},153:function(e,t,n){},172:function(e,t,n){"use strict";var o=n(153);n.n(o).a},173:function(e,t,n){},250:function(e,t,n){"use strict";var o=n(173);n.n(o).a},365:function(e,t,n){"use strict";n.r(t);var o={layout:"sidebar",head:function(){return{title:"Frequently asked questions"}},data:function(){return{faqs:[{question:'What does "Unide" stand for?',answer:"The projects name is derived from understand industry devices. Other ideas like connect industry machines turned out to have meanings in foreign languages or being trademarked already.<br/>Regarding the logo: Unide and PPMP's goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you ('<i>U</i>') highlighted and connects to rings. As a side note, we found that the words almost look like <i>you-nice</i>."},{question:"What's the difference between Unide and PPMP?",answer:'The Production Performance Mangement Protocol (PPMP) is the name of the structure of the <a href="specification/">payload</a> whereas Unide is the project that aims to provide sample implementations and further development of this protocol in and with the Eclipse Open Source community. Nevertheless, PPMP is an open suggestion, and everyone is welcome to using it, even without contributing to the Unide project.'},{question:"Why introducing another industry protocol?",answer:"There are already plenty of transport protocols (REST, AMQP, etc.) available. PPMP aims to provide the very industry specific semantic structure for their payload. So it aims to complete such IoT transport infrastructure and bridge the gap to the manufacturing domain. OPC-DA/UA on the other hand covers full service oriented architecture, security concerns and information model, which makes it more complex and costly to implement and operate. In some use cases, this is not necessary."},{question:"Why have you choosen JSON as syntax?",answer:"JSON is a good fit regarding understandability and size. Having a structured and comprehensible basis is the first step for acceptance in the industry. In the spirit of Donald E. Knuth (\"<a href='http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103.6084'><i>premature optimization is the root of all evil</i></a>\"), further compacting is possible in a later stage."},{question:"Why are time and measurement points separated in multiple arrays?",answer:"We have discussed multiple options for <a href='specification'>series</a>: having an array of<br/>tupels (<code>[[0, 23.34],[...],...]</code>),<br/>plain objects (<code>[{time: 0, temperature: 23.34}, {...}...]</code>),<br/>objects with time as key (<code>{ \"0\": [23.34,...],...}</code>) and other.<br/>When parsing, we had to recognize, that unsigned long int for time and floating point measurements are of different types. Also, all former variants are more verbose due to additional brackets, commas or quotation marks. We believe that the current version is a good compromise between readability and structure."},{question:"I'm interested in Unide/PPMP. How can I contribute?",answer:'The first goal of Unide is to provide sample client/server implementations of PPMP. Secondly, we\'re looking forward to improving PPMP in future versions together with the eclipse community.<br/>If you want to contribute with source code, use cases or implementing it in your devices, let us know and discuss in the <a href="https://github.com/eclipse/unide">unide forum</a> or by forking / filing an issue on <a href="https://github.com/eclipse/unide">github</a>.'},{question:"Why have you included content-spec uri, if that can also be expressed in the a REST url already?",answer:'<a href="specification">content-spec</a> is included in the payload, because PPMP does not rely on a specific transport protocol (like REST).'}]}},components:{card:n(148).a}},r=(n(250),n(2)),component=Object(r.a)(o,function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"faq"},[n("h1",{staticClass:"title is-3"},[e._v("\n    Frequently Asked Questions\n  ")]),e._v(" "),e._m(0),e._v(" "),n("div",{staticClass:"accordion"},e._l(e.faqs,function(t,o){return n("card",{key:o,attrs:{collapsed:!0}},[n("template",{slot:"header"},[e._v("\n        "+e._s(t.question)+"\n      ")]),e._v(" "),n("div",{domProps:{innerHTML:e._s(t.answer)}})],2)}),1)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[this._v("\n    We assembled a few frequently asked questions about the Production Performance Protocol (PPMP) and the Unide project. You're welcome to raise your questions in the "),t("a",{attrs:{href:"https://www.eclipse.org/forums/index.php/f/348/"}},[this._v("Unide forum")]),this._v(".\n  ")])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{149:function(e,t,n){"use strict";var o={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(e){this.expanded=!e}},methods:{beforeenter:function(e){this.transitioning=!0,e.style.height=0},enter:function(e){e.style.height=e.scrollHeight+"px"},afterenter:function(e){e.style.height="",this.transitioning=!1},beforeleave:function(e){this.transitioning=!0,e.style.height=e.offsetHeight+"px",e.offsetHeight},leave:function(e){e.style.height=0,e.offsetHeight},afterleave:function(e){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}},r=(n(172),n(2)),component=Object(r.a)(o,function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!e.expanded}},[e.$slots.header?n("header",{staticClass:"card-header",on:{click:function(t){return t.preventDefault(),e.toggle()}}},[n("p",{staticClass:"card-header-title"},[!e.$slots.headerCollapsed||e.expanded?e._t("header"):e._t("headerCollapsed")],2),e._v(" "),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":e.expanded,"fa-angle-up":!e.expanded}})])])]):e._e(),e._v(" "),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":e.beforeleave,leave:e.leave,"after-leave":e.afterleave,"before-enter":e.beforeenter,enter:e.enter,"after-enter":e.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[e._t("default")],2)])])],1)},[],!1,null,null,null);t.a=component.exports},154:function(e,t,n){},172:function(e,t,n){"use strict";var o=n(154);n.n(o).a},173:function(e,t,n){},250:function(e,t,n){"use strict";var o=n(173);n.n(o).a},365:function(e,t,n){"use strict";n.r(t);var o={layout:"sidebar",head:function(){return{title:"Frequently asked questions"}},data:function(){return{faqs:[{question:'What does "Unide" stand for?',answer:"The projects name is derived from understand industry devices. Other ideas like connect industry machines turned out to have meanings in foreign languages or being trademarked already.<br/>Regarding the logo: Unide and PPMP's goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you ('<i>U</i>') highlighted and connects to rings. As a side note, we found that the words almost look like <i>you-nice</i>."},{question:"What's the difference between Unide and PPMP?",answer:'The Production Performance Mangement Protocol (PPMP) is the name of the structure of the <a href="specification/">payload</a> whereas Unide is the project that aims to provide sample implementations and further development of this protocol in and with the Eclipse Open Source community. Nevertheless, PPMP is an open suggestion, and everyone is welcome to using it, even without contributing to the Unide project.'},{question:"Why introducing another industry protocol?",answer:"There are already plenty of transport protocols (REST, AMQP, etc.) available. PPMP aims to provide the very industry specific semantic structure for their payload. So it aims to complete such IoT transport infrastructure and bridge the gap to the manufacturing domain. OPC-DA/UA on the other hand covers full service oriented architecture, security concerns and information model, which makes it more complex and costly to implement and operate. In some use cases, this is not necessary."},{question:"Why have you choosen JSON as syntax?",answer:"JSON is a good fit regarding understandability and size. Having a structured and comprehensible basis is the first step for acceptance in the industry. In the spirit of Donald E. Knuth (\"<a href='http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103.6084'><i>premature optimization is the root of all evil</i></a>\"), further compacting is possible in a later stage."},{question:"Why are time and measurement points separated in multiple arrays?",answer:"We have discussed multiple options for <a href='specification'>series</a>: having an array of<br/>tupels (<code>[[0, 23.34],[...],...]</code>),<br/>plain objects (<code>[{time: 0, temperature: 23.34}, {...}...]</code>),<br/>objects with time as key (<code>{ \"0\": [23.34,...],...}</code>) and other.<br/>When parsing, we had to recognize, that unsigned long int for time and floating point measurements are of different types. Also, all former variants are more verbose due to additional brackets, commas or quotation marks. We believe that the current version is a good compromise between readability and structure."},{question:"I'm interested in Unide/PPMP. How can I contribute?",answer:'The first goal of Unide is to provide sample client/server implementations of PPMP. Secondly, we\'re looking forward to improving PPMP in future versions together with the eclipse community.<br/>If you want to contribute with source code, use cases or implementing it in your devices, let us know and discuss in the <a href="https://github.com/eclipse/unide">unide forum</a> or by forking / filing an issue on <a href="https://github.com/eclipse/unide">github</a>.'},{question:"Why have you included content-spec uri, if that can also be expressed in the a REST url already?",answer:'<a href="specification">content-spec</a> is included in the payload, because PPMP does not rely on a specific transport protocol (like REST).'}]}},components:{card:n(149).a}},r=(n(250),n(2)),component=Object(r.a)(o,function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"faq"},[n("h1",{staticClass:"title is-3"},[e._v("\n    Frequently Asked Questions\n  ")]),e._v(" "),e._m(0),e._v(" "),n("div",{staticClass:"accordion"},e._l(e.faqs,function(t,o){return n("card",{key:o,attrs:{collapsed:!0}},[n("template",{slot:"header"},[e._v("\n        "+e._s(t.question)+"\n      ")]),e._v(" "),n("div",{domProps:{innerHTML:e._s(t.answer)}})],2)}),1)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[this._v("\n    We assembled a few frequently asked questions about the Production Performance Protocol (PPMP) and the Unide project. You're welcome to raise your questions in the "),t("a",{attrs:{href:"https://www.eclipse.org/forums/index.php/f/348/"}},[this._v("Unide forum")]),this._v(".\n  ")])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
diff --git a/files/8da2e70987bcbfbd2f5b.js b/files/8da2e70987bcbfbd2f5b.js
deleted file mode 100644
index a75c632..0000000
--- a/files/8da2e70987bcbfbd2f5b.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){function t(data){for(var t,n,c=data[0],o=data[1],l=data[2],i=0,h=[];i<c.length;i++)n=c[i],f[n]&&h.push(f[n][0]),f[n]=0;for(t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t]);for(v&&v(data);h.length;)h.shift()();return d.push.apply(d,l||[]),r()}function r(){for(var e,i=0;i<d.length;i++){for(var t=d[i],r=!0,n=1;n<t.length;n++){var c=t[n];0!==f[c]&&(r=!1)}r&&(d.splice(i--,1),e=o(o.s=t[0]))}return e}var n={},c={18:0},f={18:0},d=[];function o(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.e=function(e){var t=[];c[e]?t.push(c[e]):0!==c[e]&&{0:1,5:1,6:1,7:1,8:1,10:1}[e]&&t.push(c[e]=new Promise(function(t,r){for(var n={0:"a2e27af4b290334c2591",1:"31d6cfe0d16ae931b73c",2:"31d6cfe0d16ae931b73c",5:"08ee945502042ce842dc",6:"633c75f24cbc4500f5f7",7:"d0fdea7b1fe36ac7586f",8:"2400600c1c5793c50ab4",9:"31d6cfe0d16ae931b73c",10:"a24872390d726b28f88d",11:"31d6cfe0d16ae931b73c",12:"31d6cfe0d16ae931b73c",13:"31d6cfe0d16ae931b73c",14:"31d6cfe0d16ae931b73c",15:"31d6cfe0d16ae931b73c",16:"31d6cfe0d16ae931b73c",17:"31d6cfe0d16ae931b73c",19:"31d6cfe0d16ae931b73c",20:"31d6cfe0d16ae931b73c",21:"31d6cfe0d16ae931b73c",22:"31d6cfe0d16ae931b73c",23:"31d6cfe0d16ae931b73c",24:"31d6cfe0d16ae931b73c"}[e]+".css",f=o.p+n,d=document.getElementsByTagName("link"),i=0;i<d.length;i++){var l=(v=d[i]).getAttribute("data-href")||v.getAttribute("href");if("stylesheet"===v.rel&&(l===n||l===f))return t()}var h=document.getElementsByTagName("style");for(i=0;i<h.length;i++){var v;if((l=(v=h[i]).getAttribute("data-href"))===n||l===f)return t()}var m=document.createElement("link");m.rel="stylesheet",m.type="text/css",m.onload=t,m.onerror=function(t){var n=t&&t.target&&t.target.src||f,d=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");d.request=n,delete c[e],m.parentNode.removeChild(m),r(d)},m.href=f,document.getElementsByTagName("head")[0].appendChild(m)}).then(function(){c[e]=0}));var r=f[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise(function(t,n){r=f[e]=[t,n]});t.push(r[2]=n);var d,script=document.createElement("script");script.charset="utf-8",script.timeout=120,o.nc&&script.setAttribute("nonce",o.nc),script.src=function(e){return o.p+""+{0:"f19773743ef6c42ef1a3",1:"6c9e9d004259ae561413",2:"73260da83e16c5402b7e",5:"c3e469380ccd51a92bb6",6:"1cf0d23982851c579fa1",7:"e6b72c80ba4bc8cff618",8:"ab8f3355d1ddf7500408",9:"a5b69b3e468a14b1e81c",10:"f33c85efb667140a6849",11:"3bd3bd5c3610dfbadcf7",12:"8002594282be8157a1e9",13:"5192bd18be1ea2d9d0a7",14:"ef55f12d8a7588b65c19",15:"f80ca5b66b19f4c33ff5",16:"b6bdf80f89dba12669e3",17:"f282e1fa39684eb4f452",19:"dc7c6da0365f033f92d7",20:"4c38bba83bbf77de5330",21:"4ac5d3506ba14a8960e0",22:"1233d93532a2b1a688c9",23:"52acf122fd9801427962",24:"31ffb65633ab48546950"}[e]+".js"}(e),d=function(t){script.onerror=script.onload=null,clearTimeout(l);var r=f[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src,d=new Error("Loading chunk "+e+" failed.\n("+n+": "+c+")");d.type=n,d.request=c,r[1](d)}f[e]=void 0}};var l=setTimeout(function(){d({type:"timeout",target:script})},12e4);script.onerror=script.onload=d,document.head.appendChild(script)}return Promise.all(t)},o.m=e,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(object,e){return Object.prototype.hasOwnProperty.call(object,e)},o.p="/unide/files/",o.oe=function(e){throw console.error(e),e};var l=window.webpackJsonp=window.webpackJsonp||[],h=l.push.bind(l);l.push=t,l=l.slice();for(var i=0;i<l.length;i++)t(l[i]);var v=h;r()}([]);
\ No newline at end of file
diff --git a/files/f282e1fa39684eb4f452.js b/files/9e2d6fa9e75e3f9efd77.js
similarity index 97%
rename from files/f282e1fa39684eb4f452.js
rename to files/9e2d6fa9e75e3f9efd77.js
index 2f88de7..b297f74 100644
--- a/files/f282e1fa39684eb4f452.js
+++ b/files/9e2d6fa9e75e3f9efd77.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{363:function(e,t,r){"use strict";r.r(t);r(61);var o=r(152),n=r(11),c=(r(21),r(149),r(154)),m=r.n(c),l=r(148),d=r(155),f=r.n(d),h=r(159),v={head:function(){return{title:"Specification for process messages"}},created:function(){var e=this,t=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v3",device:{id:r},process:{ts:t.toISOString()},measurements:[{ts:new Date(t.valueOf()+100).toISOString(),series:{time:[0,23,24],force:[26,23,null],pressure:[100952.4,100946.32,100944.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v3",device:{id:r,mode:"auto",state:"OK",additionalData:{swVersion:"2.0.3.13",swBuildId:"41535"}},part:{code:"HUH289",id:"420003844",type:"SINGLE",typeId:"F00VH07328",result:"NOK",additionalData:{toolId:"32324-432143"}},process:{externalId:"b4927dad-58d4-4580-b460-79cefd56775b",program:{id:"1",lastChangedDate:"2002-05-30T09:30:10.123+02:00",name:"Programm 1"},result:"NOK",ts:t.toISOString(),additionalData:{escalation:"shift leader",maxDuration:"30min",shutoffPhase:"phase 2"}},measurements:[{code:"0000 EE01",context:{pressure:{limits:{upperError:103e3,lowerError:99e3,upperWarn:102e3,lowerWarn:1e5,target:100950},namespace:"https://mycompany.com/productvariants/5986",unit:"Pa"},force:{limits:{upperError:[29,27,26],lowerError:[23,21,20],upperWarn:[28.5,26.5,25.5],lowerWarn:[23.5,21.5,null],target:[26,24,23]}}},name:"heating up",phase:"phase 1",result:"OK",series:{force:[26,23,24],pressure:[100952.4,100946.32,100944.2432],temperature:[45.4243,null,44.2432]},specialValues:[{name:"turning point",value:{pressure:101530,force:50}},{name:"shutoffForce",time:24,value:{force:24,upperError:26,lowerError:22,upperWarn:25,lowerWarn:23,target:24}},{name:"shutoffPressure",time:24,value:{pressure:100950,upperError:103e3,lowerError:99e3}}],ts:new Date(t.valueOf()+100).toISOString()},{name:"processing",phase:"phase 2",result:"OK",series:{time:[0,23,24],temperature:[49.2,48.8,50]},ts:new Date(t.valueOf()+430).toISOString()}]}},this.$static.examples=Object.entries(Object(n.a)({},["content-spec","device","device.id","device.mode","device.additionalData","measurements","part","part.code","part.id","part.result","part.type","part.typeId","process","process.externalId","process.program","process.program.id","process.program.lastChangedDate","process.program.name","process.result","process.ts"].reduce(function(t,r){return t[e.schemafy(r)]=r,t},{"properties.measurements.allOf[0].items.properties.context":"measurements[0].context",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.unit':"measurements[0].context.pressure.unit",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.namespace':"measurements[0].context.pressure.namespace",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[0]':"measurements[0].context.pressure.limits",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[1]':"measurements[0].context.force.limits",'properties.measurements.allOf[0].items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.force"}),["code","result","series","series.time","ts"].reduce(function(t,r){return t["properties.measurements.allOf[0].items.".concat(e.schemafy(r))]="measurements[0].".concat(r),t},{}),["name","phase","specialValues","specialValues[1].time","specialValues[1].name","specialValues[1].value"].reduce(function(t,r){return t["properties.measurements.allOf[1].items.".concat(e.schemafy(r))]="measurements[0].".concat(r),t},{}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,t){return e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[0].properties.'.concat(t)]="measurements[0].context.pressure.limits.".concat(t),e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[1].properties.'.concat(t)]="measurements[0].context.force.limits.".concat(t),e},{}))).reduce(function(t,r){var n=Object(o.a)(r,2),c=n[0],path=n[1],m=f()(e.$static.message,path)||f()(e.$static.complexMessage,path);return m?t[c]=[m]:console.error('no example provided in process-message for:\n"'.concat(c,'": "').concat(path,'"')),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},methods:{schemafy:function(e){return e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")}},components:{card:l.a,prism:m.a,schemaDetail:h.a}},O=r(2),component=Object(O.a)(v,function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"process-message content"},[e._m(0),e._v(" "),r("p",[e._v("The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.")]),e._v(" "),e._m(1),e._v(" "),r("schemaDetail",{attrs:{type:"v3/process",examples:e.$static.examples}},[r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Process message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Process-Payload",title:"Process Message payload"}}),this._v("\n    Process Payload\n  ")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"diagram"},[t("img",{attrs:{src:"images/specification/v3/processPayload.svg",alt:"Class diagram of the Process message payload",title:"Class diagram of the Process Message payload"}})])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{363:function(e,t,r){"use strict";r.r(t);r(61);var o=r(153),n=r(11),c=(r(21),r(150),r(147)),m=r.n(c),l=r(149),d=r(155),f=r.n(d),h=r(159),v={head:function(){return{title:"Specification for process messages"}},created:function(){var e=this,t=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v3",device:{id:r},process:{ts:t.toISOString()},measurements:[{ts:new Date(t.valueOf()+100).toISOString(),series:{time:[0,23,24],force:[26,23,null],pressure:[100952.4,100946.32,100944.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v3",device:{id:r,mode:"auto",state:"OK",additionalData:{swVersion:"2.0.3.13",swBuildId:"41535"}},part:{code:"HUH289",id:"420003844",type:"SINGLE",typeId:"F00VH07328",result:"NOK",additionalData:{toolId:"32324-432143"}},process:{externalId:"b4927dad-58d4-4580-b460-79cefd56775b",program:{id:"1",lastChangedDate:"2002-05-30T09:30:10.123+02:00",name:"Programm 1"},result:"NOK",ts:t.toISOString(),additionalData:{escalation:"shift leader",maxDuration:"30min",shutoffPhase:"phase 2"}},measurements:[{code:"0000 EE01",context:{pressure:{limits:{upperError:103e3,lowerError:99e3,upperWarn:102e3,lowerWarn:1e5,target:100950},namespace:"https://mycompany.com/productvariants/5986",unit:"Pa"},force:{limits:{upperError:[29,27,26],lowerError:[23,21,20],upperWarn:[28.5,26.5,25.5],lowerWarn:[23.5,21.5,null],target:[26,24,23]}}},name:"heating up",phase:"phase 1",result:"OK",series:{force:[26,23,24],pressure:[100952.4,100946.32,100944.2432],temperature:[45.4243,null,44.2432]},specialValues:[{name:"turning point",value:{pressure:101530,force:50}},{name:"shutoffForce",time:24,value:{force:24,upperError:26,lowerError:22,upperWarn:25,lowerWarn:23,target:24}},{name:"shutoffPressure",time:24,value:{pressure:100950,upperError:103e3,lowerError:99e3}}],ts:new Date(t.valueOf()+100).toISOString()},{name:"processing",phase:"phase 2",result:"OK",series:{time:[0,23,24],temperature:[49.2,48.8,50]},ts:new Date(t.valueOf()+430).toISOString()}]}},this.$static.examples=Object.entries(Object(n.a)({},["content-spec","device","device.id","device.mode","device.additionalData","measurements","part","part.code","part.id","part.result","part.type","part.typeId","process","process.externalId","process.program","process.program.id","process.program.lastChangedDate","process.program.name","process.result","process.ts"].reduce(function(t,r){return t[e.schemafy(r)]=r,t},{"properties.measurements.allOf[0].items.properties.context":"measurements[0].context",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.unit':"measurements[0].context.pressure.unit",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.namespace':"measurements[0].context.pressure.namespace",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[0]':"measurements[0].context.pressure.limits",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[1]':"measurements[0].context.force.limits",'properties.measurements.allOf[0].items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.force"}),["code","result","series","series.time","ts"].reduce(function(t,r){return t["properties.measurements.allOf[0].items.".concat(e.schemafy(r))]="measurements[0].".concat(r),t},{}),["name","phase","specialValues","specialValues[1].time","specialValues[1].name","specialValues[1].value"].reduce(function(t,r){return t["properties.measurements.allOf[1].items.".concat(e.schemafy(r))]="measurements[0].".concat(r),t},{}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,t){return e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[0].properties.'.concat(t)]="measurements[0].context.pressure.limits.".concat(t),e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[1].properties.'.concat(t)]="measurements[0].context.force.limits.".concat(t),e},{}))).reduce(function(t,r){var n=Object(o.a)(r,2),c=n[0],path=n[1],m=f()(e.$static.message,path)||f()(e.$static.complexMessage,path);return m?t[c]=[m]:console.error('no example provided in process-message for:\n"'.concat(c,'": "').concat(path,'"')),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},methods:{schemafy:function(e){return e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")}},components:{card:l.a,prism:m.a,schemaDetail:h.a}},O=r(2),component=Object(O.a)(v,function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"process-message content"},[e._m(0),e._v(" "),r("p",[e._v("The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.")]),e._v(" "),e._m(1),e._v(" "),r("schemaDetail",{attrs:{type:"v3/process",examples:e.$static.examples}},[r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Process message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Process-Payload",title:"Process Message payload"}}),this._v("\n    Process Payload\n  ")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"diagram"},[t("img",{attrs:{src:"images/specification/v3/processPayload.svg",alt:"Class diagram of the Process message payload",title:"Class diagram of the Process Message payload"}})])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
diff --git a/files/aec9bc92e805f0157061.js b/files/aec9bc92e805f0157061.js
new file mode 100644
index 0000000..88896dd
--- /dev/null
+++ b/files/aec9bc92e805f0157061.js
@@ -0,0 +1 @@
+!function(e){function t(data){for(var t,n,c=data[0],o=data[1],l=data[2],i=0,h=[];i<c.length;i++)n=c[i],d[n]&&h.push(d[n][0]),d[n]=0;for(t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t]);for(v&&v(data);h.length;)h.shift()();return f.push.apply(f,l||[]),r()}function r(){for(var e,i=0;i<f.length;i++){for(var t=f[i],r=!0,n=1;n<t.length;n++){var c=t[n];0!==d[c]&&(r=!1)}r&&(f.splice(i--,1),e=o(o.s=t[0]))}return e}var n={},c={18:0},d={18:0},f=[];function o(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.e=function(e){var t=[];c[e]?t.push(c[e]):0!==c[e]&&{0:1,5:1,6:1,7:1,8:1,10:1}[e]&&t.push(c[e]=new Promise(function(t,r){for(var n={0:"a2e27af4b290334c2591",1:"31d6cfe0d16ae931b73c",2:"31d6cfe0d16ae931b73c",5:"08ee945502042ce842dc",6:"633c75f24cbc4500f5f7",7:"d0fdea7b1fe36ac7586f",8:"2400600c1c5793c50ab4",9:"31d6cfe0d16ae931b73c",10:"a24872390d726b28f88d",11:"31d6cfe0d16ae931b73c",12:"31d6cfe0d16ae931b73c",13:"31d6cfe0d16ae931b73c",14:"31d6cfe0d16ae931b73c",15:"31d6cfe0d16ae931b73c",16:"31d6cfe0d16ae931b73c",17:"31d6cfe0d16ae931b73c",19:"31d6cfe0d16ae931b73c",20:"31d6cfe0d16ae931b73c",21:"31d6cfe0d16ae931b73c",22:"31d6cfe0d16ae931b73c",23:"31d6cfe0d16ae931b73c",24:"31d6cfe0d16ae931b73c"}[e]+".css",d=o.p+n,f=document.getElementsByTagName("link"),i=0;i<f.length;i++){var l=(v=f[i]).getAttribute("data-href")||v.getAttribute("href");if("stylesheet"===v.rel&&(l===n||l===d))return t()}var h=document.getElementsByTagName("style");for(i=0;i<h.length;i++){var v;if((l=(v=h[i]).getAttribute("data-href"))===n||l===d)return t()}var m=document.createElement("link");m.rel="stylesheet",m.type="text/css",m.onload=t,m.onerror=function(t){var n=t&&t.target&&t.target.src||d,f=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");f.request=n,delete c[e],m.parentNode.removeChild(m),r(f)},m.href=d,document.getElementsByTagName("head")[0].appendChild(m)}).then(function(){c[e]=0}));var r=d[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise(function(t,n){r=d[e]=[t,n]});t.push(r[2]=n);var f,script=document.createElement("script");script.charset="utf-8",script.timeout=120,o.nc&&script.setAttribute("nonce",o.nc),script.src=function(e){return o.p+""+{0:"de162ef814559a2126c1",1:"335477b030d41a005fb6",2:"73260da83e16c5402b7e",5:"c3e469380ccd51a92bb6",6:"1cf0d23982851c579fa1",7:"7e5b30c8046b1e015c6b",8:"ab8f3355d1ddf7500408",9:"a5b69b3e468a14b1e81c",10:"e92dfea429f78732b2bb",11:"3bd3bd5c3610dfbadcf7",12:"f86c19a025da8965dcb8",13:"5d7aa3d4daa5e74bc8bd",14:"502370205f0b3be987af",15:"b31d3354e22c4e6855e0",16:"ba289679d90095018de3",17:"9e2d6fa9e75e3f9efd77",19:"dc7c6da0365f033f92d7",20:"4c38bba83bbf77de5330",21:"4ac5d3506ba14a8960e0",22:"1233d93532a2b1a688c9",23:"52acf122fd9801427962",24:"31ffb65633ab48546950"}[e]+".js"}(e),f=function(t){script.onerror=script.onload=null,clearTimeout(l);var r=d[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src,f=new Error("Loading chunk "+e+" failed.\n("+n+": "+c+")");f.type=n,f.request=c,r[1](f)}d[e]=void 0}};var l=setTimeout(function(){f({type:"timeout",target:script})},12e4);script.onerror=script.onload=f,document.head.appendChild(script)}return Promise.all(t)},o.m=e,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(object,e){return Object.prototype.hasOwnProperty.call(object,e)},o.p="/unide/files/",o.oe=function(e){throw console.error(e),e};var l=window.webpackJsonp=window.webpackJsonp||[],h=l.push.bind(l);l.push=t,l=l.slice();for(var i=0;i<l.length;i++)t(l[i]);var v=h;r()}([]);
\ No newline at end of file
diff --git a/files/f80ca5b66b19f4c33ff5.js b/files/b31d3354e22c4e6855e0.js
similarity index 95%
rename from files/f80ca5b66b19f4c33ff5.js
rename to files/b31d3354e22c4e6855e0.js
index e93d7dd..14255dc 100644
--- a/files/f80ca5b66b19f4c33ff5.js
+++ b/files/b31d3354e22c4e6855e0.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{360:function(e,t,n){"use strict";n.r(t);var c=n(152),r=(n(61),n(11)),o=(n(21),n(149),n(154)),l=n.n(o),m=n(148),d=n(155),h=n.n(d),v=n(159),f={head:function(){return{title:"Specification for machine messages"}},created:function(){var e=this,t=new Date,n="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v3",device:{id:n},messages:[{ts:t.toISOString(),code:"190ABT"}]},multipleMachineMessages:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v3",device:{id:n,mode:"auto",state:"OK",additionalData:{swVersion:"2.0.3.13",swBuildID:"41535"}},messages:[{code:"190ABT",description:"Electronic control board or its electrical connections are damaged",hint:"Check the control board",origin:"sensor-id-992.2393.22",severity:"HIGH",source:"DEVICE",state:"NEW",title:"control board damaged",ts:t.toISOString(),type:"WARNING",additionalData:{firmware:"20130304_22.020"}},{code:"33-02",description:"Disk size has reached limit. Unable to write log files.",severity:"HIGH",source:"TECHNICAL_INFO",title:"Disk size limit reached",ts:new Date(t.valueOf()+100).toISOString()}]}},this.$static.examples=Object.entries(Object(r.a)({},["content-spec","device","device.id","device.mode","device.additionalData","messages","messages[0].code","messages[0].description","messages[0].hint","messages[0].origin","messages[0].severity","messages[0].source","messages[0].state","messages[0].title","messages[0].ts","messages[0].type","messages[0].additionalData"].reduce(function(e,t){return e[t.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=t,e},{}))).reduce(function(t,n){var r=Object(c.a)(n,2),o=r[0],path=r[1],l=h()(e.$static.message,path)||h()(e.$static.multipleMachineMessages,path);return l?t[o]=[l]:console.error('no example provided in machine-message for: "'.concat(o,'": "').concat(path,'"')),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:m.a,prism:l.a,schemaDetail:v.a}},_=n(2),component=Object(_.a)(f,function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"machine-message content"},[e._m(0),e._v(" "),n("p",[e._v("The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.")]),e._v(" "),e._m(1),e._v(" "),n("schemaDetail",{attrs:{type:"v3/message",examples:e.$static.examples}},[n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),n("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[e._v("\n        Multiple message example\n      ")]),e._v(" "),n("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.multipleMachineMessages)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Message-Payload",title:"Machine Message Payload"}}),this._v("\n    Machine Message Payload\n  ")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"diagram"},[t("img",{attrs:{src:"images/specification/v3/messagePayload.svg",alt:"Class diagram of the message payload",title:"Class diagram of the message payload"}})])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{360:function(e,t,n){"use strict";n.r(t);var c=n(153),r=(n(61),n(11)),o=(n(21),n(150),n(147)),l=n.n(o),m=n(149),d=n(155),h=n.n(d),v=n(159),f={head:function(){return{title:"Specification for machine messages"}},created:function(){var e=this,t=new Date,n="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v3",device:{id:n},messages:[{ts:t.toISOString(),code:"190ABT"}]},multipleMachineMessages:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v3",device:{id:n,mode:"auto",state:"OK",additionalData:{swVersion:"2.0.3.13",swBuildID:"41535"}},messages:[{code:"190ABT",description:"Electronic control board or its electrical connections are damaged",hint:"Check the control board",origin:"sensor-id-992.2393.22",severity:"HIGH",source:"DEVICE",state:"NEW",title:"control board damaged",ts:t.toISOString(),type:"WARNING",additionalData:{firmware:"20130304_22.020"}},{code:"33-02",description:"Disk size has reached limit. Unable to write log files.",severity:"HIGH",source:"TECHNICAL_INFO",title:"Disk size limit reached",ts:new Date(t.valueOf()+100).toISOString()}]}},this.$static.examples=Object.entries(Object(r.a)({},["content-spec","device","device.id","device.mode","device.additionalData","messages","messages[0].code","messages[0].description","messages[0].hint","messages[0].origin","messages[0].severity","messages[0].source","messages[0].state","messages[0].title","messages[0].ts","messages[0].type","messages[0].additionalData"].reduce(function(e,t){return e[t.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=t,e},{}))).reduce(function(t,n){var r=Object(c.a)(n,2),o=r[0],path=r[1],l=h()(e.$static.message,path)||h()(e.$static.multipleMachineMessages,path);return l?t[o]=[l]:console.error('no example provided in machine-message for: "'.concat(o,'": "').concat(path,'"')),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:m.a,prism:l.a,schemaDetail:v.a}},_=n(2),component=Object(_.a)(f,function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"machine-message content"},[e._m(0),e._v(" "),n("p",[e._v("The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.")]),e._v(" "),e._m(1),e._v(" "),n("schemaDetail",{attrs:{type:"v3/message",examples:e.$static.examples}},[n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),n("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[e._v("\n        Multiple message example\n      ")]),e._v(" "),n("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.multipleMachineMessages)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Message-Payload",title:"Machine Message Payload"}}),this._v("\n    Machine Message Payload\n  ")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"diagram"},[t("img",{attrs:{src:"images/specification/v3/messagePayload.svg",alt:"Class diagram of the message payload",title:"Class diagram of the message payload"}})])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
diff --git a/files/b6bdf80f89dba12669e3.js b/files/ba289679d90095018de3.js
similarity index 96%
rename from files/b6bdf80f89dba12669e3.js
rename to files/ba289679d90095018de3.js
index 541ac7a..bf9dd3e 100644
--- a/files/b6bdf80f89dba12669e3.js
+++ b/files/ba289679d90095018de3.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{359:function(e,t,r){"use strict";r.r(t);var n=r(152),m=(r(61),r(11)),o=(r(21),r(149),r(154)),c=r.n(o),l=r(148),d=r(155),f=r.n(d),v=r(159),_={head:function(){return{title:"Specification for measurement messages"}},created:function(){var e=this,t=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v3",device:{id:r},measurements:[{ts:t.toISOString(),series:{time:[0,23,24],temperature:[45.4231,46.4222,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v3",device:{id:r,mode:"maintenance",state:"WARN",additionalData:{swVersion:"2.0.3.13",swBuildID:"41535"}},part:{code:"HUH289",id:"420003844",type:"BATCH",typeId:"F00VH07328",result:"OK",additionalData:{lotID:"845849",toolID:"32324-432143"}},measurements:[{code:"190ABT",context:{temperature:{limits:{lowerError:-2,lowerWarn:-1,target:1.21,upperError:5,upperWarn:1.5},namespace:"https://mycompany.com/metaModel/v3",unit:"Cel",additionalData:{offset:37,accuracy:[.112,.115,.129]}}},result:"OK",series:{time:[0,23,24],temperature:[.4231,2.4222,4.2432]},ts:t.toISOString()},{context:{scanData:{type:"BASE64"}},series:{time:[0,130,2633],pressure:[100952.4,100946.32,100944.2432],scanData:["Zm9vCg==","YmFyCg==","Y2hlZXNlCg=="]},ts:new Date(t.valueOf()-5e3).toISOString()}]}},this.$static.examples=Object.entries(Object(m.a)({},["content-spec","device","device.id","device.mode","device.state","device.additionalData","part","part.code","part.id","part.result","part.type","part.typeId","part.additionalData","measurements","part","part.code","part.id","part.typeId","part.result"].reduce(function(e,t){return e[t.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=t,e},{"properties.measurements.allOf[0].items.properties.code":"measurements[0].code","properties.measurements.allOf[0].items.properties.context":"measurements[0].context","properties.measurements.allOf[0].items.properties.result":"measurements[0].result","properties.measurements.allOf[0].items.properties.ts":"measurements[0].ts",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"]':"measurements[0].context.temperature","properties.measurements.allOf[0].items.properties.series":"measurements[0].series",'properties.measurements.allOf[0].items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.temperature"}),["limits","unit"].reduce(function(e,t){return e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.'.concat(t)]="measurements[0].context.temperature.".concat(t),e},{}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,t){return e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[0].properties.'.concat(t)]="measurements[0].context.temperature.limits.".concat(t),e},{}))).reduce(function(t,r){var m=Object(n.a)(r,2),o=m[0],path=m[1],c=f()(e.$static.message,path)||f()(e.$static.complexMessage,path);return c?t[o]=[c]:console.error('no example provided in measurement-message for:\n"'.concat(o,'": "').concat(path,'"')),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:l.a,prism:c.a,schemaDetail:v.a}},h=r(2),component=Object(h.a)(_,function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"measurement-message content"},[e._m(0),e._v(" "),r("p",[e._v("The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.")]),e._v(" "),e._m(1),e._v(" "),r("schemaDetail",{attrs:{type:"v3/measurement",examples:e.$static.examples}},[r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Multiple message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Measurement-Payload",title:"Measurement Message payload"}}),this._v("\n    Measurement Payload\n  ")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"diagram"},[t("img",{attrs:{src:"images/specification/v3/measurementPayload.svg",alt:"Class diagram of the Measurement Message payload",title:"Class diagram of the Measurement Message payload"}})])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{359:function(e,t,r){"use strict";r.r(t);var n=r(153),m=(r(61),r(11)),o=(r(21),r(150),r(147)),c=r.n(o),l=r(149),d=r(155),f=r.n(d),v=r(159),_={head:function(){return{title:"Specification for measurement messages"}},created:function(){var e=this,t=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v3",device:{id:r},measurements:[{ts:t.toISOString(),series:{time:[0,23,24],temperature:[45.4231,46.4222,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v3",device:{id:r,mode:"maintenance",state:"WARN",additionalData:{swVersion:"2.0.3.13",swBuildID:"41535"}},part:{code:"HUH289",id:"420003844",type:"BATCH",typeId:"F00VH07328",result:"OK",additionalData:{lotID:"845849",toolID:"32324-432143"}},measurements:[{code:"190ABT",context:{temperature:{limits:{lowerError:-2,lowerWarn:-1,target:1.21,upperError:5,upperWarn:1.5},namespace:"https://mycompany.com/metaModel/v3",unit:"Cel",additionalData:{offset:37,accuracy:[.112,.115,.129]}}},result:"OK",series:{time:[0,23,24],temperature:[.4231,2.4222,4.2432]},ts:t.toISOString()},{context:{scanData:{type:"BASE64"}},series:{time:[0,130,2633],pressure:[100952.4,100946.32,100944.2432],scanData:["Zm9vCg==","YmFyCg==","Y2hlZXNlCg=="]},ts:new Date(t.valueOf()-5e3).toISOString()}]}},this.$static.examples=Object.entries(Object(m.a)({},["content-spec","device","device.id","device.mode","device.state","device.additionalData","part","part.code","part.id","part.result","part.type","part.typeId","part.additionalData","measurements","part","part.code","part.id","part.typeId","part.result"].reduce(function(e,t){return e[t.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=t,e},{"properties.measurements.allOf[0].items.properties.code":"measurements[0].code","properties.measurements.allOf[0].items.properties.context":"measurements[0].context","properties.measurements.allOf[0].items.properties.result":"measurements[0].result","properties.measurements.allOf[0].items.properties.ts":"measurements[0].ts",'properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"]':"measurements[0].context.temperature","properties.measurements.allOf[0].items.properties.series":"measurements[0].series",'properties.measurements.allOf[0].items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.temperature"}),["limits","unit"].reduce(function(e,t){return e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.'.concat(t)]="measurements[0].context.temperature.".concat(t),e},{}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(e,t){return e['properties.measurements.allOf[0].items.properties.context.patternProperties["^[^$]+"].properties.limits.oneOf[0].properties.'.concat(t)]="measurements[0].context.temperature.limits.".concat(t),e},{}))).reduce(function(t,r){var m=Object(n.a)(r,2),o=m[0],path=m[1],c=f()(e.$static.message,path)||f()(e.$static.complexMessage,path);return c?t[o]=[c]:console.error('no example provided in measurement-message for:\n"'.concat(o,'": "').concat(path,'"')),t},{})},filters:{stringify:function(e){return JSON.stringify(e," ",2)}},components:{card:l.a,prism:c.a,schemaDetail:v.a}},h=r(2),component=Object(h.a)(_,function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"measurement-message content"},[e._m(0),e._v(" "),r("p",[e._v("The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.")]),e._v(" "),e._m(1),e._v(" "),r("schemaDetail",{attrs:{type:"v3/measurement",examples:e.$static.examples}},[r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Minimal message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.message)))])],2),e._v(" "),r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[e._v("\n        Multiple message example\n      ")]),e._v(" "),r("prism",{attrs:{language:"json"}},[e._v(e._s(e._f("stringify")(e.$static.complexMessage)))])],2)],1)],1)},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Measurement-Payload",title:"Measurement Message payload"}}),this._v("\n    Measurement Payload\n  ")])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"diagram"},[t("img",{attrs:{src:"images/specification/v3/measurementPayload.svg",alt:"Class diagram of the Measurement Message payload",title:"Class diagram of the Measurement Message payload"}})])}],!1,null,null,null);t.default=component.exports}}]);
\ No newline at end of file
diff --git a/files/f19773743ef6c42ef1a3.js b/files/de162ef814559a2126c1.js
similarity index 97%
rename from files/f19773743ef6c42ef1a3.js
rename to files/de162ef814559a2126c1.js
index e8b4129..2562a3f 100644
--- a/files/f19773743ef6c42ef1a3.js
+++ b/files/de162ef814559a2126c1.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{148:function(t,e,n){"use strict";var l={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}},r=(n(172),n(2)),component=Object(r.a)(l,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?n("header",{staticClass:"card-header",on:{click:function(e){return e.preventDefault(),t.toggle()}}},[n("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),t._v(" "),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),t._v(" "),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)},[],!1,null,null,null);e.a=component.exports},153:function(t,e,n){},159:function(t,e,n){"use strict";n(63);var l=n(357),r=(n(281),n(152)),c=(n(149),n(21),n(148)),o=n(155),f=n.n(o),d=n(282),h=n.n(d),v=n(154),m=n.n(v),_=(n(64),n(309)),y=n(310),C=n(311),O=n.n(C),k=n(334),$=n.n(k),j=n(335),x=n.n(j),P=function(){function t(e,n,l){Object(_.a)(this,t),this.$id=t.idx++,this.$step=e+"&#8203",this.$parent=n,l&&this.parseFrom(l)}return Object(y.a)(t,[{key:"toJSON",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return $()(n,function(n,l,c,o){if(n instanceof t)return Object.entries(n).filter(function(t){var e=Object(r.a)(t,2),n=e[0];e[1];return["$id","$step","$parent"].indexOf(n)<0}).reduce(function(t,n){var l=Object(r.a)(n,2),c=l[0],o=l[1];return t[c]=e.toJSON(o),t},{})})}},{key:"getPath",value:function(){var path="";return this.$parent&&(path+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(path+=".")),path+=this.$step,this.getPath=function(){return path},path}},{key:"parseFrom",value:function(e){var n=this;return!0===e?e={}:!1===e&&(e={not:!0}),Object.assign(this,x()(O()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(l,r){return new t("[".concat(r,"]"),{schema:n,path:"items[".concat(r,"]")},e.items[r])}):this.items=new t("[*]",{schema:this,path:"items"},e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(l){return Object.entries(e[l]).forEach(function(e,c){var o=Object(r.a)(e,2),f=o[0],d=o[1];n[l]=n[l]||{},n[l][f]=new t("patternProperties"===l?"&lt;field&gt;":f,{schema:n,path:"".concat(l,'["').concat(f,'"]')},d)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(path){n[path]=new t("+",{schema:n,path:path},e[path])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(l){return e[l].forEach(function(e,r){n[l]=n[l]||[],n[l].push(new t("(".concat(r,")").concat("anyOf"===l?"?":"+"),{schema:n,path:"".concat(l,"[").concat(r,"]")},e))})}),this}}]),t}();P.idx=0;var E=P,w={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof E}}},L=n(2),S=Object(L.a)(w,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t._t("default"),t._v(" "),!0===t.link?[t._v("\n    yes\n  ")]:!1===t.link?[t._v("\n    no\n  ")]:t.isSchema(t.link)?[n("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[n("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?n("ul",t._l(t.link,function(e){return n("li",{key:e.$id},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)}),0):t.link instanceof Object?n("ul",t._l(t.link,function(e,l){return n("li",{key:l},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(l)+"\n      ")])],1)}),0):t._e()],2)},[],!1,null,null,null).exports,z={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}},T=(n(345),Object(L.a)(z,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(t.tag,{tag:"component"},[n("nuxt-link",{attrs:{to:"#p-"+t.schema.$id}},[n("span",{domProps:{innerHTML:t._s(t.schema.$step)}})]),t._v(" "),t.schema.properties||t.schema.patternProperties||t.schema.items?n("ul",[t._l(t.schema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}),t._v(" "),t._l(t.schema.patternProperties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}),t._v(" "),t.schema.items?[t.schema.items instanceof Array?t._l(t.schema.items,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}):n("schemaToc",{attrs:{schema:t.schema.items}})]:t._e()],2):t._e()],1)},[],!1,null,null,null).exports),F=n(346),M=n.n(F),N={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};n(348)("./".concat(this.type,"_schema.json")).then(function(e){return t.masterSchema=new E("$",null,e.default),Object.entries(t.examples).forEach(function(e){var n=Object(r.a)(e,2),path=n[0],l=n[1];f()(t.masterSchema,path)?M()(t.masterSchema,"".concat(path,".examples"),l):console.error("schema path not found in ".concat(t.type,": ").concat(path))}),t.loading=!1,e.default}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var n=this;t instanceof E?(e(t),Object.entries(t).filter(function(t){var e=Object(r.a)(t,2),n=e[0];e[1];return"$parent"!==n}).forEach(function(t){var l=Object(r.a)(t,2),c=(l[0],l[1]);return n.traverse(c,e)})):t instanceof Array?t.forEach(function(t){return n.traverse(t,e)}):t instanceof Object&&Object.values(t).forEach(function(t){return n.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new E(t.$step,t.$parent,h.a.apply(void 0,[{}].concat(Object(l.a)(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===Object.keys(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(n){!function n(l){if(l){var c=Object(r.a)(l,2),o=c[0],f=c[1],d=o.$parent;d&&M()(d.schema,d.path,f),t.$parent=null,n(e(d.schema))}}(e(n))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return JSON.stringify(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(i){return"".concat(i[0].toUpperCase()).concat(i.slice(1))}).join(", ")):""}},components:{card:c.a,prism:m.a,schemaToc:T,schemaLink:S}},H=(n(349),Object(L.a)(N,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[n("div",{staticClass:"accordion"},[null!==t.masterSchema?n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),t._v(" "),n("ul",t._l(t.masterSchema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}),1)],2):t._e(),t._v(" "),t._t("default")],2),t._v(" "),n("h1",[n("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._v(" "),t._l(t.schemas,function(e){return n("div",{key:e.$id,staticClass:"card property"},[n("header",{staticClass:"card-header"},[n("a",{attrs:{id:"p-"+e.$id}}),t._v(" "),n("p",{staticClass:"card-header-title"},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})]),t._v(" "),n("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa fa-angle-up"})])])],1),t._v(" "),n("div",{staticClass:"card-content"},[e.description||e.type?n("div",{staticClass:"field is-horizontal"},[t._m(0,!0),t._v(" "),e.description?n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?n("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),t._v(" "),e.$parent?n("div",{staticClass:"field is-horizontal"},[t._m(1,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[n("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),t._v(" "),e.type?n("div",{staticClass:"field is-horizontal"},[t._m(2,!0),t._v(" "),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),t._v(" "),e.format?n("div",{staticClass:"field is-horizontal"},[t._m(3,!0),t._v(" "),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?n("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),t._v(" "),e.enum&&e.enum.length?n("div",{staticClass:"field is-horizontal"},[t._m(4,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),t._v(" "),e.hasOwnProperty("default")?n("div",{staticClass:"field is-horizontal"},[t._m(5,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),t._v(" "),e.maxLength?n("div",{staticClass:"field is-horizontal"},[t._m(6,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),t._v(" "),e.properties||e.patternProperties||e.items?n("div",{staticClass:"field is-horizontal"},[t._m(7,!0),t._v(" "),n("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?n("schemaLink",{attrs:{link:e.properties}}):t._e(),t._v(" "),Object.keys(e.patternProperties||{}).length>0?n("schemaLink",{attrs:{link:e.patternProperties}},[n("div",[t._v("Matching regular expressions:")])]):t._e(),t._v(" "),!e.items||e.items instanceof Array?e.items?n("schemaLink",{attrs:{link:e.items}},[n("div",[t._v("Ordered items of type:")])]):t._e():n("schemaLink",{attrs:{link:e.items}}),t._v(" "),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),t._v(" "),e.minProperties?n("div",{staticClass:"field is-horizontal"},[t._m(8,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),t._v(" "),e.minItems?n("div",{staticClass:"field is-horizontal"},[t._m(9,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),t._v(" "),e.hasOwnProperty("additionalProperties")?n("div",{staticClass:"field is-horizontal"},[t._m(10,!0),t._v(" "),"boolean"==typeof e.additionalProperties?n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):n("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),t._v(" "),e.not||e.oneOf||e.allOf||e.anyOf?n("div",{staticClass:"field is-horizontal"},[t._m(11,!0),t._v(" "),n("div",{staticClass:"field-body"},[e.not?n("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),t._v(" "),e.oneOf?n("schemaLink",{attrs:{link:e.oneOf}},[n("div",[t._v("Fulfilling exactly one of:")])]):t._e(),t._v(" "),e.allOf?n("schemaLink",{attrs:{link:e.allOf}},[n("div",[t._v("Fulfilling all of:")])]):t._e(),t._v(" "),e.anyOf?n("schemaLink",{attrs:{link:e.anyOf}},[n("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),t._v(" "),e.required&&e.required.length?n("div",{staticClass:"field is-horizontal"},[t._m(12,!0),t._v(" "),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),t._v(" "),e.examples?n("div",{staticClass:"field is-horizontal"},[t._m(13,!0),t._v(" "),n("div",{staticClass:"field-body"},t._l(e.examples,function(e,l){return n("prism",{key:l,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}),1)]):t._e()])])})],2)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}],!1,null,null,null));e.a=H.exports},172:function(t,e,n){"use strict";var l=n(153);n.n(l).a},195:function(t,e,n){},196:function(t,e,n){},345:function(t,e,n){"use strict";var l=n(195);n.n(l).a},348:function(t,e,n){var map={"./v2/measurement_schema.json":[351,19],"./v2/message_schema.json":[352,20],"./v2/process_schema.json":[353,21],"./v3/measurement_schema.json":[354,22],"./v3/message_schema.json":[355,23],"./v3/process_schema.json":[356,24]};function l(t){if(!n.o(map,t))return Promise.resolve().then(function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e});var e=map[t],l=e[0];return n.e(e[1]).then(function(){return n.t(l,7)})}l.keys=function(){return Object.keys(map)},l.id=348,t.exports=l},349:function(t,e,n){"use strict";var l=n(196);n.n(l).a}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{149:function(t,e,n){"use strict";var l={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}},r=(n(172),n(2)),component=Object(r.a)(l,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?n("header",{staticClass:"card-header",on:{click:function(e){return e.preventDefault(),t.toggle()}}},[n("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),t._v(" "),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),t._v(" "),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)},[],!1,null,null,null);e.a=component.exports},154:function(t,e,n){},159:function(t,e,n){"use strict";n(63);var l=n(357),r=(n(281),n(153)),c=(n(150),n(21),n(149)),o=n(155),f=n.n(o),d=n(282),h=n.n(d),v=n(147),m=n.n(v),_=(n(64),n(309)),y=n(310),C=n(311),O=n.n(C),k=n(334),$=n.n(k),j=n(335),x=n.n(j),P=function(){function t(e,n,l){Object(_.a)(this,t),this.$id=t.idx++,this.$step=e+"&#8203",this.$parent=n,l&&this.parseFrom(l)}return Object(y.a)(t,[{key:"toJSON",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return $()(n,function(n,l,c,o){if(n instanceof t)return Object.entries(n).filter(function(t){var e=Object(r.a)(t,2),n=e[0];e[1];return["$id","$step","$parent"].indexOf(n)<0}).reduce(function(t,n){var l=Object(r.a)(n,2),c=l[0],o=l[1];return t[c]=e.toJSON(o),t},{})})}},{key:"getPath",value:function(){var path="";return this.$parent&&(path+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(path+=".")),path+=this.$step,this.getPath=function(){return path},path}},{key:"parseFrom",value:function(e){var n=this;return!0===e?e={}:!1===e&&(e={not:!0}),Object.assign(this,x()(O()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(l,r){return new t("[".concat(r,"]"),{schema:n,path:"items[".concat(r,"]")},e.items[r])}):this.items=new t("[*]",{schema:this,path:"items"},e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(l){return Object.entries(e[l]).forEach(function(e,c){var o=Object(r.a)(e,2),f=o[0],d=o[1];n[l]=n[l]||{},n[l][f]=new t("patternProperties"===l?"&lt;field&gt;":f,{schema:n,path:"".concat(l,'["').concat(f,'"]')},d)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(path){n[path]=new t("+",{schema:n,path:path},e[path])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(l){return e[l].forEach(function(e,r){n[l]=n[l]||[],n[l].push(new t("(".concat(r,")").concat("anyOf"===l?"?":"+"),{schema:n,path:"".concat(l,"[").concat(r,"]")},e))})}),this}}]),t}();P.idx=0;var E=P,w={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof E}}},L=n(2),S=Object(L.a)(w,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t._t("default"),t._v(" "),!0===t.link?[t._v("\n    yes\n  ")]:!1===t.link?[t._v("\n    no\n  ")]:t.isSchema(t.link)?[n("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[n("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?n("ul",t._l(t.link,function(e){return n("li",{key:e.$id},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)}),0):t.link instanceof Object?n("ul",t._l(t.link,function(e,l){return n("li",{key:l},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(l)+"\n      ")])],1)}),0):t._e()],2)},[],!1,null,null,null).exports,z={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}},T=(n(345),Object(L.a)(z,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(t.tag,{tag:"component"},[n("nuxt-link",{attrs:{to:"#p-"+t.schema.$id}},[n("span",{domProps:{innerHTML:t._s(t.schema.$step)}})]),t._v(" "),t.schema.properties||t.schema.patternProperties||t.schema.items?n("ul",[t._l(t.schema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}),t._v(" "),t._l(t.schema.patternProperties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}),t._v(" "),t.schema.items?[t.schema.items instanceof Array?t._l(t.schema.items,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}):n("schemaToc",{attrs:{schema:t.schema.items}})]:t._e()],2):t._e()],1)},[],!1,null,null,null).exports),F=n(346),M=n.n(F),N={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};n(348)("./".concat(this.type,"_schema.json")).then(function(e){return t.masterSchema=new E("$",null,e.default),Object.entries(t.examples).forEach(function(e){var n=Object(r.a)(e,2),path=n[0],l=n[1];f()(t.masterSchema,path)?M()(t.masterSchema,"".concat(path,".examples"),l):console.error("schema path not found in ".concat(t.type,": ").concat(path))}),t.loading=!1,e.default}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var n=this;t instanceof E?(e(t),Object.entries(t).filter(function(t){var e=Object(r.a)(t,2),n=e[0];e[1];return"$parent"!==n}).forEach(function(t){var l=Object(r.a)(t,2),c=(l[0],l[1]);return n.traverse(c,e)})):t instanceof Array?t.forEach(function(t){return n.traverse(t,e)}):t instanceof Object&&Object.values(t).forEach(function(t){return n.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new E(t.$step,t.$parent,h.a.apply(void 0,[{}].concat(Object(l.a)(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===Object.keys(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(n){!function n(l){if(l){var c=Object(r.a)(l,2),o=c[0],f=c[1],d=o.$parent;d&&M()(d.schema,d.path,f),t.$parent=null,n(e(d.schema))}}(e(n))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return JSON.stringify(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(i){return"".concat(i[0].toUpperCase()).concat(i.slice(1))}).join(", ")):""}},components:{card:c.a,prism:m.a,schemaToc:T,schemaLink:S}},H=(n(349),Object(L.a)(N,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[n("div",{staticClass:"accordion"},[null!==t.masterSchema?n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),t._v(" "),n("ul",t._l(t.masterSchema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}),1)],2):t._e(),t._v(" "),t._t("default")],2),t._v(" "),n("h1",[n("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._v(" "),t._l(t.schemas,function(e){return n("div",{key:e.$id,staticClass:"card property"},[n("header",{staticClass:"card-header"},[n("a",{attrs:{id:"p-"+e.$id}}),t._v(" "),n("p",{staticClass:"card-header-title"},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})]),t._v(" "),n("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa fa-angle-up"})])])],1),t._v(" "),n("div",{staticClass:"card-content"},[e.description||e.type?n("div",{staticClass:"field is-horizontal"},[t._m(0,!0),t._v(" "),e.description?n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?n("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),t._v(" "),e.$parent?n("div",{staticClass:"field is-horizontal"},[t._m(1,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[n("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),t._v(" "),e.type?n("div",{staticClass:"field is-horizontal"},[t._m(2,!0),t._v(" "),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),t._v(" "),e.format?n("div",{staticClass:"field is-horizontal"},[t._m(3,!0),t._v(" "),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?n("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),t._v(" "),e.enum&&e.enum.length?n("div",{staticClass:"field is-horizontal"},[t._m(4,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),t._v(" "),e.hasOwnProperty("default")?n("div",{staticClass:"field is-horizontal"},[t._m(5,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),t._v(" "),e.maxLength?n("div",{staticClass:"field is-horizontal"},[t._m(6,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),t._v(" "),e.properties||e.patternProperties||e.items?n("div",{staticClass:"field is-horizontal"},[t._m(7,!0),t._v(" "),n("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?n("schemaLink",{attrs:{link:e.properties}}):t._e(),t._v(" "),Object.keys(e.patternProperties||{}).length>0?n("schemaLink",{attrs:{link:e.patternProperties}},[n("div",[t._v("Matching regular expressions:")])]):t._e(),t._v(" "),!e.items||e.items instanceof Array?e.items?n("schemaLink",{attrs:{link:e.items}},[n("div",[t._v("Ordered items of type:")])]):t._e():n("schemaLink",{attrs:{link:e.items}}),t._v(" "),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),t._v(" "),e.minProperties?n("div",{staticClass:"field is-horizontal"},[t._m(8,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),t._v(" "),e.minItems?n("div",{staticClass:"field is-horizontal"},[t._m(9,!0),t._v(" "),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),t._v(" "),e.hasOwnProperty("additionalProperties")?n("div",{staticClass:"field is-horizontal"},[t._m(10,!0),t._v(" "),"boolean"==typeof e.additionalProperties?n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):n("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),t._v(" "),e.not||e.oneOf||e.allOf||e.anyOf?n("div",{staticClass:"field is-horizontal"},[t._m(11,!0),t._v(" "),n("div",{staticClass:"field-body"},[e.not?n("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),t._v(" "),e.oneOf?n("schemaLink",{attrs:{link:e.oneOf}},[n("div",[t._v("Fulfilling exactly one of:")])]):t._e(),t._v(" "),e.allOf?n("schemaLink",{attrs:{link:e.allOf}},[n("div",[t._v("Fulfilling all of:")])]):t._e(),t._v(" "),e.anyOf?n("schemaLink",{attrs:{link:e.anyOf}},[n("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),t._v(" "),e.required&&e.required.length?n("div",{staticClass:"field is-horizontal"},[t._m(12,!0),t._v(" "),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),t._v(" "),e.examples?n("div",{staticClass:"field is-horizontal"},[t._m(13,!0),t._v(" "),n("div",{staticClass:"field-body"},t._l(e.examples,function(e,l){return n("prism",{key:l,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}),1)]):t._e()])])})],2)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}],!1,null,null,null));e.a=H.exports},172:function(t,e,n){"use strict";var l=n(154);n.n(l).a},195:function(t,e,n){},196:function(t,e,n){},345:function(t,e,n){"use strict";var l=n(195);n.n(l).a},348:function(t,e,n){var map={"./v2/measurement_schema.json":[351,19],"./v2/message_schema.json":[352,20],"./v2/process_schema.json":[353,21],"./v3/measurement_schema.json":[354,22],"./v3/message_schema.json":[355,23],"./v3/process_schema.json":[356,24]};function l(t){if(!n.o(map,t))return Promise.resolve().then(function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e});var e=map[t],l=e[0];return n.e(e[1]).then(function(){return n.t(l,7)})}l.keys=function(){return Object.keys(map)},l.id=348,t.exports=l},349:function(t,e,n){"use strict";var l=n(196);n.n(l).a}}]);
\ No newline at end of file
diff --git a/files/e92dfea429f78732b2bb.js b/files/e92dfea429f78732b2bb.js
new file mode 100644
index 0000000..79f7f0f
--- /dev/null
+++ b/files/e92dfea429f78732b2bb.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{147:function(e,t,n){"use strict";function o(e){for(var t=arguments,i=1;i<arguments.length;i++)for(var p in arguments[i])e[p]=t[i][p];return e}var r={functional:!0,props:{code:{type:String},inline:{type:Boolean,default:!1},language:{type:String,default:"markup"}},render:function(e,t){var code=t.props.code||(t.children&&t.children.length>0?t.children[0].text:""),n=t.props.inline,r=t.props.language,c=Prism.languages[r],l="language-"+r;return n?e("code",o({},t.data,{class:[t.data.class,l],domProps:o({},t.data.domProps,{innerHTML:Prism.highlight(code,c)})})):e("pre",o({},t.data,{class:[t.data.class,l]}),[e("code",{class:l,domProps:{innerHTML:Prism.highlight(code,c)}})])}};e.exports=r},174:function(e,t,n){},251:function(e,t,n){"use strict";var o=n(174);n.n(o).a},364:function(e,t,n){"use strict";n.r(t);var o=n(147),r={head:function(){return{title:"Specification"}},asyncData:function(e){return{isStatic:e.isStatic}},components:{prism:n.n(o).a}},c=(n(251),n(2)),component=Object(c.a)(r,function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"specification"},[n("div",{staticClass:"content"},[e._m(0),e._v(" "),n("h2",[e._v("Rationale")]),e._v(" "),n("p",[e._v("\n      Noticeably in recent years, there is a continuous increase in demand, price pressure and complexity in manufacturing. Things need to move faster, be more flexible, and fulfill higher quality standards forcing manufacturers to optimize their processes.\n      ")]),e._v(" "),n("p",[e._v("\n      Production facilities and their performance have a huge impact on the overall performance of manufacturing processes. However, to identify bottlenecks and possibilities for improvements detailed data from machines are required.\n      ")]),e._v(" "),n("p",[e._v("\n      Such data is surely provided by machines either via modern protocols such as OPC UA or via proprietary access methods but it is not provided in a common and easily accessible format, which can be used to do performance analysis and optimization. This renders holistic process improvement efforts infeasible for many, especially smaller organizations.\n      ")]),e._v(" "),n("p",[e._v("\n      The Production Performance Management Protocol (PPMP) specifies a format that allows to capture data that is required to do performance analysis of production facilities. It allows monitoring backends to collect and evaluate key metrics of machines in the context of a production process. It is doing that by allowing to relate the machine status with currently produced parts.\n      ")]),e._v(" "),n("p",[e._v("\n      The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding process with all their characterizing data, which are needed to describe and analyze it.\n      ")]),e._v(" "),n("p",[e._v("\n      The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.\n      ")]),e._v(" "),n("h2",[e._v("Validation")]),e._v(" "),n("p",[e._v("\n        Did you know that you can easily validate your PPMP payload against the published online version of PPMP? For exapmle, "),n("a",{attrs:{href:"https://www.jsonschemavalidator.net"}},[e._v("jsonschemavalidator.net")]),e._v(" provides an online validation frontend. Just use your payload as JSON input and the respective github link to the PPMP specification as a "),n("code",[e._v("$ref")]),e._v(" in the schema. For example:\n        "),n("prism",{attrs:{language:"json"}},[e._v('{\n  "$ref": "https://raw.githubusercontent.com/eclipse/unide/master/ppmp/ppmp-schema/src/main/resources/org/eclipse/iot/unide/ppmp/v3/process_schema.json"\n}')])],1),e._v(" "),e._m(1)]),e._v(" "),n("div",{staticClass:"columns",attrs:{id:"messageDetail"}},[n("div",{staticClass:"column"},[n("nuxt-link",{attrs:{to:"/specification"+(e.isStatic?"#messageDetail":""),exact:""}},[e._v("\n          Overview\n        ")])],1),e._v(" "),n("div",{staticClass:"column"},[n("nuxt-link",{class:{"nuxt-link-active":e.$route.path.endsWith("machine-message")},attrs:{to:"/specification/machine-message"+(e.isStatic?"#messageDetail":"")}},[e._v("\n          Machine Message\n        ")]),e._v("\n        (v\n        "),n("nuxt-link",{attrs:{to:"/specification/v2/machine-message"+(e.isStatic?"#messageDetail":"")}},[e._v("\n          2\n        ")]),e._v("\n        /\n        "),n("nuxt-link",{attrs:{to:"/specification/v3/machine-message"+(e.isStatic?"#messageDetail":"")}},[e._v("\n          3*\n         ")]),e._v("\n        )\n      ")],1),e._v(" "),n("div",{staticClass:"column"},[n("nuxt-link",{class:{"nuxt-link-active":e.$route.path.endsWith("measurement-message")},attrs:{to:"/specification/measurement-message"+(e.isStatic?"#messageDetail":"")}},[e._v("\n          Measurement Message\n        ")]),e._v("\n        (v\n        "),n("nuxt-link",{attrs:{to:"/specification/v2/measurement-message"+(e.isStatic?"#messageDetail":"")}},[e._v("\n          2\n        ")]),e._v("\n        /\n        "),n("nuxt-link",{attrs:{to:"/specification/v3/measurement-message"+(e.isStatic?"#messageDetail":"")}},[e._v("\n          3*\n        ")]),e._v("\n        )\n      ")],1),e._v(" "),n(&