{"id":1313,"date":"2023-12-22T13:54:06","date_gmt":"2023-12-22T04:54:06","guid":{"rendered":"https:\/\/avancesys.co.jp\/laboratory\/?post_type=article&#038;p=1313"},"modified":"2023-12-22T13:54:06","modified_gmt":"2023-12-22T04:54:06","slug":"%e7%ac%ac2%e5%9b%9e-vector-can-%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%82%92%e7%94%a8%e3%81%84%e3%81%9fcan%e9%80%9a%e4%bf%a1","status":"publish","type":"article","link":"https:\/\/www.avancesys.co.jp\/laboratory\/article\/%e7%ac%ac2%e5%9b%9e-vector-can-%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%82%92%e7%94%a8%e3%81%84%e3%81%9fcan%e9%80%9a%e4%bf%a1\/","title":{"rendered":"\u7b2c2\u56de Vector CAN \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1"},"content":{"rendered":"\n<p>\u3053\u3093\u306b\u3061\u306f\u3001OT\u3067\u3059\u3002<br>\u7b2c1\u56de\u3067\u306f\u3001CAN\u901a\u4fe1\u958b\u59cb\u307e\u3067\u306e\u521d\u671f\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8aac\u660e\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002<br>\u4eca\u56de\u306f\u3001CAN\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u9001\u4fe1\/\u53d7\u4fe1\u307e\u3067\u3092\u8aac\u660e\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u7b2c1\u56de\u3068\u540c\u69d8\u3001Vector\u793e\u304b\u3089\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308bCAN\u901a\u4fe1\u30e9\u30a4\u30d6\u30e9\u30ea\u300cXL Driver Library\u300d\u3092\u7528\u3044\u3066\u3001CAN\u901a\u4fe1\u3057\u3066\u307f\u307e\u3059\u3002<br>\u901a\u4fe1\u65b9\u6cd5\u3068\u3057\u3066\u306f\u3001Virtual CAN Bus\uff08PC\u5185\u3067\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u4eee\u60f3\u306eCAN BUS\uff09\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"855\" height=\"231\" src=\"https:\/\/avancesys.co.jp\/laboratory\/wp-content\/uploads\/2023\/12\/CAN-\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1_\u753b\u50cf2-1.png\" alt=\"\" class=\"wp-image-1314\" srcset=\"https:\/\/www.avancesys.co.jp\/laboratory\/wp-content\/uploads\/2023\/12\/CAN-\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1_\u753b\u50cf2-1.png 855w, https:\/\/www.avancesys.co.jp\/laboratory\/wp-content\/uploads\/2023\/12\/CAN-\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1_\u753b\u50cf2-1-300x81.png 300w, https:\/\/www.avancesys.co.jp\/laboratory\/wp-content\/uploads\/2023\/12\/CAN-\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1_\u753b\u50cf2-1-768x207.png 768w\" sizes=\"auto, (max-width: 855px) 100vw, 855px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-pullquote has-border-color has-vivid-cyan-blue-border-color\"><blockquote><p>\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\uff08C++\uff09<\/p><\/blockquote><\/figure>\n\n\n\n<p>\u4ee5\u4e0b\u3001CAN\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u9001\u4fe1\/\u53d7\u4fe1\u3092\u884c\u3046\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3092\u8a18\u8f09\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002<br>\u203b\u30a8\u30e9\u30fc\u6642\u306e\u51e6\u7406\u306f\u7701\u7565\u3002<\/p>\n\n\n\n<p>\u7b2c1\u56de\u3067\u4f5c\u6210\u3057\u305f\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u306b\u901a\u4fe1\u30c6\u30b9\u30c8\u7528\u306e\u95a2\u6570\uff08CanTest\uff09\u3092\u8ffd\u52a0\u3002<br>\u30c9\u30e9\u30a4\u30d0\u30aa\u30fc\u30d7\u30f3\u7528\u306e\u95a2\u6570\uff08CanDriverOpen\uff09\u306e\u8a73\u7d30\u306f\u7b2c1\u56de\u53c2\u7167\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>#include &lt;iostream&gt;\n#include &lt;windows.h&gt;\n#include &lt;thread&gt;\n#include &quot;vxlapi.h&quot;\n\n\/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\nXLaccess\t\tm_xlChannelMask[2];\t\t\t\/\/ CAN\u30c1\u30e3\u30f3\u30cd\u30eb\u30de\u30b9\u30af\nXLaccess\t\tm_xlChannelMask_all;\t\t\/\/ CAN\u30c1\u30e3\u30f3\u30cd\u30eb\u30de\u30b9\u30af\uff08\u5168\u30dd\u30fc\u30c8\uff09\nXLportHandle\tm_xlPortHandle;\t\t\t\t\/\/ \u30dd\u30fc\u30c8\u30cf\u30f3\u30c9\u30eb\nBOOL\t\t\tm_bRsvCommoActivated;\t\t\/\/ \u901a\u4fe1FLG\n\nvoid CanDriverOpen(void);\t\t\t\t\t\/\/ \u30c9\u30e9\u30a4\u30d0\u30aa\u30fc\u30d7\u30f3\nvoid CanTest(void);\t\t\t\t\t\t\t\/\/ CAN\u901a\u4fe1\u30c6\u30b9\u30c8\nvoid CanTxMsg(void);\t\t\t\t\t\t\/\/ CAN\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\nvoid ThreadReceiveMain(void);\t\t\t\t\/\/ CAN\u53d7\u4fe1\u30b9\u30ec\u30c3\u30c9\n\n\/\/ ---------------------------------------------------\n\/\/ \u6a5f\u80fd\uff1a\u30e1\u30a4\u30f3\u30eb\u30fc\u30c1\u30f3\n\/\/ ---------------------------------------------------\nint main()\n{\n\tCanDriverOpen();\t\t\t\/\/ \u30c9\u30e9\u30a4\u30d0\u30aa\u30fc\u30d7\u30f3\n\tCanTest();\t\t\t\t\t\/\/ \u901a\u4fe1\u30c6\u30b9\u30c8\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u901a\u4fe1\u30c6\u30b9\u30c8\u306e\u5185\u5bb9\uff1a<br>CAN\u53d7\u4fe1\u30b9\u30ec\u30c3\u30c9\u3092\u7528\u3044\u3066\u3001CAN\u53d7\u4fe1\u51e6\u7406\u958b\u59cb\u3002<br>\u305d\u306e\u5f8c\u3001CAN Ch1\u304b\u3089CAN\u9001\u4fe1\u3057\u3001CAN Ch2\u3067\u53d7\u4fe1\u3057\u305fCAN\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u753b\u9762\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>\/\/ -----------------------------------\n\/\/ CAN\u901a\u4fe1\u30c6\u30b9\u30c8\n\/\/ -----------------------------------\nvoid CanTest(void)\n{\n\t\/\/ CAN\u53d7\u4fe1\u30b9\u30ec\u30c3\u30c9\u958b\u59cb\n\tm_bRsvCommoActivated = TRUE;\n\tstd::thread RxThread(ThreadReceiveMain);\n\n\t\/\/ CAN\u9001\u4fe1\n\tCanTxMsg();\n\n\t\/\/ CAN\u53d7\u4fe1\u5f85\u6a5f\n\tSleep(1000);\n\n\t\/\/ CAN\u53d7\u4fe1\u30b9\u30ec\u30c3\u30c9\u505c\u6b62\n\tm_bRsvCommoActivated = FALSE;\n\tRxThread.join();\n}\n\n\/\/ -----------------------------------\n\/\/ CAN\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\n\/\/ -----------------------------------\nvoid CanTxMsg(void)\n{\n\tXLevent\t\t\txlEvent[1];\t\t\t\t\t\t\/\/ \u9001\u4fe1\u30a4\u30d9\u30f3\u30c8\n\tunsigned int\teventCount = 1;\t\t\t\t\t\/\/ \u9001\u4fe1\u30a4\u30d9\u30f3\u30c8\u6570\n\n\t\/\/ \u9001\u4fe1\u30e1\u30c3\u30bb\u30fc\u30b8\u8a2d\u5b9a\n\tmemset(xlEvent, 0, sizeof(xlEvent));\t\t\t\/\/ \u521d\u671f\u5316\n\n\txlEvent[0].tag = XL_TRANSMIT_MSG;\t\t\t\t\/\/ \u30bf\u30b0\uff1a\u9001\u4fe1\u30e1\u30c3\u30bb\u30fc\u30b8\n\txlEvent[0].tagData.msg.id = 0x123;\t\t\t\t\/\/ CAN ID\n\txlEvent[0].tagData.msg.flags = 0x00;\t\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30d5\u30e9\u30b0\n\txlEvent[0].tagData.msg.dlc = 8;\t\t\t\t\t\/\/ DLC\n\txlEvent[0].tagData.msg.data[0] = 0x01;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 1\n\txlEvent[0].tagData.msg.data[1] = 0x02;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 2\n\txlEvent[0].tagData.msg.data[2] = 0x03;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 3\n\txlEvent[0].tagData.msg.data[3] = 0x04;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 4\n\txlEvent[0].tagData.msg.data[4] = 0x05;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 5\n\txlEvent[0].tagData.msg.data[5] = 0x06;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 6\n\txlEvent[0].tagData.msg.data[6] = 0x07;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 7\n\txlEvent[0].tagData.msg.data[7] = 0x08;\t\t\t\/\/ \u9001\u4fe1\u30c7\u30fc\u30bf 8\n\n\t\/\/ \u9001\u4fe1\n\txlCanTransmit(m_xlPortHandle, \t\t\t\t\t\/\/ \u30dd\u30fc\u30c8\u30cf\u30f3\u30c9\u30eb\n\t\t\t\t  m_xlChannelMask[0],\t\t\t\t\/\/ CAN\u30c1\u30e3\u30f3\u30cd\u30eb\u30de\u30b9\u30af\uff1aCh1\n\t\t\t\t  &eventCount,\t\t\t\t\t\t\/\/ \u9001\u4fe1\u30a4\u30d9\u30f3\u30c8\u6570\n\t\t\t\t  &xlEvent);\t\t\t\t\t\t\/\/ \u9001\u4fe1\u30a4\u30d9\u30f3\u30c8\n}\n\n\/\/ -----------------------------------\n\/\/ CAN\u53d7\u4fe1\u30b9\u30ec\u30c3\u30c9\n\/\/ -----------------------------------\nvoid ThreadReceiveMain(void)\n{\n\tXLstatus\t\txlStatus;\t\t\t\t\t\t\t\t\t\/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\n\tXLevent\t\t\txlEvent;\t\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\n\tunsigned int\teventCount;\t\t\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\u6570\n\tunsigned char\ti;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u30eb\u30fc\u30d7\u5909\u6570\n\n\twhile (m_bRsvCommoActivated)\n\t{\n\t\t\/\/ \u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\u78ba\u8a8d\n\t\teventCount = 1;\n\t\txlStatus = xlReceive(m_xlPortHandle, \t\t\t\t\t\/\/ \u30dd\u30fc\u30c8\u30cf\u30f3\u30c9\u30eb\n\t\t\t\t\t\t\t &eventCount,\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\u6570\n\t\t\t\t\t\t\t &xlEvent);\t\t\t\t\t\t\t\/\/ \u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\n\n\t\tif(xlStatus != XL_ERR_QUEUE_IS_EMPTY)\t\t\t\t\t\/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\uff1a\u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\u3042\u308a\n\t\t{\n\t\t\tif((xlEvent.tag == XL_RECEIVE_MSG) &&\t\t\t\t\/\/ \u30bf\u30b0\uff1a\u53d7\u4fe1\u30e1\u30c3\u30bb\u30fc\u30b8\n\t\t\t   (xlEvent.tagData.msg.flags == 0))\t\t\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30d5\u30e9\u30b0\uff1a\u306a\u3057\n\t\t\t{\n\t\t\t\t\/\/ \u53d7\u4fe1\u30e1\u30c3\u30bb\u30fc\u30b8\u8868\u793a\n\t\t\t\tprintf(&quot;CAN\u53d7\u4fe1\u30e1\u30c3\u30bb\u30fc\u30b8\\n&quot;);\n\t\t\t\tprintf(&quot;Ch    \uff1a%X\\n&quot;, xlEvent.chanIndex + 1);\t\/\/ chanIndex = 0\uff1aVirtual CAN Ch1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ chanIndex = 1\uff1aVirtual CAN Ch2\n\t\t\t\tprintf(&quot;ID    \uff1a%X\\n&quot;, xlEvent.tagData.msg.id);\n\t\t\t\tprintf(&quot;DLC   \uff1a%X\\n&quot;, xlEvent.tagData.msg.dlc);\n\t\t\t\tprintf(&quot;DATA  \uff1a&quot;);\n\t\t\t\tfor (i = 0; i &lt; xlEvent.tagData.msg.dlc; i++)\n\t\t\t\t{\n\t\t\t\t\tprintf(&quot;%02X &quot;, xlEvent.tagData.msg.data[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u5404\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\uff08\u6982\u8981\uff09<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>xlCanTransmit<\/td><td>CAN\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1\u3057\u307e\u3059\u3002<br>\u5f15\u6570\u3067\u6307\u5b9a\u3057\u305fCAN\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u9001\u4fe1\u3055\u308c\u307e\u3059\u3002<\/td><\/tr><tr><td>xlReceive<\/td><td>CAN\u901a\u4fe1\u306e\u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<br>\u53d7\u4fe1\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u3042\u308b\u5834\u5408\u3001\u305d\u306e\u30c7\u30fc\u30bf\u306f\u5f15\u6570\u306b\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002<br>\u4e0a\u8a18\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3067\u306f\u7701\u7565\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u5f15\u6570\u3092\u5143\u306b\u30a8\u30e9\u30fc\u30d5\u30ec\u30fc\u30e0\u306e\u6709\u7121\u7b49\u3082\u78ba\u8a8d\u53ef\u80fd\u3067\u3059\u3002<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u203b\u30a8\u30e9\u30fc\u6642\u306e\u51e6\u7406\u3092\u5b9f\u88c5\u3059\u308b\u5834\u5408\u3001\u5404\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u306e\u623b\u308a\u5024\u3092\u5143\u306b\u30a8\u30e9\u30fc\u5224\u5b9a\u53ef\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-pullquote has-border-color has-vivid-cyan-blue-border-color\"><blockquote><p>\u5b9f\u884c\u7d50\u679c<\/p><\/blockquote><\/figure>\n\n\n\n<p>\u4ee5\u4e0b\u3001\u4e0a\u8a18\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u7d50\u679c\u3068\u306a\u308a\u307e\u3059\u3002<br>\u95a2\u6570 ThreadReceiveMain \u306eCAN\u53d7\u4fe1\u51e6\u7406\u3067\u53d6\u5f97\u3057\u305f\u53d7\u4fe1\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u753b\u9762\u8868\u793a\u3057\u3066\u3044\u307e\u3059\u3002<br>\u95a2\u6570 CanTxMsg \u306eCAN\u9001\u4fe1\u51e6\u7406\u3067\u9001\u4fe1\u3057\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u5185\u5bb9\u304c\u4e00\u81f4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"455\" height=\"150\" src=\"https:\/\/avancesys.co.jp\/laboratory\/wp-content\/uploads\/2023\/12\/CAN-\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1_\u753b\u50cf2-2.png\" alt=\"\" class=\"wp-image-1315\" srcset=\"https:\/\/www.avancesys.co.jp\/laboratory\/wp-content\/uploads\/2023\/12\/CAN-\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1_\u753b\u50cf2-2.png 455w, https:\/\/www.avancesys.co.jp\/laboratory\/wp-content\/uploads\/2023\/12\/CAN-\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305fCAN\u901a\u4fe1_\u753b\u50cf2-2-300x99.png 300w\" sizes=\"auto, (max-width: 455px) 100vw, 455px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-pullquote has-border-color has-vivid-cyan-blue-border-color\"><blockquote><p>\u5f8c\u304c\u304d<\/p><\/blockquote><\/figure>\n\n\n\n<p>CAN\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u9001\u4fe1\/\u53d7\u4fe1\u51e6\u7406\u306f\u4ee5\u4e0a\u3068\u306a\u308a\u307e\u3059\u3002<br>\u6b21\u56de\u306e\u8a18\u4e8b\u3067\u306fCAN\u901a\u4fe1\u7d42\u4e86\u306b\u3064\u3044\u3066\u8a18\u8f09\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"height:200px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"author":33,"featured_media":1041,"template":"","lc":[12],"lt":[34,22,33],"class_list":["post-1313","article","type-article","status-publish","has-post-thumbnail","hentry","lc-introduction","lt-tool","lt-can-communication","lt-windows"],"_links":{"self":[{"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/article\/1313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/users\/33"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/media\/1041"}],"wp:attachment":[{"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/media?parent=1313"}],"wp:term":[{"taxonomy":"lc","embeddable":true,"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/lc?post=1313"},{"taxonomy":"lt","embeddable":true,"href":"https:\/\/www.avancesys.co.jp\/laboratory\/wp-json\/wp\/v2\/lt?post=1313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}