tvwy opened a new issue, #1881:
URL: https://github.com/apache/plc4x/issues/1881

   ### What would you like to happen?
   
   I wanted to try out the OPC UA driver, but I'm unsure if I'm making a major 
mistake or if parsing string options simply hasn't been implemented yet. 
Following the documentation it seems to be implemented at least: 
https://plc4x.apache.org/users/protocols/opcua.html
   
   ```
   package main
   
   import (
        "fmt"
   
        plc4go "github.com/apache/plc4x/plc4go/pkg/api"
        "github.com/apache/plc4x/plc4go/pkg/api/drivers"
        "github.com/apache/plc4x/plc4go/pkg/api/transports"
   )
   
   func main() {
        // Create a new instance of the PlcDriverManager
        driverManager := plc4go.NewPlcDriverManager()
   
        // Register the Transports
        transports.RegisterTcpTransport(driverManager)
        transports.RegisterUdpTransport(driverManager)
   
        // Register the Drivers
        drivers.RegisterOpcuaDriver(driverManager)
   
        // Set connection options, including username and password
        connectionRequestChannel := 
driverManager.GetConnection("opcua:tcp://127.0.0.1:7894/UA/Plant?username=user1&password=password1")
        // Wait for the connection to be established
        connectionResult := <-connectionRequestChannel
   
   
   
        // Check if something went wrong
       if connectionResult.GetErr() != nil {
            fmt.Printf("Error connecting to PLC: %s", 
connectionResult.GetErr().Error())
                return
        }
   
        connection := connectionResult.GetConnection()
   
        // Make sure the connection is closed at the end
        defer connection.Close()
   ```
   
   resulting in: 
   
   ```
    go run main
   {"level":"trace","time":"2024-11-09T14:58:33+01:00","message":"Creating plc 
driver manager"}
   {"level":"debug","transportName":"TCP/IP Socket 
Transport","time":"2024-11-09T14:58:34+01:00","message":"Registering transport"}
   {"level":"info","transportName":"TCP/IP Socket 
Transport","time":"2024-11-09T14:58:34+01:00","message":"Transport for 
transportName registered"}
   {"level":"debug","transportName":"UDP Datagram 
Transport","time":"2024-11-09T14:58:34+01:00","message":"Registering transport"}
   {"level":"info","transportName":"UDP Datagram 
Transport","time":"2024-11-09T14:58:34+01:00","message":"Transport for 
transportName registered"}
   
{"level":"debug","protocolName":"Opcua","time":"2024-11-09T14:58:34+01:00","message":"Registering
 driver"}
   
{"level":"info","protocolName":"Opcua","time":"2024-11-09T14:58:34+01:00","message":"Driver
 for protocolName registered"}
   {"level":"debug","transportName":"TCP/IP Socket 
Transport","time":"2024-11-09T14:58:34+01:00","message":"Registering transport"}
   {"level":"warn","transportName":"TCP/IP Socket 
Transport","time":"2024-11-09T14:58:34+01:00","message":"Transport already 
registered"}
   
{"level":"debug","connectionString":"opcua:tcp://127.0.0.1:7894/UA/Plant?username=user1&password=password1","time":"2024-11-09T14:58:34+01:00","message":"Getting
 connection for connectionString"}
   
{"level":"debug","connectionUrl":"opcua:tcp://127.0.0.1:7894/UA/Plant?username=user1&password=password1","time":"2024-11-09T14:58:34+01:00","message":"parsed
 connection URL"}
   
{"level":"debug","connectionUrl":"opcua:tcp://127.0.0.1:7894/UA/Plant?username=user1&password=password1","protocolName":"Opcua","time":"2024-11-09T14:58:34+01:00","message":"got
 driver protocolName"}
   {"level":"trace","time":"2024-11-09T14:58:34+01:00","message":"we handling a 
opaque connectionUrl"}
   
{"level":"debug","transportName":"tcp","transportConnectionString":"127.0.0.1:7894","time":"2024-11-09T14:58:34+01:00","message":"got
 a transport"}
   
{"level":"debug","transportUrl":"tcp://127.0.0.1:7894/UA/Plant","time":"2024-11-09T14:58:34+01:00","message":"Assembled
 transport url"}
   
{"level":"debug","transportUrl":"tcp://127.0.0.1:7894/UA/Plant","numberTransports":2,"numberDriverOptions":2,"time":"2024-11-09T14:58:34+01:00","message":"Get
 connection for transport url"}
   **Error connecting to PLC: can't parse options: string not yet supported**
   ```
   
   Source of behaviour is the ParseFromOptions function in Configuration.go of 
opcua not having implemented a string case.
   
![image](https://github.com/user-attachments/assets/643323ce-a087-4825-9640-06004d5c9360)
   
   It's a Feature Request because I'm not sure.
   
   ### Programming Languages
   
   - [ ] plc4j
   - [X] plc4go
   - [ ] plc4c
   - [ ] plc4net
   
   ### Protocols
   
   - [ ] AB-Ethernet
   - [ ] ADS /AMS
   - [ ] BACnet/IP
   - [ ] CANopen
   - [ ] DeltaV
   - [ ] DF1
   - [ ] EtherNet/IP
   - [ ] Firmata
   - [ ] KNXnet/IP
   - [ ] Modbus
   - [X] OPC-UA
   - [ ] S7


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to