Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
DSDP/TML/TmLWhitepaper
A Device Emulator Framework for the Eclipse Platform
Contents
Introduction
Purpose
The purpose of the device emulator framework is to provide a layer on top of the Eclipse platform that makes it easier to integrate vendor specific emulators into the platform. It is expected to be used by device vendors to provide application development environments with integrated emulators.
Flexibility
The device emulator framework has been designed to be as flexible as possible. This means that any of the provided components can be entirely replaced by custom implementations without affecting the use of the remaining components. This is achieved by using certain design patterns and techniques that reduce component coupling, including heavy use of interfaces. Moreover, the emulator framework has been conceived to accommodate different types of device emulators or, at least, not to preclude any type of emulator from being used in conjunction with the framework.
Consistency
The device emulator framework provides a consistent set of components that follow the principles and the look-and-feel of the Eclipse platform, allowing emulator end-users to leverage their Eclipse experience.
User Interaction
The device emulator framework assumes that, in order to be useful to an application developer, it must be possible at least to start and stop the emulator, as well as to deploy executable code into it. The device emulator should also have some kind of output, either using an output device such as an emulated display or by performing actions on its environment. In the latter case, adapters must be able to translate those actions into something that can be displayed to the user on the Eclipse UI. Additionally, the emulator may be able to accept user input, and can have properties that the user can configure.
Components
The device emulator framework described in this whitepaper simplifies the implementation of a device emulator as an Eclipse plug-in. The emulator plug-in supports the creation of emulator instances that can be started and stopped according to user needs. The framework provides classes that support the implementation of the following plug-in components:
- A New Emulator Instance Wizard;
- An Emulator Project Nature;
- An Emulator Instance View;
- An emulator instance property management mechanism to handle the properties of each emulator instance, including a Property Editor;
- An Emulator Perspective;
- VNC Viewer Views to handle emulator input and output;
- An Emulator Control Panel to start and stop the emulator instance.
Additional components shall be added in the future to support deployment of executable files to the emulator instances, remote execution of emulator instances and so on.