From 4c0df2892d55628b9029d05f5f7b16af939d23b1 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Wed, 13 Apr 2022 18:02:17 +0200 Subject: [PATCH 1/8] nrf: fix CGo errors after TinyGo update For details, see: https://github.com/tinygo-org/tinygo/pull/2774 --- adapter_sd.go | 8 ++++++++ gattc_sd.go | 4 ++-- gatts_sd.go | 1 + uuid_sd.go | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/adapter_sd.go b/adapter_sd.go index 338af8eb..e3c40ecf 100644 --- a/adapter_sd.go +++ b/adapter_sd.go @@ -10,6 +10,14 @@ import ( "unsafe" ) +// #include "ble.h" +// #ifdef NRF51 +// #include "nrf_soc.h" +// #else +// #include "nrf_nvic.h" +// #endif +import "C" + var ( ErrNotDefaultAdapter = errors.New("bluetooth: not the default adapter") ) diff --git a/gattc_sd.go b/gattc_sd.go index 197b3395..a237a8dd 100644 --- a/gattc_sd.go +++ b/gattc_sd.go @@ -134,7 +134,7 @@ func (d *Device) DiscoverServices(uuids []UUID) ([]DeviceService, error) { // Store the discovered service. svc := DeviceService{ - uuid: suuid, + uuid: shortUUID(suuid), connectionHandle: d.connectionHandle, startHandle: startHandle, endHandle: endHandle, @@ -276,7 +276,7 @@ func (s *DeviceService) DiscoverCharacteristics(uuids []UUID) ([]DeviceCharacter permissions |= CharacteristicIndicatePermission } - dc := DeviceCharacteristic{uuid: discoveringCharacteristic.uuid} + dc := DeviceCharacteristic{uuid: shortUUID(discoveringCharacteristic.uuid)} dc.permissions = permissions dc.valueHandle = foundCharacteristicHandle diff --git a/gatts_sd.go b/gatts_sd.go index 796fb24d..6255c1fb 100644 --- a/gatts_sd.go +++ b/gatts_sd.go @@ -8,6 +8,7 @@ package bluetooth #define SVCALL_AS_NORMAL_FUNCTION #include "ble_gap.h" +#include "ble_gatts.h" */ import "C" diff --git a/uuid_sd.go b/uuid_sd.go index abe93ad0..9b68a2b0 100644 --- a/uuid_sd.go +++ b/uuid_sd.go @@ -39,7 +39,7 @@ func (s shortUUID) UUID() UUID { // IsIn checks the passed in slice of short UUIDs to see if this uuid is in it. func (s shortUUID) IsIn(uuids []C.ble_uuid_t) bool { for _, u := range uuids { - if u == s { + if shortUUID(u) == s { return true } } From 96a2be15717d2b6af0d7b4a29e4645004ee61f36 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Tue, 22 Feb 2022 11:04:20 +0100 Subject: [PATCH 2/8] Add //go:build lines for Go 1.18 This will be needed eventually, so add them now already. --- adapter_linux.go | 1 + adapter_nrf51.go | 1 + adapter_nrf528xx-full.go | 1 + adapter_nrf528xx-peripheral.go | 1 + adapter_nrf528xx.go | 1 + adapter_s110.go | 1 + adapter_s113v7.go | 1 + adapter_s132.go | 1 + adapter_s140v6.go | 1 + adapter_s140v7.go | 1 + adapter_sd.go | 1 + error_sd.go | 1 + gap_linux.go | 1 + gap_nrf51.go | 1 + gap_nrf528xx-advertisement.go | 1 + gap_nrf528xx-central.go | 1 + gattc_linux.go | 1 + gattc_sd.go | 1 + gatts_linux.go | 1 + gatts_other.go | 1 + gatts_sd.go | 1 + uuid16.go | 1 + uuid_sd.go | 1 + 23 files changed, 23 insertions(+) diff --git a/adapter_linux.go b/adapter_linux.go index 336a0316..a329a20d 100644 --- a/adapter_linux.go +++ b/adapter_linux.go @@ -1,3 +1,4 @@ +//go:build !baremetal // +build !baremetal // Some documentation for the BlueZ D-Bus interface: diff --git a/adapter_nrf51.go b/adapter_nrf51.go index 14636983..a11869f0 100644 --- a/adapter_nrf51.go +++ b/adapter_nrf51.go @@ -1,3 +1,4 @@ +//go:build softdevice && s110v8 // +build softdevice,s110v8 package bluetooth diff --git a/adapter_nrf528xx-full.go b/adapter_nrf528xx-full.go index 0660e408..22d45ff1 100644 --- a/adapter_nrf528xx-full.go +++ b/adapter_nrf528xx-full.go @@ -1,3 +1,4 @@ +//go:build (softdevice && s132v6) || (softdevice && s140v6) || (softdevice && s140v7) // +build softdevice,s132v6 softdevice,s140v6 softdevice,s140v7 package bluetooth diff --git a/adapter_nrf528xx-peripheral.go b/adapter_nrf528xx-peripheral.go index b50f1b21..11b6b922 100644 --- a/adapter_nrf528xx-peripheral.go +++ b/adapter_nrf528xx-peripheral.go @@ -1,3 +1,4 @@ +//go:build softdevice && s113v7 // +build softdevice,s113v7 package bluetooth diff --git a/adapter_nrf528xx.go b/adapter_nrf528xx.go index ca8594ff..aa447d8f 100644 --- a/adapter_nrf528xx.go +++ b/adapter_nrf528xx.go @@ -1,3 +1,4 @@ +//go:build (softdevice && s113v7) || (softdevice && s132v6) || (softdevice && s140v6) || (softdevice && s140v7) // +build softdevice,s113v7 softdevice,s132v6 softdevice,s140v6 softdevice,s140v7 package bluetooth diff --git a/adapter_s110.go b/adapter_s110.go index 4d5ecb64..3cec2e43 100644 --- a/adapter_s110.go +++ b/adapter_s110.go @@ -1,3 +1,4 @@ +//go:build softdevice && s110v8 // +build softdevice,s110v8 package bluetooth diff --git a/adapter_s113v7.go b/adapter_s113v7.go index d1994830..bd439cf0 100644 --- a/adapter_s113v7.go +++ b/adapter_s113v7.go @@ -1,3 +1,4 @@ +//go:build softdevice && s113v7 // +build softdevice,s113v7 package bluetooth diff --git a/adapter_s132.go b/adapter_s132.go index 10f8b03a..4afd39ff 100644 --- a/adapter_s132.go +++ b/adapter_s132.go @@ -1,3 +1,4 @@ +//go:build softdevice && s132v6 // +build softdevice,s132v6 package bluetooth diff --git a/adapter_s140v6.go b/adapter_s140v6.go index 860ea1ed..e618b6f3 100644 --- a/adapter_s140v6.go +++ b/adapter_s140v6.go @@ -1,3 +1,4 @@ +//go:build softdevice && s140v6 // +build softdevice,s140v6 package bluetooth diff --git a/adapter_s140v7.go b/adapter_s140v7.go index 879e55f7..9b36e54c 100644 --- a/adapter_s140v7.go +++ b/adapter_s140v7.go @@ -1,3 +1,4 @@ +//go:build softdevice && s140v7 // +build softdevice,s140v7 package bluetooth diff --git a/adapter_sd.go b/adapter_sd.go index e3c40ecf..1b6da534 100644 --- a/adapter_sd.go +++ b/adapter_sd.go @@ -1,3 +1,4 @@ +//go:build softdevice // +build softdevice package bluetooth diff --git a/error_sd.go b/error_sd.go index 3b042146..9a198dcb 100644 --- a/error_sd.go +++ b/error_sd.go @@ -1,3 +1,4 @@ +//go:build softdevice // +build softdevice package bluetooth diff --git a/gap_linux.go b/gap_linux.go index 9d3fd14a..5dc65c76 100644 --- a/gap_linux.go +++ b/gap_linux.go @@ -1,3 +1,4 @@ +//go:build !baremetal // +build !baremetal package bluetooth diff --git a/gap_nrf51.go b/gap_nrf51.go index 86da013a..2c7c12b4 100644 --- a/gap_nrf51.go +++ b/gap_nrf51.go @@ -1,3 +1,4 @@ +//go:build softdevice && s110v8 // +build softdevice,s110v8 package bluetooth diff --git a/gap_nrf528xx-advertisement.go b/gap_nrf528xx-advertisement.go index 1a3dbbb1..ac618f09 100644 --- a/gap_nrf528xx-advertisement.go +++ b/gap_nrf528xx-advertisement.go @@ -1,3 +1,4 @@ +//go:build (softdevice && s113v7) || (softdevice && s132v6) || (softdevice && s140v6) || (softdevice && s140v7) // +build softdevice,s113v7 softdevice,s132v6 softdevice,s140v6 softdevice,s140v7 package bluetooth diff --git a/gap_nrf528xx-central.go b/gap_nrf528xx-central.go index f7f41aec..bc8fa334 100644 --- a/gap_nrf528xx-central.go +++ b/gap_nrf528xx-central.go @@ -1,3 +1,4 @@ +//go:build (softdevice && s132v6) || (softdevice && s140v6) || (softdevice && s140v7) // +build softdevice,s132v6 softdevice,s140v6 softdevice,s140v7 package bluetooth diff --git a/gattc_linux.go b/gattc_linux.go index 4edad9ad..124dba58 100644 --- a/gattc_linux.go +++ b/gattc_linux.go @@ -1,3 +1,4 @@ +//go:build !baremetal // +build !baremetal package bluetooth diff --git a/gattc_sd.go b/gattc_sd.go index a237a8dd..4d6be294 100644 --- a/gattc_sd.go +++ b/gattc_sd.go @@ -1,3 +1,4 @@ +//go:build (softdevice && s132v6) || (softdevice && s140v6) || (softdevice && s140v7) // +build softdevice,s132v6 softdevice,s140v6 softdevice,s140v7 package bluetooth diff --git a/gatts_linux.go b/gatts_linux.go index 21a4c81a..fe5e5492 100644 --- a/gatts_linux.go +++ b/gatts_linux.go @@ -1,3 +1,4 @@ +//go:build !baremetal // +build !baremetal package bluetooth diff --git a/gatts_other.go b/gatts_other.go index 653174b1..128371ad 100644 --- a/gatts_other.go +++ b/gatts_other.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux package bluetooth diff --git a/gatts_sd.go b/gatts_sd.go index 6255c1fb..40a9b17a 100644 --- a/gatts_sd.go +++ b/gatts_sd.go @@ -1,3 +1,4 @@ +//go:build softdevice // +build softdevice package bluetooth diff --git a/uuid16.go b/uuid16.go index 6915f364..fb8972f4 100644 --- a/uuid16.go +++ b/uuid16.go @@ -1,3 +1,4 @@ +//go:build !darwin // +build !darwin package bluetooth diff --git a/uuid_sd.go b/uuid_sd.go index 9b68a2b0..70151430 100644 --- a/uuid_sd.go +++ b/uuid_sd.go @@ -1,3 +1,4 @@ +//go:build softdevice // +build softdevice package bluetooth From 7dee8d4d827983ae4d5d0adf47debdcce68887c4 Mon Sep 17 00:00:00 2001 From: Nicholas Page Date: Mon, 13 Dec 2021 14:23:01 -0800 Subject: [PATCH 3/8] Fix ParseMAC bug --- mac.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mac.go b/mac.go index 4a2d35ae..f4286707 100644 --- a/mac.go +++ b/mac.go @@ -36,7 +36,7 @@ func ParseMAC(s string) (mac MAC, err error) { } macIndex-- } - if macIndex != 0 { + if macIndex != -1 { err = errInvalidMAC } return From 8cab553c59cf22807812ee17c42fd82033eb4fe0 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Thu, 21 Apr 2022 18:06:23 +0200 Subject: [PATCH 4/8] all: update modules to use dev branch with TinyGo 0.23-pre compatible drivers Signed-off-by: deadprogram --- go.mod | 3 +-- go.sum | 11 +++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 2a6b9951..30659c7d 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( github.com/godbus/dbus/v5 v5.0.3 github.com/muka/go-bluetooth v0.0.0-20210812063148-b6c83362e27d golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 - golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 // indirect - tinygo.org/x/drivers v0.15.1 + tinygo.org/x/drivers v0.19.1-0.20220421091018-f0a260be6630 tinygo.org/x/tinyterm v0.1.0 ) diff --git a/go.sum b/go.sum index d5f1097b..d681d34f 100644 --- a/go.sum +++ b/go.sum @@ -47,6 +47,7 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -56,7 +57,13 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 h1:DvY3Zkh7KabQE/kfzMvYvKirSiguP9Q/veMtkYyf0o8= golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200925191224-5d1fdd8fa346/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -71,7 +78,11 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C tinygo.org/x/drivers v0.14.0/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI= tinygo.org/x/drivers v0.15.1 h1:fS85Q6CVn1qcSF+n0JN61a5AULrbenjH5XIoYnQjOO4= tinygo.org/x/drivers v0.15.1/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI= +tinygo.org/x/drivers v0.16.0/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI= +tinygo.org/x/drivers v0.19.1-0.20220421091018-f0a260be6630 h1:jTw0l/9d2eJRU9xp5eADYZFOiJGTOeAfOmwqZnInsk0= +tinygo.org/x/drivers v0.19.1-0.20220421091018-f0a260be6630/go.mod h1:uJD/l1qWzxzLx+vcxaW0eY464N5RAgFi1zTVzASFdqI= tinygo.org/x/tinyfont v0.2.1 h1:FAaemBzw8wsfhAtG6fWW+QjyWw/K8YqEeiWo4N1pv4o= tinygo.org/x/tinyfont v0.2.1/go.mod h1:eLqnYSrFRjt5STxWaMeOWJTzrKhXqpWw7nU3bPfKOAM= +tinygo.org/x/tinyfs v0.1.0/go.mod h1:ysc8Y92iHfhTXeyEM9+c7zviUQ4fN9UCFgSOFfMWv20= tinygo.org/x/tinyterm v0.1.0 h1:80i+j+KWoxCFa/Xfp6pWbh79x+8zUdMXC1vaKj2QhkY= tinygo.org/x/tinyterm v0.1.0/go.mod h1:/DDhNnGwNF2/tNgHywvyZuCGnbH3ov49Z/6e8LPLRR4= From 25d288fd10e06e0485780ef8d34f711adae133bb Mon Sep 17 00:00:00 2001 From: deadprogram Date: Fri, 29 Apr 2022 11:53:23 +0200 Subject: [PATCH 5/8] all: update to drivers 0.20.0 Signed-off-by: deadprogram --- go.mod | 2 +- go.sum | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 30659c7d..924dc1b9 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,6 @@ require ( github.com/godbus/dbus/v5 v5.0.3 github.com/muka/go-bluetooth v0.0.0-20210812063148-b6c83362e27d golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 - tinygo.org/x/drivers v0.19.1-0.20220421091018-f0a260be6630 + tinygo.org/x/drivers v0.20.0 tinygo.org/x/tinyterm v0.1.0 ) diff --git a/go.sum b/go.sum index d681d34f..90fcc6d1 100644 --- a/go.sum +++ b/go.sum @@ -55,8 +55,6 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 h1:DvY3Zkh7KabQE/kfzMvYvKirSiguP9Q/veMtkYyf0o8= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -76,11 +74,10 @@ gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= tinygo.org/x/drivers v0.14.0/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI= -tinygo.org/x/drivers v0.15.1 h1:fS85Q6CVn1qcSF+n0JN61a5AULrbenjH5XIoYnQjOO4= tinygo.org/x/drivers v0.15.1/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI= tinygo.org/x/drivers v0.16.0/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI= -tinygo.org/x/drivers v0.19.1-0.20220421091018-f0a260be6630 h1:jTw0l/9d2eJRU9xp5eADYZFOiJGTOeAfOmwqZnInsk0= -tinygo.org/x/drivers v0.19.1-0.20220421091018-f0a260be6630/go.mod h1:uJD/l1qWzxzLx+vcxaW0eY464N5RAgFi1zTVzASFdqI= +tinygo.org/x/drivers v0.20.0 h1:umN4UtWTaAjuQoMAr5jSPPMXtCa7Q7qWVtkYAyag3jY= +tinygo.org/x/drivers v0.20.0/go.mod h1:uJD/l1qWzxzLx+vcxaW0eY464N5RAgFi1zTVzASFdqI= tinygo.org/x/tinyfont v0.2.1 h1:FAaemBzw8wsfhAtG6fWW+QjyWw/K8YqEeiWo4N1pv4o= tinygo.org/x/tinyfont v0.2.1/go.mod h1:eLqnYSrFRjt5STxWaMeOWJTzrKhXqpWw7nU3bPfKOAM= tinygo.org/x/tinyfs v0.1.0/go.mod h1:ysc8Y92iHfhTXeyEM9+c7zviUQ4fN9UCFgSOFfMWv20= From 02fb2457d9ae7fb400fc9f913409ec817129aec1 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Fri, 29 Apr 2022 13:47:18 +0200 Subject: [PATCH 6/8] docs: update license year Signed-off-by: deadprogram --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 66811b35..7f2fb4a5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2019-2021 TinyGo Authors. All rights reserved. +Copyright (c) 2019-2022 TinyGo Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are From 8dc1e155a0e3a0f7c286a36bce8027bb2b14a650 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Fri, 29 Apr 2022 13:47:49 +0200 Subject: [PATCH 7/8] all: prepare for release 0.5.0 Signed-off-by: deadprogram --- CHANGELOG.md | 9 +++++++++ version.go | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4afc3ce..06cd7ad5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +0.5.0 +--- +* **core** + - update to drivers 0.20.0 + - Fix ParseMAC bug + - Add //go:build lines for Go 1.18 +* **nordic semi** + - nrf: fix CGo errors after TinyGo update + 0.4.0 --- * **core** diff --git a/version.go b/version.go index fcc70849..fbdf1f0b 100644 --- a/version.go +++ b/version.go @@ -2,4 +2,4 @@ package bluetooth // Version returns a user-readable string showing the version of the bluetooth package for support purposes. // Update this value before release of new version of software. -const Version = "0.4.0" +const Version = "0.5.0" From 571b1bb173c1ff2e24ccf84e0f3a339c7ed594e5 Mon Sep 17 00:00:00 2001 From: Yurii Soldak Date: Mon, 1 Nov 2021 22:48:16 +0100 Subject: [PATCH 8/8] sd: get and set characteristic attributes --- gatts_sd.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gatts_sd.go b/gatts_sd.go index 40a9b17a..d4c1d779 100644 --- a/gatts_sd.go +++ b/gatts_sd.go @@ -148,3 +148,21 @@ func (c *Characteristic) Write(p []byte) (n int, err error) { return len(p), nil } + +// GetAttributes retrieves persistent system attribute information +// Use together with SetAttributes to save and restore characteristic state +func (c *Characteristic) GetAttributes(p []byte) (n int, err error) { + connHandle := currentConnection.Get() + p_len := uint16(len(p)) + errCode := C.sd_ble_gatts_sys_attr_get(connHandle, &p[0], &p_len, 0) + return int(p_len), makeError(errCode) +} + +// SetAttributes updates persistent system attribute information +// Use together with GetAttributes to save and restore characteristic state +func (c *Characteristic) SetAttributes(p []byte) (err error) { + connHandle := currentConnection.Get() + p_len := uint16(len(p)) + errCode := C.sd_ble_gatts_sys_attr_set(connHandle, &p[0], p_len, 0) + return makeError(errCode) +}