aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-27 00:46:03 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-27 00:46:03 +0200
commite4cabee7b53ba8f71826b79cc09b3ecba1a02f13 (patch)
tree1afd1609fb21636e534daaa17348930aa43873bd
parentba216919262d7f888bfb99debf81babe1ce88e0e (diff)
...
-rw-r--r--car/elegoo/main.go24
1 files changed, 21 insertions, 3 deletions
diff --git a/car/elegoo/main.go b/car/elegoo/main.go
index 0d9d7cd..7e5f6e3 100644
--- a/car/elegoo/main.go
+++ b/car/elegoo/main.go
@@ -36,7 +36,7 @@ func Read(buf *bufio.Reader, pb proto.Message) error {
// /dev/cu.usbmodem1421
// /dev/cu.usbmodem1411
-func events(r io.Reader) chan *Events {
+func Reader(r io.Reader) chan *Events {
c := make(chan *Events)
buf := bufio.NewReader(r)
go func() {
@@ -55,6 +55,17 @@ func events(r io.Reader) chan *Events {
return c
}
+func Writer(w io.Writer) chan *Command {
+ c := make(chan *Command)
+ go func() {
+ for cmd := range c {
+ log.Println("send", cmd)
+ Write(w, cmd)
+ }
+ }()
+ return c
+}
+
func main() {
c := &serial.Config{
//Name: "/dev/tty.usbmodem1421",
@@ -68,8 +79,15 @@ func main() {
}
defer s.Close()
- for e := range events(s) {
- log.Println(e)
+ w := Writer(s)
+
+ w <- &Command{Direction: 80}
+
+ for e := range Reader(s) {
+ log.Println("event", e)
+ if e.SensorC || e.Distance < 20 {
+ w <- &Command{Stop: true}
+ }
}
/* log.Println("send -45")