63 lines
1.2 KiB
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))
|
|
}
|