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 ¶
func ValidateConnParams(p cmd.LECreateConnection) error
func ValidateScanParams ¶
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 ¶
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 ¶
func (a *Advertisement) SrData() []byte
SrData returns the scan response data of the packet. This is linux specific
func (*Advertisement) Timestamp ¶
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 ¶
Conn ...
func (*Conn) Close ¶
Close disconnects the connection by sending hci disconnect command to the device.
func (*Conn) ConnectionHandle ¶
func (*Conn) Disconnected ¶
func (c *Conn) Disconnected() <-chan struct{}
Disconnected returns a receiving channel, which is closed when the connection disconnects.
func (*Conn) LECreditBasedConnectionRequest ¶
func (c *Conn) LECreditBasedConnectionRequest(s sigCmd)
LECreditBasedConnectionRequest ...
func (*Conn) LEFlowControlCredit ¶
func (c *Conn) LEFlowControlCredit(s sigCmd)
LEFlowControlCredit ...
func (*Conn) OpenLECreditBasedConnection ¶
func (c *Conn) OpenLECreditBasedConnection(psm uint16) (ble.LECreditBasedConnection, error)
func (*Conn) RemoteAddr ¶
RemoteAddr returns remote device's MAC address.
func (*Conn) SetContext ¶
SetContext sets the context that is used by this Conn.
func (*Conn) StartEncryption ¶
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 ¶
type CustomCommand struct { Payload interface{} // contains filtered or unexported fields }
func (*CustomCommand) Len ¶
func (c *CustomCommand) Len() int
func (*CustomCommand) Marshal ¶
func (c *CustomCommand) Marshal(b []byte) error
func (*CustomCommand) OpCode ¶
func (c *CustomCommand) OpCode() int
func (*CustomCommand) String ¶
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 ¶
HCI ...
func NewHCI ¶
func NewHCI(smp SmpManagerFactory, opts ...ble.Option) (*HCI, error)
NewHCI returns a hci device.
func (*HCI) AdvertiseAdv ¶
func (h *HCI) AdvertiseAdv(a ble.Advertisement) error
AdvertiseAdv advertises a given Advertisement
func (*HCI) AdvertiseIBeacon ¶
AdvertiseIBeacon advertises iBeacon with specified parameters.
func (*HCI) AdvertiseIBeaconData ¶
AdvertiseIBeaconData advertise iBeacon with given manufacturer data.
func (*HCI) AdvertiseMfgData ¶
AdvertiseMfgData avertises the given manufacturer data.
func (*HCI) AdvertiseNameAndServices ¶
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 ¶
AdvertiseServiceData16 advertises data associated with a 16bit service uuid
func (*HCI) EnableSecurity ¶
func (*HCI) SendVendorSpecificCommand ¶
func (*HCI) SetAdvHandlerSync ¶
SetAdvHandlerSync overrides default advertising handler behavior (async)
func (*HCI) SetAdvParams ¶
func (h *HCI) SetAdvParams(param cmd.LESetAdvertisingParameters) error
SetAdvParams overrides default advertising parameters.
func (*HCI) SetAdvertisement ¶
SetAdvertisement sets advertising data and scanResp.
func (*HCI) SetConnParams ¶
func (h *HCI) SetConnParams(param cmd.LECreateConnection) error
SetConnParams overrides default connection parameters.
func (*HCI) SetDialerTimeout ¶
SetDialerTimeout sets dialing timeout for Dialer.
func (*HCI) SetErrorHandler ¶
SetErrorHandler ...
func (*HCI) SetGattCacheFile ¶
func (*HCI) SetListenerTimeout ¶
SetListenerTimeout sets dialing timeout for Listener.
func (*HCI) SetPeripheralRole ¶
SetPeripheralRole is not supported
func (*HCI) SetScanParams ¶
func (h *HCI) SetScanParams(param cmd.LESetScanParameters) error
SetScanParams overrides default scanning parameters.
func (*HCI) SetTransportH4Socket ¶
SetTransportH4Socket sets h4 socket server
func (*HCI) SetTransportH4Uart ¶
SetTransportH4Uart sets h4 uart path
func (*HCI) SetTransportHCISocket ¶
SetTransportHCISocket sets HCI device for hci socket
func (*HCI) StopAdvertising ¶
StopAdvertising stops advertising.
type L2CAPConnectionRequest ¶
L2CAPConnectionRequest implements L2CAP Connection Request (0x02) [Vol 3, Part A, 4.2].
func (L2CAPConnectionRequest) Code ¶
func (s L2CAPConnectionRequest) Code() int
Code returns the event code of the command.
func (*L2CAPConnectionRequest) Marshal ¶
func (s *L2CAPConnectionRequest) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPConnectionRequest) Unmarshal ¶
func (s *L2CAPConnectionRequest) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type L2CAPConnectionResponse ¶
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 ¶
func (s L2CAPConnectionResponse) Code() int
Code returns the event code of the command.
func (*L2CAPConnectionResponse) Marshal ¶
func (s *L2CAPConnectionResponse) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPConnectionResponse) Unmarshal ¶
func (s *L2CAPConnectionResponse) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type L2CAPCreditBasedConnectionRequest ¶
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 ¶
func (s L2CAPCreditBasedConnectionRequest) Code() int
Code returns the event code of the command.
func (*L2CAPCreditBasedConnectionRequest) Marshal ¶
func (s *L2CAPCreditBasedConnectionRequest) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPCreditBasedConnectionRequest) Unmarshal ¶
func (s *L2CAPCreditBasedConnectionRequest) Unmarshal(b []byte) error
Unmarshal de-serializes the binary data and stores the result in the receiver.
type L2CAPCreditBasedConnectionResponse ¶
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 ¶
func (s L2CAPCreditBasedConnectionResponse) Code() int
Code returns the event code of the command.
func (*L2CAPCreditBasedConnectionResponse) Marshal ¶
func (s *L2CAPCreditBasedConnectionResponse) Marshal() []byte
Marshal serializes the command parameters into binary form.
func (*L2CAPCreditBasedConnectionResponse) Unmarshal ¶
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) }