Files
PS_Dinkey/Dinkey Pro 7.6.1/$DOCUMENTS/Dinkey Pro 7.6.1 Examples/Samples/MATLAB/DinkeyChange
2026-05-06 07:47:36 +02:00
..
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Using the DinkeyChange API with MATLAB</title>
    <style>
        body {
            color: black;
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 13px;
            margin: 25px auto;
            max-width: 800px;
        }
        p, ul, ol, table {
            margin-top: 0;
            margin-bottom: 15px;
        }
        ul.contents a {
            text-decoration: none;
        }
        h1,h2,h3,h4,h5,h6 {
            margin-top: 25px;
            margin-bottom: 15px;
        }
        h2 {
            border-top: 1px solid gray;
        }
        table {
            margin-left: auto;
            margin-right: auto;
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid black;
            padding: 0.5em;
            text-align: left;
        }
        .ui_element
        {   /* Use for things like program options and menu items */
            color: #008000;
            font-style: italic;
        }
        .filepath
        {   /* Use for paths and filenames */
            font-family: monospace;
            font-size: 13px;
            font-weight: bold;
        }
        .manual
        {   /* Use when referring to user manual sections/chapters */
            font-style: italic;
        }
        .alert
        {
            border: 1px solid black;
            padding: 15px 15px 15px 58px;
            font-weight: bold;
            background-repeat: no-repeat;
            background-position: 5px 15px;
            margin-bottom: 15px;
        }
        .important
        {
            background-color: #FFFDD0;
            background-image: url('data:image/png;base64,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');
        }
        .information
        {
            background-color: #EBF8FF;
            background-image: url('data:image/png;base64,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');
        }
        .alert > p:last-child, .alert > ul:last-child, .alert > ol:last-child
        {
            /* Cancel double space at bottom of alert caused by above rule */
            margin-bottom: 0;
        }
        .important .filepath, .information .filepath {
            /* Make filepaths stand out in sections that are already bold */
            font-weight: normal;
        }
        div.col_wrapper
        {
            clear: both;
            overflow: hidden;
        }
        div.two_col
        {
            width: 50%;
            float: left;
        }
        code {
            color: gray;
            white-space: nowrap;
        }
        pre {
            padding: 15px;
            background-color: #EEEEEE;
        }
        pre > code {            /* Block level code snippets */
            white-space: pre;   /* Override nowrap used for inline code */
            color: inherit;
        }
        code .comment
        {
            color: green;
        }
        code .keyword
        {
            font-weight: bold;
            color: blue;
        }
        code .string
        {
            color: #A00000;
        }
        code .constant
        {
            font-weight: bold;
        }
    </style>
