newtmgr - use newtmgr repo, not newt repo.

Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/commit/15498bdc
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/tree/15498bdc
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/diff/15498bdc

Branch: refs/heads/master
Commit: 15498bdcff2206a39e062527090f21269ff34983
Parents: e31a7d3
Author: Christopher Collins <[email protected]>
Authored: Tue Mar 28 15:31:40 2017 -0700
Committer: Christopher Collins <[email protected]>
Committed: Tue Mar 28 15:38:37 2017 -0700

----------------------------------------------------------------------
 newtmgr/Godeps/Godeps.json                      |  80 +-
 newtmgr/cli/commands.go                         |   2 +-
 newtmgr/cli/common.go                           |  10 +-
 newtmgr/cli/config.go                           |   6 +-
 newtmgr/cli/connprofile.go                      |   2 +-
 newtmgr/cli/crash.go                            |   4 +-
 newtmgr/cli/datetime.go                         |   6 +-
 newtmgr/cli/echo.go                             |   4 +-
 newtmgr/cli/fs.go                               |   6 +-
 newtmgr/cli/image.go                            |   8 +-
 newtmgr/cli/log.go                              |   6 +-
 newtmgr/cli/mpstat.go                           |   4 +-
 newtmgr/cli/reset.go                            |   4 +-
 newtmgr/cli/run.go                              |   4 +-
 newtmgr/cli/stat.go                             |   4 +-
 newtmgr/cli/taskstat.go                         |   4 +-
 newtmgr/config/ble_config.go                    |   6 +-
 newtmgr/config/serial_config.go                 |   4 +-
 newtmgr/newtmgr.go                              |   6 +-
 newtmgr/nmutil/nmutil.go                        |   2 +-
 .../newt/nmxact/bledefs/bledefs.go              | 270 ------
 .../newt/nmxact/nmble/ble_act.go                | 363 --------
 .../newt/nmxact/nmble/ble_fsm.go                | 766 -----------------
 .../newt/nmxact/nmble/ble_oic_sesn.go           | 198 -----
 .../newt/nmxact/nmble/ble_plain_sesn.go         | 186 -----
 .../newt/nmxact/nmble/ble_proto.go              | 829 -------------------
 .../newt/nmxact/nmble/ble_util.go               | 174 ----
 .../newt/nmxact/nmble/ble_xport.go              | 319 -------
 .../newt/nmxact/nmble/dispatch.go               | 297 -------
 .../mynewt.apache.org/newt/nmxact/nmp/config.go |  80 --
 .../mynewt.apache.org/newt/nmxact/nmp/crash.go  |  46 -
 .../newt/nmxact/nmp/datetime.go                 |  78 --
 .../mynewt.apache.org/newt/nmxact/nmp/decode.go | 121 ---
 .../mynewt.apache.org/newt/nmxact/nmp/defs.go   |  88 --
 .../newt/nmxact/nmp/dispatch.go                 | 167 ----
 .../mynewt.apache.org/newt/nmxact/nmp/echo.go   |  47 --
 .../mynewt.apache.org/newt/nmxact/nmp/frag.go   |  61 --
 .../mynewt.apache.org/newt/nmxact/nmp/fs.go     |  86 --
 .../mynewt.apache.org/newt/nmxact/nmp/image.go  | 215 -----
 .../mynewt.apache.org/newt/nmxact/nmp/log.go    | 260 ------
 .../mynewt.apache.org/newt/nmxact/nmp/mpstat.go |  46 -
 .../mynewt.apache.org/newt/nmxact/nmp/nmp.go    | 165 ----
 .../mynewt.apache.org/newt/nmxact/nmp/reset.go  |  44 -
 .../mynewt.apache.org/newt/nmxact/nmp/run.go    |  79 --
 .../mynewt.apache.org/newt/nmxact/nmp/stat.go   |  81 --
 .../newt/nmxact/nmp/taskstat.go                 |  46 -
 .../newt/nmxact/nmserial/packet.go              |  40 -
 .../newt/nmxact/nmserial/serial_plain_sesn.go   | 137 ---
 .../newt/nmxact/nmserial/serial_xport.go        | 217 -----
 .../newt/nmxact/nmxutil/nmxerr.go               | 160 ----
 .../newt/nmxact/nmxutil/nmxutil.go              |  25 -
 .../newt/nmxact/omp/dispatch.go                 |  66 --
 .../mynewt.apache.org/newt/nmxact/omp/frag.go   |  47 --
 .../mynewt.apache.org/newt/nmxact/omp/omp.go    | 125 ---
 .../mynewt.apache.org/newt/nmxact/sesn/sesn.go  |  79 --
 .../newt/nmxact/sesn/sesn_cfg.go                |  65 --
 .../mynewt.apache.org/newt/nmxact/xact/cmd.go   |  65 --
 .../newt/nmxact/xact/config.go                  |  88 --
 .../mynewt.apache.org/newt/nmxact/xact/crash.go |  87 --
 .../newt/nmxact/xact/datetime.go                |  84 --
 .../mynewt.apache.org/newt/nmxact/xact/echo.go  |  42 -
 .../mynewt.apache.org/newt/nmxact/xact/fs.go    | 178 ----
 .../mynewt.apache.org/newt/nmxact/xact/image.go | 332 --------
 .../mynewt.apache.org/newt/nmxact/xact/log.go   | 202 -----
 .../newt/nmxact/xact/mpstat.go                  |  40 -
 .../mynewt.apache.org/newt/nmxact/xact/reset.go |  41 -
 .../mynewt.apache.org/newt/nmxact/xact/run.go   |  86 --
 .../mynewt.apache.org/newt/nmxact/xact/stat.go  |  84 --
 .../newt/nmxact/xact/taskstat.go                |  40 -
 .../mynewt.apache.org/newt/nmxact/xact/xact.go  |  47 --
 .../newt/nmxact/xport/xport.go                  |  15 -
 .../newtmgr/nmxact/bledefs/bledefs.go           | 270 ++++++
 .../newtmgr/nmxact/nmble/ble_act.go             | 363 ++++++++
 .../newtmgr/nmxact/nmble/ble_fsm.go             | 766 +++++++++++++++++
 .../newtmgr/nmxact/nmble/ble_oic_sesn.go        | 198 +++++
 .../newtmgr/nmxact/nmble/ble_plain_sesn.go      | 186 +++++
 .../newtmgr/nmxact/nmble/ble_proto.go           | 829 +++++++++++++++++++
 .../newtmgr/nmxact/nmble/ble_util.go            | 174 ++++
 .../newtmgr/nmxact/nmble/ble_xport.go           | 319 +++++++
 .../newtmgr/nmxact/nmble/dispatch.go            | 297 +++++++
 .../newtmgr/nmxact/nmp/config.go                |  80 ++
 .../newtmgr/nmxact/nmp/crash.go                 |  46 +
 .../newtmgr/nmxact/nmp/datetime.go              |  78 ++
 .../newtmgr/nmxact/nmp/decode.go                | 121 +++
 .../newtmgr/nmxact/nmp/defs.go                  |  88 ++
 .../newtmgr/nmxact/nmp/dispatch.go              | 167 ++++
 .../newtmgr/nmxact/nmp/echo.go                  |  47 ++
 .../newtmgr/nmxact/nmp/frag.go                  |  61 ++
 .../mynewt.apache.org/newtmgr/nmxact/nmp/fs.go  |  86 ++
 .../newtmgr/nmxact/nmp/image.go                 | 215 +++++
 .../mynewt.apache.org/newtmgr/nmxact/nmp/log.go | 260 ++++++
 .../newtmgr/nmxact/nmp/mpstat.go                |  46 +
 .../mynewt.apache.org/newtmgr/nmxact/nmp/nmp.go | 165 ++++
 .../newtmgr/nmxact/nmp/reset.go                 |  44 +
 .../mynewt.apache.org/newtmgr/nmxact/nmp/run.go |  79 ++
 .../newtmgr/nmxact/nmp/stat.go                  |  81 ++
 .../newtmgr/nmxact/nmp/taskstat.go              |  46 +
 .../newtmgr/nmxact/nmserial/packet.go           |  40 +
 .../nmxact/nmserial/serial_plain_sesn.go        | 137 +++
 .../newtmgr/nmxact/nmserial/serial_xport.go     | 217 +++++
 .../newtmgr/nmxact/nmxutil/nmxerr.go            | 160 ++++
 .../newtmgr/nmxact/nmxutil/nmxutil.go           |  25 +
 .../newtmgr/nmxact/omp/dispatch.go              |  66 ++
 .../newtmgr/nmxact/omp/frag.go                  |  47 ++
 .../mynewt.apache.org/newtmgr/nmxact/omp/omp.go | 125 +++
 .../newtmgr/nmxact/sesn/sesn.go                 |  79 ++
 .../newtmgr/nmxact/sesn/sesn_cfg.go             |  65 ++
 .../newtmgr/nmxact/xact/cmd.go                  |  65 ++
 .../newtmgr/nmxact/xact/config.go               |  88 ++
 .../newtmgr/nmxact/xact/crash.go                |  87 ++
 .../newtmgr/nmxact/xact/datetime.go             |  84 ++
 .../newtmgr/nmxact/xact/echo.go                 |  42 +
 .../mynewt.apache.org/newtmgr/nmxact/xact/fs.go | 178 ++++
 .../newtmgr/nmxact/xact/image.go                | 332 ++++++++
 .../newtmgr/nmxact/xact/log.go                  | 202 +++++
 .../newtmgr/nmxact/xact/mpstat.go               |  40 +
 .../newtmgr/nmxact/xact/reset.go                |  41 +
 .../newtmgr/nmxact/xact/run.go                  |  86 ++
 .../newtmgr/nmxact/xact/stat.go                 |  84 ++
 .../newtmgr/nmxact/xact/taskstat.go             |  40 +
 .../newtmgr/nmxact/xact/xact.go                 |  47 ++
 .../newtmgr/nmxact/xport/xport.go               |  15 +
 nmxact/example/ble_plain/ble_plain.go           |   8 +-
 nmxact/example/serial_plain/serial_plain.go     |   6 +-
 nmxact/nmble/ble_act.go                         |   2 +-
 nmxact/nmble/ble_fsm.go                         |   8 +-
 nmxact/nmble/ble_oic_sesn.go                    |   8 +-
 nmxact/nmble/ble_plain_sesn.go                  |   6 +-
 nmxact/nmble/ble_proto.go                       |   2 +-
 nmxact/nmble/ble_util.go                        |   4 +-
 nmxact/nmble/ble_xport.go                       |   4 +-
 nmxact/nmp/nmp.go                               |   2 +-
 nmxact/nmserial/serial_plain_sesn.go            |   6 +-
 nmxact/nmserial/serial_xport.go                 |   4 +-
 nmxact/omp/dispatch.go                          |   2 +-
 nmxact/omp/omp.go                               |   2 +-
 nmxact/sesn/sesn.go                             |   4 +-
 nmxact/sesn/sesn_cfg.go                         |   2 +-
 nmxact/xact/cmd.go                              |   2 +-
 nmxact/xact/config.go                           |   4 +-
 nmxact/xact/crash.go                            |   4 +-
 nmxact/xact/datetime.go                         |   4 +-
 nmxact/xact/echo.go                             |   4 +-
 nmxact/xact/fs.go                               |   4 +-
 nmxact/xact/image.go                            |   4 +-
 nmxact/xact/log.go                              |   4 +-
 nmxact/xact/mpstat.go                           |   4 +-
 nmxact/xact/reset.go                            |   4 +-
 nmxact/xact/run.go                              |   4 +-
 nmxact/xact/stat.go                             |   4 +-
 nmxact/xact/taskstat.go                         |   4 +-
 nmxact/xact/xact.go                             |   4 +-
 nmxact/xport/xport.go                           |   2 +-
 153 files changed, 7653 insertions(+), 7653 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/Godeps/Godeps.json
