Version: v0.0.0-...-d71acd9 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2021 License: BSD-3-Clause Imports: 14 Imported by: 0




This section is empty.


This section is empty.


This section is empty.


type Client

type Client struct {
	// contains filtered or unexported fields

A Client is a GATT client.

func NewClient

func NewClient(c ble.Conn) (*Client, error)

NewClient ...

func (*Client) Addr

func (cln *Client) Addr() ble.Addr

Addr returns UUID of the remote peripheral.

func (*Client) CancelConnection

func (cln *Client) CancelConnection() error

CancelConnection disconnects the connection.

func (*Client) ClearSubscriptions

func (cln *Client) ClearSubscriptions() error

ClearSubscriptions clears all subscriptions to notifications and indications.

func (*Client) Conn

func (cln *Client) Conn() ble.Conn

Conn returns the client's current connection.

func (*Client) Disconnected

func (cln *Client) Disconnected() <-chan struct{}

Disconnected returns a receiving channel, which is closed when the client disconnects.

func (*Client) DiscoverCharacteristics

func (cln *Client) DiscoverCharacteristics(cs []ble.UUID, s *ble.Service) ([]*ble.Characteristic, error)

DiscoverCharacteristics finds all the characteristics within a service. [Vol 3, Part G, 4.6.1] If filter is specified, only filtered characteristics are returned.

func (*Client) DiscoverDescriptors

func (cln *Client) DiscoverDescriptors(ds []ble.UUID, c *ble.Characteristic) ([]*ble.Descriptor, error)

DiscoverDescriptors finds all the descriptors within a characteristic. [Vol 3, Part G, 4.7.1] If filter is specified, only filtered descriptors are returned.

func (*Client) DiscoverIncludedServices

func (cln *Client) DiscoverIncludedServices(ss []ble.UUID, s *ble.Service) ([]*ble.Service, error)

DiscoverIncludedServices finds the included services of a service. [Vol 3, Part G, 4.5.1] If filter is specified, only filtered services are returned.

func (*Client) DiscoverProfile

func (cln *Client) DiscoverProfile(force bool) (*ble.Profile, error)

DiscoverProfile discovers the whole hierarchy of a server.

func (*Client) DiscoverServices

func (cln *Client) DiscoverServices(ss []ble.UUID) ([]*ble.Service, error)

DiscoverServices finds all the primary services on a server. [Vol 3, Part G, 4.4.1] If filter is specified, only filtered services are returned.

func (*Client) ExchangeMTU

func (cln *Client) ExchangeMTU(mtu int) (int, error)

ExchangeMTU set the ATT_MTU to the maximum possible value that can be supported by both devices [Vol 3, Part G, 4.3.1]

func (*Client) Name

func (cln *Client) Name() string

Name returns the name of the remote peripheral. This can be the advertised name, if exists, or the GAP device name, which takes priority.

func (*Client) Profile

func (cln *Client) Profile() *ble.Profile

Profile returns the discovered profile.

func (*Client) ReadCharacteristic

func (cln *Client) ReadCharacteristic(c *ble.Characteristic) ([]byte, error)

ReadCharacteristic reads a characteristic value from a server. [Vol 3, Part G, 4.8.1]

func (*Client) ReadDescriptor

func (cln *Client) ReadDescriptor(d *ble.Descriptor) ([]byte, error)

ReadDescriptor reads a characteristic descriptor from a server. [Vol 3, Part G, 4.12.1]

func (*Client) ReadLongCharacteristic

func (cln *Client) ReadLongCharacteristic(c *ble.Characteristic) ([]byte, error)

ReadLongCharacteristic reads a characteristic value which is longer than the MTU. [Vol 3, Part G, 4.8.3]

func (*Client) ReadRSSI

func (cln *Client) ReadRSSI() int

ReadRSSI retrieves the current RSSI value of remote peripheral. [Vol 2, Part E, 7.5.4]

func (*Client) Subscribe

func (cln *Client) Subscribe(c *ble.Characteristic, ind bool, fn ble.NotificationHandler) error

Subscribe subscribes to indication (if ind is set true), or notification of a characteristic value. [Vol 3, Part G, 4.10 & 4.11]

func (*Client) Unsubscribe

func (cln *Client) Unsubscribe(c *ble.Characteristic, ind bool) error

Unsubscribe unsubscribes to indication (if ind is set true), or notification of a specified characteristic value. [Vol 3, Part G, 4.10 & 4.11]

func (*Client) WriteCharacteristic

func (cln *Client) WriteCharacteristic(c *ble.Characteristic, b []byte, noRsp bool) error

WriteCharacteristic writes a characteristic value to a server. [Vol 3, Part G, 4.9.3]

func (*Client) WriteDescriptor

func (cln *Client) WriteDescriptor(d *ble.Descriptor, b []byte) error

WriteDescriptor writes a characteristic descriptor to a server. [Vol 3, Part G, 4.12.3]

type Device

type Device struct {
	// contains filtered or unexported fields

Device is either a Peripheral or Central device.

func NewDevice

func NewDevice(opts ...ble.Option) (*Device, error)

NewDevice returns a BLE device.

func (*Device) AddService

func (d *Device) AddService(s *ble.Service) error

AddService adds a service to device's database. The following services are ignored as they are provided by OS X.

0x1800 (Generic Access) 0x1801 (Generic Attribute) 0x1805 (Current Time Service) 0x180A (Device Information) 0x180F (Battery Service) 0x1812 (Human Interface Device)

func (*Device) Advertise

func (d *Device) Advertise(ctx context.Context, adv ble.Advertisement) error

Advertise advertises the given Advertisement

func (*Device) AdvertiseIBeacon

func (d *Device) AdvertiseIBeacon(ctx context.Context, u ble.UUID, major, minor uint16, pwr int8) error

AdvertiseIBeacon advertises iBeacon packet.

func (*Device) AdvertiseIBeaconData

func (d *Device) AdvertiseIBeaconData(ctx context.Context, md []byte) error

AdvertiseIBeaconData advertises iBeacon packet with specified manufacturer data.

func (*Device) AdvertiseMfgData

func (d *Device) AdvertiseMfgData(ctx context.Context, id uint16, md []byte) error

AdvertiseMfgData ...

func (*Device) AdvertiseNameAndServices

func (d *Device) AdvertiseNameAndServices(ctx context.Context, name string, ss ...ble.UUID) error

AdvertiseNameAndServices advertises name and specifid service UUIDs.

func (*Device) AdvertiseServiceData16

func (d *Device) AdvertiseServiceData16(ctx context.Context, id uint16, b []byte) error

AdvertiseServiceData16 advertises data associated with a 16bit service uuid

func (*Device) Dial

func (d *Device) Dial(ctx context.Context, a ble.Addr) (ble.Client, error)

Dial ...

func (*Device) HandleXpcEvent

func (d *Device) HandleXpcEvent(event xpc.Dict, err error)

HandleXpcEvent process Device events and asynchronous errors.

func (*Device) Init

func (d *Device) Init() error

Init ...

func (*Device) Option

func (d *Device) Option(opts ...ble.Option) error

Option sets the options specified.

func (*Device) RemoveAllServices

func (d *Device) RemoveAllServices() error

RemoveAllServices removes all services of device's

func (*Device) Scan

func (d *Device) Scan(ctx context.Context, allowDup bool, h ble.AdvHandler) error

Scan ...

func (*Device) SetAdvParams

func (d *Device) SetAdvParams(param cmd.LESetAdvertisingParameters) error

SetAdvParams overrides default advertising parameters.

func (*Device) SetCentralRole

func (d *Device) SetCentralRole() error

SetCentralRole configures the device to perform Central tasks.

func (*Device) SetConnParams

func (d *Device) SetConnParams(param cmd.LECreateConnection) error

SetConnParams overrides default connection parameters.

func (*Device) SetConnectedHandler

func (d *Device) SetConnectedHandler(f func(evt.LEConnectionComplete)) error

SetConnectedHandler sets handler to be called when new connection is established.

func (*Device) SetDeviceID

func (d *Device) SetDeviceID(id int) error

SetDeviceID sets HCI device ID.

func (*Device) SetDialerTimeout

func (d *Device) SetDialerTimeout(dur time.Duration) error

SetDialerTimeout sets dialing timeout for Dialer.

func (*Device) SetDisconnectedHandler

func (d *Device) SetDisconnectedHandler(f func(evt.DisconnectionComplete)) error

SetDisconnectedHandler sets handler to be called on disconnect.

func (*Device) SetListenerTimeout

func (d *Device) SetListenerTimeout(dur time.Duration) error

SetListenerTimeout sets dialing timeout for Listener.

func (*Device) SetPeripheralRole

func (d *Device) SetPeripheralRole() error

SetPeripheralRole configures the device to perform Peripheral tasks.

func (*Device) SetScanParams

func (d *Device) SetScanParams(param cmd.LESetScanParameters) error

SetScanParams overrides default scanning parameters.

func (*Device) SetServices

func (d *Device) SetServices(ss []*ble.Service) error

SetServices ...

func (*Device) Stop

func (d *Device) Stop() error

Stop ...

type State

type State int

State ...

const (
	StateUnknown      State = 0
	StateResetting    State = 1
	StateUnsupported  State = 2
	StateUnauthorized State = 3
	StatePoweredOff   State = 4
	StatePoweredOn    State = 5

State ...

func (State) String

func (s State) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL