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,27 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
|
5
|
+
#include <simplebluez/Characteristic.h>
|
6
|
+
#include <simplebluez/interfaces/GattService1.h>
|
7
|
+
|
8
|
+
namespace SimpleBluez {
|
9
|
+
|
10
|
+
class Service : public SimpleDBus::Proxy {
|
11
|
+
public:
|
12
|
+
Service(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
13
|
+
virtual ~Service() = default;
|
14
|
+
|
15
|
+
std::shared_ptr<Characteristic> get_characteristic(const std::string& uuid);
|
16
|
+
|
17
|
+
// ----- PROPERTIES -----
|
18
|
+
std::vector<std::shared_ptr<Characteristic>> characteristics();
|
19
|
+
|
20
|
+
std::string uuid();
|
21
|
+
|
22
|
+
private:
|
23
|
+
std::shared_ptr<SimpleDBus::Proxy> path_create(const std::string& path) override;
|
24
|
+
std::shared_ptr<GattService1> gattservice1();
|
25
|
+
};
|
26
|
+
|
27
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
|
6
|
+
#include <optional>
|
7
|
+
#include <string>
|
8
|
+
#include <vector>
|
9
|
+
|
10
|
+
namespace SimpleBluez {
|
11
|
+
|
12
|
+
class Adapter1 : public SimpleDBus::Interface {
|
13
|
+
public:
|
14
|
+
// ----- TYPES -----
|
15
|
+
struct DiscoveryFilter {
|
16
|
+
typedef enum { AUTO, BREDR, LE } TransportType;
|
17
|
+
std::vector<std::string> UUIDs = {};
|
18
|
+
std::optional<int16_t> RSSI;
|
19
|
+
std::optional<uint16_t> Pathloss;
|
20
|
+
TransportType Transport = TransportType::AUTO;
|
21
|
+
bool DuplicateData = true;
|
22
|
+
bool Discoverable = false;
|
23
|
+
std::string Pattern = "";
|
24
|
+
};
|
25
|
+
|
26
|
+
// ----- CONSTRUCTORS -----
|
27
|
+
Adapter1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
28
|
+
virtual ~Adapter1() = default;
|
29
|
+
|
30
|
+
// ----- METHODS -----
|
31
|
+
void RemoveDevice(std::string device_path);
|
32
|
+
void StartDiscovery();
|
33
|
+
void StopDiscovery();
|
34
|
+
void SetDiscoveryFilter(DiscoveryFilter filter);
|
35
|
+
SimpleDBus::Holder GetDiscoveryFilters();
|
36
|
+
|
37
|
+
// ----- PROPERTIES -----
|
38
|
+
bool Discovering(bool refresh = true);
|
39
|
+
bool Powered(bool refresh = true);
|
40
|
+
std::string Address();
|
41
|
+
|
42
|
+
protected:
|
43
|
+
void property_changed(std::string option_name) override;
|
44
|
+
|
45
|
+
private:
|
46
|
+
static const SimpleDBus::AutoRegisterInterface<Adapter1> registry;
|
47
|
+
};
|
48
|
+
|
49
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,100 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
|
6
|
+
#include "kvn/kvn_safe_callback.hpp"
|
7
|
+
|
8
|
+
#include <cstdint>
|
9
|
+
#include <string>
|
10
|
+
|
11
|
+
namespace SimpleBluez {
|
12
|
+
|
13
|
+
class Agent1 : public SimpleDBus::Interface {
|
14
|
+
public:
|
15
|
+
Agent1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
16
|
+
virtual ~Agent1() = default;
|
17
|
+
|
18
|
+
// ----- METHODS -----
|
19
|
+
|
20
|
+
// ----- PROPERTIES -----
|
21
|
+
|
22
|
+
// ----- CALLBACKS -----
|
23
|
+
|
24
|
+
/**
|
25
|
+
* @brief This method gets called when the service daemon
|
26
|
+
* needs to get the passkey for an authentication.
|
27
|
+
* The return value should be a string of 1-16 characters
|
28
|
+
* length. The string can be alphanumeric.
|
29
|
+
*
|
30
|
+
* @note: Invalid values will cause a rejection of the request
|
31
|
+
* be returned.
|
32
|
+
*/
|
33
|
+
kvn::safe_callback<std::string()> OnRequestPinCode;
|
34
|
+
|
35
|
+
/**
|
36
|
+
* @brief This method gets called when the service daemon
|
37
|
+
* needs to display a pincode for an authentication.
|
38
|
+
* Note that the PIN will always be a 6-digit number,
|
39
|
+
* zero-padded to 6 digits.
|
40
|
+
*
|
41
|
+
* @return false if the request should be rejected.
|
42
|
+
*/
|
43
|
+
kvn::safe_callback<bool(const std::string&)> OnDisplayPinCode;
|
44
|
+
|
45
|
+
/**
|
46
|
+
* @brief This method gets called when the service daemon
|
47
|
+
* needs to get the passkey for an authentication.
|
48
|
+
* The return value should be a numeric value
|
49
|
+
* between 0 and 999999.
|
50
|
+
*
|
51
|
+
* @note: Invalid values will cause a rejection of the request
|
52
|
+
* be returned.
|
53
|
+
*/
|
54
|
+
kvn::safe_callback<int32_t()> OnRequestPasskey;
|
55
|
+
|
56
|
+
/**
|
57
|
+
* @brief This method gets called when the service daemon
|
58
|
+
* needs to display a passkey for an authentication.
|
59
|
+
* The entered parameter indicates the number of already
|
60
|
+
* typed keys on the remote side.
|
61
|
+
*/
|
62
|
+
kvn::safe_callback<void(uint32_t, uint16_t)> OnDisplayPasskey;
|
63
|
+
|
64
|
+
/**
|
65
|
+
* @brief This method gets called when the service daemon
|
66
|
+
* needs to confirm a passkey for an authentication.
|
67
|
+
*
|
68
|
+
* @return false if the request should be rejected.
|
69
|
+
*/
|
70
|
+
kvn::safe_callback<bool(uint32_t)> OnRequestConfirmation;
|
71
|
+
|
72
|
+
/**
|
73
|
+
* @brief This method gets called to request the user to
|
74
|
+
* authorize an incoming pairing attempt which
|
75
|
+
* would in other circumstances trigger the just-works
|
76
|
+
* model, or when the user plugged in a device that
|
77
|
+
* implements cable pairing.
|
78
|
+
*
|
79
|
+
* @return false if the request should be rejected.
|
80
|
+
*/
|
81
|
+
kvn::safe_callback<bool()> OnRequestAuthorization;
|
82
|
+
|
83
|
+
/**
|
84
|
+
* @brief This method gets called when the service daemon
|
85
|
+
* needs to authorize a connection/service request.
|
86
|
+
*
|
87
|
+
* @return false if the request should be rejected.
|
88
|
+
*/
|
89
|
+
kvn::safe_callback<bool(const std::string&)> OnAuthorizeService;
|
90
|
+
|
91
|
+
protected:
|
92
|
+
void message_handle(SimpleDBus::Message& msg) override;
|
93
|
+
|
94
|
+
void reply_error(SimpleDBus::Message& msg, const std::string& error_name, const std::string& error_message);
|
95
|
+
|
96
|
+
private:
|
97
|
+
static const SimpleDBus::AutoRegisterInterface<Agent1> registry;
|
98
|
+
};
|
99
|
+
|
100
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
|
6
|
+
#include <string>
|
7
|
+
|
8
|
+
namespace SimpleBluez {
|
9
|
+
|
10
|
+
class AgentManager1 : public SimpleDBus::Interface {
|
11
|
+
public:
|
12
|
+
AgentManager1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
13
|
+
virtual ~AgentManager1() = default;
|
14
|
+
|
15
|
+
// ----- METHODS -----
|
16
|
+
void RegisterAgent(std::string agent, std::string capability);
|
17
|
+
void RequestDefaultAgent(std::string agent);
|
18
|
+
void UnregisterAgent(std::string agent);
|
19
|
+
|
20
|
+
private:
|
21
|
+
static const SimpleDBus::AutoRegisterInterface<AgentManager1> registry;
|
22
|
+
};
|
23
|
+
|
24
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
|
6
|
+
#include "kvn/kvn_safe_callback.hpp"
|
7
|
+
|
8
|
+
#include <string>
|
9
|
+
|
10
|
+
namespace SimpleBluez {
|
11
|
+
|
12
|
+
class Battery1 : public SimpleDBus::Interface {
|
13
|
+
public:
|
14
|
+
Battery1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
15
|
+
virtual ~Battery1();
|
16
|
+
|
17
|
+
// ----- METHODS -----
|
18
|
+
|
19
|
+
// ----- PROPERTIES -----
|
20
|
+
uint8_t Percentage();
|
21
|
+
|
22
|
+
// ----- CALLBACKS -----
|
23
|
+
kvn::safe_callback<void()> OnPercentageChanged;
|
24
|
+
|
25
|
+
protected:
|
26
|
+
void property_changed(std::string option_name) override;
|
27
|
+
|
28
|
+
private:
|
29
|
+
static const SimpleDBus::AutoRegisterInterface<Battery1> registry;
|
30
|
+
};
|
31
|
+
|
32
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
|
6
|
+
#include "kvn/kvn_safe_callback.hpp"
|
7
|
+
|
8
|
+
#include <string>
|
9
|
+
|
10
|
+
#include "simplebluez/Types.h"
|
11
|
+
|
12
|
+
namespace SimpleBluez {
|
13
|
+
|
14
|
+
class Device1 : public SimpleDBus::Interface {
|
15
|
+
public:
|
16
|
+
Device1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
17
|
+
virtual ~Device1();
|
18
|
+
|
19
|
+
// ----- METHODS -----
|
20
|
+
void Connect();
|
21
|
+
void Disconnect();
|
22
|
+
void Pair();
|
23
|
+
void CancelPairing();
|
24
|
+
|
25
|
+
// ----- PROPERTIES -----
|
26
|
+
int16_t RSSI();
|
27
|
+
int16_t TxPower();
|
28
|
+
uint16_t Appearance(); // On Bluez 5.53, this always returns 0.
|
29
|
+
std::string Address();
|
30
|
+
std::string AddressType();
|
31
|
+
std::string Alias();
|
32
|
+
std::string Name();
|
33
|
+
std::vector<std::string> UUIDs();
|
34
|
+
std::map<uint16_t, ByteArray> ManufacturerData(bool refresh = true);
|
35
|
+
std::map<std::string, ByteArray> ServiceData(bool refresh = true);
|
36
|
+
bool Paired(bool refresh = true);
|
37
|
+
bool Connected(bool refresh = true);
|
38
|
+
bool ServicesResolved(bool refresh = true);
|
39
|
+
|
40
|
+
// ----- CALLBACKS -----
|
41
|
+
kvn::safe_callback<void()> OnServicesResolved;
|
42
|
+
kvn::safe_callback<void()> OnDisconnected;
|
43
|
+
|
44
|
+
protected:
|
45
|
+
void property_changed(std::string option_name) override;
|
46
|
+
|
47
|
+
int16_t _rssi = INT16_MIN;
|
48
|
+
int16_t _tx_power = INT16_MIN;
|
49
|
+
std::string _name;
|
50
|
+
std::string _alias;
|
51
|
+
std::string _address;
|
52
|
+
std::string _address_type;
|
53
|
+
bool _connected;
|
54
|
+
bool _services_resolved;
|
55
|
+
std::map<uint16_t, ByteArray> _manufacturer_data;
|
56
|
+
std::map<std::string, ByteArray> _service_data;
|
57
|
+
|
58
|
+
private:
|
59
|
+
static const SimpleDBus::AutoRegisterInterface<Device1> registry;
|
60
|
+
};
|
61
|
+
|
62
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
|
6
|
+
#include "kvn/kvn_safe_callback.hpp"
|
7
|
+
|
8
|
+
#include <simplebluez/Types.h>
|
9
|
+
|
10
|
+
#include <string>
|
11
|
+
|
12
|
+
namespace SimpleBluez {
|
13
|
+
|
14
|
+
class GattCharacteristic1 : public SimpleDBus::Interface {
|
15
|
+
public:
|
16
|
+
typedef enum { REQUEST = 0, COMMAND } WriteType;
|
17
|
+
|
18
|
+
GattCharacteristic1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
19
|
+
virtual ~GattCharacteristic1();
|
20
|
+
|
21
|
+
// ----- METHODS -----
|
22
|
+
void StartNotify();
|
23
|
+
void StopNotify();
|
24
|
+
void WriteValue(const ByteArray& value, WriteType type);
|
25
|
+
ByteArray ReadValue();
|
26
|
+
|
27
|
+
// ----- PROPERTIES -----
|
28
|
+
std::string UUID();
|
29
|
+
ByteArray Value();
|
30
|
+
bool Notifying(bool refresh = true);
|
31
|
+
std::vector<std::string> Flags();
|
32
|
+
uint16_t MTU();
|
33
|
+
|
34
|
+
// ----- CALLBACKS -----
|
35
|
+
kvn::safe_callback<void()> OnValueChanged;
|
36
|
+
|
37
|
+
protected:
|
38
|
+
void property_changed(std::string option_name) override;
|
39
|
+
void update_value(SimpleDBus::Holder& new_value);
|
40
|
+
|
41
|
+
std::string _uuid;
|
42
|
+
ByteArray _value;
|
43
|
+
|
44
|
+
private:
|
45
|
+
static const SimpleDBus::AutoRegisterInterface<GattCharacteristic1> registry;
|
46
|
+
};
|
47
|
+
|
48
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
|
6
|
+
#include "kvn/kvn_safe_callback.hpp"
|
7
|
+
|
8
|
+
#include <simplebluez/Types.h>
|
9
|
+
|
10
|
+
#include <string>
|
11
|
+
|
12
|
+
namespace SimpleBluez {
|
13
|
+
|
14
|
+
class GattDescriptor1 : public SimpleDBus::Interface {
|
15
|
+
public:
|
16
|
+
GattDescriptor1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
17
|
+
virtual ~GattDescriptor1();
|
18
|
+
|
19
|
+
// ----- METHODS -----
|
20
|
+
void WriteValue(const ByteArray& value);
|
21
|
+
ByteArray ReadValue();
|
22
|
+
|
23
|
+
// ----- PROPERTIES -----
|
24
|
+
std::string UUID();
|
25
|
+
ByteArray Value();
|
26
|
+
|
27
|
+
// ----- CALLBACKS -----
|
28
|
+
kvn::safe_callback<void()> OnValueChanged;
|
29
|
+
|
30
|
+
protected:
|
31
|
+
void property_changed(std::string option_name) override;
|
32
|
+
void update_value(SimpleDBus::Holder& new_value);
|
33
|
+
|
34
|
+
std::string _uuid;
|
35
|
+
ByteArray _value;
|
36
|
+
|
37
|
+
private:
|
38
|
+
static const SimpleDBus::AutoRegisterInterface<GattDescriptor1> registry;
|
39
|
+
};
|
40
|
+
|
41
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Interface.h>
|
4
|
+
#include <simpledbus/advanced/InterfaceRegistry.h>
|
5
|
+
#include <string>
|
6
|
+
|
7
|
+
namespace SimpleBluez {
|
8
|
+
|
9
|
+
class GattService1 : public SimpleDBus::Interface {
|
10
|
+
public:
|
11
|
+
GattService1(std::shared_ptr<SimpleDBus::Connection> conn, std::string path);
|
12
|
+
virtual ~GattService1() = default;
|
13
|
+
|
14
|
+
// ----- METHODS -----
|
15
|
+
|
16
|
+
// ----- PROPERTIES -----
|
17
|
+
std::string UUID();
|
18
|
+
|
19
|
+
protected:
|
20
|
+
void property_changed(std::string option_name) override;
|
21
|
+
|
22
|
+
std::string _uuid;
|
23
|
+
|
24
|
+
private:
|
25
|
+
static const SimpleDBus::AutoRegisterInterface<GattService1> registry;
|
26
|
+
};
|
27
|
+
|
28
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#include <simplebluez/Adapter.h>
|
2
|
+
#include <simplebluez/Device.h>
|
3
|
+
|
4
|
+
#include <simplebluez/interfaces/Adapter1.h>
|
5
|
+
|
6
|
+
using namespace SimpleBluez;
|
7
|
+
|
8
|
+
Adapter::Adapter(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path)
|
9
|
+
: Proxy(conn, bus_name, path) {}
|
10
|
+
|
11
|
+
Adapter::~Adapter() {}
|
12
|
+
|
13
|
+
std::shared_ptr<SimpleDBus::Proxy> Adapter::path_create(const std::string& path) {
|
14
|
+
auto child = std::make_shared<Device>(_conn, _bus_name, path);
|
15
|
+
child->on_signal_received.load([this, child]() { _on_device_updated(child); });
|
16
|
+
return std::static_pointer_cast<SimpleDBus::Proxy>(child);
|
17
|
+
}
|
18
|
+
|
19
|
+
std::shared_ptr<Adapter1> Adapter::adapter1() {
|
20
|
+
return std::dynamic_pointer_cast<Adapter1>(interface_get("org.bluez.Adapter1"));
|
21
|
+
}
|
22
|
+
|
23
|
+
std::string Adapter::identifier() const {
|
24
|
+
std::size_t start = _path.find_last_of("/");
|
25
|
+
return _path.substr(start + 1);
|
26
|
+
}
|
27
|
+
|
28
|
+
std::string Adapter::address() { return adapter1()->Address(); }
|
29
|
+
|
30
|
+
bool Adapter::discovering() { return adapter1()->Discovering(); }
|
31
|
+
|
32
|
+
bool Adapter::powered() { return adapter1()->Powered(); }
|
33
|
+
|
34
|
+
void Adapter::discovery_filter(const DiscoveryFilter& filter) { adapter1()->SetDiscoveryFilter(filter); }
|
35
|
+
|
36
|
+
void Adapter::discovery_start() { adapter1()->StartDiscovery(); }
|
37
|
+
|
38
|
+
void Adapter::discovery_stop() { adapter1()->StopDiscovery(); }
|
39
|
+
|
40
|
+
std::shared_ptr<Device> Adapter::device_get(const std::string& path) {
|
41
|
+
return std::dynamic_pointer_cast<Device>(path_get(path));
|
42
|
+
}
|
43
|
+
|
44
|
+
void Adapter::device_remove(const std::string& path) { adapter1()->RemoveDevice(path); }
|
45
|
+
|
46
|
+
void Adapter::device_remove(const std::shared_ptr<Device>& device) { adapter1()->RemoveDevice(device->path()); }
|
47
|
+
|
48
|
+
std::vector<std::shared_ptr<Device>> Adapter::device_paired_get() {
|
49
|
+
// Traverse all child paths and return only those that are paired.
|
50
|
+
std::vector<std::shared_ptr<Device>> paired_devices;
|
51
|
+
|
52
|
+
for (auto& [path, child] : _children) {
|
53
|
+
if (!child->valid()) continue;
|
54
|
+
|
55
|
+
std::shared_ptr<Device> device = std::dynamic_pointer_cast<Device>(child);
|
56
|
+
if (device->paired()) {
|
57
|
+
paired_devices.push_back(device);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
return paired_devices;
|
62
|
+
}
|
63
|
+
|
64
|
+
void Adapter::set_on_device_updated(std::function<void(std::shared_ptr<Device> device)> callback) {
|
65
|
+
_on_device_updated.load(callback);
|
66
|
+
|
67
|
+
on_child_created.load([this, callback](std::string child_path) {
|
68
|
+
auto device = device_get(child_path);
|
69
|
+
if (device) {
|
70
|
+
_on_device_updated(device);
|
71
|
+
}
|
72
|
+
});
|
73
|
+
}
|
74
|
+
|
75
|
+
void Adapter::clear_on_device_updated() {
|
76
|
+
_on_device_updated.unload();
|
77
|
+
on_child_created.unload();
|
78
|
+
}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#include <simplebluez/Agent.h>
|
2
|
+
|
3
|
+
#include <iostream>
|
4
|
+
|
5
|
+
using namespace SimpleBluez;
|
6
|
+
|
7
|
+
Agent::Agent(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path)
|
8
|
+
: Proxy(conn, bus_name, path) {
|
9
|
+
_interfaces.emplace(std::make_pair(
|
10
|
+
"org.bluez.Agent1", std::static_pointer_cast<SimpleDBus::Interface>(std::make_shared<Agent1>(_conn, _path))));
|
11
|
+
}
|
12
|
+
|
13
|
+
std::string Agent::capabilities() const {
|
14
|
+
switch (_capabilities) {
|
15
|
+
case DisplayOnly:
|
16
|
+
return "DisplayOnly";
|
17
|
+
case DisplayYesNo:
|
18
|
+
return "DisplayYesNo";
|
19
|
+
case KeyboardOnly:
|
20
|
+
return "KeyboardOnly";
|
21
|
+
case NoInputNoOutput:
|
22
|
+
return "NoInputNoOutput";
|
23
|
+
case KeyboardDisplay:
|
24
|
+
return "KeyboardDisplay";
|
25
|
+
default:
|
26
|
+
return "";
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
void Agent::set_capabilities(Agent::Capabilities capabilities) { _capabilities = capabilities; }
|
31
|
+
|
32
|
+
void Agent::set_on_request_pin_code(std::function<std::string()> callback) {
|
33
|
+
agent1()->OnRequestPinCode.load(callback);
|
34
|
+
}
|
35
|
+
|
36
|
+
void Agent::clear_on_request_pin_code() { agent1()->OnRequestPinCode.unload(); }
|
37
|
+
|
38
|
+
void Agent::set_on_display_pin_code(std::function<bool(const std::string&)> callback) {
|
39
|
+
agent1()->OnDisplayPinCode.load(callback);
|
40
|
+
}
|
41
|
+
|
42
|
+
void Agent::clear_on_display_pin_code() { agent1()->OnDisplayPinCode.unload(); }
|
43
|
+
|
44
|
+
void Agent::set_on_request_passkey(std::function<uint32_t()> callback) { agent1()->OnRequestPasskey.load(callback); }
|
45
|
+
|
46
|
+
void Agent::clear_on_request_passkey() { agent1()->OnRequestPasskey.unload(); }
|
47
|
+
|
48
|
+
void Agent::set_on_display_passkey(std::function<void(uint32_t, uint16_t)> callback) {
|
49
|
+
agent1()->OnDisplayPasskey.load(callback);
|
50
|
+
}
|
51
|
+
|
52
|
+
void Agent::clear_on_display_passkey() { agent1()->OnDisplayPasskey.unload(); }
|
53
|
+
|
54
|
+
void Agent::set_on_request_confirmation(std::function<bool(uint32_t)> callback) {
|
55
|
+
agent1()->OnRequestConfirmation.load(callback);
|
56
|
+
}
|
57
|
+
|
58
|
+
void Agent::clear_on_request_confirmation() { agent1()->OnRequestConfirmation.unload(); }
|
59
|
+
|
60
|
+
void Agent::set_on_request_authorization(std::function<bool()> callback) {
|
61
|
+
agent1()->OnRequestAuthorization.load(callback);
|
62
|
+
}
|
63
|
+
|
64
|
+
void Agent::clear_on_request_authorization() { agent1()->OnRequestAuthorization.unload(); }
|
65
|
+
|
66
|
+
void Agent::set_on_authorize_service(std::function<bool(const std::string&)> callback) {
|
67
|
+
agent1()->OnAuthorizeService.load(callback);
|
68
|
+
}
|
69
|
+
|
70
|
+
void Agent::clear_on_authorize_service() { agent1()->OnAuthorizeService.unload(); }
|
71
|
+
|
72
|
+
std::shared_ptr<Agent1> Agent::agent1() { return std::dynamic_pointer_cast<Agent1>(interface_get("org.bluez.Agent1")); }
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#include <simplebluez/Bluez.h>
|
2
|
+
#include <simpledbus/interfaces/ObjectManager.h>
|
3
|
+
|
4
|
+
using namespace SimpleBluez;
|
5
|
+
|
6
|
+
#ifdef SIMPLEBLUEZ_USE_SESSION_DBUS
|
7
|
+
#define DBUS_BUS DBUS_BUS_SESSION
|
8
|
+
#else
|
9
|
+
#define DBUS_BUS DBUS_BUS_SYSTEM
|
10
|
+
#endif
|
11
|
+
|
12
|
+
Bluez::Bluez() : _conn(std::make_shared<SimpleDBus::Connection>(DBUS_BUS)) {}
|
13
|
+
|
14
|
+
Bluez::~Bluez() {
|
15
|
+
if (_conn->is_initialized()) {
|
16
|
+
_conn->remove_match("type='signal',sender='org.bluez'");
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
void Bluez::init() {
|
21
|
+
_conn->init();
|
22
|
+
_conn->add_match("type='signal',sender='org.bluez'");
|
23
|
+
|
24
|
+
_bluez_root = std::make_shared<BluezRoot>(_conn, "org.bluez", "/");
|
25
|
+
_bluez_root->load_managed_objects();
|
26
|
+
}
|
27
|
+
|
28
|
+
void Bluez::run_async() {
|
29
|
+
// TODO: UNCOMMENT THIS WHEN MIGRATING TO NEW PROXY FORWARDING LOGIC
|
30
|
+
//_conn->read_write_dispatch();
|
31
|
+
|
32
|
+
// BELOW IS THE LEGACY LOGIC
|
33
|
+
_conn->read_write();
|
34
|
+
SimpleDBus::Message message = _conn->pop_message();
|
35
|
+
while (message.is_valid()) {
|
36
|
+
_bluez_root->message_forward(message);
|
37
|
+
message = _conn->pop_message();
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
std::vector<std::shared_ptr<Adapter>> Bluez::get_adapters() { return _bluez_root->get_adapters(); }
|
42
|
+
|
43
|
+
std::shared_ptr<Agent> Bluez::get_agent() { return _bluez_root->get_agent(); }
|
44
|
+
|
45
|
+
void Bluez::register_agent() { _bluez_root->register_agent(); }
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#include <simplebluez/BluezOrg.h>
|
2
|
+
#include <simplebluez/BluezOrgBluez.h>
|
3
|
+
|
4
|
+
using namespace SimpleBluez;
|
5
|
+
|
6
|
+
BluezOrg::BluezOrg(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path)
|
7
|
+
: Proxy(conn, bus_name, path) {}
|
8
|
+
|
9
|
+
std::vector<std::shared_ptr<Adapter>> BluezOrg::get_adapters() {
|
10
|
+
return std::dynamic_pointer_cast<BluezOrgBluez>(path_get("/org/bluez"))->get_adapters();
|
11
|
+
}
|
12
|
+
|
13
|
+
void BluezOrg::register_agent(std::shared_ptr<Agent> agent) {
|
14
|
+
std::dynamic_pointer_cast<BluezOrgBluez>(path_get("/org/bluez"))->register_agent(agent);
|
15
|
+
}
|
16
|
+
|
17
|
+
std::shared_ptr<SimpleDBus::Proxy> BluezOrg::path_create(const std::string& path) {
|
18
|
+
auto child = std::make_shared<BluezOrgBluez>(_conn, _bus_name, path);
|
19
|
+
return std::static_pointer_cast<SimpleDBus::Proxy>(child);
|
20
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#include <simplebluez/Adapter.h>
|
2
|
+
#include <simplebluez/BluezOrgBluez.h>
|
3
|
+
|
4
|
+
using namespace SimpleBluez;
|
5
|
+
|
6
|
+
BluezOrgBluez::BluezOrgBluez(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name,
|
7
|
+
const std::string& path)
|
8
|
+
: Proxy(conn, bus_name, path) {}
|
9
|
+
|
10
|
+
std::shared_ptr<SimpleDBus::Proxy> BluezOrgBluez::path_create(const std::string& path) {
|
11
|
+
auto child = std::make_shared<Adapter>(_conn, _bus_name, path);
|
12
|
+
return std::static_pointer_cast<SimpleDBus::Proxy>(child);
|
13
|
+
}
|
14
|
+
|
15
|
+
std::shared_ptr<AgentManager1> BluezOrgBluez::agentmanager1() {
|
16
|
+
return std::dynamic_pointer_cast<AgentManager1>(interface_get("org.bluez.AgentManager1"));
|
17
|
+
}
|
18
|
+
|
19
|
+
void BluezOrgBluez::register_agent(std::shared_ptr<Agent> agent) {
|
20
|
+
agentmanager1()->RegisterAgent(agent->path(), agent->capabilities());
|
21
|
+
}
|
22
|
+
|
23
|
+
std::vector<std::shared_ptr<Adapter>> BluezOrgBluez::get_adapters() { return children_casted<Adapter>(); }
|