{"id":15332,"date":"2025-04-11T00:00:00","date_gmt":"2025-04-11T00:00:00","guid":{"rendered":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/"},"modified":"2025-09-05T11:19:17","modified_gmt":"2025-09-05T16:19:17","slug":"integrating-dewesoftx-into-labview-software-using-python-nodes","status":"publish","type":"our_work","link":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/","title":{"rendered":"Integrating DewesoftX into LabVIEW Software using Python Nodes"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\" id=\"h-embedding-an-executable-gui\">Embedding an Executable GUI<\/h3>\n\n\n\n<p>This is a common scenario, as many manufacturers only provide an EXE-based interface. Rather than working against this limitation, we embraced it by embedding the DewesoftX window directly into our LabVIEW application. LabVIEW\u2019s support for displaying external executables allows us to present DewesoftX as just another \u201cdevice\u201d in the system, maintaining a unified user experience while respecting the boundaries of what can and cannot be customized.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-dcom-interface-and-python-integration\">DCOM Interface and Python Integration<\/h3>\n\n\n\n<p>What DewesoftX does expose is a DCOM interface that allows external programs to control it. Functions such as loading setup files, starting acquisition, and retrieving data are available through this API. Unfortunately, LabVIEW does not have strong native support or comprehensive documentation for directly calling DCOM interfaces.<\/p>\n\n\n\n<p>To work around this limitation, we introduced a Python wrapper. LabVIEW can call Python code using built-in Python nodes. We wrote a Python module that wraps the DCOM calls, making them accessible to LabVIEW as simple function calls, such as <code>StartAcquisition()<\/code>, <code>LoadSetupFile()<\/code>, and <code>GetChannelValues()<\/code>.<\/p>\n\n\n\n<p>This allowed us to bridge LabVIEW and DewesoftX programmatically while staying within the client\u2019s preferred software stack.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-additional-hurdles-reference-handling-and-launch-timing\">Additional Hurdles: Reference Handling and Launch Timing<\/h3>\n\n\n\n<p>During development, we discovered that the DCOM object reference didn\u2019t behave consistently in all contexts. When LabVIEW was called from TestStand, or when using object-oriented LabVIEW code, the reference would sometimes become invalid. To address this, we made the DCOM object a global variable inside the Python code, ensuring a stable and persistent reference regardless of how or when the call was made.<\/p>\n\n\n\n<p>We also encountered timing issues when launching DewesoftX. Simply initializing the DCOM interface wasn\u2019t always sufficient; the EXE had to be launched and ready before certain functions could be called. To solve this, we added a command-line call from LabVIEW to launch the DewesoftX EXE, followed by the DCOM initialization steps. This two-step launch process ensured consistent startup behavior.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/reference-handling-in-python-2.png\" alt=\"reference handling in Python\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-outcome\">Outcome<\/h2>\n\n\n\n<p>The result of this project was a testing solution that seamlessly integrated DewesoftX into the client\u2019s preferred tools, NI LabVIEW and NI TestStand, while preserving powerful measurement functionality and adding automation and flexibility.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"468\" height=\"263\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27170717\/test-and-measurement-computer-1.jpg\" alt=\"test and measurement computer\" class=\"wp-image-11527\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27170717\/test-and-measurement-computer-1.jpg 468w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27170717\/test-and-measurement-computer-1-300x169.jpg 300w\" sizes=\"(max-width: 468px) 100vw, 468px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Why Use DMC for Your Next Project?<\/h2>\n\n\n\n<p>DMC specializes in solving tough integration challenges by bridging best-in-class platforms through creative engineering. Our ability to combine commercial software tools like LabVIEW and Python with OEM measurement devices like DewesoftX, using custom scripts and flexible architecture, ensures that clients retain the functionality they know while gaining the automation they need.<\/p>\n\n\n\n<p><strong>Contact us today to learn more about our <a href=\"https:\/\/www.dmcinfo.com\/services\/test-and-measurement-automation\/\">Test and Measurement solutions<\/a> and how we can help you achieve your goals.\u00a0<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Embedding an Executable GUI This is a common scenario, as many manufacturers only provide an EXE-based interface. Rather than working against this limitation, we embraced it by embedding the DewesoftX window directly into our LabVIEW application. LabVIEW\u2019s support for displaying external executables allows us to present DewesoftX as just another \u201cdevice\u201d in the system, maintaining [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":15328,"template":"","meta":{"customer":"","summary":"<p>A DMC client requested that their automated test equipment (ATE) leverage the capabilities of DewesoftX to record and manipulate radio frequency (RF) data. DMC delivered a flexible and automated solution by integrating DewesoftX into LabVIEW, treating it like any other measurement device in the test system while maintaining its powerful native GUI capabilities.<\/p>\r\n\r\n<h3>The Problem: The GUI<\/h3>\r\n\r\n<p>DewesoftX software is distributed as a standalone executable (EXE) with its own built-in graphical user interface. However, it does not come with native LabVIEW support or drivers. As a result, the functions of DewesoftX cannot be directly called in LabVIEW code and must instead be manually controlled through the EXE. While the EXE provides users with a rich and familiar environment, it comes with trade-offs. Most notably, the GUI cannot be modified or customized like a native LabVIEW front panel.<\/p>\r\n\r\n<p><img alt=\"\" src=\"https:\/\/www.dmcinfo.com\/wp-content\/uploads\/2025\/05\/dewesoftX-exe-imbedded-in-labview-2.png\" \/><\/p>","description":"","customer_benefits":"<ul>\r\n <li><strong>Flexibility:<\/strong> Creating an interface between LabVIEW and DewesoftX easily allows any of DEWESoft&#039;s specialized equipment to be used or swapped in if the hardware setup ever needs to be drastically changed.<\/li>\r\n <li><strong>Familiarity:<\/strong> The customer was already familiar with DewesoftX, so integrating it into the custom LabVIEW software allowed them to leverage their experience.<\/li>\r\n <li><strong>Resource Efficient:<\/strong> Leveraging existing, specialized tools meant that DMC could implement a rich pool of tools into the customized software quickly.<\/li>\r\n<\/ul>\r\n","components_used":"<ul>\r\n <li>LabVIEW<\/li>\r\n <li>Python<\/li>\r\n <li>DewesoftX<\/li>\r\n <li>DEWESoft<\/li>\r\n<\/ul>\r\n","project":"","author":"Ramone Randle","notes":""},"work_category":[685,684],"class_list":["post-15332","our_work","type-our_work","status-publish","has-post-thumbnail","hentry","work_category-labview","work_category-test-measurement-automation"],"yoast_head":"<title>Integrating DewesoftX into LabVIEW Software using Python Nodes | DMC, Inc.<\/title>\n<meta name=\"description\" content=\"Learn how to utilize LabVIEW to control DewesoftX via a DCOM interface. DMC helps you discover effective methods to streamline your workflow.\" \/>\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.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Integrating DewesoftX into LabVIEW Software using Python Nodes\" \/>\n<meta property=\"og:description\" content=\"Learn how to utilize LabVIEW to control DewesoftX via a DCOM interface. DMC helps you discover effective methods to streamline your workflow.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/\" \/>\n<meta property=\"og:site_name\" content=\"DMC, Inc.\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-05T16:19:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/\",\"url\":\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/\",\"name\":\"Integrating DewesoftX into LabVIEW Software using Python Nodes | DMC, Inc.\",\"isPartOf\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg\",\"datePublished\":\"2025-04-11T00:00:00+00:00\",\"dateModified\":\"2025-09-05T16:19:17+00:00\",\"description\":\"Learn how to utilize LabVIEW to control DewesoftX via a DCOM interface. DMC helps you discover effective methods to streamline your workflow.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#primaryimage\",\"url\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg\",\"contentUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg\",\"width\":1400,\"height\":500,\"caption\":\"radio frequency\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Work\",\"item\":\"https:\/\/www.dmcinfo.com\/our-work\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrating DewesoftX into LabVIEW Software using Python Nodes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dmcinfo.com\/#website\",\"url\":\"https:\/\/www.dmcinfo.com\/\",\"name\":\"DMC, Inc.\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dmcinfo.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dmcinfo.com\/#organization\",\"name\":\"DMC, Inc.\",\"url\":\"https:\/\/www.dmcinfo.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png\",\"contentUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png\",\"width\":418,\"height\":167,\"caption\":\"DMC, Inc.\"},\"image\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929\",\"https:\/\/www.instagram.com\/dmcengineering\",\"https:\/\/www.youtube.com\/DMCEngineering\",\"https:\/\/www.linkedin.com\/company\/dmc-engineering\"]}]}<\/script>","yoast_head_json":{"title":"Integrating DewesoftX into LabVIEW Software using Python Nodes | DMC, Inc.","description":"Learn how to utilize LabVIEW to control DewesoftX via a DCOM interface. DMC helps you discover effective methods to streamline your workflow.","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.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/","og_locale":"en_US","og_type":"article","og_title":"Integrating DewesoftX into LabVIEW Software using Python Nodes","og_description":"Learn how to utilize LabVIEW to control DewesoftX via a DCOM interface. DMC helps you discover effective methods to streamline your workflow.","og_url":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/","og_site_name":"DMC, Inc.","article_publisher":"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929","article_modified_time":"2025-09-05T16:19:17+00:00","og_image":[{"width":1400,"height":500,"url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/","url":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/","name":"Integrating DewesoftX into LabVIEW Software using Python Nodes | DMC, Inc.","isPartOf":{"@id":"https:\/\/www.dmcinfo.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#primaryimage"},"image":{"@id":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg","datePublished":"2025-04-11T00:00:00+00:00","dateModified":"2025-09-05T16:19:17+00:00","description":"Learn how to utilize LabVIEW to control DewesoftX via a DCOM interface. DMC helps you discover effective methods to streamline your workflow.","breadcrumb":{"@id":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#primaryimage","url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg","contentUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165355\/unnamed-file-177-2.jpg","width":1400,"height":500,"caption":"radio frequency"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dmcinfo.com\/our-work\/integrating-dewesoftx-into-labview-software-using-python-nodes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Work","item":"https:\/\/www.dmcinfo.com\/our-work\/"},{"@type":"ListItem","position":2,"name":"Integrating DewesoftX into LabVIEW Software using Python Nodes"}]},{"@type":"WebSite","@id":"https:\/\/www.dmcinfo.com\/#website","url":"https:\/\/www.dmcinfo.com\/","name":"DMC, Inc.","description":"","publisher":{"@id":"https:\/\/www.dmcinfo.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dmcinfo.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dmcinfo.com\/#organization","name":"DMC, Inc.","url":"https:\/\/www.dmcinfo.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png","contentUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png","width":418,"height":167,"caption":"DMC, Inc."},"image":{"@id":"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929","https:\/\/www.instagram.com\/dmcengineering","https:\/\/www.youtube.com\/DMCEngineering","https:\/\/www.linkedin.com\/company\/dmc-engineering"]}]}},"_links":{"self":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/our_work\/15332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/our_work"}],"about":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/types\/our_work"}],"author":[{"embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/users\/8"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/media\/15328"}],"wp:attachment":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/media?parent=15332"}],"wp:term":[{"taxonomy":"work_category","embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/work_category?post=15332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}