summaryrefslogtreecommitdiffstats
path: root/src/tinyb
Commit message (Collapse)AuthorAgeFilesLines
* Use new jaulib/JaulibSetup.cmake (Unified Setup); RELEASE: Strip native libs ↵Sven Gothel2021-01-251-0/+8
| | | | and drop javac debug info (Current jaulib default)
* cmake: Move jaucpp -> jaulib (source locations and add_subdirectory(jaulib))Sven Gothel2020-12-211-5/+5
|
* tinyb/BluetoothManager.cpp: One more -Wshadow detected on g++ 8.3Sven Gothel2020-10-201-2/+2
|
* Use -Wshadow: Shadowing (or local scope override) often causing sloppy bugs, ↵Sven Gothel2020-10-207-66/+66
| | | | avoid 2/2 (tinyb)
* cmake: Drop all sub-folder CXX settings. Use root CMakeLists.txt global ↵Sven Gothel2020-10-201-1/+0
| | | | settings for all, avoiding confusion.
* src/tinyb/Bluetooth*cpp: Compile clean w/ full WarningsSven Gothel2020-10-176-17/+37
|
* Extract common C++ Support Library inclusive Java JNI Binding to sub-project ↵Sven Gothel2020-10-161-4/+5
| | | | jaucpp, namespace jau
* dbt_debug/direct_bt::RuntimeException: Add de-mangled backtrace using ↵Sven Gothel2020-10-131-0/+1
| | | | | | | | | libunwind and abi::__cxa_demangle The backtrace is used by default for - direct_bt::ABORT(..) - direct_bt::ERR_PRINT(..) - direct_bt::RuntimeException::what()
* tinyb native lib: Add missing dbt_debug.cppSven Gothel2020-08-261-0/+1
|
* BluetoothFactory/DBTEnv: Pass JVM properties to environment, access DEBUG, ↵Sven Gothel2020-08-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | VERBOSE via lazy DBTEnv from C++ ( DEBUG := environment 'direct_bt_debug' or JVM property 'direct_bt.debug' VERBOSE := environment 'direct_bt_verbose' or JVM property 'direct_bt.verbose' This changes allows passing JVM properties as C++ environment variables, to be accessed via DBTEnv. JVM property names are renamed from 'foo.bar' to 'jvm_foo_bar' and can be queried via 'DBTEnv::getProperty("foo_bar")' as it will also attempt the 'jvm_' prefix if the plain name wasn't resolved. The singleton DBTEnv instance can be retrieved via DBTEnv::get(), which allows lazy initialization of DEBUG, VERBOSE from environment variables. This is required, as the JVM loads the native libraries first, initializes all native static variables and only then can pass the properties to the native environment via POSIX 'setenv(..)'. Hence users should never use static initialization from native code in such cases, otherwise they can't benefit from the unified JVM properties.
* Extract dfa_utf8_decode.[cpp/hpp] added to libtinyb.so, i.e. used for both ↵Sven Gothel2020-07-041-0/+1
| | | | native libs commonly exposed in Java via BluetoothUtils.cxx JNI
* C++ tinyb_hci: Working HCIScanner showing AD packets, demonstrating new HCI ↵Sven Gothel2020-02-1513-0/+2868
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