
Our first software paper has been published. SwiftVISA: Controlling Instrumentation with a Swift-Based Implementation of the VISA Communication Protocol published in the Journal of Open Source Software (doi: 10.21105/joss.04752). Connor Barnes did an amazing job creating a pure Swift implementation of the VISA communication protocol. This software will allow us and others control VISA-compliant equipment (such as our nanovoltmeter and other research instruments) using macOS instead of relying on vendor-supplied LabVIEW programs.
Summary: The Virtual Instrument Software Architecture (VISA) is a simple Application Programming Interface (API) to communicate with test and measurement instrumentation from a computer. VISA includes specifications for communicating with resources or instruments over GPIB (General Purpose Interface Bus,IEEE-488) and VXI (VME eXtensions for instrumentation), which are test and measurement specific I/O interfaces along with providing protocols for communicating over PC-StandardI/O standards, such as VXI-11 (over TCP/IP), UCSBTMC (USBTest and Measurement Class,over USB), HiSLIP (High Speed LAN Instrument Protocol).VISA’s ability to communicate with a wide variety of instruments over a broad range of I/O’s using a common set of APIs makes it an attractive communication API for scientists and equipment manufacturers to write equipment control software with. Over the years, VISA has been wrapped or ported to other languages in an effort to make it easier to write programs to control instruments and analyze their data in real time. This paper introduces SwiftVISASwift, a pure Swift-based VISA implementation for use on both x86 and ARM-based processors. SwiftVISASwift allows scientists and engineers to write full-featured, native iOS and macOS applications while leveraging standardized SCPIcommands to control their instrumentations. Unlike other VISA implementations, such asPyVISA, SwiftVISASwift provides native access to standard iOS and macOS APIs and works well with asynchronous programming methodologies. This paper details the design and basic use of packages and frameworks in the SwiftVISA project.