simpleble 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +88 -0
- data/LICENSE.txt +21 -0
- data/README.md +350 -0
- data/ext/simpleble/extconf.rb +57 -0
- data/ext/simpleble/simpleble_ruby.c +682 -0
- data/lib/simpleble/adapter.rb +10 -0
- data/lib/simpleble/characteristic.rb +36 -0
- data/lib/simpleble/descriptor.rb +8 -0
- data/lib/simpleble/exceptions.rb +25 -0
- data/lib/simpleble/peripheral.rb +64 -0
- data/lib/simpleble/service.rb +16 -0
- data/lib/simpleble/version.rb +3 -0
- data/lib/simpleble.rb +40 -0
- data/vendor/simpleble/build_simplecble/CMakeFiles/4.0.3/CompilerIdCXX/CMakeCXXCompilerId.cpp +920 -0
- data/vendor/simpleble/build_simplecble/CMakeFiles/4.0.3/CompilerIdCXX/apple-sdk.cpp +1 -0
- data/vendor/simpleble/build_simplecble/CMakeFiles/4.1.0/CompilerIdCXX/CMakeCXXCompilerId.cpp +949 -0
- data/vendor/simpleble/build_simplecble/CMakeFiles/4.1.0/CompilerIdCXX/apple-sdk.cpp +1 -0
- data/vendor/simpleble/build_simplecble/export/simplecble/export.h +43 -0
- data/vendor/simpleble/build_simplecble/simpleble/export/simpleble/export.h +43 -0
- data/vendor/simpleble/dependencies/external/kvn/kvn_bytearray.h +222 -0
- data/vendor/simpleble/dependencies/external/kvn/kvn_safe_callback.hpp +66 -0
- data/vendor/simpleble/dependencies/external/kvn/logfwd.hpp +35 -0
- data/vendor/simpleble/dependencies/internal/fmt/args.h +220 -0
- data/vendor/simpleble/dependencies/internal/fmt/base.h +2962 -0
- data/vendor/simpleble/dependencies/internal/fmt/chrono.h +2338 -0
- data/vendor/simpleble/dependencies/internal/fmt/color.h +610 -0
- data/vendor/simpleble/dependencies/internal/fmt/compile.h +539 -0
- data/vendor/simpleble/dependencies/internal/fmt/core.h +5 -0
- data/vendor/simpleble/dependencies/internal/fmt/format-inl.h +1949 -0
- data/vendor/simpleble/dependencies/internal/fmt/format.h +4244 -0
- data/vendor/simpleble/dependencies/internal/fmt/os.h +427 -0
- data/vendor/simpleble/dependencies/internal/fmt/ostream.h +166 -0
- data/vendor/simpleble/dependencies/internal/fmt/printf.h +633 -0
- data/vendor/simpleble/dependencies/internal/fmt/ranges.h +850 -0
- data/vendor/simpleble/dependencies/internal/fmt/std.h +726 -0
- data/vendor/simpleble/dependencies/internal/fmt/xchar.h +373 -0
- data/vendor/simpleble/dependencies/internal/simplejni/Common.hpp +579 -0
- data/vendor/simpleble/dependencies/internal/simplejni/References.hpp +151 -0
- data/vendor/simpleble/dependencies/internal/simplejni/Registry.hpp +183 -0
- data/vendor/simpleble/dependencies/internal/simplejni/VM.hpp +88 -0
- data/vendor/simpleble/examples/simpleble/src/connect.cpp +67 -0
- data/vendor/simpleble/examples/simpleble/src/connect_safe.cpp +91 -0
- data/vendor/simpleble/examples/simpleble/src/list_adapters.cpp +22 -0
- data/vendor/simpleble/examples/simpleble/src/list_adapters_safe.cpp +33 -0
- data/vendor/simpleble/examples/simpleble/src/list_paired.cpp +27 -0
- data/vendor/simpleble/examples/simpleble/src/multiconnect.cpp +60 -0
- data/vendor/simpleble/examples/simpleble/src/notify.cpp +85 -0
- data/vendor/simpleble/examples/simpleble/src/notify_multi.cpp +101 -0
- data/vendor/simpleble/examples/simpleble/src/power_cycle.cpp +43 -0
- data/vendor/simpleble/examples/simpleble/src/read.cpp +82 -0
- data/vendor/simpleble/examples/simpleble/src/scan.cpp +62 -0
- data/vendor/simpleble/examples/simpleble/src/utils.cpp +59 -0
- data/vendor/simpleble/examples/simpleble/src/utils.hpp +27 -0
- data/vendor/simpleble/examples/simpleble/src/write.cpp +81 -0
- data/vendor/simpleble/examples/simplebluez/ble_nus/ble_nus.cpp +138 -0
- data/vendor/simpleble/examples/simplebluez/connect/connect.cpp +119 -0
- data/vendor/simpleble/examples/simplebluez/list_adapters/list_adapters.cpp +44 -0
- data/vendor/simpleble/examples/simplebluez/list_paired/list_paired.cpp +48 -0
- data/vendor/simpleble/examples/simplebluez/notify/notify.cpp +145 -0
- data/vendor/simpleble/examples/simplebluez/pair/pair.cpp +181 -0
- data/vendor/simpleble/examples/simplebluez/read/read.cpp +141 -0
- data/vendor/simpleble/examples/simplebluez/scan/scan.cpp +85 -0
- data/vendor/simpleble/examples/simplecble/c/connect.c +163 -0
- data/vendor/simpleble/examples/simplecble/c/notify.c +217 -0
- data/vendor/simpleble/examples/simplecble/c/scan.c +164 -0
- data/vendor/simpleble/examples/simpledbus/notification.cpp +24 -0
- data/vendor/simpleble/hitl/src/test_sanity.cpp +48 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Adapter.h +102 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/AdapterSafe.h +58 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Advanced.h +50 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Characteristic.h +39 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Config.h +55 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Descriptor.h +30 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Exceptions.h +72 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Logging.h +73 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Peripheral.h +82 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/PeripheralSafe.h +64 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Service.h +34 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/SimpleBLE.h +8 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Types.h +49 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/Utils.h +13 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/export.h +43 -0
- data/vendor/simpleble/install_simplecble/include/simpleble/kvn/kvn_bytearray.h +222 -0
- data/vendor/simpleble/install_simplecble/include/simplecble/adapter.h +188 -0
- data/vendor/simpleble/install_simplecble/include/simplecble/logging.h +37 -0
- data/vendor/simpleble/install_simplecble/include/simplecble/peripheral.h +304 -0
- data/vendor/simpleble/install_simplecble/include/simplecble/simpleble.h +21 -0
- data/vendor/simpleble/install_simplecble/include/simplecble/types.h +73 -0
- data/vendor/simpleble/install_simplecble/include/simplecble/utils.h +27 -0
- data/vendor/simpleble/simpleble/include/simpleble/Adapter.h +102 -0
- data/vendor/simpleble/simpleble/include/simpleble/AdapterSafe.h +58 -0
- data/vendor/simpleble/simpleble/include/simpleble/Characteristic.h +39 -0
- data/vendor/simpleble/simpleble/include/simpleble/Config.h +55 -0
- data/vendor/simpleble/simpleble/include/simpleble/Descriptor.h +30 -0
- data/vendor/simpleble/simpleble/include/simpleble/Exceptions.h +72 -0
- data/vendor/simpleble/simpleble/include/simpleble/Logging.h +73 -0
- data/vendor/simpleble/simpleble/include/simpleble/Peripheral.h +82 -0
- data/vendor/simpleble/simpleble/include/simpleble/PeripheralSafe.h +64 -0
- data/vendor/simpleble/simpleble/include/simpleble/Service.h +34 -0
- data/vendor/simpleble/simpleble/include/simpleble/SimpleBLE.h +8 -0
- data/vendor/simpleble/simpleble/include/simpleble/Types.h +49 -0
- data/vendor/simpleble/simpleble/include/simpleble/Utils.h +13 -0
- data/vendor/simpleble/simpleble/include/simpleble_c/adapter.h +188 -0
- data/vendor/simpleble/simpleble/include/simpleble_c/logging.h +37 -0
- data/vendor/simpleble/simpleble/include/simpleble_c/peripheral.h +304 -0
- data/vendor/simpleble/simpleble/include/simpleble_c/simpleble.h +21 -0
- data/vendor/simpleble/simpleble/include/simpleble_c/types.h +73 -0
- data/vendor/simpleble/simpleble/include/simpleble_c/utils.h +27 -0
- data/vendor/simpleble/simpleble/src/CommonUtils.h +63 -0
- data/vendor/simpleble/simpleble/src/Exceptions.cpp +31 -0
- data/vendor/simpleble/simpleble/src/Logging.cpp +136 -0
- data/vendor/simpleble/simpleble/src/LoggingInternal.h +85 -0
- data/vendor/simpleble/simpleble/src/Utils.cpp +24 -0
- data/vendor/simpleble/simpleble/src/backends/android/AdapterAndroid.cpp +101 -0
- data/vendor/simpleble/simpleble/src/backends/android/AdapterAndroid.h +70 -0
- data/vendor/simpleble/simpleble/src/backends/android/BackendAndroid.cpp +40 -0
- data/vendor/simpleble/simpleble/src/backends/android/BackendAndroid.h +20 -0
- data/vendor/simpleble/simpleble/src/backends/android/PeripheralAndroid.cpp +365 -0
- data/vendor/simpleble/simpleble/src/backends/android/PeripheralAndroid.h +90 -0
- data/vendor/simpleble/simpleble/src/backends/android/bridge/BluetoothGattCallback.cpp +432 -0
- data/vendor/simpleble/simpleble/src/backends/android/bridge/BluetoothGattCallback.h +102 -0
- data/vendor/simpleble/simpleble/src/backends/android/bridge/ScanCallback.cpp +142 -0
- data/vendor/simpleble/simpleble/src/backends/android/bridge/ScanCallback.h +55 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothAdapter.cpp +107 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothAdapter.h +55 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothDevice.cpp +68 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothDevice.h +54 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGatt.cpp +115 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGatt.h +75 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattCharacteristic.cpp +142 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattCharacteristic.h +66 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattDescriptor.cpp +67 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattDescriptor.h +46 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattService.cpp +106 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattService.h +47 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/BluetoothScanner.cpp +47 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/BluetoothScanner.h +37 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanRecord.cpp +69 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanRecord.h +41 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanResult.cpp +63 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanResult.h +42 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/os/ParcelUUID.cpp +32 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/os/ParcelUUID.h +30 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/util/SparseArray.cpp +54 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/android/util/SparseArray.h +37 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Iterator.cpp +36 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Iterator.h +28 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/List.cpp +29 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/List.h +27 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Set.cpp +33 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Set.h +28 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/UUID.cpp +26 -0
- data/vendor/simpleble/simpleble/src/backends/android/types/java/util/UUID.h +29 -0
- data/vendor/simpleble/simpleble/src/backends/common/AdapterBase.cpp +53 -0
- data/vendor/simpleble/simpleble/src/backends/common/AdapterBase.h +81 -0
- data/vendor/simpleble/simpleble/src/backends/common/AdapterBaseTypes.h +22 -0
- data/vendor/simpleble/simpleble/src/backends/common/BackendBase.h +20 -0
- data/vendor/simpleble/simpleble/src/backends/common/BackendUtils.h +33 -0
- data/vendor/simpleble/simpleble/src/backends/common/CharacteristicBase.cpp +28 -0
- data/vendor/simpleble/simpleble/src/backends/common/CharacteristicBase.h +38 -0
- data/vendor/simpleble/simpleble/src/backends/common/DescriptorBase.cpp +7 -0
- data/vendor/simpleble/simpleble/src/backends/common/DescriptorBase.h +19 -0
- data/vendor/simpleble/simpleble/src/backends/common/PeripheralBase.h +82 -0
- data/vendor/simpleble/simpleble/src/backends/common/ServiceBase.cpp +18 -0
- data/vendor/simpleble/simpleble/src/backends/common/ServiceBase.h +28 -0
- data/vendor/simpleble/simpleble/src/backends/linux/AdapterLinux.cpp +102 -0
- data/vendor/simpleble/simpleble/src/backends/linux/AdapterLinux.h +55 -0
- data/vendor/simpleble/simpleble/src/backends/linux/BackendBluez.cpp +87 -0
- data/vendor/simpleble/simpleble/src/backends/linux/PeripheralLinux.cpp +376 -0
- data/vendor/simpleble/simpleble/src/backends/linux/PeripheralLinux.h +90 -0
- data/vendor/simpleble/simpleble/src/backends/macos/AdapterBaseMacOS.h +29 -0
- data/vendor/simpleble/simpleble/src/backends/macos/AdapterMac.h +78 -0
- data/vendor/simpleble/simpleble/src/backends/macos/PeripheralBaseMacOS.h +49 -0
- data/vendor/simpleble/simpleble/src/backends/macos/PeripheralMac.h +81 -0
- data/vendor/simpleble/simpleble/src/backends/macos/Utils.h +9 -0
- data/vendor/simpleble/simpleble/src/backends/plain/AdapterPlain.cpp +65 -0
- data/vendor/simpleble/simpleble/src/backends/plain/AdapterPlain.h +49 -0
- data/vendor/simpleble/simpleble/src/backends/plain/BackendPlain.cpp +30 -0
- data/vendor/simpleble/simpleble/src/backends/plain/PeripheralPlain.cpp +159 -0
- data/vendor/simpleble/simpleble/src/backends/plain/PeripheralPlain.h +72 -0
- data/vendor/simpleble/simpleble/src/backends/windows/AdapterWindows.cpp +330 -0
- data/vendor/simpleble/simpleble/src/backends/windows/AdapterWindows.h +89 -0
- data/vendor/simpleble/simpleble/src/backends/windows/BackendWinRT.cpp +67 -0
- data/vendor/simpleble/simpleble/src/backends/windows/BackendWinRT.h +18 -0
- data/vendor/simpleble/simpleble/src/backends/windows/MtaManager.cpp +49 -0
- data/vendor/simpleble/simpleble/src/backends/windows/MtaManager.h +90 -0
- data/vendor/simpleble/simpleble/src/backends/windows/PeripheralWindows.cpp +487 -0
- data/vendor/simpleble/simpleble/src/backends/windows/PeripheralWindows.h +129 -0
- data/vendor/simpleble/simpleble/src/backends/windows/Utils.cpp +146 -0
- data/vendor/simpleble/simpleble/src/backends/windows/Utils.h +47 -0
- data/vendor/simpleble/simpleble/src/builders/BuildVec.h +32 -0
- data/vendor/simpleble/simpleble/src/builders/BuilderBase.h +87 -0
- data/vendor/simpleble/simpleble/src/external/TaskRunner.hpp +99 -0
- data/vendor/simpleble/simpleble/src/external/ThreadRunner.h +52 -0
- data/vendor/simpleble/simpleble/src/external/kvn_safe_callback.hpp +66 -0
- data/vendor/simpleble/simpleble/src/external/kvn_safe_map.hpp +94 -0
- data/vendor/simpleble/simpleble/src/external/kvn_threadrunner.hpp +70 -0
- data/vendor/simpleble/simpleble/src/external/logfwd.hpp +35 -0
- data/vendor/simpleble/simpleble/src/frontends/base/Adapter.cpp +111 -0
- data/vendor/simpleble/simpleble/src/frontends/base/Backend.cpp +83 -0
- data/vendor/simpleble/simpleble/src/frontends/base/Backend.h +76 -0
- data/vendor/simpleble/simpleble/src/frontends/base/Characteristic.cpp +56 -0
- data/vendor/simpleble/simpleble/src/frontends/base/Descriptor.cpp +21 -0
- data/vendor/simpleble/simpleble/src/frontends/base/Peripheral.cpp +113 -0
- data/vendor/simpleble/simpleble/src/frontends/base/Service.cpp +26 -0
- data/vendor/simpleble/simpleble/src/frontends/safe/AdapterSafe.cpp +158 -0
- data/vendor/simpleble/simpleble/src/frontends/safe/PeripheralSafe.cpp +219 -0
- data/vendor/simpleble/simpleble/src_c/adapter.cpp +204 -0
- data/vendor/simpleble/simpleble/src_c/logging.cpp +19 -0
- data/vendor/simpleble/simpleble/src_c/peripheral.cpp +444 -0
- data/vendor/simpleble/simpleble/src_c/simpleble.cpp +5 -0
- data/vendor/simpleble/simpleble/src_c/utils.cpp +15 -0
- data/vendor/simpleble/simpleble/test/src/main.cpp +8 -0
- data/vendor/simpleble/simpleble/test/src/test_bytearray.cpp +246 -0
- data/vendor/simpleble/simpleble/test/src/test_utils.cpp +24 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Adapter.h +46 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Agent.h +52 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Bluez.h +37 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/BluezOrg.h +22 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/BluezOrgBluez.h +26 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/BluezRoot.h +32 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Characteristic.h +46 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Descriptor.h +33 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Device.h +64 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Exceptions.h +43 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Service.h +27 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/Types.h +9 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Adapter1.h +49 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Agent1.h +100 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/AgentManager1.h +24 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Battery1.h +32 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Device1.h +62 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/GattCharacteristic1.h +48 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/GattDescriptor1.h +41 -0
- data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/GattService1.h +28 -0
- data/vendor/simpleble/simplebluez/src/Adapter.cpp +78 -0
- data/vendor/simpleble/simplebluez/src/Agent.cpp +72 -0
- data/vendor/simpleble/simplebluez/src/Bluez.cpp +45 -0
- data/vendor/simpleble/simplebluez/src/BluezOrg.cpp +20 -0
- data/vendor/simpleble/simplebluez/src/BluezOrgBluez.cpp +23 -0
- data/vendor/simpleble/simplebluez/src/BluezRoot.cpp +44 -0
- data/vendor/simpleble/simplebluez/src/Characteristic.cpp +64 -0
- data/vendor/simpleble/simplebluez/src/Descriptor.cpp +27 -0
- data/vendor/simpleble/simplebluez/src/Device.cpp +104 -0
- data/vendor/simpleble/simplebluez/src/Exceptions.cpp +29 -0
- data/vendor/simpleble/simplebluez/src/Logging.cpp +52 -0
- data/vendor/simpleble/simplebluez/src/Logging.h +57 -0
- data/vendor/simpleble/simplebluez/src/Service.cpp +33 -0
- data/vendor/simpleble/simplebluez/src/interfaces/Adapter1.cpp +123 -0
- data/vendor/simpleble/simplebluez/src/interfaces/Agent1.cpp +143 -0
- data/vendor/simpleble/simplebluez/src/interfaces/AgentManager1.cpp +34 -0
- data/vendor/simpleble/simplebluez/src/interfaces/Battery1.cpp +30 -0
- data/vendor/simpleble/simplebluez/src/interfaces/Device1.cpp +170 -0
- data/vendor/simpleble/simplebluez/src/interfaces/GattCharacteristic1.cpp +118 -0
- data/vendor/simpleble/simplebluez/src/interfaces/GattDescriptor1.cpp +78 -0
- data/vendor/simpleble/simplebluez/src/interfaces/GattService1.cpp +28 -0
- data/vendor/simpleble/simplebluez/test/src/helpers/PythonRunner.cpp +53 -0
- data/vendor/simpleble/simplebluez/test/src/helpers/PythonRunner.h +24 -0
- data/vendor/simpleble/simplebluez/test/src/main.cpp +16 -0
- data/vendor/simpleble/simplecble/include/simplecble/adapter.h +188 -0
- data/vendor/simpleble/simplecble/include/simplecble/logging.h +37 -0
- data/vendor/simpleble/simplecble/include/simplecble/peripheral.h +304 -0
- data/vendor/simpleble/simplecble/include/simplecble/simpleble.h +21 -0
- data/vendor/simpleble/simplecble/include/simplecble/types.h +73 -0
- data/vendor/simpleble/simplecble/include/simplecble/utils.h +27 -0
- data/vendor/simpleble/simplecble/src/adapter.cpp +204 -0
- data/vendor/simpleble/simplecble/src/logging.cpp +19 -0
- data/vendor/simpleble/simplecble/src/peripheral.cpp +444 -0
- data/vendor/simpleble/simplecble/src/simpleble.cpp +5 -0
- data/vendor/simpleble/simplecble/src/utils.cpp +15 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/advanced/Interface.h +67 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/advanced/InterfaceRegistry.h +64 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/advanced/Proxy.h +117 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/base/Connection.h +50 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/base/Exceptions.h +56 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/base/Holder.h +147 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/base/Logging.h +57 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/base/Message.h +89 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/base/Path.h +24 -0
- data/vendor/simpleble/simpledbus/include/simpledbus/interfaces/ObjectManager.h +26 -0
- data/vendor/simpleble/simpledbus/src/advanced/Interface.cpp +155 -0
- data/vendor/simpleble/simpledbus/src/advanced/Proxy.cpp +375 -0
- data/vendor/simpleble/simpledbus/src/base/Connection.cpp +222 -0
- data/vendor/simpleble/simpledbus/src/base/Exceptions.cpp +39 -0
- data/vendor/simpleble/simpledbus/src/base/Holder.cpp +739 -0
- data/vendor/simpleble/simpledbus/src/base/Logging.cpp +52 -0
- data/vendor/simpleble/simpledbus/src/base/Message.cpp +622 -0
- data/vendor/simpleble/simpledbus/src/base/Path.cpp +129 -0
- data/vendor/simpleble/simpledbus/src/interfaces/ObjectManager.cpp +58 -0
- data/vendor/simpleble/simpledbus/test/src/helpers/PythonRunner.cpp +53 -0
- data/vendor/simpleble/simpledbus/test/src/helpers/PythonRunner.h +24 -0
- data/vendor/simpleble/simpledbus/test/src/main.cpp +16 -0
- data/vendor/simpleble/simpledbus/test/src/test_holder.cpp +184 -0
- data/vendor/simpleble/simpledbus/test/src/test_message.cpp +397 -0
- data/vendor/simpleble/simpledbus/test/src/test_path.cpp +76 -0
- data/vendor/simpleble/simpledbus/test/src/test_proxy_children.cpp +109 -0
- data/vendor/simpleble/simpledbus/test/src/test_proxy_interfaces.cpp +102 -0
- data/vendor/simpleble/simpledbus/test/src/test_proxy_lifetime.cpp +18 -0
- data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/ThreadRunner.h +89 -0
- data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/android_utils.cpp +55 -0
- data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/android_utils.h +18 -0
- data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/simpleble_android.cpp +813 -0
- data/vendor/simpleble/simplejavable/cpp/src/core/AdapterWrapper.cpp +37 -0
- data/vendor/simpleble/simplejavable/cpp/src/core/AdapterWrapper.h +23 -0
- data/vendor/simpleble/simplejavable/cpp/src/core/Cache.cpp +58 -0
- data/vendor/simpleble/simplejavable/cpp/src/core/Cache.h +34 -0
- data/vendor/simpleble/simplejavable/cpp/src/core/PeripheralWrapper.cpp +17 -0
- data/vendor/simpleble/simplejavable/cpp/src/core/PeripheralWrapper.h +19 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/ArrayList.cpp +257 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/ArrayList.h +78 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/HashMap.cpp +96 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/HashMap.h +54 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/Integer.cpp +93 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/Integer.h +49 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/Iterator.cpp +85 -0
- data/vendor/simpleble/simplejavable/cpp/src/java/lang/Iterator.h +48 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/AdapterCallback.cpp +91 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/AdapterCallback.h +90 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Characteristic.cpp +35 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Characteristic.h +60 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/DataCallback.cpp +33 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/DataCallback.h +45 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Descriptor.cpp +30 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Descriptor.h +49 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/PeripheralCallback.cpp +41 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/PeripheralCallback.h +51 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Service.cpp +33 -0
- data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Service.h +54 -0
- data/vendor/simpleble/simplejavable/cpp/src/simplejavable.cpp +361 -0
- data/vendor/simpleble/simplepyble/src/main.cpp +55 -0
- data/vendor/simpleble/simplepyble/src/wrap_adapter.cpp +106 -0
- data/vendor/simpleble/simplepyble/src/wrap_characteristic.cpp +56 -0
- data/vendor/simpleble/simplepyble/src/wrap_config.cpp +136 -0
- data/vendor/simpleble/simplepyble/src/wrap_descriptor.cpp +21 -0
- data/vendor/simpleble/simplepyble/src/wrap_peripheral.cpp +217 -0
- data/vendor/simpleble/simplepyble/src/wrap_service.cpp +32 -0
- data/vendor/simpleble/simplepyble/src/wrap_types.cpp +21 -0
- data/vendor/simpleble/simplersble/src/bindings/Bindings.cpp +338 -0
- data/vendor/simpleble/simplersble/src/bindings/Bindings.hpp +178 -0
- metadata +430 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "types/java/util/UUID.h"
|
4
|
+
#include "simplejni/Common.hpp"
|
5
|
+
#include "simplejni/Registry.hpp"
|
6
|
+
|
7
|
+
namespace SimpleBLE {
|
8
|
+
namespace Android {
|
9
|
+
|
10
|
+
class ParcelUUID {
|
11
|
+
public:
|
12
|
+
ParcelUUID();
|
13
|
+
ParcelUUID(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj);
|
14
|
+
|
15
|
+
UUID getUuid();
|
16
|
+
|
17
|
+
jobject get() const { return _obj.get(); } // TODO: Remove once nothing uses this
|
18
|
+
|
19
|
+
private:
|
20
|
+
SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> _obj;
|
21
|
+
|
22
|
+
static SimpleJNI::GlobalRef<jclass> _cls;
|
23
|
+
static jmethodID _method_getUuid;
|
24
|
+
|
25
|
+
static const SimpleJNI::JNIDescriptor descriptor;
|
26
|
+
static const SimpleJNI::AutoRegister<ParcelUUID> registrar;
|
27
|
+
};
|
28
|
+
|
29
|
+
} // namespace Android
|
30
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#include "SparseArray.h"
|
2
|
+
|
3
|
+
namespace SimpleBLE {
|
4
|
+
namespace Android {
|
5
|
+
|
6
|
+
// Define static JNI resources
|
7
|
+
SimpleJNI::GlobalRef<jclass> SparseArrayBase::_cls;
|
8
|
+
jmethodID SparseArrayBase::_method_size = nullptr;
|
9
|
+
jmethodID SparseArrayBase::_method_keyAt = nullptr;
|
10
|
+
jmethodID SparseArrayBase::_method_valueAt = nullptr;
|
11
|
+
|
12
|
+
// Define the JNI descriptor
|
13
|
+
const SimpleJNI::JNIDescriptor SparseArrayBase::descriptor{
|
14
|
+
"android/util/SparseArray", // Java class name
|
15
|
+
&_cls, // Where to store the jclass
|
16
|
+
{ // Methods to preload
|
17
|
+
{"size", "()I", &_method_size},
|
18
|
+
{"keyAt", "(I)I", &_method_keyAt},
|
19
|
+
{"valueAt", "(I)Ljava/lang/Object;", &_method_valueAt}
|
20
|
+
}};
|
21
|
+
|
22
|
+
const SimpleJNI::AutoRegister<SparseArrayBase> SparseArrayBase::registrar{&descriptor};
|
23
|
+
|
24
|
+
template <typename T>
|
25
|
+
SparseArray<T>::SparseArray() {}
|
26
|
+
|
27
|
+
template <typename T>
|
28
|
+
SparseArray<T>::SparseArray(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj) : _obj(obj) {}
|
29
|
+
|
30
|
+
|
31
|
+
template <typename T>
|
32
|
+
int SparseArray<T>::size() {
|
33
|
+
if (!_obj) throw std::runtime_error("SparseArray is not initialized");
|
34
|
+
return _obj.call_int_method(_method_size);
|
35
|
+
}
|
36
|
+
|
37
|
+
template <typename T>
|
38
|
+
int SparseArray<T>::keyAt(int index) {
|
39
|
+
if (!_obj) throw std::runtime_error("SparseArray is not initialized");
|
40
|
+
return _obj.call_int_method(_method_keyAt, index);
|
41
|
+
}
|
42
|
+
|
43
|
+
template <typename T>
|
44
|
+
T SparseArray<T>::valueAt(int index) {
|
45
|
+
if (!_obj) throw std::runtime_error("SparseArray is not initialized");
|
46
|
+
SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> value = _obj.call_object_method(_method_valueAt, index);
|
47
|
+
return T(value.get());
|
48
|
+
}
|
49
|
+
|
50
|
+
template class SparseArray<SimpleJNI::ByteArray<SimpleJNI::LocalRef>>;
|
51
|
+
template class SparseArray<SimpleJNI::Object<SimpleJNI::LocalRef, jobject>>;
|
52
|
+
|
53
|
+
} // namespace Android
|
54
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "simplejni/Common.hpp"
|
4
|
+
#include "simplejni/Registry.hpp"
|
5
|
+
|
6
|
+
namespace SimpleBLE {
|
7
|
+
namespace Android {
|
8
|
+
|
9
|
+
class SparseArrayBase {
|
10
|
+
public:
|
11
|
+
// Static JNI resources managed by Registrar
|
12
|
+
static SimpleJNI::GlobalRef<jclass> _cls;
|
13
|
+
static jmethodID _method_size;
|
14
|
+
static jmethodID _method_keyAt;
|
15
|
+
static jmethodID _method_valueAt;
|
16
|
+
|
17
|
+
// JNI descriptor for auto-registration
|
18
|
+
static const SimpleJNI::JNIDescriptor descriptor;
|
19
|
+
static const SimpleJNI::AutoRegister<SparseArrayBase> registrar;
|
20
|
+
};
|
21
|
+
|
22
|
+
template <typename T>
|
23
|
+
class SparseArray : public SparseArrayBase {
|
24
|
+
public:
|
25
|
+
SparseArray();
|
26
|
+
SparseArray(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj);
|
27
|
+
|
28
|
+
int size();
|
29
|
+
int keyAt(int index);
|
30
|
+
T valueAt(int index);
|
31
|
+
|
32
|
+
private:
|
33
|
+
SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> _obj;
|
34
|
+
};
|
35
|
+
|
36
|
+
} // namespace Android
|
37
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#include "Iterator.h"
|
2
|
+
|
3
|
+
namespace SimpleBLE {
|
4
|
+
namespace Android {
|
5
|
+
|
6
|
+
// Define static JNI resources
|
7
|
+
SimpleJNI::GlobalRef<jclass> Iterator::_cls;
|
8
|
+
jmethodID Iterator::_method_hasNext = nullptr;
|
9
|
+
jmethodID Iterator::_method_next = nullptr;
|
10
|
+
|
11
|
+
// Define the JNI descriptor
|
12
|
+
const SimpleJNI::JNIDescriptor Iterator::descriptor{
|
13
|
+
"java/util/Iterator", // Java class name
|
14
|
+
&_cls, // Where to store the jclass
|
15
|
+
{ // Methods to preload
|
16
|
+
{"hasNext", "()Z", &_method_hasNext},
|
17
|
+
{"next", "()Ljava/lang/Object;", &_method_next}
|
18
|
+
}
|
19
|
+
};
|
20
|
+
|
21
|
+
const SimpleJNI::AutoRegister<Iterator> Iterator::registrar{&descriptor};
|
22
|
+
|
23
|
+
Iterator::Iterator(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj) : _obj(obj) {}
|
24
|
+
|
25
|
+
bool Iterator::hasNext() {
|
26
|
+
if (!_obj) throw std::runtime_error("Iterator is not initialized");
|
27
|
+
return _obj.call_boolean_method(_method_hasNext);
|
28
|
+
}
|
29
|
+
|
30
|
+
SimpleJNI::Object<SimpleJNI::LocalRef> Iterator::next() {
|
31
|
+
if (!_obj) throw std::runtime_error("Iterator is not initialized");
|
32
|
+
return _obj.call_object_method(_method_next);
|
33
|
+
}
|
34
|
+
|
35
|
+
} // namespace Android
|
36
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "simplejni/Common.hpp"
|
4
|
+
#include "simplejni/Registry.hpp"
|
5
|
+
#include <vector>
|
6
|
+
|
7
|
+
namespace SimpleBLE {
|
8
|
+
namespace Android {
|
9
|
+
|
10
|
+
class Iterator {
|
11
|
+
public:
|
12
|
+
Iterator(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj);
|
13
|
+
|
14
|
+
bool hasNext();
|
15
|
+
SimpleJNI::Object<SimpleJNI::LocalRef> next();
|
16
|
+
|
17
|
+
private:
|
18
|
+
static SimpleJNI::GlobalRef<jclass> _cls;
|
19
|
+
static jmethodID _method_hasNext;
|
20
|
+
static jmethodID _method_next;
|
21
|
+
|
22
|
+
static const SimpleJNI::JNIDescriptor descriptor;
|
23
|
+
static const SimpleJNI::AutoRegister<Iterator> registrar;
|
24
|
+
|
25
|
+
SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> _obj;
|
26
|
+
};
|
27
|
+
} // namespace Android
|
28
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#include "List.h"
|
2
|
+
#include "Iterator.h"
|
3
|
+
|
4
|
+
namespace SimpleBLE {
|
5
|
+
namespace Android {
|
6
|
+
|
7
|
+
SimpleJNI::GlobalRef<jclass> List::_cls;
|
8
|
+
jmethodID List::_method_iterator = nullptr;
|
9
|
+
|
10
|
+
const SimpleJNI::JNIDescriptor List::descriptor{
|
11
|
+
"java/util/List", // Java class name
|
12
|
+
&_cls, // Where to store the jclass
|
13
|
+
{ // Methods to preload
|
14
|
+
{"iterator", "()Ljava/util/Iterator;", &_method_iterator}
|
15
|
+
}
|
16
|
+
};
|
17
|
+
|
18
|
+
const SimpleJNI::AutoRegister<List> List::registrar{&descriptor};
|
19
|
+
|
20
|
+
List::List(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj) : _obj(obj) {}
|
21
|
+
|
22
|
+
Iterator List::iterator() {
|
23
|
+
if (!_obj) throw std::runtime_error("List is not initialized");
|
24
|
+
SimpleJNI::Object<SimpleJNI::LocalRef> iterator_obj = _obj.call_object_method(_method_iterator);
|
25
|
+
return Iterator(iterator_obj.to_global());
|
26
|
+
}
|
27
|
+
|
28
|
+
} // namespace Android
|
29
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "simplejni/Common.hpp"
|
4
|
+
#include "simplejni/Registry.hpp"
|
5
|
+
#include "Iterator.h"
|
6
|
+
#include <vector>
|
7
|
+
|
8
|
+
namespace SimpleBLE {
|
9
|
+
namespace Android {
|
10
|
+
|
11
|
+
class List {
|
12
|
+
public:
|
13
|
+
List(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj);
|
14
|
+
|
15
|
+
Iterator iterator();
|
16
|
+
|
17
|
+
private:
|
18
|
+
static SimpleJNI::GlobalRef<jclass> _cls;
|
19
|
+
static jmethodID _method_iterator;
|
20
|
+
|
21
|
+
static const SimpleJNI::JNIDescriptor descriptor;
|
22
|
+
static const SimpleJNI::AutoRegister<List> registrar;
|
23
|
+
|
24
|
+
SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> _obj;
|
25
|
+
};
|
26
|
+
} // namespace Android
|
27
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#include "Set.h"
|
2
|
+
#include "Iterator.h" // Ensure Iterator.h is correctly included
|
3
|
+
|
4
|
+
namespace SimpleBLE {
|
5
|
+
namespace Android { // Changed namespace
|
6
|
+
|
7
|
+
// Define static JNI resources
|
8
|
+
SimpleJNI::GlobalRef<jclass> Set::_cls;
|
9
|
+
jmethodID Set::_method_iterator = nullptr;
|
10
|
+
|
11
|
+
// Define the JNI descriptor
|
12
|
+
const SimpleJNI::JNIDescriptor Set::descriptor{
|
13
|
+
"java/util/Set", // Java class name
|
14
|
+
&_cls, // Where to store the jclass
|
15
|
+
{ // Methods to preload
|
16
|
+
{"iterator", "()Ljava/util/Iterator;", &_method_iterator}
|
17
|
+
}
|
18
|
+
};
|
19
|
+
|
20
|
+
const SimpleJNI::AutoRegister<Set> Set::registrar{&descriptor};
|
21
|
+
|
22
|
+
Set::Set(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj) : _obj(obj) {}
|
23
|
+
|
24
|
+
Iterator Set::iterator() {
|
25
|
+
if (!_obj) throw std::runtime_error("Set is not initialized");
|
26
|
+
SimpleJNI::Object<SimpleJNI::LocalRef> iterator_obj = _obj.call_object_method(_method_iterator);
|
27
|
+
// Assuming Iterator's constructor now accepts SimpleJNI::Object<SimpleJNI::LocalRef>
|
28
|
+
// or SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> as per previous refactoring.
|
29
|
+
return Iterator(iterator_obj.to_global()); // Convert to GlobalRef if Iterator stores it as such
|
30
|
+
}
|
31
|
+
|
32
|
+
} // namespace Android
|
33
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "simplejni/Common.hpp"
|
4
|
+
#include "simplejni/Registry.hpp"
|
5
|
+
#include "Iterator.h"
|
6
|
+
#include <vector>
|
7
|
+
|
8
|
+
namespace SimpleBLE {
|
9
|
+
namespace Android {
|
10
|
+
class Set {
|
11
|
+
public:
|
12
|
+
Set(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj);
|
13
|
+
|
14
|
+
Iterator iterator();
|
15
|
+
|
16
|
+
private:
|
17
|
+
// Static JNI resources managed by Registrar
|
18
|
+
static SimpleJNI::GlobalRef<jclass> _cls;
|
19
|
+
static jmethodID _method_iterator;
|
20
|
+
|
21
|
+
// JNI descriptor for auto-registration
|
22
|
+
static const SimpleJNI::JNIDescriptor descriptor;
|
23
|
+
static const SimpleJNI::AutoRegister<Set> registrar;
|
24
|
+
|
25
|
+
SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> _obj;
|
26
|
+
};
|
27
|
+
} // namespace Android
|
28
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#include "UUID.h"
|
2
|
+
|
3
|
+
namespace SimpleBLE {
|
4
|
+
namespace Android {
|
5
|
+
|
6
|
+
SimpleJNI::GlobalRef<jclass> UUID::_cls;
|
7
|
+
jmethodID UUID::_method_toString = nullptr;
|
8
|
+
|
9
|
+
const SimpleJNI::JNIDescriptor UUID::descriptor{"java/util/UUID", // Java class name
|
10
|
+
&_cls, // Pointer to store the jclass
|
11
|
+
{ // Methods to preload
|
12
|
+
{"toString", "()Ljava/lang/String;", &_method_toString}}};
|
13
|
+
|
14
|
+
const SimpleJNI::AutoRegister<UUID> UUID::registrar{&descriptor};
|
15
|
+
|
16
|
+
UUID::UUID() : _obj() {}
|
17
|
+
|
18
|
+
UUID::UUID(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj) : _obj(obj) {}
|
19
|
+
|
20
|
+
std::string UUID::toString() {
|
21
|
+
if (!_obj) throw std::runtime_error("UUID is not initialized");
|
22
|
+
return _obj.call_string_method(_method_toString);
|
23
|
+
}
|
24
|
+
|
25
|
+
} // namespace Android
|
26
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "simplejni/Common.hpp"
|
4
|
+
#include "simplejni/Registry.hpp"
|
5
|
+
|
6
|
+
namespace SimpleBLE {
|
7
|
+
namespace Android {
|
8
|
+
|
9
|
+
class UUID {
|
10
|
+
public:
|
11
|
+
UUID();
|
12
|
+
UUID(SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> obj);
|
13
|
+
|
14
|
+
std::string toString();
|
15
|
+
|
16
|
+
jobject get() const { return _obj.get(); } // TODO: Remove once nothing uses this
|
17
|
+
|
18
|
+
private:
|
19
|
+
SimpleJNI::Object<SimpleJNI::GlobalRef, jobject> _obj;
|
20
|
+
|
21
|
+
static SimpleJNI::GlobalRef<jclass> _cls;
|
22
|
+
static jmethodID _method_toString;
|
23
|
+
|
24
|
+
static const SimpleJNI::JNIDescriptor descriptor;
|
25
|
+
static const SimpleJNI::AutoRegister<UUID> registrar;
|
26
|
+
};
|
27
|
+
|
28
|
+
} // namespace Android
|
29
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#include "AdapterBase.h"
|
2
|
+
|
3
|
+
namespace SimpleBLE {
|
4
|
+
|
5
|
+
void AdapterBase::set_callback_on_power_on(std::function<void()> on_power_on) {
|
6
|
+
if (on_power_on) {
|
7
|
+
_callback_on_power_on.load(on_power_on);
|
8
|
+
} else {
|
9
|
+
_callback_on_power_on.unload();
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
void AdapterBase::set_callback_on_power_off(std::function<void()> on_power_off) {
|
14
|
+
if (on_power_off) {
|
15
|
+
_callback_on_power_off.load(on_power_off);
|
16
|
+
} else {
|
17
|
+
_callback_on_power_off.unload();
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
void AdapterBase::set_callback_on_scan_start(std::function<void()> on_scan_start) {
|
22
|
+
if (on_scan_start) {
|
23
|
+
_callback_on_scan_start.load(on_scan_start);
|
24
|
+
} else {
|
25
|
+
_callback_on_scan_start.unload();
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
void AdapterBase::set_callback_on_scan_stop(std::function<void()> on_scan_stop) {
|
30
|
+
if (on_scan_stop) {
|
31
|
+
_callback_on_scan_stop.load(on_scan_stop);
|
32
|
+
} else {
|
33
|
+
_callback_on_scan_stop.unload();
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
void AdapterBase::set_callback_on_scan_updated(std::function<void(Peripheral)> on_scan_updated) {
|
38
|
+
if (on_scan_updated) {
|
39
|
+
_callback_on_scan_updated.load(on_scan_updated);
|
40
|
+
} else {
|
41
|
+
_callback_on_scan_updated.unload();
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
void AdapterBase::set_callback_on_scan_found(std::function<void(Peripheral)> on_scan_found) {
|
46
|
+
if (on_scan_found) {
|
47
|
+
_callback_on_scan_found.load(on_scan_found);
|
48
|
+
} else {
|
49
|
+
_callback_on_scan_found.unload();
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <functional>
|
4
|
+
#include <memory>
|
5
|
+
#include <string>
|
6
|
+
#include <vector>
|
7
|
+
|
8
|
+
#include <simpleble/Exceptions.h>
|
9
|
+
#include <simpleble/Types.h>
|
10
|
+
|
11
|
+
#include <kvn_safe_callback.hpp>
|
12
|
+
|
13
|
+
namespace SimpleBLE {
|
14
|
+
|
15
|
+
class Peripheral;
|
16
|
+
class PeripheralBase;
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Abstract base class for Bluetooth adapter implementations.
|
20
|
+
*
|
21
|
+
* Each backend must implement this class.
|
22
|
+
*
|
23
|
+
* Notes for implementers:
|
24
|
+
*
|
25
|
+
* - The methods here return shared pointers to AdapterBase, PeripheralBase,
|
26
|
+
* etc. The code in Adapter.cpp will automatically wrap these in Adapter,
|
27
|
+
* Peripheral, etc. objects.
|
28
|
+
* - Do not use Adapter, Peripheral, etc. Those are for the user.
|
29
|
+
* - Methods that require the adapter to be enabled will not be called by the
|
30
|
+
* frontend if `bluetooth_enabled()` returns false.
|
31
|
+
*/
|
32
|
+
class AdapterBase {
|
33
|
+
public:
|
34
|
+
virtual ~AdapterBase() = default;
|
35
|
+
|
36
|
+
virtual void* underlying() const = 0;
|
37
|
+
|
38
|
+
virtual std::string identifier() = 0;
|
39
|
+
virtual BluetoothAddress address() = 0;
|
40
|
+
|
41
|
+
virtual void power_on() = 0;
|
42
|
+
virtual void power_off() = 0;
|
43
|
+
virtual bool is_powered() = 0;
|
44
|
+
virtual void set_callback_on_power_on(std::function<void()> on_power_on);
|
45
|
+
virtual void set_callback_on_power_off(std::function<void()> on_power_off);
|
46
|
+
|
47
|
+
virtual void scan_start() = 0;
|
48
|
+
virtual void scan_stop() = 0;
|
49
|
+
virtual void scan_for(int timeout_ms) = 0;
|
50
|
+
virtual bool scan_is_active() = 0;
|
51
|
+
virtual std::vector<std::shared_ptr<PeripheralBase>> scan_get_results() = 0;
|
52
|
+
|
53
|
+
virtual void set_callback_on_scan_start(std::function<void()> on_scan_start);
|
54
|
+
virtual void set_callback_on_scan_stop(std::function<void()> on_scan_stop);
|
55
|
+
virtual void set_callback_on_scan_updated(std::function<void(Peripheral)> on_scan_updated);
|
56
|
+
virtual void set_callback_on_scan_found(std::function<void(Peripheral)> on_scan_found);
|
57
|
+
|
58
|
+
virtual std::vector<std::shared_ptr<PeripheralBase>> get_paired_peripherals() = 0;
|
59
|
+
virtual std::vector<std::shared_ptr<PeripheralBase>> get_connected_peripherals() { return {}; };
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Checks if Bluetooth is enabled.
|
63
|
+
*
|
64
|
+
* The enabled state may be a global setting for the system/backend, or
|
65
|
+
* it may be specific to the adapter.
|
66
|
+
*/
|
67
|
+
virtual bool bluetooth_enabled() = 0;
|
68
|
+
|
69
|
+
protected:
|
70
|
+
AdapterBase() = default;
|
71
|
+
|
72
|
+
kvn::safe_callback<void()> _callback_on_power_on;
|
73
|
+
kvn::safe_callback<void()> _callback_on_power_off;
|
74
|
+
|
75
|
+
kvn::safe_callback<void()> _callback_on_scan_start;
|
76
|
+
kvn::safe_callback<void()> _callback_on_scan_stop;
|
77
|
+
kvn::safe_callback<void(Peripheral)> _callback_on_scan_updated;
|
78
|
+
kvn::safe_callback<void(Peripheral)> _callback_on_scan_found;
|
79
|
+
};
|
80
|
+
|
81
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpleble/Types.h>
|
4
|
+
#include <cstdint>
|
5
|
+
#include <map>
|
6
|
+
#include <string>
|
7
|
+
|
8
|
+
namespace SimpleBLE {
|
9
|
+
|
10
|
+
struct advertising_data_t {
|
11
|
+
std::string identifier;
|
12
|
+
BluetoothAddressType address_type;
|
13
|
+
BluetoothAddress mac_address;
|
14
|
+
bool connectable;
|
15
|
+
int16_t rssi;
|
16
|
+
int16_t tx_power;
|
17
|
+
|
18
|
+
std::map<uint16_t, ByteArray> manufacturer_data;
|
19
|
+
std::map<BluetoothUUID, ByteArray> service_data;
|
20
|
+
};
|
21
|
+
|
22
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <memory>
|
4
|
+
#include <string>
|
5
|
+
#include <vector>
|
6
|
+
|
7
|
+
namespace SimpleBLE {
|
8
|
+
|
9
|
+
class AdapterBase;
|
10
|
+
|
11
|
+
class BackendBase {
|
12
|
+
public:
|
13
|
+
virtual ~BackendBase() = default;
|
14
|
+
|
15
|
+
virtual std::vector<std::shared_ptr<AdapterBase>> get_adapters() = 0;
|
16
|
+
virtual bool bluetooth_enabled() = 0;
|
17
|
+
virtual std::string name() const noexcept = 0;
|
18
|
+
};
|
19
|
+
|
20
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <memory>
|
4
|
+
|
5
|
+
#include "BackendBase.h"
|
6
|
+
|
7
|
+
namespace SimpleBLE {
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Convenience CRTP class to have a Backend that is a singleton.
|
11
|
+
*
|
12
|
+
* REQUIRES: T must be default-constructible.
|
13
|
+
*/
|
14
|
+
template <typename T>
|
15
|
+
class BackendSingleton : public BackendBase, public std::enable_shared_from_this<T> {
|
16
|
+
public:
|
17
|
+
static std::shared_ptr<T> get() {
|
18
|
+
static T instance(buildToken{});
|
19
|
+
return std::shared_ptr<T>(&instance, [](T*) {});
|
20
|
+
}
|
21
|
+
|
22
|
+
BackendSingleton(const BackendSingleton& other) = delete; // Remove the copy constructor
|
23
|
+
T& operator=(const T&) = delete; // Remove the copy assignment
|
24
|
+
|
25
|
+
protected:
|
26
|
+
// Derived classes should have a constructor that takes a buildToken to
|
27
|
+
// ensure that the class is only constructed through the get() method.
|
28
|
+
struct buildToken {};
|
29
|
+
|
30
|
+
BackendSingleton() = default;
|
31
|
+
};
|
32
|
+
|
33
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#include <simpleble/Characteristic.h>
|
2
|
+
|
3
|
+
#include "CharacteristicBase.h"
|
4
|
+
#include "CommonUtils.h"
|
5
|
+
#include "DescriptorBase.h"
|
6
|
+
|
7
|
+
using namespace SimpleBLE;
|
8
|
+
|
9
|
+
CharacteristicBase::CharacteristicBase(const BluetoothUUID& uuid, SharedPtrVector<DescriptorBase> descriptors,
|
10
|
+
bool can_read, bool can_write_request, bool can_write_command, bool can_notify,
|
11
|
+
bool can_indicate)
|
12
|
+
: uuid_(uuid),
|
13
|
+
descriptors_(descriptors),
|
14
|
+
can_read_(can_read),
|
15
|
+
can_write_request_(can_write_request),
|
16
|
+
can_write_command_(can_write_command),
|
17
|
+
can_notify_(can_notify),
|
18
|
+
can_indicate_(can_indicate) {}
|
19
|
+
|
20
|
+
BluetoothUUID CharacteristicBase::uuid() { return uuid_; }
|
21
|
+
|
22
|
+
SharedPtrVector<DescriptorBase> CharacteristicBase::descriptors() { return descriptors_; }
|
23
|
+
|
24
|
+
bool CharacteristicBase::can_read() { return can_read_; }
|
25
|
+
bool CharacteristicBase::can_write_request() { return can_write_request_; }
|
26
|
+
bool CharacteristicBase::can_write_command() { return can_write_command_; }
|
27
|
+
bool CharacteristicBase::can_notify() { return can_notify_; }
|
28
|
+
bool CharacteristicBase::can_indicate() { return can_indicate_; }
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpleble/Exceptions.h>
|
4
|
+
#include <simpleble/Types.h>
|
5
|
+
#include <memory>
|
6
|
+
|
7
|
+
namespace SimpleBLE {
|
8
|
+
|
9
|
+
class DescriptorBase;
|
10
|
+
|
11
|
+
class CharacteristicBase {
|
12
|
+
public:
|
13
|
+
CharacteristicBase(const BluetoothUUID& uuid, std::vector<std::shared_ptr<DescriptorBase>> descriptors,
|
14
|
+
bool can_read, bool can_write_request, bool can_write_command, bool can_notify,
|
15
|
+
bool can_indicate);
|
16
|
+
virtual ~CharacteristicBase() = default;
|
17
|
+
|
18
|
+
BluetoothUUID uuid();
|
19
|
+
std::vector<std::shared_ptr<DescriptorBase>> descriptors();
|
20
|
+
|
21
|
+
bool can_read();
|
22
|
+
bool can_write_request();
|
23
|
+
bool can_write_command();
|
24
|
+
bool can_notify();
|
25
|
+
bool can_indicate();
|
26
|
+
|
27
|
+
protected:
|
28
|
+
BluetoothUUID uuid_;
|
29
|
+
std::vector<std::shared_ptr<DescriptorBase>> descriptors_;
|
30
|
+
|
31
|
+
bool can_read_ = false;
|
32
|
+
bool can_write_request_ = false;
|
33
|
+
bool can_write_command_ = false;
|
34
|
+
bool can_notify_ = false;
|
35
|
+
bool can_indicate_ = false;
|
36
|
+
};
|
37
|
+
|
38
|
+
} // namespace SimpleBLE
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpleble/Exceptions.h>
|
4
|
+
#include <simpleble/Types.h>
|
5
|
+
|
6
|
+
namespace SimpleBLE {
|
7
|
+
|
8
|
+
class DescriptorBase {
|
9
|
+
public:
|
10
|
+
DescriptorBase(const BluetoothUUID& uuid);
|
11
|
+
virtual ~DescriptorBase() = default;
|
12
|
+
|
13
|
+
BluetoothUUID uuid();
|
14
|
+
|
15
|
+
protected:
|
16
|
+
BluetoothUUID uuid_;
|
17
|
+
};
|
18
|
+
|
19
|
+
} // namespace SimpleBLE
|