{"id":648,"date":"2020-04-04T05:34:17","date_gmt":"2020-04-04T03:34:17","guid":{"rendered":"https:\/\/itb-solutions.de\/blog\/?page_id=648"},"modified":"2020-04-11T16:25:25","modified_gmt":"2020-04-11T14:25:25","slug":"mrs","status":"publish","type":"page","link":"https:\/\/itb-solutions.de\/en\/produkte\/mrs\/","title":{"rendered":"MRS"},"content":{"rendered":"\n<p class=\"PageTitleFooter\">Modular Radio System<\/p>\n\n\n\n<div class=\"wp-block-columns alignfull is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\">Produktbeschreibung<\/h2>\n\n\n\n<p class=\"content-1\">Das &#8220;MRS&#8221; ist ein modular aufgebautes Funksystem zur Daten\u00fcbertragung. Funkfrequenz, Sendeleistung und Datenrate lassen sich individuell an die jeweiligen Anforderungen  anpassen. So ist es leicht m\u00f6glich, das Optimale in Bezug auf Reichweite und Datenrate zu erreichen.<br>Um das System z.B. im Aufbau und Standort der verwendeten Antennen zu optimieren, stehen Features wie eine automatisierte, kartenbasierte Funkausbreitungsmessung zur Verf\u00fcgung.  <\/p>\n\n\n\n<p class=\"content-1\">Verschiedene vorhandene Softwaremodule erlauben flexible Featuresets wie z.B. zertifikatsbasierte Authentifizierung und eine einfach Anbindung an das \u00fcber Funk zu vernetzende Restsytem \u00fcber meherer m\u00f6gliche Schnittstellen wie z.B. via CAN, Ethernet, USB, SPI, RS-485 sowie weitere kundenspezifische Schnittstellen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Technische Daten<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Modulares Hardware Konzept erm\u00f6glicht einfache Anpassung an Anforderungen<\/li><li>Modulare Software Architektur gew\u00e4hrleistet einfache Erweiterbarkeit<\/li><li>Optionale Verschl\u00fcsselung<\/li><li>Optionales Zertifikatsmanagement<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Sie ben\u00f6tigen ein speziell auf Ihre Anwendung angepasstes Funk\u00fcbertragungssystem?<\/h4>\n\n\n\n<p>Nehmen Sie <a href=\"https:\/\/itb-solutions.de\/blog\/produktinteresse\/#mrs\">hier Kontakt mit uns auf!<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large media-1\"><img loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"784\" src=\"https:\/\/itb-solutions.de\/blog\/wp-content\/uploads\/2020\/04\/20200211_233138_freigestellt.jpg\" alt=\"\" class=\"wp-image-557\" srcset=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2020\/04\/20200211_233138_freigestellt.jpg 913w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2020\/04\/20200211_233138_freigestellt-300x258.jpg 300w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2020\/04\/20200211_233138_freigestellt-768x659.jpg 768w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><figcaption>Modulares Radio System mit Teilfrontplatte zum Einbau in 19&#8243; Rahmen<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<!--\n  HTML-Module (Copyright \u00a9 2020 ITB-Solutions GmbH)\n  PRODUCT PAGE MEDIA PLACEMENT AND STYLE FIXES\n-->\n\n<script>\n  \/\/ Full width (style) is at 600px\n  \/\/ Pictures are moving at 782px\nconst DESKTOP_MODE_WIDTH = 782;\n\nfunction isMobileSize() {\n  return document.body.scrollWidth < DESKTOP_MODE_WIDTH;\n}\n\nfunction getScreenCordinates(obj) {\n  \/\/ Source: https:\/\/www.aspsnippets.com\/Articles\/Get-Absolute-Position-Screen-Cordinates-of-HTML-Elements-using-JavaScript.aspx\n  var p = {};\n  p.x = obj.offsetLeft;\n  p.y = obj.offsetTop;\n  while (obj.offsetParent) {\n    p.x = p.x + obj.offsetParent.offsetLeft;\n    p.y = p.y + obj.offsetParent.offsetTop;\n    if (obj == document.getElementsByTagName(\"body\")[0]) {\n      break;\n    }\n    else {\n      obj = obj.offsetParent;\n    }\n  }\n  return p;\n}\n\nfunction getRelatedElements() {\n  let contentElements = [];\n  let mediaElements = [];\n  for(let el of document.getElementsByTagName('*')) {\n    let isContent = false;\n    let isMedia = false;\n    let num = 0;\n    for(let className of el.classList) {\n      let setNum = false;\n      if(className.startsWith('content-')) {\n        isContent = setNum = true;\n      }\n      if(className.startsWith('media-'))\n        isMedia = setNum = true;\n      if(setNum) {\n        num = parseInt(className.split('-')[1]);\n        if(isNaN(num))\n          isContent = isMedia = false; \/\/ Wrong element\n      }\n    }\n    \/\/ isContent xor isMedia = true\n    \/\/ weird written because &#038;&#038; seems to cause \n    \/\/ problems in wordpress html element\n    if(!isContent) { if(!isMedia) { continue; } }\n    if(isContent) { if(isMedia) { continue; } }\n    \n    let elementsRef = isContent ? contentElements : mediaElements;\n    if(elementsRef.length + 1 != num)\n      throw 'Error when enumerating elements!';\n    elementsRef.push(el);\n  }\n\n  if(contentElements.length != mediaElements.length)\n    throw 'Different amount of Content- and Media-Elements!';\n\n  let allElements = [];\n  for(let i = 0; i < contentElements.length; i++) {\n    allElements.push([ contentElements[i], mediaElements[i] ]);\n  }\n  return allElements;\n}\n\nfunction alignRelatedElements() {\n  for(let related of getRelatedElements()) {\n    let mediaEl = related[1];\n    mediaEl.style.paddingTop = '';\n    let [ contentElPos, mediaElPos ] = related.map((el) => getScreenCordinates(el));\n    if(contentElPos.y > mediaElPos.y)\n      mediaEl.style.paddingTop = (contentElPos.y - mediaElPos.y) + 'px';\n  }\n}\n\nlet lastMobileState = false;\nlet desktopMediaPlaceholders = [];\nlet lastWidth = 0;\nlet lastUpdate = 0;\nlet frequentUpdates = false;\n\nfunction updateRelatedElements() {\n  let currentMobileState = isMobileSize();\n  if(currentMobileState != lastMobileState) {\n    if(currentMobileState) {\n      \/\/ Changed to mobile size\n      desktopMediaPlaceholders = [];\n      for(let [ contentEl, mediaEl ] of getRelatedElements()) {\n        mediaEl.style.paddingTop = ''; \/\/ Remove any padding\n        \/\/ This element is just for internal purposes\n        let placeholderEl = document.createElement('span');\n        placeholderEl.style.display = 'none';\n        desktopMediaPlaceholders.push(placeholderEl);\n        \/\/ Move placeholder element before media element\n        mediaEl.parentNode.insertBefore(placeholderEl, mediaEl);\n        \/\/ Move media element before content element\n        contentEl.parentNode.insertBefore(mediaEl, contentEl);\n        \/\/ Since media element is moved, placeholder element\n        \/\/ is now at same position as media element\n      }\n    }else {\n      \/\/ Changed to desktop size\n      let relatedElements = getRelatedElements();\n      if(relatedElements.length != desktopMediaPlaceholders.length)\n        throw 'Can\\'t move media elements back to original positions!';\n      \n      for(let i = 0; i < relatedElements.length; i++) {\n        let mediaEl = relatedElements[i][1];\n        let placeholderEl = desktopMediaPlaceholders[i];\n        placeholderEl.parentNode.insertBefore(mediaEl, placeholderEl);\n        placeholderEl.parentNode.removeChild(placeholderEl);\n        \/\/ media element is now at original position\n        \/\/ and placeholder element deleted\n      }\n      desktopMediaPlaceholders = [];\n    }\n\n    lastMobileState = currentMobileState;\n  }\n  \n  if(currentMobileState == false) {\n    let width = document.body.scrollWidth;\n    if(frequentUpdates || width != lastWidth || new Date()*1 - lastUpdate > 500) {\n      alignRelatedElements();\n      lastWidth = width;\n      lastUpdate = new Date() * 1; \/\/ Timestamp in ms\n    }\n  }\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  updateRelatedElements();\n  if(document.getElementById('wpadminbar') != null)\n    frequentUpdates = true;\n  setInterval(updateRelatedElements, 50);\n});\n<\/script>\n\n<style>\n.no-sidebar .entry-content > .alignfull {\n  width: unset; \/* Fix bugged padding when columns are full width *\/\n}\n\n@media (min-width:600px) and (max-width:781px) {\n .wp-block-column:first-child {\n  flex-basis: 100% !important;\n  margin-left: 20px;\n  margin-right: 20px;\n }\n}\n<\/style>\n\n\n\n<!--\n  HTML-Module (Copyright \u00a9 2020 ITB-Solutions GmbH)\n  WP FEATHERLIGHT FOR NORMAL IMAGES\n-->\n\n<script>\nfunction indexOf(nodes, node) {\n  for(let i = 0; i < nodes.length; i++) {\n    if(nodes[i] == node)\n      return i;\n  }\n  return -1;\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  let selector = '.wp-block-image'; \/\/ All Image-Blocks\n  for(let el of document.querySelectorAll(selector)) {\n    let img = el.querySelector('img');\n    let imgParent = img.parentNode;\n    let imgParentImgIndex = indexOf(imgParent.childNodes, img);\n    let adjecentFollowing = imgParentImgIndex == imgParent.childNodes.length - 1 ? null : imgParent.childNodes[imgParentImgIndex + 1];\n\n    imgParent.removeChild(img);\n    let linkWrapper = document.createElement('a');\n    linkWrapper.href = img.src;\n    linkWrapper.dataset['featherlight'] = 'image';\n    linkWrapper.insertBefore(img, null); \/\/ img into a\n    imgParent.insertBefore(linkWrapper, adjecentFollowing);\n  }\n});\n<\/script>\n\n\n\n<!--\n  HTML-Module (Copyright \u00a9 2020 ITB-Solutions GmbH)\n  VISUAL EDITING OF PARAGRAPHS FOR ADMINS\n-->\n\n<script>\nconst veopModuleDisabled = true;\ndocument.addEventListener('DOMContentLoaded', () => {\n  if(veopModuleDisabled) return;\n  \/\/ Don't offer this for viewers without admin bar\n  if(document.getElementById('wpadminbar') == null) return;\n  for(let el of document.querySelectorAll('.entry-content p')) {\n    el.setAttribute('contenteditable', true);\n  }\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Modular Radio System Produktbeschreibung Das &#8220;MRS&#8221; ist ein modular aufgebautes Funksystem zur Daten\u00fcbertragung. Funkfrequenz, Sendeleistung und Datenrate lassen sich individuell an die jeweiligen Anforderungen anpassen. So ist es leicht m\u00f6glich, &#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":526,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-fullwidth.php","meta":{"footnotes":""},"class_list":["post-648","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages\/648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/comments?post=648"}],"version-history":[{"count":14,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages\/648\/revisions"}],"predecessor-version":[{"id":761,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages\/648\/revisions\/761"}],"up":[{"embeddable":true,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages\/526"}],"wp:attachment":[{"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/media?parent=648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}