Documentation
¶
Index ¶
- Constants
- Variables
- func NewCoc(c *Conn, l ble.Logger) *coc
- 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) SrData() []byte
- 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) ConnectionHandle() uint8
- 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) OpenLECreditBasedConnection(psm uint16) (ble.LECreditBasedConnection, error)
- func (c *Conn) Pair(authData ble.AuthData, to time.Duration) error
- func (c *Conn) Read(sdu []byte) (n int, err error)
- func (c *Conn) ReadRSSI() (int8, 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, 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) 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 L2CAPConnectionRequest
- type L2CAPConnectionResponse
- type L2CAPCreditBasedConnectionRequest
- type L2CAPCreditBasedConnectionResponse
- 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 SignalL2CAPConnectionRequest = 0x02
SignalL2CAPConnectionRequest is the code of L2CAP Connection Request signaling packet.
const SignalL2CAPConnectionResponse = 0x03
SignalL2CAPConnectionResponse is the code of L2CAP Connection Response signaling packet.
const SignalL2CAPCreditBasedConnectionRequest = 0x17
SignalL2CAPCreditBasedConnectionRequest is the code of L2CAP Credit Based Connection Request signaling packet.
const SignalL2CAPCreditBasedConnectionResponse = 0x18
SignalL2CAPCreditBasedConnectionResponse is the code of L2CAP Credit Based Connection 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) SrData ¶ added in v0.6.11
func (a *Advertisement) SrData() []byte
SrData returns the scan response data of the packet. This is linux specific
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
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) ConnectionHandle ¶ added in v0.6.17
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) OpenLECreditBasedConnection ¶ added in v0.6.17
func (c *Conn) OpenLECreditBasedConnection(psm uint16) (ble.LECreditBasedConnection, error)
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
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
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
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
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 L2CAPConnectionRequest ¶ added in v0.6.17
L2CAPConnectionRequest implements L2CAP Connection Request (0x02) [Vol 3, Part A, 4.2].
func (L2CAPConnectionRequest) Code ¶ added in v0.6.17
func (s L2CAPConnectionRequest) Code() int
Code returns the event code of the command.
func (*L2CAPConnectionRequest) Marshal ¶ added in v0.6.17
func (s *L2CAPConnectionRequest) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPConnectionRequest) Unmarshal ¶ added in v0.6.17
func (s *L2CAPConnectionRequest) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type L2CAPConnectionResponse ¶ added in v0.6.17
type L2CAPConnectionResponse struct { DestinationCID uint16 SourceCID uint16 MTU uint16 Result uint16 Status uint16 }
L2CAPConnectionResponse implements L2CAP Connection Response (0x03) [Vol 3, Part A, 4.3].
func (L2CAPConnectionResponse) Code ¶ added in v0.6.17
func (s L2CAPConnectionResponse) Code() int
Code returns the event code of the command.
func (*L2CAPConnectionResponse) Marshal ¶ added in v0.6.17
func (s *L2CAPConnectionResponse) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPConnectionResponse) Unmarshal ¶ added in v0.6.17
func (s *L2CAPConnectionResponse) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type L2CAPCreditBasedConnectionRequest ¶ added in v0.6.17
type L2CAPCreditBasedConnectionRequest struct { SPSM uint16 MTU uint16 MPS uint16 InitialCredits uint16 SourceCID uint16 }
L2CAPCreditBasedConnectionRequest implements L2CAP Credit Based Connection Request (0x17) [Vol 3, Part A, 4.25].
func (L2CAPCreditBasedConnectionRequest) Code ¶ added in v0.6.17
func (s L2CAPCreditBasedConnectionRequest) Code() int
Code returns the event code of the command.
func (*L2CAPCreditBasedConnectionRequest) Marshal ¶ added in v0.6.17
func (s *L2CAPCreditBasedConnectionRequest) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPCreditBasedConnectionRequest) Unmarshal ¶ added in v0.6.17
func (s *L2CAPCreditBasedConnectionRequest) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type L2CAPCreditBasedConnectionResponse ¶ added in v0.6.17
type L2CAPCreditBasedConnectionResponse struct { MTU uint16 MPS uint16 InitialCreditsCID uint16 Result uint16 DestinationCID uint16 }
L2CAPCreditBasedConnectionResponse implements L2CAP Credit Based Connection Response (0x18) [Vol 3, Part A, 4.26].
func (L2CAPCreditBasedConnectionResponse) Code ¶ added in v0.6.17
func (s L2CAPCreditBasedConnectionResponse) Code() int
Code returns the event code of the command.
func (*L2CAPCreditBasedConnectionResponse) Marshal ¶ added in v0.6.17
func (s *L2CAPCreditBasedConnectionResponse) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPCreditBasedConnectionResponse) Unmarshal ¶ added in v0.6.17
func (s *L2CAPCreditBasedConnectionResponse) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
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
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
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
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) }