Support our Open Source Work like JogAmp and Direct-BT …

After shamelessly almost agitating to check whether our work on the JogAmp project can be sustainable, trying to arouse interest and unprofessionally dropping a call on the project’s website itself, I also enabled the github sponsorship program. Direct-BT and other projects can be funded as well. Who knows, maybe this route to more visibility helps and if not, hopefully it also won’t hurt much either 🙂

Continue reading “Support our Open Source Work like JogAmp and Direct-BT …”

Some late C++/Java Project Experience

Lately we started to discuss JogAmp‘s Project Management a little bit and touched things like efficient Java JNI binding to native foreign functions.

Allow me to elaborate on this issue a little bit (forum copy),  perhaps even go this far to debate down on the metal C++ vs virtual Java performance.

Keep in mind, I am an old dog and always focus on performance and such thing even on the Java side 😉 Continue reading “Some late C++/Java Project Experience”

Rational Expressions with frictionless Fractions and implemented Time

Natural numbers are defined as the sequence of numbers fully defined by their initial value, its successor and the successor of its successor and so forth. Despite the beauty of their intrinsic Dedekind–Peano axioms, they are also fully proven by induction.

Continue reading “Rational Expressions with frictionless Fractions and implemented Time”

Identifiable C++ Function Pointer of any kind in Direct-BT (Part 2)

Earlier I started elaborating on Direct-BT C++ implementation details, covering communication channels and data structures suitable for concurrency.

This part shall cover Jaulib’s jau::function<R(A…)>, used to manage callback lists e.g. in BTManager or simply utilizing them to delegate functionality like in jau::service_runner. Continue reading “Identifiable C++ Function Pointer of any kind in Direct-BT (Part 2)”

Direct-BT C++ Implementation Details (Part 1)

This is the first article covering Direct-BT‘s implementation details including jaulib.

See Direct-BT, Bluetooth Server and Client Programming in C++ and Java (Part 1) for a little introduction to Direct-BT.

Standard and Proprietary Communication Channels

As described, we were required to utilize the host Bluetooth implementation in the GNU/Linux kernel, i.e. BlueZ/Kernel directly without D-Bus to achieve best performance and access the native HCI, L2CAP/GATT and SMP communication channels directly. Continue reading “Direct-BT C++ Implementation Details (Part 1)”

Direct-BT, Bluetooth Server and Client Programming in C++ and Java (Part 1)

This is the first article covering Direct-BT  using version 2.7.1 and may give you a little introduction into this project.

See Direct-BT C++ Implementation Details (Part 1) for some insight view.

Overview

Direct-BT provides direct Bluetooth LE and BREDR programming, offering robust high-performance support for embedded & desktop with zero overhead via C++ and Java.

It supports a fully event driven workflow from adapter management, device discovery to GATT programming, using its platform agnostic HCI, L2CAP, SMP and GATT protocol implementation.

Multiple Bluetooth adapter are handled, as well as multiple concurrent connections per adapter.

Peripheral server device programming is supported as well as the central client, which is also used for Java and C++ self unit testing across two or more Bluetooth adapter. Continue reading “Direct-BT, Bluetooth Server and Client Programming in C++ and Java (Part 1)”

What is Direct-BT? Where is JogAmp 2.4.0?

What is Direct-BT?

I happily joined Xerxes’s call to enhance the
Bluetooth experience on embedded GNU/Linux for Zafena.

This ended up in a new Bluetooth LE (almost done) and BREDR (in progress)
C++-11 implementation named Direct-BT.

It exposes a modern Java binding to the refactored original TinyB. Continue reading “What is Direct-BT? Where is JogAmp 2.4.0?”