http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_util.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_util.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_util.go deleted file mode 100644 index 08eb8d9..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_util.go +++ /dev/null @@ -1,174 +0,0 @@ -package nmble - -import ( - "fmt" - "strconv" - "sync/atomic" - - log "github.com/Sirupsen/logrus" - - . "mynewt.apache.org/newt/nmxact/bledefs" - "mynewt.apache.org/newt/nmxact/nmxutil" -) - -const NmpPlainSvcUuid = "8D53DC1D-1DB7-4CD3-868B-8A527460AA84" -const NmpPlainChrUuid = "DA2E7828-FBCE-4E01-AE9E-261174997C48" -const NmpOicSvcUuid = "ADE3D529-C784-4F63-A987-EB69F70EE816" -const NmpOicReqChrUuid = "AD7B334F-4637-4B86-90B6-9D787F03D218" -const NmpOicRspChrUuid = "E9241982-4580-42C4-8831-95048216B256" - -const WRITE_CMD_BASE_SZ = 3 -const NOTIFY_CMD_BASE_SZ = 3 - -var nextSeq uint32 - -func NextSeq() int { - return int(atomic.AddUint32(&nextSeq, 1)) -} - -func ParseUuid(uuidStr string) (BleUuid, error) { - bu := BleUuid{} - - if len(uuidStr) != 36 { - return bu, fmt.Errorf("Invalid UUID: %s", uuidStr) - } - - boff := 0 - for i := 0; i < 36; { - switch i { - case 8, 13, 18, 23: - if uuidStr[i] != '-' { - return bu, fmt.Errorf("Invalid UUID: %s", uuidStr) - } - i++ - - default: - u64, err := strconv.ParseUint(uuidStr[i:i+2], 16, 8) - if err != nil { - return bu, fmt.Errorf("Invalid UUID: %s", uuidStr) - } - bu.Bytes[boff] = byte(u64) - i += 2 - boff++ - } - } - - return bu, nil -} - -func BhdTimeoutError(rspType MsgType) error { - str := fmt.Sprintf("Timeout waiting for blehostd to send %s response", - MsgTypeToString(rspType)) - - log.Debug(str) - return nmxutil.NewXportTimeoutError(str) -} - -func StatusError(op MsgOp, msgType MsgType, status int) error { - str := fmt.Sprintf("%s %s indicates error: %s (%d)", - MsgOpToString(op), - MsgTypeToString(msgType), - ErrCodeToString(status), - status) - - log.Debug(str) - return nmxutil.NewBleHostError(status, str) -} - -func NewBleConnectReq() *BleConnectReq { - return &BleConnectReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_CONNECT, - Seq: NextSeq(), - - OwnAddrType: BLE_ADDR_TYPE_PUBLIC, - PeerAddrType: BLE_ADDR_TYPE_PUBLIC, - PeerAddr: BleAddr{}, - - DurationMs: 30000, - ScanItvl: 0x0010, - ScanWindow: 0x0010, - ItvlMin: 24, - ItvlMax: 40, - Latency: 0, - SupervisionTimeout: 0x0200, - MinCeLen: 0x0010, - MaxCeLen: 0x0300, - } -} - -func NewBleTerminateReq() *BleTerminateReq { - return &BleTerminateReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_TERMINATE, - Seq: NextSeq(), - - ConnHandle: 0, - HciReason: 0, - } -} - -func NewBleConnCancelReq() *BleConnCancelReq { - return &BleConnCancelReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_CONN_CANCEL, - Seq: NextSeq(), - } -} - -func NewBleDiscSvcUuidReq() *BleDiscSvcUuidReq { - return &BleDiscSvcUuidReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_DISC_SVC_UUID, - Seq: NextSeq(), - - ConnHandle: 0, - Uuid: BleUuid{}, - } -} - -func NewBleDiscAllChrsReq() *BleDiscAllChrsReq { - return &BleDiscAllChrsReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_DISC_ALL_CHRS, - Seq: NextSeq(), - } -} - -func NewBleExchangeMtuReq() *BleExchangeMtuReq { - return &BleExchangeMtuReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_EXCHANGE_MTU, - Seq: NextSeq(), - - ConnHandle: 0, - } -} - -func NewBleWriteCmdReq() *BleWriteCmdReq { - return &BleWriteCmdReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_WRITE_CMD, - Seq: NextSeq(), - - ConnHandle: 0, - AttrHandle: 0, - Data: BleBytes{}, - } -} - -func NewBleScanReq() *BleScanReq { - return &BleScanReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_SCAN, - Seq: NextSeq(), - } -} - -func NewBleScanCancelReq() *BleScanCancelReq { - return &BleScanCancelReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_SCAN_CANCEL, - Seq: NextSeq(), - } -}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_xport.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_xport.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_xport.go deleted file mode 100644 index 483bfd1..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/ble_xport.go +++ /dev/null @@ -1,319 +0,0 @@ -package nmble - -import ( - "encoding/hex" - "encoding/json" - "fmt" - "sync/atomic" - "time" - - log "github.com/Sirupsen/logrus" - - "mynewt.apache.org/newt/nmxact/nmxutil" - "mynewt.apache.org/newt/nmxact/sesn" - "mynewt.apache.org/newt/util/unixchild" -) - -type XportCfg struct { - // Path of Unix domain socket to create and listen on. - SockPath string - - // Path of the blehostd executable. - BlehostdPath string - - // How long to wait for the blehostd process to connect to the Unix domain - // socket. - BlehostdAcceptTimeout time.Duration - - // Whether to restart the blehostd process if it terminates. - BlehostdRestart bool - - // How long to wait for a JSON response from the blehostd process. - BlehostdRspTimeout time.Duration - - // Path of the BLE controller device (e.g., /dev/ttyUSB0). - DevPath string -} - -func NewXportCfg() XportCfg { - return XportCfg{ - BlehostdAcceptTimeout: time.Second, - BlehostdRestart: true, - BlehostdRspTimeout: time.Second, - } -} - -type BleXportState uint32 - -const ( - BLE_XPORT_STATE_STOPPED BleXportState = iota - BLE_XPORT_STATE_STARTING - BLE_XPORT_STATE_STARTED -) - -// Implements xport.Xport. -type BleXport struct { - Bd *BleDispatcher - client *unixchild.Client - state BleXportState - - syncTimeout time.Duration - rspTimeout time.Duration -} - -func NewBleXport(cfg XportCfg) (*BleXport, error) { - config := unixchild.Config{ - SockPath: cfg.SockPath, - ChildPath: cfg.BlehostdPath, - ChildArgs: []string{cfg.DevPath, cfg.SockPath}, - Depth: 10, - MaxMsgSz: 10240, - AcceptTimeout: cfg.BlehostdAcceptTimeout, - Restart: cfg.BlehostdRestart, - } - - c := unixchild.New(config) - - bx := &BleXport{ - client: c, - Bd: NewBleDispatcher(), - syncTimeout: 10 * time.Second, - rspTimeout: cfg.BlehostdRspTimeout, - } - - return bx, nil -} - -func (bx *BleXport) BuildSesn(cfg sesn.SesnCfg) (sesn.Sesn, error) { - switch cfg.MgmtProto { - case sesn.MGMT_PROTO_NMP: - return NewBlePlainSesn(bx, cfg), nil - case sesn.MGMT_PROTO_OMP: - return NewBleOicSesn(bx, cfg), nil - default: - return nil, fmt.Errorf( - "Invalid management protocol: %d; expected NMP or OMP", - cfg.MgmtProto) - } -} - -func (bx *BleXport) addSyncListener() (*BleListener, error) { - bl := NewBleListener() - base := BleMsgBase{ - Op: MSG_OP_EVT, - Type: MSG_TYPE_SYNC_EVT, - Seq: -1, - ConnHandle: -1, - } - if err := bx.Bd.AddListener(base, bl); err != nil { - return nil, err - } - - return bl, nil -} - -func (bx *BleXport) removeSyncListener() { - base := BleMsgBase{ - Op: MSG_OP_EVT, - Type: MSG_TYPE_SYNC_EVT, - Seq: -1, - ConnHandle: -1, - } - bx.Bd.RemoveListener(base) -} - -func (bx *BleXport) querySyncStatus() (bool, error) { - req := &BleSyncReq{ - Op: MSG_OP_REQ, - Type: MSG_TYPE_SYNC, - Seq: NextSeq(), - } - - j, err := json.Marshal(req) - if err != nil { - return false, err - } - - bl := NewBleListener() - base := BleMsgBase{ - Op: -1, - Type: -1, - Seq: req.Seq, - ConnHandle: -1, - } - if err := bx.Bd.AddListener(base, bl); err != nil { - return false, err - } - defer bx.Bd.RemoveListener(base) - - bx.txNoSync(j) - for { - select { - case err := <-bl.ErrChan: - return false, err - case bm := <-bl.BleChan: - switch msg := bm.(type) { - case *BleSyncRsp: - return msg.Synced, nil - } - } - } -} - -func (bx *BleXport) initialSyncCheck() (bool, *BleListener, error) { - bl, err := bx.addSyncListener() - if err != nil { - return false, nil, err - } - - synced, err := bx.querySyncStatus() - if err != nil { - bx.removeSyncListener() - return false, nil, err - } - - return synced, bl, nil -} - -func (bx *BleXport) onError(err error) { - if !bx.setStateFrom(BLE_XPORT_STATE_STARTED, BLE_XPORT_STATE_STOPPED) && - !bx.setStateFrom(BLE_XPORT_STATE_STARTING, BLE_XPORT_STATE_STOPPED) { - - // Stop already in progress. - return - } - bx.Bd.ErrorAll(err) - if bx.client != nil { - bx.client.Stop() - bx.client.FromChild <- nil - } -} - -func (bx *BleXport) setStateFrom(from BleXportState, to BleXportState) bool { - return atomic.CompareAndSwapUint32( - (*uint32)(&bx.state), uint32(from), uint32(to)) -} - -func (bx *BleXport) getState() BleXportState { - u32 := atomic.LoadUint32((*uint32)(&bx.state)) - return BleXportState(u32) -} - -func (bx *BleXport) Stop() error { - bx.onError(nil) - return nil -} - -func (bx *BleXport) Start() error { - if !bx.setStateFrom(BLE_XPORT_STATE_STOPPED, BLE_XPORT_STATE_STARTING) { - return nmxutil.NewXportError("BLE xport started twice") - } - - if err := bx.client.Start(); err != nil { - return nmxutil.NewXportError( - "Failed to start child child process: " + err.Error()) - } - - go func() { - err := <-bx.client.ErrChild - if unixchild.IsUcAcceptError(err) { - err = fmt.Errorf("blehostd did not connect to socket; " + - "controller not attached?") - } - bx.onError(err) - return - }() - - go func() { - for { - if _, err := bx.rx(); err != nil { - // The error should have been reported to everyone interested. - break - } - } - }() - - synced, bl, err := bx.initialSyncCheck() - if err != nil { - bx.Stop() - return err - } - - if !synced { - // Not synced yet. Wait for sync event. - - SyncLoop: - for { - select { - case err := <-bl.ErrChan: - return err - case bm := <-bl.BleChan: - switch msg := bm.(type) { - case *BleSyncEvt: - if msg.Synced { - break SyncLoop - } - } - case <-time.After(bx.syncTimeout): - bx.Stop() - return nmxutil.NewXportError( - "Timeout waiting for host <-> controller sync") - } - } - } - - // Host and controller are synced. Listen for sync loss in the background. - go func() { - for { - select { - case err := <-bl.ErrChan: - bx.onError(err) - return - case bm := <-bl.BleChan: - switch msg := bm.(type) { - case *BleSyncEvt: - if !msg.Synced { - bx.onError(nmxutil.NewXportError( - "BLE host <-> controller sync lost")) - return - } - } - } - } - }() - - if !bx.setStateFrom(BLE_XPORT_STATE_STARTING, BLE_XPORT_STATE_STARTED) { - return nmxutil.NewXportError( - "Internal error; BLE transport in unexpected state") - } - - return nil -} - -func (bx *BleXport) txNoSync(data []byte) { - log.Debugf("Tx to blehostd:\n%s", hex.Dump(data)) - bx.client.ToChild <- data -} - -func (bx *BleXport) Tx(data []byte) error { - if bx.getState() != BLE_XPORT_STATE_STARTED { - return nmxutil.NewXportError("Attempt to transmit before BLE xport " + - "fully started") - } - - bx.txNoSync(data) - return nil -} - -func (bx *BleXport) rx() ([]byte, error) { - select { - case err := <-bx.client.ErrChild: - return nil, err - case buf := <-bx.client.FromChild: - if len(buf) != 0 { - log.Debugf("Receive from blehostd:\n%s", hex.Dump(buf)) - bx.Bd.Dispatch(buf) - } - return buf, nil - } -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/dispatch.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/dispatch.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/dispatch.go deleted file mode 100644 index 546fc11..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmble/dispatch.go +++ /dev/null @@ -1,297 +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 nmble - -import ( - "encoding/json" - "fmt" - "sync" - "time" - - log "github.com/Sirupsen/logrus" -) - -type OpTypePair struct { - Op MsgOp - Type MsgType -} - -type BleMsgBase struct { - // Header - Op MsgOp `json:"op"` - Type MsgType `json:"type"` - Seq int `json:"seq"` - - // Optional - ConnHandle int `json:"conn_handle" json:",omitempty"` -} - -type BleListener struct { - BleChan chan BleMsg - ErrChan chan error - TmoChan chan time.Time - Acked bool - - timer *time.Timer -} - -func NewBleListener() *BleListener { - return &BleListener{ - BleChan: make(chan BleMsg, 16), - ErrChan: make(chan error, 4), - TmoChan: make(chan time.Time, 1), - } -} - -func (bl *BleListener) AfterTimeout(tmo time.Duration) <-chan time.Time { - fn := func() { - if !bl.Acked { - bl.TmoChan <- time.Now() - } - } - bl.timer = time.AfterFunc(tmo, fn) - return bl.TmoChan -} - -func (bl *BleListener) Stop() { - if bl.timer != nil { - bl.timer.Stop() - } -} - -type BleDispatcher struct { - seqMap map[int]*BleListener - baseMap map[BleMsgBase]*BleListener - mutex sync.Mutex -} - -type msgCtor func() BleMsg - -func errRspCtor() BleMsg { return &BleErrRsp{} } -func syncRspCtor() BleMsg { return &BleSyncRsp{} } -func connectRspCtor() BleMsg { return &BleConnectRsp{} } -func terminateRspCtor() BleMsg { return &BleTerminateRsp{} } -func discSvcUuidRspCtor() BleMsg { return &BleDiscSvcUuidRsp{} } -func discAllChrsRspCtor() BleMsg { return &BleDiscAllChrsRsp{} } -func discChrUuidRspCtor() BleMsg { return &BleDiscChrUuidRsp{} } -func writeCmdRspCtor() BleMsg { return &BleWriteCmdRsp{} } -func exchangeMtuRspCtor() BleMsg { return &BleExchangeMtuRsp{} } -func connCancelRspCtor() BleMsg { return &BleConnCancelRsp{} } -func scanRspCtor() BleMsg { return &BleScanRsp{} } -func scanCancelRspCtor() BleMsg { return &BleScanCancelRsp{} } - -func syncEvtCtor() BleMsg { return &BleSyncEvt{} } -func connectEvtCtor() BleMsg { return &BleConnectEvt{} } -func disconnectEvtCtor() BleMsg { return &BleDisconnectEvt{} } -func discSvcEvtCtor() BleMsg { return &BleDiscSvcEvt{} } -func discChrEvtCtor() BleMsg { return &BleDiscChrEvt{} } -func notifyRxEvtCtor() BleMsg { return &BleNotifyRxEvt{} } -func mtuChangeEvtCtor() BleMsg { return &BleMtuChangeEvt{} } -func scanEvtCtor() BleMsg { return &BleScanEvt{} } - -var msgCtorMap = map[OpTypePair]msgCtor{ - {MSG_OP_RSP, MSG_TYPE_ERR}: errRspCtor, - {MSG_OP_RSP, MSG_TYPE_SYNC}: syncRspCtor, - {MSG_OP_RSP, MSG_TYPE_CONNECT}: connectRspCtor, - {MSG_OP_RSP, MSG_TYPE_TERMINATE}: terminateRspCtor, - {MSG_OP_RSP, MSG_TYPE_DISC_SVC_UUID}: discSvcUuidRspCtor, - {MSG_OP_RSP, MSG_TYPE_DISC_CHR_UUID}: discChrUuidRspCtor, - {MSG_OP_RSP, MSG_TYPE_DISC_ALL_CHRS}: discAllChrsRspCtor, - {MSG_OP_RSP, MSG_TYPE_WRITE_CMD}: writeCmdRspCtor, - {MSG_OP_RSP, MSG_TYPE_EXCHANGE_MTU}: exchangeMtuRspCtor, - {MSG_OP_RSP, MSG_TYPE_CONN_CANCEL}: connCancelRspCtor, - {MSG_OP_RSP, MSG_TYPE_SCAN}: scanRspCtor, - {MSG_OP_RSP, MSG_TYPE_SCAN_CANCEL}: scanCancelRspCtor, - - {MSG_OP_EVT, MSG_TYPE_SYNC_EVT}: syncEvtCtor, - {MSG_OP_EVT, MSG_TYPE_CONNECT_EVT}: connectEvtCtor, - {MSG_OP_EVT, MSG_TYPE_DISCONNECT_EVT}: disconnectEvtCtor, - {MSG_OP_EVT, MSG_TYPE_DISC_SVC_EVT}: discSvcEvtCtor, - {MSG_OP_EVT, MSG_TYPE_DISC_CHR_EVT}: discChrEvtCtor, - {MSG_OP_EVT, MSG_TYPE_NOTIFY_RX_EVT}: notifyRxEvtCtor, - {MSG_OP_EVT, MSG_TYPE_MTU_CHANGE_EVT}: mtuChangeEvtCtor, - {MSG_OP_EVT, MSG_TYPE_SCAN_EVT}: scanEvtCtor, -} - -func NewBleDispatcher() *BleDispatcher { - return &BleDispatcher{ - seqMap: map[int]*BleListener{}, - baseMap: map[BleMsgBase]*BleListener{}, - } -} - -func (bd *BleDispatcher) findBaseListener(base BleMsgBase) ( - BleMsgBase, *BleListener) { - - for k, v := range bd.baseMap { - if k.Op != -1 && base.Op != -1 && k.Op != base.Op { - continue - } - if k.Type != -1 && base.Type != -1 && k.Type != base.Type { - continue - } - if k.ConnHandle != -1 && base.ConnHandle != -1 && - k.ConnHandle != base.ConnHandle { - - continue - } - - return k, v - } - - return base, nil -} - -func (bd *BleDispatcher) findDupListener(base BleMsgBase) ( - BleMsgBase, *BleListener) { - - if base.Seq != -1 { - return base, bd.seqMap[base.Seq] - } - - return bd.findBaseListener(base) -} - -func (bd *BleDispatcher) findListener(base BleMsgBase) ( - BleMsgBase, *BleListener) { - - if base.Seq != -1 { - if bl := bd.seqMap[base.Seq]; bl != nil { - return base, bl - } - } - - return bd.findBaseListener(base) -} - -func (bd *BleDispatcher) AddListener(base BleMsgBase, - listener *BleListener) error { - - bd.mutex.Lock() - defer bd.mutex.Unlock() - - if ob, old := bd.findDupListener(base); old != nil { - return fmt.Errorf( - "Duplicate BLE listener;\n"+ - " old=op=%d type=%d seq=%d connHandle=%d\n"+ - " new=op=%d type=%d seq=%d connHandle=%d", - ob.Op, ob.Type, ob.Seq, ob.ConnHandle, - base.Op, base.Type, base.Seq, base.ConnHandle) - } - - if base.Seq != -1 { - if base.Op != -1 || - base.Type != -1 || - base.ConnHandle != -1 { - return fmt.Errorf( - "Invalid listener base; non-wild seq with wild fields") - } - - bd.seqMap[base.Seq] = listener - } else { - bd.baseMap[base] = listener - } - - return nil -} - -func (bd *BleDispatcher) RemoveListener(base BleMsgBase) *BleListener { - bd.mutex.Lock() - defer bd.mutex.Unlock() - - base, bl := bd.findListener(base) - if bl != nil { - bl.Stop() - if base.Seq != -1 { - delete(bd.seqMap, base.Seq) - } else { - delete(bd.baseMap, base) - } - } - - return bl -} - -func decodeBleBase(data []byte) (BleMsgBase, error) { - base := BleMsgBase{} - if err := json.Unmarshal(data, &base); err != nil { - return base, err - } - - return base, nil -} - -func decodeBleMsg(data []byte) (BleMsgBase, BleMsg, error) { - base, err := decodeBleBase(data) - if err != nil { - return base, nil, err - } - - opTypePair := OpTypePair{base.Op, base.Type} - cb := msgCtorMap[opTypePair] - if cb == nil { - return base, nil, fmt.Errorf( - "Unrecognized op+type pair: %s, %s", - MsgOpToString(base.Op), MsgTypeToString(base.Type)) - } - - msg := cb() - if err := json.Unmarshal(data, msg); err != nil { - return base, nil, err - } - - return base, msg, nil -} - -func (bd *BleDispatcher) Dispatch(data []byte) { - base, msg, err := decodeBleMsg(data) - if err != nil { - log.Warnf("BLE dispatch error: %s", err.Error()) - return - } - - _, listener := bd.findListener(base) - if listener == nil { - log.Debugf( - "No BLE listener for op=%d type=%d seq=%d connHandle=%d", - base.Op, base.Type, base.Seq, base.ConnHandle) - return - } - - listener.BleChan <- msg -} - -func (bd *BleDispatcher) ErrorAll(err error) { - bd.mutex.Lock() - - listeners := make([]*BleListener, 0, len(bd.seqMap)+len(bd.baseMap)) - for _, v := range bd.seqMap { - listeners = append(listeners, v) - } - for _, v := range bd.baseMap { - listeners = append(listeners, v) - } - - bd.mutex.Unlock() - - for _, listener := range listeners { - listener.ErrChan <- err - } -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/config.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/config.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/config.go deleted file mode 100644 index dc00df5..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/config.go +++ /dev/null @@ -1,80 +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 nmp - -import () - -////////////////////////////////////////////////////////////////////////////// -// $read // -////////////////////////////////////////////////////////////////////////////// - -type ConfigReadReq struct { - NmpBase `structs:"-"` - Name string `codec:"name"` -} - -type ConfigReadRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - Val string `codec:"val"` -} - -func NewConfigReadReq() *ConfigReadReq { - r := &ConfigReadReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_CONFIG, NMP_ID_CONFIG_VAL) - return r -} - -func (r *ConfigReadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewConfigReadRsp() *ConfigReadRsp { - return &ConfigReadRsp{} -} - -func (r *ConfigReadRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $write // -////////////////////////////////////////////////////////////////////////////// - -type ConfigWriteReq struct { - NmpBase - Name string `codec:"name"` - Val string `codec:"val"` -} - -type ConfigWriteRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` -} - -func NewConfigWriteReq() *ConfigWriteReq { - r := &ConfigWriteReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_CONFIG, NMP_ID_CONFIG_VAL) - return r -} - -func (r *ConfigWriteReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewConfigWriteRsp() *ConfigWriteRsp { - return &ConfigWriteRsp{} -} - -func (r *ConfigWriteRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/crash.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/crash.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/crash.go deleted file mode 100644 index 5711d7f..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/crash.go +++ /dev/null @@ -1,46 +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 nmp - -import () - -type CrashReq struct { - NmpBase - CrashType string `codec:"t"` -} - -type CrashRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` -} - -func NewCrashReq() *CrashReq { - r := &CrashReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_CRASH, NMP_ID_CRASH_TRIGGER) - return r -} - -func (r *CrashReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewCrashRsp() *CrashRsp { - return &CrashRsp{} -} - -func (r *CrashRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/datetime.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/datetime.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/datetime.go deleted file mode 100644 index ce52d8b..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/datetime.go +++ /dev/null @@ -1,78 +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 nmp - -import () - -/////////////////////////////////////////////////////////////////////////////// -// $read // -/////////////////////////////////////////////////////////////////////////////// - -type DateTimeReadReq struct { - NmpBase -} - -type DateTimeReadRsp struct { - NmpBase - DateTime string `codec:"datetime"` - Rc int `codec:"rc" codec:",omitempty"` -} - -func NewDateTimeReadReq() *DateTimeReadReq { - r := &DateTimeReadReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_DEFAULT, NMP_ID_DEF_DATETIME_STR) - return r -} - -func (r *DateTimeReadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewDateTimeReadRsp() *DateTimeReadRsp { - return &DateTimeReadRsp{} -} - -func (r *DateTimeReadRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -/////////////////////////////////////////////////////////////////////////////// -// $write // -/////////////////////////////////////////////////////////////////////////////// - -type DateTimeWriteReq struct { - NmpBase - DateTime string `codec:"datetime"` -} - -type DateTimeWriteRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` -} - -func NewDateTimeWriteReq() *DateTimeWriteReq { - r := &DateTimeWriteReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_DEFAULT, NMP_ID_DEF_DATETIME_STR) - return r -} - -func (r *DateTimeWriteReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewDateTimeWriteRsp() *DateTimeWriteRsp { - return &DateTimeWriteRsp{} -} - -func (r *DateTimeWriteRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/decode.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/decode.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/decode.go deleted file mode 100644 index 748d13d..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/decode.go +++ /dev/null @@ -1,121 +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 nmp - -import ( - "fmt" - - "github.com/ugorji/go/codec" -) - -// These aliases just allow the ctor map to fit within 79 columns. -const op_wr = NMP_OP_WRITE_RSP -const op_rr = NMP_OP_READ_RSP -const gr_def = NMP_GROUP_DEFAULT -const gr_img = NMP_GROUP_IMAGE -const gr_sta = NMP_GROUP_STAT -const gr_cfg = NMP_GROUP_CONFIG -const gr_log = NMP_GROUP_LOG -const gr_cra = NMP_GROUP_CRASH -const gr_run = NMP_GROUP_RUN -const gr_fil = NMP_GROUP_FS - -// Op-Group-Id -type Ogi struct { - Op uint8 - Group uint16 - Id uint8 -} - -type rspCtor func() NmpRsp - -func echoRspCtor() NmpRsp { return NewEchoRsp() } -func taskStatRspCtor() NmpRsp { return NewTaskStatRsp() } -func mpStatRspCtor() NmpRsp { return NewMempoolStatRsp() } -func dateTimeReadRspCtor() NmpRsp { return NewDateTimeReadRsp() } -func dateTimeWriteRspCtor() NmpRsp { return NewDateTimeWriteRsp() } -func resetRspCtor() NmpRsp { return NewResetRsp() } -func imageUploadRspCtor() NmpRsp { return NewImageUploadRsp() } -func imageStateRspCtor() NmpRsp { return NewImageStateRsp() } -func coreListRspCtor() NmpRsp { return NewCoreListRsp() } -func coreLoadRspCtor() NmpRsp { return NewCoreLoadRsp() } -func coreEraseRspCtor() NmpRsp { return NewCoreEraseRsp() } -func statReadRspCtor() NmpRsp { return NewStatReadRsp() } -func statListRspCtor() NmpRsp { return NewStatListRsp() } -func logReadRspCtor() NmpRsp { return NewLogShowRsp() } -func logListRspCtor() NmpRsp { return NewLogListRsp() } -func logModuleListRspCtor() NmpRsp { return NewLogModuleListRsp() } -func logLevelListRspCtor() NmpRsp { return NewLogLevelListRsp() } -func logClearRspCtor() NmpRsp { return NewLogClearRsp() } -func crashRspCtor() NmpRsp { return NewCrashRsp() } -func runTestRspCtor() NmpRsp { return NewRunTestRsp() } -func runListRspCtor() NmpRsp { return NewRunListRsp() } -func fsDownloadRspCtor() NmpRsp { return NewFsDownloadRsp() } -func fsUploadRspCtor() NmpRsp { return NewFsUploadRsp() } -func configReadRspCtor() NmpRsp { return NewConfigReadRsp() } -func configWriteRspCtor() NmpRsp { return NewConfigWriteRsp() } - -var rspCtorMap = map[Ogi]rspCtor{ - {op_wr, gr_def, NMP_ID_DEF_ECHO}: echoRspCtor, - {op_rr, gr_def, NMP_ID_DEF_TASKSTAT}: taskStatRspCtor, - {op_rr, gr_def, NMP_ID_DEF_MPSTAT}: mpStatRspCtor, - {op_rr, gr_def, NMP_ID_DEF_DATETIME_STR}: dateTimeReadRspCtor, - {op_wr, gr_def, NMP_ID_DEF_DATETIME_STR}: dateTimeWriteRspCtor, - {op_wr, gr_def, NMP_ID_DEF_RESET}: resetRspCtor, - {op_wr, gr_img, NMP_ID_IMAGE_UPLOAD}: imageUploadRspCtor, - {op_rr, gr_img, NMP_ID_IMAGE_STATE}: imageStateRspCtor, - {op_wr, gr_img, NMP_ID_IMAGE_STATE}: imageStateRspCtor, - {op_rr, gr_img, NMP_ID_IMAGE_CORELIST}: coreListRspCtor, - {op_rr, gr_img, NMP_ID_IMAGE_CORELOAD}: coreLoadRspCtor, - {op_wr, gr_img, NMP_ID_IMAGE_CORELOAD}: coreEraseRspCtor, - {op_rr, gr_sta, NMP_ID_STAT_READ}: statReadRspCtor, - {op_rr, gr_sta, NMP_ID_STAT_LIST}: statListRspCtor, - {op_rr, gr_log, NMP_ID_LOG_SHOW}: logReadRspCtor, - {op_rr, gr_log, NMP_ID_LOG_LIST}: logListRspCtor, - {op_rr, gr_log, NMP_ID_LOG_MODULE_LIST}: logModuleListRspCtor, - {op_rr, gr_log, NMP_ID_LOG_LEVEL_LIST}: logLevelListRspCtor, - {op_wr, gr_log, NMP_ID_LOG_CLEAR}: logClearRspCtor, - {op_wr, gr_cra, NMP_ID_CRASH_TRIGGER}: crashRspCtor, - {op_wr, gr_run, NMP_ID_RUN_TEST}: runTestRspCtor, - {op_rr, gr_run, NMP_ID_RUN_LIST}: runListRspCtor, - {op_rr, gr_fil, NMP_ID_FS_FILE}: fsDownloadRspCtor, - {op_wr, gr_fil, NMP_ID_FS_FILE}: fsUploadRspCtor, - {op_rr, gr_cfg, NMP_ID_CONFIG_VAL}: configReadRspCtor, - {op_wr, gr_cfg, NMP_ID_CONFIG_VAL}: configWriteRspCtor, -} - -func DecodeRspBody(hdr *NmpHdr, body []byte) (NmpRsp, error) { - cb := rspCtorMap[Ogi{hdr.Op, hdr.Group, hdr.Id}] - if cb == nil { - return nil, fmt.Errorf("Unrecognized NMP op+group+id: %d, %d, %d", - hdr.Op, hdr.Group, hdr.Id) - } - - r := cb() - cborCodec := new(codec.CborHandle) - dec := codec.NewDecoderBytes(body, cborCodec) - - if err := dec.Decode(r); err != nil { - return nil, fmt.Errorf("Invalid response: %s", err.Error()) - } - - r.SetHdr(hdr) - return r, nil -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/defs.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/defs.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/defs.go deleted file mode 100644 index d10ffe5..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/defs.go +++ /dev/null @@ -1,88 +0,0 @@ -package nmp - -const ( - NMP_OP_READ = 0 - NMP_OP_READ_RSP = 1 - NMP_OP_WRITE = 2 - NMP_OP_WRITE_RSP = 3 -) - -const ( - NMP_ERR_OK = 0 - NMP_ERR_EUNKNOWN = 1 - NMP_ERR_ENOMEM = 2 - NMP_ERR_EINVAL = 3 - NMP_ERR_ETIMEOUT = 4 - NMP_ERR_ENOENT = 5 -) - -// First 64 groups are reserved for system level newtmgr commands. -// Per-user commands are then defined after group 64. - -const ( - NMP_GROUP_DEFAULT = 0 - NMP_GROUP_IMAGE = 1 - NMP_GROUP_STAT = 2 - NMP_GROUP_CONFIG = 3 - NMP_GROUP_LOG = 4 - NMP_GROUP_CRASH = 5 - NMP_GROUP_SPLIT = 6 - NMP_GROUP_RUN = 7 - NMP_GROUP_FS = 8 - NMP_GROUP_PERUSER = 64 -) - -// Default group (0). -const ( - NMP_ID_DEF_ECHO = 0 - NMP_ID_DEF_CONS_ECHO_CTRL = 1 - NMP_ID_DEF_TASKSTAT = 2 - NMP_ID_DEF_MPSTAT = 3 - NMP_ID_DEF_DATETIME_STR = 4 - NMP_ID_DEF_RESET = 5 -) - -// Image group (1). -const ( - NMP_ID_IMAGE_STATE = 0 - NMP_ID_IMAGE_UPLOAD = 1 - NMP_ID_IMAGE_CORELIST = 3 - NMP_ID_IMAGE_CORELOAD = 4 -) - -// Stat group (2). -const ( - NMP_ID_STAT_READ = 0 - NMP_ID_STAT_LIST = 1 -) - -// Config group (3). -const ( - NMP_ID_CONFIG_VAL = 0 -) - -// Log group (4). -const ( - NMP_ID_LOG_SHOW = 0 - NMP_ID_LOG_CLEAR = 1 - NMP_ID_LOG_APPEND = 2 - NMP_ID_LOG_MODULE_LIST = 3 - NMP_ID_LOG_LEVEL_LIST = 4 - NMP_ID_LOG_LIST = 5 -) - -// Crash group (5). -const ( - NMP_ID_CRASH_TRIGGER = 0 -) - -// Run group (7). -const ( - NMP_ID_RUN_TEST = 0 - NMP_ID_RUN_LIST = 1 -) - -// File system group (8). -const ( - NMP_ID_FS_FILE = 0 -) http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/dispatch.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/dispatch.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/dispatch.go deleted file mode 100644 index 7b1ad11..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/dispatch.go +++ /dev/null @@ -1,167 +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 nmp - -import ( - "encoding/hex" - "fmt" - "sync" - "time" - - log "github.com/Sirupsen/logrus" -) - -type NmpListener struct { - RspChan chan NmpRsp - ErrChan chan error - tmoChan chan time.Time - timer *time.Timer -} - -func NewNmpListener() *NmpListener { - return &NmpListener{ - RspChan: make(chan NmpRsp, 1), - ErrChan: make(chan error, 1), - } -} - -func (nl *NmpListener) AfterTimeout(tmo time.Duration) <-chan time.Time { - fn := func() { - nl.tmoChan <- time.Now() - } - nl.timer = time.AfterFunc(tmo, fn) - return nl.tmoChan -} - -func (nl *NmpListener) Stop() { - if nl.timer != nil { - nl.timer.Stop() - } -} - -type NmpDispatcher struct { - seqListenerMap map[uint8]*NmpListener - reassembler *Reassembler - mutex sync.Mutex -} - -func NewNmpDispatcher() *NmpDispatcher { - return &NmpDispatcher{ - seqListenerMap: map[uint8]*NmpListener{}, - reassembler: NewReassembler(), - } -} - -func (nd *NmpDispatcher) AddListener(seq uint8, nl *NmpListener) error { - nd.mutex.Lock() - defer nd.mutex.Unlock() - - if _, ok := nd.seqListenerMap[seq]; ok { - return fmt.Errorf("Duplicate NMP listener; seq=%d", seq) - } - - nd.seqListenerMap[seq] = nl - return nil -} - -func (nd *NmpDispatcher) removeListenerNoLock(seq uint8) *NmpListener { - nl := nd.seqListenerMap[seq] - if nl != nil { - nl.Stop() - delete(nd.seqListenerMap, seq) - } - return nl -} - -func (nd *NmpDispatcher) RemoveListener(seq uint8) *NmpListener { - nd.mutex.Lock() - defer nd.mutex.Unlock() - - return nd.removeListenerNoLock(seq) -} - -func (nd *NmpDispatcher) FakeRxError(seq uint8, err error) error { - nd.mutex.Lock() - defer nd.mutex.Unlock() - - nl := nd.seqListenerMap[seq] - if nl == nil { - return fmt.Errorf("No NMP listener for seq %d", seq) - } - - nl.ErrChan <- err - - return nil -} - -func decodeRsp(pkt []byte) (NmpRsp, error) { - hdr, err := DecodeNmpHdr(pkt) - if err != nil { - return nil, err - } - - // Ignore incoming non-responses. This is necessary for devices that echo - // received requests over serial. - if hdr.Op != NMP_OP_READ_RSP && hdr.Op != NMP_OP_WRITE_RSP { - return nil, nil - } - - body := pkt[NMP_HDR_SIZE:] - return DecodeRspBody(hdr, body) -} - -// Returns true if the response was dispatched. -func (nd *NmpDispatcher) DispatchRsp(r NmpRsp) bool { - log.Debugf("Received nmp rsp: %+v", r) - - nl := nd.seqListenerMap[r.Hdr().Seq] - if nl == nil { - return false - } - - nl.RspChan <- r - - return true -} - -// Returns true if the response was dispatched. -func (nd *NmpDispatcher) Dispatch(data []byte) bool { - nd.mutex.Lock() - defer nd.mutex.Unlock() - - pkt := nd.reassembler.RxFrag(data) - if pkt == nil { - return false - } - - rsp, err := decodeRsp(pkt) - if err != nil { - log.Printf("Failure decoding NMP rsp: %s\npacket=\n%s", err.Error(), - hex.Dump(data)) - return false - } - - if rsp == nil { - // Packet wasn't a response. - return false - } - - return nd.DispatchRsp(rsp) -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/echo.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/echo.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/echo.go deleted file mode 100644 index e8e334b..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/echo.go +++ /dev/null @@ -1,47 +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 nmp - -import () - -type EchoReq struct { - NmpBase - Payload string `codec:"d"` -} - -type EchoRsp struct { - NmpBase - Payload string `codec:"r"` - Rc int `codec:"rc" codec:",omitempty"` -} - -func NewEchoReq() *EchoReq { - r := &EchoReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_DEFAULT, NMP_ID_DEF_ECHO) - return r -} - -func (r *EchoReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewEchoRsp() *EchoRsp { - return &EchoRsp{} -} - -func (r *EchoRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/frag.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/frag.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/frag.go deleted file mode 100644 index 31ee392..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/frag.go +++ /dev/null @@ -1,61 +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 nmp - -import ( - log "github.com/Sirupsen/logrus" -) - -type Reassembler struct { - cur []byte -} - -func NewReassembler() *Reassembler { - return &Reassembler{} -} - -func (r *Reassembler) RxFrag(frag []byte) []byte { - r.cur = append(r.cur, frag...) - - hdr, err := DecodeNmpHdr(r.cur) - if err != nil { - // Incomplete header. - return nil - } - - actualLen := len(r.cur) - NMP_HDR_SIZE - if actualLen > int(hdr.Len) { - // More data than expected. Discard packet. - log.Debugf("received invalid nmp packet; hdr.len=%d actualLen=%d", - hdr.Len, actualLen) - r.cur = nil - return nil - } - - if actualLen < int(hdr.Len) { - // More fragments to come. - return nil - } - - // Packet complete - pkt := r.cur - r.cur = nil - return pkt -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/fs.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/fs.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/fs.go deleted file mode 100644 index 91083de..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/fs.go +++ /dev/null @@ -1,86 +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 nmp - -import () - -////////////////////////////////////////////////////////////////////////////// -// $download // -////////////////////////////////////////////////////////////////////////////// - -type FsDownloadReq struct { - NmpBase - Name string `codec:"name"` - Off uint32 `codec:"off"` -} - -type FsDownloadRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - Off uint32 `codec:"off"` - Len uint32 `codec:"len"` - Data []byte `codec:"data"` -} - -func NewFsDownloadReq() *FsDownloadReq { - r := &FsDownloadReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_FS, NMP_ID_FS_FILE) - return r -} - -func (r *FsDownloadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewFsDownloadRsp() *FsDownloadRsp { - return &FsDownloadRsp{} -} - -func (r *FsDownloadRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $upload // -////////////////////////////////////////////////////////////////////////////// - -type FsUploadReq struct { - NmpBase - Name string `codec:"name" codec:",omitempty"` - Len uint32 `codec:"len" codec:",omitempty"` - Off uint32 `codec:"off"` - Data []byte `codec:"data"` -} - -type FsUploadRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - Off uint32 `codec:"off"` -} - -func NewFsUploadReq() *FsUploadReq { - r := &FsUploadReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_FS, NMP_ID_FS_FILE) - return r -} - -func (r *FsUploadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewFsUploadRsp() *FsUploadRsp { - return &FsUploadRsp{} -} - -func (r *FsUploadRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/image.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/image.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/image.go deleted file mode 100644 index ac2d9a0..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/image.go +++ /dev/null @@ -1,215 +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 nmp - -import () - -////////////////////////////////////////////////////////////////////////////// -// $upload // -////////////////////////////////////////////////////////////////////////////// - -type ImageUploadReq struct { - NmpBase - Off uint32 `codec:"off"` - Len uint32 `codec:"len" codec:",omitempty"` - Data []byte `codec:"data"` -} - -type ImageUploadRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - Off uint32 `codec:"off"` -} - -func NewImageUploadReq() *ImageUploadReq { - r := &ImageUploadReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_IMAGE, NMP_ID_IMAGE_UPLOAD) - return r -} - -func (r *ImageUploadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewImageUploadRsp() *ImageUploadRsp { - return &ImageUploadRsp{} -} - -func (r *ImageUploadRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $state // -////////////////////////////////////////////////////////////////////////////// - -type SplitStatus int - -const ( - NOT_APPLICABLE SplitStatus = iota - NOT_MATCHING - MATCHING -) - -/* returns the enum as a string */ -func (sm SplitStatus) String() string { - names := map[SplitStatus]string{ - NOT_APPLICABLE: "N/A", - NOT_MATCHING: "non-matching", - MATCHING: "matching", - } - - str := names[sm] - if str == "" { - return "Unknown!" - } - return str -} - -type ImageStateEntry struct { - NmpBase - Slot int `codec:"slot"` - Version string `codec:"version"` - Hash []byte `codec:"hash"` - Bootable bool `codec:"bootable"` - Pending bool `codec:"pending"` - Confirmed bool `codec:"confirmed"` - Active bool `codec:"active"` - Permanent bool `codec:"permanent"` -} - -type ImageStateReadReq struct { - NmpBase -} - -type ImageStateWriteReq struct { - NmpBase - Hash []byte `codec:"hash"` - Confirm bool `codec:"confirm"` -} - -type ImageStateRsp struct { - NmpBase - Rc int `codec:"rc"` - Images []ImageStateEntry `codec:"images"` - SplitStatus SplitStatus `codec:"splitStatus"` -} - -func NewImageStateReadReq() *ImageStateReadReq { - r := &ImageStateReadReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_IMAGE, NMP_ID_IMAGE_STATE) - return r -} - -func (r *ImageStateReadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewImageStateWriteReq() *ImageStateWriteReq { - r := &ImageStateWriteReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_IMAGE, NMP_ID_IMAGE_STATE) - return r -} - -func (r *ImageStateWriteReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewImageStateRsp() *ImageStateRsp { - return &ImageStateRsp{} -} - -func (r *ImageStateRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $corelist // -////////////////////////////////////////////////////////////////////////////// - -type CoreListReq struct { - NmpBase -} - -type CoreListRsp struct { - NmpBase - Rc int `codec:"rc"` -} - -func NewCoreListReq() *CoreListReq { - r := &CoreListReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_IMAGE, NMP_ID_IMAGE_CORELIST) - return r -} - -func (r *CoreListReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewCoreListRsp() *CoreListRsp { - return &CoreListRsp{} -} - -func (r *CoreListRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $coreload // -////////////////////////////////////////////////////////////////////////////// - -type CoreLoadReq struct { - NmpBase - Off uint32 `codec:"off"` -} - -type CoreLoadRsp struct { - NmpBase - Rc int `codec:"rc"` - Off uint32 `codec:"off"` - Data []byte `codec:"data"` -} - -func NewCoreLoadReq() *CoreLoadReq { - r := &CoreLoadReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_IMAGE, NMP_ID_IMAGE_CORELOAD) - return r -} - -func (r *CoreLoadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewCoreLoadRsp() *CoreLoadRsp { - return &CoreLoadRsp{} -} - -func (r *CoreLoadRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $coreerase // -////////////////////////////////////////////////////////////////////////////// - -type CoreEraseReq struct { - NmpBase -} - -type CoreEraseRsp struct { - NmpBase - Rc int `codec:"rc"` -} - -func NewCoreEraseReq() *CoreEraseReq { - r := &CoreEraseReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_IMAGE, NMP_ID_IMAGE_CORELOAD) - return r -} - -func (r *CoreEraseReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewCoreEraseRsp() *CoreEraseRsp { - return &CoreEraseRsp{} -} - -func (r *CoreEraseRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/log.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/log.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/log.go deleted file mode 100644 index e03376f..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/log.go +++ /dev/null @@ -1,260 +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 nmp - -import () - -////////////////////////////////////////////////////////////////////////////// -// $defs // -////////////////////////////////////////////////////////////////////////////// - -const ( - LEVEL_DEBUG int = 0 - LEVEL_INFO = 1 - LEVEL_WARN = 2 - LEVEL_ERROR = 3 - LEVEL_CRITICAL = 4 - /* Upto 7 custom loglevels */ - LEVEL_MAX = 255 -) - -const ( - STREAM_LOG int = 0 - MEMORY_LOG = 1 - STORAGE_LOG = 2 -) - -const ( - MODULE_DEFAULT int = 0 - MODULE_OS = 1 - MODULE_NEWTMGR = 2 - MODULE_NIMBLE_CTLR = 3 - MODULE_NIMBLE_HOST = 4 - MODULE_NFFS = 5 - MODULE_REBOOT = 6 - MODULE_TEST = 8 - MODULE_MAX = 255 -) - -var LogModuleNameMap = map[int]string{ - MODULE_DEFAULT: "DEFAULT", - MODULE_OS: "OS", - MODULE_NEWTMGR: "NEWTMGR", - MODULE_NIMBLE_CTLR: "NIMBLE_CTLR", - MODULE_NIMBLE_HOST: "NIMBLE_HOST", - MODULE_NFFS: "NFFS", - MODULE_REBOOT: "REBOOT", - MODULE_TEST: "TEST", -} - -var LogLevelNameMap = map[int]string{ - LEVEL_DEBUG: "DEBUG", - LEVEL_INFO: "INFO", - LEVEL_WARN: "WARN", - LEVEL_ERROR: "ERROR", - LEVEL_CRITICAL: "CRITICAL", -} - -var LogTypeNameMap = map[int]string{ - STREAM_LOG: "STREAM", - MEMORY_LOG: "MEMORY", - STORAGE_LOG: "STORAGE", -} - -func LogModuleToString(lm int) string { - name := LogModuleNameMap[lm] - if name == "" { - name = "CUSTOM" - } - return name -} - -func LogLevelToString(lm int) string { - name := LogLevelNameMap[lm] - if name == "" { - name = "CUSTOM" - } - return name -} - -func LogTypeToString(lm int) string { - name := LogTypeNameMap[lm] - if name == "" { - name = "UNDEFINED" - } - return name -} - -////////////////////////////////////////////////////////////////////////////// -// $show // -////////////////////////////////////////////////////////////////////////////// - -type LogShowReq struct { - NmpBase - Name string `codec:"log_name"` - Timestamp int64 `codec:"ts"` - Index uint32 `codec:"index"` -} - -type LogEntry struct { - Index uint32 `codec:"index"` - Timestamp int64 `codec:"ts"` - Module uint8 `codec:"module"` - Level uint8 `codec:"level"` - Msg string `codec:"msg"` -} - -type LogShowLog struct { - Name string `codec:"name"` - Type int `codec:"type"` - Entries []LogEntry `codec:"entries"` -} - -type LogShowRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - NextIndex uint32 `codec:"next_index"` - Logs []LogShowLog `codec:"logs"` -} - -func NewLogShowReq() *LogShowReq { - r := &LogShowReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_LOG, NMP_ID_LOG_SHOW) - return r -} - -func (r *LogShowReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewLogShowRsp() *LogShowRsp { - return &LogShowRsp{} -} - -func (r *LogShowRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $list // -////////////////////////////////////////////////////////////////////////////// - -type LogListReq struct { - NmpBase -} - -type LogListRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - List []string `codec:"log_list"` -} - -func NewLogListReq() *LogListReq { - r := &LogListReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_LOG, NMP_ID_LOG_LIST) - return r -} - -func (r *LogListReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewLogListRsp() *LogListRsp { - return &LogListRsp{} -} - -func (r *LogListRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $module list // -////////////////////////////////////////////////////////////////////////////// - -type LogModuleListReq struct { - NmpBase -} - -type LogModuleListRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - Map map[string]int `codec:"module_map"` -} - -func NewLogModuleListReq() *LogModuleListReq { - r := &LogModuleListReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_LOG, NMP_ID_LOG_MODULE_LIST) - return r -} - -func (r *LogModuleListReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewLogModuleListRsp() *LogModuleListRsp { - return &LogModuleListRsp{} -} - -func (r *LogModuleListRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $level list // -////////////////////////////////////////////////////////////////////////////// - -type LogLevelListReq struct { - NmpBase -} - -type LogLevelListRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - Map map[string]int `codec:"module_map"` -} - -func NewLogLevelListReq() *LogLevelListReq { - r := &LogLevelListReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_LOG, NMP_ID_LOG_LEVEL_LIST) - return r -} - -func (r *LogLevelListReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewLogLevelListRsp() *LogLevelListRsp { - return &LogLevelListRsp{} -} - -func (r *LogLevelListRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $clear // -////////////////////////////////////////////////////////////////////////////// - -type LogClearReq struct { - NmpBase -} - -type LogClearRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` -} - -func NewLogClearReq() *LogClearReq { - r := &LogClearReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_LOG, NMP_ID_LOG_CLEAR) - return r -} - -func (r *LogClearReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewLogClearRsp() *LogClearRsp { - return &LogClearRsp{} -} - -func (r *LogClearRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/mpstat.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/mpstat.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/mpstat.go deleted file mode 100644 index f2313e9..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/mpstat.go +++ /dev/null @@ -1,46 +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 nmp - -import () - -type MempoolStatReq struct { - NmpBase -} - -type MempoolStatRsp struct { - NmpBase - Rc int `codec:"rc"` - Mpools map[string]map[string]int `codec:"mpools"` -} - -func NewMempoolStatReq() *MempoolStatReq { - r := &MempoolStatReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_DEFAULT, NMP_ID_DEF_MPSTAT) - return r -} - -func (r *MempoolStatReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewMempoolStatRsp() *MempoolStatRsp { - return &MempoolStatRsp{} -} - -func (r *MempoolStatRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/nmp.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/nmp.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/nmp.go deleted file mode 100644 index b868e25..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/nmp.go +++ /dev/null @@ -1,165 +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 nmp - -import ( - "encoding/binary" - "encoding/hex" - "fmt" - - log "github.com/Sirupsen/logrus" - "github.com/ugorji/go/codec" - - "mynewt.apache.org/newt/nmxact/nmxutil" - "mynewt.apache.org/newt/util" -) - -const NMP_HDR_SIZE = 8 - -type NmpHdr struct { - Op uint8 /* 3 bits of opcode */ - Flags uint8 - Len uint16 - Group uint16 - Seq uint8 - Id uint8 -} - -type NmpMsg struct { - Hdr NmpHdr - Body interface{} -} - -// Combine req + rsp. -type NmpReq interface { - Hdr() *NmpHdr - SetHdr(hdr *NmpHdr) - - Msg() *NmpMsg -} - -type NmpRsp interface { - Hdr() *NmpHdr - SetHdr(msg *NmpHdr) - - Msg() *NmpMsg -} - -type NmpBase struct { - hdr NmpHdr `codec:"-"` -} - -func (b *NmpBase) Hdr() *NmpHdr { - return &b.hdr -} - -func (b *NmpBase) SetHdr(h *NmpHdr) { - b.hdr = *h -} - -func MsgFromReq(r NmpReq) *NmpMsg { - return &NmpMsg{ - *r.Hdr(), - r, - } -} - -func NewNmpMsg() *NmpMsg { - return &NmpMsg{} -} - -func DecodeNmpHdr(data []byte) (*NmpHdr, error) { - if len(data) < NMP_HDR_SIZE { - return nil, util.NewNewtError(fmt.Sprintf( - "Newtmgr request buffer too small %d bytes", len(data))) - } - - hdr := &NmpHdr{} - - hdr.Op = uint8(data[0]) - hdr.Flags = uint8(data[1]) - hdr.Len = binary.BigEndian.Uint16(data[2:4]) - hdr.Group = binary.BigEndian.Uint16(data[4:6]) - hdr.Seq = uint8(data[6]) - hdr.Id = uint8(data[7]) - - return hdr, nil -} - -func (hdr *NmpHdr) Bytes() []byte { - buf := make([]byte, 0, NMP_HDR_SIZE) - - buf = append(buf, byte(hdr.Op)) - buf = append(buf, byte(hdr.Flags)) - - u16b := make([]byte, 2) - binary.BigEndian.PutUint16(u16b, hdr.Len) - buf = append(buf, u16b...) - - binary.BigEndian.PutUint16(u16b, hdr.Group) - buf = append(buf, u16b...) - - buf = append(buf, byte(hdr.Seq)) - buf = append(buf, byte(hdr.Id)) - - return buf -} - -func BodyBytes(body interface{}) ([]byte, error) { - data := make([]byte, 0) - - enc := codec.NewEncoderBytes(&data, new(codec.CborHandle)) - if err := enc.Encode(body); err != nil { - return nil, fmt.Errorf("Failed to encode message %s", err.Error()) - } - - log.Debugf("Encoded %+v to:\n%s", body, hex.Dump(data)) - - return data, nil -} - -func EncodeNmpPlain(nmr *NmpMsg) ([]byte, error) { - bb, err := BodyBytes(nmr.Body) - if err != nil { - return nil, err - } - - nmr.Hdr.Len = uint16(len(bb)) - - hb := nmr.Hdr.Bytes() - data := append(hb, bb...) - - log.Debugf("Encoded:\n%s", hex.Dump(data)) - - return data, nil -} - -func fillNmpReq(req NmpReq, op uint8, group uint16, id uint8) { - hdr := NmpHdr{ - Op: op, - Flags: 0, - Len: 0, - Group: group, - Seq: nmxutil.NextNmpSeq(), - Id: id, - } - - req.SetHdr(&hdr) -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/reset.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/reset.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/reset.go deleted file mode 100644 index 9b8cbad..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/reset.go +++ /dev/null @@ -1,44 +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 nmp - -import () - -type ResetReq struct { - NmpBase -} - -type ResetRsp struct { - NmpBase -} - -func NewResetReq() *ResetReq { - r := &ResetReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_DEFAULT, NMP_ID_DEF_RESET) - return r -} - -func (r *ResetReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewResetRsp() *ResetRsp { - return &ResetRsp{} -} - -func (r *ResetRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/run.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/run.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/run.go deleted file mode 100644 index 3672b0f..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/run.go +++ /dev/null @@ -1,79 +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 nmp - -import () - -////////////////////////////////////////////////////////////////////////////// -// $test // -////////////////////////////////////////////////////////////////////////////// - -type RunTestReq struct { - NmpBase - Testname string `codec:"testname"` - Token string `codec:"token"` -} - -type RunTestRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` -} - -func NewRunTestReq() *RunTestReq { - r := &RunTestReq{} - fillNmpReq(r, NMP_OP_WRITE, NMP_GROUP_RUN, NMP_ID_RUN_TEST) - return r -} - -func (r *RunTestReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewRunTestRsp() *RunTestRsp { - return &RunTestRsp{} -} - -func (r *RunTestRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $list // -////////////////////////////////////////////////////////////////////////////// - -type RunListReq struct { - NmpBase -} - -type RunListRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - List []string `codec:"run_list"` -} - -func NewRunListReq() *RunListReq { - r := &RunListReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_RUN, NMP_ID_RUN_LIST) - return r -} - -func (r *RunListReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewRunListRsp() *RunListRsp { - return &RunListRsp{} -} - -func (r *RunListRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/stat.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/stat.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/stat.go deleted file mode 100644 index 2839c02..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/stat.go +++ /dev/null @@ -1,81 +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 nmp - -import () - -////////////////////////////////////////////////////////////////////////////// -// $read // -////////////////////////////////////////////////////////////////////////////// - -type StatReadReq struct { - NmpBase - Name string `codec:"name"` -} - -type StatReadRsp struct { - NmpBase - Rc int `codec:"rc"` - Name string `codec:"name"` - Group string `codec:"group"` - Fields map[string]interface{} `codec:"fields"` -} - -func NewStatReadReq() *StatReadReq { - r := &StatReadReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_STAT, NMP_ID_STAT_READ) - return r -} - -func (r *StatReadReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewStatReadRsp() *StatReadRsp { - return &StatReadRsp{} -} - -func (r *StatReadRsp) Msg() *NmpMsg { return MsgFromReq(r) } - -////////////////////////////////////////////////////////////////////////////// -// $list // -////////////////////////////////////////////////////////////////////////////// - -type StatListReq struct { - NmpBase -} - -type StatListRsp struct { - NmpBase - Rc int `codec:"rc"` - List []string `codec:"stat_list"` -} - -func NewStatListReq() *StatListReq { - r := &StatListReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_STAT, NMP_ID_STAT_LIST) - return r -} - -func (r *StatListReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewStatListRsp() *StatListRsp { - return &StatListRsp{} -} - -func (r *StatListRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/taskstat.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/taskstat.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/taskstat.go deleted file mode 100644 index 6dda49d..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmp/taskstat.go +++ /dev/null @@ -1,46 +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 nmp - -import () - -type TaskStatReq struct { - NmpBase -} - -type TaskStatRsp struct { - NmpBase - Rc int `codec:"rc" codec:",omitempty"` - Tasks map[string]map[string]int `codec:"tasks"` -} - -func NewTaskStatReq() *TaskStatReq { - r := &TaskStatReq{} - fillNmpReq(r, NMP_OP_READ, NMP_GROUP_DEFAULT, NMP_ID_DEF_TASKSTAT) - return r -} - -func (r *TaskStatReq) Msg() *NmpMsg { return MsgFromReq(r) } - -func NewTaskStatRsp() *TaskStatRsp { - return &TaskStatRsp{} -} - -func (r *TaskStatRsp) Msg() *NmpMsg { return MsgFromReq(r) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/packet.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/packet.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/packet.go deleted file mode 100644 index e25bc2e..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/packet.go +++ /dev/null @@ -1,40 +0,0 @@ -package nmserial - -import ( - "bytes" -) - -type Packet struct { - expectedLen uint16 - buffer *bytes.Buffer -} - -func NewPacket(expectedLen uint16) (*Packet, error) { - pkt := &Packet{ - expectedLen: expectedLen, - buffer: bytes.NewBuffer([]byte{}), - } - - return pkt, nil -} - -func (pkt *Packet) AddBytes(bytes []byte) bool { - pkt.buffer.Write(bytes) - if pkt.buffer.Len() >= int(pkt.expectedLen) { - return true - } else { - return false - } -} - -func (pkt *Packet) GetBytes() []byte { - return pkt.buffer.Bytes() -} - -func (pkt *Packet) TrimEnd(count int) { - - if pkt.buffer.Len() < count { - count = pkt.buffer.Len() - } - pkt.buffer.Truncate(pkt.buffer.Len() - count) -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_plain_sesn.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_plain_sesn.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_plain_sesn.go deleted file mode 100644 index a407a98..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_plain_sesn.go +++ /dev/null @@ -1,137 +0,0 @@ -package nmserial - -import ( - "fmt" - "sync" - - "mynewt.apache.org/newt/nmxact/nmp" - "mynewt.apache.org/newt/nmxact/nmxutil" - "mynewt.apache.org/newt/nmxact/sesn" -) - -type SerialPlainSesn struct { - sx *SerialXport - nd *nmp.NmpDispatcher - isOpen bool - - // This mutex ensures: - // * each response get matched up with its corresponding request. - // * accesses to isOpen are protected. - m sync.Mutex -} - -func NewSerialPlainSesn(sx *SerialXport) *SerialPlainSesn { - return &SerialPlainSesn{ - sx: sx, - nd: nmp.NewNmpDispatcher(), - } -} - -func (sps *SerialPlainSesn) Open() error { - sps.m.Lock() - defer sps.m.Unlock() - - if sps.isOpen { - return nmxutil.NewSesnAlreadyOpenError( - "Attempt to open an already-open serial session") - } - - sps.isOpen = true - return nil -} - -func (sps *SerialPlainSesn) Close() error { - sps.m.Lock() - defer sps.m.Unlock() - - if !sps.isOpen { - return nmxutil.NewSesnClosedError( - "Attempt to close an unopened serial session") - } - sps.isOpen = false - return nil -} - -func (sps *SerialPlainSesn) IsOpen() bool { - sps.m.Lock() - defer sps.m.Unlock() - - return sps.isOpen -} - -func (sps *SerialPlainSesn) MtuIn() int { - return 1024 -} - -func (sps *SerialPlainSesn) MtuOut() int { - // Mynewt commands have a default chunk buffer size of 512. Account for - // base64 encoding. - return 512 * 3 / 4 -} - -func (sps *SerialPlainSesn) AbortRx(seq uint8) error { - return sps.nd.FakeRxError(seq, fmt.Errorf("Rx aborted")) -} - -func (sps *SerialPlainSesn) addNmpListener(seq uint8) ( - *nmp.NmpListener, error) { - - nl := nmp.NewNmpListener() - if err := sps.nd.AddListener(seq, nl); err != nil { - return nil, err - } - - return nl, nil -} - -func (sps *SerialPlainSesn) removeNmpListener(seq uint8) { - sps.nd.RemoveListener(seq) -} - -func (sps *SerialPlainSesn) EncodeNmpMsg(m *nmp.NmpMsg) ([]byte, error) { - return nmp.EncodeNmpPlain(m) -} - -func (sps *SerialPlainSesn) TxNmpOnce(m *nmp.NmpMsg, opt sesn.TxOptions) ( - nmp.NmpRsp, error) { - - sps.m.Lock() - defer sps.m.Unlock() - - if !sps.isOpen { - return nil, nmxutil.NewSesnClosedError( - "Attempt to transmit over closed serial session") - } - - nl, err := sps.addNmpListener(m.Hdr.Seq) - if err != nil { - return nil, err - } - defer sps.removeNmpListener(m.Hdr.Seq) - - reqb, err := sps.EncodeNmpMsg(m) - if err != nil { - return nil, err - } - - if err := sps.sx.Tx(reqb); err != nil { - return nil, err - } - - for { - rspb, err := sps.sx.Rx() - if err != nil { - return nil, err - } - - // Now wait for newtmgr response. - if sps.nd.Dispatch(rspb) { - select { - case err := <-nl.ErrChan: - return nil, err - case rsp := <-nl.RspChan: - return rsp, nil - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_xport.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_xport.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_xport.go deleted file mode 100644 index 6f5aa7c..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmserial/serial_xport.go +++ /dev/null @@ -1,217 +0,0 @@ -package nmserial - -import ( - "bufio" - "encoding/base64" - "encoding/binary" - "encoding/hex" - "fmt" - "time" - - log "github.com/Sirupsen/logrus" - "github.com/joaojeronimo/go-crc16" - "github.com/tarm/serial" - - "mynewt.apache.org/newt/nmxact/nmxutil" - "mynewt.apache.org/newt/nmxact/sesn" - "mynewt.apache.org/newt/util" -) - -type XportCfg struct { - DevPath string - Baud int - ReadTimeout time.Duration -} - -func NewXportCfg() *XportCfg { - return &XportCfg{ - ReadTimeout: 10 * time.Second, - } -} - -type SerialXport struct { - cfg *XportCfg - port *serial.Port - scanner *bufio.Scanner - - pkt *Packet -} - -func NewSerialXport(cfg *XportCfg) *SerialXport { - return &SerialXport{ - cfg: cfg, - } -} - -func (sx *SerialXport) BuildSesn(cfg sesn.SesnCfg) (sesn.Sesn, error) { - switch cfg.MgmtProto { - case sesn.MGMT_PROTO_NMP: - return NewSerialPlainSesn(sx), nil - case sesn.MGMT_PROTO_OMP: - return nil, fmt.Errorf("OMP over serial currently unsupported") - default: - return nil, fmt.Errorf( - "Invalid management protocol: %d; expected NMP or OMP", - cfg.MgmtProto) - } -} - -func (sx *SerialXport) Start() error { - c := &serial.Config{ - Name: sx.cfg.DevPath, - Baud: sx.cfg.Baud, - ReadTimeout: sx.cfg.ReadTimeout, - } - - var err error - sx.port, err = serial.OpenPort(c) - if err != nil { - return err - } - - // Most of the reading will be done line by line, use the - // bufio.Scanner to do this - sx.scanner = bufio.NewScanner(sx.port) - - return nil -} - -func (sx *SerialXport) Stop() error { - return sx.port.Close() -} - -func (sx *SerialXport) txRaw(bytes []byte) error { - log.Debugf("Tx serial\n%s", hex.Dump(bytes)) - - _, err := sx.port.Write(bytes) - if err != nil { - return err - } - - return nil -} - -func (sx *SerialXport) Tx(bytes []byte) error { - log.Debugf("Base64 encoding request:\n%s", hex.Dump(bytes)) - - pktData := make([]byte, 2) - - crc := crc16.Crc16(bytes) - binary.BigEndian.PutUint16(pktData, crc) - bytes = append(bytes, pktData...) - - dLen := uint16(len(bytes)) - binary.BigEndian.PutUint16(pktData, dLen) - pktData = append(pktData, bytes...) - - base64Data := make([]byte, base64.StdEncoding.EncodedLen(len(pktData))) - - base64.StdEncoding.Encode(base64Data, pktData) - - written := 0 - totlen := len(base64Data) - - for written < totlen { - /* write the packet stat designators. They are - * different whether we are starting a new packet or continuing one */ - if written == 0 { - sx.txRaw([]byte{6, 9}) - } else { - /* slower platforms take some time to process each segment - * and have very small receive buffers. Give them a bit of - * time here */ - time.Sleep(20 * time.Millisecond) - sx.txRaw([]byte{4, 20}) - } - - /* ensure that the total frame fits into 128 bytes. - * base 64 is 3 ascii to 4 base 64 byte encoding. so - * the number below should be a multiple of 4. Also, - * we need to save room for the header (2 byte) and - * carriage return (and possibly LF 2 bytes), */ - - /* all totaled, 124 bytes should work */ - writeLen := util.Min(124, totlen-written) - - writeBytes := base64Data[written : written+writeLen] - sx.txRaw(writeBytes) - sx.txRaw([]byte{'\n'}) - - written += writeLen - } - - return nil -} - -// Blocking receive. -func (sx *SerialXport) Rx() ([]byte, error) { - for sx.scanner.Scan() { - line := []byte(sx.scanner.Text()) - - for { - if len(line) > 1 && line[0] == '\r' { - line = line[1:] - } else { - break - } - } - log.Debugf("Rx serial:\n%s", hex.Dump(line)) - if len(line) < 2 || ((line[0] != 4 || line[1] != 20) && - (line[0] != 6 || line[1] != 9)) { - continue - } - - base64Data := string(line[2:]) - - data, err := base64.StdEncoding.DecodeString(base64Data) - if err != nil { - return nil, fmt.Errorf("Couldn't decode base64 string:"+ - " %s\nPacket hex dump:\n%s", - base64Data, hex.Dump(line)) - } - - if line[0] == 6 && line[1] == 9 { - if len(data) < 2 { - continue - } - - pktLen := binary.BigEndian.Uint16(data[0:2]) - sx.pkt, err = NewPacket(pktLen) - if err != nil { - return nil, err - } - data = data[2:] - } - - if sx.pkt == nil { - continue - } - - full := sx.pkt.AddBytes(data) - if full { - if crc16.Crc16(sx.pkt.GetBytes()) != 0 { - return nil, fmt.Errorf("CRC error") - } - - /* - * Trim away the 2 bytes of CRC - */ - sx.pkt.TrimEnd(2) - b := sx.pkt.GetBytes() - sx.pkt = nil - - log.Debugf("Decoded input:\n%s", hex.Dump(b)) - return b, nil - } - } - - err := sx.scanner.Err() - if err == nil { - // Scanner hit EOF, so we'll need to create a new one. This only - // happens on timeouts. - err = nmxutil.NewXportTimeoutError( - "Timeout reading from serial connection") - sx.scanner = bufio.NewScanner(sx.port) - } - return nil, err -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxerr.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxerr.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxerr.go deleted file mode 100644 index aa9da23..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxerr.go +++ /dev/null @@ -1,160 +0,0 @@ -package nmxutil - -import ( - "fmt" -) - -// Represents an NMP timeout; request sent, but no response received. -type NmpTimeoutError struct { - Text string -} - -func NewNmpTimeoutError(text string) *NmpTimeoutError { - return &NmpTimeoutError{ - Text: text, - } -} - -func FmtNmpTimeoutError(format string, args ...interface{}) *NmpTimeoutError { - return NewNmpTimeoutError(fmt.Sprintf(format, args...)) -} - -func (e *NmpTimeoutError) Error() string { - return e.Text -} - -func IsNmpTimeout(err error) bool { - _, ok := err.(*NmpTimeoutError) - return ok -} - -type BleSesnDisconnectError struct { - Text string - Reason int -} - -func NewBleSesnDisconnectError(reason int, - text string) *BleSesnDisconnectError { - - return &BleSesnDisconnectError{ - Reason: reason, - Text: text, - } -} - -func (e *BleSesnDisconnectError) Error() string { - return e.Text -} - -func IsBleSesnDisconnect(err error) bool { - _, ok := err.(*BleSesnDisconnectError) - return ok -} - -type SesnAlreadyOpenError struct { - Text string -} - -func NewSesnAlreadyOpenError(text string) *SesnAlreadyOpenError { - return &SesnAlreadyOpenError{ - Text: text, - } -} - -func (e *SesnAlreadyOpenError) Error() string { - return e.Text -} - -func IsSesnAlreadyOpen(err error) bool { - _, ok := err.(*SesnAlreadyOpenError) - return ok -} - -type SesnClosedError struct { - Text string -} - -func NewSesnClosedError(text string) *SesnClosedError { - return &SesnClosedError{ - Text: text, - } -} - -func (e *SesnClosedError) Error() string { - return e.Text -} - -func IsSesnClosed(err error) bool { - _, ok := err.(*SesnClosedError) - return ok -} - -// Represents a low-level transport error. -type XportError struct { - Text string -} - -func NewXportError(text string) *XportError { - return &XportError{text} -} - -func (e *XportError) Error() string { - return e.Text -} - -func IsXport(err error) bool { - _, ok := err.(*XportError) - return ok -} - -type XportTimeoutError struct { - Text string -} - -func NewXportTimeoutError(text string) *XportTimeoutError { - return &XportTimeoutError{text} -} - -func (e *XportTimeoutError) Error() string { - return e.Text -} - -func IsXportTimeout(err error) bool { - _, ok := err.(*XportTimeoutError) - return ok -} - -type BleHostError struct { - Text string - Status int -} - -func NewBleHostError(status int, text string) *BleHostError { - return &BleHostError{ - Status: status, - Text: text, - } -} - -func FmtBleHostError(status int, format string, - args ...interface{}) *BleHostError { - - return NewBleHostError(status, fmt.Sprintf(format, args...)) -} - -func (e *BleHostError) Error() string { - return e.Text -} - -func IsBleHost(err error) bool { - _, ok := err.(*BleHostError) - return ok -} - -func ToBleHost(err error) *BleHostError { - if berr, ok := err.(*BleHostError); ok { - return berr - } else { - return nil - } -} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/15498bdc/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxutil.go ---------------------------------------------------------------------- diff --git a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxutil.go b/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxutil.go deleted file mode 100644 index ef1ecd4..0000000 --- a/newtmgr/vendor/mynewt.apache.org/newt/nmxact/nmxutil/nmxutil.go +++ /dev/null @@ -1,25 +0,0 @@ -package nmxutil - -import ( - "math/rand" - "sync" -) - -var nextNmpSeq uint8 -var beenRead bool -var seqMutex sync.Mutex - -func NextNmpSeq() uint8 { - seqMutex.Lock() - defer seqMutex.Unlock() - - if !beenRead { - nextNmpSeq = uint8(rand.Uint32()) - beenRead = true - } - - val := nextNmpSeq - nextNmpSeq++ - - return val -}
