github.com/simpleiot/simpleiot@v0.18.3/cmd/tof10120/main.go (about) 1 // TOF10120 test application 2 package main 3 4 import ( 5 "flag" 6 "fmt" 7 "log" 8 "os" 9 "time" 10 11 "github.com/simpleiot/simpleiot/respreader" 12 "github.com/simpleiot/simpleiot/sensors" 13 "go.bug.st/serial" 14 ) 15 16 func usage() { 17 fmt.Println("Usage: ") 18 flag.PrintDefaults() 19 os.Exit(-1) 20 } 21 22 func main() { 23 log.Println("modbus simulator") 24 25 flagPort := flag.String("port", "", "serial port") 26 flagSend := flag.Int("send", 200, "interval at which sensor should send data") 27 28 flag.Parse() 29 30 if *flagPort == "" { 31 usage() 32 } 33 34 mode := &serial.Mode{ 35 BaudRate: 9600, 36 } 37 port, err := serial.Open(*flagPort, mode) 38 if err != nil { 39 log.Fatal(err) 40 } 41 42 portRR := respreader.NewReadWriteCloser(port, time.Second, time.Millisecond*20) 43 44 tof := sensors.NewTOF10120(portRR) 45 46 err = tof.SetSendInterval(*flagSend) 47 48 if err != nil { 49 log.Println("Error setting send interval:", err) 50 } 51 52 err = tof.Read(func(v int) { 53 log.Printf("TOF data: %vmm\n", v) 54 }, func(err error) { 55 log.Println("Error reading TOF:", err) 56 }) 57 58 if err != nil { 59 log.Println("Error reading TOF:", err) 60 } 61 }