Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | BTDevice: Replace EInfoReport when disconnected w/ empty one (avoid ↵ | Sven Gothel | 2022-02-07 | 1 | -0/+4 |
| | | | | accumulation across connects w/o removeDevice), incl in unit test | ||||
* | BTAdapter/HCIHandler: Reflect: Advertising is active until either disabled ↵ | Sven Gothel | 2022-02-06 | 2 | -5/+26 |
| | | | | | | | | | | | via stopAdvertising() or _a_connection_ has been made. This fix set's HCIHandler's 'advertisingEnabled' flags to 'false' after a 'connection complete' event had occured. Further, HCIHandler::le_enable_adv(..) overrides a potential erroneous HCI failure when: - disabling advertising when already disabled, or - enabling advertising when already enabled as stated in spec 'BT Core Spec v5.2: Vol 4 HCI, Part E HCI Functional: 7.8.9 LE Set Advertising Enable command' | ||||
* | BTAdapter/HCIHandler: API doc: Replace HTML tag with Markup list | Sven Gothel | 2022-02-06 | 2 | -43/+31 |
| | |||||
* | BTGattHandler: Fix API doc (minor) | Sven Gothel | 2022-02-05 | 1 | -6/+6 |
| | |||||
* | Add BTGattHandler::NativeGattCharLister::mtuResponse(..) for high level ↵ | Sven Gothel | 2022-02-05 | 1 | -0/+35 |
| | | | | info; Fix FwdGattServerHandler::replyExchangeMTUReq(..) mtu minimum | ||||
* | BTGattHandler::NativeGattCharListener: Add optional low- and high-level user ↵ | Sven Gothel | 2022-02-05 | 1 | -0/+142 |
| | | | | notification callbacks, allowing better protocol tracking for DBGattServer::Mode:FWD (repeater) | ||||
* | Add invocation example to dbt_peripheral00.cpp and dbt_repeater00.cpp (and ↵ | Sven Gothel | 2022-02-05 | 1 | -0/+17 |
| | | | | remark on their Java counterpart, if existing) | ||||
* | Adding dbt_repeater00, example implementing a GATT repeater | Sven Gothel | 2022-02-02 | 1 | -0/+7 |
| | | | | | | , i.e. forwarding client requests to a GATT server and passing the results back. Code uses DBGattServer::Mode::FWD | ||||
* | Introduce BTGattHandler::GattServerHandler and DBGattServer::Mode for ↵ | Sven Gothel | 2022-02-02 | 2 | -27/+250 |
| | | | | | | | | | | | | | | alternate GATT Server operational mode New DBGattServer::Mode are - NOP - no-op, - DB - user database GATT server as before using a list of DBGattService, - FWD - proxy: forwarding all GATT requests to another remote GATT server and returning the results Each DBGattServer::Mode has a corresponding BTGattHandler::GattServerHandler implementation to act upon the different GATT requests from a connected client. All three modes are fully implemented. | ||||
* | BTAdapter/BTGattChar: API doc typo fix and removal of unused/unimpl declaration | Sven Gothel | 2022-02-02 | 2 | -2/+1 |
| | |||||
* | Custom GATT Processing: MTU and remote GATT Services shall be processed at ↵ | Sven Gothel | 2022-02-02 | 3 | -90/+141 |
| | | | | | | | | | | | | | request only via BTDevice::getGattServices() This reverts MTU/GATT-Services 'push up' from getGattServices() -> connectGATT() of commit ab9f3dec2d06b9e39241c497e8aa00aaa23966c3. Objective of this revert and hence removal of the unconditional MTU/GATT-Services query is to allow user to use custom operations. Hence only getGattServices() will trigger the 'auto config' mechanism on the user's request. | ||||
* | BTAdapter::startAdvertising(): Set default adv_interval from 1.28s -> 400ms ↵ | Sven Gothel | 2022-02-02 | 3 | -10/+10 |
| | | | | avoiding long delays (detection + connect), use in peripheral00 example; | ||||
* | Refine dbt_scanner10/DBTScanner10: Title, PERF status and QUIET flag | Sven Gothel | 2022-02-02 | 1 | -3/+2 |
| | |||||
* | Remove obsolete and unmaintained examples: dbt_scanner00 and dbt_scanner01 | Sven Gothel | 2022-02-02 | 1 | -22/+0 |
| | |||||
* | BTAdapter: Expose `getBTMajorVersion()` in C++ and Java, removing ↵ | Sven Gothel | 2022-01-29 | 1 | -11/+5 |
| | | | | hasHCIExtScan(), hasHCIExtConn() and hasHCIExtAdv() | ||||
* | MgmtSetLocalNameCmd: BlueZ/Linux >= 5.13 (?) Bug Workaround on ↵ | Sven Gothel | 2022-01-28 | 1 | -2/+15 |
| | | | | 'set_local_name(..)': Only use MAX_NAME_LENGTH - 1 | ||||
* | DBGatt[Char|Desc] (Server): Add setValue(..), allowing user to safely ↵ | Sven Gothel | 2022-01-28 | 1 | -6/+32 |
| | | | | | | | | | | | overwrite (initial) value server side. Also refine getValue() API doc. Implemented on C++ and Java side. Peripheral00 example uses this facility to set the DEVICE_NAME GATT value using the current adapter name. | ||||
* | Fix for g++ 8.3.0 (Default constructor signature of EInfoReport) | Sven Gothel | 2022-01-25 | 1 | -2/+2 |
| | |||||
* | Expose BTManager::setDefaultConnParam(..) via ↵ | Sven Gothel | 2022-01-25 | 2 | -6/+34 |
| | | | | BTAdapter::setDefaultConnParam(..), essential in server mode | ||||
* | Refine BTAdapter API and doc on commands in powerd-off state only: setName() ↵ | Sven Gothel | 2022-01-25 | 1 | -8/+16 |
| | | | | and setSecureConnections() | ||||
* | Define BTDevice::getName(): Set by the advertised EInfoReport if available, ↵ | Sven Gothel | 2022-01-25 | 1 | -0/+6 |
| | | | | otherwise by the GATT GenericAccess data post connection | ||||
* | EInfoReport: Use via share_ptr to allow CoW replacement and copy once (via ↵ | Sven Gothel | 2022-01-25 | 2 | -13/+14 |
| | | | | Java as well); Drop JavaUplink, not used. | ||||
* | All BTGattHandler::reply*() methods and applyWrite() are of noexcept | Sven Gothel | 2022-01-24 | 1 | -7/+7 |
| | |||||
* | Add DBGattServer::Listener::write[Char|Desc]ValueDone() (C++/Java), ↵ | Sven Gothel | 2022-01-24 | 2 | -1/+26 |
| | | | | | | | | | | | | | | | notifyies completion of single or bulk writeCharValue() .. BTGattHandler maintains a handle list 'writeDataQueueHandles', grouping all queued writes (PREPARE_WRITE_REQ). Final EXECUTE_WRITE_REQ will issue one applyWrite(..) per queued write-req. If all were successful (accepted and performed), one signalWriteDone() will be issued per handle. This allows the user to react on a completed write-queue having the full data set available. +++ | ||||
* | Enhance API doc: DBGattServer::Listener (C++) and DBGattServer.Listener (java) | Sven Gothel | 2022-01-24 | 1 | -0/+13 |
| | |||||
* | GattNumbers.hpp/DBGattChar.java: Add GENERIC_ATTRIBUTE's Characteristic ↵ | Sven Gothel | 2022-01-24 | 1 | -0/+5 |
| | | | | GattCharacteristicType::SERVICE_CHANGED / DBGattChar.UUID16.SERVICE_CHANGED | ||||
* | getHCIConnSupervisorTimeout(): Revise types and add overload (Java) | Sven Gothel | 2022-01-18 | 1 | -3/+3 |
| | |||||
* | Add EInfoReport::clear() | Sven Gothel | 2022-01-18 | 1 | -0/+5 |
| | |||||
* | BTDevice: Expose aggregated scanned EIR | Sven Gothel | 2022-01-18 | 2 | -26/+7 |
| | |||||
* | Add EInfoReport::set(const EInfoReport&) to merger multiple scanned EIR; ↵ | Sven Gothel | 2022-01-18 | 1 | -3/+14 |
| | | | | toString() only shows the set EIRDataType | ||||
* | Bump jaulib v0.7.9; Use jau::service_runner::singleton_sighandler(), remove ↵ | Sven Gothel | 2022-01-17 | 1 | -3/+0 |
| | | | | own sighandler | ||||
* | BTAdapter::l2cap_att_srv: Have l2cap_service start/stop open and close the ↵ | Sven Gothel | 2022-01-17 | 1 | -1/+3 |
| | | | | | | | L2CAPServer .. .. otherwise a generally open L2CAPServer with bound server address and CID occupies L2CAP in general hence blocks non-server (BTRole::Master) utilization. | ||||
* | L2CAP*::toString() add: const noexcept | Sven Gothel | 2022-01-17 | 1 | -2/+2 |
| | |||||
* | Add BTAdapter::setServerConnSecurity(..) | Sven Gothel | 2022-01-13 | 1 | -0/+16 |
| | |||||
* | BTDevice::setConnSecurity*(..): Consolidate write methods to ↵ | Sven Gothel | 2022-01-13 | 1 | -82/+12 |
| | | | | | | | setConnSecurity() and setConnSecurityAuto() only Also revert change allowing BTDevice::setConnSecurity*(..) on connected devices, IF BTAdapter is server, i.e. method must be called pre-connection notification (commit f4118b41672c17b2f0845ea9a23c87cfaa04cf39). | ||||
* | BTAdapter: Use L2CapServer jau::service_runner if running as GATT server ↵ | Sven Gothel | 2022-01-12 | 1 | -0/+8 |
| | | | | | | | | | | | | | | (Slave) ... Only when listening and catching the L2CAPComm channel via accept, we can guarantee no loss of skipped GATT request. Before using L2CAPServer, the manual connect might occur too late and hence skipped initial fast GATT requests. The L2CAPServer service is started and stopped on start/stop advertising. The opened L2CAPComm is waited upon within BTAdapter::mgmtEvDeviceConnectedHCI(..). | ||||
* | DBTConst: THREAD_SHUTDOWN_TIMEOUT_MS is jau::nsize_t | Sven Gothel | 2022-01-12 | 1 | -1/+3 |
| | |||||
* | BTDevice::l2cap_att: Use as unique_ptr reference to be replaced, allow ↵ | Sven Gothel | 2022-01-12 | 1 | -1/+1 |
| | | | | | | connected l2cap_att (preset by BTAdapter server) Further allow BTDevice::setConnSecurity*(..) on connected devices, IF BTAdapter is server | ||||
* | Refine L2CAPComm and add L2CAPServer (listen for connecting remote devices) | Sven Gothel | 2022-01-12 | 1 | -25/+81 |
| | |||||
* | Add BTManager::setDefaultConnParam(..) using new ↵ | Sven Gothel | 2022-01-12 | 1 | -0/+14 |
| | | | | | | MgmtSetDefaultConnParamU16Cmd; Enforcing own defaults in BTManager::initializeAdapter(..) (FIXME) FIXME: We shall expose the method in BTAdapter (C++ and Java), allowing user to customize 'em. | ||||
* | MgmtTypes: Add MgmtDefaultParam, MgmtDefaultParamU16 for ↵ | Sven Gothel | 2022-01-12 | 1 | -2/+146 |
| | | | | MgmtReadDefaultConnParamCmd and MgmtSetDefaultConnParamU16Cmd | ||||
* | BTManager: Use jau::service_runner | Sven Gothel | 2022-01-12 | 1 | -7/+4 |
| | |||||
* | HCIHandler: Use jau::service_runner | Sven Gothel | 2022-01-12 | 1 | -7/+4 |
| | |||||
* | BTGattHandler: Add 'noexcept' to l2capReader Callbacks | Sven Gothel | 2022-01-12 | 1 | -3/+3 |
| | |||||
* | BTGattHandler: Use jau::service_runner | Sven Gothel | 2022-01-12 | 1 | -8/+5 |
| | |||||
* | API Doc: Add EInfoReport references to GAPFlags and EIRDataType[Set]; Fix ↵ | Sven Gothel | 2022-01-04 | 1 | -0/+4 |
| | | | | Java's EInfoReport API doc header | ||||
* | BTAdapter: Add startAdvertising(..) overload with user given EInfoReport and ↵ | Sven Gothel | 2022-01-04 | 2 | -6/+65 |
| | | | | | | | | | EIRDataType[Set] AD masks .. .. allowing user to detail actual EIR AD (extended information advertising) instead of using the default. This is required to programmatically setup specific advertising information of the created server. | ||||
* | EInfoReport: Add Java JNI mapping and support slave connection interval ↵ | Sven Gothel | 2022-01-04 | 1 | -201/+242 |
| | | | | range; Add Java GAPFlags mapping. | ||||
* | Move JAVA_*_PACKAGE define BTType[0->1].hpp | Sven Gothel | 2022-01-04 | 2 | -3/+3 |
| | |||||
* | EIRDataType[Set]: Add CONN_IVAL for Slave Connection Interval Range ↵ | Sven Gothel | 2022-01-04 | 1 | -0/+1 |
| | | | | (Supplement, Part A, section 1.9) |