gobot.io/x/gobot/v2@v2.1.0/platforms/ble/uuid.go (about)

     1  package ble
     2  
     3  import (
     4  	"fmt"
     5  	"strconv"
     6  
     7  	"tinygo.org/x/bluetooth"
     8  )
     9  
    10  func convertUUID(cUUID string) string {
    11  	switch len(cUUID) {
    12  	case 4:
    13  		// convert to full uuid from "22bb"
    14  		uid, e := strconv.ParseUint("0x"+cUUID, 0, 16)
    15  		if e != nil {
    16  			return ""
    17  		}
    18  
    19  		uuid := bluetooth.New16BitUUID(uint16(uid))
    20  		return uuid.String()
    21  
    22  	case 32:
    23  		// convert "22bb746f2bbd75542d6f726568705327"
    24  		// to "22bb746f-2bbd-7554-2d6f-726568705327"
    25  		return fmt.Sprintf("%s-%s-%s-%s-%s", cUUID[:8], cUUID[8:12], cUUID[12:16], cUUID[16:20],
    26  			cUUID[20:32])
    27  	}
    28  
    29  	return cUUID
    30  }