You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2016/05/20 01:04:28 UTC
[5/6] incubator-mynewt-newt git commit: Support timeouts on newtmgr
connections
Support timeouts on newtmgr connections
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/dc7f93f6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/dc7f93f6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/dc7f93f6
Branch: refs/heads/develop
Commit: dc7f93f6c17bf61a23d37e6c4d16db8fac07e213
Parents: 4943963
Author: spoonofpower <sp...@gmail.com>
Authored: Fri Apr 29 19:00:26 2016 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Thu May 19 18:00:32 2016 -0700
----------------------------------------------------------------------
newtmgr/transport/conn.go | 13 +++++++++++--
newtmgr/transport/connserial.go | 8 +++++---
2 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/dc7f93f6/newtmgr/transport/conn.go
----------------------------------------------------------------------
diff --git a/newtmgr/transport/conn.go b/newtmgr/transport/conn.go
index a774b38..42d22a4 100644
--- a/newtmgr/transport/conn.go
+++ b/newtmgr/transport/conn.go
@@ -21,13 +21,14 @@ package transport
import (
"bytes"
+ "time"
"mynewt.apache.org/newt/newtmgr/config"
"mynewt.apache.org/newt/util"
)
type Conn interface {
- Open(cp config.NewtmgrConnProfile) error
+ Open(cp config.NewtmgrConnProfile, timeout time.Duration) error
ReadPacket() (*Packet, error)
WritePacket(pkt *Packet) error
}
@@ -68,13 +69,21 @@ func (pkt *Packet) TrimEnd(count int) {
}
func NewConn(cp config.NewtmgrConnProfile) (Conn, error) {
+ return newConn(cp, 0)
+}
+
+func NewConnWithTimeout(cp config.NewtmgrConnProfile, readTimeout time.Duration) (Conn, error) {
+ return newConn(cp, readTimeout)
+}
+
+func newConn(cp config.NewtmgrConnProfile, readTimeout time.Duration) (Conn, error) {
// Based on ConnProfile, instantiate the right type of conn object, that
// implements the conn interface.
var c Conn
switch cp.Type() {
case "serial":
c = &ConnSerial{}
- if err := c.Open(cp); err != nil {
+ if err := c.Open(cp, readTimeout); err != nil {
return nil, err
}
default:
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/dc7f93f6/newtmgr/transport/connserial.go
----------------------------------------------------------------------
diff --git a/newtmgr/transport/connserial.go b/newtmgr/transport/connserial.go
index b221e77..e9cb9f6 100644
--- a/newtmgr/transport/connserial.go
+++ b/newtmgr/transport/connserial.go
@@ -24,6 +24,7 @@ import (
"encoding/base64"
"encoding/binary"
"fmt"
+ "time"
log "github.com/Sirupsen/logrus"
"github.com/joaojeronimo/go-crc16"
@@ -41,12 +42,13 @@ type ConnSerial struct {
serialChannel *serial.Port
}
-func (cs *ConnSerial) Open(cp config.NewtmgrConnProfile) error {
+func (cs *ConnSerial) Open(cp config.NewtmgrConnProfile, readTimeout time.Duration) error {
var err error
c := &serial.Config{
- Name: cp.ConnString(),
- Baud: 115200,
+ Name: cp.ConnString(),
+ Baud: 115200,
+ ReadTimeout: readTimeout,
}
cs.serialChannel, err = serial.OpenPort(c)