Compare commits

...

2 commits

Author SHA1 Message Date
henne
0c74228b51
improved stuff 2025-08-09 13:44:47 +02:00
henne
e5faad5879
moar pointers 2025-08-09 12:59:28 +02:00
5 changed files with 30 additions and 10 deletions

View file

@ -43,7 +43,7 @@ func init() {
flag.String("radar-port", "", "Radar port")
flag.Int("radar-baud", 9600, "Radar Baudrate")
flag.Int("mail-smtp-port", 587, "Mail Port")
flag.String("speedsign-ip", "", "192.168.1.143")
flag.String("speedsign-ip", "192.168.1.143", "Speed Sign Ip")
_ = viper.BindPFlags(flag.CommandLine)
flag.Parse()

View file

@ -12,7 +12,7 @@ import (
"github.com/sirupsen/logrus"
)
var r radar_lib.Radar
var r *radar_lib.Radar
func init() {
r = radar_lib.New(config.C.Radar.Port, config.C.Radar.Baud)

View file

@ -74,7 +74,7 @@ var (
endSequence = []byte{0x0D, 0x0A}
)
func New(port string, baudrate int) Radar {
func New(port string, baudrate int) *Radar {
s, err := serial.Open(port, &serial.Mode{
BaudRate: baudrate,
DataBits: 8,
@ -83,7 +83,7 @@ func New(port string, baudrate int) Radar {
if err != nil {
log.Fatal(err)
}
r := Radar{
r := &Radar{
port: s,
baudrate: baudrate,
configResponseChannel: make(chan configResponse),
@ -95,7 +95,6 @@ func New(port string, baudrate int) Radar {
type Radar struct {
port serial.Port
lock sync.RWMutex
configLock sync.RWMutex
configResponseChannel chan (configResponse)
baudrate int
handler func(int)

View file

@ -62,6 +62,8 @@ func (r *Radar) decodeInput(buf []byte) {
log.Printf("Speed: %dkm/h (%s, Over: %s, Valid: %s)", buf[3], dir, overspeed, valid)
if r.speedHandler != nil {
r.speedHandler(int(buf[3]))
} else {
log.Printf("speedhandler = nil")
}
if overspeed == "yes" && valid == "yes" && r.handler != nil {
r.handler(int(buf[3]))

View file

@ -2,17 +2,36 @@ package speedsign
import (
"fmt"
"log"
"net/http"
"git.ctdo.de/henne/blitzer-v2/config"
"git.ctdo.de/henne/blitzer-v2/db"
)
var free bool = true
func Show(speed int) {
if speed > db.GetConfig().TriggerSpeed {
_, _ = http.Get("http://" + config.C.SpeedsignIP + "/api/color/FF0000")
} else {
_, _ = http.Get("http://" + config.C.SpeedsignIP + "/api/color/00FF00")
if !free {
return
}
_, _ = http.Get(fmt.Sprintf("http://%s/api/number/%d", config.C.SpeedsignIP, speed))
free = false
log.Printf("%d", db.GetConfig().TriggerSpeed)
if speed > db.GetConfig().TriggerSpeed {
_, err := http.Get("http://" + config.C.SpeedsignIP + "/api/color/FF0000")
if err != nil {
log.Printf("err: %v", err)
}
} else {
_, err := http.Get("http://" + config.C.SpeedsignIP + "/api/color/00FF00")
if err != nil {
log.Printf("err: %v", err)
}
}
_, err := http.Get(fmt.Sprintf("http://%s/api/number/%d", config.C.SpeedsignIP, speed))
if err != nil {
log.Printf("err: %v", err)
}
log.Printf("send speed %d", speed)
free = true
}