The Design Explorer (DXP) Integration Platform
The DXP platform provides the key to integration of the various design tools into the single Altium Designer environment. As part of this integration, its job is to provide consistent user interfaces and enhanced tool-interoperability.
Beyond this integration, it is also responsible for providing a wide range of features that are common across tools, saving multiple implementations of the same features and therefore speeding up the development process. As a result, DXP-based applications are inherently more feature rich than other applications.
Externally, the platform presents all the features that the user interacts with - menus, toolbars, panels and shortcut keys. Internally, it is the platform that each server plugs into. When a server is plugged in, it tells the DXP platform what functions (or processes) it includes and passes over a definition of all its menus, toolbars and shortcuts (resources). When a user selects a menu item, DXP passes a message to the appropriate server, telling that server what process to run.
What is a Server?
In everyday computer-user language, a server is a module that plugs into the DXP platform, to add new functionality to the environment. It can range from a complete document editor, such as the Schematic Editor, to a complex analysis engine, such as the Mixed-Signal Circuit Simulator, through to a simple utility that counts all the holes on a printed circuit board.
In software jargon, each Altium Designer server is a DLL (Dynamic Link Library). In Microsoft Windows a DLL is a library of functions and procedures, which can be used by any application and other DLLs. Microsoft developed the EXE/DLL model to allow software to be reusable. Software functions that are used by more than one application are stored in these libraries, which can then be called when the application needs that function. Windows is structured so that using a function from a library (DLL) is as quick and easy as using a function that is internal to the application.
Altium Designer - through its DXP platform - extends this model by making the functions and procedures inside each server DLL directly available to the user, through menus, toolbars and shortcuts.
As well as exposing the functionality of a server to the user through the menus, toolbars and shortcuts, each server exposes its functionality to other servers through an open Application Programming Interface (API). The API is the definition of how all the functions in a DLL are used. An API is called "open" when this definition is published, so that the functions in this DLL can be accessed by other EXEs and DLLs.
As well as allowing programmatic access to the same functions that the user can access through the resources, the API also includes more powerful functions that support direct manipulation of information in the design document that the editor currently has open. An example of this is the Schematic server - when it has a Schematic document open for editing, the Mixed-Signal Circuit Simulator can examine the contents of this document, directly through the API. Using this mechanism, it can extract information about the objects on the Schematic, required to perform the simulation and ultimately generate a waveform analysis.
Viewing Installed Servers
The list of currently installed servers (i.e. plugged into the DXP integration platform) can be viewed from the EDA Servers dialog (Figure 1). Access to this dialog is made by choosing the System Info command from the main DXP menu.
Servers can be grouped into three distinct categories:
- Document Editor/Viewers - these servers present a document editing (or viewing) window. Examples include the Schematic and PCB Editors
- Wizards - these servers pop up as a wizard, where you step through a number of pages and answer questions. Examples include the PCB Board Wizard (PCBMaker) and the PCB Component Wizard (CompMake)
- Utility Servers - these servers work with one of the Document Editor servers. Typically they add items to the Document Editor's menus to allow access to their features. Examples are the Mixed-Mode Simulation Server (SIM), and the Hole Size Editor (HSEdit).
Use the commands available from the dialog's menu (button and right-click) to view information about a selected server in the list. Alternatively, double-click on an entry directly. The Server dialog will appear, from where you can gain information on any document editors that the server provides and a list of processes that it provides (Figure 2).