Isomet Modular Synthesiser (iMS) API
v1.4.2
iMS API
|
Figure 1 below provides a conceptual view of the architecture of the iMS Software Library. It does not represent a structured class diagram of the internal library detail but should give an initial feeling for how the library is constructed.
These two modules represent the lowest layer of communications with the iMS hardware present in the library. ConnectionList maintains an internal knowledge of how to interact with the hardware across all supported connection types. This is abstracted so that other parts of the library can communicate with the hardware irrespective of the connected interface.
IMSSystem maintains a working knowledge of the capabilities, configuration and detail of the connected system so that both the application and internal library elements can determine what it can and cannot do and how to reinterpret data in a format that is suited to the hardware.
The features are a suite of functional blocks that are a bit like the library books of the library. Each knows how to perform a particular function that is associated with the overall iMS functionality.
Compensation
: functions for storing and downloading amplitude, phase and synchronous data tables Auxiliary
: functions for additional features that are not associated with the core RF synthesis and output capabilities, e.g. GPIO Signal
Path
: functions for controlling the RF signal path, including fixed tone calibration modes System
Functions
: functions for enabling and controlling system and communications features FileSystem
: functions for writing and reading non-volatile memory Diagnostics
: functions for monitoring system status, e.g. temperature, VSWR and current draw Image
Operations
: functions for downloading images, image sequences and configuring, starting and stopping playbackiMS Synthesisers contain a set of frequency-addressed look-up tables for applying various compensations to the RF signal output. The tables are indexed by the nearest programmed frequency to the current frequency being output by that RF channel. Table entries are linearly spaced in frequency starting from the lowest frequency supported by that Synthesiser up to the highest frequency supported. The number of entries in the table is hardware specific.
Compensations available include:
This set of classes are used for creating the core RF image data that is at the heart of the Isomet iMS concept. An Image File can contain one or more iMS images plus a sequence table that defines the default order for playing back images, the conditions for triggering images, numbers of repeats, image point rate, delays and other vital data. An image itself is composed of image points (from 1 up to many millions), each point consisting of up to 4 RF channels with independent specification of frequency, amplitude and phase and optional synchronous output data.
Additional Utility functions exist for supplying the version information for the API (LibVersion) and useful type definitions for frequency (in kHz and MHz), amplitude (as a percentage) and phase (degrees from 0 to 360) amonst others.