27.09.2014 Views

PDF (double-sided) - Physics Department, UCSB - University of ...

PDF (double-sided) - Physics Department, UCSB - University of ...

PDF (double-sided) - Physics Department, UCSB - University of ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Manager. In fact, in our lab, the only time we ever have to restart the Manager<br />

is if we add new features and in the process <strong>of</strong> debugging these. We frequently<br />

run the Manager without problems for many months at a time.<br />

7.4.3 LabRAD APIs<br />

The LabRAD APIs (Application Programming Interfaces) provide access to<br />

the LabRAD system from different programming languages and different platforms.<br />

Currently these APIs include full support for Delphi and Python as well<br />

as basic support for LabVIEW, Java, and Matlab (via Java). If needed, any other<br />

language and platform that provides support for TCP/IP network connections<br />

can be added.<br />

Since the LabRAD API provides the interface to LabRAD for the Module developers,<br />

it is important that they are written with usability in mind to effectively<br />

address the Integration Requirement. Due to the differences in data types, this<br />

can mean very different things for different programming languages.<br />

The feature that probably requires the most thought is the choice <strong>of</strong> interface<br />

for handling the different LabRAD data types. This choice is highly dependent on<br />

the type <strong>of</strong> programming language that is to be supported. The difficulty primarily<br />

lies in LabRAD’s support for cascadable heterogeneous composite data structures<br />

(Clusters), which lead to infinitely many valid data types. In dynamically typed<br />

146

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!