matemat/uncanny/cmd/uncanny/main.go
2021-02-10 00:30:15 +01:00

43 lines
796 B
Go

package main
import (
"flag"
"git.kabelsalat.ch/ccc-basel/matemat"
"log"
"sync"
)
const (
CanInterface = "can0"
ListenAddress = "localhost:8000"
)
func main() {
var intf string
var addr string
flag.StringVar(&intf, "interface", CanInterface, "CAN interface name")
flag.StringVar(&addr, "listen", ListenAddress, "HTTP listen address")
flag.Parse()
can, err := uncanny.NewCan(intf)
if err != nil {
log.Fatal(err)
}
server := uncanny.NewServer(can, addr)
wg := sync.WaitGroup{}
wg.Add(2)
go func() {
log.Printf("Server exited: %v", server.Start())
wg.Done()
can.Stop()
}()
go func() {
// preload the initialization message
can.Initialize()
log.Printf("Bus listener exited: %v", can.Start())
wg.Done()
server.Stop()
}()
wg.Wait()
log.Printf("Shut down")
}