Deploying Standalone Applications with Instrument Control Toolbox
This topic contains tips for deploying standalone applications with MATLAB® Compiler™ and Instrument Control Toolbox™. Refer to these tips when creating standalone applications that use functionality from Instrument Control Toolbox.
Tips for both interface based communication and driver-based communication
Device identifiers/resource names should not be hard-coded, as instrument resource names are likely to be different on other machines.
A best practice is to use
instrhwinfoand query the return output in your MATLAB code that you intend to deploy.
Tips for interface based communication
For direct interface based communication using I2C, SPI, GPIB, and VISA, on the deployment machine, install all required third-party drivers separately from the deployed application.
Tips for driver based communication
In addition to your MATLAB code, your deployed standalone application package should include files required by your application:
Include the MATLAB Instrument Driver (MDD file) in your standalone application project. One technique is to use the
-aflag withmccwhen compiling your MATLAB code.
IVI-C
Include the following in your deployed standalone application package:
MATLAB Instrument Driver (MDD file)
For 64-bit applications, MATLAB prototype and thunk files
For 32-bit applications, MATLAB prototype file
The location of generated prototype and thunk files can be obtained from the result of executing:
sprintf('%s',[tempdir 'ICTDeploymentFiles'])On the machine where you deploy your standalone application:
All third-party drivers and dependencies need to be installed separately from the deployed standalone application.
To reduce runtime unknowns, install the same version of IVI-C driver on the deployment system as used on the development system.
To reduce runtime unknowns, install the same version of VISA driver libraries on the deployment system as used on the development system.
Note
To troubleshoot vendor driver installation issues, it is recommended that the
deployed application provide a way to simulate connection to the hardware by
instantiating the driver with 'optionstring', 'simulate=true'
as arguments for icdevice. This will help narrow down the
root cause of deployment issues to vendor driver installation issue, or hardware
issues.
Quick Control Interfaces
If you are not using the default SCPI-based drivers for Quick Control Oscilloscope
('tektronix') and Quick Control Function Generator
('Agilent332x0_SCPI'), and are instead using an IVI-C driver,
include the following in your deployed standalone application package:
For 64-bit applications, MATLAB prototype and thunk files for IVIScope or IVIFGen
For 32-bit applications, MATLAB prototype file for IVIScope or IVIFGen
The location of generated prototype and thunk files can be obtained from the result of executing:
sprintf('%s',[tempdir 'ICTDeploymentFiles'])On the machine where you deploy your standalone application:
If required, all third-party drivers and dependencies need to be installed separately from the deployed standalone application.
To reduce runtime unknowns, install the same version of IVI-C driver on the deployment system as used on the development system.
To reduce runtime unknowns, install the same version of VISA driver libraries on the deployment system as used on the development system.
Generic MDD
For use with the generic MDD, include the following in your deployed standalone application package:
MATLAB Instrument Driver (MDD file)
If your MDD uses LOADLIBRARY to interface with a C shared library, include:
For 64-bit applications, MATLAB prototype and thunk files for the C shared library
For 32-bit applications, MATLAB prototype file for the C shared library
MATLAB prototype and thunk files for a C shared library can be generated on a development machine (with a supported C compiler) by using LOADLIBRARY command.
On the machine where you deploy your standalone application:
If required, all third-party drivers and dependencies need to be installed separately from the deployed standalone application.
Hardware Support packages
For more info on deploying standalone applications which use functionality installed as a support package:
web(fullfile(docroot, 'compiler/manage-support-packages.html'))