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,246 @@
|
|
1
|
+
#include <gtest/gtest.h>
|
2
|
+
#include "kvn/kvn_bytearray.h"
|
3
|
+
|
4
|
+
using namespace kvn;
|
5
|
+
|
6
|
+
TEST(ByteArrayTest, DefaultConstructor) {
|
7
|
+
bytearray byteArray;
|
8
|
+
EXPECT_EQ(byteArray.size(), 0);
|
9
|
+
}
|
10
|
+
|
11
|
+
TEST(ByteArrayTest, VectorConstructor) {
|
12
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4};
|
13
|
+
bytearray byteArray(vec);
|
14
|
+
EXPECT_EQ(byteArray.size(), 4);
|
15
|
+
EXPECT_EQ(byteArray[0], 1);
|
16
|
+
EXPECT_EQ(byteArray[1], 2);
|
17
|
+
EXPECT_EQ(byteArray[2], 3);
|
18
|
+
EXPECT_EQ(byteArray[3], 4);
|
19
|
+
}
|
20
|
+
|
21
|
+
TEST(ByteArrayTest, PointerConstructor) {
|
22
|
+
uint8_t data[] = {1, 2, 3, 4};
|
23
|
+
bytearray byteArray(data, 4);
|
24
|
+
EXPECT_EQ(byteArray.size(), 4);
|
25
|
+
EXPECT_EQ(byteArray[0], 1);
|
26
|
+
EXPECT_EQ(byteArray[1], 2);
|
27
|
+
EXPECT_EQ(byteArray[2], 3);
|
28
|
+
EXPECT_EQ(byteArray[3], 4);
|
29
|
+
}
|
30
|
+
|
31
|
+
TEST(ByteArrayTest, StringConstructor) {
|
32
|
+
std::string str = "Hello";
|
33
|
+
bytearray byteArray(str);
|
34
|
+
EXPECT_EQ(byteArray.size(), 5);
|
35
|
+
EXPECT_EQ(byteArray[0], 'H');
|
36
|
+
EXPECT_EQ(byteArray[1], 'e');
|
37
|
+
EXPECT_EQ(byteArray[2], 'l');
|
38
|
+
EXPECT_EQ(byteArray[3], 'l');
|
39
|
+
EXPECT_EQ(byteArray[4], 'o');
|
40
|
+
}
|
41
|
+
|
42
|
+
TEST(ByteArrayTest, CharArrayConstructor) {
|
43
|
+
const char str[] = {'H', 'e', 'l', 'l', 'o'};
|
44
|
+
bytearray byteArray(str, 5);
|
45
|
+
EXPECT_EQ(byteArray.size(), 5);
|
46
|
+
EXPECT_EQ(byteArray[0], 'H');
|
47
|
+
EXPECT_EQ(byteArray[1], 'e');
|
48
|
+
EXPECT_EQ(byteArray[2], 'l');
|
49
|
+
EXPECT_EQ(byteArray[3], 'l');
|
50
|
+
EXPECT_EQ(byteArray[4], 'o');
|
51
|
+
}
|
52
|
+
|
53
|
+
TEST(ByteArrayTest, CStringConstructor) {
|
54
|
+
const char* str = "Hello";
|
55
|
+
bytearray byteArray(str);
|
56
|
+
EXPECT_EQ(byteArray.size(), 5);
|
57
|
+
EXPECT_EQ(byteArray[0], 'H');
|
58
|
+
EXPECT_EQ(byteArray[1], 'e');
|
59
|
+
EXPECT_EQ(byteArray[2], 'l');
|
60
|
+
EXPECT_EQ(byteArray[3], 'l');
|
61
|
+
EXPECT_EQ(byteArray[4], 'o');
|
62
|
+
}
|
63
|
+
|
64
|
+
TEST(ByteArrayTest, FromHexValid) {
|
65
|
+
bytearray byteArray = bytearray::fromHex("48656c6C6f");
|
66
|
+
EXPECT_EQ(byteArray.size(), 5);
|
67
|
+
EXPECT_EQ(byteArray[0], 'H');
|
68
|
+
EXPECT_EQ(byteArray[1], 'e');
|
69
|
+
EXPECT_EQ(byteArray[2], 'l');
|
70
|
+
EXPECT_EQ(byteArray[3], 'l');
|
71
|
+
EXPECT_EQ(byteArray[4], 'o');
|
72
|
+
}
|
73
|
+
|
74
|
+
TEST(ByteArrayTest, FromHexValidWithPrefix) {
|
75
|
+
bytearray byteArray = bytearray::fromHex("0x48656c6C6f");
|
76
|
+
EXPECT_EQ(byteArray.size(), 5);
|
77
|
+
EXPECT_EQ(byteArray[0], 'H');
|
78
|
+
EXPECT_EQ(byteArray[1], 'e');
|
79
|
+
EXPECT_EQ(byteArray[2], 'l');
|
80
|
+
EXPECT_EQ(byteArray[3], 'l');
|
81
|
+
EXPECT_EQ(byteArray[4], 'o');
|
82
|
+
}
|
83
|
+
|
84
|
+
TEST(ByteArrayTest, FromHexInvalid) {
|
85
|
+
EXPECT_THROW(bytearray::fromHex("123"), std::length_error);
|
86
|
+
EXPECT_THROW(bytearray::fromHex("G123"), std::invalid_argument);
|
87
|
+
}
|
88
|
+
|
89
|
+
TEST(ByteArrayTest, ToHex) {
|
90
|
+
bytearray byteArray("Hello");
|
91
|
+
EXPECT_EQ(byteArray.toHex(), "48656c6c6f");
|
92
|
+
EXPECT_EQ(byteArray.toHex(true), "48 65 6c 6c 6f ");
|
93
|
+
}
|
94
|
+
|
95
|
+
TEST(ByteArrayTest, StingConversion) {
|
96
|
+
bytearray byteArray = bytearray::fromHex("48656c6C6f");
|
97
|
+
std::string str = static_cast<std::string>(byteArray);
|
98
|
+
EXPECT_EQ(str, "Hello");
|
99
|
+
}
|
100
|
+
|
101
|
+
TEST(ByteArrayTest, StreamOperator) {
|
102
|
+
bytearray byteArray("Hello");
|
103
|
+
std::ostringstream oss;
|
104
|
+
oss << byteArray;
|
105
|
+
EXPECT_EQ(oss.str(), "48 65 6c 6c 6f ");
|
106
|
+
}
|
107
|
+
|
108
|
+
TEST(ByteArrayTest, DefaultConstructor_Empty) {
|
109
|
+
bytearray byteArray;
|
110
|
+
EXPECT_TRUE(byteArray.empty());
|
111
|
+
}
|
112
|
+
|
113
|
+
TEST(ByteArrayTest, PushBackIncreasesSize) {
|
114
|
+
bytearray byteArray;
|
115
|
+
byteArray.push_back(0x01);
|
116
|
+
EXPECT_EQ(1, byteArray.size());
|
117
|
+
byteArray.push_back(0x02);
|
118
|
+
EXPECT_EQ(2, byteArray.size());
|
119
|
+
}
|
120
|
+
|
121
|
+
TEST(ByteArrayTest, ClearEmptiesArray) {
|
122
|
+
bytearray byteArray;
|
123
|
+
byteArray.push_back(0x01);
|
124
|
+
byteArray.push_back(0x02);
|
125
|
+
byteArray.clear();
|
126
|
+
EXPECT_TRUE(byteArray.empty());
|
127
|
+
}
|
128
|
+
|
129
|
+
TEST(ByteArrayTest, IndexOperatorAccessesCorrectElement) {
|
130
|
+
bytearray byteArray;
|
131
|
+
byteArray.push_back(0x01);
|
132
|
+
byteArray.push_back(0x02);
|
133
|
+
EXPECT_EQ(0x01, byteArray[0]);
|
134
|
+
EXPECT_EQ(0x02, byteArray[1]);
|
135
|
+
}
|
136
|
+
|
137
|
+
TEST(ByteArrayTest, DataPointerIsValid) {
|
138
|
+
bytearray byteArray;
|
139
|
+
byteArray.push_back(0x01);
|
140
|
+
byteArray.push_back(0x02);
|
141
|
+
const uint8_t* data_ptr = byteArray.data();
|
142
|
+
ASSERT_NE(nullptr, data_ptr);
|
143
|
+
EXPECT_EQ(0x01, data_ptr[0]);
|
144
|
+
EXPECT_EQ(0x02, data_ptr[1]);
|
145
|
+
}
|
146
|
+
|
147
|
+
TEST(ByteArrayTest, BeginEndIterators) {
|
148
|
+
bytearray byteArray;
|
149
|
+
byteArray.push_back(0x01);
|
150
|
+
byteArray.push_back(0x02);
|
151
|
+
auto it = byteArray.begin();
|
152
|
+
EXPECT_EQ(0x01, *it);
|
153
|
+
++it;
|
154
|
+
EXPECT_EQ(0x02, *it);
|
155
|
+
++it;
|
156
|
+
EXPECT_EQ(byteArray.end(), it);
|
157
|
+
}
|
158
|
+
|
159
|
+
TEST(ByteArrayTest, ConstIndexOperatorAccessesCorrectElement) {
|
160
|
+
bytearray byteArray;
|
161
|
+
byteArray.push_back(0x01);
|
162
|
+
byteArray.push_back(0x02);
|
163
|
+
const bytearray constByteArray = byteArray;
|
164
|
+
EXPECT_EQ(0x01, constByteArray[0]);
|
165
|
+
EXPECT_EQ(0x02, constByteArray[1]);
|
166
|
+
}
|
167
|
+
|
168
|
+
TEST(ByteArrayTest, SliceValidRange) {
|
169
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
170
|
+
bytearray byteArray(vec);
|
171
|
+
bytearray slicedArray = byteArray.slice(1, 3);
|
172
|
+
|
173
|
+
ASSERT_EQ(slicedArray.size(), 2);
|
174
|
+
EXPECT_EQ(slicedArray[0], 0x02);
|
175
|
+
EXPECT_EQ(slicedArray[1], 0x03);
|
176
|
+
}
|
177
|
+
|
178
|
+
TEST(ByteArrayTest, SliceFullRange) {
|
179
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
180
|
+
bytearray byteArray(vec);
|
181
|
+
bytearray slicedArray = byteArray.slice(0, byteArray.size());
|
182
|
+
|
183
|
+
ASSERT_EQ(slicedArray.size(), byteArray.size());
|
184
|
+
EXPECT_EQ(slicedArray[0], 0x01);
|
185
|
+
EXPECT_EQ(slicedArray[4], 0x05);
|
186
|
+
}
|
187
|
+
|
188
|
+
TEST(ByteArrayTest, SliceSingleElement) {
|
189
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
190
|
+
bytearray byteArray(vec);
|
191
|
+
bytearray slicedArray = byteArray.slice(2, 3);
|
192
|
+
|
193
|
+
ASSERT_EQ(slicedArray.size(), 1);
|
194
|
+
EXPECT_EQ(slicedArray[0], 0x03);
|
195
|
+
}
|
196
|
+
|
197
|
+
TEST(ByteArrayTest, SliceOutOfRange) {
|
198
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
199
|
+
bytearray byteArray(vec);
|
200
|
+
|
201
|
+
EXPECT_THROW(byteArray.slice(1, 6), std::out_of_range);
|
202
|
+
EXPECT_THROW(byteArray.slice(6, 7), std::out_of_range);
|
203
|
+
}
|
204
|
+
|
205
|
+
TEST(ByteArrayTest, SliceInvalidRange) {
|
206
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
207
|
+
bytearray byteArray(vec);
|
208
|
+
|
209
|
+
EXPECT_THROW(byteArray.slice(3, 2), std::out_of_range);
|
210
|
+
}
|
211
|
+
|
212
|
+
TEST(ByteArrayTest, SliceFromIndexToEnd) {
|
213
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
214
|
+
bytearray byteArray(vec);
|
215
|
+
bytearray slicedArray = byteArray.slice_from(2);
|
216
|
+
|
217
|
+
ASSERT_EQ(slicedArray.size(), 3);
|
218
|
+
EXPECT_EQ(slicedArray[0], 0x03);
|
219
|
+
EXPECT_EQ(slicedArray[1], 0x04);
|
220
|
+
EXPECT_EQ(slicedArray[2], 0x05);
|
221
|
+
}
|
222
|
+
|
223
|
+
TEST(ByteArrayTest, SliceFromBeginningToIndex) {
|
224
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
225
|
+
bytearray byteArray(vec);
|
226
|
+
bytearray slicedArray = byteArray.slice_to(3);
|
227
|
+
|
228
|
+
ASSERT_EQ(slicedArray.size(), 3);
|
229
|
+
EXPECT_EQ(slicedArray[0], 0x01);
|
230
|
+
EXPECT_EQ(slicedArray[1], 0x02);
|
231
|
+
EXPECT_EQ(slicedArray[2], 0x03);
|
232
|
+
}
|
233
|
+
|
234
|
+
TEST(ByteArrayTest, SliceFromIndexToEndOutOfRange) {
|
235
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
236
|
+
bytearray byteArray(vec);
|
237
|
+
|
238
|
+
EXPECT_THROW(byteArray.slice_from(6), std::out_of_range);
|
239
|
+
}
|
240
|
+
|
241
|
+
TEST(ByteArrayTest, SliceFromBeginningToIndexOutOfRange) {
|
242
|
+
std::vector<uint8_t> vec = {1, 2, 3, 4, 5};
|
243
|
+
bytearray byteArray(vec);
|
244
|
+
|
245
|
+
EXPECT_THROW(byteArray.slice_to(6), std::out_of_range);
|
246
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#include <gmock/gmock.h>
|
2
|
+
#include <gtest/gtest.h>
|
3
|
+
|
4
|
+
#include <iostream>
|
5
|
+
|
6
|
+
#include <simpleble/Utils.h>
|
7
|
+
|
8
|
+
TEST(Utils, GetOS) {
|
9
|
+
switch (SimpleBLE::get_operating_system()) {
|
10
|
+
case SimpleBLE::OperatingSystem::WINDOWS:
|
11
|
+
std::cout << "Windows" << std::endl;
|
12
|
+
break;
|
13
|
+
case SimpleBLE::OperatingSystem::LINUX:
|
14
|
+
std::cout << "Linux" << std::endl;
|
15
|
+
break;
|
16
|
+
case SimpleBLE::OperatingSystem::MACOS:
|
17
|
+
std::cout << "MacOS" << std::endl;
|
18
|
+
break;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
TEST(Utils, GetSimpleBLEVersion) {
|
23
|
+
std::cout << "SimpleBLE version: " << SimpleBLE::get_simpleble_version() << std::endl;
|
24
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
|
5
|
+
#include <simplebluez/Device.h>
|
6
|
+
#include <simplebluez/interfaces/Adapter1.h>
|
7
|
+
|
8
|
+
#include <kvn/kvn_safe_callback.hpp>
|
9
|
+
|
10
|
+
#include <functional>
|
11
|
+
|
12
|
+
namespace SimpleBluez {
|
13
|
+
|
14
|
+
class Adapter : public SimpleDBus::Proxy {
|
15
|
+
public:
|
16
|
+
typedef Adapter1::DiscoveryFilter DiscoveryFilter;
|
17
|
+
|
18
|
+
Adapter(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
19
|
+
virtual ~Adapter();
|
20
|
+
|
21
|
+
std::string identifier() const;
|
22
|
+
std::string address();
|
23
|
+
bool discovering();
|
24
|
+
bool powered();
|
25
|
+
|
26
|
+
void discovery_filter(const DiscoveryFilter& filter);
|
27
|
+
void discovery_start();
|
28
|
+
void discovery_stop();
|
29
|
+
|
30
|
+
std::shared_ptr<Device> device_get(const std::string& path);
|
31
|
+
void device_remove(const std::string& path);
|
32
|
+
void device_remove(const std::shared_ptr<Device>& device);
|
33
|
+
std::vector<std::shared_ptr<Device>> device_paired_get();
|
34
|
+
|
35
|
+
void set_on_device_updated(std::function<void(std::shared_ptr<Device> device)> callback);
|
36
|
+
void clear_on_device_updated();
|
37
|
+
|
38
|
+
private:
|
39
|
+
std::shared_ptr<SimpleDBus::Proxy> path_create(const std::string& path) override;
|
40
|
+
|
41
|
+
std::shared_ptr<Adapter1> adapter1();
|
42
|
+
|
43
|
+
kvn::safe_callback<void(std::shared_ptr<Device> device)> _on_device_updated;
|
44
|
+
};
|
45
|
+
|
46
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simplebluez/interfaces/Agent1.h>
|
4
|
+
#include <simpledbus/advanced/Proxy.h>
|
5
|
+
|
6
|
+
namespace SimpleBluez {
|
7
|
+
|
8
|
+
class Agent : public SimpleDBus::Proxy {
|
9
|
+
public:
|
10
|
+
typedef enum {
|
11
|
+
DisplayOnly,
|
12
|
+
DisplayYesNo,
|
13
|
+
KeyboardOnly,
|
14
|
+
NoInputNoOutput,
|
15
|
+
KeyboardDisplay,
|
16
|
+
} Capabilities;
|
17
|
+
|
18
|
+
Agent(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
19
|
+
virtual ~Agent() = default;
|
20
|
+
|
21
|
+
// ----- PROPERTIES -----
|
22
|
+
std::string capabilities() const;
|
23
|
+
void set_capabilities(Capabilities capabilities);
|
24
|
+
|
25
|
+
// ----- METHODS -----
|
26
|
+
void set_on_request_pin_code(std::function<std::string()> callback);
|
27
|
+
void clear_on_request_pin_code();
|
28
|
+
|
29
|
+
void set_on_display_pin_code(std::function<bool(const std::string&)> callback);
|
30
|
+
void clear_on_display_pin_code();
|
31
|
+
|
32
|
+
void set_on_request_passkey(std::function<uint32_t()> callback);
|
33
|
+
void clear_on_request_passkey();
|
34
|
+
|
35
|
+
void set_on_display_passkey(std::function<void(uint32_t, uint16_t)> callback);
|
36
|
+
void clear_on_display_passkey();
|
37
|
+
|
38
|
+
void set_on_request_confirmation(std::function<bool(uint32_t)> callback);
|
39
|
+
void clear_on_request_confirmation();
|
40
|
+
|
41
|
+
void set_on_request_authorization(std::function<bool()> callback);
|
42
|
+
void clear_on_request_authorization();
|
43
|
+
|
44
|
+
void set_on_authorize_service(std::function<bool(const std::string&)> callback);
|
45
|
+
void clear_on_authorize_service();
|
46
|
+
|
47
|
+
private:
|
48
|
+
std::shared_ptr<Agent1> agent1();
|
49
|
+
Capabilities _capabilities;
|
50
|
+
};
|
51
|
+
|
52
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
#include <simpledbus/interfaces/ObjectManager.h>
|
5
|
+
|
6
|
+
#include <simplebluez/BluezRoot.h>
|
7
|
+
#include <simplebluez/Adapter.h>
|
8
|
+
#include <simplebluez/Agent.h>
|
9
|
+
|
10
|
+
#include <vector>
|
11
|
+
|
12
|
+
namespace SimpleBluez {
|
13
|
+
|
14
|
+
class Bluez {
|
15
|
+
public:
|
16
|
+
Bluez();
|
17
|
+
virtual ~Bluez();
|
18
|
+
|
19
|
+
// Delete copy and move operations
|
20
|
+
Bluez(const Bluez&) = delete;
|
21
|
+
Bluez& operator=(const Bluez&) = delete;
|
22
|
+
Bluez(Bluez&&) = delete;
|
23
|
+
Bluez& operator=(Bluez&&) = delete;
|
24
|
+
|
25
|
+
void init();
|
26
|
+
void run_async();
|
27
|
+
|
28
|
+
std::vector<std::shared_ptr<Adapter>> get_adapters();
|
29
|
+
std::shared_ptr<Agent> get_agent();
|
30
|
+
void register_agent();
|
31
|
+
|
32
|
+
private:
|
33
|
+
std::shared_ptr<SimpleDBus::Connection> _conn;
|
34
|
+
std::shared_ptr<SimpleBluez::BluezRoot> _bluez_root;
|
35
|
+
};
|
36
|
+
|
37
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
|
5
|
+
#include <simplebluez/Adapter.h>
|
6
|
+
#include <simplebluez/Agent.h>
|
7
|
+
|
8
|
+
namespace SimpleBluez {
|
9
|
+
|
10
|
+
class BluezOrg : public SimpleDBus::Proxy {
|
11
|
+
public:
|
12
|
+
BluezOrg(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
13
|
+
virtual ~BluezOrg() = default;
|
14
|
+
|
15
|
+
std::vector<std::shared_ptr<Adapter>> get_adapters();
|
16
|
+
void register_agent(std::shared_ptr<Agent> agent);
|
17
|
+
|
18
|
+
private:
|
19
|
+
std::shared_ptr<SimpleDBus::Proxy> path_create(const std::string& path) override;
|
20
|
+
};
|
21
|
+
|
22
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
|
5
|
+
#include <simplebluez/Adapter.h>
|
6
|
+
#include <simplebluez/Agent.h>
|
7
|
+
|
8
|
+
#include <simplebluez/interfaces/AgentManager1.h>
|
9
|
+
|
10
|
+
namespace SimpleBluez {
|
11
|
+
|
12
|
+
class BluezOrgBluez : public SimpleDBus::Proxy {
|
13
|
+
public:
|
14
|
+
BluezOrgBluez(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
15
|
+
virtual ~BluezOrgBluez() = default;
|
16
|
+
|
17
|
+
void register_agent(std::shared_ptr<Agent> agent);
|
18
|
+
|
19
|
+
std::vector<std::shared_ptr<Adapter>> get_adapters();
|
20
|
+
|
21
|
+
private:
|
22
|
+
std::shared_ptr<SimpleDBus::Proxy> path_create(const std::string& path) override;
|
23
|
+
std::shared_ptr<AgentManager1> agentmanager1();
|
24
|
+
};
|
25
|
+
|
26
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
#include <simpledbus/interfaces/ObjectManager.h>
|
5
|
+
|
6
|
+
#include <simplebluez/Adapter.h>
|
7
|
+
#include <simplebluez/Agent.h>
|
8
|
+
|
9
|
+
#include <vector>
|
10
|
+
|
11
|
+
namespace SimpleBluez {
|
12
|
+
|
13
|
+
class BluezRoot : public SimpleDBus::Proxy {
|
14
|
+
public:
|
15
|
+
|
16
|
+
BluezRoot(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
17
|
+
virtual ~BluezRoot() = default;
|
18
|
+
|
19
|
+
void load_managed_objects();
|
20
|
+
|
21
|
+
std::vector<std::shared_ptr<Adapter>> get_adapters();
|
22
|
+
std::shared_ptr<Agent> get_agent();
|
23
|
+
void register_agent();
|
24
|
+
|
25
|
+
private:
|
26
|
+
std::shared_ptr<SimpleDBus::Proxy> path_create(const std::string& path) override;
|
27
|
+
std::shared_ptr<SimpleDBus::ObjectManager> object_manager();
|
28
|
+
|
29
|
+
std::shared_ptr<Agent> _agent;
|
30
|
+
};
|
31
|
+
|
32
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
|
5
|
+
#include <simplebluez/Descriptor.h>
|
6
|
+
#include <simplebluez/Types.h>
|
7
|
+
#include <simplebluez/interfaces/GattCharacteristic1.h>
|
8
|
+
|
9
|
+
#include <cstdlib>
|
10
|
+
|
11
|
+
namespace SimpleBluez {
|
12
|
+
|
13
|
+
class Characteristic : public SimpleDBus::Proxy {
|
14
|
+
public:
|
15
|
+
Characteristic(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
16
|
+
virtual ~Characteristic();
|
17
|
+
|
18
|
+
std::shared_ptr<Descriptor> get_descriptor(const std::string& uuid);
|
19
|
+
|
20
|
+
// ----- METHODS -----
|
21
|
+
ByteArray read();
|
22
|
+
void write_request(ByteArray value);
|
23
|
+
void write_command(ByteArray value);
|
24
|
+
void start_notify();
|
25
|
+
void stop_notify();
|
26
|
+
|
27
|
+
// ----- PROPERTIES -----
|
28
|
+
std::vector<std::shared_ptr<Descriptor>> descriptors();
|
29
|
+
|
30
|
+
std::string uuid();
|
31
|
+
ByteArray value();
|
32
|
+
bool notifying();
|
33
|
+
std::vector<std::string> flags();
|
34
|
+
uint16_t mtu();
|
35
|
+
|
36
|
+
// ----- CALLBACKS -----
|
37
|
+
void set_on_value_changed(std::function<void(ByteArray new_value)> callback);
|
38
|
+
void clear_on_value_changed();
|
39
|
+
|
40
|
+
private:
|
41
|
+
std::shared_ptr<SimpleDBus::Proxy> path_create(const std::string& path) override;
|
42
|
+
|
43
|
+
std::shared_ptr<GattCharacteristic1> gattcharacteristic1();
|
44
|
+
};
|
45
|
+
|
46
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
|
5
|
+
#include <simplebluez/Types.h>
|
6
|
+
#include <simplebluez/interfaces/GattDescriptor1.h>
|
7
|
+
|
8
|
+
#include <cstdlib>
|
9
|
+
|
10
|
+
namespace SimpleBluez {
|
11
|
+
|
12
|
+
class Descriptor : public SimpleDBus::Proxy {
|
13
|
+
public:
|
14
|
+
Descriptor(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
15
|
+
virtual ~Descriptor();
|
16
|
+
|
17
|
+
// ----- METHODS -----
|
18
|
+
ByteArray read();
|
19
|
+
void write(ByteArray value);
|
20
|
+
|
21
|
+
// ----- PROPERTIES -----
|
22
|
+
std::string uuid();
|
23
|
+
ByteArray value();
|
24
|
+
|
25
|
+
// ----- CALLBACKS -----
|
26
|
+
void set_on_value_changed(std::function<void(ByteArray new_value)> callback);
|
27
|
+
void clear_on_value_changed();
|
28
|
+
|
29
|
+
private:
|
30
|
+
std::shared_ptr<GattDescriptor1> gattdescriptor1();
|
31
|
+
};
|
32
|
+
|
33
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <simpledbus/advanced/Proxy.h>
|
4
|
+
|
5
|
+
#include <simplebluez/Characteristic.h>
|
6
|
+
#include <simplebluez/Service.h>
|
7
|
+
#include <simplebluez/interfaces/Battery1.h>
|
8
|
+
#include <simplebluez/interfaces/Device1.h>
|
9
|
+
|
10
|
+
namespace SimpleBluez {
|
11
|
+
|
12
|
+
class Device : public SimpleDBus::Proxy {
|
13
|
+
public:
|
14
|
+
Device(std::shared_ptr<SimpleDBus::Connection> conn, const std::string& bus_name, const std::string& path);
|
15
|
+
virtual ~Device();
|
16
|
+
|
17
|
+
std::shared_ptr<Service> get_service(const std::string& uuid);
|
18
|
+
std::shared_ptr<Characteristic> get_characteristic(const std::string& service_uuid,
|
19
|
+
const std::string& characteristic_uuid);
|
20
|
+
|
21
|
+
// ----- PROPERTIES -----
|
22
|
+
std::vector<std::shared_ptr<Service>> services();
|
23
|
+
std::vector<std::string> uuids();
|
24
|
+
|
25
|
+
std::string address();
|
26
|
+
std::string address_type();
|
27
|
+
std::string name();
|
28
|
+
std::string alias();
|
29
|
+
int16_t rssi();
|
30
|
+
int16_t tx_power();
|
31
|
+
|
32
|
+
std::map<uint16_t, ByteArray> manufacturer_data();
|
33
|
+
std::map<std::string, ByteArray> service_data();
|
34
|
+
|
35
|
+
bool paired();
|
36
|
+
bool connected();
|
37
|
+
bool services_resolved();
|
38
|
+
|
39
|
+
// ----- METHODS -----
|
40
|
+
void connect();
|
41
|
+
void disconnect();
|
42
|
+
void pair();
|
43
|
+
void cancel_pairing();
|
44
|
+
|
45
|
+
// ----- CALLBACKS -----
|
46
|
+
void set_on_services_resolved(std::function<void()> callback);
|
47
|
+
void clear_on_services_resolved();
|
48
|
+
void set_on_disconnected(std::function<void()> callback);
|
49
|
+
void clear_on_disconnected();
|
50
|
+
|
51
|
+
// ----- BATTERY INTERFACE -----
|
52
|
+
bool has_battery_interface();
|
53
|
+
uint8_t battery_percentage();
|
54
|
+
void set_on_battery_percentage_changed(std::function<void(uint8_t new_value)> callback);
|
55
|
+
void clear_on_battery_percentage_changed();
|
56
|
+
|
57
|
+
private:
|
58
|
+
std::shared_ptr<SimpleDBus::Proxy> path_create(const std::string& path) override;
|
59
|
+
|
60
|
+
std::shared_ptr<Device1> device1();
|
61
|
+
std::shared_ptr<Battery1> battery1();
|
62
|
+
};
|
63
|
+
|
64
|
+
} // namespace SimpleBluez
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include <stdexcept>
|
4
|
+
#include <string>
|
5
|
+
|
6
|
+
#include <simpledbus/base/Exceptions.h>
|
7
|
+
|
8
|
+
namespace SimpleBluez {
|
9
|
+
|
10
|
+
namespace Exception {
|
11
|
+
|
12
|
+
class BaseException : public std::exception {};
|
13
|
+
|
14
|
+
class ServiceNotFoundException : public BaseException {
|
15
|
+
public:
|
16
|
+
ServiceNotFoundException(const std::string& service);
|
17
|
+
const char* what() const noexcept override;
|
18
|
+
|
19
|
+
private:
|
20
|
+
std::string _message;
|
21
|
+
};
|
22
|
+
|
23
|
+
class CharacteristicNotFoundException : public BaseException {
|
24
|
+
public:
|
25
|
+
CharacteristicNotFoundException(const std::string& characteristic);
|
26
|
+
const char* what() const noexcept override;
|
27
|
+
|
28
|
+
private:
|
29
|
+
std::string _message;
|
30
|
+
};
|
31
|
+
|
32
|
+
class DescriptorNotFoundException : public BaseException {
|
33
|
+
public:
|
34
|
+
DescriptorNotFoundException(const std::string& descriptor);
|
35
|
+
const char* what() const noexcept override;
|
36
|
+
|
37
|
+
private:
|
38
|
+
std::string _message;
|
39
|
+
};
|
40
|
+
|
41
|
+
} // namespace Exception
|
42
|
+
|
43
|
+
} // namespace SimpleBluez
|