48 lines
975 B
Go
48 lines
975 B
Go
package printer
|
|
|
|
import (
|
|
"image"
|
|
"os"
|
|
|
|
"git.ctdo.de/henne/blitzer-v2/config"
|
|
"git.ctdo.de/henne/blitzer-v2/db"
|
|
"github.com/hennedo/escpos"
|
|
"github.com/sirupsen/logrus"
|
|
"go.bug.st/serial"
|
|
)
|
|
|
|
var printer *escpos.Escpos
|
|
var whyImage image.Image
|
|
|
|
func init() {
|
|
if config.C.PrinterPort == "" {
|
|
return
|
|
}
|
|
socket, err := serial.Open(config.C.PrinterPort, &serial.Mode{
|
|
BaudRate: 19200,
|
|
StopBits: serial.OneStopBit,
|
|
DataBits: 8,
|
|
Parity: serial.NoParity,
|
|
})
|
|
if err != nil {
|
|
logrus.Panicf("printer error serial port: %s", err)
|
|
}
|
|
printer = escpos.New(socket)
|
|
imageFile, err := os.Open("webserver/assets/img/traffic_police.jpg")
|
|
if err != nil {
|
|
logrus.Errorf("error loading image: %s", err)
|
|
}
|
|
whyImage, _, err = image.Decode(imageFile)
|
|
if err != nil {
|
|
logrus.Errorf("image decoding error: %s", err)
|
|
}
|
|
|
|
}
|
|
|
|
func PrintTicket(ticket db.SpeedingTicket) {
|
|
if config.C.PrinterPort == "" {
|
|
return
|
|
}
|
|
printer.Initialize()
|
|
printer.PrintImage(whyImage)
|
|
}
|