{"id":1093,"date":"2018-04-17T22:20:45","date_gmt":"2018-04-17T13:20:45","guid":{"rendered":"https:\/\/www.kdel.org\/wp\/?p=1093"},"modified":"2018-04-17T23:42:38","modified_gmt":"2018-04-17T14:42:38","slug":"function-block-for-refbox","status":"publish","type":"post","link":"https:\/\/www.kdel.org\/wp\/?p=1093","title":{"rendered":"function block for RefBox"},"content":{"rendered":"<p>\u4ee5\u524d\u4f5c\u3063\u305f\uff0cRefBox \u3068\u901a\u4fe1\u3059\u308bView2 \u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f4\u65b0\u3057\u3066View2 \u306eFunction Block \u306b\u3057\u307e\u3059\uff0e<\/p>\n<p>\u30d5\u30a1\u30a4\u30eb\u69cb\u6210\u3068\u3057\u3066\u306f\uff0cllsf-refbox\/bin\/llsf-view2-var.sh \u306b\u5909\u6570\u306e\u4e2d\u8eab\u3092\u51fa\u529b\u3059\u308b\u3068\u3068\u3082\u306b\uff0cview2send.txt \u306benum \u7684\u306a\u6570\u5b57\u3067\u51fa\u529b\u3057\u3066\u3044\u307e\u3059\uff0e<br \/>\n\u524d\u8005\u306f\uff0cview2_HOGEHOGE\uff0c\u5f8c\u8005\u306fsendData.HOGEHOGE \u306b\u4fdd\u5b58\uff0e<\/p>\n<p>\u307e\u305a\u306f\uff0c\u305d\u306e\u9803\u3068\u306ediff\u3092\u78ba\u8a8d\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nwataru@ubuntu:~\/lab\/btr2018\/llsf-refbox\/src$ diff tools\/llsf-fake-robot.cpp tools.view2\/llsf-fake-robot.cpp \r\n43,44d42\r\n&lt; #include &lt;utils\/system\/console_colors.h&gt;\r\n&lt; #include &lt;utils\/misc\/string_split.h&gt;\r\n54d51\r\n&lt; #include &lt;msgs\/RingInfo.pb.h&gt;\r\n167,179c164,166\r\n&lt;       std::list&lt;std::string&gt; rings;\r\n&lt;       for (int j = 0; j &lt; o.ring_colors_size(); ++j) {\r\n&lt; \trings.push_back(llsf_msgs::RingColor_Name(o.ring_colors(j)));;\r\n&lt;       }\r\n&lt; \r\n&lt;       printf(&quot;  %u (%s): %s%u%s\/%s%u%s\/%u of %s|%s|%s from %02u:%02u to %02u:%02u at gate %u\\n&quot;, o.id(),\r\n&lt; \t     llsf_msgs::Order::Complexity_Name(o.complexity()).c_str(),\r\n&lt; \t     c_cyan, o.quantity_delivered_cyan(), c_normal,\r\n&lt; \t     c_purple, o.quantity_delivered_magenta(), c_normal,\r\n&lt; \t     o.quantity_requested(),\r\n&lt; \t     llsf_msgs::BaseColor_Name(o.base_color()).c_str(),\r\n&lt; \t     str_join(rings, &quot;-&quot;).c_str(),\r\n&lt; \t     llsf_msgs::CapColor_Name(o.cap_color()).c_str(),\r\n---\r\n&gt;       printf(&quot;  %u: %u\/%u of %s from %02u:%02u to %02u:%02u at gate %s\\n&quot;, o.id(),\r\n&gt; \t     o.quantity_delivered(), o.quantity_requested(),\r\n&gt; \t     llsf_msgs::Order::ProductType_Name(o.product()).c_str(),\r\n181c168\r\n&lt; \t     o.delivery_gate());\r\n---\r\n&gt; \t     llsf_msgs::Order::DeliveryGate_Name(o.delivery_gate()).c_str());\r\n204,207c191,194\r\n&lt;     for (int i = 0; i &lt; ei-&gt;zones_size(); ++i) {\r\n&lt;       const ExplorationZone &amp;zm = ei-&gt;zones(i);\r\n&lt;       printf(&quot;  Zone %s of team %s\\n&quot;,\r\n&lt; \t     Zone_Name(zm.zone()).c_str(), Team_Name(zm.team_color()).c_str());\r\n---\r\n&gt;     for (int i = 0; i &lt; ei-&gt;machines_size(); ++i) {\r\n&gt;       const ExplorationMachine &amp;em = ei-&gt;machines(i);\r\n&gt;       printf(&quot;  Machine %s at (%f, %f, %f)\\n&quot;, em.name().c_str(),\r\n&gt; \t     em.pose().x(), em.pose().y(), em.pose().ori());\r\n217c204\r\n&lt;       printf(&quot;  %-3s|%2s|%s (%s) @ (%f, %f, %f)\\n&quot;,\r\n---\r\n&gt;       printf(&quot;  %-3s|%2s|%s @ (%f, %f, %f)\\n&quot;,\r\n220d206\r\n&lt; \t\t\t\t\t\t m.state().c_str(),\r\n262,273d247\r\n&lt; \r\n&lt;   std::shared_ptr&lt;RingInfo&gt; rgi;\r\n&lt;   if ((rgi = std::dynamic_pointer_cast&lt;RingInfo&gt;(msg))) {\r\n&lt;     printf(&quot;RingInfo received:\\n&quot;);\r\n&lt;     for (int i = 0; i &lt; rgi-&gt;rings_size(); ++i) {\r\n&lt;       const Ring &amp;r = rgi-&gt;rings(i);\r\n&lt;       printf(&quot;  %s %u\\n&quot;,\r\n&lt; \t\t\t\t\t\t RingColor_Name(r.ring_color()).c_str(),\r\n&lt; \t\t\t\t\t\t r.raw_material());\r\n&lt;     }\r\n&lt;   }\r\n&lt; \r\n364d337\r\n&lt;   message_register.add_message_type&lt;RingInfo&gt;();\r\nwataru@ubuntu:~\/lab\/btr2018\/llsf-refbox\/src$ diff tools\/llsf-fake-robot.cpp tools.view2\/llsf-fake-robot.cpp \r\n43,44d42\r\n&lt; #include &lt;utils\/system\/console_colors.h&gt;\r\n&lt; #include &lt;utils\/misc\/string_split.h&gt;\r\n54d51\r\n&lt; #include &lt;msgs\/RingInfo.pb.h&gt;\r\n167,179c164,166\r\n&lt;       std::list&lt;std::string&gt; rings;\r\n&lt;       for (int j = 0; j &lt; o.ring_colors_size(); ++j) {\r\n&lt; \trings.push_back(llsf_msgs::RingColor_Name(o.ring_colors(j)));;\r\n&lt;       }\r\n&lt; \r\n&lt;       printf(&quot;  %u (%s): %s%u%s\/%s%u%s\/%u of %s|%s|%s from %02u:%02u to %02u:%02u at gate %u\\n&quot;, o.id(),\r\n&lt; \t     llsf_msgs::Order::Complexity_Name(o.complexity()).c_str(),\r\n&lt; \t     c_cyan, o.quantity_delivered_cyan(), c_normal,\r\n&lt; \t     c_purple, o.quantity_delivered_magenta(), c_normal,\r\n&lt; \t     o.quantity_requested(),\r\n&lt; \t     llsf_msgs::BaseColor_Name(o.base_color()).c_str(),\r\n&lt; \t     str_join(rings, &quot;-&quot;).c_str(),\r\n&lt; \t     llsf_msgs::CapColor_Name(o.cap_color()).c_str(),\r\n---\r\n&gt;       printf(&quot;  %u: %u\/%u of %s from %02u:%02u to %02u:%02u at gate %s\\n&quot;, o.id(),\r\n&gt; \t     o.quantity_delivered(), o.quantity_requested(),\r\n&gt; \t     llsf_msgs::Order::ProductType_Name(o.product()).c_str(),\r\n181c168\r\n&lt; \t     o.delivery_gate());\r\n---\r\n&gt; \t     llsf_msgs::Order::DeliveryGate_Name(o.delivery_gate()).c_str());\r\n204,207c191,194\r\n&lt;     for (int i = 0; i &lt; ei-&gt;zones_size(); ++i) {\r\n&lt;       const ExplorationZone &amp;zm = ei-&gt;zones(i);\r\n&lt;       printf(&quot;  Zone %s of team %s\\n&quot;,\r\n&lt; \t     Zone_Name(zm.zone()).c_str(), Team_Name(zm.team_color()).c_str());\r\n---\r\n&gt;     for (int i = 0; i &lt; ei-&gt;machines_size(); ++i) {\r\n&gt;       const ExplorationMachine &amp;em = ei-&gt;machines(i);\r\n&gt;       printf(&quot;  Machine %s at (%f, %f, %f)\\n&quot;, em.name().c_str(),\r\n&gt; \t     em.pose().x(), em.pose().y(), em.pose().ori());\r\n217c204\r\n&lt;       printf(&quot;  %-3s|%2s|%s (%s) @ (%f, %f, %f)\\n&quot;,\r\n---\r\n&gt;       printf(&quot;  %-3s|%2s|%s @ (%f, %f, %f)\\n&quot;,\r\n220d206\r\n&lt; \t\t\t\t\t\t m.state().c_str(),\r\n262,273d247\r\n&lt; \r\n&lt;   std::shared_ptr&lt;RingInfo&gt; rgi;\r\n&lt;   if ((rgi = std::dynamic_pointer_cast&lt;RingInfo&gt;(msg))) {\r\n&lt;     printf(&quot;RingInfo received:\\n&quot;);\r\n&lt;     for (int i = 0; i &lt; rgi-&gt;rings_size(); ++i) {\r\n&lt;       const Ring &amp;r = rgi-&gt;rings(i);\r\n&lt;       printf(&quot;  %s %u\\n&quot;,\r\n&lt; \t\t\t\t\t\t RingColor_Name(r.ring_color()).c_str(),\r\n&lt; \t\t\t\t\t\t r.raw_material());\r\n&lt;     }\r\n&lt;   }\r\n&lt; \r\n364d337\r\n&lt;   message_register.add_message_type&lt;RingInfo&gt;();\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nwataru@ubuntu:~\/lab\/btr2018\/llsf-refbox\/src$ diff tools\/llsf-report-machine.cpp tools.view2\/llsf-report-machine.cpp \r\n7d6\r\n&lt;  *             2017  Tobias Neumann\r\n50d48\r\n&lt; #include &lt;boost\/lexical_cast.hpp&gt;\r\n58,68c56,58\r\n&lt; bool        send_rotation_ = false;\r\n&lt; unsigned int machine_rotation_;\r\n&lt; bool        send_zone_ = false;\r\n&lt; llsf_msgs::Zone machine_zone_;\r\n&lt; std::string team_name_;\r\n&lt; Team        team_color_;\r\n&lt; ProtobufBroadcastPeer *peer_public_ = NULL;\r\n&lt; ProtobufBroadcastPeer *peer_team_ = NULL;\r\n&lt; bool crypto_setup_ = false;\r\n&lt; \r\n&lt; llsfrb::Configuration *config_;\r\n---\r\n&gt; std::string machine_type_;\r\n&gt; Team        team_;\r\n&gt; ProtobufBroadcastPeer *peer_ = NULL;\r\n96,138d85\r\n&lt;   std::shared_ptr&lt;GameState&gt; gs;\r\n&lt;   if ((gs = std::dynamic_pointer_cast&lt;GameState&gt;(msg))) {\r\n&lt;     int hour = gs-&gt;game_time().sec() \/ 3600;\r\n&lt;     int min  = (gs-&gt;game_time().sec() - hour * 3600) \/ 60;\r\n&lt;     int sec  = gs-&gt;game_time().sec() - hour * 3600 - min * 60;\r\n&lt; \r\n&lt; #if __WORDSIZE == 64\r\n&lt;     printf(&quot;GameState received:  %02i:%02i:%02i.%02ld  %s %s  %u:%u points, %s vs. %s\\n&quot;,\r\n&lt; #else\r\n&lt;     printf(&quot;GameState received:  %02i:%02i:%02i.%02lld  %s %s  %u:%u points, %s vs. %s\\n&quot;,\r\n&lt; #endif\r\n&lt; \t   hour, min, sec, gs-&gt;game_time().nsec() \/ 1000000,\r\n&lt; \t   llsf_msgs::GameState::Phase_Name(gs-&gt;phase()).c_str(),\r\n&lt; \t   llsf_msgs::GameState::State_Name(gs-&gt;state()).c_str(),\r\n&lt; \t   gs-&gt;points_cyan(), gs-&gt;points_magenta(),\r\n&lt; \t   gs-&gt;team_cyan().c_str(), gs-&gt;team_magenta().c_str());\r\n&lt; \r\n&lt;     if (team_name_ == gs-&gt;team_cyan() || team_name_ == gs-&gt;team_magenta()) {\r\n&lt;       if (team_name_ == gs-&gt;team_cyan() &amp;&amp; team_color_ != CYAN) {\r\n&lt; \tprintf(&quot;WARNING: sending as magenta, but our team is announced as cyan by refbox!\\n&quot;);\r\n&lt;       } else if (team_name_ == gs-&gt;team_magenta() &amp;&amp; team_color_ != MAGENTA) {\r\n&lt; \tprintf(&quot;WARNING: sending as cyan, but our team is announced as magenta by refbox!\\n&quot;);\r\n&lt;       }\r\n&lt;       if (! crypto_setup_) {\r\n&lt; \tcrypto_setup_ = true;\r\n&lt; \r\n&lt; \tstd::string crypto_key = &quot;&quot;, cipher = &quot;aes-128-cbc&quot;;\r\n&lt; \ttry {\r\n&lt; \t  crypto_key = config_-&gt;get_string((&quot;\/llsfrb\/game\/crypto-keys\/&quot; + team_name_).c_str());\r\n&lt; \t  printf(&quot;Set crypto key to %s (cipher %s)\\n&quot;, crypto_key.c_str(), cipher.c_str());\r\n&lt; \t  peer_team_-&gt;setup_crypto(crypto_key, cipher);\r\n&lt; \t} catch (Exception &amp;e) {\r\n&lt; \t  printf(&quot;No encryption key configured for team, not enabling crypto&quot;);\r\n&lt; \t}\r\n&lt;       }\r\n&lt;     } else if (crypto_setup_) {\r\n&lt;       printf(&quot;Our team is not set, training game? Disabling crypto.\\n&quot;);\r\n&lt;       crypto_setup_ = false;\r\n&lt;       peer_team_-&gt;setup_crypto(&quot;&quot;, &quot;&quot;);\r\n&lt;     }\r\n&lt;   }\r\n&lt; \r\n&lt; \r\n142,144c89\r\n&lt;             printf(&quot;Announcing machine: Zone: %s   rotation %u\\n&quot;,\r\n&lt;                    send_zone_ ? Zone_Name(machine_zone_).c_str() : &quot;*NO*&quot;,\r\n&lt;                    send_rotation_ ? machine_rotation_ : -1);\r\n---\r\n&gt;       printf(&quot;Announcing machine type\\n&quot;);\r\n146c91\r\n&lt;       report.set_team_color(team_color_);\r\n---\r\n&gt;       report.set_team_color(team_);\r\n149,151c94,95\r\n&lt;       if (send_rotation_) entry-&gt;set_rotation(machine_rotation_);\r\n&lt;       if (send_zone_) entry-&gt;set_zone(machine_zone_);\r\n&lt;       peer_team_-&gt;send(report);\r\n---\r\n&gt;       entry-&gt;set_type(machine_type_);\r\n&gt;       peer_-&gt;send(report);\r\n157,158c101,102\r\n&lt;     if (mrinfo-&gt;team_color() == team_color_) {\r\n&lt;       printf(&quot;Reported machines (%s):&quot;, llsf_msgs::Team_Name(team_color_).c_str());\r\n---\r\n&gt;     if (mrinfo-&gt;team_color() == team_) {\r\n&gt;       printf(&quot;Reported machines (%s):&quot;, llsf_msgs::Team_Name(team_).c_str());\r\n170c114\r\n&lt;   ArgumentParser argp(argc, argv, &quot;T:r:z:&quot;);\r\n---\r\n&gt;   ArgumentParser argp(argc, argv, &quot;T:&quot;);\r\n172,179c116,120\r\n&lt;   if (argp.num_items() != 2 || (! argp.has_arg(&quot;t&quot;) &amp;&amp; ! argp.has_arg(&quot;z&quot;))) {\r\n&lt; \t  printf(&quot;Usage: %s &#x5B;-T team] &#x5B;-t &lt;type&gt;] &#x5B;-z &lt;zone&gt;] &lt;team-name&gt; &lt;machine-name&gt;\\n&quot;\r\n&lt; \t         &quot;\\n&quot;\r\n&lt; \t         &quot;-T team\t  Select team to send for, CYAN (default) or MAGENTA\\n&quot;\r\n&lt; \t\t &quot;-r rotation Rotation to report for machine\\n&quot;\r\n&lt; \t\t &quot;-z zone     Zone to report for machine\\n\\n&quot;\r\n&lt; \t         &quot;You must supply at least one of type and zone, or both.\\n&quot;,\r\n&lt; \t         argv&#x5B;0]);\r\n---\r\n&gt;   if (argp.num_items() != 2) {\r\n&gt;     printf(&quot;Usage: %s &#x5B;-T team] &lt;machine-name&gt; &lt;machine-type&gt;\\n&quot;\r\n&gt; \t   &quot;\\n&quot;\r\n&gt; \t   &quot;-T team\tSelect team to send for, CYAN (default) or MAGENTA\\n&quot;,\r\n&gt; \t   argv&#x5B;0]);\r\n183,184c124,125\r\n&lt;   team_name_    = argp.items()&#x5B;0];\r\n&lt;   machine_name_ = argp.items()&#x5B;1];\r\n---\r\n&gt;   machine_name_ = argp.items()&#x5B;0];\r\n&gt;   machine_type_ = argp.items()&#x5B;1];\r\n186,197c127,128\r\n&lt;   if (argp.has_arg(&quot;r&quot;)) {\r\n&lt;           machine_rotation_ = boost::lexical_cast&lt;unsigned int&gt;(argp.arg(&quot;r&quot;));\r\n&lt;           send_rotation_ = true;\r\n&lt;   }\r\n&lt;   \r\n&lt;   if (argp.has_arg(&quot;z&quot;)) {\r\n&lt; \t  if (! llsf_msgs::Zone_Parse(argp.arg(&quot;z&quot;), &amp;machine_zone_)) {\r\n&lt; \t\t  printf(&quot;Invalid zone\\n&quot;);\r\n&lt; \t\t  exit(2);\r\n&lt; \t  }\r\n&lt; \t  send_zone_ = true;\r\n&lt;   }\r\n---\r\n&gt;   llsfrb::Configuration *config = new llsfrb::YamlConfiguration(CONFDIR);\r\n&gt;   config-&gt;load(&quot;config.yaml&quot;);\r\n198a130,139\r\n&gt;   if (config-&gt;exists(&quot;\/llsfrb\/comm\/peer-send-port&quot;) &amp;&amp;\r\n&gt;       config-&gt;exists(&quot;\/llsfrb\/comm\/peer-recv-port&quot;) )\r\n&gt;   {\r\n&gt;     peer_ = new ProtobufBroadcastPeer(config-&gt;get_string(&quot;\/llsfrb\/comm\/peer-host&quot;),\r\n&gt; \t\t\t\t      config-&gt;get_uint(&quot;\/llsfrb\/comm\/peer-recv-port&quot;),\r\n&gt; \t\t\t\t      config-&gt;get_uint(&quot;\/llsfrb\/comm\/peer-send-port&quot;));\r\n&gt;   } else {\r\n&gt;     peer_ = new ProtobufBroadcastPeer(config-&gt;get_string(&quot;\/llsfrb\/comm\/peer-host&quot;),\r\n&gt; \t\t\t\t      config-&gt;get_uint(&quot;\/llsfrb\/comm\/peer-port&quot;));\r\n&gt;   }\r\n200c141\r\n&lt;   team_color_ = CYAN;\r\n---\r\n&gt;   team_ = CYAN;\r\n204c145\r\n&lt;       team_color_ = CYAN;\r\n---\r\n&gt;       team_ = CYAN;\r\n206c147\r\n&lt;       team_color_ = MAGENTA;\r\n---\r\n&gt;       team_ = MAGENTA;\r\n212,224c153\r\n&lt;   config_ = new llsfrb::YamlConfiguration(CONFDIR);\r\n&lt;   config_-&gt;load(&quot;config.yaml&quot;);\r\n&lt; \r\n&lt;   if (config_-&gt;exists(&quot;\/llsfrb\/comm\/public-peer\/send-port&quot;) &amp;&amp;\r\n&lt;       config_-&gt;exists(&quot;\/llsfrb\/comm\/public-peer\/recv-port&quot;) )\r\n&lt;   {\r\n&lt;     peer_public_ = new ProtobufBroadcastPeer(config_-&gt;get_string(&quot;\/llsfrb\/comm\/public-peer\/host&quot;),\r\n&lt; \t\t\t\t\t     config_-&gt;get_uint(&quot;\/llsfrb\/comm\/public-peer\/recv-port&quot;),\r\n&lt; \t\t\t\t\t     config_-&gt;get_uint(&quot;\/llsfrb\/comm\/public-peer\/send-port&quot;));\r\n&lt;   } else {\r\n&lt;     peer_public_ = new ProtobufBroadcastPeer(config_-&gt;get_string(&quot;\/llsfrb\/comm\/public-peer\/host&quot;),\r\n&lt; \t\t\t\t\t     config_-&gt;get_uint(&quot;\/llsfrb\/comm\/public-peer\/port&quot;));\r\n&lt;   }\r\n---\r\n&gt;   boost::asio::io_service io_service;\r\n226c155\r\n&lt;   MessageRegister &amp; message_register = peer_public_-&gt;message_register();\r\n---\r\n&gt;   MessageRegister &amp; message_register = peer_-&gt;message_register();\r\n232,250d160\r\n&lt;   std::string cfg_prefix =\r\n&lt;     std::string(&quot;\/llsfrb\/comm\/&quot;) +\r\n&lt;     ((team_color_ == CYAN) ? &quot;cyan&quot; : &quot;magenta&quot;) + &quot;-peer\/&quot;;\r\n&lt; \r\n&lt;   if (config_-&gt;exists((cfg_prefix + &quot;send-port&quot;).c_str()) &amp;&amp;\r\n&lt;       config_-&gt;exists((cfg_prefix + &quot;recv-port&quot;).c_str()) )\r\n&lt;   {\r\n&lt;     peer_team_ = new ProtobufBroadcastPeer(config_-&gt;get_string((cfg_prefix + &quot;host&quot;).c_str()),\r\n&lt; \t\t\t\t\t   config_-&gt;get_uint((cfg_prefix + &quot;recv-port&quot;).c_str()),\r\n&lt; \t\t\t\t\t   config_-&gt;get_uint((cfg_prefix + &quot;send-port&quot;).c_str()),\r\n&lt; \t\t\t\t\t   &amp;message_register \/*, crypto_key, cipher*\/);\r\n&lt;   } else {\r\n&lt;     peer_team_ = new ProtobufBroadcastPeer(config_-&gt;get_string((cfg_prefix + &quot;host&quot;).c_str()),\r\n&lt; \t\t\t\t\t   config_-&gt;get_uint((cfg_prefix + &quot;port&quot;).c_str()),\r\n&lt; \t\t\t\t\t   &amp;message_register\/*, crypto_key, cipher*\/);\r\n&lt;   }\r\n&lt; \r\n&lt;   boost::asio::io_service io_service;\r\n&lt; \r\n253,259c163,165\r\n&lt;   peer_public_-&gt;signal_received().connect(handle_message);\r\n&lt;   peer_public_-&gt;signal_recv_error().connect(handle_recv_error);\r\n&lt;   peer_public_-&gt;signal_send_error().connect(handle_send_error);\r\n&lt; \r\n&lt;   peer_team_-&gt;signal_received().connect(handle_message);\r\n&lt;   peer_team_-&gt;signal_recv_error().connect(handle_recv_error);\r\n&lt;   peer_team_-&gt;signal_send_error().connect(handle_send_error);\r\n---\r\n&gt;   peer_-&gt;signal_received().connect(handle_message);\r\n&gt;   peer_-&gt;signal_recv_error().connect(handle_recv_error);\r\n&gt;   peer_-&gt;signal_send_error().connect(handle_send_error);\r\n274,276c180,181\r\n&lt;   delete peer_public_;\r\n&lt;   delete peer_team_;\r\n&lt;   delete config_;\r\n---\r\n&gt;   delete peer_;\r\n&gt;   delete config;\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u524d\u4f5c\u3063\u305f\uff0cRefBox \u3068\u901a\u4fe1\u3059\u308bView2 \u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f4\u65b0\u3057\u3066View2 &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/www.kdel.org\/wp\/?p=1093\"> <span class=\"screen-reader-text\">function block for RefBox<\/span> \u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[10,3,2,9],"tags":[],"class_list":["post-1093","post","type-post","status-publish","format-standard","hentry","category-fawkes","category-logistics-league","category-robocup","category-robotino-3"],"_links":{"self":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1093","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1093"}],"version-history":[{"count":6,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1093\/revisions"}],"predecessor-version":[{"id":1099,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1093\/revisions\/1099"}],"wp:attachment":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1093"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}