43 lines
796 B
Go
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")
|
|
}
|