X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fdoor_daemon_zmq%2Fmain.go;h=52e8197993f290bbae8efb4d53e313bcf0dc4c28;hb=e021d7de474ab4755e8081e3009c328fd7d07c09;hp=28be188a1df4d35b69106ea53514481cc3dc9555;hpb=88e758b4025ef2a84acafc7b832a41028280c296;p=svn42.git diff --git a/go/door_daemon_zmq/main.go b/go/door_daemon_zmq/main.go index 28be188..52e8197 100644 --- a/go/door_daemon_zmq/main.go +++ b/go/door_daemon_zmq/main.go @@ -6,7 +6,7 @@ import ( "fmt" "os" "flag" - "log" + //~ "log" ) //~ func StringArrayToByteArray(ss []string) [][]byte { @@ -19,41 +19,58 @@ import ( // ---------- Main Code ------------- +var ( + cmd_port_ string + pub_port_ string +) + func usage() { fmt.Fprintf(os.Stderr, "Usage: door_daemon_0mq \n") flag.PrintDefaults() } -func main() { +func init() { + flag.StringVar(&cmd_port_, "cmdport", "tcp://127.0.01:3232", "zmq command socket path") + flag.StringVar(&pub_port_, "pubport", "pgm://233.252.1.42:4242", "zmq public/listen socket path") flag.Usage = usage flag.Parse() +} +func main() { args := flag.Args() if len(args) < 1 { fmt.Fprintf(os.Stderr, "Input file is missing!\n"); usage() os.Exit(1); } - - cmd_chans, pub_chans := ZmqsInit("tcp://localhost:5555", "gmp://*:6666") - - serial_wr, serial_rd, err := OpenAndHandleSerial(args[0], pub_chans.Out()) + + zmqctx, cmd_chans, pub_chans := ZmqsInit(cmd_port_, pub_port_) + defer cmd_chans.Close() + defer pub_chans.Close() + defer zmqctx.Close() + + serial_wr, err := OpenAndHandleSerial(args[0], pub_chans.Out()) + defer close(serial_wr) if err != nil { - close(serial_wr) panic(err) } - - serial_wr <- "f" - firmware_version := <- serial_rd - log.Print("Firmware version:", firmware_version) + + //~ serial_wr <- "f" + //~ firmware_version := <- serial_rd + //~ log.Print("Firmware version:", firmware_version) for incoming_request := range cmd_chans.In() { - reply, err := HandleCommand(incoming_request, pub_chans.Out(), serial_wr, serial_rd) + //~ log.Print(incoming_request) + reply, err := HandleCommand(incoming_request, pub_chans.Out(), serial_wr) if err != nil { - cmd_chans.Out() <- [][]byte{[]byte("ERROR"), []byte(err.Error())} - log.Print(err) + //~ log.Print(err) + out_msg := [][]byte{[]byte("ERROR"), []byte(err.Error())} + cmd_chans.Out() <- out_msg + //~ log.Print("sent error") } else { + //~ log.Print(reply) cmd_chans.Out() <- reply - } + //~ log.Print("sent reply") + } } }