{"id":8281,"date":"2014-03-31T09:15:20","date_gmt":"2014-03-31T16:15:20","guid":{"rendered":"http:\/\/www.seeedstudio.com\/blog\/?p=8281"},"modified":"2015-03-20T11:22:04","modified_gmt":"2015-03-20T03:22:04","slug":"suli-seeed-unified-library-interface","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/","title":{"rendered":"Suli: Seeed Unified Library Interface"},"content":{"rendered":"<p>Here we are happy to announce Suli,\u00a0our plan of open hardware module libraries for Arduino, Raspberry Pi, mbed and etc.<\/p>\n<h1>What is Suli?<\/h1>\n<p>Sounds like a girl\u2019s name? Actually it means Seeed Unified Library Interface. It\u2019s a big thing on our to-do list in the near future.<\/p>\n<p>We have hundreds of sensors, actuators, displays and other useful modules. In the past, we mainly focused on Arduino applications, and supplied Arduino Library only. This means if you used another platform such as Raspberry, LauchPad, or MCS51, you needed to port our Library, and sometimes it&#8217;s not easy.<\/p>\n<p>Sometimes when some customers asked us to provide some libraries for a non-Arduino platform, what we could do was telling them \u201chey man, we only have Arduino library.&#8221; Replying the customers in this way made us feel bad.<\/p>\n<p>And we have been thinking what if there&#8217;s a way to make our libraries fit all platforms. It\u2019s really a hard task, but not impossible. And we are lucky to figure it out finally: it&#8217;s Suli &#8211; Seeed Unified Library Interface, which can make almost all of(at least 90%) our libraries fit many common platforms, or at least make it easy to port.<\/p>\n<h1>How does Suli work?<\/h1>\n<p>Let\u2019s have a look at the following image<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-8283\" alt=\"Suli\" src=\"\/wp-content\/uploads\/2014\/03\/Suli.jpg\" width=\"453\" height=\"377\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg 453w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli-300x249.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli-150x124.jpg 150w\" sizes=\"(max-width: 453px) 100vw, 453px\" \/><\/p>\n<p>We can find that there are four circles and the innermost is HW(hardware). Suli will call resources from HW, such as GPIO, I2C, Timer and UART; then Suli-compatible Library, and then User Application. All of our Libraries will call Suli function only. Thus, for different platforms, we can just port Suli, then the Library can be used. That means different platforms have their Suli, Suli for Arudino, Suli for Mbed, Suli for&#8230;.<\/p>\n<p>There are several points about Suli:<\/p>\n<p>l\u00a0 Different platform has its equivalent Suli.<\/p>\n<p>l\u00a0 Suli-compatible Library is platform independent.<\/p>\n<p>l\u00a0 Suli-compatible Library will call the function in Suli.<\/p>\n<p>Suli has two files, Suli.h and Suli.cpp(.c). And Suli should implement the following function, which will be called by<\/p>\n<p>[php]<\/p>\n<p>GPIO type:<\/p>\n<p>typedef\u00a0\u00a0\u00a0\u00a0 int\u00a0\u00a0\u00a0\u00a0 IO_T;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ IO type<\/p>\n<p>typedef\u00a0\u00a0\u00a0\u00a0 int\u00a0\u00a0\u00a0\u00a0 PIN_T;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ pin name<\/p>\n<p>typedef\u00a0\u00a0\u00a0\u00a0 int\u00a0\u00a0\u00a0\u00a0 DIR_T;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ pin direction<\/p>\n<p>typedef int ANALOG_T;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ pin analog<\/p>\n<p>GPIO state:<\/p>\n<p>#define HAL_PIN_INPUT\u00a0\u00a0 INPUT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ INPUT and OUTPUT was declared in Arduino IDE<\/p>\n<p>#define HAL_PIN_OUTPUT\u00a0 OUTPUT<\/p>\n<p>#define HAL_PIN_HIGH\u00a0\u00a0\u00a0 HIGH\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ HIGH and LOW was declered in Arduino IDE<\/p>\n<p>#define HAL_PIN_LOW\u00a0\u00a0\u00a0\u00a0 LOW<\/p>\n<p>Data type:<\/p>\n<p>typedef signed char\u00a0\u00a0\u00a0\u00a0 int8;<\/p>\n<p>typedef unsigned char\u00a0\u00a0 uint8;<\/p>\n<p>typedef signed short\u00a0\u00a0\u00a0 int16;<\/p>\n<p>typedef unsigned short\u00a0 uint16;<\/p>\n<p>typedef signed long\u00a0\u00a0\u00a0\u00a0 int32;<\/p>\n<p>typedef unsigned long\u00a0\u00a0 uint32;<\/p>\n<p>Digital IO Operation:<\/p>\n<p>void seeed_hal_pin_init(IO_T *pio, PIN_T pin);\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ pin initialize<\/p>\n<p>void seeed_hal_pin_dir(IO_T *pio, DIR_T dir);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ set pin direction<\/p>\n<p>void seeed_hal_pin_write(IO_T *pio, int16 state);\u00a0 \u00a0\/\/ write pin<\/p>\n<p>int16 seeed_hal_pin_read(IO_T *pio);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ read pin<\/p>\n<p>uint16 seeed_hal_pulse_in(IO_T *pio, uint8 state, uint32 timeout);<\/p>\n<p>Analog IO Operation:<\/p>\n<p>void seeed_hal_analog_init(ANALOG_T * aio, PIN_T pin);<\/p>\n<p>int16 seeed_hal_analog_read(ANALOG_T * aio);<\/p>\n<p>Delay<\/p>\n<p>void seeed_hal_delay_us(uint32 us);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ delay us<\/p>\n<p>void seeed_hal_delay_ms(uint32 ms);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ delay ms<\/p>\n<p>Times<\/p>\n<p>uint32 seeed_hal_millis(void);<\/p>\n<p>uint32 seeed_hal_micros(void);<\/p>\n<p>I2C Interface:<\/p>\n<p>void seeed_hal_i2c_init(void * i2c_device);<\/p>\n<p>uint8 seeed_hal_i2c_write(void * i2c_device, uint8 dev_addr, uint8 *data, uint8 len);<\/p>\n<p>uint8 seeed_hal_i2c_read(void * i2c_device, uint8 dev_addr, uint8 *buff, uint8 *len);<\/p>\n<p>UART:<\/p>\n<p>void seeed_hal_uart_init(void * uart_device, int16 uart_num, uint32 baud);<\/p>\n<p>void seeed_hal_uart_send(void * uart_device, int16 uart_num, uint8 *data, uint16 len);<\/p>\n<p>void seeed_hal_uart_send_byte(void * uart_device, int16 uart_num, uint8 data);<\/p>\n<p>uint8 seeed_hal_uart_read_byte(void * uart_device, int16 uart_num);<\/p>\n<p>uint16 seeed_hal_uart_readable(void * uart_device, int16 uart_num);<\/p>\n<p>You can find that Suli includes digital IO operation, analog IO operation, I2C, and Uart function. It\u2019s not very comprehensive, but based on our experience, it\u2019s enough for many of our libraries. Of course if we find that we need more functions someday, we\u2019ll add to it.<\/p>\n<p>[\/php]<\/p>\n<h1>What is next\uff1f<\/h1>\n<p>Our plan is to make all Seeed libraries Suli compatible and porting Suli of\u00a0some common platforms. These platforms will include Arduino, Mbed, Mesh Bee, Raspberry, LaunchPad in the first stage. This work is expected be finished before June. Stay tuned \ud83d\ude00<\/p>\n<p>For more information, please refer to <a href=\"https:\/\/github.com\/Seeed-Studio\/Suli\">https:\/\/github.com\/Seeed-Studio\/Suli<\/a><\/p>\n<p style=\"text-align: right;\">Written by Loovee<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here we are happy to announce Suli,\u00a0our plan of open hardware module libraries for Arduino,<\/p>\n","protected":false},"author":14,"featured_media":8283,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8281","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Suli: Seeed Unified Library Interface - Latest News from Seeed Studio<\/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.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Suli: Seeed Unified Library Interface - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"Here we are happy to announce Suli,\u00a0our plan of open hardware module libraries for Arduino,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2014-03-31T16:15:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-03-20T03:22:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"453\" \/>\n\t<meta property=\"og:image:height\" content=\"377\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"violet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"violet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/\",\"name\":\"Suli: Seeed Unified Library Interface - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg\",\"datePublished\":\"2014-03-31T16:15:20+00:00\",\"dateModified\":\"2015-03-20T03:22:04+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/ed15d897e22238815e0cb67c345ce5e7\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg\",\"width\":453,\"height\":377},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Suli: Seeed Unified Library Interface\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/ed15d897e22238815e0cb67c345ce5e7\",\"name\":\"violet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b5d859ae776ffbeb155e9dd9b8d267b7?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b5d859ae776ffbeb155e9dd9b8d267b7?s=96&r=g\",\"caption\":\"violet\"},\"description\":\"#TinybutStrong Always find a reason to smile. Be the reason someone smiles today ^^\",\"sameAs\":[\"Lily\"],\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/violet\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Suli: Seeed Unified Library Interface - Latest News from Seeed Studio","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.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/","og_locale":"en_US","og_type":"article","og_title":"Suli: Seeed Unified Library Interface - Latest News from Seeed Studio","og_description":"Here we are happy to announce Suli,\u00a0our plan of open hardware module libraries for Arduino,","og_url":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2014-03-31T16:15:20+00:00","article_modified_time":"2015-03-20T03:22:04+00:00","og_image":[{"width":453,"height":377,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg","type":"image\/jpeg"}],"author":"violet","twitter_card":"summary_large_image","twitter_misc":{"Written by":"violet","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/","url":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/","name":"Suli: Seeed Unified Library Interface - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg","datePublished":"2014-03-31T16:15:20+00:00","dateModified":"2015-03-20T03:22:04+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/ed15d897e22238815e0cb67c345ce5e7"},"breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg","width":453,"height":377},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2014\/03\/31\/suli-seeed-unified-library-interface\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Suli: Seeed Unified Library Interface"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/ed15d897e22238815e0cb67c345ce5e7","name":"violet","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b5d859ae776ffbeb155e9dd9b8d267b7?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b5d859ae776ffbeb155e9dd9b8d267b7?s=96&r=g","caption":"violet"},"description":"#TinybutStrong Always find a reason to smile. Be the reason someone smiles today ^^","sameAs":["Lily"],"url":"https:\/\/www.seeedstudio.com\/blog\/author\/violet\/"}]}},"modified_by":null,"views":6630,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli-150x150.jpg",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli-300x249.jpg",300,249,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",32,27,false],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2014\/03\/Suli.jpg",453,377,false]},"author_info":{"display_name":"violet","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/violet\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"0","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/8281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=8281"}],"version-history":[{"count":9,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/8281\/revisions"}],"predecessor-version":[{"id":8321,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/8281\/revisions\/8321"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/8283"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=8281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=8281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=8281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}