exportable FindField func ^.^

This commit is contained in:
freqyXin 2021-05-09 20:55:10 -07:00
parent 5b57e9d6ce
commit 15e8ac6877
2 changed files with 11 additions and 11 deletions

@ -34,14 +34,14 @@ func Scanners() {
projVars.ScanAdapter.Scan(func(scanAdapter *bluetooth.Adapter, device bluetooth.ScanResult) {
//target := device.
lname := device.LocalName()
adbytes := device.AdvertisementPayload.Bytes()
rssi := device.RSSI
//Trying to extract the service UUIDs from advertisment packets
//srvcPld := projVars.ScanAdapter.SetConnectHandler(c func)
//Trying to extract the service UUIDs from advertisment packet
srvcPld := device.AdvertisementPayload.HasServiceUUID(projVars.SonosScanTest)
//srvcPld := device.AdvertisementPayload.HasServiceUUID(projVars.SonosScanTest)
// ** List of common Service UUIDS to search for **
//bluetooth.ServiceUUIDDeviceInformation
//bluetooth.ServiceUUIDGenericAttribute
@ -56,7 +56,7 @@ func Scanners() {
log.Info().Str("address", device.Address.String()).
Str("LocalName", lname).
Int16("RSSI", rssi).
Bool("Service UUID", srvcPld).
//Bool("Service UUID", srvcPld).
//Str("Device: ", ).
Msg("new_device")

14
vendor/tinygo.org/x/bluetooth/gap.go generated vendored

@ -188,7 +188,7 @@ func (buf *rawAdvertisementPayload) Bytes() []byte {
//
// See this list of field types:
// https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/
func (buf *rawAdvertisementPayload) findField(fieldType byte) []byte {
func (buf *rawAdvertisementPayload) FindField(fieldType byte) []byte {
data := buf.Bytes()
for len(data) >= 2 {
fieldLength := data[0]
@ -207,11 +207,11 @@ func (buf *rawAdvertisementPayload) findField(fieldType byte) []byte {
// LocalName returns the local name (complete or shortened) in the advertisement
// payload.
func (buf *rawAdvertisementPayload) LocalName() string {
b := buf.findField(9) // Complete Local Name
b := buf.FindField(9) // Complete Local Name
if len(b) != 0 {
return string(b)
}
b = buf.findField(8) // Shortened Local Name
b = buf.FindField(8) // Shortened Local Name
if len(b) != 0 {
return string(b)
}
@ -223,9 +223,9 @@ func (buf *rawAdvertisementPayload) LocalName() string {
// and 128-bit UUIDs.
func (buf *rawAdvertisementPayload) HasServiceUUID(uuid UUID) bool {
if uuid.Is16Bit() {
b := buf.findField(0x03) // Complete List of 16-bit Service Class UUIDs
b := buf.FindField(0x03) // Complete List of 16-bit Service Class UUIDs
if len(b) == 0 {
b = buf.findField(0x02) // Incomplete List of 16-bit Service Class UUIDs
b = buf.FindField(0x02) // Incomplete List of 16-bit Service Class UUIDs
}
uuid := uuid.Get16Bit()
for i := 0; i < len(b)/2; i++ {
@ -236,9 +236,9 @@ func (buf *rawAdvertisementPayload) HasServiceUUID(uuid UUID) bool {
}
return false
} else {
b := buf.findField(0x07) // Complete List of 128-bit Service Class UUIDs
b := buf.FindField(0x07) // Complete List of 128-bit Service Class UUIDs
if len(b) == 0 {
b = buf.findField(0x06) // Incomplete List of 128-bit Service Class UUIDs
b = buf.FindField(0x06) // Incomplete List of 128-bit Service Class UUIDs
}
uuidBuf1 := uuid.Bytes()
for i := 0; i < len(b)/16; i++ {