initscript and correct address
[svn42.git] / go / uc_sensor_node_zmq / main.go
1 // (c) Bernhard Tittelbach, 2013
2
3 package main
4
5 import (
6     "flag"
7 )
8
9
10 // ---------- Main Code -------------
11
12 var (
13     tty_dev_ string
14     pub_addr string
15     use_syslog_ bool    
16     enable_debug_ bool    
17 )
18
19 func init() {
20     flag.StringVar(&pub_addr, "brokeraddr", "tcp://torwaechter.realraum.at:4243", "zmq address to send stuff to")
21     flag.StringVar(&tty_dev_, "ttydev", "/dev/ttyACM0", "path do tty uc device")
22     flag.BoolVar(&use_syslog_, "syslog", false, "log to syslog local1 facility")    
23     flag.BoolVar(&enable_debug_, "debug", false, "debugging messages on")    
24     flag.Parse()
25 }
26
27 func main() {
28     zmqctx, pub_sock := ZmqsInit(pub_addr)
29     if pub_sock == nil { panic("zmq socket creation failed") }
30     defer zmqctx.Close()   
31     defer pub_sock.Close()
32
33     if enable_debug_ {
34         LogEnableDebuglog()
35     } else if use_syslog_ {
36         LogEnableSyslog()
37         Syslog_.Print("started")
38     }
39
40     serial_wr, serial_rd, err := OpenAndHandleSerial(tty_dev_)
41     if err != nil { panic(err) }    
42     defer close(serial_wr)
43     
44     for incoming_ser_line := range(serial_rd) {
45         Syslog_.Printf("%s",incoming_ser_line)
46         if err := pub_sock.Send(incoming_ser_line); err != nil { panic(err) }
47     }
48 }