aboutsummaryrefslogtreecommitdiffstats
path: root/api/direct_bt
Commit message (Collapse)AuthorAgeFilesLines
* BTDevice: Replace EInfoReport when disconnected w/ empty one (avoid ↵Sven Gothel2022-02-071-0/+4
| | | | accumulation across connects w/o removeDevice), incl in unit test
* BTAdapter/HCIHandler: Reflect: Advertising is active until either disabled ↵Sven Gothel2022-02-062-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 listSven Gothel2022-02-062-43/+31
|
* BTGattHandler: Fix API doc (minor)Sven Gothel2022-02-051-6/+6
|
* Add BTGattHandler::NativeGattCharLister::mtuResponse(..) for high level ↵Sven Gothel2022-02-051-0/+35
| | | | info; Fix FwdGattServerHandler::replyExchangeMTUReq(..) mtu minimum
* BTGattHandler::NativeGattCharListener: Add optional low- and high-level user ↵Sven Gothel2022-02-051-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 Gothel2022-02-051-0/+17
| | | | remark on their Java counterpart, if existing)
* Adding dbt_repeater00, example implementing a GATT repeaterSven Gothel2022-02-021-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 Gothel2022-02-022-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 declarationSven Gothel2022-02-022-2/+1
|
* Custom GATT Processing: MTU and remote GATT Services shall be processed at ↵Sven Gothel2022-02-023-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 Gothel2022-02-023-10/+10
| | | | avoiding long delays (detection + connect), use in peripheral00 example;
* Refine dbt_scanner10/DBTScanner10: Title, PERF status and QUIET flagSven Gothel2022-02-021-3/+2
|
* Remove obsolete and unmaintained examples: dbt_scanner00 and dbt_scanner01Sven Gothel2022-02-021-22/+0
|
* BTAdapter: Expose `getBTMajorVersion()` in C++ and Java, removing ↵Sven Gothel2022-01-291-11/+5
| | | | hasHCIExtScan(), hasHCIExtConn() and hasHCIExtAdv()
* MgmtSetLocalNameCmd: BlueZ/Linux >= 5.13 (?) Bug Workaround on ↵Sven Gothel2022-01-281-2/+15
| | | | 'set_local_name(..)': Only use MAX_NAME_LENGTH - 1
* DBGatt[Char|Desc] (Server): Add setValue(..), allowing user to safely ↵Sven Gothel2022-01-281-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 Gothel2022-01-251-2/+2
|
* Expose BTManager::setDefaultConnParam(..) via ↵Sven Gothel2022-01-252-6/+34
| | | | BTAdapter::setDefaultConnParam(..), essential in server mode
* Refine BTAdapter API and doc on commands in powerd-off state only: setName() ↵Sven Gothel2022-01-251-8/+16
| | | | and setSecureConnections()
* Define BTDevice::getName(): Set by the advertised EInfoReport if available, ↵Sven Gothel2022-01-251-0/+6
| | | | otherwise by the GATT GenericAccess data post connection
* EInfoReport: Use via share_ptr to allow CoW replacement and copy once (via ↵Sven Gothel2022-01-252-13/+14
| | | | Java as well); Drop JavaUplink, not used.
* All BTGattHandler::reply*() methods and applyWrite() are of noexceptSven Gothel2022-01-241-7/+7
|
* Add DBGattServer::Listener::write[Char|Desc]ValueDone() (C++/Java), ↵Sven Gothel2022-01-242-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 Gothel2022-01-241-0/+13
|
* GattNumbers.hpp/DBGattChar.java: Add GENERIC_ATTRIBUTE's Characteristic ↵Sven Gothel2022-01-241-0/+5
| | | | GattCharacteristicType::SERVICE_CHANGED / DBGattChar.UUID16.SERVICE_CHANGED
* getHCIConnSupervisorTimeout(): Revise types and add overload (Java)Sven Gothel2022-01-181-3/+3
|
* Add EInfoReport::clear()Sven Gothel2022-01-181-0/+5
|
* BTDevice: Expose aggregated scanned EIRSven Gothel2022-01-182-26/+7
|
* Add EInfoReport::set(const EInfoReport&) to merger multiple scanned EIR; ↵Sven Gothel2022-01-181-3/+14
| | | | toString() only shows the set EIRDataType
* Bump jaulib v0.7.9; Use jau::service_runner::singleton_sighandler(), remove ↵Sven Gothel2022-01-171-3/+0
| | | | own sighandler
* BTAdapter::l2cap_att_srv: Have l2cap_service start/stop open and close the ↵Sven Gothel2022-01-171-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 noexceptSven Gothel2022-01-171-2/+2
|
* Add BTAdapter::setServerConnSecurity(..)Sven Gothel2022-01-131-0/+16
|
* BTDevice::setConnSecurity*(..): Consolidate write methods to ↵Sven Gothel2022-01-131-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 Gothel2022-01-121-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_tSven Gothel2022-01-121-1/+3
|
* BTDevice::l2cap_att: Use as unique_ptr reference to be replaced, allow ↵Sven Gothel2022-01-121-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 Gothel2022-01-121-25/+81
|
* Add BTManager::setDefaultConnParam(..) using new ↵Sven Gothel2022-01-121-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 Gothel2022-01-121-2/+146
| | | | MgmtReadDefaultConnParamCmd and MgmtSetDefaultConnParamU16Cmd
* BTManager: Use jau::service_runnerSven Gothel2022-01-121-7/+4
|
* HCIHandler: Use jau::service_runnerSven Gothel2022-01-121-7/+4
|
* BTGattHandler: Add 'noexcept' to l2capReader CallbacksSven Gothel2022-01-121-3/+3
|
* BTGattHandler: Use jau::service_runnerSven Gothel2022-01-121-8/+5
|
* API Doc: Add EInfoReport references to GAPFlags and EIRDataType[Set]; Fix ↵Sven Gothel2022-01-041-0/+4
| | | | Java's EInfoReport API doc header
* BTAdapter: Add startAdvertising(..) overload with user given EInfoReport and ↵Sven Gothel2022-01-042-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 Gothel2022-01-041-201/+242
| | | | range; Add Java GAPFlags mapping.
* Move JAVA_*_PACKAGE define BTType[0->1].hppSven Gothel2022-01-042-3/+3
|
* EIRDataType[Set]: Add CONN_IVAL for Slave Connection Interval Range ↵Sven Gothel2022-01-041-0/+1
| | | | (Supplement, Part A, section 1.9)