From 4f954f2daed0cb4f9c522002221a706e01c3e31e Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 13 Dec 2017 00:33:03 +0100 Subject: split --- elegoo.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 elegoo.go (limited to 'elegoo.go') diff --git a/elegoo.go b/elegoo.go new file mode 100644 index 0000000..a7ed182 --- /dev/null +++ b/elegoo.go @@ -0,0 +1,28 @@ +package elegoo + +import ( + "bufio" + "io" + + "github.com/dim13/cobs" + proto "github.com/golang/protobuf/proto" +) + +//go:generate sh -c "protoc --go_out=. --nanopb_out=elegoo/ *.proto" + +func Send(w io.Writer, pb proto.Message) error { + buf := new(proto.Buffer) + if err := buf.EncodeMessage(pb); err != nil { + return err + } + _, err := w.Write(cobs.Encode(buf.Bytes())) + return err +} + +func Recv(buf *bufio.Reader, pb proto.Message) error { + block, err := buf.ReadBytes(0) + if err != nil { + return err + } + return proto.NewBuffer(cobs.Decode(block)).DecodeMessage(pb) +} -- cgit v1.2.3