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,106 @@
|
|
1
|
+
#include <pybind11/functional.h>
|
2
|
+
#include <pybind11/pybind11.h>
|
3
|
+
#include <pybind11/stl.h>
|
4
|
+
|
5
|
+
#include "simpleble/SimpleBLE.h"
|
6
|
+
|
7
|
+
namespace py = pybind11;
|
8
|
+
|
9
|
+
constexpr auto kDocsAdapter = R"pbdoc(
|
10
|
+
Adapter
|
11
|
+
)pbdoc";
|
12
|
+
|
13
|
+
constexpr auto kDocsAdapterBluetoothEnabled = R"pbdoc(
|
14
|
+
Whether Bluetooth is enabled
|
15
|
+
)pbdoc";
|
16
|
+
|
17
|
+
constexpr auto kDocsAdapterGetAdapters = R"pbdoc(
|
18
|
+
Get all available adapters
|
19
|
+
)pbdoc";
|
20
|
+
|
21
|
+
constexpr auto kDocsAdapterInitialized = R"pbdoc(
|
22
|
+
Whether the adapter is initialized
|
23
|
+
)pbdoc";
|
24
|
+
|
25
|
+
constexpr auto kDocsAdapterIdentifier = R"pbdoc(
|
26
|
+
Identifier of the adapter
|
27
|
+
)pbdoc";
|
28
|
+
|
29
|
+
constexpr auto kDocsAdapterAddress = R"pbdoc(
|
30
|
+
Address of the adapter
|
31
|
+
)pbdoc";
|
32
|
+
|
33
|
+
constexpr auto kDocsAdapterPowerOn = R"pbdoc(
|
34
|
+
Power on the adapter
|
35
|
+
)pbdoc";
|
36
|
+
|
37
|
+
constexpr auto kDocsAdapterPowerOff = R"pbdoc(
|
38
|
+
Power off the adapter
|
39
|
+
)pbdoc";
|
40
|
+
|
41
|
+
constexpr auto kDocsAdapterIsPowered = R"pbdoc(
|
42
|
+
Whether the adapter is powered
|
43
|
+
)pbdoc";
|
44
|
+
|
45
|
+
constexpr auto kDocsAdapterScanStart = R"pbdoc(
|
46
|
+
Start scanning for peripherals
|
47
|
+
)pbdoc";
|
48
|
+
|
49
|
+
constexpr auto kDocsAdapterScanStop = R"pbdoc(
|
50
|
+
Stop scanning for peripherals
|
51
|
+
)pbdoc";
|
52
|
+
|
53
|
+
constexpr auto kDocsAdapterScanIsActive = R"pbdoc(
|
54
|
+
Whether the adapter is scanning
|
55
|
+
)pbdoc";
|
56
|
+
|
57
|
+
constexpr auto kDocsAdapterScanFor = R"pbdoc(
|
58
|
+
Scan for peripherals for a given duration
|
59
|
+
)pbdoc";
|
60
|
+
|
61
|
+
constexpr auto kDocsAdapterScanGetResults = R"pbdoc(
|
62
|
+
Get the results of the last scan
|
63
|
+
)pbdoc";
|
64
|
+
|
65
|
+
constexpr auto kDocsAdapterSetCallbackOnScanStart = R"pbdoc(
|
66
|
+
Set the callback to be called when scanning starts
|
67
|
+
)pbdoc";
|
68
|
+
|
69
|
+
constexpr auto kDocsAdapterSetCallbackOnScanStop = R"pbdoc(
|
70
|
+
Set the callback to be called when scanning stops
|
71
|
+
)pbdoc";
|
72
|
+
|
73
|
+
constexpr auto kDocsAdapterSetCallbackOnScanFound = R"pbdoc(
|
74
|
+
Set the callback to be called when a peripheral is found
|
75
|
+
)pbdoc";
|
76
|
+
|
77
|
+
constexpr auto kDocsAdapterSetCallbackOnScanUpdated = R"pbdoc(
|
78
|
+
Set the callback to be called when a peripheral is updated
|
79
|
+
)pbdoc";
|
80
|
+
|
81
|
+
constexpr auto kDocsAdapterGetPairedPeripherals = R"pbdoc(
|
82
|
+
Get all paired peripherals
|
83
|
+
)pbdoc";
|
84
|
+
|
85
|
+
void wrap_adapter(py::module& m) {
|
86
|
+
// TODO: Add __str__ and __repr__ methods
|
87
|
+
py::class_<SimpleBLE::Adapter>(m, "Adapter")
|
88
|
+
.def("bluetooth_enabled", &SimpleBLE::Adapter::bluetooth_enabled, kDocsAdapterBluetoothEnabled)
|
89
|
+
.def("get_adapters", &SimpleBLE::Adapter::get_adapters, kDocsAdapterGetAdapters)
|
90
|
+
.def("initialized", &SimpleBLE::Adapter::initialized, kDocsAdapterInitialized)
|
91
|
+
.def("identifier", &SimpleBLE::Adapter::identifier, kDocsAdapterIdentifier)
|
92
|
+
.def("address", &SimpleBLE::Adapter::address, kDocsAdapterAddress)
|
93
|
+
.def("power_on", &SimpleBLE::Adapter::power_on, kDocsAdapterPowerOn)
|
94
|
+
.def("power_off", &SimpleBLE::Adapter::power_off, kDocsAdapterPowerOff)
|
95
|
+
.def("is_powered", &SimpleBLE::Adapter::is_powered, kDocsAdapterIsPowered)
|
96
|
+
.def("scan_start", &SimpleBLE::Adapter::scan_start, kDocsAdapterScanStart)
|
97
|
+
.def("scan_stop", &SimpleBLE::Adapter::scan_stop, kDocsAdapterScanStop)
|
98
|
+
.def("scan_is_active", &SimpleBLE::Adapter::scan_is_active, kDocsAdapterScanIsActive)
|
99
|
+
.def("scan_for", &SimpleBLE::Adapter::scan_for, py::call_guard<py::gil_scoped_release>(), kDocsAdapterScanFor)
|
100
|
+
.def("scan_get_results", &SimpleBLE::Adapter::scan_get_results, kDocsAdapterScanGetResults)
|
101
|
+
.def("set_callback_on_scan_start", &SimpleBLE::Adapter::set_callback_on_scan_start, py::keep_alive<1, 2>(), kDocsAdapterSetCallbackOnScanStart)
|
102
|
+
.def("set_callback_on_scan_stop", &SimpleBLE::Adapter::set_callback_on_scan_stop, py::keep_alive<1, 2>(), kDocsAdapterSetCallbackOnScanStop)
|
103
|
+
.def("set_callback_on_scan_found", &SimpleBLE::Adapter::set_callback_on_scan_found, py::keep_alive<1, 2>(), kDocsAdapterSetCallbackOnScanFound)
|
104
|
+
.def("set_callback_on_scan_updated", &SimpleBLE::Adapter::set_callback_on_scan_updated, py::keep_alive<1, 2>(), kDocsAdapterSetCallbackOnScanUpdated)
|
105
|
+
.def("get_paired_peripherals", &SimpleBLE::Adapter::get_paired_peripherals, kDocsAdapterGetPairedPeripherals);
|
106
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#include <pybind11/functional.h>
|
2
|
+
#include <pybind11/pybind11.h>
|
3
|
+
#include <pybind11/stl.h>
|
4
|
+
|
5
|
+
#include "simpleble/Characteristic.h"
|
6
|
+
|
7
|
+
namespace py = pybind11;
|
8
|
+
|
9
|
+
constexpr auto kDocsCharacteristic = R"pbdoc(
|
10
|
+
Characteristic
|
11
|
+
)pbdoc";
|
12
|
+
|
13
|
+
constexpr auto kDocsCharacteristicUuid = R"pbdoc(
|
14
|
+
UUID of the characteristic
|
15
|
+
)pbdoc";
|
16
|
+
|
17
|
+
constexpr auto kDocsCharacteristicDescriptors = R"pbdoc(
|
18
|
+
Descriptors of the characteristic
|
19
|
+
)pbdoc";
|
20
|
+
|
21
|
+
constexpr auto kDocsCharacteristicCapabilities = R"pbdoc(
|
22
|
+
Capabilities of the characteristic
|
23
|
+
)pbdoc";
|
24
|
+
|
25
|
+
constexpr auto kDocsCharacteristicCanRead = R"pbdoc(
|
26
|
+
Whether the characteristic can be read
|
27
|
+
)pbdoc";
|
28
|
+
|
29
|
+
constexpr auto kDocsCharacteristicCanWriteRequest = R"pbdoc(
|
30
|
+
Whether the characteristic can be written with a request
|
31
|
+
)pbdoc";
|
32
|
+
|
33
|
+
constexpr auto kDocsCharacteristicCanWriteCommand = R"pbdoc(
|
34
|
+
Whether the characteristic can be written with a command
|
35
|
+
)pbdoc";
|
36
|
+
|
37
|
+
constexpr auto kDocsCharacteristicCanNotify = R"pbdoc(
|
38
|
+
Whether the characteristic can be notified
|
39
|
+
)pbdoc";
|
40
|
+
|
41
|
+
constexpr auto kDocsCharacteristicCanIndicate = R"pbdoc(
|
42
|
+
Whether the characteristic can be indicated
|
43
|
+
)pbdoc";
|
44
|
+
|
45
|
+
void wrap_characteristic(py::module& m) {
|
46
|
+
// TODO: Add __str__ and __repr__ methods
|
47
|
+
py::class_<SimpleBLE::Characteristic>(m, "Characteristic", kDocsCharacteristic)
|
48
|
+
.def("uuid", &SimpleBLE::Characteristic::uuid, kDocsCharacteristicUuid)
|
49
|
+
.def("descriptors", &SimpleBLE::Characteristic::descriptors, kDocsCharacteristicDescriptors)
|
50
|
+
.def("capabilities", &SimpleBLE::Characteristic::capabilities, kDocsCharacteristicCapabilities)
|
51
|
+
.def("can_read", &SimpleBLE::Characteristic::can_read, kDocsCharacteristicCanRead)
|
52
|
+
.def("can_write_request", &SimpleBLE::Characteristic::can_write_request, kDocsCharacteristicCanWriteRequest)
|
53
|
+
.def("can_write_command", &SimpleBLE::Characteristic::can_write_command, kDocsCharacteristicCanWriteCommand)
|
54
|
+
.def("can_notify", &SimpleBLE::Characteristic::can_notify, kDocsCharacteristicCanNotify)
|
55
|
+
.def("can_indicate", &SimpleBLE::Characteristic::can_indicate, kDocsCharacteristicCanIndicate);
|
56
|
+
}
|
@@ -0,0 +1,136 @@
|
|
1
|
+
#include <pybind11/pybind11.h>
|
2
|
+
#include "simpleble/Config.h"
|
3
|
+
|
4
|
+
namespace py = pybind11;
|
5
|
+
|
6
|
+
// Wrapper classes for Python bindings (not exposed to C++)
|
7
|
+
namespace PyWrappers {
|
8
|
+
struct WinRT {
|
9
|
+
static bool get_experimental_use_own_mta_apartment() {
|
10
|
+
return SimpleBLE::Config::WinRT::experimental_use_own_mta_apartment;
|
11
|
+
}
|
12
|
+
static void set_experimental_use_own_mta_apartment(bool value) {
|
13
|
+
SimpleBLE::Config::WinRT::experimental_use_own_mta_apartment = value;
|
14
|
+
}
|
15
|
+
static bool get_experimental_reinitialize_winrt_apartment_on_main_thread() {
|
16
|
+
return SimpleBLE::Config::WinRT::experimental_reinitialize_winrt_apartment_on_main_thread;
|
17
|
+
}
|
18
|
+
static void set_experimental_reinitialize_winrt_apartment_on_main_thread(bool value) {
|
19
|
+
SimpleBLE::Config::WinRT::experimental_reinitialize_winrt_apartment_on_main_thread = value;
|
20
|
+
}
|
21
|
+
|
22
|
+
static void reset() {
|
23
|
+
SimpleBLE::Config::WinRT::reset();
|
24
|
+
}
|
25
|
+
};
|
26
|
+
|
27
|
+
struct SimpleBluez {
|
28
|
+
static void reset() {
|
29
|
+
SimpleBLE::Config::SimpleBluez::reset();
|
30
|
+
}
|
31
|
+
};
|
32
|
+
|
33
|
+
struct CoreBluetooth {
|
34
|
+
static void reset() {
|
35
|
+
SimpleBLE::Config::CoreBluetooth::reset();
|
36
|
+
}
|
37
|
+
};
|
38
|
+
|
39
|
+
struct Android {
|
40
|
+
static void reset() {
|
41
|
+
SimpleBLE::Config::Android::reset();
|
42
|
+
}
|
43
|
+
};
|
44
|
+
|
45
|
+
struct Base {
|
46
|
+
static void reset_all() {
|
47
|
+
SimpleBLE::Config::Base::reset_all();
|
48
|
+
}
|
49
|
+
};
|
50
|
+
}
|
51
|
+
|
52
|
+
// Documentation strings
|
53
|
+
constexpr auto kDocsConfigModule = R"pbdoc(
|
54
|
+
Configuration options for SimpleBLE
|
55
|
+
)pbdoc";
|
56
|
+
|
57
|
+
constexpr auto kDocsConfigWinRTClass = R"pbdoc(
|
58
|
+
WinRT-specific configuration options
|
59
|
+
)pbdoc";
|
60
|
+
|
61
|
+
constexpr auto kDocsConfigSimpleBluezClass = R"pbdoc(
|
62
|
+
SimpleBluez-specific configuration options
|
63
|
+
)pbdoc";
|
64
|
+
|
65
|
+
constexpr auto kDocsConfigCoreBluetoothClass = R"pbdoc(
|
66
|
+
CoreBluetooth-specific configuration options
|
67
|
+
)pbdoc";
|
68
|
+
|
69
|
+
constexpr auto kDocsConfigAndroidClass = R"pbdoc(
|
70
|
+
Android-specific configuration options
|
71
|
+
)pbdoc";
|
72
|
+
|
73
|
+
constexpr auto kDocsConfigBaseClass = R"pbdoc(
|
74
|
+
Base configuration options
|
75
|
+
)pbdoc";
|
76
|
+
|
77
|
+
constexpr auto kDocsConfigWinRTExperimentalMTA = R"pbdoc(
|
78
|
+
Use own MTA apartment (experimental)
|
79
|
+
)pbdoc";
|
80
|
+
|
81
|
+
constexpr auto kDocsConfigWinRTExperimentalReinitializeMTAOnMainThread = R"pbdoc(
|
82
|
+
Reinitialize the WinRT apartment on the main thread (experimental)
|
83
|
+
)pbdoc";
|
84
|
+
|
85
|
+
constexpr auto kDocsConfigWinRTReset = R"pbdoc(
|
86
|
+
Reset WinRT configuration options to their default values
|
87
|
+
)pbdoc";
|
88
|
+
|
89
|
+
constexpr auto kDocsConfigSimpleBluezReset = R"pbdoc(
|
90
|
+
Reset SimpleBluez configuration options to their default values
|
91
|
+
)pbdoc";
|
92
|
+
|
93
|
+
constexpr auto kDocsConfigCoreBluetoothReset = R"pbdoc(
|
94
|
+
Reset CoreBluetooth configuration options to their default values
|
95
|
+
)pbdoc";
|
96
|
+
|
97
|
+
constexpr auto kDocsConfigAndroidReset = R"pbdoc(
|
98
|
+
Reset Android configuration options to their default values
|
99
|
+
)pbdoc";
|
100
|
+
|
101
|
+
constexpr auto kDocsConfigBaseResetAll = R"pbdoc(
|
102
|
+
Reset all configuration options to their default values
|
103
|
+
)pbdoc";
|
104
|
+
|
105
|
+
void wrap_config(py::module& m) {
|
106
|
+
auto config = m.def_submodule("config", kDocsConfigModule);
|
107
|
+
|
108
|
+
// Define classes directly under config
|
109
|
+
py::class_<PyWrappers::WinRT> winrt_config(config, "winrt", kDocsConfigWinRTClass, py::metaclass());
|
110
|
+
winrt_config
|
111
|
+
.def_property_static("experimental_use_own_mta_apartment",
|
112
|
+
[](py::object) { return PyWrappers::WinRT::get_experimental_use_own_mta_apartment(); },
|
113
|
+
[](py::object, bool value) { PyWrappers::WinRT::set_experimental_use_own_mta_apartment(value); },
|
114
|
+
kDocsConfigWinRTExperimentalMTA)
|
115
|
+
.def_property_static("experimental_reinitialize_winrt_apartment_on_main_thread",
|
116
|
+
[](py::object) { return PyWrappers::WinRT::get_experimental_reinitialize_winrt_apartment_on_main_thread(); },
|
117
|
+
[](py::object, bool value) { PyWrappers::WinRT::set_experimental_reinitialize_winrt_apartment_on_main_thread(value); },
|
118
|
+
kDocsConfigWinRTExperimentalReinitializeMTAOnMainThread)
|
119
|
+
.def_static("reset", &PyWrappers::WinRT::reset, kDocsConfigWinRTReset);
|
120
|
+
|
121
|
+
py::class_<PyWrappers::SimpleBluez> simplebluez_config(config, "simplebluez", kDocsConfigSimpleBluezClass, py::metaclass());
|
122
|
+
simplebluez_config
|
123
|
+
.def_static("reset", &PyWrappers::SimpleBluez::reset, kDocsConfigSimpleBluezReset);
|
124
|
+
|
125
|
+
py::class_<PyWrappers::CoreBluetooth> corebluetooth_config(config, "corebluetooth", kDocsConfigCoreBluetoothClass, py::metaclass());
|
126
|
+
corebluetooth_config
|
127
|
+
.def_static("reset", &PyWrappers::CoreBluetooth::reset, kDocsConfigCoreBluetoothReset);
|
128
|
+
|
129
|
+
py::class_<PyWrappers::Android> android_config(config, "android", kDocsConfigAndroidClass, py::metaclass());
|
130
|
+
android_config
|
131
|
+
.def_static("reset", &PyWrappers::Android::reset, kDocsConfigAndroidReset);
|
132
|
+
|
133
|
+
py::class_<PyWrappers::Base> base_config(config, "base", kDocsConfigBaseClass, py::metaclass());
|
134
|
+
base_config
|
135
|
+
.def_static("reset_all", &PyWrappers::Base::reset_all, kDocsConfigBaseResetAll);
|
136
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#include <pybind11/functional.h>
|
2
|
+
#include <pybind11/pybind11.h>
|
3
|
+
#include <pybind11/stl.h>
|
4
|
+
|
5
|
+
#include "simpleble/Descriptor.h"
|
6
|
+
|
7
|
+
namespace py = pybind11;
|
8
|
+
|
9
|
+
constexpr auto kDocsDescriptor = R"pbdoc(
|
10
|
+
Descriptor
|
11
|
+
)pbdoc";
|
12
|
+
|
13
|
+
constexpr auto kDocsDescriptorUuid = R"pbdoc(
|
14
|
+
UUID of the descriptor
|
15
|
+
)pbdoc";
|
16
|
+
|
17
|
+
void wrap_descriptor(py::module& m) {
|
18
|
+
// TODO: Add __str__ and __repr__ methods
|
19
|
+
py::class_<SimpleBLE::Descriptor>(m, "Descriptor", kDocsDescriptor)
|
20
|
+
.def("uuid", &SimpleBLE::Descriptor::uuid, kDocsDescriptorUuid);
|
21
|
+
}
|
@@ -0,0 +1,217 @@
|
|
1
|
+
#include <pybind11/functional.h>
|
2
|
+
#include <pybind11/pybind11.h>
|
3
|
+
#include <pybind11/stl.h>
|
4
|
+
|
5
|
+
#include "simpleble/Peripheral.h"
|
6
|
+
|
7
|
+
namespace py = pybind11;
|
8
|
+
|
9
|
+
constexpr auto kDocsPeripheral = R"pbdoc(
|
10
|
+
Peripheral
|
11
|
+
)pbdoc";
|
12
|
+
|
13
|
+
constexpr auto kDocsPeripheralInitialized = R"pbdoc(
|
14
|
+
Whether the peripheral is initialized
|
15
|
+
)pbdoc";
|
16
|
+
|
17
|
+
constexpr auto kDocsPeripheralIdentifier = R"pbdoc(
|
18
|
+
Identifier of the peripheral
|
19
|
+
)pbdoc";
|
20
|
+
|
21
|
+
constexpr auto kDocsPeripheralAddress = R"pbdoc(
|
22
|
+
Address of the peripheral
|
23
|
+
)pbdoc";
|
24
|
+
|
25
|
+
constexpr auto kDocsPeripheralAddressType = R"pbdoc(
|
26
|
+
Address Type of the peripheral
|
27
|
+
)pbdoc";
|
28
|
+
|
29
|
+
constexpr auto kDocsPeripheralRSSI = R"pbdoc(
|
30
|
+
RSSI of the peripheral
|
31
|
+
)pbdoc";
|
32
|
+
|
33
|
+
constexpr auto kDocsPeripheralTxPower = R"pbdoc(
|
34
|
+
Transit Power of the peripheral in dBm
|
35
|
+
)pbdoc";
|
36
|
+
|
37
|
+
constexpr auto kDocsPeripheralMtu = R"pbdoc(
|
38
|
+
Get the negotiated MTU value
|
39
|
+
)pbdoc";
|
40
|
+
|
41
|
+
constexpr auto kDocsPeripheralConnect = R"pbdoc(
|
42
|
+
Connect to the peripheral
|
43
|
+
)pbdoc";
|
44
|
+
|
45
|
+
constexpr auto kDocsPeripheralDisconnect = R"pbdoc(
|
46
|
+
Disconnect from the peripheral
|
47
|
+
)pbdoc";
|
48
|
+
|
49
|
+
constexpr auto kDocsPeripheralIsConnected = R"pbdoc(
|
50
|
+
Whether the peripheral is connected
|
51
|
+
)pbdoc";
|
52
|
+
|
53
|
+
constexpr auto kDocsPeripheralIsConnectable = R"pbdoc(
|
54
|
+
Whether the peripheral is connectable
|
55
|
+
)pbdoc";
|
56
|
+
|
57
|
+
constexpr auto kDocsPeripheralIsPaired = R"pbdoc(
|
58
|
+
Whether the peripheral is paired
|
59
|
+
)pbdoc";
|
60
|
+
|
61
|
+
constexpr auto kDocsPeripheralUnpair = R"pbdoc(
|
62
|
+
Unpair the peripheral
|
63
|
+
)pbdoc";
|
64
|
+
|
65
|
+
constexpr auto kDocsPeripheralServices = R"pbdoc(
|
66
|
+
Services of the peripheral
|
67
|
+
)pbdoc";
|
68
|
+
|
69
|
+
constexpr auto kDocsPeripheralManufacturerData = R"pbdoc(
|
70
|
+
Manufacturer data of the peripheral
|
71
|
+
)pbdoc";
|
72
|
+
|
73
|
+
constexpr auto kDocsPeripheralReadCharacteristic = R"pbdoc(
|
74
|
+
Read a characteristic from the peripheral
|
75
|
+
)pbdoc";
|
76
|
+
|
77
|
+
constexpr auto kDocsPeripheralWriteRequest = R"pbdoc(
|
78
|
+
Write a request to the peripheral
|
79
|
+
)pbdoc";
|
80
|
+
|
81
|
+
constexpr auto kDocsPeripheralWriteCommand = R"pbdoc(
|
82
|
+
Write a command to the peripheral
|
83
|
+
)pbdoc";
|
84
|
+
|
85
|
+
constexpr auto kDocsPeripheralNotify = R"pbdoc(
|
86
|
+
Notify a characteristic from the peripheral
|
87
|
+
)pbdoc";
|
88
|
+
|
89
|
+
constexpr auto kDocsPeripheralIndicate = R"pbdoc(
|
90
|
+
Indicate a characteristic from the peripheral
|
91
|
+
)pbdoc";
|
92
|
+
|
93
|
+
constexpr auto kDocsPeripheralUnsubscribe = R"pbdoc(
|
94
|
+
Unsubscribe a characteristic from the peripheral
|
95
|
+
)pbdoc";
|
96
|
+
|
97
|
+
constexpr auto kDocsPeripheralDescriptorRead = R"pbdoc(
|
98
|
+
Read a descriptor from the peripheral
|
99
|
+
)pbdoc";
|
100
|
+
|
101
|
+
constexpr auto kDocsPeripheralDescriptorWrite = R"pbdoc(
|
102
|
+
Write a descriptor to the peripheral
|
103
|
+
)pbdoc";
|
104
|
+
|
105
|
+
constexpr auto kDocsPeripheralSetCallbackOnConnected = R"pbdoc(
|
106
|
+
Set callback on connected
|
107
|
+
)pbdoc";
|
108
|
+
|
109
|
+
constexpr auto kDocsPeripheralSetCallbackOnDisconnected = R"pbdoc(
|
110
|
+
Set callback on disconnected
|
111
|
+
)pbdoc";
|
112
|
+
|
113
|
+
// clang-format off
|
114
|
+
|
115
|
+
void wrap_peripheral(py::module& m) {
|
116
|
+
// TODO: Add __str__ and __repr__ methods
|
117
|
+
py::class_<SimpleBLE::Peripheral>(m, "Peripheral", kDocsPeripheral)
|
118
|
+
.def("initialized", &SimpleBLE::Peripheral::initialized, kDocsPeripheralInitialized)
|
119
|
+
.def("identifier", &SimpleBLE::Peripheral::identifier, kDocsPeripheralIdentifier)
|
120
|
+
.def("address", &SimpleBLE::Peripheral::address, kDocsPeripheralAddress)
|
121
|
+
.def("address_type", &SimpleBLE::Peripheral::address_type, kDocsPeripheralAddressType)
|
122
|
+
.def("rssi", &SimpleBLE::Peripheral::rssi, kDocsPeripheralRSSI)
|
123
|
+
.def("tx_power", &SimpleBLE::Peripheral::tx_power, kDocsPeripheralTxPower)
|
124
|
+
.def("mtu", &SimpleBLE::Peripheral::mtu, kDocsPeripheralMtu)
|
125
|
+
.def("connect", &SimpleBLE::Peripheral::connect, py::call_guard<py::gil_scoped_release>(),
|
126
|
+
kDocsPeripheralConnect)
|
127
|
+
.def("disconnect", &SimpleBLE::Peripheral::disconnect, kDocsPeripheralDisconnect)
|
128
|
+
.def("is_connected", &SimpleBLE::Peripheral::is_connected, kDocsPeripheralIsConnected)
|
129
|
+
.def("is_connectable", &SimpleBLE::Peripheral::is_connectable, kDocsPeripheralIsConnectable)
|
130
|
+
.def("is_paired", &SimpleBLE::Peripheral::is_paired, kDocsPeripheralIsPaired)
|
131
|
+
.def("unpair", &SimpleBLE::Peripheral::unpair, kDocsPeripheralUnpair)
|
132
|
+
.def("services", &SimpleBLE::Peripheral::services, kDocsPeripheralServices)
|
133
|
+
.def(
|
134
|
+
"manufacturer_data",
|
135
|
+
[](SimpleBLE::Peripheral& p) {
|
136
|
+
std::map<uint16_t, py::bytes> ret;
|
137
|
+
for (auto& kv : p.manufacturer_data()) {
|
138
|
+
ret[kv.first] = py::bytes(kv.second);
|
139
|
+
}
|
140
|
+
return ret;
|
141
|
+
},
|
142
|
+
kDocsPeripheralManufacturerData)
|
143
|
+
.def(
|
144
|
+
"read",
|
145
|
+
[](SimpleBLE::Peripheral& p, std::string const& service, std::string const& characteristic) {
|
146
|
+
SimpleBLE::ByteArray cpp_payload = p.read(service, characteristic);
|
147
|
+
py::gil_scoped_acquire gil;
|
148
|
+
return py::bytes(cpp_payload);
|
149
|
+
},
|
150
|
+
py::call_guard<py::gil_scoped_release>(),
|
151
|
+
kDocsPeripheralReadCharacteristic)
|
152
|
+
.def(
|
153
|
+
"write_request",
|
154
|
+
[](SimpleBLE::Peripheral& p, std::string service, std::string characteristic, py::bytes payload) {
|
155
|
+
// Note py::bytes implicitly converts to std::string
|
156
|
+
SimpleBLE::ByteArray cpp_payload(payload);
|
157
|
+
py::gil_scoped_release release;
|
158
|
+
p.write_request(service, characteristic, cpp_payload);
|
159
|
+
},
|
160
|
+
kDocsPeripheralWriteRequest)
|
161
|
+
.def(
|
162
|
+
"write_command",
|
163
|
+
[](SimpleBLE::Peripheral& p, std::string service, std::string characteristic, py::bytes payload) {
|
164
|
+
// Note py::bytes implicitly converts to std::string
|
165
|
+
SimpleBLE::ByteArray cpp_payload(payload);
|
166
|
+
py::gil_scoped_release release;
|
167
|
+
p.write_command(service, characteristic, cpp_payload);
|
168
|
+
},
|
169
|
+
kDocsPeripheralWriteCommand)
|
170
|
+
.def(
|
171
|
+
"notify",
|
172
|
+
[](SimpleBLE::Peripheral& p, std::string service, std::string characteristic, std::function<void(py::bytes payload)> cb) {
|
173
|
+
p.notify(service, characteristic, [cb](SimpleBLE::ByteArray payload) {
|
174
|
+
py::gil_scoped_acquire gil;
|
175
|
+
cb(py::bytes(payload));
|
176
|
+
});
|
177
|
+
},
|
178
|
+
py::call_guard<py::gil_scoped_release>(),
|
179
|
+
kDocsPeripheralNotify)
|
180
|
+
.def(
|
181
|
+
"indicate",
|
182
|
+
[](SimpleBLE::Peripheral& p, std::string service, std::string characteristic, std::function<void(py::bytes payload)> cb) {
|
183
|
+
p.indicate(service, characteristic, [cb](SimpleBLE::ByteArray payload) {
|
184
|
+
py::gil_scoped_acquire gil;
|
185
|
+
cb(py::bytes(payload));
|
186
|
+
});
|
187
|
+
},
|
188
|
+
py::call_guard<py::gil_scoped_release>(),
|
189
|
+
kDocsPeripheralIndicate)
|
190
|
+
.def("unsubscribe", &SimpleBLE::Peripheral::unsubscribe, py::call_guard<py::gil_scoped_release>(), kDocsPeripheralUnsubscribe)
|
191
|
+
|
192
|
+
.def(
|
193
|
+
"descriptor_read",
|
194
|
+
[](SimpleBLE::Peripheral& p, std::string const& service, std::string const& characteristic, std::string const& descriptor) {
|
195
|
+
SimpleBLE::ByteArray cpp_payload = p.read(service, characteristic, descriptor);
|
196
|
+
py::gil_scoped_acquire gil;
|
197
|
+
return py::bytes(cpp_payload);
|
198
|
+
},
|
199
|
+
py::call_guard<py::gil_scoped_release>(),
|
200
|
+
kDocsPeripheralDescriptorRead)
|
201
|
+
.def(
|
202
|
+
"descriptor_write",
|
203
|
+
[](SimpleBLE::Peripheral& p, std::string service, std::string characteristic, std::string const& descriptor, py::bytes payload) {
|
204
|
+
// Note py::bytes implicitly converts to std::string
|
205
|
+
SimpleBLE::ByteArray cpp_payload(payload);
|
206
|
+
py::gil_scoped_release release;
|
207
|
+
p.write(service, characteristic, descriptor, cpp_payload);
|
208
|
+
},
|
209
|
+
kDocsPeripheralDescriptorWrite)
|
210
|
+
|
211
|
+
.def("set_callback_on_connected", &SimpleBLE::Peripheral::set_callback_on_connected,
|
212
|
+
py::keep_alive<1, 2>(), kDocsPeripheralSetCallbackOnConnected)
|
213
|
+
.def("set_callback_on_disconnected", &SimpleBLE::Peripheral::set_callback_on_disconnected,
|
214
|
+
py::keep_alive<1, 2>(), kDocsPeripheralSetCallbackOnDisconnected);
|
215
|
+
}
|
216
|
+
|
217
|
+
// clang-format on
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#include <pybind11/functional.h>
|
2
|
+
#include <pybind11/pybind11.h>
|
3
|
+
#include <pybind11/stl.h>
|
4
|
+
|
5
|
+
#include "simpleble/Service.h"
|
6
|
+
|
7
|
+
namespace py = pybind11;
|
8
|
+
|
9
|
+
constexpr auto kDocsService = R"pbdoc(
|
10
|
+
Service
|
11
|
+
)pbdoc";
|
12
|
+
|
13
|
+
constexpr auto kDocsServiceUuid = R"pbdoc(
|
14
|
+
UUID of the service
|
15
|
+
)pbdoc";
|
16
|
+
|
17
|
+
constexpr auto kDocsServiceData = R"pbdoc(
|
18
|
+
Advertised service data
|
19
|
+
)pbdoc";
|
20
|
+
|
21
|
+
constexpr auto kDocsServiceCharacteristics = R"pbdoc(
|
22
|
+
Characteristics of the service
|
23
|
+
)pbdoc";
|
24
|
+
|
25
|
+
void wrap_service(py::module& m) {
|
26
|
+
// TODO: Add __str__ and __repr__ methods
|
27
|
+
py::class_<SimpleBLE::Service>(m, "Service", kDocsService)
|
28
|
+
.def("uuid", &SimpleBLE::Service::uuid, kDocsServiceUuid)
|
29
|
+
.def(
|
30
|
+
"data", [](SimpleBLE::Service& s) { return py::bytes(s.data()); }, kDocsServiceData)
|
31
|
+
.def("characteristics", &SimpleBLE::Service::characteristics, kDocsServiceCharacteristics);
|
32
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#include <pybind11/functional.h>
|
2
|
+
#include <pybind11/pybind11.h>
|
3
|
+
#include <pybind11/stl.h>
|
4
|
+
|
5
|
+
#include "simpleble/Types.h"
|
6
|
+
|
7
|
+
namespace py = pybind11;
|
8
|
+
|
9
|
+
void wrap_types(py::module& m) {
|
10
|
+
py::enum_<SimpleBLE::OperatingSystem>(m, "OperatingSystem")
|
11
|
+
.value("WINDOWS", SimpleBLE::OperatingSystem::WINDOWS)
|
12
|
+
.value("MACOS", SimpleBLE::OperatingSystem::MACOS)
|
13
|
+
.value("LINUX", SimpleBLE::OperatingSystem::LINUX)
|
14
|
+
.export_values();
|
15
|
+
|
16
|
+
py::enum_<SimpleBLE::BluetoothAddressType>(m, "BluetoothAddressType")
|
17
|
+
.value("PUBLIC", SimpleBLE::BluetoothAddressType::PUBLIC)
|
18
|
+
.value("RANDOM", SimpleBLE::BluetoothAddressType::RANDOM)
|
19
|
+
.value("UNSPECIFIED", SimpleBLE::BluetoothAddressType::UNSPECIFIED)
|
20
|
+
.export_values();
|
21
|
+
}
|