Here you will find answers to frequently asked questions about all of our products. Use the links below to navigate sections:
What is the ADEPT Framework?
The ADEPT Framework (formerly ADvantage Framework) is an industrial data and control software platform built around the concept of a “data framework” that links real-time Linux servers as a distributed resource and provides desktop client control of the time-deterministic computing and data handling capability. The ADEPT Framework is used in the largest, most demanding industrial data and control applications across the global aerospace and defense industry, but also scales down to work with low-cost computing and open source real-time Linux, including Yocto. The open architecture framework allows users to leverage best-in-class COTS and open-source technologies in a common, project-based environment.
The ADEPT Framework is comprised of four main client tools and a real-time executive server daemon. The ADEPT client tools include a development environment (ADEPT-DE) for configuring a system, an operator environment (ADEPT-VI) for controlling and monitoring a system, a graphical data management tool (ADEPT-GD) for data acquisition, analysis and visualization and a multi-protocol network configuration tool (ADEPT-DB) for interfacing with data signals on multiple communication buses throughout the system. The real-time executive daemon runs on the ADEPT real-time servers and provides the core framework services to the client tools to enable scalable management of the distributed system of real-time servers.
What is the ADvantage Framework?
With version 10 released in March of 2018, the ADvantage Framework was renamed the ADEPT Framework. The same great functionality is available in ADEPT, along with better support for Linux (both clients and servers) as well as improved scalability and user interfaces.
What computer hardware does the ADEPT Framework support?
The ADEPT Framework lets you build your real-time system (HIL simulator, controller, etc) using commercial-off-the-shelf computer equipment including standard PCs, open and commercial Single-Board Computers (SBCs), VME/PCI(e)/PXI(e) computer systems, and more! The ADEPT approach makes use of a POSIX-compliant RTOS and with a little setup, can be made to run on nearly any POSIX RTOS-based system that supports TCP/IP interfaces.
Do I buy the real-time system hardware from Applied Dynamics or can I buy my own hardware?
You can go either way!
We are a full service systems integration team. This means that we can work with your team’s technical experts to understand your detailed requirements and design a solution to meet your exact needs. When we integrate a system we procure all the components, unit test each component, integrate the system, perform factory acceptance testing and system characterization, prepare complete documentation from model input/output to connector-pin, deliver the system and get you up and running fast.
We also support the do-it-yourself approach. With a DIY approach you purchase the pieces and parts and assemble the system yourself. We provide the ADEPT Framework software and help you get the software integrated with your hardware.
What hardware is supported by ADEPT?
The ADEPT Framework supports a wide range of integrated system hardware to meet the varying needs of our diverse user base., but in general, ADEPT supports:
- Standard PC’s – The real-time system is built using standard desktop or server-class PCs, usually with multicore processors, and I/O interfaces using COTS PCI, PCIe, PMC, and/or cPCI/PXI computer boards.
- Single-Board Computers (SBCs) – A complete computer that is built on a single PCB, including memory, storage and sometimes also IO interfaces. ADEPT supports both commercial and Open Hardware SBCs, including many BeagleBone and BeagleBoard products.
- cPCI/PXI computer systems – The real-time system is built entirely using COTS CompactPCI/PXI computer boards and controllers. PXI systems, depending on the I/O count, offer good portability with rugged, pin-and-socket computer boards. Often a multicore PC will be combined with PXI I/O expansion, rather than using a PXI controller as the main processor, to offer high processing power at an affordable price.
- VME computer systems – The real-time system is built using 6U VME single board computers and VME I/O interface boards. VME continues to be very popular for systems with a long service life. ADEPT supports VME systems with Intel SBCs or with PowerPC SBCs.
If you have a hardware architecture in mind that differs from the options described above and are wondering if you can still use ADEPT, please contact us. Most of the time we can make it work.
What I/O expansion/interface boards are supported in ADEPT?
The ADEPT Framework
supports a very long list of computer boards in form factors including PCI, PCIe, cPCI/PXI, IP, PMC, VME, and more. The website’s Supported IO list
gives a reasonably comprehensive list but if you don’t see a board you would like to use, please contact us
for the latest information.
What are some example applications that use ADEPT?
The ADEPT Framework
is used in a wide range of aerospace, defense, marine, and energy applications such as:
- aircraft integration labs – using simulation to develop, integration, verify, and certify aircraft systems
- jet engine test systems – using simulation to test and certify the Electronic Engine Controller (EEC) and the complete Full Authority Digital Engine Controller (FADEC)
- more-electric aircraft systems integration – Integrating advanced power electronics, power generation, power conversion, electrical actuation, and jet propulsion with flight dynamics
- naval shipboard systems integration – supporting All-Electric Ship project development
- military ground vehicle integration – prototyping advanced vehicle control systems for demonstration programs and vehicle verification
- satellite systems development – develop and test the satellite subsystems in a highly representative simulation based environment
- satellite training systems – when the development is complete, the satellite simulator is delivered to the customer as a tool for training and assessment
- aircraft cockpit development – developing next-generation glass cockpit and pilot control technologies
- flight simulator control systems – ADvantage provides the motion control systems for the world’s largest vertical motion simulator
- pilot control loading – closed-loop control systems for pilot control force feedback
- missile system development – hardware-in-the-loop missile development using flight motion tables
- advanced motor control – FPGA based control of advanced motor drives
- distributed weapon system testing – combining simulation, hardware-in-the-loop facilities, and real aircraft in flight to offer unparalleled performance assessment
- helicopter simulation – pilot-in-the-loop simulators for the development of rotorcraft control laws
- aircraft antiskid braking – hardware-in-the-loop development, verification, and certification of aircraft braking systems
- Unmanned aerial vehicle development – UAV/UAS development, integration, and verification
- many more…
Does ADEPT support Simulink models?
Absolutely! Simulink is the most popular simulation modeling tool within the ADEPT user base. The ADEPT development environment tool (ADEPT-DE) makes it easy to add Simulink models into your real-time project. The ADEPT visualization and interaction tool (ADEPT-VI) presents your Simulink models during run-time for browsing, adjusting parameters, and datalogging. The ADEPT graphical data tool (ADEPT-GD)
lets you plot, analyze and log streamed data from the ADEPT server/target either live or from a saved file.
What modeling tools does ADEPT support?
The ADEPT Framework supports simulation models and control applications developed with the following tools and languages:
- Ada code
- C code
- C++ code
- Fortran code
What RTOS(s) are supported on the real-time system?
ADEPT was designed to be RTOS neutral. Currently supported RTOSs include: Linux and QNX.
In addition to real-time operating systems, the ADEPT Framework supports compiling your project for a General Purpose (GP) operating system. For example, you can compile your project to run right on your Windows desktop to perform tasks such as simulation model verification and script development without tying up your real-time systems.
I want to run ADEPT with an RTOS that isn’t on your list. Is that possible?
We are entirely open to adding support for additional RTOS’s. If this is of interest please contact us
to discuss your needs.
What version(s) of Simulink does ADEPT support?
We tend to add support to new Simulink versions just about as fast as the MathWorks releases them. In addition, we include back-support for older versions going back quite a few years. The list of currently supported Simulink versions is presented here
What code generator is used for Simulink models?
ADEPT relies on the Simulink code generator products in order to bring Simulink models into your ADEPT real-time project. ADEPT-DE supports Simulink’s RTW and Embedded Coder code generation products. You must have one of these code generators in order to add a Simulink model to an ADEPT project.
Can models or application assemblies be assigned to a processor core?
Yes. ADEPT-DE allows model/code assemblies to be assigned to specific processor cores.
How many model/code assemblies may included in a project?
An ADEPT-DE project allows you to add as many model/code assemblies to your project as you like. ADEPT supports multicore, multi-processor, and multi-node configurations and allows assemblies to be targeted to processor units as needed.
How do you connect Simulink models to IO?
There are two ways to establish connections between Simulink models and IO interface ports, such as analog and digital inputs and outputs, serial channels, and databus signals. These include:
- If the collection of IO interfaces in your real-time system is configured within ADEPT-DE, then you may automatically generate a set of Simulink IO blocks for your configuration. Connections between your Simulink model and the IO are then made inside Simulink.
- If the Simulink model is prepared independently from the ADEPT project, ADEPT-DE can generate a set of data dictionary interfaces from the model itself. Connections from models inputs and outputs (ports) are then defined inside ADEPT-DE.
Many users prefer to define I/O connections inside Simulink and it’s for this reason that the first approach is provided.
However, in large integration labs with many systems are developed, tested, and verified together, or in formal verification and certification process oriented teams, there is often a desire to preserve the integrity of the Simulink model. Under these scenarios, the models may be developed by one set of experts and then used by another or the models may be developed and then taken through a formal model validation process. Either way, it is important that no changes be made to the models once delivered to the real-time systems team and making I/O connections inside the Simulink model is undesirable. The second approach to establishing Simulink I/O connections is included to support those teams who wish to maintain the model integrity.
What open source software technology is used in the ADEPT Framework?
ADEPT makes heavy use of best in class open source software technology to improve the quality of our code, increase product maintainability, reduce obsolescence, and improve extensibility. ADEPT makes use of the following open source software technology:
- GNU Compiler Collection
Can I write my own device drivers in ADEPT?
Yes. ADEPT allows users to write their own low-level drivers (LLDs) and their own logical devices (LDVs). This is particularly useful for users who are developing their own I/O interface boards.
Why use a client/server architecture?
The ADEPT-VI application runs on a client PC that communicates with the runtime server (target) via TCP/IP sockets. This architecture is deliberate to maximize the processing capabilities of the runtime target while maintaining the real-time integrity of the project. This architecture also maintains flexibility and reusability of the project environment.
What is a Data Dictionary?
ADEPT-VI uses the Data Dictionary to interface between framework objects. The Data Dictionary contains all globally defined signals within a project, including global variables and IO ports, and brings them into the Data Browser in ADEPT-VI. Users can manipulate and capture any variables within the Data Dictionary.
What is DAS?
DAS is the Data Acquisition System part of the ADEPT Framework. Data dictionary variables defined in the DAS/Data Capture lists are captured each frame of simulation execution, buffered on the runtime target and then transferred to the host via TCP/IP sockets. The DAS operates non-intrusively on the runtime target ensuring the integrity of model execution. The DAS is user configurable, four streams are available, each individually configurable in terms of content and capture frequency.
What does ‘non-intrusive’ mean?
The simulation execution has priority over data capture or user interaction. The integrity of the simulation is maintained and the real-time characteristics are maintained through prioritization of the main tasks. In a single frame model, execution and hardware interactions are executed, and when there is free time, user interaction and data capture activities are executed, timeouts are indicated if frame overruns occur.
What is a schedule?
Interaction with your project running on a server/target (ex: real-time system) is managed via TCP/IP interface from an ADEPT-VI session running on the client PC. There are inherent overheads and non-deterministic latency when using TCP/IP so there is no guarantee that a given test stimulus will be executed in a truly repeatable way. ADEPT includes the concept of “schedules” that provide deterministic, frame-accurate execution of test stimulus. A schedule is defined from the client PC (ADEPT-VI) and is downloaded to the target where it is deterministically and repeatably executed in lock-step with the real-time frame. Schedules are built up from primitives such as sine waves, constants, limits, expressions, random numbers, and more. A schedule may be triggered based on behavior within the project (ex: Boolean expression). ADEPT-VI includes a schedule wizard to improve the ease of defining schedules. Schedules and triggers are executed on the target by a real-time scripting engine service.
What is a framework?
A framework (also known as a “framework project”) is the parent entity of one or more projects. Where a project is associated with a single real-time target (i.e. node) a framework represents a multi-target distributed real-time architecture. Multiple projects in a distributed architecture are connected via a network such as SCRAMNet, Etherent, and reflective memory. Each project is independent and fully functional giving great flexibility to the test and verification environment.
What is a project?
A project is the construct within ADEPT-DE containing all the items that make up a single implementation of a real-time system. The implementation defined by a project includes:
- one or more assemblies – a simulation model, a code based item, or a graphical user interface
- one target with its associated I/O interfaces
- connections – assembly-to-assembly connections
ADEPT-DE supports multi-target, distributed real-time architectures by defining multiple projects as child entities under the “framework” parent entity.
What is an assembly?
An assembly is an entity in an ADEPT-DE project containing a simulation model, a code based item such as a controller application, or a graphical interface. At run-time, one or more assemblies are executed on the ADEPT-based real-time system. In addition to the model, code, or GUI, an assembly may also contain:
- one or more ports – defining the interface (to the model, code, or GUI) as specified in a data dictionary
- one or more logical devices – defining the implementation of an I/O interface board within the target
- one or more connections – model-to-I/O connections
A project may include multiple assemblies running on one or more processor cores.
What is a server/target?
An ADEPT server (or target) is an entity in the ADEPT-DE development environment that represents a project execution platform. The two common target (project execution platform) types are:
- a real-time system – For example, a real-time PC with a collection of I/O interface boards
- the GP environment – For example, an ADEPT project running on your Windows PC
Each project (i.e. ADEPT-DE project entity) is bound to one server/target, and each project must include one or more assemblies.
What is a Logical Device (LDV)?
A logical Device (LDV) is ADI’s application layer for a given I/O device in your server. It provides the user interface to the hardware defining the number of interface ports for each device, any scaling, calibration or configuration information. One I/O board can be used in a number of different ways depending on the project, the logical device can be used to differentiate those configurations at the user interface.
What is a Low Level Driver (LLD)?
The Low Level Driver (LLD), generally provided in library form, is the main interface to the actual hardware device. It sets registers ad passes data in the appropriate format.
What are ports?
A port is an interface to the outside world for a particular assembly or logical device. In simulation models they allow the transfer of data between models and/or hardware. Matching port names allows for ease of connection between assemblies and hardware.
What modeling paradigms are supported?
Currently supported modeling paradigms include Simulink, SystemBuild, and AMESim. In addition coded assemblies in C, C++ and F77 are supported.
What Graphical Interfaces are supported?
ADEPT panels are the native graphical interface in ADEPT, providing a wide range of configurable widgets – buttons, dials, sliders, switches, etc. These allow the creation of easy to use interactive graphical interfaces to the project and provide a way of quickly displaying the state of the real-time system. ADEPT also supports a number of commercial-off-the-shelf graphical interfaces such as Altia and LabVIEW. An extensive API provides a gateway to a wider range of GIU’s including VAPS and X-Plane.
What compilers are used?
ADEPT includes a compiler-independent structure than enables different compilers to be supported through the use of configuration files. The GNU compiler collection is the default compiler set used for real-time and GP targets. In addition, ADEPT utilizes gnumake for makefile generation.
What is ADEPT-DE?
ADEPT-DE provides the development environment for rapidly assembling real-time cyber-physical applications and desktop interfaces. ADEPT-DE is an open environment that directly supports a variety of modeling tools, including Simulink, SystemBuild, C/C++, Ada (for some targets), Fortran and mixed-language models. GNU compilers and cross-compilers are integrated in the system and projects are built using the Make facility.
Does ADEPT-DE support Python scripting?
Yes, the ADEPT-DE is built on a Python scripting foundation. Python scripts may be written to automate the development environment tasks such as adding models, establishing model and/or I/O connections, compiling the project, etc. A Python script may be executed upon launching the ADEPT-DE application or executed interactively within the application.
What is ADEPT-VI?
ADEPT-VI provides a feature rich, easy-to-use interactive environment which allows a user to connect to, manage and monitor ADEPT-based systems. The ADEPT Framework operates with a Client/Server architecture that enables a Client PC to connect to an ADEPT-enabled Server across standard TCP/IP Ethernet. Once a Server is added to an ADEPT Framework, the Client is able to easily configure all IO, download and control new models and algorithms, and inspect all aspects of the Server’s real-time performance.
Does ADEPT-VI support Python scripting?
Yes. ADEPT-VI is built on a Python scripting foundation. Nearly every function or command within ADEPT-VI may be performed with a Python command. Python scripting allows you to implement powerful and sophisticated automation of the development, integration, and verification tasks as well as interaction with surrounding file systems, and supporting process tools.
What is ADEPT-GD?
Data can be visualized using pseudo-real-time plotting in ADEPT-GD: data are collected in real-time on the ADEPT Server, buffered, and sent to the Client PC. On the Client PC, data can be viewed in the form of a tabular display in ADEPT-VI or plotted in a plot window with ADEPT-GD, all while the Framework is running and without interfering with real-time performance!
Does ADEPT-GD support Python scripting?
Yes. ADEPT-GD is built on a Python foundation, includes a script editor, and command line for script execution.
Does ADEPT-GD support plotting individual bits from a packed word?
Yes. ADEPT-GD let’s you create a “bit definition” assigned to a data item that makes it easy to divide large words into smaller packed words, present individual bits, and assign enumerations for improved ease of analysis. ADEPT-GD bit manipulation features make it easy to work with serial and databus messages and signals.
Does ADEPT-GD support the filtering and masking of data?
Yes. ADEPT-GD includes a capability called “trace expression” that offers a wide range of scaling, filtering, masking and other operations. Trace expressions are particularly handy for identifying irregularities and highlighting out of range data points. ADEPT-GD also includes the ability to save the results of your analysis in a new dataset.
How do you create a ADEPT-GD data source?
The ADEPT Framework automatically includes a target-side data source (data server running on the real-time system) in your real-time project. ADEPT-GD also includes Simulink blocks that allow you to turn any Simulink model into a data source and stream data across TCP/IP to a desired destination. Furthermore, ADEPT-GD includes source code examples that let you create data sources just about anywhere.
Can I use ADEPT-GD stand-alone (without the rest of the ADEPT Framework)?
Absolutely! A significant portion of the ADEPT-GD user base is using the real-time plotting and analysis capabilities stand-alone. Some users add ADEPT-GD their their home-grown real-time system. Some users combine ADEPT-GD with their embedded controller to add high-performance data acquisition across TCP/IP. Other users combine ADEPT-GD with a wide range of different test systems allowing you to connect and monitor a test in progress.
Can I set up my plotting configuration then save it to be reused later?
Absolutely! ADEPT-GD includes sophisticated capability allowing you to interactively set up your plots then save off the configuration so that next time you want to look at the streaming data or run as specific test you simply load your saved configuration and go.
Does ADEPT-GD support running the tool from a shared location?
Yes, ADEPT-GD supports a centralized licensing scheme where the installation is on a server and no installation is required on the local PC. ADEPT-GD also supports local installation.
When displaying bits from a packed word, can you choose to display only those bits that have changed state during a test run?
Yes, this can be accomplished using ADEPT-GD expressions field in the trace properties.
Can I select a region of time in a plot and easily display the minimum and maximum values of the data?
Yes. You can set the range of data using the two Data Cursors. The minimum and maximum values appears in the Chart Statistics. This functionality is very similar to that commonly available with a good oscilloscope.
Is ADEPT-GD used to plot streaming, live, real-time data or for plotting and analyzing data files offline?
Both. ADEPT-GD is a high-performance, real-time data plotting tool that let’s you connect to a TCP/IP data stream and plot time-based strip charts or X-Y plots, perform analysis on the real-time plots, perform calculations and generate new data sets as a results of your analysis, and save off the data and your plot configurations. ADEPT-GD also works as a offline data analysis tool. Data that is saved off during a test run is subsequently opened in ADEPT-GD and manipulated for analysis and preparing evidence of the analysis results.
Can I load a historical data file and then overplot live streaming data on top of the historical plot?
Yes you can! You can also use Python script or Action Lists to automate the whole process so that you can simply double-click an icon, ADEPT-GD launches, the historical data is plotted, then ADEPT-GD waits to start receiving new streaming data, and plots the data once it arrives.
Can I include multiple y-axis ranges for different data to better present data with widely different ranges on a single plot?
Yes. The default option for all data in a single plot window is a common y-axis. To configure different y-axis set common y-axis to false.
Can ADEPT-GD data be used by other programs?
Yes. A set of utilities bundled with ADEPT-GD convert from its native XDR format into several common file formats: