Isomet Modular Synthesiser (iMS) API  v1.4.2
iMS API
Classes | Namespaces
IMSSystem.h File Reference

Classes within this group are used to store information about an iMS System and to Connect / Disconnect from it. More...

#include "IMSTypeDefs.h"
#include <ctime>
#include <string>
Include dependency graph for IMSSystem.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  iMS::IMSOption
 An iMS Synthesiser can support one iMS Option, which adds an additional hardware function to the capabilities of the Synthesiser. More...
 
struct  iMS::FWVersion
 Stores the version number of firmware running on iMS hardware. More...
 
class  iMS::IMSController
 Stores Capabilities, Description, Model & Version Number of an iMS Controller. More...
 
struct  iMS::IMSController::Capabilities
 Returns information about the capabilities of the Controller hardware. More...
 
class  iMS::IMSSynthesiser
 Stores Capabilities, Description, Model & Version Number of an iMS Synthesiser. More...
 
struct  iMS::IMSSynthesiser::Capabilities
 Returns information about the capabilities of the Synthesiser hardware. More...
 
class  iMS::IMSSystem
 An object representing the overall configuration of an attached iMS System and permits applications to connect to it. More...
 

Namespaces

 iMS
 The entire API is encapsulated by the iMS namespace.
 

Detailed Description

Classes within this group are used to store information about an iMS System and to Connect / Disconnect from it.

When a host system is scanned to find attached iMS Systems using ConnectionList::scan(), an IMSSystem object is created for each system that it finds. The system is then probed to discover any Controllers and Synthesisers that belong to it, along with any Option boards that are attached to the Synthesiser (e.g. Frequency doubling). If an AO Deflector or Modulator is connected to the Synthesiser and/or an RF Amplifier, it will also attempt to find out any information it can about those devices.

Once done, the IMSSystem object is returned to the User application. The User can read all of the data that has been created about the iMS System that was discovered, including system structure, capabilities, descriptions, model numbers, serial numbers and firmware versions.

Much of the data that is stored about an iMS System and its components is retrieved from a hardware database which is crossreferenced by identity information read back from the hardware. The hardware database stored as a resource within the library object.

Because the iMS concept is modular in approach, there are many different configurations of an iMS which must all be compatible with the iMS library. Therefore, IMSSystem is vital to many functions within the library to allow them to carry out their objectives according to the capabilities of the attached hardware. As a result, you will see many class constructors which require a const reference to an IMSSystem object so that they have the information about hardware targetting available.

Two further features of IMSSystem are important to notice: the ability to Connect to and Disconnect from a system. No functions can be carried out on an iMS System until it has been identified by the connection scan, and a connection established by calling IMSSystem::Connect().

Author
Dave Cowan
Date
2015-11-03
Since
1.0