serialAlox/main.go

63 lines
1.2 KiB
Go

package main
import (
"fmt"
"log"
"net/http"
"runtime"
parser "serialAlox/Parser"
serialinteraction "serialAlox/SerialInteraction"
"time"
"github.com/micmonay/keybd_event"
)
type MainConfig struct {
Debug bool
Port int
}
func NewMainConfig() *MainConfig {
return &MainConfig{
Debug: false,
Port: 8080,
}
}
func main() {
kb, err := keybd_event.NewKeyBonding()
if err != nil {
panic(err)
}
if runtime.GOOS == "linux" {
time.Sleep(2 * time.Second)
}
mc := NewMainConfig()
mc.Debug = true
sc := serialinteraction.SerialConnection{}
msConf := NewMessageHandlerConfig()
msParserConf := parser.NewParserConfig()
msParser := parser.NewParser(*msParserConf)
msHandler := NewMessageHandler(&sc, *msConf, msParser)
msHandler.RegisterMessageCallback(0x01, func(b1 byte, b2 []byte) {
log.Printf("ICH BIN DER HANDLER % X, % X", b1, b2)
kb.SetKeys(keybd_event.VK_A, keybd_event.VK_B)
kb.Press()
time.Sleep(10 * time.Millisecond)
kb.Release()
})
go msHandler.ListenAndServe()
msHandler.MessageParser.ParseBytes([]byte{0xAA, 0x01, 0x02, 0x10, 0x20, 0x33})
log.Printf("Started Server on %d", mc.Port)
connectString := fmt.Sprintf(":%d", mc.Port)
log.Fatal(http.ListenAndServe(connectString, nil))
}