Eclipse.org Eclipse.org - Device Kit

Device Kit Concepts

The Device Kit environment consists of the following components: an application, a runtime, and a hardware device. The runtime is divided into the adapter/profile layer, device layer, transport layer and connection layer.

Adapter and Profile Layer
The adapter and profile layer provides the application with common interface to a set of commmon hardware devices. For example, the adapter and profile layer for RFID readers will provide a common interface for the application to a set of common functions provided by all RFID readers. This layer uses a publish/subscribe Service Oriented Architecture (SOA) interface. The adapter and profile should shield the application from the knowing which of the common hardware device is being used.
Device Layer
The device layer provides the application with an interface to the hardware device. The device layer should shield the application from the low level details of the hardware device. The device layer understands the meaning of the messages and any parameters within a message.

When application executes a command, the command requests that the transport send the command message. Any signals listeners are notified if any received messages from the transport match the signal messages.

Transport Layer
The transport layer supports the sending and receiving of messages. While the transport layer understands the format of a message, it does not understand the meaning of the message.

When a device requests that a message to sent, the transport formats the message into a correct bytes to be written to the connection. The transport reads input bytes from the connection and parses the bytes into received messages. The interested devices are notified of the received messages.

Connection Layer
The connection layer supports the reading and writing of byte streams to the hardware device. The connection does not understand the meaning of the bytes but supports the delievery of the output bytes and receiving of the input bytes.
Because runtime is divided into multiple layers, several different types of devices can share the same transport. For example, radio and CD player devices can share the same transport to interface to the car bus.

Refer to the following diagram for a depiction of the interaction these components have with one another. You can use the numbered list to review the information in the diagram.

  1. The application gets a command and signal from the device and registers interest in the signal.
  2. The application tells the command to execute.
  3. The command writes a message to the transport.
  4. The transport translates the message into a format that the hardware device can understand and writes the translated message to the connection.
  5. The connection writes bytes to the class library and OS layer.
  6. The class library and OS layer writes bytes to the hardware.
  7. The class library and OS layer reads bytes to the hardware.
  8. The connection reads bytes from the class library and OS layer.
  9. The transport monitors the byte stream being sent by the connection and parses the bytes back into messages that the transport understands.
  10. The transport notifies the devices that are listening of the messages received.
  11. When a signal matches the messages received from the transport, the measurement is notified that the signal was received.
  12. When a signal matches the messages received from the transport, the application is notified that the signal was received.

After you have reviewed the diagram, refer to the other sections in Concepts for descriptions of each component.

Figure 1. Device Kit environment