66 lines
1.2 KiB
Go
66 lines
1.2 KiB
Go
/*
|
|
Package main implements the rs2322tcp server application.
|
|
|
|
The server provides the network endpoint for rs2322tcp clients
|
|
and connects incoming data connections to configured physical
|
|
RS232 interfaces.
|
|
|
|
Project: rs2322tcp
|
|
Module: git.lang-dieter.de/rs2322tcp
|
|
*/
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
|
|
"git.lang-dieter.de/rs2322tcp/internal/config"
|
|
"git.lang-dieter.de/rs2322tcp/internal/server"
|
|
"git.lang-dieter.de/rs2322tcp/internal/version"
|
|
)
|
|
|
|
func main() {
|
|
configFile := flag.String(
|
|
"config",
|
|
"./configs/server.json",
|
|
"Pfad zur Server-Konfigurationsdatei",
|
|
)
|
|
|
|
flag.Parse()
|
|
|
|
cfg, err := config.LoadServer(*configFile)
|
|
if err != nil {
|
|
log.Fatalf("Server-Konfiguration laden: %v", err)
|
|
}
|
|
|
|
controlServer, err := server.NewControlServer(cfg)
|
|
if err != nil {
|
|
log.Fatalf("Control-Server erstellen: %v", err)
|
|
}
|
|
|
|
if err := controlServer.Listen(); err != nil {
|
|
log.Fatalf("Control-Server starten: %v", err)
|
|
}
|
|
|
|
defer controlServer.Close()
|
|
|
|
fmt.Printf(
|
|
"rs2322tcp-server %s\n",
|
|
version.Version,
|
|
)
|
|
|
|
fmt.Printf(
|
|
"Control-Server gestartet auf %s\n",
|
|
controlServer.Addr(),
|
|
)
|
|
|
|
fmt.Printf(
|
|
"Geräte: %d\n",
|
|
len(cfg.Devices),
|
|
)
|
|
|
|
if err := controlServer.Serve(); err != nil {
|
|
log.Fatalf("Control-Server beendet: %v", err)
|
|
}
|
|
}
|