{"id":1809,"date":"2016-08-02T09:49:33","date_gmt":"2016-08-02T14:49:33","guid":{"rendered":"http:\/\/www.logikalsolutions.com\/wordpress\/?p=1809"},"modified":"2016-08-02T09:49:33","modified_gmt":"2016-08-02T14:49:33","slug":"raspberry-qt-part-11","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/","title":{"rendered":"Raspberry Qt &#8211; Part 11"},"content":{"rendered":"<p>Notice the emit statement in the following code snippet. This is where I chose to force in the new line character for our communications protocol.<\/p>\n<pre>void MainWindow::enterClicked()\r\n{\r\n\u00a0\u00a0\u00a0 QByteArray msg( ui-&gt;lineEdit-&gt;text().toUtf8());\r\n\u00a0\u00a0\u00a0<span style=\"color: #008000;\"> emit sendMessage( msg + \"\\n\");<\/span>\r\n\u00a0\u00a0\u00a0 LogikalLogger::Instance().logString( LogikalLogger::LL_INFO, \"Sending message: \" + msg);\r\n\u00a0\u00a0\u00a0 clearText();\r\n}<\/pre>\n<p style=\"text-align: justify;\">Now examine the readData() method. Notice how we append whatever came in to our internal QByteArray. Once that is done we search the buffer to see if our new line character is present. If it is we pull that chunk out of our internal buffer and emit a signal that a slot in our GUI will catch, ultimately displaying the text if it is printable. Index positions are zero based, but the character counts provided to both left() and remove() are actual counts so we have to add 1 to get the new line character.<\/p>\n<pre>void SerialThread::readData()\r\n{\r\n\u00a0\u00a0\u00a0 if (!shuttingDown())\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 QByteArray data = m_serialPort-&gt;readAll();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 m_dataBuffer.append( data);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int x = m_dataBuffer.indexOf('\\n');\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (x &gt; -1)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 QString msg( m_dataBuffer.left(x+1));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 LogikalLogger::Instance().logString(LogikalLogger::LL_DEBUG, \"SerialThread received data: \" + msg);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 emit messageReceived( msg);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 m_dataBuffer.remove(0,x+1);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 nukeServer();\r\n\u00a0\u00a0\u00a0 }\r\n}<\/pre>\n<p style=\"text-align: justify;\">This simple example provides the basic tools you need for serial communications. All you have to do is devise your messaging protocol. It should be rather easy for you to manipulate your own buffer to support any protocol you come up with.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Notice the emit statement in the following code snippet. This is where I chose to force in the new line character for our communications protocol. void MainWindow::enterClicked() { \u00a0\u00a0\u00a0 QByteArray msg( ui-&gt;lineEdit-&gt;text().toUtf8()); \u00a0\u00a0\u00a0 emit sendMessage( msg + &#8220;\\n&#8221;); \u00a0\u00a0\u00a0 LogikalLogger::Instance().logString( LogikalLogger::LL_INFO, &#8220;Sending message: &#8221; + msg); \u00a0\u00a0\u00a0 clearText(); } Now examine the readData() method. Notice how we append whatever came in to our internal QByteArray. Once that is done we search the buffer to see &hellip; <a title=\"Raspberry Qt &#8211; Part 11\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/\"><span class=\"screen-reader-text\">Raspberry Qt &#8211; Part 11<\/span>Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1113],"tags":[],"class_list":["post-1809","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Raspberry Qt - Part 11 &#8211; Logikal 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.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Raspberry Qt - Part 11 &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"Notice the emit statement in the following code snippet. This is where I chose to force in the new line character for our communications protocol. void MainWindow::enterClicked() { \u00a0\u00a0\u00a0 QByteArray msg( ui-&gt;lineEdit-&gt;text().toUtf8()); \u00a0\u00a0\u00a0 emit sendMessage( msg + &quot;n&quot;); \u00a0\u00a0\u00a0 LogikalLogger::Instance().logString( LogikalLogger::LL_INFO, &quot;Sending message: &quot; + msg); \u00a0\u00a0\u00a0 clearText(); } Now examine the readData() method. Notice how we append whatever came in to our internal QByteArray. Once that is done we search the buffer to see &hellip; Raspberry Qt &#8211; Part 11Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-02T14:49:33+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b87acf3335e19871db8f4a1aca03736c\"},\"headline\":\"Raspberry Qt &#8211; Part 11\",\"datePublished\":\"2016-08-02T14:49:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/\"},\"wordCount\":165,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"articleSection\":[\"Raspberry Pi\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/\",\"name\":\"Raspberry Qt - Part 11 &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"datePublished\":\"2016-08-02T14:49:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/raspberry-pi\\\/raspberry-qt-part-11\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Qt &#8211; Part 11\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/b87acf3335e19871db8f4a1aca03736c\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/168fb2539f8db5d41fe93ae7707d04fbfab3d518cd2603e8066217896887745a?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/168fb2539f8db5d41fe93ae7707d04fbfab3d518cd2603e8066217896887745a?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/168fb2539f8db5d41fe93ae7707d04fbfab3d518cd2603e8066217896887745a?s=96&d=mm&r=r\",\"caption\":\"admin\"},\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Raspberry Qt - Part 11 &#8211; Logikal 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.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/","og_locale":"en_US","og_type":"article","og_title":"Raspberry Qt - Part 11 &#8211; Logikal Blog","og_description":"Notice the emit statement in the following code snippet. This is where I chose to force in the new line character for our communications protocol. void MainWindow::enterClicked() { \u00a0\u00a0\u00a0 QByteArray msg( ui-&gt;lineEdit-&gt;text().toUtf8()); \u00a0\u00a0\u00a0 emit sendMessage( msg + \"n\"); \u00a0\u00a0\u00a0 LogikalLogger::Instance().logString( LogikalLogger::LL_INFO, \"Sending message: \" + msg); \u00a0\u00a0\u00a0 clearText(); } Now examine the readData() method. Notice how we append whatever came in to our internal QByteArray. Once that is done we search the buffer to see &hellip; Raspberry Qt &#8211; Part 11Read more","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/","og_site_name":"Logikal Blog","article_published_time":"2016-08-02T14:49:33+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/"},"author":{"name":"admin","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/b87acf3335e19871db8f4a1aca03736c"},"headline":"Raspberry Qt &#8211; Part 11","datePublished":"2016-08-02T14:49:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/"},"wordCount":165,"commentCount":0,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"articleSection":["Raspberry Pi"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/","name":"Raspberry Qt - Part 11 &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"datePublished":"2016-08-02T14:49:33+00:00","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/raspberry-pi\/raspberry-qt-part-11\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Raspberry Qt &#8211; Part 11"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"]},{"@type":"Person","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/b87acf3335e19871db8f4a1aca03736c","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/168fb2539f8db5d41fe93ae7707d04fbfab3d518cd2603e8066217896887745a?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/168fb2539f8db5d41fe93ae7707d04fbfab3d518cd2603e8066217896887745a?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/168fb2539f8db5d41fe93ae7707d04fbfab3d518cd2603e8066217896887745a?s=96&d=mm&r=r","caption":"admin"},"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/1809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=1809"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/1809\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=1809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=1809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=1809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}