This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git
The following commit(s) were added to refs/heads/develop by this push:
new bc741ef feat(plc4go): update upstream version part3
bc741ef is described below
commit bc741ef3cdf30931fac6bda1418c99b73cbf3673
Author: Sebastian Rühl <[email protected]>
AuthorDate: Mon Nov 24 13:10:29 2025 +0100
feat(plc4go): update upstream version part3
---
plc4go/examples/ads/read/Read.go | 13 +++++++++----
plc4go/examples/ads/write/Write.go | 12 ++++++++----
.../knx/discovery/hello_world_plc4go_knx_discovery.go | 6 +++++-
3 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/plc4go/examples/ads/read/Read.go b/plc4go/examples/ads/read/Read.go
index 96d82af..cf72762 100644
--- a/plc4go/examples/ads/read/Read.go
+++ b/plc4go/examples/ads/read/Read.go
@@ -20,11 +20,14 @@
package main
import (
+ "context"
+
plc4go "github.com/apache/plc4x/plc4go/pkg/api"
"github.com/apache/plc4x/plc4go/pkg/api/drivers"
)
func main() {
+ ctx := context.Background()
driverManager := plc4go.NewPlcDriverManager()
defer func() {
if err := driverManager.Close(); err != nil {
@@ -32,9 +35,11 @@ func main() {
}
}()
drivers.RegisterAdsDriver(driverManager)
- connectionChan :=
driverManager.GetConnection("ads:tcp://192.168.23.20?sourceAmsNetId=192.168.23.200.1.1&sourceAmsPort=65534&targetAmsNetId=192.168.23.20.1.1&targetAmsPort=851")
- connection := <-connectionChan
- readRequest, err := connection.GetConnection().ReadRequestBuilder().
+ connection, err := driverManager.GetConnection(ctx,
"ads:tcp://192.168.23.20?sourceAmsNetId=192.168.23.200.1.1&sourceAmsPort=65534&targetAmsNetId=192.168.23.20.1.1&targetAmsPort=851")
+ if err != nil {
+ panic(err)
+ }
+ readRequest, err := connection.ReadRequestBuilder().
AddTagAddress("value-bool", "MAIN.hurz_BOOL").
AddTagAddress("value-byte", "MAIN.hurz_BYTE").
AddTagAddress("value-word", "MAIN.hurz_WORD").
@@ -62,7 +67,7 @@ func main() {
if err != nil {
panic(err)
}
- readResponseChannel := readRequest.Execute()
+ readResponseChannel := readRequest.Execute(ctx)
readResult := <-readResponseChannel
readResponse := readResult.GetResponse()
for _, tagName := range readResponse.GetTagNames() {
diff --git a/plc4go/examples/ads/write/Write.go
b/plc4go/examples/ads/write/Write.go
index bd71caf..79e02ee 100644
--- a/plc4go/examples/ads/write/Write.go
+++ b/plc4go/examples/ads/write/Write.go
@@ -20,6 +20,7 @@
package main
import (
+ "context"
"time"
plc4go "github.com/apache/plc4x/plc4go/pkg/api"
@@ -30,6 +31,7 @@ import (
)
func main() {
+ ctx := context.Background()
driverManager := plc4go.NewPlcDriverManager()
defer func() {
if err := driverManager.Close(); err != nil {
@@ -37,8 +39,10 @@ func main() {
}
}()
drivers.RegisterAdsDriver(driverManager)
- connectionChan :=
driverManager.GetConnection("ads:tcp://192.168.23.20?sourceAmsNetId=192.168.23.200.1.1&sourceAmsPort=65534&targetAmsNetId=192.168.23.20.1.1&targetAmsPort=851")
- connection := <-connectionChan
+ connection, err := driverManager.GetConnection(ctx,
"ads:tcp://192.168.23.20?sourceAmsNetId=192.168.23.200.1.1&sourceAmsPort=65534&targetAmsNetId=192.168.23.20.1.1&targetAmsPort=851")
+ if err != nil {
+ panic(err)
+ }
duration, _ := time.ParseDuration("1.234S")
lduration, _ := time.ParseDuration("24015H23M12.034002044S")
@@ -70,7 +74,7 @@ func main() {
children["hurz_DATE"] = spiValues.NewPlcDATE(date)
children["hurz_TIME_OF_DAY"] = spiValues.NewPlcTIME_OF_DAY(timeOfDay)
children["hurz_DATE_AND_TIME"] =
spiValues.NewPlcDATE_AND_TIME(dateAndTime)
- writeRequest, err := connection.GetConnection().WriteRequestBuilder().
+ writeRequest, err := connection.WriteRequestBuilder().
AddTagAddress("value-bool", "MAIN.hurz_BOOL",
spiValues.NewPlcBOOL(true)). // 1
AddTagAddress("value-byte", "MAIN.hurz_BYTE",
spiValues.NewPlcBYTE(42)). // 1
AddTagAddress("value-word", "MAIN.hurz_WORD",
spiValues.NewPlcWORD(42424)). // 2
@@ -98,7 +102,7 @@ func main() {
if err != nil {
panic(err)
}
- writeResponseChannel := writeRequest.Execute()
+ writeResponseChannel := writeRequest.Execute(ctx)
writeResult := <-writeResponseChannel
if writeResult.GetErr() != nil {
log.Error().Err(writeResult.GetErr()).Msg("error in response")
diff --git a/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go
b/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go
index 8880827..b1df888 100644
--- a/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go
+++ b/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go
@@ -60,6 +60,7 @@ func main() {
connectionStrings = append(connectionStrings, connStr)
}
+ var closes []func() error
for _, connStr := range connectionStrings {
log.Info().Str("connection string", connStr).Msg("Connecting")
connection, err := driverManager.GetConnection(ctx, connStr)
@@ -70,7 +71,7 @@ func main() {
return
}
log.Info().Str("connection string", connStr).Msg("Connected")
- defer connection.Close() // Bad example, don't defer in loop
+ closes = append(closes, connection.Close)
// Try to find all KNX devices on the current network
browseRequest, err := connection.BrowseRequestBuilder().
@@ -197,4 +198,7 @@ func main() {
}
return
}
+ for _, closer := range closes {
+ _ = closer()
+ }
}