----------------------------------------------------------------------
diff --git a/newtmgr/Godeps/Godeps.json b/newtmgr/Godeps/Godeps.json
index 48ffcc0..fbbd835 100644
--- a/newtmgr/Godeps/Godeps.json
+++ b/newtmgr/Godeps/Godeps.json
@@ -1,5 +1,5 @@
 {
-       "ImportPath": "mynewt.apache.org/newt/newtmgr",
+       "ImportPath": "mynewt.apache.org/newtmgr/newtmgr",
        "GoVersion": "go1.7",
        "GodepVersion": "v74",
        "Deps": [
@@ -75,69 +75,69 @@
                        "Rev": "629574ca2a5df945712d3079857300b5e4da0236"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/bledefs",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newt/util",
+                       "Comment": "mynewt_1_0_0_b1_tag-208-g150c666",
+                       "Rev": "150c6666bab17ce5a5805c1eda8a223d88cd109e"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/nmble",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newt/util/unixchild",
+                       "Comment": "mynewt_1_0_0_b1_tag-208-g150c666",
+                       "Rev": "150c6666bab17ce5a5805c1eda8a223d88cd109e"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/nmp",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newt/viper",
+                       "Comment": "mynewt_1_0_0_b1_tag-208-g150c666",
+                       "Rev": "150c6666bab17ce5a5805c1eda8a223d88cd109e"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/nmserial",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newt/yaml",
+                       "Comment": "mynewt_1_0_0_b1_tag-208-g150c666",
+                       "Rev": "150c6666bab17ce5a5805c1eda8a223d88cd109e"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/nmxutil",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": 
"mynewt.apache.org/newtmgr/nmxact/bledefs",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/omp",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newtmgr/nmxact/nmble",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/sesn",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newtmgr/nmxact/nmp",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/xact",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": 
"mynewt.apache.org/newtmgr/nmxact/nmserial",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/nmxact/xport",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": 
"mynewt.apache.org/newtmgr/nmxact/nmxutil",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/util",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newtmgr/nmxact/omp",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/util/unixchild",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newtmgr/nmxact/sesn",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/viper",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newtmgr/nmxact/xact",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                },
                {
-                       "ImportPath": "mynewt.apache.org/newt/yaml",
-                       "Comment": "mynewt_1_0_0_b1_tag-209-gba7af48",
-                       "Rev": "ba7af483399e5b3de83f3995d6f092546b199751"
+                       "ImportPath": "mynewt.apache.org/newtmgr/nmxact/xport",
+                       "Comment": "mynewt_0_9_0_tag-446-gabaa035",
+                       "Rev": "abaa03594e726b6d2b749bc405f4006eb4820c1b"
                }
        ]
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/commands.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/commands.go b/newtmgr/cli/commands.go
index 91828e7..d0ab758 100644
--- a/newtmgr/cli/commands.go
+++ b/newtmgr/cli/commands.go
@@ -23,7 +23,7 @@ import (
        log "github.com/Sirupsen/logrus"
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/common.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/common.go b/newtmgr/cli/common.go
index 07703e9..da3c348 100644
--- a/newtmgr/cli/common.go
+++ b/newtmgr/cli/common.go
@@ -22,11 +22,11 @@ package cli
 import (
        "fmt"
 
-       "mynewt.apache.org/newt/newtmgr/config"
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/nmserial"
-       "mynewt.apache.org/newt/nmxact/sesn"
-       "mynewt.apache.org/newt/nmxact/xport"
+       "mynewt.apache.org/newtmgr/newtmgr/config"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/nmserial"
+       "mynewt.apache.org/newtmgr/nmxact/sesn"
+       "mynewt.apache.org/newtmgr/nmxact/xport"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/config.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/config.go b/newtmgr/cli/config.go
index cf9ba1e..1287557 100644
--- a/newtmgr/cli/config.go
+++ b/newtmgr/cli/config.go
@@ -24,9 +24,9 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/sesn"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/sesn"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/connprofile.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/connprofile.go b/newtmgr/cli/connprofile.go
index 33de3bd..5558156 100644
--- a/newtmgr/cli/connprofile.go
+++ b/newtmgr/cli/connprofile.go
@@ -23,7 +23,7 @@ import (
        "fmt"
        "strings"
 
-       "mynewt.apache.org/newt/newtmgr/config"
+       "mynewt.apache.org/newtmgr/newtmgr/config"
        "mynewt.apache.org/newt/util"
 
        "github.com/spf13/cobra"

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/crash.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/crash.go b/newtmgr/cli/crash.go
index b1abade..c32c135 100644
--- a/newtmgr/cli/crash.go
+++ b/newtmgr/cli/crash.go
@@ -25,8 +25,8 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/datetime.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/datetime.go b/newtmgr/cli/datetime.go
index ce1336f..67598d3 100644
--- a/newtmgr/cli/datetime.go
+++ b/newtmgr/cli/datetime.go
@@ -24,9 +24,9 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/sesn"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/sesn"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/echo.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/echo.go b/newtmgr/cli/echo.go
index 6859cac..13bfc9d 100644
--- a/newtmgr/cli/echo.go
+++ b/newtmgr/cli/echo.go
@@ -24,8 +24,8 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/fs.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/fs.go b/newtmgr/cli/fs.go
index 3ea6652..a866e08 100644
--- a/newtmgr/cli/fs.go
+++ b/newtmgr/cli/fs.go
@@ -26,9 +26,9 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/nmp"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/nmp"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/image.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/image.go b/newtmgr/cli/image.go
index 65f7af5..78739c8 100644
--- a/newtmgr/cli/image.go
+++ b/newtmgr/cli/image.go
@@ -28,10 +28,10 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/core"
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/nmp"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/core"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/nmp"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/log.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/log.go b/newtmgr/cli/log.go
index cba1e5b..e3a2586 100644
--- a/newtmgr/cli/log.go
+++ b/newtmgr/cli/log.go
@@ -26,9 +26,9 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/nmp"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/nmp"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/mpstat.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/mpstat.go b/newtmgr/cli/mpstat.go
index 65dffff..3a5e9e2 100644
--- a/newtmgr/cli/mpstat.go
+++ b/newtmgr/cli/mpstat.go
@@ -25,8 +25,8 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/reset.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/reset.go b/newtmgr/cli/reset.go
index 6329354..85f3952 100644
--- a/newtmgr/cli/reset.go
+++ b/newtmgr/cli/reset.go
@@ -24,8 +24,8 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/run.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/run.go b/newtmgr/cli/run.go
index 5550d53..801d000 100644
--- a/newtmgr/cli/run.go
+++ b/newtmgr/cli/run.go
@@ -25,8 +25,8 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/stat.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/stat.go b/newtmgr/cli/stat.go
index a6b9c82..7615278 100644
--- a/newtmgr/cli/stat.go
+++ b/newtmgr/cli/stat.go
@@ -25,8 +25,8 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/cli/taskstat.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/taskstat.go b/newtmgr/cli/taskstat.go
index bfb82d4..7102a49 100644
--- a/newtmgr/cli/taskstat.go
+++ b/newtmgr/cli/taskstat.go
@@ -25,8 +25,8 @@ import (
 
        "github.com/spf13/cobra"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/xact"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/xact"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/config/ble_config.go
----------------------------------------------------------------------
diff --git a/newtmgr/config/ble_config.go b/newtmgr/config/ble_config.go
index 77e98a3..d8fd643 100644
--- a/newtmgr/config/ble_config.go
+++ b/newtmgr/config/ble_config.go
@@ -24,9 +24,9 @@ import (
        "strings"
        "time"
 
-       "mynewt.apache.org/newt/nmxact/bledefs"
-       "mynewt.apache.org/newt/nmxact/nmble"
-       "mynewt.apache.org/newt/nmxact/sesn"
+       "mynewt.apache.org/newtmgr/nmxact/bledefs"
+       "mynewt.apache.org/newtmgr/nmxact/nmble"
+       "mynewt.apache.org/newtmgr/nmxact/sesn"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/config/serial_config.go
----------------------------------------------------------------------
diff --git a/newtmgr/config/serial_config.go b/newtmgr/config/serial_config.go
index 8b03116..1b6af08 100644
--- a/newtmgr/config/serial_config.go
+++ b/newtmgr/config/serial_config.go
@@ -5,8 +5,8 @@ import (
        "strconv"
        "strings"
 
-       "mynewt.apache.org/newt/newtmgr/nmutil"
-       "mynewt.apache.org/newt/nmxact/nmserial"
+       "mynewt.apache.org/newtmgr/newtmgr/nmutil"
+       "mynewt.apache.org/newtmgr/nmxact/nmserial"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/newtmgr.go
----------------------------------------------------------------------
diff --git a/newtmgr/newtmgr.go b/newtmgr/newtmgr.go
index 4a841dc..0307020 100644
--- a/newtmgr/newtmgr.go
+++ b/newtmgr/newtmgr.go
@@ -25,9 +25,9 @@ import (
        "os/signal"
        "syscall"
 
-       "mynewt.apache.org/newt/newtmgr/cli"
-       "mynewt.apache.org/newt/newtmgr/config"
-       "mynewt.apache.org/newt/nmxact/nmserial"
+       "mynewt.apache.org/newtmgr/newtmgr/cli"
+       "mynewt.apache.org/newtmgr/newtmgr/config"
+       "mynewt.apache.org/newtmgr/nmxact/nmserial"
        "mynewt.apache.org/newt/util"
 )
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/nmutil/nmutil.go
----------------------------------------------------------------------
diff --git a/newtmgr/nmutil/nmutil.go b/newtmgr/nmutil/nmutil.go
index 40ba7ac..aca8111 100644
--- a/newtmgr/nmutil/nmutil.go
+++ b/newtmgr/nmutil/nmutil.go
@@ -22,7 +22,7 @@ package nmutil
 import (
        "time"
 
-       "mynewt.apache.org/newt/nmxact/sesn"
+       "mynewt.apache.org/newtmgr/nmxact/sesn"
 )
 
 var Timeout float64

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/bledefs/bledefs.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/bledefs/bledefs.go 
b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/bledefs/bledefs.go
deleted file mode 100644
index 3bb2772..0000000
--- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/bledefs/bledefs.go
+++ /dev/null
@@ -1,270 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package bledefs
-
-import (
-       "bytes"
-       "encoding/json"
-       "fmt"
-       "strconv"
-       "strings"
-)
-
-const BLE_ATT_ATTR_MAX_LEN = 512
-
-type BleAddrType int
-
-const (
-       BLE_ADDR_TYPE_PUBLIC  BleAddrType = 0
-       BLE_ADDR_TYPE_RANDOM              = 1
-       BLE_ADDR_TYPE_RPA_PUB             = 2
-       BLE_ADDR_TYPE_RPA_RND             = 3
-)
-
-var BleAddrTypeStringMap = map[BleAddrType]string{
-       BLE_ADDR_TYPE_PUBLIC:  "public",
-       BLE_ADDR_TYPE_RANDOM:  "random",
-       BLE_ADDR_TYPE_RPA_PUB: "rpa_pub",
-       BLE_ADDR_TYPE_RPA_RND: "rpa_rnd",
-}
-
-func BleAddrTypeToString(addrType BleAddrType) string {
-       s := BleAddrTypeStringMap[addrType]
-       if s == "" {
-               panic(fmt.Sprintf("Invalid BleAddrType: %d", int(addrType)))
-       }
-
-       return s
-}
-
-func BleAddrTypeFromString(s string) (BleAddrType, error) {
-       for addrType, name := range BleAddrTypeStringMap {
-               if s == name {
-                       return addrType, nil
-               }
-       }
-
-       return BleAddrType(0), fmt.Errorf("Invalid BleAddrType string: %s", s)
-}
-
-func (a BleAddrType) MarshalJSON() ([]byte, error) {
-       return json.Marshal(BleAddrTypeToString(a))
-}
-
-func (a *BleAddrType) UnmarshalJSON(data []byte) error {
-       var err error
-
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       *a, err = BleAddrTypeFromString(s)
-       return err
-}
-
-type BleAddr struct {
-       Bytes [6]byte
-}
-
-func ParseBleAddr(s string) (BleAddr, error) {
-       ba := BleAddr{}
-
-       toks := strings.Split(strings.ToLower(s), ":")
-       if len(toks) != 6 {
-               return ba, fmt.Errorf("invalid BLE addr string: %s", s)
-       }
-
-       for i, t := range toks {
-               u64, err := strconv.ParseUint(t, 16, 8)
-               if err != nil {
-                       return ba, err
-               }
-               ba.Bytes[i] = byte(u64)
-       }
-
-       return ba, nil
-}
-
-func (ba *BleAddr) String() string {
-       var buf bytes.Buffer
-       buf.Grow(len(ba.Bytes) * 3)
-
-       for i, b := range ba.Bytes {
-               if i != 0 {
-                       buf.WriteString(":")
-               }
-               fmt.Fprintf(&buf, "%02x", b)
-       }
-
-       return buf.String()
-}
-
-func (ba *BleAddr) MarshalJSON() ([]byte, error) {
-       return json.Marshal(ba.String())
-}
-
-func (ba *BleAddr) UnmarshalJSON(data []byte) error {
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       var err error
-       *ba, err = ParseBleAddr(s)
-       if err != nil {
-               return err
-       }
-
-       return nil
-}
-
-type BleDev struct {
-       AddrType BleAddrType
-       Addr     BleAddr
-}
-
-func (bd *BleDev) String() string {
-       return fmt.Sprintf("%s,%s",
-               BleAddrTypeToString(bd.AddrType),
-               bd.Addr.String())
-}
-
-type BleScanFilterPolicy int
-
-const (
-       BLE_SCAN_FILT_NO_WL        BleScanFilterPolicy = 0
-       BLE_SCAN_FILT_USE_WL                           = 1
-       BLE_SCAN_FILT_NO_WL_INITA                      = 2
-       BLE_SCAN_FILT_USE_WL_INITA                     = 3
-)
-
-var BleScanFilterPolicyStringMap = map[BleScanFilterPolicy]string{
-       BLE_SCAN_FILT_NO_WL:        "no_wl",
-       BLE_SCAN_FILT_USE_WL:       "use_wl",
-       BLE_SCAN_FILT_NO_WL_INITA:  "no_wl_inita",
-       BLE_SCAN_FILT_USE_WL_INITA: "use_wl_inita",
-}
-
-func BleScanFilterPolicyToString(filtPolicy BleScanFilterPolicy) string {
-       s := BleScanFilterPolicyStringMap[filtPolicy]
-       if s == "" {
-               panic(fmt.Sprintf("Invalid BleScanFilterPolicy: %d", 
int(filtPolicy)))
-       }
-
-       return s
-}
-
-func BleScanFilterPolicyFromString(s string) (BleScanFilterPolicy, error) {
-       for filtPolicy, name := range BleScanFilterPolicyStringMap {
-               if s == name {
-                       return filtPolicy, nil
-               }
-       }
-
-       return BleScanFilterPolicy(0),
-               fmt.Errorf("Invalid BleScanFilterPolicy string: %s", s)
-}
-
-func (a BleScanFilterPolicy) MarshalJSON() ([]byte, error) {
-       return json.Marshal(BleScanFilterPolicyToString(a))
-}
-
-func (a *BleScanFilterPolicy) UnmarshalJSON(data []byte) error {
-       var err error
-
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       *a, err = BleScanFilterPolicyFromString(s)
-       return err
-}
-
-type BleAdvEventType int
-
-const (
-       BLE_ADV_EVENT_IND           BleAdvEventType = 0
-       BLE_ADV_EVENT_DIRECT_IND_HD                 = 1
-       BLE_ADV_EVENT_SCAN_IND                      = 2
-       BLE_ADV_EVENT_NONCONN_IND                   = 3
-       BLE_ADV_EVENT_DIRECT_IND_LD                 = 4
-)
-
-var BleAdvEventTypeStringMap = map[BleAdvEventType]string{
-       BLE_ADV_EVENT_IND:           "ind",
-       BLE_ADV_EVENT_DIRECT_IND_HD: "direct_ind_hd",
-       BLE_ADV_EVENT_SCAN_IND:      "scan_ind",
-       BLE_ADV_EVENT_NONCONN_IND:   "nonconn_ind",
-       BLE_ADV_EVENT_DIRECT_IND_LD: "direct_ind_ld",
-}
-
-func BleAdvEventTypeToString(advEventType BleAdvEventType) string {
-       s := BleAdvEventTypeStringMap[advEventType]
-       if s == "" {
-               panic(fmt.Sprintf("Invalid BleAdvEventType: %d", 
int(advEventType)))
-       }
-
-       return s
-}
-
-func BleAdvEventTypeFromString(s string) (BleAdvEventType, error) {
-       for advEventType, name := range BleAdvEventTypeStringMap {
-               if s == name {
-                       return advEventType, nil
-               }
-       }
-
-       return BleAdvEventType(0),
-               fmt.Errorf("Invalid BleAdvEventType string: %s", s)
-}
-
-func (a BleAdvEventType) MarshalJSON() ([]byte, error) {
-       return json.Marshal(BleAdvEventTypeToString(a))
-}
-
-func (a *BleAdvEventType) UnmarshalJSON(data []byte) error {
-       var err error
-
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       *a, err = BleAdvEventTypeFromString(s)
-       return err
-}
-
-type BleAdvReport struct {
-       // These fields are always present.
-       EventType BleAdvEventType
-       Sender    BleDev
-       Rssi      int8
-       Data      []byte
-
-       // These fields are only present if the sender included them in its
-       // advertisement.
-       Flags          uint8  // 0 if not present.
-       Name           string // "" if not present.
-       NameIsComplete bool   // false if not present.
-}
-
-type BleAdvPredicate func(adv BleAdvReport) bool

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_act.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_act.go 
b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_act.go
deleted file mode 100644
index 08c396f..0000000
--- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_act.go
+++ /dev/null
@@ -1,363 +0,0 @@
-package nmble
-
-import (
-       "encoding/json"
-
-       "mynewt.apache.org/newt/nmxact/nmxutil"
-)
-
-// Blocking
-func connect(x *BleXport, connChan chan error, r *BleConnectReq) error {
-       j, err := json.Marshal(r)
-       if err != nil {
-               return err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return err
-       }
-
-       err = <-connChan
-       if err != nil {
-               return err
-       }
-
-       return nil
-}
-
-// Blocking
-func terminate(x *BleXport, bl *BleListener, r *BleTerminateReq) error {
-       j, err := json.Marshal(r)
-       if err != nil {
-               return err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return err
-       }
-
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleTerminateRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return StatusError(MSG_OP_RSP,
-                                               MSG_TYPE_TERMINATE,
-                                               msg.Status)
-                               } else {
-                                       return nil
-                               }
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return BhdTimeoutError(MSG_TYPE_TERMINATE)
-               }
-       }
-}
-
-func connCancel(x *BleXport, bl *BleListener, r *BleConnCancelReq) error {
-       j, err := json.Marshal(r)
-       if err != nil {
-               return err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return err
-       }
-
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleConnCancelRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return StatusError(MSG_OP_RSP,
-                                               MSG_TYPE_CONN_CANCEL,
-                                               msg.Status)
-                               } else {
-                                       return nil
-                               }
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return BhdTimeoutError(MSG_TYPE_TERMINATE)
-               }
-       }
-}
-
-// Blocking.
-func discSvcUuid(x *BleXport, bl *BleListener, r *BleDiscSvcUuidReq) (
-       *BleSvc, error) {
-
-       j, err := json.Marshal(r)
-       if err != nil {
-               return nil, err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return nil, err
-       }
-
-       var svc *BleSvc
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return nil, err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleDiscSvcUuidRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return nil, StatusError(MSG_OP_RSP,
-                                               MSG_TYPE_DISC_SVC_UUID,
-                                               msg.Status)
-                               }
-
-                       case *BleDiscSvcEvt:
-                               switch msg.Status {
-                               case 0:
-                                       svc = &msg.Svc
-                               case ERR_CODE_EDONE:
-                                       if svc == nil {
-                                               return nil, 
nmxutil.FmtBleHostError(
-                                                       msg.Status,
-                                                       "Peer doesn't support 
required service: %s",
-                                                       r.Uuid.String())
-                                       }
-                                       return svc, nil
-                               default:
-                                       return nil, StatusError(MSG_OP_EVT,
-                                               MSG_TYPE_DISC_SVC_EVT,
-                                               msg.Status)
-                               }
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return nil, BhdTimeoutError(MSG_TYPE_DISC_SVC_UUID)
-               }
-       }
-}
-
-// Blocking.
-func discAllChrs(x *BleXport, bl *BleListener, r *BleDiscAllChrsReq) (
-       []*BleChr, error) {
-
-       j, err := json.Marshal(r)
-       if err != nil {
-               return nil, err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return nil, err
-       }
-
-       chrs := []*BleChr{}
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return nil, err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleDiscAllChrsRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return nil, StatusError(MSG_OP_RSP,
-                                               MSG_TYPE_DISC_ALL_CHRS,
-                                               msg.Status)
-                               }
-
-                       case *BleDiscChrEvt:
-                               switch msg.Status {
-                               case 0:
-                                       chrs = append(chrs, &msg.Chr)
-                               case ERR_CODE_EDONE:
-                                       return chrs, nil
-                               default:
-                                       return nil, StatusError(MSG_OP_EVT,
-                                               MSG_TYPE_DISC_CHR_EVT,
-                                               msg.Status)
-                               }
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return nil, BhdTimeoutError(MSG_TYPE_DISC_ALL_CHRS)
-               }
-       }
-}
-
-// Blocking.
-func writeCmd(x *BleXport, bl *BleListener, r *BleWriteCmdReq) error {
-       j, err := json.Marshal(r)
-       if err != nil {
-               return err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return err
-       }
-
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleWriteCmdRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return StatusError(MSG_OP_RSP,
-                                               MSG_TYPE_WRITE_CMD,
-                                               msg.Status)
-                               } else {
-                                       return nil
-                               }
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return BhdTimeoutError(MSG_TYPE_WRITE_CMD)
-               }
-       }
-}
-
-// Blocking.
-func exchangeMtu(x *BleXport, bl *BleListener, r *BleExchangeMtuReq) (
-       int, error) {
-
-       j, err := json.Marshal(r)
-       if err != nil {
-               return 0, err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return 0, err
-       }
-
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return 0, err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleExchangeMtuRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return 0, StatusError(MSG_OP_RSP,
-                                               MSG_TYPE_EXCHANGE_MTU,
-                                               msg.Status)
-                               }
-
-                       case *BleMtuChangeEvt:
-                               if msg.Status != 0 {
-                                       return 0, StatusError(MSG_OP_EVT,
-                                               MSG_TYPE_MTU_CHANGE_EVT,
-                                               msg.Status)
-                               } else {
-                                       return msg.Mtu, nil
-                               }
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return 0, BhdTimeoutError(MSG_TYPE_EXCHANGE_MTU)
-               }
-       }
-}
-
-type scanFn func(evt *BleScanEvt)
-
-func scan(x *BleXport, bl *BleListener, r *BleScanReq,
-       abortChan chan struct{}, scanCb scanFn) error {
-
-       j, err := json.Marshal(r)
-       if err != nil {
-               return err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return err
-       }
-
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleScanRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return StatusError(MSG_OP_RSP, 
MSG_TYPE_SCAN, msg.Status)
-                               }
-
-                       case *BleScanEvt:
-                               scanCb(msg)
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return BhdTimeoutError(MSG_TYPE_EXCHANGE_MTU)
-
-               case <-abortChan:
-                       return nil
-               }
-       }
-}
-
-func scanCancel(x *BleXport, bl *BleListener, r *BleScanCancelReq) error {
-       j, err := json.Marshal(r)
-       if err != nil {
-               return err
-       }
-
-       if err := x.Tx(j); err != nil {
-               return err
-       }
-
-       for {
-               select {
-               case err := <-bl.ErrChan:
-                       return err
-
-               case bm := <-bl.BleChan:
-                       switch msg := bm.(type) {
-                       case *BleScanCancelRsp:
-                               bl.Acked = true
-                               if msg.Status != 0 {
-                                       return StatusError(MSG_OP_RSP, 
MSG_TYPE_SCAN, msg.Status)
-                               }
-                               return nil
-
-                       default:
-                       }
-
-               case <-bl.AfterTimeout(x.rspTimeout):
-                       return BhdTimeoutError(MSG_TYPE_EXCHANGE_MTU)
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_fsm.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_fsm.go 
b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_fsm.go
deleted file mode 100644
index daa930b..0000000
--- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_fsm.go
+++ /dev/null
@@ -1,766 +0,0 @@
-package nmble
-
-import (
-       "encoding/hex"
-       "fmt"
-       "sync"
-       "time"
-
-       log "github.com/Sirupsen/logrus"
-
-       . "mynewt.apache.org/newt/nmxact/bledefs"
-       "mynewt.apache.org/newt/nmxact/nmp"
-       "mynewt.apache.org/newt/nmxact/nmxutil"
-       "mynewt.apache.org/newt/nmxact/sesn"
-)
-
-type BleSesnState int32
-
-const DFLT_ATT_MTU = 23
-
-const (
-       SESN_STATE_UNCONNECTED     BleSesnState = 0
-       SESN_STATE_SCANNING                     = 1
-       SESN_STATE_CONNECTING                   = 2
-       SESN_STATE_CONNECTED                    = 3
-       SESN_STATE_EXCHANGING_MTU               = 4
-       SESN_STATE_EXCHANGED_MTU                = 5
-       SESN_STATE_DISCOVERING_SVC              = 6
-       SESN_STATE_DISCOVERED_SVC               = 7
-       SESN_STATE_DISCOVERING_CHR              = 8
-       SESN_STATE_DISCOVERED_CHR               = 9
-       SESN_STATE_TERMINATING                  = 10
-       SESN_STATE_CONN_CANCELLING              = 11
-)
-
-type BleRxNmpFn func(data []byte)
-type BleDisconnectFn func(peer BleDev, err error)
-
-type BleFsmParams struct {
-       Bx           *BleXport
-       OwnAddrType  BleAddrType
-       PeerSpec     sesn.BlePeerSpec
-       SvcUuid      BleUuid
-       ReqChrUuid   BleUuid
-       RspChrUuid   BleUuid
-       RxNmpCb      BleRxNmpFn
-       DisconnectCb BleDisconnectFn
-}
-
-type BleFsm struct {
-       bx           *BleXport
-       ownAddrType  BleAddrType
-       peerSpec     sesn.BlePeerSpec
-       peerDev      *BleDev
-       svcUuid      BleUuid
-       reqChrUuid   BleUuid
-       rspChrUuid   BleUuid
-       rxNmpCb      BleRxNmpFn
-       disconnectCb BleDisconnectFn
-
-       connHandle int
-       nmpSvc     *BleSvc
-       nmpReqChr  *BleChr
-       nmpRspChr  *BleChr
-       attMtu     int
-       connChan   chan error
-
-       mtx             sync.Mutex
-       lastStateChange time.Time
-
-       // These variables must be protected by the mutex.
-       bls   map[*BleListener]struct{}
-       state BleSesnState
-}
-
-func NewBleFsm(p BleFsmParams) *BleFsm {
-       bf := &BleFsm{
-               bx:           p.Bx,
-               peerSpec:     p.PeerSpec,
-               ownAddrType:  p.OwnAddrType,
-               svcUuid:      p.SvcUuid,
-               reqChrUuid:   p.ReqChrUuid,
-               rspChrUuid:   p.RspChrUuid,
-               rxNmpCb:      p.RxNmpCb,
-               disconnectCb: p.DisconnectCb,
-
-               bls:    map[*BleListener]struct{}{},
-               attMtu: DFLT_ATT_MTU,
-       }
-
-       return bf
-}
-
-func (bf *BleFsm) disconnectError(reason int) error {
-       str := fmt.Sprintf("BLE peer disconnected; "+
-               "reason=\"%s\" (%d) peer=%s handle=%d",
-               ErrCodeToString(reason), reason, bf.peerDev.String(), 
bf.connHandle)
-       return nmxutil.NewBleSesnDisconnectError(reason, str)
-}
-
-func (bf *BleFsm) closedError(msg string) error {
-       return nmxutil.NewSesnClosedError(fmt.Sprintf(
-               "%s; state=%d last-state-change=%s",
-               msg, bf.getState(), bf.lastStateChange))
-}
-
-func (bf *BleFsm) getState() BleSesnState {
-       bf.mtx.Lock()
-       defer bf.mtx.Unlock()
-
-       return bf.state
-}
-
-func (bf *BleFsm) setState(toState BleSesnState) {
-       bf.mtx.Lock()
-       defer bf.mtx.Unlock()
-
-       bf.state = toState
-       bf.lastStateChange = time.Now()
-}
-
-func (bf *BleFsm) transitionState(fromState BleSesnState,
-       toState BleSesnState) error {
-
-       bf.mtx.Lock()
-       defer bf.mtx.Unlock()
-
-       if bf.state != fromState {
-               return fmt.Errorf(
-                       "Can't set BleFsm state to %d; current state != 
required "+
-                               "value: %d",
-                       toState, fromState)
-       }
-
-       bf.state = toState
-       return nil
-}
-
-func (bf *BleFsm) addBleListener(base BleMsgBase) (*BleListener, error) {
-       bl := NewBleListener()
-
-       bf.mtx.Lock()
-       bf.bls[bl] = struct{}{}
-       bf.mtx.Unlock()
-
-       if err := bf.bx.Bd.AddListener(base, bl); err != nil {
-               delete(bf.bls, bl)
-               return nil, err
-       }
-
-       return bl, nil
-}
-
-func (bf *BleFsm) addBleSeqListener(seq int) (*BleListener, error) {
-       base := BleMsgBase{
-               Op:         -1,
-               Type:       -1,
-               Seq:        seq,
-               ConnHandle: -1,
-       }
-       bl, err := bf.addBleListener(base)
-       if err != nil {
-               return nil, err
-       }
-
-       return bl, nil
-}
-
-func (bf *BleFsm) removeBleListener(base BleMsgBase) {
-       bl := bf.bx.Bd.RemoveListener(base)
-       if bl != nil {
-               bf.mtx.Lock()
-               delete(bf.bls, bl)
-               bf.mtx.Unlock()
-       }
-}
-
-func (bf *BleFsm) removeBleSeqListener(seq int) {
-       base := BleMsgBase{
-               Op:         -1,
-               Type:       -1,
-               Seq:        seq,
-               ConnHandle: -1,
-       }
-
-       bf.removeBleListener(base)
-}
-
-func (bf *BleFsm) action(
-       preState BleSesnState,
-       inState BleSesnState,
-       postState BleSesnState,
-       cb func() error) error {
-
-       if err := bf.transitionState(preState, inState); err != nil {
-               return err
-       }
-
-       if err := cb(); err != nil {
-               bf.setState(preState)
-               return err
-       }
-
-       bf.setState(postState)
-       return nil
-}
-
-func (bf *BleFsm) connectListen(seq int) error {
-       bf.connChan = make(chan error, 1)
-
-       bl, err := bf.addBleSeqListener(seq)
-       if err != nil {
-               return err
-       }
-
-       go func() {
-               defer bf.removeBleSeqListener(seq)
-               for {
-                       select {
-                       case <-bl.ErrChan:
-                               return
-
-                       case bm := <-bl.BleChan:
-                               switch msg := bm.(type) {
-                               case *BleConnectRsp:
-                                       bl.Acked = true
-                                       if msg.Status != 0 {
-                                               str := fmt.Sprintf("BLE 
connection attempt failed; "+
-                                                       "status=%s (%d) 
peer=%s",
-                                                       
ErrCodeToString(msg.Status), msg.Status,
-                                                       bf.peerDev.String())
-                                               log.Debugf(str)
-                                               bf.connChan <- 
nmxutil.NewBleHostError(msg.Status, str)
-                                               return
-                                       }
-
-                               case *BleConnectEvt:
-                                       if msg.Status == 0 {
-                                               bl.Acked = true
-                                               log.Debugf("BLE connection 
attempt succeeded; "+
-                                                       "peer=%d handle=%d", 
bf.peerDev.String(),
-                                                       msg.ConnHandle)
-                                               bf.connHandle = msg.ConnHandle
-                                               if err := bf.nmpRspListen(); 
err != nil {
-                                                       bf.connChan <- err
-                                                       return
-                                               }
-                                               bf.connChan <- nil
-                                       } else {
-                                               str := fmt.Sprintf("BLE 
connection attempt failed; "+
-                                                       "status=%s (%d) 
peer=%s",
-                                                       
ErrCodeToString(msg.Status), msg.Status,
-                                                       bf.peerDev.String())
-                                               log.Debugf(str)
-                                               bf.connChan <- 
nmxutil.NewBleHostError(msg.Status, str)
-                                               return
-                                       }
-
-                               case *BleMtuChangeEvt:
-                                       if msg.Status != 0 {
-                                               err := StatusError(MSG_OP_EVT,
-                                                       MSG_TYPE_MTU_CHANGE_EVT,
-                                                       msg.Status)
-                                               log.Debugf(err.Error())
-                                       } else {
-                                               log.Debugf("BLE ATT MTU 
updated; from=%d to=%d",
-                                                       bf.attMtu, msg.Mtu)
-                                               bf.attMtu = msg.Mtu
-                                       }
-
-                               case *BleDisconnectEvt:
-                                       err := bf.disconnectError(msg.Reason)
-                                       log.Debugf(err.Error())
-
-                                       bf.mtx.Lock()
-                                       bls := make([]*BleListener, 0, 
len(bf.bls))
-                                       for bl, _ := range bf.bls {
-                                               bls = append(bls, bl)
-                                       }
-                                       bf.mtx.Unlock()
-
-                                       for _, bl := range bls {
-                                               bl.ErrChan <- err
-                                       }
-
-                                       bf.setState(SESN_STATE_UNCONNECTED)
-                                       peer := *bf.peerDev
-                                       bf.peerDev = nil
-                                       bf.disconnectCb(peer, err)
-                                       return
-
-                               default:
-                               }
-
-                       case <-bl.AfterTimeout(bf.bx.rspTimeout):
-                               bf.connChan <- BhdTimeoutError(MSG_TYPE_CONNECT)
-                       }
-               }
-       }()
-       return nil
-}
-
-func (bf *BleFsm) nmpRspListen() error {
-       base := BleMsgBase{
-               Op:         MSG_OP_EVT,
-               Type:       MSG_TYPE_NOTIFY_RX_EVT,
-               Seq:        -1,
-               ConnHandle: bf.connHandle,
-       }
-
-       bl, err := bf.addBleListener(base)
-       if err != nil {
-               return err
-       }
-
-       go func() {
-               defer bf.removeBleListener(base)
-               for {
-                       select {
-                       case <-bl.ErrChan:
-                               // The session encountered an error; stop 
listening.
-                               return
-                       case bm := <-bl.BleChan:
-                               switch msg := bm.(type) {
-                               case *BleNotifyRxEvt:
-                                       if bf.nmpRspChr != nil &&
-                                               msg.AttrHandle == 
bf.nmpRspChr.ValHandle {
-
-                                               bf.rxNmpCb(msg.Data.Bytes)
-                                       }
-
-                               default:
-                               }
-                       }
-               }
-       }()
-       return nil
-}
-
-func (bf *BleFsm) connect() error {
-       r := NewBleConnectReq()
-       r.OwnAddrType = bf.ownAddrType
-       r.PeerAddrType = bf.peerDev.AddrType
-       r.PeerAddr = bf.peerDev.Addr
-
-       if err := bf.connectListen(r.Seq); err != nil {
-               return err
-       }
-
-       if err := connect(bf.bx, bf.connChan, r); err != nil {
-               return err
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) scan() error {
-       r := NewBleScanReq()
-       r.OwnAddrType = bf.ownAddrType
-       r.DurationMs = 15000
-       r.FilterPolicy = BLE_SCAN_FILT_NO_WL
-       r.Limited = false
-       r.Passive = false
-       r.FilterDuplicates = true
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       abortChan := make(chan struct{}, 1)
-
-       // This function gets called for each incoming advertisement.
-       scanCb := func(evt *BleScanEvt) {
-               r := BleAdvReport{
-                       EventType: evt.EventType,
-                       Sender: BleDev{
-                               AddrType: evt.AddrType,
-                               Addr:     evt.Addr,
-                       },
-                       Rssi: evt.Rssi,
-                       Data: evt.Data.Bytes,
-
-                       Flags:          evt.DataFlags,
-                       Name:           evt.DataName,
-                       NameIsComplete: evt.DataNameIsComplete,
-               }
-
-               // Ask client if we should connect to this advertiser.
-               if bf.peerSpec.ScanPred(r) {
-                       bf.peerDev = &r.Sender
-                       abortChan <- struct{}{}
-               }
-       }
-
-       if err := scan(bf.bx, bl, r, abortChan, scanCb); err != nil {
-               return err
-       }
-
-       // Scanning still in progress; cancel the operation.
-       return bf.scanCancel()
-}
-
-func (bf *BleFsm) scanCancel() error {
-       r := NewBleScanCancelReq()
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       if err := scanCancel(bf.bx, bl, r); err != nil {
-               return err
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) terminateSetState() error {
-       bf.mtx.Lock()
-       defer bf.mtx.Unlock()
-
-       switch bf.state {
-       case SESN_STATE_UNCONNECTED,
-               SESN_STATE_CONNECTING,
-               SESN_STATE_CONN_CANCELLING:
-               return fmt.Errorf("BLE terminate failed; not connected")
-       case SESN_STATE_TERMINATING:
-               return fmt.Errorf(
-                       "BLE terminate failed; session already being closed")
-       default:
-               bf.state = SESN_STATE_TERMINATING
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) terminate() error {
-       if err := bf.terminateSetState(); err != nil {
-               return err
-       }
-
-       r := NewBleTerminateReq()
-       r.ConnHandle = bf.connHandle
-       r.HciReason = ERR_CODE_HCI_REM_USER_CONN_TERM
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       if err := terminate(bf.bx, bl, r); err != nil {
-               return err
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) connCancel() error {
-       if err := bf.transitionState(
-               SESN_STATE_CONNECTING,
-               SESN_STATE_CONN_CANCELLING); err != nil {
-
-               return fmt.Errorf("BLE connect cancel failed; not connecting")
-       }
-
-       r := NewBleConnCancelReq()
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       if err := connCancel(bf.bx, bl, r); err != nil {
-               return err
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) discSvcUuid() error {
-       r := NewBleDiscSvcUuidReq()
-       r.ConnHandle = bf.connHandle
-       r.Uuid = bf.svcUuid
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       bf.nmpSvc, err = discSvcUuid(bf.bx, bl, r)
-       if err != nil {
-               return err
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) discAllChrs() error {
-       r := NewBleDiscAllChrsReq()
-       r.ConnHandle = bf.connHandle
-       r.StartHandle = bf.nmpSvc.StartHandle
-       r.EndHandle = bf.nmpSvc.EndHandle
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       chrs, err := discAllChrs(bf.bx, bl, r)
-       if err != nil {
-               return err
-       }
-
-       for _, c := range chrs {
-               if CompareUuids(bf.reqChrUuid, c.Uuid) == 0 {
-                       bf.nmpReqChr = c
-               }
-               if CompareUuids(bf.rspChrUuid, c.Uuid) == 0 {
-                       bf.nmpRspChr = c
-               }
-       }
-
-       if bf.nmpReqChr == nil {
-               return fmt.Errorf(
-                       "Peer doesn't support required characteristic: %s",
-                       bf.reqChrUuid.String())
-       }
-
-       if bf.nmpRspChr == nil {
-               return fmt.Errorf(
-                       "Peer doesn't support required characteristic: %s",
-                       bf.rspChrUuid.String())
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) exchangeMtu() error {
-       r := NewBleExchangeMtuReq()
-       r.ConnHandle = bf.connHandle
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       mtu, err := exchangeMtu(bf.bx, bl, r)
-       if err != nil {
-               return err
-       }
-
-       bf.attMtu = mtu
-       return nil
-}
-
-func (bf *BleFsm) writeCmd(data []byte) error {
-       r := NewBleWriteCmdReq()
-       r.ConnHandle = bf.connHandle
-       r.AttrHandle = bf.nmpReqChr.ValHandle
-       r.Data.Bytes = data
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       if err := writeCmd(bf.bx, bl, r); err != nil {
-               return err
-       }
-
-       return nil
-}
-
-func (bf *BleFsm) subscribe() error {
-       r := NewBleWriteCmdReq()
-       r.ConnHandle = bf.connHandle
-       r.AttrHandle = bf.nmpRspChr.ValHandle + 1
-       r.Data.Bytes = []byte{1, 0}
-
-       bl, err := bf.addBleSeqListener(r.Seq)
-       if err != nil {
-               return err
-       }
-       defer bf.removeBleSeqListener(r.Seq)
-
-       if err := writeCmd(bf.bx, bl, r); err != nil {
-               return err
-       }
-
-       return nil
-}
-
-// Tries to populate the FSM's peerDev field.  This function succeeds if the
-// client specified the address of the peer to connect to.
-func (bf *BleFsm) tryFillPeerDev() bool {
-       // The peer spec contains one of:
-       //     * Peer address;
-       //     * Predicate function to call during scanning.
-       // If a peer address is specified, fill in the peer field now so the
-       // scanning step can be skipped.  Otherwise, the peer field gets 
populated
-       // during scanning.
-       if bf.peerSpec.ScanPred == nil {
-               bf.peerDev = &bf.peerSpec.Dev
-               return true
-       }
-
-       return false
-}
-
-func (bf *BleFsm) Start() error {
-       if bf.getState() != SESN_STATE_UNCONNECTED {
-               return nmxutil.NewSesnAlreadyOpenError(
-                       "Attempt to open an already-open BLE session")
-       }
-
-       for {
-               state := bf.getState()
-               switch state {
-               case SESN_STATE_UNCONNECTED:
-                       var err error
-
-                       // Determine if we can immediately initiate a 
connection, or if we
-                       // need to scan for a peer first.  If the client 
specified a peer
-                       // address, or if we have already successfully scanned, 
we initiate
-                       // a connection now.  Otherwise, we need to scan to 
determine which
-                       // peer meets the specified scan criteria.
-                       bf.tryFillPeerDev()
-                       if bf.peerDev == nil {
-                               // Peer not inferred yet.  Initiate scan.
-                               cb := func() error { return bf.scan() }
-                               err = bf.action(
-                                       SESN_STATE_UNCONNECTED,
-                                       SESN_STATE_SCANNING,
-                                       SESN_STATE_UNCONNECTED,
-                                       cb)
-                       } else {
-                               // We already know the address we want to 
connect to.  Initiate
-                               // a connection.
-                               cb := func() error { return bf.connect() }
-                               err = bf.action(
-                                       SESN_STATE_UNCONNECTED,
-                                       SESN_STATE_CONNECTING,
-                                       SESN_STATE_CONNECTED,
-                                       cb)
-                       }
-
-                       if err != nil {
-                               return err
-                       }
-
-               case SESN_STATE_CONNECTED:
-                       cb := func() error { return bf.exchangeMtu() }
-                       err := bf.action(
-                               SESN_STATE_CONNECTED,
-                               SESN_STATE_EXCHANGING_MTU,
-                               SESN_STATE_EXCHANGED_MTU,
-                               cb)
-                       if err != nil {
-                               return err
-                       }
-
-               case SESN_STATE_EXCHANGED_MTU:
-                       cb := func() error { return bf.discSvcUuid() }
-                       err := bf.action(
-                               SESN_STATE_EXCHANGED_MTU,
-                               SESN_STATE_DISCOVERING_SVC,
-                               SESN_STATE_DISCOVERED_SVC,
-                               cb)
-                       if err != nil {
-                               return err
-                       }
-
-               case SESN_STATE_DISCOVERED_SVC:
-                       cb := func() error {
-                               return bf.discAllChrs()
-                       }
-
-                       err := bf.action(
-                               SESN_STATE_DISCOVERED_SVC,
-                               SESN_STATE_DISCOVERING_CHR,
-                               SESN_STATE_DISCOVERED_CHR,
-                               cb)
-                       if err != nil {
-                               return err
-                       }
-
-                       if err := bf.subscribe(); err != nil {
-                               return err
-                       }
-
-               case SESN_STATE_DISCOVERED_CHR:
-                       /* Open complete. */
-                       return nil
-
-               case SESN_STATE_CONNECTING,
-                       SESN_STATE_DISCOVERING_SVC,
-                       SESN_STATE_DISCOVERING_CHR,
-                       SESN_STATE_TERMINATING:
-                       return fmt.Errorf("BleFsm already being opened")
-               }
-       }
-}
-
-// @return bool                 true if stop complete;
-//                              false if disconnect is now pending.
-func (bf *BleFsm) Stop() (bool, error) {
-       state := bf.getState()
-
-       switch state {
-       case SESN_STATE_UNCONNECTED,
-               SESN_STATE_TERMINATING,
-               SESN_STATE_CONN_CANCELLING:
-
-               return false,
-                       bf.closedError("Attempt to close an unopened BLE 
session")
-
-       case SESN_STATE_CONNECTING:
-               if err := bf.connCancel(); err != nil {
-                       return false, err
-               }
-               return true, nil
-
-       default:
-               if err := bf.terminate(); err != nil {
-                       return false, err
-               }
-               return false, nil
-       }
-}
-
-func (bf *BleFsm) IsOpen() bool {
-       return bf.getState() == SESN_STATE_DISCOVERED_CHR
-}
-
-func (bf *BleFsm) TxNmp(payload []byte, nl *nmp.NmpListener,
-       timeout time.Duration) (nmp.NmpRsp, error) {
-
-       log.Debugf("Tx NMP request: %s", hex.Dump(payload))
-       if err := bf.writeCmd(payload); err != nil {
-               return nil, err
-       }
-
-       // Now wait for NMP response.
-       for {
-               select {
-               case err := <-nl.ErrChan:
-                       return nil, err
-               case rsp := <-nl.RspChan:
-                       // Only accept NMP responses if the session is still 
open.  This is
-                       // to help prevent race conditions in client code.
-                       if bf.IsOpen() {
-                               return rsp, nil
-                       }
-               case <-nl.AfterTimeout(timeout):
-                       return nil, nmxutil.NewNmpTimeoutError("NMP timeout")
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_oic_sesn.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_oic_sesn.go 
b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_oic_sesn.go
deleted file mode 100644
index 949d7aa..0000000
--- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_oic_sesn.go
+++ /dev/null
@@ -1,198 +0,0 @@
-package nmble
-
-import (
-       "fmt"
-       "sync"
-       "time"
-
-       . "mynewt.apache.org/newt/nmxact/bledefs"
-       "mynewt.apache.org/newt/nmxact/nmp"
-       "mynewt.apache.org/newt/nmxact/omp"
-       "mynewt.apache.org/newt/nmxact/sesn"
-       "mynewt.apache.org/newt/util"
-)
-
-type BleOicSesn struct {
-       bf           *BleFsm
-       nls          map[*nmp.NmpListener]struct{}
-       od           *omp.OmpDispatcher
-       closeTimeout time.Duration
-       onCloseCb    sesn.BleOnCloseFn
-
-       closeChan chan error
-       mx        sync.Mutex
-}
-
-func NewBleOicSesn(bx *BleXport, cfg sesn.SesnCfg) *BleOicSesn {
-       bos := &BleOicSesn{
-               nls:          map[*nmp.NmpListener]struct{}{},
-               od:           omp.NewOmpDispatcher(),
-               closeTimeout: cfg.Ble.CloseTimeout,
-               onCloseCb:    cfg.Ble.OnCloseCb,
-       }
-
-       svcUuid, err := ParseUuid(NmpOicSvcUuid)
-       if err != nil {
-               panic(err.Error())
-       }
-
-       reqChrUuid, err := ParseUuid(NmpOicReqChrUuid)
-       if err != nil {
-               panic(err.Error())
-       }
-
-       rspChrUuid, err := ParseUuid(NmpOicRspChrUuid)
-       if err != nil {
-               panic(err.Error())
-       }
-
-       bos.bf = NewBleFsm(BleFsmParams{
-               Bx:           bx,
-               OwnAddrType:  cfg.Ble.OwnAddrType,
-               PeerSpec:     cfg.Ble.PeerSpec,
-               SvcUuid:      svcUuid,
-               ReqChrUuid:   reqChrUuid,
-               RspChrUuid:   rspChrUuid,
-               RxNmpCb:      func(d []byte) { bos.onRxNmp(d) },
-               DisconnectCb: func(p BleDev, e error) { bos.onDisconnect(p, e) 
},
-       })
-
-       return bos
-}
-
-func (bos *BleOicSesn) addNmpListener(seq uint8) (*nmp.NmpListener, error) {
-       nl := nmp.NewNmpListener()
-       bos.nls[nl] = struct{}{}
-
-       if err := bos.od.AddListener(seq, nl); err != nil {
-               delete(bos.nls, nl)
-               return nil, err
-       }
-
-       return nl, nil
-}
-
-func (bos *BleOicSesn) removeNmpListener(seq uint8) {
-       listener := bos.od.RemoveListener(seq)
-       if listener != nil {
-               delete(bos.nls, listener)
-       }
-}
-
-// Returns true if a new channel was assigned.
-func (bos *BleOicSesn) setCloseChan() bool {
-       bos.mx.Lock()
-       defer bos.mx.Unlock()
-
-       if bos.closeChan != nil {
-               return false
-       }
-
-       bos.closeChan = make(chan error, 1)
-       return true
-}
-
-func (bos *BleOicSesn) clearCloseChan() {
-       bos.mx.Lock()
-       defer bos.mx.Unlock()
-
-       bos.closeChan = nil
-}
-
-func (bos *BleOicSesn) AbortRx(seq uint8) error {
-       return bos.od.FakeRxError(seq, fmt.Errorf("Rx aborted"))
-}
-
-func (bos *BleOicSesn) Open() error {
-       return bos.bf.Start()
-}
-
-func (bos *BleOicSesn) Close() error {
-       if !bos.setCloseChan() {
-               return bos.bf.closedError(
-                       "Attempt to close an unopened BLE session")
-       }
-       defer bos.clearCloseChan()
-
-       done, err := bos.bf.Stop()
-       if err != nil {
-               return err
-       }
-
-       if done {
-               // Close complete.
-               return nil
-       }
-
-       // Block until close completes or timeout.
-       select {
-       case <-bos.closeChan:
-       case <-time.After(bos.closeTimeout):
-       }
-
-       return nil
-}
-
-func (bos *BleOicSesn) IsOpen() bool {
-       return bos.bf.IsOpen()
-}
-
-func (bos *BleOicSesn) onRxNmp(data []byte) {
-       bos.od.Dispatch(data)
-}
-
-func (bos *BleOicSesn) onDisconnect(peer BleDev, err error) {
-       for nl, _ := range bos.nls {
-               nl.ErrChan <- err
-       }
-
-       // If the session is being closed, unblock the close() call.
-       if bos.closeChan != nil {
-               bos.closeChan <- err
-       }
-       if bos.onCloseCb != nil {
-               bos.onCloseCb(bos, peer, err)
-       }
-}
-
-func (bos *BleOicSesn) EncodeNmpMsg(m *nmp.NmpMsg) ([]byte, error) {
-       return omp.EncodeOmpTcp(m)
-}
-
-// Blocking.
-func (bos *BleOicSesn) TxNmpOnce(m *nmp.NmpMsg, opt sesn.TxOptions) (
-       nmp.NmpRsp, error) {
-
-       if !bos.IsOpen() {
-               return nil, bos.bf.closedError(
-                       "Attempt to transmit over closed BLE session")
-       }
-
-       nl, err := bos.addNmpListener(m.Hdr.Seq)
-       if err != nil {
-               return nil, err
-       }
-       defer bos.removeNmpListener(m.Hdr.Seq)
-
-       b, err := bos.EncodeNmpMsg(m)
-       if err != nil {
-               return nil, err
-       }
-
-       return bos.bf.TxNmp(b, nl, opt.Timeout)
-}
-
-func (bos *BleOicSesn) MtuIn() int {
-       return bos.bf.attMtu -
-               NOTIFY_CMD_BASE_SZ -
-               omp.OMP_MSG_OVERHEAD -
-               nmp.NMP_HDR_SIZE
-}
-
-func (bos *BleOicSesn) MtuOut() int {
-       mtu := bos.bf.attMtu -
-               WRITE_CMD_BASE_SZ -
-               omp.OMP_MSG_OVERHEAD -
-               nmp.NMP_HDR_SIZE
-       return util.IntMin(mtu, BLE_ATT_ATTR_MAX_LEN)
-}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_plain_sesn.go
----------------------------------------------------------------------
diff --git 
a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_plain_sesn.go 
b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_plain_sesn.go
deleted file mode 100644
index 71133e7..0000000
--- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_plain_sesn.go
+++ /dev/null
@@ -1,186 +0,0 @@
-package nmble
-
-import (
-       "fmt"
-       "sync"
-       "time"
-
-       . "mynewt.apache.org/newt/nmxact/bledefs"
-       "mynewt.apache.org/newt/nmxact/nmp"
-       "mynewt.apache.org/newt/nmxact/sesn"
-       "mynewt.apache.org/newt/util"
-)
-
-type BlePlainSesn struct {
-       bf           *BleFsm
-       nls          map[*nmp.NmpListener]struct{}
-       nd           *nmp.NmpDispatcher
-       closeTimeout time.Duration
-       onCloseCb    sesn.BleOnCloseFn
-
-       closeChan chan error
-       mx        sync.Mutex
-}
-
-func NewBlePlainSesn(bx *BleXport, cfg sesn.SesnCfg) *BlePlainSesn {
-       bps := &BlePlainSesn{
-               nls:          map[*nmp.NmpListener]struct{}{},
-               nd:           nmp.NewNmpDispatcher(),
-               closeTimeout: cfg.Ble.CloseTimeout,
-               onCloseCb:    cfg.Ble.OnCloseCb,
-       }
-
-       svcUuid, err := ParseUuid(NmpPlainSvcUuid)
-       if err != nil {
-               panic(err.Error())
-       }
-
-       chrUuid, err := ParseUuid(NmpPlainChrUuid)
-       if err != nil {
-               panic(err.Error())
-       }
-
-       bps.bf = NewBleFsm(BleFsmParams{
-               Bx:           bx,
-               OwnAddrType:  cfg.Ble.OwnAddrType,
-               PeerSpec:     cfg.Ble.PeerSpec,
-               SvcUuid:      svcUuid,
-               ReqChrUuid:   chrUuid,
-               RspChrUuid:   chrUuid,
-               RxNmpCb:      func(d []byte) { bps.onRxNmp(d) },
-               DisconnectCb: func(p BleDev, e error) { bps.onDisconnect(p, e) 
},
-       })
-
-       return bps
-}
-
-func (bps *BlePlainSesn) addNmpListener(seq uint8) (*nmp.NmpListener, error) {
-       nl := nmp.NewNmpListener()
-       bps.nls[nl] = struct{}{}
-
-       if err := bps.nd.AddListener(seq, nl); err != nil {
-               delete(bps.nls, nl)
-               return nil, err
-       }
-
-       return nl, nil
-}
-
-func (bps *BlePlainSesn) removeNmpListener(seq uint8) {
-       listener := bps.nd.RemoveListener(seq)
-       if listener != nil {
-               delete(bps.nls, listener)
-       }
-}
-
-// Returns true if a new channel was assigned.
-func (bps *BlePlainSesn) setCloseChan() bool {
-       bps.mx.Lock()
-       defer bps.mx.Unlock()
-
-       if bps.closeChan != nil {
-               return false
-       }
-
-       bps.closeChan = make(chan error, 1)
-       return true
-}
-
-func (bps *BlePlainSesn) clearCloseChan() {
-       bps.mx.Lock()
-       defer bps.mx.Unlock()
-
-       bps.closeChan = nil
-}
-
-func (bps *BlePlainSesn) AbortRx(seq uint8) error {
-       return bps.nd.FakeRxError(seq, fmt.Errorf("Rx aborted"))
-}
-
-func (bps *BlePlainSesn) Open() error {
-       return bps.bf.Start()
-}
-
-func (bps *BlePlainSesn) Close() error {
-       if !bps.setCloseChan() {
-               return bps.bf.closedError(
-                       "Attempt to close an unopened BLE session")
-       }
-       defer bps.clearCloseChan()
-
-       done, err := bps.bf.Stop()
-       if err != nil {
-               return err
-       }
-
-       if done {
-               // Close complete.
-               return nil
-       }
-
-       // Block until close completes or timeout.
-       select {
-       case <-bps.closeChan:
-       case <-time.After(bps.closeTimeout):
-       }
-
-       return nil
-}
-
-func (bps *BlePlainSesn) IsOpen() bool {
-       return bps.bf.IsOpen()
-}
-
-func (bps *BlePlainSesn) onRxNmp(data []byte) {
-       bps.nd.Dispatch(data)
-}
-
-func (bps *BlePlainSesn) onDisconnect(peer BleDev, err error) {
-       for nl, _ := range bps.nls {
-               nl.ErrChan <- err
-       }
-
-       // If the session is being closed, unblock the close() call.
-       if bps.closeChan != nil {
-               bps.closeChan <- err
-       }
-       if bps.onCloseCb != nil {
-               bps.onCloseCb(bps, peer, err)
-       }
-}
-
-func (bps *BlePlainSesn) EncodeNmpMsg(m *nmp.NmpMsg) ([]byte, error) {
-       return nmp.EncodeNmpPlain(m)
-}
-
-// Blocking.
-func (bps *BlePlainSesn) TxNmpOnce(msg *nmp.NmpMsg, opt sesn.TxOptions) (
-       nmp.NmpRsp, error) {
-
-       if !bps.IsOpen() {
-               return nil, bps.bf.closedError(
-                       "Attempt to transmit over closed BLE session")
-       }
-
-       nl, err := bps.addNmpListener(msg.Hdr.Seq)
-       if err != nil {
-               return nil, err
-       }
-       defer bps.removeNmpListener(msg.Hdr.Seq)
-
-       b, err := bps.EncodeNmpMsg(msg)
-       if err != nil {
-               return nil, err
-       }
-
-       return bps.bf.TxNmp(b, nl, opt.Timeout)
-}
-
-func (bps *BlePlainSesn) MtuIn() int {
-       return bps.bf.attMtu - NOTIFY_CMD_BASE_SZ - nmp.NMP_HDR_SIZE
-}
-
-func (bps *BlePlainSesn) MtuOut() int {
-       mtu := bps.bf.attMtu - WRITE_CMD_BASE_SZ - nmp.NMP_HDR_SIZE
-       return util.IntMin(mtu, BLE_ATT_ATTR_MAX_LEN)
-}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_proto.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_proto.go 
b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_proto.go
deleted file mode 100644
index 85a26f8..0000000
--- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_proto.go
+++ /dev/null
@@ -1,829 +0,0 @@
-package nmble
-
-import (
-       "bytes"
-       "encoding/json"
-       "errors"
-       "fmt"
-       "strconv"
-       "strings"
-
-       . "mynewt.apache.org/newt/nmxact/bledefs"
-)
-
-type MsgOp int
-type MsgType int
-
-type BleBytes struct {
-       Bytes []byte
-}
-
-type BleUuid struct {
-       Bytes [16]byte
-}
-
-const ERR_CODE_ATT_BASE = 0x100
-const ERR_CODE_HCI_BASE = 0x200
-const ERR_CODE_L2C_BASE = 0x300
-const ERR_CODE_SM_US_BASE = 0x400
-const ERR_CODE_SM_PEER_BASE = 0x500
-
-const (
-       ERR_CODE_EAGAIN       int = 1
-       ERR_CODE_EALREADY         = 2
-       ERR_CODE_EINVAL           = 3
-       ERR_CODE_EMSGSIZE         = 4
-       ERR_CODE_ENOENT           = 5
-       ERR_CODE_ENOMEM           = 6
-       ERR_CODE_ENOTCONN         = 7
-       ERR_CODE_ENOTSUP          = 8
-       ERR_CODE_EAPP             = 9
-       ERR_CODE_EBADDATA         = 10
-       ERR_CODE_EOS              = 11
-       ERR_CODE_ECONTROLLER      = 12
-       ERR_CODE_ETIMEOUT         = 13
-       ERR_CODE_EDONE            = 14
-       ERR_CODE_EBUSY            = 15
-       ERR_CODE_EREJECT          = 16
-       ERR_CODE_EUNKNOWN         = 17
-       ERR_CODE_EROLE            = 18
-       ERR_CODE_ETIMEOUT_HCI     = 19
-       ERR_CODE_ENOMEM_EVT       = 20
-       ERR_CODE_ENOADDR          = 21
-       ERR_CODE_ENOTSYNCED       = 22
-)
-
-var ErrCodeStringMap = map[int]string{
-       ERR_CODE_EAGAIN:       "eagain",
-       ERR_CODE_EALREADY:     "ealready",
-       ERR_CODE_EINVAL:       "einval",
-       ERR_CODE_EMSGSIZE:     "emsgsize",
-       ERR_CODE_ENOENT:       "enoent",
-       ERR_CODE_ENOMEM:       "enomem",
-       ERR_CODE_ENOTCONN:     "enotconn",
-       ERR_CODE_ENOTSUP:      "enotsup",
-       ERR_CODE_EAPP:         "eapp",
-       ERR_CODE_EBADDATA:     "ebaddata",
-       ERR_CODE_EOS:          "eos",
-       ERR_CODE_ECONTROLLER:  "econtroller",
-       ERR_CODE_ETIMEOUT:     "etimeout",
-       ERR_CODE_EDONE:        "edone",
-       ERR_CODE_EBUSY:        "ebusy",
-       ERR_CODE_EREJECT:      "ereject",
-       ERR_CODE_EUNKNOWN:     "eunknown",
-       ERR_CODE_EROLE:        "erole",
-       ERR_CODE_ETIMEOUT_HCI: "etimeout_hci",
-       ERR_CODE_ENOMEM_EVT:   "enomem_evt",
-       ERR_CODE_ENOADDR:      "enoaddr",
-       ERR_CODE_ENOTSYNCED:   "enotsynced",
-}
-
-const (
-       ERR_CODE_HCI_UNKNOWN_HCI_CMD     int = 1
-       ERR_CODE_HCI_UNK_CONN_ID             = 2
-       ERR_CODE_HCI_HW_FAIL                 = 3
-       ERR_CODE_HCI_PAGE_TMO                = 4
-       ERR_CODE_HCI_AUTH_FAIL               = 5
-       ERR_CODE_HCI_PINKEY_MISSING          = 6
-       ERR_CODE_HCI_MEM_CAPACITY            = 7
-       ERR_CODE_HCI_CONN_SPVN_TMO           = 8
-       ERR_CODE_HCI_CONN_LIMIT              = 9
-       ERR_CODE_HCI_SYNCH_CONN_LIMIT        = 10
-       ERR_CODE_HCI_ACL_CONN_EXISTS         = 11
-       ERR_CODE_HCI_CMD_DISALLOWED          = 12
-       ERR_CODE_HCI_CONN_REJ_RESOURCES      = 13
-       ERR_CODE_HCI_CONN_REJ_SECURITY       = 14
-       ERR_CODE_HCI_CONN_REJ_BD_ADDR        = 15
-       ERR_CODE_HCI_CONN_ACCEPT_TMO         = 16
-       ERR_CODE_HCI_UNSUPPORTED             = 17
-       ERR_CODE_HCI_INV_HCI_CMD_PARMS       = 18
-       ERR_CODE_HCI_REM_USER_CONN_TERM      = 19
-       ERR_CODE_HCI_RD_CONN_TERM_RESRCS     = 20
-       ERR_CODE_HCI_RD_CONN_TERM_PWROFF     = 21
-       ERR_CODE_HCI_CONN_TERM_LOCAL         = 22
-       ERR_CODE_HCI_REPEATED_ATTEMPTS       = 23
-       ERR_CODE_HCI_NO_PAIRING              = 24
-       ERR_CODE_HCI_UNK_LMP                 = 25
-       ERR_CODE_HCI_UNSUPP_REM_FEATURE      = 26
-       ERR_CODE_HCI_SCO_OFFSET              = 27
-       ERR_CODE_HCI_SCO_ITVL                = 28
-       ERR_CODE_HCI_SCO_AIR_MODE            = 29
-       ERR_CODE_HCI_INV_LMP_LL_PARM         = 30
-       ERR_CODE_HCI_UNSPECIFIED             = 31
-       ERR_CODE_HCI_UNSUPP_LMP_LL_PARM      = 32
-       ERR_CODE_HCI_NO_ROLE_CHANGE          = 33
-       ERR_CODE_HCI_LMP_LL_RSP_TMO          = 34
-       ERR_CODE_HCI_LMP_COLLISION           = 35
-       ERR_CODE_HCI_LMP_PDU                 = 36
-       ERR_CODE_HCI_ENCRYPTION_MODE         = 37
-       ERR_CODE_HCI_LINK_KEY_CHANGE         = 38
-       ERR_CODE_HCI_UNSUPP_QOS              = 39
-       ERR_CODE_HCI_INSTANT_PASSED          = 40
-       ERR_CODE_HCI_UNIT_KEY_PAIRING        = 41
-       ERR_CODE_HCI_DIFF_TRANS_COLL         = 42
-       ERR_CODE_HCI_QOS_PARM                = 44
-       ERR_CODE_HCI_QOS_REJECTED            = 45
-       ERR_CODE_HCI_CHAN_CLASS              = 46
-       ERR_CODE_HCI_INSUFFICIENT_SEC        = 47
-       ERR_CODE_HCI_PARM_OUT_OF_RANGE       = 48
-       ERR_CODE_HCI_PENDING_ROLE_SW         = 50
-       ERR_CODE_HCI_RESERVED_SLOT           = 52
-       ERR_CODE_HCI_ROLE_SW_FAIL            = 53
-       ERR_CODE_HCI_INQ_RSP_TOO_BIG         = 54
-       ERR_CODE_HCI_SEC_SIMPLE_PAIR         = 55
-       ERR_CODE_HCI_HOST_BUSY_PAIR          = 56
-       ERR_CODE_HCI_CONN_REJ_CHANNEL        = 57
-       ERR_CODE_HCI_CTLR_BUSY               = 58
-       ERR_CODE_HCI_CONN_PARMS              = 59
-       ERR_CODE_HCI_DIR_ADV_TMO             = 60
-       ERR_CODE_HCI_CONN_TERM_MIC           = 61
-       ERR_CODE_HCI_CONN_ESTABLISHMENT      = 62
-       ERR_CODE_HCI_MAC_CONN_FAIL           = 63
-       ERR_CODE_HCI_COARSE_CLK_ADJ          = 64
-)
-
-var HciErrCodeStringMap = map[int]string{
-       ERR_CODE_HCI_UNKNOWN_HCI_CMD:     "unknown hci cmd",
-       ERR_CODE_HCI_UNK_CONN_ID:         "unknown connection id",
-       ERR_CODE_HCI_HW_FAIL:             "hw fail",
-       ERR_CODE_HCI_PAGE_TMO:            "page tmo",
-       ERR_CODE_HCI_AUTH_FAIL:           "auth fail",
-       ERR_CODE_HCI_PINKEY_MISSING:      "pinkey missing",
-       ERR_CODE_HCI_MEM_CAPACITY:        "mem capacity",
-       ERR_CODE_HCI_CONN_SPVN_TMO:       "connection supervision timeout",
-       ERR_CODE_HCI_CONN_LIMIT:          "conn limit",
-       ERR_CODE_HCI_SYNCH_CONN_LIMIT:    "synch conn limit",
-       ERR_CODE_HCI_ACL_CONN_EXISTS:     "acl conn exists",
-       ERR_CODE_HCI_CMD_DISALLOWED:      "cmd disallowed",
-       ERR_CODE_HCI_CONN_REJ_RESOURCES:  "conn rej resources",
-       ERR_CODE_HCI_CONN_REJ_SECURITY:   "conn rej security",
-       ERR_CODE_HCI_CONN_REJ_BD_ADDR:    "conn rej bd addr",
-       ERR_CODE_HCI_CONN_ACCEPT_TMO:     "conn accept tmo",
-       ERR_CODE_HCI_UNSUPPORTED:         "unsupported",
-       ERR_CODE_HCI_INV_HCI_CMD_PARMS:   "inv hci cmd parms",
-       ERR_CODE_HCI_REM_USER_CONN_TERM:  "rem user conn term",
-       ERR_CODE_HCI_RD_CONN_TERM_RESRCS: "rd conn term resrcs",
-       ERR_CODE_HCI_RD_CONN_TERM_PWROFF: "rd conn term pwroff",
-       ERR_CODE_HCI_CONN_TERM_LOCAL:     "conn term local",
-       ERR_CODE_HCI_REPEATED_ATTEMPTS:   "repeated attempts",
-       ERR_CODE_HCI_NO_PAIRING:          "no pairing",
-       ERR_CODE_HCI_UNK_LMP:             "unk lmp",
-       ERR_CODE_HCI_UNSUPP_REM_FEATURE:  "unsupp rem feature",
-       ERR_CODE_HCI_SCO_OFFSET:          "sco offset",
-       ERR_CODE_HCI_SCO_ITVL:            "sco itvl",
-       ERR_CODE_HCI_SCO_AIR_MODE:        "sco air mode",
-       ERR_CODE_HCI_INV_LMP_LL_PARM:     "inv lmp ll parm",
-       ERR_CODE_HCI_UNSPECIFIED:         "unspecified",
-       ERR_CODE_HCI_UNSUPP_LMP_LL_PARM:  "unsupp lmp ll parm",
-       ERR_CODE_HCI_NO_ROLE_CHANGE:      "no role change",
-       ERR_CODE_HCI_LMP_LL_RSP_TMO:      "lmp ll rsp tmo",
-       ERR_CODE_HCI_LMP_COLLISION:       "lmp collision",
-       ERR_CODE_HCI_LMP_PDU:             "lmp pdu",
-       ERR_CODE_HCI_ENCRYPTION_MODE:     "encryption mode",
-       ERR_CODE_HCI_LINK_KEY_CHANGE:     "link key change",
-       ERR_CODE_HCI_UNSUPP_QOS:          "unsupp qos",
-       ERR_CODE_HCI_INSTANT_PASSED:      "instant passed",
-       ERR_CODE_HCI_UNIT_KEY_PAIRING:    "unit key pairing",
-       ERR_CODE_HCI_DIFF_TRANS_COLL:     "diff trans coll",
-       ERR_CODE_HCI_QOS_PARM:            "qos parm",
-       ERR_CODE_HCI_QOS_REJECTED:        "qos rejected",
-       ERR_CODE_HCI_CHAN_CLASS:          "chan class",
-       ERR_CODE_HCI_INSUFFICIENT_SEC:    "insufficient sec",
-       ERR_CODE_HCI_PARM_OUT_OF_RANGE:   "parm out of range",
-       ERR_CODE_HCI_PENDING_ROLE_SW:     "pending role sw",
-       ERR_CODE_HCI_RESERVED_SLOT:       "reserved slot",
-       ERR_CODE_HCI_ROLE_SW_FAIL:        "role sw fail",
-       ERR_CODE_HCI_INQ_RSP_TOO_BIG:     "inq rsp too big",
-       ERR_CODE_HCI_SEC_SIMPLE_PAIR:     "sec simple pair",
-       ERR_CODE_HCI_HOST_BUSY_PAIR:      "host busy pair",
-       ERR_CODE_HCI_CONN_REJ_CHANNEL:    "conn rej channel",
-       ERR_CODE_HCI_CTLR_BUSY:           "ctlr busy",
-       ERR_CODE_HCI_CONN_PARMS:          "conn parms",
-       ERR_CODE_HCI_DIR_ADV_TMO:         "dir adv tmo",
-       ERR_CODE_HCI_CONN_TERM_MIC:       "conn term mic",
-       ERR_CODE_HCI_CONN_ESTABLISHMENT:  "conn establishment",
-       ERR_CODE_HCI_MAC_CONN_FAIL:       "mac conn fail",
-       ERR_CODE_HCI_COARSE_CLK_ADJ:      "coarse clk adj",
-}
-
-const (
-       MSG_OP_REQ MsgOp = 0
-       MSG_OP_RSP       = 1
-       MSG_OP_EVT       = 2
-)
-
-const (
-       MSG_TYPE_ERR           MsgType = 1
-       MSG_TYPE_SYNC                  = 2
-       MSG_TYPE_CONNECT               = 3
-       MSG_TYPE_TERMINATE             = 4
-       MSG_TYPE_DISC_ALL_SVCS         = 5
-       MSG_TYPE_DISC_SVC_UUID         = 6
-       MSG_TYPE_DISC_ALL_CHRS         = 7
-       MSG_TYPE_DISC_CHR_UUID         = 8
-       MSG_TYPE_WRITE                 = 9
-       MSG_TYPE_WRITE_CMD             = 10
-       MSG_TYPE_EXCHANGE_MTU          = 11
-       MSG_TYPE_GEN_RAND_ADDR         = 12
-       MSG_TYPE_SET_RAND_ADDR         = 13
-       MSG_TYPE_CONN_CANCEL           = 14
-       MSG_TYPE_SCAN                  = 15
-       MSG_TYPE_SCAN_CANCEL           = 16
-
-       MSG_TYPE_SYNC_EVT       = 2049
-       MSG_TYPE_CONNECT_EVT    = 2050
-       MSG_TYPE_DISCONNECT_EVT = 2051
-       MSG_TYPE_DISC_SVC_EVT   = 2052
-       MSG_TYPE_DISC_CHR_EVT   = 2053
-       MSG_TYPE_WRITE_ACK_EVT  = 2054
-       MSG_TYPE_NOTIFY_RX_EVT  = 2055
-       MSG_TYPE_MTU_CHANGE_EVT = 2056
-       MSG_TYPE_SCAN_EVT       = 2057
-)
-
-var MsgOpStringMap = map[MsgOp]string{
-       MSG_OP_REQ: "request",
-       MSG_OP_RSP: "response",
-       MSG_OP_EVT: "event",
-}
-
-var MsgTypeStringMap = map[MsgType]string{
-       MSG_TYPE_ERR:           "error",
-       MSG_TYPE_SYNC:          "sync",
-       MSG_TYPE_CONNECT:       "connect",
-       MSG_TYPE_TERMINATE:     "terminate",
-       MSG_TYPE_DISC_SVC_UUID: "disc_svc_uuid",
-       MSG_TYPE_DISC_CHR_UUID: "disc_chr_uuid",
-       MSG_TYPE_DISC_ALL_CHRS: "disc_all_chrs",
-       MSG_TYPE_WRITE_CMD:     "write_cmd",
-       MSG_TYPE_EXCHANGE_MTU:  "exchange_mtu",
-       MSG_TYPE_CONN_CANCEL:   "conn_cancel",
-       MSG_TYPE_SCAN:          "scan",
-       MSG_TYPE_SCAN_CANCEL:   "scan_cancel",
-
-       MSG_TYPE_SYNC_EVT:       "sync_evt",
-       MSG_TYPE_CONNECT_EVT:    "connect_evt",
-       MSG_TYPE_DISCONNECT_EVT: "disconnect_evt",
-       MSG_TYPE_DISC_SVC_EVT:   "disc_svc_evt",
-       MSG_TYPE_DISC_CHR_EVT:   "disc_chr_evt",
-       MSG_TYPE_NOTIFY_RX_EVT:  "notify_rx_evt",
-       MSG_TYPE_MTU_CHANGE_EVT: "mtu_change_evt",
-       MSG_TYPE_SCAN_EVT:       "scan_evt",
-}
-
-type BleHdr struct {
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-}
-
-type BleMsg interface{}
-
-type BleSvc struct {
-       StartHandle int     `json:"start_handle"`
-       EndHandle   int     `json:"end_handle"`
-       Uuid        BleUuid `json:"uuid"`
-}
-
-type BleChr struct {
-       DefHandle  int     `json:"def_handle"`
-       ValHandle  int     `json:"val_handle"`
-       Properties int     `json:"properties"`
-       Uuid       BleUuid `json:"uuid"`
-}
-
-type BleSyncReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-}
-
-type BleConnectReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       OwnAddrType  BleAddrType `json:"own_addr_type"`
-       PeerAddrType BleAddrType `json:"peer_addr_type"`
-       PeerAddr     BleAddr     `json:"peer_addr"`
-
-       // Optional
-       DurationMs         int `json:"duration_ms"`
-       ScanItvl           int `json:"scan_itvl"`
-       ScanWindow         int `json:"scan_window"`
-       ItvlMin            int `json:"itvl_min"`
-       ItvlMax            int `json:"itvl_max"`
-       Latency            int `json:"latency"`
-       SupervisionTimeout int `json:"supervision_timeout"`
-       MinCeLen           int `json:"min_ce_len"`
-       MaxCeLen           int `json:"max_ce_len"`
-}
-
-type BleConnectRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleConnectEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status          int         `json:"status"`
-       ConnHandle      int         `json:"conn_handle"`
-       OwnIdAddrType   BleAddrType `json:"own_id_addr_type"`
-       OwnIdAddr       BleAddr     `json:"own_id_addr"`
-       OwnOtaAddrType  BleAddrType `json:"own_ota_addr_type"`
-       OwnOtaAddr      BleAddr     `json:"own_ota_addr"`
-       PeerIdAddrType  BleAddrType `json:"peer_id_addr_type"`
-       PeerIdAddr      BleAddr     `json:"peer_id_addr"`
-       PeerOtaAddrType BleAddrType `json:"peer_ota_addr_type"`
-       PeerOtaAddr     BleAddr     `json:"peer_ota_addr"`
-}
-
-type BleTerminateReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       ConnHandle int `json:"conn_handle"`
-       HciReason  int `json:"hci_reason"`
-}
-
-type BleTerminateRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleConnCancelReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-}
-
-type BleConnCancelRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleDisconnectEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Reason     int `json:"reason"`
-       ConnHandle int `json:"conn_handle"`
-}
-
-type BleDiscSvcUuidReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       ConnHandle int     `json:"conn_handle"`
-       Uuid       BleUuid `json:"svc_uuid"`
-}
-
-type BleDiscSvcUuidRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleDiscSvcEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int    `json:"status"`
-       Svc    BleSvc `json:"service"`
-}
-
-type BleDiscChrUuidReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       ConnHandle  int     `json:"conn_handle"`
-       StartHandle int     `json:"start_handle"`
-       EndHandle   int     `json:"end_handle"`
-       Uuid        BleUuid `json:"chr_uuid"`
-}
-
-type BleDiscAllChrsReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       ConnHandle  int `json:"conn_handle"`
-       StartHandle int `json:"start_handle"`
-       EndHandle   int `json:"end_handle"`
-}
-
-type BleDiscAllChrsRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleErrRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int    `json:"status"`
-       Msg    string `json:"msg"`
-}
-
-type BleSyncRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Synced bool `json:"synced"`
-}
-
-type BleDiscChrUuidRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleDiscChrEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int    `json:"status"`
-       Chr    BleChr `json:"characteristic"`
-}
-
-type BleWriteCmdReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       ConnHandle int      `json:"conn_handle"`
-       AttrHandle int      `json:"attr_handle"`
-       Data       BleBytes `json:"data"`
-}
-
-type BleWriteCmdRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleSyncEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Synced bool `json:"synced"`
-}
-
-type BleNotifyRxEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       ConnHandle int      `json:"conn_handle"`
-       AttrHandle int      `json:"attr_handle"`
-       Indication bool     `json:"indication"`
-       Data       BleBytes `json:"data"`
-}
-
-type BleExchangeMtuReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       ConnHandle int `json:"conn_handle"`
-}
-
-type BleExchangeMtuRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleMtuChangeEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status     int `json:"status"`
-       ConnHandle int `json:"conn_handle"`
-       Mtu        int `json:"mtu"`
-}
-
-type BleScanReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       OwnAddrType      BleAddrType         `json:"own_addr_type"`
-       DurationMs       int                 `json:"duration_ms"`
-       Itvl             int                 `json:"itvl"`
-       Window           int                 `json:"window"`
-       FilterPolicy     BleScanFilterPolicy `json:"filter_policy"`
-       Limited          bool                `json:"limited"`
-       Passive          bool                `json:"passive"`
-       FilterDuplicates bool                `json:"filter_duplicates"`
-}
-
-type BleScanRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-type BleScanEvt struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       EventType BleAdvEventType `json:"event_type"`
-       AddrType  BleAddrType     `json:"addr_type"`
-       Addr      BleAddr         `json:"addr"`
-       Rssi      int8            `json:"rssi"`
-       Data      BleBytes        `json:"data"`
-
-       // Optional
-       DataFlags          uint8  `json:"data_flags"`
-       DataName           string `json:"data_name"`
-       DataNameIsComplete bool   `json:"data_name_is_complete"`
-}
-
-type BleScanCancelReq struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-}
-
-type BleScanCancelRsp struct {
-       // Header
-       Op   MsgOp   `json:"op"`
-       Type MsgType `json:"type"`
-       Seq  int     `json:"seq"`
-
-       // Mandatory
-       Status int `json:"status"`
-}
-
-func ErrCodeToString(e int) string {
-       var s string
-
-       switch {
-       case e >= ERR_CODE_SM_PEER_BASE:
-       case e >= ERR_CODE_SM_US_BASE:
-       case e >= ERR_CODE_L2C_BASE:
-       case e >= ERR_CODE_HCI_BASE:
-               s = HciErrCodeStringMap[e-ERR_CODE_HCI_BASE]
-
-       case e >= ERR_CODE_ATT_BASE:
-       default:
-               s = ErrCodeStringMap[e]
-       }
-
-       if s == "" {
-               s = "unknown"
-       }
-
-       return s
-}
-
-func MsgOpToString(op MsgOp) string {
-       s := MsgOpStringMap[op]
-       if s == "" {
-               panic(fmt.Sprintf("Invalid MsgOp: %d", int(op)))
-       }
-
-       return s
-}
-
-func MsgOpFromString(s string) (MsgOp, error) {
-       for op, name := range MsgOpStringMap {
-               if s == name {
-                       return op, nil
-               }
-       }
-
-       return MsgOp(0), errors.New("Invalid MsgOp string: " + s)
-}
-
-func MsgTypeToString(msgType MsgType) string {
-       s := MsgTypeStringMap[msgType]
-       if s == "" {
-               panic(fmt.Sprintf("Invalid MsgType: %d", int(msgType)))
-       }
-
-       return s
-}
-
-func MsgTypeFromString(s string) (MsgType, error) {
-       for addrType, name := range MsgTypeStringMap {
-               if s == name {
-                       return addrType, nil
-               }
-       }
-
-       return MsgType(0), errors.New("Invalid MsgType string: " + s)
-}
-
-func (o MsgOp) MarshalJSON() ([]byte, error) {
-       return json.Marshal(MsgOpToString(o))
-}
-
-func (o *MsgOp) UnmarshalJSON(data []byte) error {
-       var err error
-
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       *o, err = MsgOpFromString(s)
-       return err
-}
-
-func (t MsgType) MarshalJSON() ([]byte, error) {
-       return json.Marshal(MsgTypeToString(t))
-}
-
-func (t *MsgType) UnmarshalJSON(data []byte) error {
-       var err error
-
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       *t, err = MsgTypeFromString(s)
-       return err
-}
-
-func (bb *BleBytes) MarshalJSON() ([]byte, error) {
-       var buf bytes.Buffer
-       buf.Grow(len(bb.Bytes) * 5)
-
-       for i, b := range bb.Bytes {
-               if i != 0 {
-                       buf.WriteString(":")
-               }
-               fmt.Fprintf(&buf, "0x%02x", b)
-       }
-
-       s := buf.String()
-       return json.Marshal(s)
-
-       return buf.Bytes(), nil
-}
-
-func (bb *BleBytes) UnmarshalJSON(data []byte) error {
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       // strings.Split() appears to return { nil } when passed an empty 
string.
-       if len(s) == 0 {
-               return nil
-       }
-
-       toks := strings.Split(strings.ToLower(s), ":")
-       bb.Bytes = make([]byte, len(toks))
-
-       for i, t := range toks {
-               if !strings.HasPrefix(t, "0x") {
-                       return fmt.Errorf(
-                               "Byte stream contains invalid token; token=%s 
stream=%s", t, s)
-               }
-
-               u64, err := strconv.ParseUint(t, 0, 8)
-               if err != nil {
-                       return err
-               }
-               bb.Bytes[i] = byte(u64)
-       }
-
-       return nil
-}
-
-func (bu *BleUuid) String() string {
-       var buf bytes.Buffer
-       buf.Grow(len(bu.Bytes)*2 + 3)
-
-       // XXX: For now, only support 128-bit UUIDs.
-
-       for i, b := range bu.Bytes {
-               switch i {
-               case 4, 6, 8, 10:
-                       buf.WriteString("-")
-               }
-
-               fmt.Fprintf(&buf, "%02x", b)
-       }
-
-       return buf.String()
-}
-
-func (bu *BleUuid) MarshalJSON() ([]byte, error) {
-       return json.Marshal(bu.String())
-}
-
-func (bu *BleUuid) UnmarshalJSON(data []byte) error {
-       var s string
-       if err := json.Unmarshal(data, &s); err != nil {
-               return err
-       }
-
-       var err error
-       *bu, err = ParseUuid(s)
-       if err != nil {
-               return err
-       }
-
-       return nil
-}
-
-func CompareUuids(a BleUuid, b BleUuid) int {
-       return bytes.Compare(a.Bytes[:], b.Bytes[:])
-}


Reply via email to