DPDL (Dynamic Packet Definition Language)

DPDL is a small framework and scripting engine that can be used to implement small, portable and light-weight applications on Java enabled devices (in particular J2ME and Java ME) and small embedded systems. It has been developed in 2002, in early days when mobile phones where running mostly J2ME applications. Dpdl is a compact framework, small memory footprint library and scripting engine that can be used to encode, decode, control and query data efficiently on limited memory devices. It supports Bluetooth and HTTP protocols by default.

The small applications can run on Java compliant platforms like Java ME, J2ME and on small embedded systems like 16-bit or 8-bit microcontrollers by using the included micro

Java Virtual Machine.

Dpdl Engine

Dpdl Framework

Dpdl Packet

Dpdl Framework

Dpdl can be used as integrated application module, as a library module, as a testing environment or as rapid application prototyping platform for small devices and

small embedded systems in the world of IoT (Internet Of Things).

Dpdl allows to implement small applications and scripts that make use of the built-in data container in form of a Dpdl packet, a highly compressed chunked data packet with built in database technology and scripting engine.


DPDL Examples:


API Documentation:

The system fits best on small memory devices like Java ME, J2ME, 16-bit Mircrocontroller Chips or even smaller platforms with a very basic specification.

Dpdl implements by default HTTP and Bluetooth protocols, but comes with an extendible API that allows to include other potular protocols for the IoT like MQTT, CoAP, and others.

The framework provides a particular way to encode data into a Dpdl Packet, a sort of executable data container, which can than be decoded on the target device by using database technology, compression, encryption and a allocation/deallocation paradigm.

Dpdl has been developed by Armin Costa in years 2001-2004 and is now maintained by SEE Solutions.


In 2004 A.Costa added to Dpdl some database optimization techniques with his BsC Thesis project dissertation:

"Advanced Database techniques in Dpdl (Dynamic Packet Definition Language). A portable data protocol for small Embedded Systems" in year 14/10/2004


Find more examples on the GITHUB repository:

Dpdl-Engine on GITHUB


Example Dpdl console application

DpdlClient.java

Dpdl Console client app running on a RaspberryPi3 device

Dpdl Console app

Example embedded Dpdl scripting language

Dpdl script to detect Bluetooth range singlals. Runing on J2ME and Desktop PC (<= Windows 7 , Linux, Mac OS) Dpdl embedded scriptings

Example app using Dpdl: very compact J2ME GPS Navigator app ( < 60 KB memory)

J2ME Navigator app with Dpdl

J2ME app (CLDC 1.0) to track GPS data via external or internal bluetooth gps adapters. Fully floating point emulation capability and Export capabilities to Google Earth 3D with web component



Dpdl example that uses DpdlPacket running on J2ME CLDC 1.0 devices

Dpdl Example: CityPhone

Dpdl embedded scriptings

Results:

Running on an old Nokia 6600 device

Dpdl embedded scriptings