aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-26 20:30:51 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-26 20:30:51 +0200
commit530a312ee523a25e5df475341d201e5bb1296c41 (patch)
treeb6387d94cac097372f8faaece4e7b34f983204e8
parent8d81d5905e98ad883457744fb1bb76dded0b343d (diff)
...
-rw-r--r--car/elegoo/main.go45
1 files changed, 26 insertions, 19 deletions
diff --git a/car/elegoo/main.go b/car/elegoo/main.go
index 3d7fcde..0d9d7cd 100644
--- a/car/elegoo/main.go
+++ b/car/elegoo/main.go
@@ -6,7 +6,6 @@ import (
"bufio"
"io"
"log"
- "time"
"github.com/dim13/cobs"
"github.com/golang/protobuf/proto"
@@ -37,11 +36,30 @@ func Read(buf *bufio.Reader, pb proto.Message) error {
// /dev/cu.usbmodem1421
// /dev/cu.usbmodem1411
+func events(r io.Reader) chan *Events {
+ c := make(chan *Events)
+ buf := bufio.NewReader(r)
+ go func() {
+ for {
+ evt := &Events{}
+ if err := Read(buf, evt); err != nil {
+ if err == io.ErrUnexpectedEOF {
+ continue
+ }
+ log.Println("ERR", err)
+ return
+ }
+ c <- evt
+ }
+ }()
+ return c
+}
+
func main() {
c := &serial.Config{
- Name: "/dev/tty.usbmodem1421",
+ //Name: "/dev/tty.usbmodem1421",
//Name: "/dev/tty.usbmodem1411",
- //Name: "/dev/tty.Elegoo-DevB",
+ Name: "/dev/tty.Elegoo-DevB",
Baud: 57600,
}
s, err := serial.OpenPort(c)
@@ -49,21 +67,12 @@ func main() {
log.Fatal(err)
}
defer s.Close()
- log.Println("connected")
- go func() {
- log.Println("recv")
- buf := bufio.NewReader(s)
- for {
- evt := &Events{}
- if err := Read(buf, evt); err != nil {
- log.Println("ERR", err)
- }
- log.Println(evt)
- }
- }()
+ for e := range events(s) {
+ log.Println(e)
+ }
- log.Println("send -45")
+ /* log.Println("send -45")
time.Sleep(3 * time.Second)
Write(s, &Command{Direction: 5})
@@ -74,6 +83,7 @@ func main() {
log.Println("send +0")
time.Sleep(3 * time.Second)
Write(s, &Command{Direction: 90})
+ */
/* log.Println("send motor")
Write(s, &Command{SpeedL: 200, SpeedR: 200, StopAfter: 1000})
@@ -88,8 +98,6 @@ func main() {
Write(s, &Command{SpeedL: 250, SpeedR: -250, StopAfter: 500})
*/
- time.Sleep(time.Minute)
-
/* MOTOR
cmd.SpeedL = 200
cmd.SpeedR = 0
@@ -114,5 +122,4 @@ func main() {
cmd.Stop = true
Write(s, cmd)
*/
-
}