{"id":22254,"date":"2019-12-27T17:05:57","date_gmt":"2019-12-27T17:05:57","guid":{"rendered":"https:\/\/www.horter.de\/blog\/?p=22254"},"modified":"2023-01-13T15:29:27","modified_gmt":"2023-01-13T15:29:27","slug":"java-code-fuer-funksteckdosen","status":"publish","type":"post","link":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/","title":{"rendered":"Java-Code f\u00fcr Funksteckdosen"},"content":{"rendered":"<h1>Beispielcode in Java f\u00fcr 433MHz Funksteckdosen<\/h1>\n<p>Dieses beispiel hat ein Kunde freundlicherweise zur Verf\u00fcgung gestellt.<\/p>\n<p>Er steuert damit erfolgreich die M-E\u00a0 Funk-Lichtschalter Mod. FLS-100 bzw die baugleichen Renkforce Funk-Schalter-Set<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<pre style=\"color: #000000; background: #ffffff;\">######################################################\r\n\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> java<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">io<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">BufferedReader<\/span><span style=\"color: #800080;\">;<\/span>\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> java<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">io<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">IOException<\/span><span style=\"color: #800080;\">;<\/span>\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> java<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">io<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">InputStreamReader<\/span><span style=\"color: #800080;\">;<\/span>\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> java<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">io<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">UnsupportedEncodingException<\/span><span style=\"color: #800080;\">;<\/span>\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> java<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">text<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">MessageFormat<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> com<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">pi4j<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">io<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">i2c<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">I2CBus<\/span><span style=\"color: #800080;\">;<\/span>\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> com<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">pi4j<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">io<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">i2c<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">I2CDevice<\/span><span style=\"color: #800080;\">;<\/span>\r\n<span style=\"color: #004a43;\">\u00a0\u00a0<\/span><span style=\"color: #800000; font-weight: bold;\">import<\/span><span style=\"color: #004a43;\"> com<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">pi4j<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">io<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">i2c<\/span><span style=\"color: #808030;\">.<\/span><span style=\"color: #004a43;\">I2CFactory<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n  <span style=\"color: #3f5fbf;\">\/**<\/span>\r\n<span style=\"color: #3f5fbf;\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">*<\/span> <span style=\"color: #7f9fbf; font-weight: bold;\">&lt;p&gt;<\/span><span style=\"color: #3f5fbf;\">Compile<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">:<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">&lt;\/p&gt;<\/span>\r\n<span style=\"color: #3f5fbf;\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">*<\/span> <span style=\"color: #7f9fbf; font-weight: bold;\">&lt;code&gt;<\/span><span style=\"color: #3f5fbf;\">javac <\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">cp pi4j<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">core<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #008c00;\">1.4<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">SNAPSHOT<\/span><span style=\"color: #008c00;\">.<\/span><span style=\"color: #3f5fbf;\">jar<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">:<\/span><span style=\"color: #3f5fbf;\">. RSL366OverHorterI2cTest<\/span><span style=\"color: #008c00;\">.<\/span><span style=\"color: #3f5fbf;\">java<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">&lt;\/code&gt;<\/span>\r\n<span style=\"color: #3f5fbf;\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">*<\/span>\r\n<span style=\"color: #3f5fbf;\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">*<\/span> <span style=\"color: #7f9fbf; font-weight: bold;\">&lt;p&gt;<\/span><span style=\"color: #3f5fbf;\">Run<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">:<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">&lt;\/p&gt;<\/span>\r\n<span style=\"color: #3f5fbf;\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">*<\/span> <span style=\"color: #7f9fbf; font-weight: bold;\">&lt;code&gt;<\/span><span style=\"color: #3f5fbf;\">java <\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">add<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">exports java<\/span><span style=\"color: #008c00;\">.<\/span><span style=\"color: #3f5fbf;\">base<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">\/<\/span><span style=\"color: #3f5fbf;\">jdk<\/span><span style=\"color: #008c00;\">.<\/span><span style=\"color: #3f5fbf;\">internal<\/span><span style=\"color: #008c00;\">.<\/span><span style=\"color: #3f5fbf;\">misc=ALL<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">UNNAMED <\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">cp pi4j<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">core<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #008c00;\">1.4<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">-<\/span><span style=\"color: #3f5fbf;\">SNAPSHOT<\/span><span style=\"color: #008c00;\">.<\/span><span style=\"color: #3f5fbf;\">jar<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">:<\/span><span style=\"color: #3f5fbf;\">.<\/span>\r\n<span style=\"color: #3f5fbf;\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">*<\/span><span style=\"color: #3f5fbf;\"> RSL366OverHorterI2cTest<\/span><span style=\"color: #7f9fbf; font-weight: bold;\">&lt;\/code&gt;<\/span>\r\n<span style=\"color: #3f5fbf;\">\u00a0\u00a0\u00a0*\/<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">class<\/span> RSL366OverHorterI2cTest <span style=\"color: #800080;\">{<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_REG_SYS_CODE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">00<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_REG_DEV_CODE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">01<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_REG_CONF_CODE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">02<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> LEN_SYS <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">6<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> LEN_DEV <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">8<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> LEN_CONF <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">8<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_PTR <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_STATUS <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_TRANSMITTING <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">2<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_PROTOCOL <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">3<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_REPEATS <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">4<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_VER_MAJOR <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">5<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_VER_MINOR <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">6<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> ADDR_INFO_NR_OF_KNOWN_PROTOCOLS <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">7<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> TX_STATUS_OFF <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">0F<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> TX_STATUS_ACTIVE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">AC<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_OK <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">00<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_SYS_TOO_MUCH_DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">01<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_SYS_MISSING_DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">02<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_SYS_INVALID_DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">03<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_SYS_MISSING <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">04<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_DEV_TOO_MUCH_DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">05<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_DEV_INVALID_DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">06<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_PROTO_UNKNOWN <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">07<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_BAD_PTR <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">08<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span> STATUS_CONF_TOO_MUCH_DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">09<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> systemValues <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> <span style=\"color: #800080;\">{<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">0<\/span> <span style=\"color: #800080;\">}<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">byte<\/span> system<span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">byte<\/span> device<span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">static<\/span> I2CDevice dev<span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">void<\/span> main<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">String<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> args<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800000; font-weight: bold;\">throws<\/span> <span style=\"color: #bb7977; font-weight: bold;\">Exception<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977; font-weight: bold;\">BufferedReader<\/span> input <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">BufferedReader<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">InputStreamReader<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>in<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Getting I2C device...\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      I2CBus i2cBus <span style=\"color: #808030;\">=<\/span> I2CFactory<span style=\"color: #808030;\">.<\/span>getInstance<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      dev <span style=\"color: #808030;\">=<\/span> i2cBus<span style=\"color: #808030;\">.<\/span>getDevice<span style=\"color: #808030;\">(<\/span><span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">18<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status <span style=\"color: #808030;\">=<\/span> configure<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> version <span style=\"color: #808030;\">=<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_VER_MAJOR<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\".\"<\/span> <span style=\"color: #808030;\">+<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_VER_MINOR<span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Connected to Horter I2C to 433MHz version \"<\/span> <span style=\"color: #808030;\">+<\/span> version <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" supporting \"<\/span>\r\n          <span style=\"color: #808030;\">+<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_NR_OF_KNOWN_PROTOCOLS<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" 433MHz protocols\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      readCodes<span style=\"color: #808030;\">(<\/span>input<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977;\">boolean<\/span> run <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">true<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">while<\/span> <span style=\"color: #808030;\">(<\/span>run<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">try<\/span> <span style=\"color: #800080;\">{<\/span>\r\n\r\n          <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Selected: \"<\/span> <span style=\"color: #808030;\">+<\/span> system <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\".\"<\/span> <span style=\"color: #808030;\">+<\/span> device<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>print<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Action [o|f|c|e|x]: \"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> action <span style=\"color: #808030;\">=<\/span> input<span style=\"color: #808030;\">.<\/span>readLine<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n          <span style=\"color: #800000; font-weight: bold;\">switch<\/span> <span style=\"color: #808030;\">(<\/span>action<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n          <span style=\"color: #800000; font-weight: bold;\">case<\/span> <span style=\"color: #0000e6;\">\"o\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n            setState<span style=\"color: #808030;\">(<\/span>system<span style=\"color: #808030;\">,<\/span> device<span style=\"color: #808030;\">,<\/span> <span style=\"color: #800000; font-weight: bold;\">true<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n            <span style=\"color: #800000; font-weight: bold;\">break<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #800000; font-weight: bold;\">case<\/span> <span style=\"color: #0000e6;\">\"f\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n            setState<span style=\"color: #808030;\">(<\/span>system<span style=\"color: #808030;\">,<\/span> device<span style=\"color: #808030;\">,<\/span> <span style=\"color: #800000; font-weight: bold;\">false<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n            <span style=\"color: #800000; font-weight: bold;\">break<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #800000; font-weight: bold;\">case<\/span> <span style=\"color: #0000e6;\">\"c\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n            configure<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n            <span style=\"color: #800000; font-weight: bold;\">break<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #800000; font-weight: bold;\">case<\/span> <span style=\"color: #0000e6;\">\"e\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n            readCodes<span style=\"color: #808030;\">(<\/span>input<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n            <span style=\"color: #800000; font-weight: bold;\">break<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #800000; font-weight: bold;\">case<\/span> <span style=\"color: #0000e6;\">\"x\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n            run <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">false<\/span><span style=\"color: #800080;\">;<\/span>\r\n            <span style=\"color: #800000; font-weight: bold;\">break<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #800080;\">}<\/span>\r\n\r\n        <span style=\"color: #800080;\">}<\/span> <span style=\"color: #800000; font-weight: bold;\">catch<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">Exception<\/span> e<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n          <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>err<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Error: \"<\/span> <span style=\"color: #808030;\">+<\/span> getExceptionMessageWithCauses<span style=\"color: #808030;\">(<\/span>e<span style=\"color: #808030;\">,<\/span> <span style=\"color: #800000; font-weight: bold;\">true<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          e<span style=\"color: #808030;\">.<\/span>printStackTrace<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n        <span style=\"color: #800080;\">}<\/span>\r\n      <span style=\"color: #800080;\">}<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> configure<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #800000; font-weight: bold;\">throws<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IOException<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977; font-weight: bold;\">InterruptedException<\/span> <span style=\"color: #800080;\">{<\/span>\r\n\r\n      <span style=\"color: #696969;\">\/\/ configure<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span> protocol <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">2<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span> repeats <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Configuring...\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> data <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800080;\">{<\/span> protocol<span style=\"color: #808030;\">,<\/span> repeats <span style=\"color: #800080;\">}<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"=&gt; \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>ADDR_REG_CONF_CODE<span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>data<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      dev<span style=\"color: #808030;\">.<\/span>write<span style=\"color: #808030;\">(<\/span>ADDR_REG_CONF_CODE<span style=\"color: #808030;\">,<\/span> data<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">Thread<\/span><span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">50<\/span><span style=\"color: #006600;\">L<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #696969;\">\/\/ validate configuration<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status <span style=\"color: #808030;\">=<\/span> readInfo<span style=\"color: #808030;\">(<\/span><span style=\"color: #800000; font-weight: bold;\">true<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_PROTOCOL<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">!<\/span><span style=\"color: #808030;\">=<\/span> protocol<span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Protocol could not be set to \"<\/span> <span style=\"color: #808030;\">+<\/span> protocol<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_REPEATS<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">!<\/span><span style=\"color: #808030;\">=<\/span> repeats<span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Repeats could not bet set to \"<\/span> <span style=\"color: #808030;\">+<\/span> repeats<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> status<span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">void<\/span> setState<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span> system<span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977;\">byte<\/span> device<span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977;\">boolean<\/span> state<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800000; font-weight: bold;\">throws<\/span> <span style=\"color: #bb7977; font-weight: bold;\">Exception<\/span> <span style=\"color: #800080;\">{<\/span>\r\n\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"System: \"<\/span> <span style=\"color: #808030;\">+<\/span> system<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Device: \"<\/span> <span style=\"color: #808030;\">+<\/span> device<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status <span style=\"color: #808030;\">=<\/span> readInfo<span style=\"color: #808030;\">(<\/span><span style=\"color: #800000; font-weight: bold;\">false<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>isDeviceTransmitting<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n        <span style=\"color: #bb7977; font-weight: bold;\">Thread<\/span><span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">100<\/span><span style=\"color: #006600;\">L<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n        waitForDeviceIdle<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800080;\">}<\/span>\r\n\r\n      configure<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #696969;\">\/\/ write system code<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Writing system code...\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"=&gt; \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>ADDR_REG_SYS_CODE<span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>system<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      dev<span style=\"color: #808030;\">.<\/span>write<span style=\"color: #808030;\">(<\/span>ADDR_REG_SYS_CODE<span style=\"color: #808030;\">,<\/span> system<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">Thread<\/span><span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">5<\/span><span style=\"color: #006600;\">L<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      status <span style=\"color: #808030;\">=<\/span> readInfo<span style=\"color: #808030;\">(<\/span><span style=\"color: #800000; font-weight: bold;\">true<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>isSystemCodeInvalid<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span>\r\n            <span style=\"color: #0000e6;\">\"SystemCode is invalid after sending systemCode: \"<\/span> <span style=\"color: #808030;\">+<\/span> parseStatus<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_STATUS<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #696969;\">\/\/ write value code<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span> value <span style=\"color: #808030;\">=<\/span> state <span style=\"color: #808030;\">?<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">(<\/span>device <span style=\"color: #808030;\">+<\/span> <span style=\"color: #008c00;\">128<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">:<\/span> device<span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Writing value code...\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"=&gt; \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>ADDR_REG_DEV_CODE<span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>value<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      dev<span style=\"color: #808030;\">.<\/span>write<span style=\"color: #808030;\">(<\/span>ADDR_REG_DEV_CODE<span style=\"color: #808030;\">,<\/span> value<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">Thread<\/span><span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">5<\/span><span style=\"color: #006600;\">L<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      status <span style=\"color: #808030;\">=<\/span> readInfo<span style=\"color: #808030;\">(<\/span><span style=\"color: #800000; font-weight: bold;\">false<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>isDeviceCodeInvalid<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span>\r\n            <span style=\"color: #0000e6;\">\"DeviceCode is invalid after sending deviceCode: \"<\/span> <span style=\"color: #808030;\">+<\/span> parseStatus<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_STATUS<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">!<\/span>isDeviceTransmitting<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span>\r\n            <span style=\"color: #0000e6;\">\"Device is not transmitting after sending \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>system<span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\".\"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>value<span style=\"color: #808030;\">)<\/span>\r\n                <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\"...\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      showInfoRegister<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span>\r\n          <span style=\"color: #0000e6;\">\"Successfully sent state change to \"<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #808030;\">(<\/span>state <span style=\"color: #808030;\">?<\/span> <span style=\"color: #0000e6;\">\"on\"<\/span> <span style=\"color: #808030;\">:<\/span> <span style=\"color: #0000e6;\">\"off\"<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" for device \"<\/span> <span style=\"color: #808030;\">+<\/span> system <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\", \"<\/span>\r\n              <span style=\"color: #808030;\">+<\/span> device<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">void<\/span> waitForDeviceIdle<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #800000; font-weight: bold;\">throws<\/span> <span style=\"color: #bb7977; font-weight: bold;\">Exception<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status <span style=\"color: #808030;\">=<\/span> readInfo<span style=\"color: #808030;\">(<\/span><span style=\"color: #800000; font-weight: bold;\">false<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #800000; font-weight: bold;\">while<\/span> <span style=\"color: #808030;\">(<\/span>isDeviceTransmitting<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n        <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Device is transmitting, waiting...\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n        <span style=\"color: #bb7977; font-weight: bold;\">Thread<\/span><span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">100<\/span><span style=\"color: #006600;\">L<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n        dev<span style=\"color: #808030;\">.<\/span>read<span style=\"color: #808030;\">(<\/span>ADDR_REG_CONF_CODE<span style=\"color: #808030;\">,<\/span> status<span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">,<\/span> status<span style=\"color: #808030;\">.<\/span>length<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800080;\">}<\/span>\r\n\r\n      <span style=\"color: #bb7977;\">byte<\/span> errorStatus <span style=\"color: #808030;\">=<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_STATUS<span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>errorStatus <span style=\"color: #808030;\">!<\/span><span style=\"color: #808030;\">=<\/span> STATUS_OK<span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Device error: \"<\/span> <span style=\"color: #808030;\">+<\/span> errorStatus <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" \"<\/span> <span style=\"color: #808030;\">+<\/span> parseStatus<span style=\"color: #808030;\">(<\/span>errorStatus<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> readInfo<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">boolean<\/span> showInfoRegister<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800000; font-weight: bold;\">throws<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IOException<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span>LEN_CONF<span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n      dev<span style=\"color: #808030;\">.<\/span>read<span style=\"color: #808030;\">(<\/span>ADDR_REG_CONF_CODE<span style=\"color: #808030;\">,<\/span> status<span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">,<\/span> status<span style=\"color: #808030;\">.<\/span>length<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"&lt;= \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>ADDR_REG_CONF_CODE<span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>showInfoRegister<span style=\"color: #808030;\">)<\/span>\r\n        showInfoRegister<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> status<span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">boolean<\/span> isSystemCodeInvalid<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span> error <span style=\"color: #808030;\">=<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_STATUS<span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> error <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> STATUS_SYS_INVALID_DATA <span style=\"color: #696969;\">\/\/<\/span>\r\n          <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> error <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> STATUS_SYS_MISSING <span style=\"color: #696969;\">\/\/<\/span>\r\n          <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> error <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> STATUS_SYS_MISSING_DATA <span style=\"color: #696969;\">\/\/<\/span>\r\n          <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> error <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> STATUS_SYS_TOO_MUCH_DATA<span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">boolean<\/span> isDeviceCodeInvalid<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #bb7977;\">byte<\/span> error <span style=\"color: #808030;\">=<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_STATUS<span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> error <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> STATUS_DEV_INVALID_DATA <span style=\"color: #696969;\">\/\/<\/span>\r\n          <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> error <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> STATUS_DEV_TOO_MUCH_DATA<span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">void<\/span> showInfoRegister<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"    Pointer             : \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_PTR<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"    Status              : \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_STATUS<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" \"<\/span> <span style=\"color: #808030;\">+<\/span> parseStatus<span style=\"color: #808030;\">(<\/span>\r\n          status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_STATUS<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"    TX                  : \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_TRANSMITTING<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"    Protocol            : \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_PROTOCOL<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"    Repeats             : \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_REPEATS<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span>\r\n          <span style=\"color: #0000e6;\">\"    Version             : \"<\/span> <span style=\"color: #808030;\">+<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_VER_MAJOR<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\".\"<\/span> <span style=\"color: #808030;\">+<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_VER_MINOR<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"    Supported Protocols : \"<\/span> <span style=\"color: #808030;\">+<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_NR_OF_KNOWN_PROTOCOLS<span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">boolean<\/span> isDeviceTransmitting<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> status<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> status<span style=\"color: #808030;\">[<\/span>ADDR_INFO_TRANSMITTING<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> TX_STATUS_ACTIVE<span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> parseStatus<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span> status<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">switch<\/span> <span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_OK<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"OK\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_SYS_TOO_MUCH_DATA<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"Too much SystemCode data\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_SYS_MISSING_DATA<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"SystemCode missing data\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_SYS_INVALID_DATA<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"Invalid SystemCode\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_SYS_MISSING<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"SystemCode Missing\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_DEV_TOO_MUCH_DATA<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"Too much device data\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_DEV_INVALID_DATA<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"DeviceCode invalid\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_PROTO_UNKNOWN<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"Invalid protocol\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_BAD_PTR<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"Bad pointer\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">case<\/span> STATUS_CONF_TOO_MUCH_DATA<span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"Too much config data\"<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">default<\/span><span style=\"color: #808030;\">:<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #0000e6;\">\"Unknown status \"<\/span> <span style=\"color: #808030;\">+<\/span> toHexString<span style=\"color: #808030;\">(<\/span>status<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800080;\">}<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">void<\/span> readCodes<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">BufferedReader<\/span> input<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #bb7977;\">boolean<\/span> notRead <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">true<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">while<\/span> <span style=\"color: #808030;\">(<\/span>notRead<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">try<\/span> <span style=\"color: #800080;\">{<\/span>\r\n          <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>print<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"System Code: \"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> systemCode <span style=\"color: #808030;\">=<\/span> input<span style=\"color: #808030;\">.<\/span>readLine<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          system <span style=\"color: #808030;\">=<\/span> <span style=\"color: #bb7977; font-weight: bold;\">Byte<\/span><span style=\"color: #808030;\">.<\/span>decode<span style=\"color: #808030;\">(<\/span>systemCode<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>system <span style=\"color: #808030;\">&lt;<\/span> <span style=\"color: #008c00;\">1<\/span> <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> system <span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">4<\/span><span style=\"color: #808030;\">)<\/span>\r\n            <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"System must be between 1 and 4 incl.\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n          <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>out<span style=\"color: #808030;\">.<\/span>print<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Device Code: \"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> deviceCode <span style=\"color: #808030;\">=<\/span> input<span style=\"color: #808030;\">.<\/span>readLine<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          device <span style=\"color: #808030;\">=<\/span> <span style=\"color: #bb7977; font-weight: bold;\">Byte<\/span><span style=\"color: #808030;\">.<\/span>decode<span style=\"color: #808030;\">(<\/span>deviceCode<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>device <span style=\"color: #808030;\">&lt;<\/span> <span style=\"color: #008c00;\">1<\/span> <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> device <span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">4<\/span><span style=\"color: #808030;\">)<\/span>\r\n            <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Device must be between 1 and 4 incl.\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n          notRead <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">false<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n        <span style=\"color: #800080;\">}<\/span> <span style=\"color: #800000; font-weight: bold;\">catch<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">Exception<\/span> e<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n          <span style=\"color: #bb7977; font-weight: bold;\">System<\/span><span style=\"color: #808030;\">.<\/span>err<span style=\"color: #808030;\">.<\/span>println<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Error: \"<\/span> <span style=\"color: #808030;\">+<\/span> getExceptionMessageWithCauses<span style=\"color: #808030;\">(<\/span>e<span style=\"color: #808030;\">,<\/span> <span style=\"color: #800000; font-weight: bold;\">true<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n        <span style=\"color: #800080;\">}<\/span>\r\n      <span style=\"color: #800080;\">}<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> toHexString<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> raw<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800000; font-weight: bold;\">throws<\/span> <span style=\"color: #bb7977; font-weight: bold;\">RuntimeException<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> toHexString<span style=\"color: #808030;\">(<\/span>raw<span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">,<\/span> raw<span style=\"color: #808030;\">.<\/span>length<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> toHexString<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span> data<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span><span style=\"color: #808030;\">.<\/span>format<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"%02x\"<\/span><span style=\"color: #808030;\">,<\/span> data<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> toHexString<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> raw<span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977;\">int<\/span> offset<span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977;\">int<\/span> length<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800000; font-weight: bold;\">throws<\/span> <span style=\"color: #bb7977; font-weight: bold;\">RuntimeException<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">try<\/span> <span style=\"color: #800080;\">{<\/span>\r\n        <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> hex <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #008c00;\">2<\/span> <span style=\"color: #808030;\">*<\/span> length<span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n        <span style=\"color: #bb7977;\">int<\/span> index <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n        <span style=\"color: #bb7977;\">int<\/span> pos <span style=\"color: #808030;\">=<\/span> offset<span style=\"color: #800080;\">;<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">for<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">int<\/span> i <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #800080;\">;<\/span> i <span style=\"color: #808030;\">&lt;<\/span> length<span style=\"color: #800080;\">;<\/span> i<span style=\"color: #808030;\">+<\/span><span style=\"color: #808030;\">+<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n          <span style=\"color: #bb7977;\">byte<\/span> b <span style=\"color: #808030;\">=<\/span> raw<span style=\"color: #808030;\">[<\/span>pos<span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n          <span style=\"color: #bb7977;\">int<\/span> v <span style=\"color: #808030;\">=<\/span> b <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">FF<\/span><span style=\"color: #800080;\">;<\/span>\r\n          hex<span style=\"color: #808030;\">[<\/span>index<span style=\"color: #808030;\">+<\/span><span style=\"color: #808030;\">+<\/span><span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">=<\/span> HEX_CHAR_TABLE<span style=\"color: #808030;\">[<\/span>v <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">4<\/span><span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n          hex<span style=\"color: #808030;\">[<\/span>index<span style=\"color: #808030;\">+<\/span><span style=\"color: #808030;\">+<\/span><span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">=<\/span> HEX_CHAR_TABLE<span style=\"color: #808030;\">[<\/span>v <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008000;\">0<\/span><span style=\"color: #008c00;\">x<\/span><span style=\"color: #008000;\">F<\/span><span style=\"color: #808030;\">]<\/span><span style=\"color: #800080;\">;<\/span>\r\n          pos<span style=\"color: #808030;\">+<\/span><span style=\"color: #808030;\">+<\/span><span style=\"color: #800080;\">;<\/span>\r\n        <span style=\"color: #800080;\">}<\/span>\r\n\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span><span style=\"color: #808030;\">(<\/span>hex<span style=\"color: #808030;\">,<\/span> <span style=\"color: #0000e6;\">\"ASCII\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span> <span style=\"color: #696969;\">\/\/$NON-NLS-1$<\/span>\r\n\r\n      <span style=\"color: #800080;\">}<\/span> <span style=\"color: #800000; font-weight: bold;\">catch<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">UnsupportedEncodingException<\/span> e<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n        <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> msg <span style=\"color: #808030;\">=<\/span> <span style=\"color: #bb7977; font-weight: bold;\">MessageFormat<\/span>\r\n            <span style=\"color: #808030;\">.<\/span>format<span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Something went wrong while converting to HEX: {0}\"<\/span><span style=\"color: #808030;\">,<\/span> e<span style=\"color: #808030;\">.<\/span>getMessage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span> <span style=\"color: #696969;\">\/\/$NON-NLS-1$<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">RuntimeException<\/span><span style=\"color: #808030;\">(<\/span>msg<span style=\"color: #808030;\">,<\/span> e<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800080;\">}<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">private<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #800000; font-weight: bold;\">final<\/span> <span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> HEX_CHAR_TABLE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800080;\">{<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'0'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'1'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'2'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'3'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'4'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'5'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'6'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'7'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'8'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'9'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'a'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'b'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'c'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'d'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'e'<\/span><span style=\"color: #808030;\">,<\/span>\r\n        <span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #0000e6;\">'f'<\/span> <span style=\"color: #800080;\">}<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> asBinary<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span> b<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n\r\n      <span style=\"color: #bb7977; font-weight: bold;\">StringBuilder<\/span> sb <span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">StringBuilder<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">7<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">6<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">5<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">4<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">3<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      sb<span style=\"color: #808030;\">.<\/span>append<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>b <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> sb<span style=\"color: #808030;\">.<\/span>toString<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">boolean<\/span> isBitSet<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977;\">byte<\/span> data<span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977;\">int<\/span> position<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>position <span style=\"color: #808030;\">&gt;<\/span> <span style=\"color: #008c00;\">7<\/span><span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">throw<\/span> <span style=\"color: #800000; font-weight: bold;\">new<\/span> <span style=\"color: #bb7977; font-weight: bold;\">IllegalStateException<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Position \"<\/span> <span style=\"color: #808030;\">+<\/span> position <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\" is not available in a byte!\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">(<\/span>data <span style=\"color: #808030;\">&gt;<\/span><span style=\"color: #808030;\">&gt;<\/span> position<span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">&amp;<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977;\">boolean<\/span> isEmpty<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">String<\/span> value<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> value <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">null<\/span> <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> value<span style=\"color: #808030;\">.<\/span>isEmpty<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> getExceptionMessage<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">Throwable<\/span> t<span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977;\">boolean<\/span> withClassName<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>withClassName <span style=\"color: #808030;\">|<\/span><span style=\"color: #808030;\">|<\/span> isEmpty<span style=\"color: #808030;\">(<\/span>t<span style=\"color: #808030;\">.<\/span>getMessage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> t<span style=\"color: #808030;\">.<\/span>getClass<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">.<\/span>getName<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\": \"<\/span> <span style=\"color: #808030;\">+<\/span> t<span style=\"color: #808030;\">.<\/span>getMessage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> t<span style=\"color: #808030;\">.<\/span>getMessage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n\r\n    <span style=\"color: #800000; font-weight: bold;\">public<\/span> <span style=\"color: #800000; font-weight: bold;\">static<\/span> <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> getExceptionMessageWithCauses<span style=\"color: #808030;\">(<\/span><span style=\"color: #bb7977; font-weight: bold;\">Throwable<\/span> t<span style=\"color: #808030;\">,<\/span> <span style=\"color: #bb7977;\">boolean<\/span> withClassName<span style=\"color: #808030;\">)<\/span> <span style=\"color: #800080;\">{<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #808030;\">(<\/span>t<span style=\"color: #808030;\">.<\/span>getCause<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">=<\/span><span style=\"color: #808030;\">=<\/span> <span style=\"color: #800000; font-weight: bold;\">null<\/span><span style=\"color: #808030;\">)<\/span>\r\n        <span style=\"color: #800000; font-weight: bold;\">return<\/span> getExceptionMessage<span style=\"color: #808030;\">(<\/span>t<span style=\"color: #808030;\">,<\/span> withClassName<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n\r\n      <span style=\"color: #bb7977; font-weight: bold;\">String<\/span> root <span style=\"color: #808030;\">=<\/span> getExceptionMessageWithCauses<span style=\"color: #808030;\">(<\/span>t<span style=\"color: #808030;\">.<\/span>getCause<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">,<\/span> withClassName<span style=\"color: #808030;\">)<\/span><span style=\"color: #800080;\">;<\/span>\r\n      <span style=\"color: #800000; font-weight: bold;\">return<\/span> getExceptionMessage<span style=\"color: #808030;\">(<\/span>t<span style=\"color: #808030;\">,<\/span> withClassName<span style=\"color: #808030;\">)<\/span> <span style=\"color: #808030;\">+<\/span> <span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">\"<\/span> <span style=\"color: #808030;\">+<\/span> root<span style=\"color: #800080;\">;<\/span>\r\n    <span style=\"color: #800080;\">}<\/span>\r\n  <span style=\"color: #800080;\">}<\/span>\r\n\r\n######################################################\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Beispielcode in Java f\u00fcr 433MHz Funksteckdosen Dieses beispiel hat ein Kunde freundlicherweise zur Verf\u00fcgung gestellt. Er steuert damit erfolgreich die M-E\u00a0 Funk-Lichtschalter Mod. FLS-100 bzw die baugleichen Renkforce Funk-Schalter-Set &nbsp; &nbsp; ###################################################### \u00a0\u00a0import java.io.BufferedReader; \u00a0\u00a0import java.io.IOException; \u00a0\u00a0import java.io.InputStreamReader; \u00a0\u00a0import java.io.UnsupportedEncodingException;&#8230; <a class=\"continue-reading-link\" href=\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\">mehr lesen<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[255],"tags":[],"class_list":["post-22254","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java-Code f\u00fcr Funksteckdosen - Horter &amp; Kalb Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java-Code f\u00fcr Funksteckdosen - Horter &amp; Kalb Blog\" \/>\n<meta property=\"og:description\" content=\"Beispielcode in Java f\u00fcr 433MHz Funksteckdosen Dieses beispiel hat ein Kunde freundlicherweise zur Verf\u00fcgung gestellt. Er steuert damit erfolgreich die M-E\u00a0 Funk-Lichtschalter Mod. FLS-100 bzw die baugleichen Renkforce Funk-Schalter-Set &nbsp; &nbsp; ###################################################### \u00a0\u00a0import java.io.BufferedReader; \u00a0\u00a0import java.io.IOException; \u00a0\u00a0import java.io.InputStreamReader; \u00a0\u00a0import java.io.UnsupportedEncodingException;... mehr lesen\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\" \/>\n<meta property=\"og:site_name\" content=\"Horter &amp; Kalb Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-27T17:05:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-13T15:29:27+00:00\" \/>\n<meta name=\"author\" content=\"JH\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"JH\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\"},\"author\":{\"name\":\"JH\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2\"},\"headline\":\"Java-Code f\u00fcr Funksteckdosen\",\"datePublished\":\"2019-12-27T17:05:57+00:00\",\"dateModified\":\"2023-01-13T15:29:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\"},\"wordCount\":37,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#organization\"},\"articleSection\":[\"Raspberry PI\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\",\"url\":\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\",\"name\":\"Java-Code f\u00fcr Funksteckdosen - Horter &amp; Kalb Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#website\"},\"datePublished\":\"2019-12-27T17:05:57+00:00\",\"dateModified\":\"2023-01-13T15:29:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\/\/www.horter.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java-Code f\u00fcr Funksteckdosen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.horter.de\/blog\/#website\",\"url\":\"https:\/\/www.horter.de\/blog\/\",\"name\":\"Horter & Kalb Blog\",\"description\":\"SPS, I2C und mehr\",\"publisher\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.horter.de\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.horter.de\/blog\/#organization\",\"name\":\"Horter & Kalb Blog\",\"url\":\"https:\/\/www.horter.de\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png\",\"contentUrl\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png\",\"width\":400,\"height\":400,\"caption\":\"Horter & Kalb Blog\"},\"image\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2\",\"name\":\"JH\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg\",\"contentUrl\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg\",\"caption\":\"JH\"},\"url\":\"https:\/\/www.horter.de\/blog\/author\/j-horter\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java-Code f\u00fcr Funksteckdosen - Horter &amp; Kalb Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/","og_locale":"de_DE","og_type":"article","og_title":"Java-Code f\u00fcr Funksteckdosen - Horter &amp; Kalb Blog","og_description":"Beispielcode in Java f\u00fcr 433MHz Funksteckdosen Dieses beispiel hat ein Kunde freundlicherweise zur Verf\u00fcgung gestellt. Er steuert damit erfolgreich die M-E\u00a0 Funk-Lichtschalter Mod. FLS-100 bzw die baugleichen Renkforce Funk-Schalter-Set &nbsp; &nbsp; ###################################################### \u00a0\u00a0import java.io.BufferedReader; \u00a0\u00a0import java.io.IOException; \u00a0\u00a0import java.io.InputStreamReader; \u00a0\u00a0import java.io.UnsupportedEncodingException;... mehr lesen","og_url":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/","og_site_name":"Horter &amp; Kalb Blog","article_published_time":"2019-12-27T17:05:57+00:00","article_modified_time":"2023-01-13T15:29:27+00:00","author":"JH","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"JH","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#article","isPartOf":{"@id":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/"},"author":{"name":"JH","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2"},"headline":"Java-Code f\u00fcr Funksteckdosen","datePublished":"2019-12-27T17:05:57+00:00","dateModified":"2023-01-13T15:29:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/"},"wordCount":37,"commentCount":0,"publisher":{"@id":"https:\/\/www.horter.de\/blog\/#organization"},"articleSection":["Raspberry PI"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/","url":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/","name":"Java-Code f\u00fcr Funksteckdosen - Horter &amp; Kalb Blog","isPartOf":{"@id":"https:\/\/www.horter.de\/blog\/#website"},"datePublished":"2019-12-27T17:05:57+00:00","dateModified":"2023-01-13T15:29:27+00:00","breadcrumb":{"@id":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.horter.de\/blog\/java-code-fuer-funksteckdosen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/www.horter.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Java-Code f\u00fcr Funksteckdosen"}]},{"@type":"WebSite","@id":"https:\/\/www.horter.de\/blog\/#website","url":"https:\/\/www.horter.de\/blog\/","name":"Horter & Kalb Blog","description":"SPS, I2C und mehr","publisher":{"@id":"https:\/\/www.horter.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.horter.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.horter.de\/blog\/#organization","name":"Horter & Kalb Blog","url":"https:\/\/www.horter.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png","contentUrl":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png","width":400,"height":400,"caption":"Horter & Kalb Blog"},"image":{"@id":"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2","name":"JH","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg","contentUrl":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg","caption":"JH"},"url":"https:\/\/www.horter.de\/blog\/author\/j-horter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts\/22254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/comments?post=22254"}],"version-history":[{"count":1,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts\/22254\/revisions"}],"predecessor-version":[{"id":22255,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts\/22254\/revisions\/22255"}],"wp:attachment":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/media?parent=22254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/categories?post=22254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/tags?post=22254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}