{"id":678,"date":"2020-04-11T17:02:54","date_gmt":"2020-04-11T15:02:54","guid":{"rendered":"https:\/\/itb-solutions.de\/blog\/?page_id=678"},"modified":"2025-01-10T13:18:24","modified_gmt":"2025-01-10T12:18:24","slug":"hilmate-pro","status":"publish","type":"page","link":"https:\/\/itb-solutions.de\/en\/produkte\/hilmate-pro\/","title":{"rendered":"HILmate"},"content":{"rendered":"<p class=\"PageTitleFooter\">Quality Assurance and Test Automation<\/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:33.33%\">\n<figure class=\"wp-block-image size-large media-1\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"354\" src=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/DSC_3846_small.jpg\" alt=\"\" class=\"wp-image-956\" srcset=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/DSC_3846_small.jpg 706w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/DSC_3846_small-300x150.jpg 300w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><figcaption class=\"wp-element-caption\">HILmate in a compact enclosure for desk and on-the-go use.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large media-3\"><img loading=\"lazy\" decoding=\"async\" width=\"908\" height=\"764\" src=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/WebGUI_HILmate.png\" alt=\"\" class=\"wp-image-991\" srcset=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/WebGUI_HILmate.png 908w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/WebGUI_HILmate-300x252.png 300w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/WebGUI_HILmate-768x646.png 768w\" sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><figcaption class=\"wp-element-caption\">Easy configuration and control through the integrated web interface.<br><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"530\" src=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2023\/03\/IMG_20230302_131805_freigestellt-1024x530.jpg\" alt=\"\" class=\"wp-image-1106\" style=\"width:514px\" srcset=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2023\/03\/IMG_20230302_131805_freigestellt-1024x530.jpg 1024w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2023\/03\/IMG_20230302_131805_freigestellt-300x155.jpg 300w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2023\/03\/IMG_20230302_131805_freigestellt-768x397.jpg 768w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2023\/03\/IMG_20230302_131805_freigestellt-1536x795.jpg 1536w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2023\/03\/IMG_20230302_131805_freigestellt-2048x1060.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Custom HILmate<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><img decoding=\"async\" src=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2022\/01\/grafik.png\" alt=\"\" class=\"wp-image-1071\"\/><figcaption class=\"wp-element-caption\">The power, voltage, and current measurements are displayed graphically in the web interface.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Product Description<\/h3>\n\n\n\n<p>Are you developing embedded devices with interfaces not available on conventional development PCs? Can your device be updated via USB?<\/p>\n\n\n\n<p>Then a HILmate is your ideal partner: for remote work, home office, integration into an automated quality assurance process (CI\/CD), or simply as a multifunctional tool at your workplace.<\/p>\n\n\n\n<p>With its versatile control, analysis, and communication interfaces, combined with its compact dimensions, the HILmate is also ideal for field or customer operations. Unified log outputs simplify analysis and testing. The modern, interactive web interface and the OpenAPI REST interface offer equivalent functionality. Script examples and documentation enable easy and fast integration into automated quality assurance processes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"produktbeschreibung\"><\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped media-2 wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"323\" data-id=\"967\" src=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/About-1024x323.png\" alt=\"\" class=\"wp-image-967\" srcset=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/About-1024x323.png 1024w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/About-300x95.png 300w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/About-768x242.png 768w, https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/About.png 1157w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"features\">Features<\/h3>\n\n\n\t\t\t\t\t\t<style>\r\n\t\t\t\t<style>\r\n#wpsm_accordion_1224 .wpsm_panel-heading{\r\n\tpadding:0px !important;\r\n}\r\n#wpsm_accordion_1224 .wpsm_panel-title {\r\n\tmargin:0px !important; \r\n\ttext-transform:none !important;\r\n\tline-height: 1 !important;\r\n}\r\n#wpsm_accordion_1224 .wpsm_panel-title a{\r\n\ttext-decoration:none;\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\tpadding:0px;\r\n\tfont-size: 18px !important;\r\n\tfont-family: Open Sans !important;\r\n\tcolor:#000000 !important;\r\n\tborder-bottom:0px !important;\r\n}\r\n\r\n#wpsm_accordion_1224 .wpsm_panel-title a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#wpsm_accordion_1224 .wpsm_panel-title a:hover, #wpsm_accordion_1224 .wpsm_panel-title a:focus {\r\n\tcolor:#000000 !important;\r\n}\r\n#wpsm_accordion_1224 .acc-a{\r\n\tcolor: #000000 !important;\r\n\tbackground-color:#e8e8e8 !important;\r\n\tborder-color: #ddd;\r\n}\r\n#wpsm_accordion_1224 .wpsm_panel-default > .wpsm_panel-heading{\r\n\tcolor: #000000 !important;\r\n\tbackground-color: #e8e8e8 !important;\r\n\tborder-color: #e8e8e8 !important;\r\n\tborder-top-left-radius: 0px;\r\n\tborder-top-right-radius: 0px;\r\n}\r\n#wpsm_accordion_1224 .wpsm_panel-default {\r\n\t\tborder:1px solid transparent !important;\r\n\t}\r\n#wpsm_accordion_1224 {\r\n\tmargin-bottom: 20px;\r\n\toverflow: hidden;\r\n\tfloat: none;\r\n\twidth: 100%;\r\n\tdisplay: block;\r\n}\r\n#wpsm_accordion_1224 .ac_title_class{\r\n\tdisplay: block;\r\n\tpadding-top: 12px;\r\n\tpadding-bottom: 12px;\r\n\tpadding-left: 15px;\r\n\tpadding-right: 15px;\r\n}\r\n#wpsm_accordion_1224  .wpsm_panel {\r\n\toverflow:hidden;\r\n\t-webkit-box-shadow: 0 0px 0px rgba(0, 0, 0, .05);\r\n\tbox-shadow: 0 0px 0px rgba(0, 0, 0, .05);\r\n\t\tborder-radius: 4px;\r\n\t}\r\n#wpsm_accordion_1224  .wpsm_panel + .wpsm_panel {\r\n\t\tmargin-top: 5px;\r\n\t}\r\n#wpsm_accordion_1224  .wpsm_panel-body{\r\n\tbackground-color:#ffffff !important;\r\n\tcolor:#000000 !important;\r\n\tborder-top-color: #e8e8e8 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\toverflow: hidden;\r\n\t\tborder: 2px solid transparent !important;\r\n\t}\r\n\r\n#wpsm_accordion_1224 .ac_open_cl_icon{\r\n\tbackground-color:#e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tfloat:left !important;\r\n\tpadding-top: 12px !important;\r\n\tpadding-bottom: 12px !important;\r\n\tline-height: 1.0 !important;\r\n\tpadding-left: 15px !important;\r\n\tpadding-right: 15px !important;\r\n\tdisplay: inline-block !important;\r\n}\r\n\r\n\t\t\t\r\n\t\t\t<\/style>\t\r\n\t\t\t<\/style>\r\n\t\t\t<div class=\"wpsm_panel-group\" id=\"wpsm_accordion_1224\" >\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse1\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tPower measurement\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse1\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p> The power module provides the ability to measure voltage, power, and current.\r\nThe logging module allows the measurement data to be downloaded. The measurements are displayed graphically in the web interface.<\/p>\r\n\r\n\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse2\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tUSB storage muxing\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse2\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>Connected USB storage devices can be accessed both via the network interface and the USB-DUT interface. Using a USB multiplexer, the Device Under Test or the HILmate can be connected to the USB device.  \r\nThis allows boot media created by the Continuous Integration process to be automatically tested by transferring them from the HILmate to the USB storage. The HILmate then connects the USB storage to the Device Under Test and initiates the update process.<br>\r\nThis procedure enables the automated testing of USB installation or update paths.<\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse3\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tPower switch and toggle\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse3\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>The HILmate Pro features a switch and a power on\/off switch, which can handle up to 10A. This allows both power supply and control signals, such as button presses, to be switched and monitored. Through the web frontend or the REST API, switch commands can be issued, and the current switch status can be queried. <\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse4\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tCAN, RS485, UART and GPIOs\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse4\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>The integrated communication module allows communication from various interfaces to be recorded in full-duplex mode, used as a remote console for reading and writing, or utilized as a GPIO for control or status messages. <\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse5\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tUSB 2.0 device remote connect and disconnect\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse5\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>The HILmate enables remote connection and disconnection of the USB connection between the USB device and the Device Under Test. In particular, the data channel can be switched separately from the USB power, allowing for robustness testing or specific use cases.<br>\r\nThanks to the HILmate's API interface, automated, reproducible system tests of the USB stack can be implemented.<\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse6\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tSandbox\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse6\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>With the integrated sandbox, you gain access to an isolated Linux system on the HILmate Rack 1U. This allows services for server communication to be provided, such as integrating the HILmate Rack 1U as a direct GitLab runner. Test automation can be implemented to respond to incoming signals, data, or messages.<\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse7\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tCI\/CD System Integration\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse7\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>The HILmate Pro can be integrated into all common systems for Continuous Integration and Test Automation via an open API REST interface. Well-known examples include Jenkins, Hudson, GitHub, GitLab, Bitbucket, and others. All functions of the web interface are available through the REST interface.<\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse8\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tInteractive Webfrontend\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse8\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>The integrated web interface allows for initial setup, configuration, and manual operation. Current states and changes are transmitted live, enabling monitoring of automated processes. All functions of the REST interface are also accessible through the web interface.<\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t<!-- Inner panel Start -->\r\n\t\t\t\t\t<div class=\"wpsm_panel wpsm_panel-default\">\r\n\t\t\t\t\t\t<div class=\"wpsm_panel-heading\" role=\"tab\" >\r\n\t\t\t\t\t\t  <h4 class=\"wpsm_panel-title\">\r\n\t\t\t\t\t\t\t<a  class=\"collapsed\"  data-toggle=\"collapse\" data-parent=\"\" href=\"javascript:void(0)\" data-target=\"#ac_1224_collapse9\" onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ac_open_cl_icon fa fa-plus\"><\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t<span class=\"ac_title_class\">\r\n\t\t\t\t\t\t\t\t\tLogging and Time Synchronisation\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t  <\/h4>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div id=\"ac_1224_collapse9\" class=\"wpsm_panel-collapse collapse \"  >\r\n\t\t\t\t\t\t  <div class=\"wpsm_panel-body\">\r\n\t\t\t\t\t\t\t<p>All activities can be logged in a unified format, allowing for post-processing in external programs. With optional NTP synchronization, the timestamps of a log can be aligned with the time sequence of distributed systems, establishing their relationship to each other. <\/p>\t\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<!-- Inner panel End -->\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\r\n<script type=\"text\/javascript\">\r\n\t\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.wpsm_panel .wpsm_panel-body iframe' ).width();\r\n\t\t\tvar height=jQuery( '.wpsm_panel .wpsm_panel-body iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\t\t\r\n<\/script>\t\n\n\n\n<h3 class=\"wp-block-heading\" id=\"features\">Want other Interfaces?<\/h3>\n\n\n\n<p>Our HILmate program also supports other interfaces, such as SD-Card interface, ZigBee, or TTY. Feel free to contact us via our <a href=\"https:\/\/itb-solutions.de\/blog\/produktinteresse\/#hilmate_pro\">contact form<\/a>.<br><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-left\" id=\"dokumente-downloads\"> Documents &amp; downloads<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2022\/12\/HILmate-Datasheet.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Datasheet<\/a> <\/li>\n\n\n\n<li><a href=\"https:\/\/itb-solutions.de\/wp-content\/uploads\/2021\/03\/HILmate_slides_10.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Use cases<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"fur-eine-unverbindliche-anfrage-kontaktieren-sie-uns-uber-unser-kontaktformular\"><a href=\"https:\/\/itb-solutions.de\/blog\/produktinteresse\/#hilmate_pro\"><span class=\"has-inline-color has-vivid-cyan-blue-color\">F\u00fcr eine unverbindliche Anfrage kontaktieren Sie uns \u00fcber unser Kontaktformular.<\/span><\/a><\/h3>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\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 = false;\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\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  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        if(setNum) {\n          num = parseInt(className.split('-')[1]);\n          if(isNaN(num))\n          isContent = false; \/\/ Wrong element\n      }\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<p><!-- \/wp:post-content --><\/p>\n<p><!-- wp:html \/--><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>","protected":false},"excerpt":{"rendered":"<p>Quality Assurance and Test Automation Product Description Are you developing embedded devices with interfaces not available on conventional development PCs? Can your device be updated via USB? Then a HILmate &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":526,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-fullwidth.php","meta":{"footnotes":""},"class_list":["post-678","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages\/678","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/comments?post=678"}],"version-history":[{"count":98,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages\/678\/revisions"}],"predecessor-version":[{"id":1326,"href":"https:\/\/itb-solutions.de\/en\/wp-json\/wp\/v2\/pages\/678\/revisions\/1326"}],"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=678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}