Documentation
¶
Index ¶
- Constants
- Variables
- func ValidateConnParams(p cmd.LECreateConnection) error
- func ValidateScanParams(p cmd.LESetScanParameters) error
- type Advertisement
- func (a *Advertisement) Addr() ble.Addr
- func (a *Advertisement) AddrType() uint8
- func (a *Advertisement) Connectable() bool
- func (a *Advertisement) Data() []byte
- func (a *Advertisement) EventType() uint8
- func (a *Advertisement) LocalName() string
- func (a *Advertisement) ManufacturerData() []byte
- func (a *Advertisement) OverflowService() []ble.UUID
- func (a *Advertisement) RSSI() int
- func (a *Advertisement) ScanResponse() []byte
- func (a *Advertisement) ServiceData() []ble.ServiceData
- func (a *Advertisement) Services() []ble.UUID
- func (a *Advertisement) SolicitedService() []ble.UUID
- func (a *Advertisement) Timestamp() int64
- func (a *Advertisement) ToMap() (map[string]interface{}, error)
- func (a *Advertisement) TxPowerLevel() int
- type BondInfo
- type BondManager
- type Client
- type Command
- type CommandRP
- type CommandReject
- type Conn
- func (c *Conn) Close() error
- func (c *Conn) Context() context.Context
- func (c *Conn) Disconnected() <-chan struct{}
- func (c *Conn) LECreditBasedConnectionRequest(s sigCmd)
- func (c *Conn) LEFlowControlCredit(s sigCmd)
- func (c *Conn) LocalAddr() ble.Addr
- func (c *Conn) Pair(authData ble.AuthData, to time.Duration) error
- func (c *Conn) Read(sdu []byte) (n int, err error)
- func (c *Conn) RemoteAddr() ble.Addr
- func (c *Conn) RxMTU() int
- func (c *Conn) SetContext(ctx context.Context)
- func (c *Conn) SetRxMTU(mtu int)
- func (c *Conn) SetTxMTU(mtu int)
- func (c *Conn) Signal(req Signal, rsp Signal) error
- func (c *Conn) StartEncryption(ch chan ble.EncryptionChangedInfo) error
- func (c *Conn) TxMTU() int
- func (c *Conn) Write(sdu []byte) (int, error)
- type ConnectionParameterUpdateRequest
- type ConnectionParameterUpdateResponse
- type CustomCommand
- type DisconnectRequest
- type DisconnectResponse
- type Encrypter
- type ErrCommand
- type HCI
- func (h *HCI) Accept() (ble.Conn, error)
- func (h *HCI) Addr() ble.Addr
- func (h *HCI) Advertise() error
- func (h *HCI) AdvertiseAdv(a ble.Advertisement) error
- func (h *HCI) AdvertiseIBeacon(u ble.UUID, major, minor uint16, pwr int8) error
- func (h *HCI) AdvertiseIBeaconData(md []byte) error
- func (h *HCI) AdvertiseMfgData(id uint16, md []byte) error
- func (h *HCI) AdvertiseNameAndServices(name string, uuids ...ble.UUID) error
- func (h *HCI) AdvertiseServiceData16(id uint16, b []byte) error
- func (h *HCI) Bytes() []byte
- func (h *HCI) Close() error
- func (h *HCI) Dial(ctx context.Context, a ble.Addr) (ble.Client, error)
- func (h *HCI) EnableSecurity(bm interface{}) error
- func (h *HCI) Error() error
- func (h *HCI) Init() error
- func (h *HCI) NOP() error
- func (h *HCI) Option(opts ...ble.Option) error
- func (h *HCI) Scan(allowDup bool) error
- func (h *HCI) Send(c Command, r CommandRP) error
- func (h *HCI) SendVendorSpecificCommand(op uint16, length uint8, v interface{}) error
- func (h *HCI) SetAdvHandler(ah ble.AdvHandler) error
- func (h *HCI) SetAdvHandlerSync(sync bool) error
- func (h *HCI) SetAdvParams(param cmd.LESetAdvertisingParameters) error
- func (h *HCI) SetAdvertisement(ad []byte, sr []byte) error
- func (h *HCI) SetCentralRole() error
- func (h *HCI) SetConnParams(param cmd.LECreateConnection) error
- func (h *HCI) SetDialerTimeout(d time.Duration) error
- func (h *HCI) SetErrorHandler(handler func(error)) error
- func (h *HCI) SetGattCacheFile(filename string)
- func (h *HCI) SetListenerTimeout(d time.Duration) error
- func (h *HCI) SetPeripheralRole() error
- func (h *HCI) SetScanParams(param cmd.LESetScanParameters) error
- func (h *HCI) SetTransportH4Socket(addr string, timeout time.Duration) error
- func (h *HCI) SetTransportH4Uart(path string, baud int) error
- func (h *HCI) SetTransportHCISocket(id int) error
- func (h *HCI) StopAdvertising() error
- func (h *HCI) StopScanning() error
- type LECreditBasedConnectionRequest
- type LECreditBasedConnectionResponse
- type LEFlowControlCredit
- type OobDataFlag
- type Pool
- type RandomAddress
- type Signal
- type SmpConfig
- type SmpManager
- type SmpManagerFactory
Constants ¶
const ( AddressTypePublic = 0 AddressTypeRandom = 1 FilterPolicyAcceptAll = 0 FilterPolicyAcceptWhitelist = 1 LEScanTypePassive = 0 LEScanTypeActive = 1 LEScanIntervalMin = 0x0004 LEScanIntervalMax = 0x4000 LEScanWindowMin = 0x0004 LEScanWindowMax = 0x4000 ConnIntervalMin = 0x0006 ConnIntervalMax = 0x0c80 ConnLatencyMin = 0x0000 ConnLatencyMax = 0x01f3 SupervisionTimeoutMin = 0x000a SupervisionTimeoutMax = 0x0c80 CELengthMin = 0x0000 CELengthMax = 0xffff )
const ( IoCapsDisplayOnly = 0x00 IoCapsDisplayYesNo = 0x01 IoCapsKeyboardOnly = 0x02 IoCapsNone = 0x03 IoCapsKeyboardDisplay = 0x04 IoCapsReservedStart = 0x05 )
const (
CidSMP uint16 = 0x06 // SecurityManager Protocol [Vol 3, Part H].
)
L2CAP Channel Identifier namespace for LE-U logical link [Vol 3, Part A, 2.1].
const SignalCommandReject = 0x01
SignalCommandReject is the code of Command Reject signaling packet.
const SignalConnectionParameterUpdateRequest = 0x12
SignalConnectionParameterUpdateRequest is the code of Connection Parameter Update Request signaling packet.
const SignalConnectionParameterUpdateResponse = 0x13
SignalConnectionParameterUpdateResponse is the code of Connection Parameter Update Response signaling packet.
const SignalDisconnectRequest = 0x06
SignalDisconnectRequest is the code of Disconnect Request signaling packet.
const SignalDisconnectResponse = 0x07
SignalDisconnectResponse is the code of Disconnect Response signaling packet.
const SignalLECreditBasedConnectionRequest = 0x14
SignalLECreditBasedConnectionRequest is the code of LE Credit Based Connection Request signaling packet.
const SignalLECreditBasedConnectionResponse = 0x15
SignalLECreditBasedConnectionResponse is the code of LE Credit Based Connection Response signaling packet.
const SignalLEFlowControlCredit = 0x16
SignalLEFlowControlCredit is the code of LE Flow Control Credit signaling packet.
Variables ¶
var ( ErrBusyScanning = errors.New("busy scanning") ErrBusyAdvertising = errors.New("busy advertising") ErrBusyDialing = errors.New("busy dialing") ErrBusyListening = errors.New("busy listening") ErrInvalidAddr = errors.New("invalid address") )
errors
Functions ¶
func ValidateConnParams ¶ added in v0.5.7
func ValidateConnParams(p cmd.LECreateConnection) error
func ValidateScanParams ¶ added in v0.5.7
func ValidateScanParams(p cmd.LESetScanParameters) error
Types ¶
type Advertisement ¶
type Advertisement struct {
// contains filtered or unexported fields
}
Advertisement implements ble.Advertisement and other functions that are only available on Linux.
func (*Advertisement) Addr ¶
func (a *Advertisement) Addr() ble.Addr
Addr returns the address of the remote peripheral.
func (*Advertisement) AddrType ¶ added in v0.5.6
func (a *Advertisement) AddrType() uint8
AddressType returns the address type of the Advertisement. This is linux specific.
func (*Advertisement) Connectable ¶
func (a *Advertisement) Connectable() bool
Connectable indicates weather the remote peripheral is connectable.
func (*Advertisement) Data ¶
func (a *Advertisement) Data() []byte
Data returns the advertising data of the packet. This is linux specific.
func (*Advertisement) EventType ¶
func (a *Advertisement) EventType() uint8
EventType returns the event type of Advertisement. This is linux specific.
func (*Advertisement) LocalName ¶
func (a *Advertisement) LocalName() string
LocalName returns the LocalName of the remote peripheral.
func (*Advertisement) ManufacturerData ¶
func (a *Advertisement) ManufacturerData() []byte
ManufacturerData returns the ManufacturerData of the advertisement.
func (*Advertisement) OverflowService ¶
func (a *Advertisement) OverflowService() []ble.UUID
OverflowService returns the UUIDs of overflowed service.
func (*Advertisement) ScanResponse ¶
func (a *Advertisement) ScanResponse() []byte
ScanResponse returns the scan response of the packet, if it presents. This is linux specific.
func (*Advertisement) ServiceData ¶
func (a *Advertisement) ServiceData() []ble.ServiceData
ServiceData returns the service data of the advertisement.
func (*Advertisement) Services ¶
func (a *Advertisement) Services() []ble.UUID
Services returns the service UUIDs of the advertisement.
func (*Advertisement) SolicitedService ¶
func (a *Advertisement) SolicitedService() []ble.UUID
SolicitedService returns UUIDs of solicited services.
func (*Advertisement) Timestamp ¶ added in v0.5.7
func (a *Advertisement) Timestamp() int64
func (*Advertisement) ToMap ¶
func (a *Advertisement) ToMap() (map[string]interface{}, error)
func (*Advertisement) TxPowerLevel ¶
func (a *Advertisement) TxPowerLevel() int
TxPowerLevel returns the tx power level of the remote peripheral.
type BondManager ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client ...
func (*Client) Put ¶
func (c *Client) Put()
Put puts the oldest sent buffer back to the shared pool.
type CommandReject ¶
CommandReject implements Command Reject (0x01) [Vol 3, Part A, 4.1].
func (CommandReject) Code ¶
func (s CommandReject) Code() int
Code returns the event code of the command.
func (*CommandReject) Marshal ¶
func (s *CommandReject) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*CommandReject) Unmarshal ¶
func (s *CommandReject) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type Conn ¶ added in v0.5.0
Conn ...
func (*Conn) Close ¶ added in v0.5.0
Close disconnects the connection by sending hci disconnect command to the device.
func (*Conn) Disconnected ¶ added in v0.5.0
func (c *Conn) Disconnected() <-chan struct{}
Disconnected returns a receiving channel, which is closed when the connection disconnects.
func (*Conn) LECreditBasedConnectionRequest ¶ added in v0.5.0
func (c *Conn) LECreditBasedConnectionRequest(s sigCmd)
LECreditBasedConnectionRequest ...
func (*Conn) LEFlowControlCredit ¶ added in v0.5.0
func (c *Conn) LEFlowControlCredit(s sigCmd)
LEFlowControlCredit ...
func (*Conn) RemoteAddr ¶ added in v0.5.0
RemoteAddr returns remote device's MAC address.
func (*Conn) RxMTU ¶ added in v0.5.0
RxMTU returns the MTU which the upper layer is capable of accepting.
func (*Conn) SetContext ¶ added in v0.5.0
SetContext sets the context that is used by this Conn.
func (*Conn) SetRxMTU ¶ added in v0.5.0
SetRxMTU sets the MTU which the upper layer is capable of accepting.
func (*Conn) SetTxMTU ¶ added in v0.5.0
SetTxMTU sets the MTU which the remote device is capable of accepting.
func (*Conn) StartEncryption ¶ added in v0.5.0
func (c *Conn) StartEncryption(ch chan ble.EncryptionChangedInfo) error
type ConnectionParameterUpdateRequest ¶
type ConnectionParameterUpdateRequest struct {
IntervalMin uint16
IntervalMax uint16
SlaveLatency uint16
TimeoutMultiplier uint16
}
ConnectionParameterUpdateRequest implements Connection Parameter Update Request (0x12) [Vol 3, Part A, 4.20].
func (ConnectionParameterUpdateRequest) Code ¶
func (s ConnectionParameterUpdateRequest) Code() int
Code returns the event code of the command.
func (*ConnectionParameterUpdateRequest) Marshal ¶
func (s *ConnectionParameterUpdateRequest) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*ConnectionParameterUpdateRequest) Unmarshal ¶
func (s *ConnectionParameterUpdateRequest) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type ConnectionParameterUpdateResponse ¶
type ConnectionParameterUpdateResponse struct {
Result uint16
}
ConnectionParameterUpdateResponse implements Connection Parameter Update Response (0x13) [Vol 3, Part A, 4.21].
func (ConnectionParameterUpdateResponse) Code ¶
func (s ConnectionParameterUpdateResponse) Code() int
Code returns the event code of the command.
func (*ConnectionParameterUpdateResponse) Marshal ¶
func (s *ConnectionParameterUpdateResponse) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*ConnectionParameterUpdateResponse) Unmarshal ¶
func (s *ConnectionParameterUpdateResponse) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type CustomCommand ¶ added in v0.6.3
type CustomCommand struct {
Payload interface{}
// contains filtered or unexported fields
}
func (*CustomCommand) Len ¶ added in v0.6.3
func (c *CustomCommand) Len() int
func (*CustomCommand) Marshal ¶ added in v0.6.3
func (c *CustomCommand) Marshal(b []byte) error
func (*CustomCommand) OpCode ¶ added in v0.6.3
func (c *CustomCommand) OpCode() int
func (*CustomCommand) String ¶ added in v0.6.3
func (c *CustomCommand) String() string
type DisconnectRequest ¶
DisconnectRequest implements Disconnect Request (0x06) [Vol 3, Part A, 4.6].
func (DisconnectRequest) Code ¶
func (s DisconnectRequest) Code() int
Code returns the event code of the command.
func (*DisconnectRequest) Marshal ¶
func (s *DisconnectRequest) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*DisconnectRequest) Unmarshal ¶
func (s *DisconnectRequest) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type DisconnectResponse ¶
DisconnectResponse implements Disconnect Response (0x07) [Vol 3, Part A, 4.7].
func (DisconnectResponse) Code ¶
func (s DisconnectResponse) Code() int
Code returns the event code of the command.
func (*DisconnectResponse) Marshal ¶
func (s *DisconnectResponse) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*DisconnectResponse) Unmarshal ¶
func (s *DisconnectResponse) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type ErrCommand ¶
type ErrCommand byte
ErrCommand [Vol2, Part D, 1.3 ]
const ( ErrUnknownCommand ErrCommand = 0x01 // Unknown HCI Command ErrConnID ErrCommand = 0x02 // Unknown Connection Identifier ErrHardware ErrCommand = 0x03 // Hardware Failure ErrPageTimeout ErrCommand = 0x04 // Page Timeout ErrAuth ErrCommand = 0x05 // Authentication Failure ErrPINMissing ErrCommand = 0x06 // PIN or Key Missing ErrMemoryCapacity ErrCommand = 0x07 // Memory Capacity Exceeded ErrConnTimeout ErrCommand = 0x08 // Connection Timeout ErrConnLimit ErrCommand = 0x09 // Connection Limit Exceeded ErrSCOConnLimit ErrCommand = 0x0A // Synchronous Connection Limit To A Device Exceeded ErrACLConnExists ErrCommand = 0x0B // ACL Connection Already Exists ErrDisallowed ErrCommand = 0x0C // Command Disallowed ErrLimitedResource ErrCommand = 0x0D // Connection Rejected due to Limited Resources ErrSecurity ErrCommand = 0x0E // Connection Rejected Due To Security Reasons ErrBDADDR ErrCommand = 0x0F // Connection Rejected due to Unacceptable BD_ADDR ErrConnAcceptTimeout ErrCommand = 0x10 // Connection Accept Timeout Exceeded ErrUnsupportedParams ErrCommand = 0x11 // Unsupported Feature or Parameter Value ErrInvalidParams ErrCommand = 0x12 // Invalid HCI Command Parameters ErrRemoteUser ErrCommand = 0x13 // Remote User Terminated Connection ErrRemoteLowResources ErrCommand = 0x14 // Remote Device Terminated Connection due to Low Resources ErrRemotePowerOff ErrCommand = 0x15 // Remote Device Terminated Connection due to Power Off ErrLocalHost ErrCommand = 0x16 // Connection Terminated By Local Host ErrRepeatedAttempts ErrCommand = 0x17 // Repeated Attempts ErrPairingNotAllowed ErrCommand = 0x18 // Pairing Not Allowed ErrUnknownLMP ErrCommand = 0x19 // Unknown LMP PDU ErrUnsupportedLMP ErrCommand = 0x1A // Unsupported Remote Feature / Unsupported LMP Feature ErrSCOOffset ErrCommand = 0x1B // SCO Offset Rejected ErrSCOInterval ErrCommand = 0x1C // SCO Interval Rejected ErrSCOAirMode ErrCommand = 0x1D // SCO Air Mode Rejected ErrInvalidLLParams ErrCommand = 0x1E // Invalid LMP Parameters / Invalid LL Parameters ErrUnspecified ErrCommand = 0x1F // Unspecified Error ErrUnsupportedLLParams ErrCommand = 0x20 // Unsupported LMP Parameter Value / Unsupported LL Parameter Value ErrRoleChangeNotAllowed ErrCommand = 0x21 // Role Change Not Allowed ErrLLResponseTimeout ErrCommand = 0x22 // LMP Response Timeout / LL Response Timeout ErrLMPTransColl ErrCommand = 0x23 // LMP Error Transaction Collision ErrLMPPDU ErrCommand = 0x24 // LMP PDU Not Allowed ErrEncNotAccepted ErrCommand = 0x25 // Encryption Mode Not Acceptable ErrLinkKey ErrCommand = 0x26 // Link Key cannot be Changed ErrQoSNotSupported ErrCommand = 0x27 // Requested QoS Not Supported ErrInstantPassed ErrCommand = 0x28 // Instant Passed ErrUnitKeyNotSupported ErrCommand = 0x29 // Pairing With Unit Key Not Supported ErrDifferentTransColl ErrCommand = 0x2A // Different Transaction Collision ErrQOSParameter ErrCommand = 0x2C // QoS Unacceptable Parameter ErrQOSReject ErrCommand = 0x2D // QoS Rejected ErrChannelClass ErrCommand = 0x2E // Channel Classification Not Supported ErrInsufficientSecurity ErrCommand = 0x2F // Insufficient Security ErrOutOfRange ErrCommand = 0x30 // Parameter Out Of Mandatory Range ErrRoleSwitchPending ErrCommand = 0x32 // Role Switch Pending ErrReservedSlot ErrCommand = 0x34 // Reserved Slot Violation ErrRoleSwitch ErrCommand = 0x35 // Role Switch Failed ErrEIRTooLarge ErrCommand = 0x36 // Extended Inquiry Response Too Large ErrSecureSimplePairing ErrCommand = 0x37 // Secure Simple Pairing Not Supported By Host ErrHostBusy ErrCommand = 0x38 // Host Busy - Pairing ErrNoChannel ErrCommand = 0x39 // Connection Rejected due to No Suitable Channel Found ErrControllerBusy ErrCommand = 0x3A // Controller Busy ErrConnParams ErrCommand = 0x3B // Unacceptable Connection Parameters ErrDirAdvTimeout ErrCommand = 0x3C // Directed Advertising Timeout ErrMIC ErrCommand = 0x3D // Connection Terminated due to MIC Failure ErrEstablished ErrCommand = 0x3E // Connection Failed to be Established ErrMACConn ErrCommand = 0x3F // MAC Connection Failed ErrCoarseClock ErrCommand = 0x40 // Coarse Clock Adjustment Rejected but Will Try to Adjust Using Clock Dragging )
HCI Command Errors [Vol2, Part D, 1.3 ] FIXME: Terrible shorthand. Name them properly.
func (ErrCommand) Error ¶
func (e ErrCommand) Error() string
type HCI ¶ added in v0.5.0
HCI ...
func NewHCI ¶ added in v0.5.0
func NewHCI(smp SmpManagerFactory, opts ...ble.Option) (*HCI, error)
NewHCI returns a hci device.
func (*HCI) AdvertiseAdv ¶ added in v0.5.0
func (h *HCI) AdvertiseAdv(a ble.Advertisement) error
AdvertiseAdv advertises a given Advertisement
func (*HCI) AdvertiseIBeacon ¶ added in v0.5.0
AdvertiseIBeacon advertises iBeacon with specified parameters.
func (*HCI) AdvertiseIBeaconData ¶ added in v0.5.0
AdvertiseIBeaconData advertise iBeacon with given manufacturer data.
func (*HCI) AdvertiseMfgData ¶ added in v0.5.0
AdvertiseMfgData avertises the given manufacturer data.
func (*HCI) AdvertiseNameAndServices ¶ added in v0.5.0
AdvertiseNameAndServices advertises device name, and specified service UUIDs. It tries to fit the UUIDs in the advertising data as much as possible. If name doesn't fit in the advertising data, it will be put in scan response.
func (*HCI) AdvertiseServiceData16 ¶ added in v0.5.0
AdvertiseServiceData16 advertises data associated with a 16bit service uuid
func (*HCI) EnableSecurity ¶ added in v0.5.0
func (*HCI) SendVendorSpecificCommand ¶ added in v0.6.3
func (*HCI) SetAdvHandler ¶ added in v0.5.0
func (h *HCI) SetAdvHandler(ah ble.AdvHandler) error
SetAdvHandler ...
func (*HCI) SetAdvHandlerSync ¶ added in v0.5.0
SetAdvHandlerSync overrides default advertising handler behavior (async)
func (*HCI) SetAdvParams ¶ added in v0.5.0
func (h *HCI) SetAdvParams(param cmd.LESetAdvertisingParameters) error
SetAdvParams overrides default advertising parameters.
func (*HCI) SetAdvertisement ¶ added in v0.5.0
SetAdvertisement sets advertising data and scanResp.
func (*HCI) SetCentralRole ¶ added in v0.5.0
SetCentralRole is not supported
func (*HCI) SetConnParams ¶ added in v0.5.0
func (h *HCI) SetConnParams(param cmd.LECreateConnection) error
SetConnParams overrides default connection parameters.
func (*HCI) SetDialerTimeout ¶ added in v0.5.0
SetDialerTimeout sets dialing timeout for Dialer.
func (*HCI) SetErrorHandler ¶ added in v0.5.0
SetErrorHandler ...
func (*HCI) SetGattCacheFile ¶ added in v0.5.5
func (*HCI) SetListenerTimeout ¶ added in v0.5.0
SetListenerTimeout sets dialing timeout for Listener.
func (*HCI) SetPeripheralRole ¶ added in v0.5.0
SetPeripheralRole is not supported
func (*HCI) SetScanParams ¶ added in v0.5.0
func (h *HCI) SetScanParams(param cmd.LESetScanParameters) error
SetScanParams overrides default scanning parameters.
func (*HCI) SetTransportH4Socket ¶ added in v0.5.4
SetTransportH4Socket sets h4 socket server
func (*HCI) SetTransportH4Uart ¶ added in v0.5.4
SetTransportH4Uart sets h4 uart path
func (*HCI) SetTransportHCISocket ¶ added in v0.5.4
SetTransportHCISocket sets HCI device for hci socket
func (*HCI) StopAdvertising ¶ added in v0.5.0
StopAdvertising stops advertising.
func (*HCI) StopScanning ¶ added in v0.5.0
StopScanning stops scanning.
type LECreditBasedConnectionRequest ¶
type LECreditBasedConnectionRequest struct {
LEPSM uint16
SourceCID uint16
MTU uint16
MPS uint16
InitialCredits uint16
}
LECreditBasedConnectionRequest implements LE Credit Based Connection Request (0x14) [Vol 3, Part A, 4.22].
func (LECreditBasedConnectionRequest) Code ¶
func (s LECreditBasedConnectionRequest) Code() int
Code returns the event code of the command.
func (*LECreditBasedConnectionRequest) Marshal ¶
func (s *LECreditBasedConnectionRequest) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*LECreditBasedConnectionRequest) Unmarshal ¶
func (s *LECreditBasedConnectionRequest) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type LECreditBasedConnectionResponse ¶
type LECreditBasedConnectionResponse struct {
DestinationCID uint16
MTU uint16
MPS uint16
InitialCreditsCID uint16
Result uint16
}
LECreditBasedConnectionResponse implements LE Credit Based Connection Response (0x15) [Vol 3, Part A, 4.23].
func (LECreditBasedConnectionResponse) Code ¶
func (s LECreditBasedConnectionResponse) Code() int
Code returns the event code of the command.
func (*LECreditBasedConnectionResponse) Marshal ¶
func (s *LECreditBasedConnectionResponse) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*LECreditBasedConnectionResponse) Unmarshal ¶
func (s *LECreditBasedConnectionResponse) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type LEFlowControlCredit ¶
LEFlowControlCredit implements LE Flow Control Credit (0x16) [Vol 3, Part A, 4.24].
func (LEFlowControlCredit) Code ¶
func (s LEFlowControlCredit) Code() int
Code returns the event code of the command.
func (*LEFlowControlCredit) Marshal ¶
func (s *LEFlowControlCredit) Marshal() ([]byte, error)
Marshal serializes the command parameters into binary form.
func (*LEFlowControlCredit) Unmarshal ¶
func (s *LEFlowControlCredit) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type RandomAddress ¶
RandomAddress is a Random Device Address.
type SmpConfig ¶
type SmpConfig struct {
IoCap, OobFlag, AuthReq, MaxKeySize, InitKeyDist, RespKeyDist byte
}
type SmpManager ¶
type SmpManager interface {
InitContext(localAddr, remoteAddr []byte,
localAddrType, remoteAddrType uint8)
Handle(data []byte) error
Pair(authData ble.AuthData, to time.Duration) error
BondInfoFor(addr string) BondInfo
DeleteBondInfo() error
StartEncryption() error
SetWritePDUFunc(func([]byte) (int, error))
SetEncryptFunc(func(BondInfo) error)
LegacyPairingInfo() (bool, []byte)
}
type SmpManagerFactory ¶
type SmpManagerFactory interface {
Create(SmpConfig, ble.Logger) SmpManager
SetBondManager(BondManager)
}