{"id":25558,"date":"2018-09-12T12:05:26","date_gmt":"2018-09-12T19:05:26","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=25558"},"modified":"2021-06-09T13:57:02","modified_gmt":"2021-06-09T20:57:02","slug":"waveforms-sdk-vs-the-script-editor","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/waveforms-sdk-vs-the-script-editor\/","title":{"rendered":"WaveForms SDK Vs. The Script Editor"},"content":{"rendered":"<p>If you have ever attempted to do any sort of custom scripting in <a href=\"https:\/\/digilent.com\/shop\/waveforms-previously-waveforms-2015\/\">WaveForms<\/a>, you may be familiar with the WaveForms SDK and\/or the Script Editor. However, it can be confusing to differentiate between the two and figure out which one is right for your application.<\/p>\n<p>To break it down, the Script Editor is the in-application tool that you can use to do custom JavaScript and access any of the other tools in WaveForms. It is capable of stringing together multiple tools at a time, and allows you access to the WaveForms user interface so you do not have to build your own.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-25560\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2018\/09\/se-600x422.png\" alt=\"\" width=\"600\" height=\"422\" data-wp-pid=\"25560\" \/><\/p>\n<p>One example of the Script Editor being put to good use is the<a href=\"https:\/\/digilent.com\/reference\/learn\/instrumentation\/tutorials\/decoding-vga-signals-with-logic-analyzer\/start\"> VGA Decoder.<\/a> The script uses the Logic Analyzer to read a buffer of VGA data, then the script decodes it and creates an image of what the data represents.\u00a0So you can see the data in WaveForms on the Logic Analyzer, and open the saved image to see what the data actually means. Both are important for debugging VGA.<\/p>\n<p>However, the Script Editor can be somewhat limited at times, since\u00a0it cannot run something that interacts with outside libraries or programs.<\/p>\n<p>That is where the WaveForms SDK comes in. The WaveForms SDK is a folder of libraries and examples that you can use to communicate with any instrumentation device compatible with WaveForms (so unfortunately not the OpenScope). The SDK can be coded in Python and C++ (as well as Java, thanks to<a href=\"https:\/\/github.com\/knowm\/waveforms4j\"> a wrapper<\/a> contributed by a community member). You can find out more about the WaveForms SDK by checking out its <a href=\"https:\/\/digilent.com\/blog\/get-the-most-out-of-waveforms-with-the-software-development-kit\/\">introduction post.<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-25562\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2018\/09\/a-2-600x422.png\" alt=\"\" width=\"600\" height=\"422\" data-wp-pid=\"25562\" \/><\/p>\n<p>A good example of the WaveForms SDK in action is the <a href=\"https:\/\/github.com\/knowm\/memristor-discovery\/blob\/develop\/README.md\">Memristor Discovery<\/a> project by Tim Molter.<\/p>\n<p>To put it simply, if an application is possible in the Script Editor, it would probably be easier to just use the Script Editor. If it is an application that requires communication with external libraries\/programs, a custom user interface, or any sort of functionality not offered by the tools available in WaveForms (or some combination of the tools) then the WaveForms SDK is your best bet.<\/p>\n<p>If you are looking to get started with either option or for additional support and resources, please check out their respective resource centers or feel free to search\/ask on the<a href=\"https:\/\/forum.digilent.com\/\"> Forum!<\/a><\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-25558 jlk' data-task='like' data-post_id='25558' data-nonce='1cb2a57891' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-25558 lc'>0<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-25558 jlk' data-task='unlike' data-post_id='25558' data-nonce='1cb2a57891' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-25558 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-25558 status align-left'>Be the 1st to vote.<\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Whats the difference between the WaveForms SDK and the Script Editor in WaveForms?<\/p>\n","protected":false},"author":36,"featured_media":25103,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4323,1563],"tags":[452],"ppma_author":[4485],"class_list":["post-25558","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","category-guide","tag-waveforms"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2018\/07\/modulation-signal-generator-in-WF.png","authors":[{"term_id":4485,"user_id":36,"is_guest":0,"slug":"mirandamay7","display_name":"Miranda Hansen","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bcab037c32924b9f9b3ca4898e179f2764cb7d9a82aa2bd475170c8aaa884e1c?s=96&d=mm&r=g","1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/25558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=25558"}],"version-history":[{"count":0,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/25558\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/25103"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=25558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=25558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=25558"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=25558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}