pub struct PeripheralProxy { /* private fields */ }
Implementations§
Source§impl PeripheralProxy
impl PeripheralProxy
Sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.bluetooth.le/Peripheral.
Sourcepub fn take_event_stream(&self) -> PeripheralEventStream
pub fn take_event_stream(&self) -> PeripheralEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn listen_l2cap(
&self,
payload: ChannelListenerRegistryListenL2capRequest,
) -> QueryResponseFut<ChannelListenerRegistryListenL2capResult, DefaultFuchsiaResourceDialect>
pub fn listen_l2cap( &self, payload: ChannelListenerRegistryListenL2capRequest, ) -> QueryResponseFut<ChannelListenerRegistryListenL2capResult, DefaultFuchsiaResourceDialect>
Register a listener for incoming channels. The registry will assign a
PSM value that is unique for the local device, as well as open a
[ChannelListener
] for accepting incoming channels. In the unlikely
event that all PSMs have been assigned, this call will fail with
ZX_ERR_NO_RESOURCES
.
Note that the method of service discovery or advertising is defined by the service or protocol, so it is the responsibility of the caller to communicate the assigned PSM to any clients.
Sourcepub fn advertise(
&self,
parameters: &AdvertisingParameters,
advertised_peripheral: ClientEnd<AdvertisedPeripheralMarker>,
) -> QueryResponseFut<PeripheralAdvertiseResult, DefaultFuchsiaResourceDialect>
pub fn advertise( &self, parameters: &AdvertisingParameters, advertised_peripheral: ClientEnd<AdvertisedPeripheralMarker>, ) -> QueryResponseFut<PeripheralAdvertiseResult, DefaultFuchsiaResourceDialect>
Start advertising continuously as a LE peripheral. If advertising cannot
be initiated then advertised_peripheral
will be closed and an error
will be returned.
This method may be called any number of times. To reconfigure an advertisement, first close the original advertisement and then initiate a new advertisement after an empty response is returned.
If the client closes its end of the
[fuchsia.bluetooth.le/AdvertisedPeripheral
] channel,
advertising will be stopped. If the handle is closed before the request
is fulfilled, advertising may be briefly enabled before it is
terminated. AdvertisedPeripheral lifetime is bounded by the lifetime of
the Peripheral protocol, but this may be changed in the future
(https://fxbug.dev/42157682).
- request
parameters
Parameters used while configuring the advertising instance. - request
advertised_peripheral
Protocol that remains valid for the duration of this advertising session.
- response An empty response will be sent when the advertisement is
successfully stopped (due to release of the
advertised_peripheral
protocol). To prevent overlapping similar advertisements and transient errors with limited advertising resources, waiting for a response is recommended before callingAdvertise
again.
- error If an error occurs,
advertised_peripheral
will be closed and aPeripheralError
will be returned.
Sourcepub fn start_advertising(
&self,
parameters: &AdvertisingParameters,
handle: ServerEnd<AdvertisingHandleMarker>,
) -> QueryResponseFut<PeripheralStartAdvertisingResult, DefaultFuchsiaResourceDialect>
pub fn start_advertising( &self, parameters: &AdvertisingParameters, handle: ServerEnd<AdvertisingHandleMarker>, ) -> QueryResponseFut<PeripheralStartAdvertisingResult, DefaultFuchsiaResourceDialect>
Start advertising as a LE peripheral. An empty response is sent to indicate when advertising
has successfully initiated. If advertising cannot be initiated, then the response will
contain a [fuchsia.bluetooth.le/PeripheralError
].
This method can get called any number of times and successive calls can be made to
reconfigure the advertising parameters. However only the most recent
[fuchsia.bluetooth.le/AdvertisingHandle
] will remain valid.
An instance of [fuchsia.bluetooth.le/Peripheral
] can only have one active advertisement at
a time. Clients must obtain multiple Peripheral instances for multiple simultaneous
advertisements.
If the client closes its end of the [fuchsia.bluetooth.le/AdvertisingHandle
] channel,
advertising will be stopped. If the handle is closed before the request is fulfilled,
advertising will be briefly enabled before it is terminated.
- request
parameters
Parameters used while configuring the advertising instance. - request
handle
Handle that remains valid for the duration of this advertising session.
- error Returns a [
fuchsia.bluetooth.le/PeripheralError
] if advertising cannot be initiated. In this case thehandle
will be closed.
Trait Implementations§
Source§impl Clone for PeripheralProxy
impl Clone for PeripheralProxy
Source§fn clone(&self) -> PeripheralProxy
fn clone(&self) -> PeripheralProxy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for PeripheralProxy
impl Debug for PeripheralProxy
Source§impl PeripheralProxyInterface for PeripheralProxy
impl PeripheralProxyInterface for PeripheralProxy
type ListenL2capResponseFut = QueryResponseFut<Result<ChannelListenerRegistryListenL2capResponse, i32>>
type AdvertiseResponseFut = QueryResponseFut<Result<(), PeripheralError>>
type StartAdvertisingResponseFut = QueryResponseFut<Result<(), PeripheralError>>
fn listen_l2cap( &self, payload: ChannelListenerRegistryListenL2capRequest, ) -> Self::ListenL2capResponseFut
fn advertise( &self, parameters: &AdvertisingParameters, advertised_peripheral: ClientEnd<AdvertisedPeripheralMarker>, ) -> Self::AdvertiseResponseFut
fn start_advertising( &self, parameters: &AdvertisingParameters, handle: ServerEnd<AdvertisingHandleMarker>, ) -> Self::StartAdvertisingResponseFut
Source§impl Proxy for PeripheralProxy
impl Proxy for PeripheralProxy
Source§type Protocol = PeripheralMarker
type Protocol = PeripheralMarker
Proxy
controls.Source§fn from_channel(inner: AsyncChannel) -> Self
fn from_channel(inner: AsyncChannel) -> Self
Source§fn into_channel(self) -> Result<AsyncChannel, Self>
fn into_channel(self) -> Result<AsyncChannel, Self>
Source§fn as_channel(&self) -> &AsyncChannel
fn as_channel(&self) -> &AsyncChannel
§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
Auto Trait Implementations§
impl Freeze for PeripheralProxy
impl !RefUnwindSafe for PeripheralProxy
impl Send for PeripheralProxy
impl Sync for PeripheralProxy
impl Unpin for PeripheralProxy
impl !UnwindSafe for PeripheralProxy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)