# HG changeset patch # User drewp # Date 1405208139 25200 # Node ID fa8710124ff00268ea05c17d272aa17ce75ee60b # Parent faefd71c45ae64362caf2af45ed99a0d991ab1f7 pilight read dht sensor Ignore-this: fdaa9e3d1fead200485c939ac760fa9d darcs-hash:20140712233539-312f9-417b38cc72fe500bb06792dabd316060a1baadc9 diff -r faefd71c45ae -r fa8710124ff0 service/pilight/pilight.go --- a/service/pilight/pilight.go Sat Jul 12 16:35:28 2014 -0700 +++ b/service/pilight/pilight.go Sat Jul 12 16:35:39 2014 -0700 @@ -9,6 +9,9 @@ import "color/hex" import "strconv" import "time" +import "net/textproto" +import "bufio" +import "errors" const ledCount = 3 @@ -59,6 +62,23 @@ return b.Write(0, bytes) } +func (b *Board) ReadDht() (string, error) { + for try := 0; try < 5; try++ { + err := b.Write(0x2, make([]byte, 0)) + if err != nil { + continue + } + + reader := textproto.NewReader(bufio.NewReader(b.ser)) + json, err := reader.ReadLine() + if err != nil { + continue + } + return json, nil + } + return "", errors.New("failed after all retries") +} + func getBodyStringColor(req *http.Request) (c color.Color, err error) { bytes := make([]byte, 1024) n, err := req.Body.Read(bytes) @@ -113,6 +133,13 @@ return 200, "ok" }) + m.Get("/dht", func() (int, string) { + json, err := board.ReadDht() + if err != nil { + return 500, "" + } + return 200, json + }) log.Printf("serving") m.Run() }