in plc4go/tools/plc4xbrowser/ui/actions.go [109:151]
func registerDriver(driverId string) error {
if _, ok := registeredDrivers[driverId]; ok {
return errors.Errorf("%s already registered", driverId)
}
var driver plc4go.PlcDriver
switch driverId {
case "ads":
driver = drivers.RegisterAdsDriver(driverManager)
if !tcpRegistered {
transports.RegisterTcpTransport(driverManager)
tcpRegistered = true
}
case "bacnetip":
driver = drivers.RegisterBacnetDriver(driverManager)
if !udpRegistered {
transports.RegisterUdpTransport(driverManager)
udpRegistered = true
}
case "c-bus":
driver = drivers.RegisterCBusDriver(driverManager)
if !tcpRegistered {
transports.RegisterTcpTransport(driverManager)
tcpRegistered = true
}
case "s7":
driver = drivers.RegisterS7Driver(driverManager)
if !tcpRegistered {
transports.RegisterTcpTransport(driverManager)
tcpRegistered = true
}
case "opcua":
driver = drivers.RegisterOpcuaDriver(driverManager)
if !tcpRegistered {
transports.RegisterTcpTransport(driverManager)
tcpRegistered = true
}
default:
return errors.Errorf("Unknown driver %s", driverId)
}
registeredDrivers[driverId] = driver
go driverAdded(driver)
return nil
}