</head>
<body>
    <h1>Using the DinkeyChange API with MATLAB</h1>
    <p>
        If you are not already familiar with calling shared libraries from MATLAB code,
        it is strongly recommended that you read the MATLAB documentation on this topic.
        Depending on your version of MATLAB, you may need to install a C compiler and configure MATLAB to use it with the command <code>mex -setup</code>.
        Again, refer to the MATLAB documentation for further information.
    </p>
    <p>
        See <span class="manual">Remote Parameter Changing &gt; DinkeyChange &gt; DinkeyChange.dll</span> in the user manual for information on using the DinkeyChange API.
        Use the <code>help</code> command to see overviews of how each M-file interface to the DinkeyChange API is used in MATLAB.
        Most of the DinkeyChange M-files are simple MATLAB wrappers for the shared library functions.
        <span class="filepath">dcgetinfo.m</span> however is quite different to the <code>DCGetInfo()</code> function described in the user manual:
    </p>
    <pre><code>[retCode, dongleArray] = dcgetinfo(libName, typeMask, modelMask, prodcodeMask)</code></pre>
    <p>
        The inputs <code>typeMask</code>, <code>modelMask</code> and <code>prodcodeMask</code>
        are used in the same way as the inputs of <code>DCGetInfo()</code>, as <span class="filepath">dcsample.m</span> illustrates.
        The outputs however are grouped together as <code>dongleArray</code>, a 1-by-N vector of MATLAB structures.
        Each structure represents a dongle found by <code>dcgetinfo</code>'s search, and each structure has the following fields:
    </p>
    <table>
        <tr>
            <th>Field</th>
            <th>Data Type</th>
            <th>Description</th>
        </tr>
        <tr>
            <td>type</td>
            <td>int32</td>
            <td>
                The dongle's type as a numeric value. Possible values:
                <ul>
                    <li>1 for Dinkey Pro dongles</li>
                    <li>2 for Dinkey FD dongles</li>
                </ul>
            </td>
        </tr>
        <tr>
            <td>type_as_string</td>
            <td>char</td>
            <td>
                The dongle's type as a string. Possible values:
                <ul>
                    <li>"Pro"</li>
                    <li>"FD"</li>
                </ul>
            </td>
        </tr>
        <tr>
            <td>model</td>
            <td>int32</td>
            <td>
                The dongle's model as a numeric value. Possible values:
                <ul>
                    <li>1 for Lite dongles</li>
                    <li>2 for Plus dongles</li>
                    <li>4 for Net dongles (5 users)</li>
                    <li>7 for Net dongles (unlimited users)</li>
                </ul>
            </td>
        </tr>
        <tr>
            <td>model_as_string</td>
            <td>char</td>
            <td>
                The dongle's model as a string. Possible values:
                <ul>
                    <li>"Lite"</li>
                    <li>"Plus"</li>
                    <li>"Net (5 users)"</li>
                    <li>"Net (unlimited users)"</li>
                </ul>
            </td>
        </tr>
        <tr>
            <td>product_code</td>
            <td>char</td>
            <td>The dongle's product code</td>
        </tr>
        <tr>
            <td>dongle_number</td>
            <td>uint32</td>
            <td>The dongle's serial number (dongle number)</td>
        </tr>
        <tr>
            <td>update_number</td>
            <td>int32</td>
            <td>The dongle's update number</td>
        </tr>
    </table>

    <h2>MATLAB Example Files</h2>
    <ul>
        <li><span class="filepath">dcgetinfo.m</span> - an M-file that provides a MATLAB interface to the <code>DCGetInfo()</code> API function.</li>
        <li><span class="filepath">dcgetdiagnosticinfo.m</span> - a MATLAB interface to the <code>DCGetDiagnosticInfo()</code> API function.</li>
        <li><span class="filepath">dcdoupdatecodestring.m</span> - a MATLAB interface to the <code>DCDoUpdateCodeString()</code> API function.</li>
        <li><span class="filepath">dcdoupdatecodefromfile.m</span> - a MATLAB interface to the <code>DCDoUpdateCodeFromFile()</code> API function.</li>
        <li><span class="filepath">dcrestoredinkeyfdlite.m</span> - a MATLAB interface to the <code>DCRestoreDinkeyFDLite()</code> API function.</li>
        <li><span class="filepath">dcgetmachineid.m</span> - a MATLAB interface to the <code>DCGetMachineID()</code> API function.</li>
        <li><span class="filepath">dcdownloadtempsoftwarekey.m</span> - a MATLAB interface to the <code>DCDownloadTempSoftwareKey()</code> API function.</li>
        <li><span class="filepath">dcdownloaddemosoftwarekey.m</span> - a MATLAB interface to the <code>DCDownloadDemoSoftwareKey()</code> API function.</li>
        <li><span class="filepath">dcsample.m</span> - examples of using these M-files.</li>
        <li><span class="filepath">dinkeychangewin32proto.p</span> - a prototype P-file that defines the signatures of the API functions for 32-bit MATLAB on Windows.</li>
        <li><span class="filepath">dinkeychange32proto.p</span> - a prototype P-file that defines the signatures of the API functions for 32-bit MATLAB on all other supported platforms.</li>
        <li><span class="filepath">dinkeychange64proto.p</span> - a prototype P-file that defines the signatures of the API functions for 64-bit MATLAB on all supported platforms.</li>
        <li><span class="filepath">DinkeyChange64_thunk_pcwin64.dll</span> - a compatibility layer required by 64-bit MATLAB to use <span class="filepath">DinkeyChange64.dll</span>.</li>
    </ul>
    <p>
        The appropriate prototype P-file and any M-files that you call should be included, <strong>without modification</strong>, in your own project.
        If you are using 64-bit MATLAB on Windows, you should also include <span class="filepath">DinkeyChange64_thunk_pcwin64.dll</span>.
        If you rename <span class="filepath">DinkeyChange64.dll</span>,
        you must change the <em>DinkeyChange64</em> part of the thunking DLL's filename accordingly.
    </p>
    <p>
        Our M-files and P-files are compatible with MATLAB on macOS and Linux.
        However, we do not currently provide the thunk files required by 64-bit MATLAB on these platforms.
        If you want to use the DinkeyChange API on 64-bit macOS and/or 64-bit Linux,
        please contact us with full details of the platform(s) and MATLAB versions that you want to use,
        and we can provide compatible thunk files or instruct you on how to produce these files yourself.
    </p>

    <h2>Supported Versions</h2>
    <p>
        The MATLAB sample code provided with the Dinkey Pro/FD SDK was written and tested using MATLAB R2013a.
        All newer versions should be backwards compatible. The sample code may also work with older versions,
        but no guarantees can be made, and support for older versions is likely to be very limited.
    </p>

    <h2>Try It Yourself</h2>
    <p>
        <span class="filepath">dcsample.m</span> gives a simple example of calling each of the API functions.
        To run <span class="filepath">dcsample.m</span> you will need a copy of the appropriate shared library for your platform
        (<span class="filepath">DinkeyChange.dll</span> for 32-bit Windows, <span class="filepath">DinkeyChange64.so</span> for 64-bit Linux etc.).
        Place the library in the same folder as the example files and change MATLAB's current directory to this folder.
        Browse the examples in <span class="filepath">dcsample.m</span> to see how different features can be used.
    </p>
    <p>
        Uncomment the function calls at the top of <span class="filepath">dcsample.m</span>
        to enable the examples of different features, then enter <code>dcsample</code> in the Command Window to run the examples.
    </p>
    <p>
        <span class="filepath">dcsample.m</span> also demonstrates loading and unloading the appropriate shared library for your platform.
    </p>
    <p>
        Parts of the sample code marked with <code>!!!!</code> must be customised with your own functions or values
        for some features to work correctly. Not all features are supported by all dongle models.
        See the user manual for more information.
    </p>

</body>
</html>