func registerDriver()

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
}