bluez

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleRequest

func HandleRequest(conn net.Conn, req Request, manager *Manager)

Types

type BluetoothEvent

type BluetoothEvent struct {
	Type string         `json:"type"`
	Data BluetoothState `json:"data"`
}

type BluetoothState

type BluetoothState struct {
	Powered          bool     `json:"powered"`
	Discovering      bool     `json:"discovering"`
	Devices          []Device `json:"devices"`
	PairedDevices    []Device `json:"pairedDevices"`
	ConnectedDevices []Device `json:"connectedDevices"`
}

type BluezAgent

type BluezAgent struct {
	// contains filtered or unexported fields
}

func NewBluezAgent

func NewBluezAgent(broker PromptBroker) (*BluezAgent, error)

func (*BluezAgent) AuthorizeService

func (a *BluezAgent) AuthorizeService(device dbus.ObjectPath, uuid string) *dbus.Error

func (*BluezAgent) Cancel

func (a *BluezAgent) Cancel() *dbus.Error

func (*BluezAgent) Close

func (a *BluezAgent) Close()

func (*BluezAgent) DisplayPasskey

func (a *BluezAgent) DisplayPasskey(device dbus.ObjectPath, passkey uint32, entered uint16) *dbus.Error

func (*BluezAgent) DisplayPinCode

func (a *BluezAgent) DisplayPinCode(device dbus.ObjectPath, pincode string) *dbus.Error

func (*BluezAgent) Introspect

func (a *BluezAgent) Introspect() (string, *dbus.Error)

func (*BluezAgent) Release

func (a *BluezAgent) Release() *dbus.Error

func (*BluezAgent) RequestAuthorization

func (a *BluezAgent) RequestAuthorization(device dbus.ObjectPath) *dbus.Error

func (*BluezAgent) RequestConfirmation

func (a *BluezAgent) RequestConfirmation(device dbus.ObjectPath, passkey uint32) *dbus.Error

func (*BluezAgent) RequestPasskey

func (a *BluezAgent) RequestPasskey(device dbus.ObjectPath) (uint32, *dbus.Error)

func (*BluezAgent) RequestPinCode

func (a *BluezAgent) RequestPinCode(device dbus.ObjectPath) (string, *dbus.Error)

type Device

type Device struct {
	Path          string `json:"path"`
	Address       string `json:"address"`
	Name          string `json:"name"`
	Alias         string `json:"alias"`
	Paired        bool   `json:"paired"`
	Trusted       bool   `json:"trusted"`
	Blocked       bool   `json:"blocked"`
	Connected     bool   `json:"connected"`
	Class         uint32 `json:"class"`
	Icon          string `json:"icon"`
	RSSI          int16  `json:"rssi"`
	LegacyPairing bool   `json:"legacyPairing"`
}

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager() (*Manager, error)

func (*Manager) CancelPairing

func (m *Manager) CancelPairing(token string) error

func (*Manager) Close

func (m *Manager) Close()

func (*Manager) ConnectDevice

func (m *Manager) ConnectDevice(devicePath string) error

func (*Manager) DisconnectDevice

func (m *Manager) DisconnectDevice(devicePath string) error

func (*Manager) GetState

func (m *Manager) GetState() BluetoothState

func (*Manager) PairDevice

func (m *Manager) PairDevice(devicePath string) error

func (*Manager) RemoveDevice

func (m *Manager) RemoveDevice(devicePath string) error

func (*Manager) SetPowered

func (m *Manager) SetPowered(powered bool) error

func (*Manager) StartDiscovery

func (m *Manager) StartDiscovery() error

func (*Manager) StopDiscovery

func (m *Manager) StopDiscovery() error

func (*Manager) SubmitPairing

func (m *Manager) SubmitPairing(token string, secrets map[string]string, accept bool) error

func (*Manager) Subscribe

func (m *Manager) Subscribe(id string) chan BluetoothState

func (*Manager) SubscribePairing

func (m *Manager) SubscribePairing(id string) chan PairingPrompt

func (*Manager) TrustDevice

func (m *Manager) TrustDevice(devicePath string, trusted bool) error

func (*Manager) Unsubscribe

func (m *Manager) Unsubscribe(id string)

func (*Manager) UnsubscribePairing

func (m *Manager) UnsubscribePairing(id string)

type PairingPrompt

type PairingPrompt struct {
	Token       string   `json:"token"`
	DevicePath  string   `json:"devicePath"`
	DeviceName  string   `json:"deviceName"`
	DeviceAddr  string   `json:"deviceAddr"`
	RequestType string   `json:"requestType"`
	Fields      []string `json:"fields"`
	Hints       []string `json:"hints"`
	Passkey     *uint32  `json:"passkey,omitempty"`
}

type PromptBroker

type PromptBroker interface {
	Ask(ctx context.Context, req PromptRequest) (token string, err error)
	Wait(ctx context.Context, token string) (PromptReply, error)
	Resolve(token string, reply PromptReply) error
}

func NewSubscriptionBroker

func NewSubscriptionBroker(broadcastPrompt func(PairingPrompt)) PromptBroker

type PromptReply

type PromptReply struct {
	Secrets map[string]string `json:"secrets"`
	Accept  bool              `json:"accept"`
	Cancel  bool              `json:"cancel"`
}

type PromptRequest

type PromptRequest struct {
	DevicePath  string   `json:"devicePath"`
	DeviceName  string   `json:"deviceName"`
	DeviceAddr  string   `json:"deviceAddr"`
	RequestType string   `json:"requestType"`
	Fields      []string `json:"fields"`
	Hints       []string `json:"hints"`
	Passkey     *uint32  `json:"passkey,omitempty"`
}

type Request

type Request struct {
	ID     int                    `json:"id,omitempty"`
	Method string                 `json:"method"`
	Params map[string]interface{} `json:"params,omitempty"`
}

type SubscriptionBroker

type SubscriptionBroker struct {
	// contains filtered or unexported fields
}

func (*SubscriptionBroker) Ask

func (*SubscriptionBroker) Resolve

func (b *SubscriptionBroker) Resolve(token string, reply PromptReply) error

func (*SubscriptionBroker) Wait

func (b *SubscriptionBroker) Wait(ctx context.Context, token string) (PromptReply, error)

type SuccessResult

type SuccessResult struct {
	Success bool   `json:"success"`
	Message string `json:"message"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL