| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
general use.
Notable, the java classes EUI48, EUI48Sub and BasicTypes are included in direct_bt's jar file
to avoid any inconvenience.
Hence BTUtils's byte[s]HexString(..) simply uses jaulib's BasicTypes s' implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting with version 2.3, the previously refactored *TinyB* has been removed completely.
Motivation was lack of detailed Bluetooth support, inclusive increasing diversion with *Direct-BT*.
Furthermore, work is underway for `BLE slave periphal and GATT server` support and its mapping to *BlueZ D-Bus* is questionable
and would be resource intensive.
Java API changed as follows:
- Objects no more Clonable
- Removed dead unsupported code
- Removed deprecated code
- Added 'GattCharPropertySet', representing property bit mask for BTGattChar,
replacing the string array.
|
|
|
|
| |
native lib loading. Added junit test facility (Java).
|
|
|
|
| |
and drop javac debug info (Current jaulib default)
|
|
|
|
| |
Upcoming API Cleanup (Drop TinyB only entries)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Jar file is being build.
JNI header generation is satisfied by 'add_jar(.. GENERATE_NATIVE_HEADERS <target> DESTINATION <dir>)',
note that its GENERATE_NATIVE_HEADERS target is a dummy target, since jni/direct_bt defines target javadirect_bt.
Weakness of not directly checking build dependency of javadirect_bt against generated headers exists,
however, it is unrealistic to assume that the transient generated JNI header will be edited manually
within the process.
Therefor we can use the dummy target javadirect_bt_javah and JNI header generation will only
occur when java sources have been modified, i.e. the jar file being actually build.
|
|
|
|
|
|
| |
library.
Building the native lib on slow systems becomes a burden, hence skip if not required.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Example ScannerTinyB01 demonstrates efficient scanning devices using the new BluetoothDeviceDiscoveryListener interface.
The C++ HCIObject extends JavaUplink, which handles the java object references
via 'std::shared_ptr<JavaAnonObj>', where JavaAnonObj relies on later polymorph specialization.
JavaAnonObj gets derived in the java/jni of direct_bt, where the JNI header + libraries are available.
+++
The java inplementing NativeDownlink implementations
store the nativeInstance to the C++ instances
as well as handle their java references within the native instances.
The C++ JavaUplink and Java NativeDownlink interfaces are complete
the cross referencing java <-> native.
+++
Native libraries are now split into pairs:
- tinyb + javatinyb
- direct_bt + javadirect_bt
TODO: BluetoothFactory must chose the proper bundle!
+++
The Java Adapter received a BluetoothDeviceDiscoveryListener hook,
matching C++ Adapter's HCIDeviceDiscoveryListener.
Since the Java Adapter implements its own discovery thread,
using the BluetoothDeviceDiscoveryListener is more efficient then polling
over a list of Devices fetched.
++++
TODO: Align Java and C++ class names, foremost in the C++ direct_bt space.
TODO: Bind the whole C++ GATT functionality
More testing.
|
|
|
|
|
|
| |
javac -h generates jni headers by directly parsing java source files
This enable java compilation using OpenJDK 10 and later
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
classes
See scripts/build-x86_64.sh and README.md for build instructions.
See scripts/run-hci_scanner.sh to start new HCI scanner (C++).
New HCI C++ implementation redised in libtinyb_hci.so w/o GLIB/DBus dependencies,
but 'libbluetooth.so' dependency.
Following Class datastructures are complete:
- HCIUtil: Exception types, uint128_t and endian conversions
- General UUID interface and its efficient UUID16, UUID32 + UUID128 implementation.
Conversion 'toString', respecting endianess,
and UUID* -> UUID128 conversion.
Requird member comparison operations due to using interface
- HCIAdapter with its opened HCISession,
as well as its discovered HCIDevices
- HCIAdapter discover includes multiple advertising AD records,
up to 25 according to the spec.
- HCIAdapter parses full AD segment. TODO: Handle few more AD types
API/Impl Details:
- Datastructures utilize 'vector<shares_ptr<T>>' collections.
- Most attributes are specified 'const' -> immutable for efficancy
- Convenient collection access member operations
- etc ..
RESULTS:
- Fast AD scanning of multiple devices w/ UUID and RSSI
- Proper integration into tinyb project
TODO:
- Handle few more AD types
- Test multiple parallel HCISession from HCIAdapter
- HCIAdapter.connect()
- Represent GATT Service, Characteristics and Description
- Catch up with the Java binding step by step
|
|
|
|
|
|
|
| |
C++ tinyb namespace is for the original D-Bus implementation,
hence providing the base helper explicitly.
Add static BluetoothFactory.getNativeAPIVersion().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
via tinyb.dbus.*
Allows alternative interface implementations and delegated wrapper implementations for debug and tracing.
Original D-Bus implementation can be retrieved via:
'BluetoothManager org.tinyb.BluetoothFactory.getDBusBluetoothManager()'
A HCI native implementation will follow up w/o use of D-Bus.
Otherwise the Java API is unchanged and this tinyb can replace previous implementation.
Due to the major API change (despite interface is unchanged but BluetoothManager instantiation)
the jar file has been renamed from 'tinyb.jar' to 'tinyb2.jar'.
Same goes with the version number, which will be set to 'v2.0.0'.
The native library and class definition is kept unchanged using the original names so far.
|
|
|
|
| |
Signed-off-by: Petre Eftime <[email protected]>
|
|
|
|
| |
Signed-off-by: Petre Eftime <[email protected]>
|
|
|
|
|
|
| |
install path
Signed-off-by: Petre Eftime <[email protected]>
|
|
|
|
| |
Signed-off-by: Petre Eftime <[email protected]>
|
|
|
|
| |
Signed-off-by: Petre Eftime <[email protected]>
|
|
|
|
| |
Signed-off-by: Andrei Vasiliu <[email protected]>
|
|
|
|
| |
Signed-off-by: Andrei Vasiliu <[email protected]>
|
|
Cmake also generates JNI header files, therefore they
are no longer required to be in the repo.
Signed-off-by: Andrei Vasiliu <[email protected]>
|