nmxact - Misc cleanup.
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/d4271897 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/tree/d4271897 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/diff/d4271897 Branch: refs/heads/master Commit: d427189725afef6af2c5719090ea0d483e031080 Parents: e94d645 Author: Christopher Collins <[email protected]> Authored: Wed Apr 5 19:22:00 2017 -0700 Committer: Christopher Collins <[email protected]> Committed: Wed Apr 5 19:22:00 2017 -0700 ---------------------------------------------------------------------- nmxact/bledefs/bledefs.go | 15 ++++++ nmxact/nmble/ble_act.go | 17 ++----- nmxact/nmble/ble_fsm.go | 32 ++---------- nmxact/nmble/ble_util.go | 108 +++++++++++++++++++++++++++++++++++++++++ nmxact/nmble/ble_xport.go | 84 ++------------------------------ 5 files changed, 133 insertions(+), 123 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/d4271897/nmxact/bledefs/bledefs.go ---------------------------------------------------------------------- diff --git a/nmxact/bledefs/bledefs.go b/nmxact/bledefs/bledefs.go index 570ddb0..b8d558c 100644 --- a/nmxact/bledefs/bledefs.go +++ b/nmxact/bledefs/bledefs.go @@ -280,3 +280,18 @@ type BleConnDesc struct { PeerOtaAddrType BleAddrType PeerOtaAddr BleAddr } + +func (d *BleConnDesc) String() string { + return fmt.Sprintf("conn_handle=%d "+ + "own_id_addr=%s,%s own_ota_addr=%s,%s "+ + "peer_id_addr=%s,%s peer_ota_addr=%s,%s", + d.ConnHandle, + BleAddrTypeToString(d.OwnIdAddrType), + d.OwnIdAddr.String(), + BleAddrTypeToString(d.OwnOtaAddrType), + d.OwnOtaAddr.String(), + BleAddrTypeToString(d.PeerIdAddrType), + d.PeerIdAddr.String(), + BleAddrTypeToString(d.PeerOtaAddrType), + d.PeerOtaAddr.String()) +} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/d4271897/nmxact/nmble/ble_act.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_act.go b/nmxact/nmble/ble_act.go index 7cd05a8..90ac53e 100644 --- a/nmxact/nmble/ble_act.go +++ b/nmxact/nmble/ble_act.go @@ -288,7 +288,7 @@ func exchangeMtu(x *BleXport, bl *BleListener, r *BleExchangeMtuReq) ( } } -type scanFn func(evt *BleScanEvt) +type scanFn func(r BleAdvReport) func scan(x *BleXport, bl *BleListener, r *BleScanReq, abortChan chan struct{}, scanCb scanFn) error { @@ -316,7 +316,8 @@ func scan(x *BleXport, bl *BleListener, r *BleScanReq, } case *BleScanEvt: - scanCb(msg) + r := BleAdvReportFromScanEvt(msg) + scanCb(r) default: } @@ -391,17 +392,7 @@ func connFind(x *BleXport, bl *BleListener, r *BleConnFindReq) ( StatusError(MSG_OP_RSP, msgType, msg.Status) } - return BleConnDesc{ - ConnHandle: msg.ConnHandle, - OwnIdAddrType: msg.OwnIdAddrType, - OwnIdAddr: msg.OwnIdAddr, - OwnOtaAddrType: msg.OwnOtaAddrType, - OwnOtaAddr: msg.OwnOtaAddr, - PeerIdAddrType: msg.PeerIdAddrType, - PeerIdAddr: msg.PeerIdAddr, - PeerOtaAddrType: msg.PeerOtaAddrType, - PeerOtaAddr: msg.PeerOtaAddr, - }, nil + return BleDescFromConnFindRsp(msg), nil default: } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/d4271897/nmxact/nmble/ble_fsm.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_fsm.go b/nmxact/nmble/ble_fsm.go index 8c374b8..10c2bee 100644 --- a/nmxact/nmble/ble_fsm.go +++ b/nmxact/nmble/ble_fsm.go @@ -204,24 +204,12 @@ func (bf *BleFsm) action( } func (bf *BleFsm) logConnection() { - desc, err := bf.params.Bx.connFind(bf.connHandle) + desc, err := ConnFindXact(bf.params.Bx, bf.connHandle) if err != nil { return } - log.Debugf("BLE connection attempt succeeded; "+ - "conn_handle=%d "+ - "own_id_addr=%s,%s own_ota_addr=%s,%s "+ - "peer_id_addr=%s,%s peer_ota_addr=%s,%s", - desc.ConnHandle, - BleAddrTypeToString(desc.OwnIdAddrType), - desc.OwnIdAddr.String(), - BleAddrTypeToString(desc.OwnOtaAddrType), - desc.OwnOtaAddr.String(), - BleAddrTypeToString(desc.PeerIdAddrType), - desc.PeerIdAddr.String(), - BleAddrTypeToString(desc.PeerOtaAddrType), - desc.PeerOtaAddr.String()) + log.Debugf("BLE connection attempt succeeded; %s", desc.String()) } func calcDisconnectType(state BleSesnState) BleFsmDisconnectType { @@ -420,21 +408,7 @@ func (bf *BleFsm) scan() error { 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, - } - + scanCb := func(r BleAdvReport) { // Ask client if we should connect to this advertiser. if bf.params.PeerSpec.ScanPred(r) { bf.peerDev = &r.Sender http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/d4271897/nmxact/nmble/ble_util.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_util.go b/nmxact/nmble/ble_util.go index 57bc324..0cd17f3 100644 --- a/nmxact/nmble/ble_util.go +++ b/nmxact/nmble/ble_util.go @@ -75,6 +75,36 @@ func StatusError(op MsgOp, msgType MsgType, status int) error { return nmxutil.NewBleHostError(status, str) } +func BleDescFromConnFindRsp(r *BleConnFindRsp) BleConnDesc { + return BleConnDesc{ + ConnHandle: r.ConnHandle, + OwnIdAddrType: r.OwnIdAddrType, + OwnIdAddr: r.OwnIdAddr, + OwnOtaAddrType: r.OwnOtaAddrType, + OwnOtaAddr: r.OwnOtaAddr, + PeerIdAddrType: r.PeerIdAddrType, + PeerIdAddr: r.PeerIdAddr, + PeerOtaAddrType: r.PeerOtaAddrType, + PeerOtaAddr: r.PeerOtaAddr, + } +} + +func BleAdvReportFromScanEvt(e *BleScanEvt) BleAdvReport { + return BleAdvReport{ + EventType: e.EventType, + Sender: BleDev{ + AddrType: e.AddrType, + Addr: e.Addr, + }, + Rssi: e.Rssi, + Data: e.Data.Bytes, + + Flags: e.DataFlags, + Name: e.DataName, + NameIsComplete: e.DataNameIsComplete, + } +} + func NewBleConnectReq() *BleConnectReq { return &BleConnectReq{ Op: MSG_OP_REQ, @@ -204,3 +234,81 @@ func NewBleConnFindReq() *BleConnFindReq { Seq: NextSeq(), } } + +func ConnFindXact(x *BleXport, connHandle uint16) (BleConnDesc, error) { + r := NewBleConnFindReq() + r.ConnHandle = connHandle + + base := BleMsgBase{ + Op: -1, + Type: -1, + Seq: r.Seq, + ConnHandle: -1, + } + + bl := NewBleListener() + if err := x.Bd.AddListener(base, bl); err != nil { + return BleConnDesc{}, err + } + defer x.Bd.RemoveListener(base) + + return connFind(x, bl, r) +} + +func GenRandAddrXact(x *BleXport) (BleAddr, error) { + r := NewBleGenRandAddrReq() + base := BleMsgBase{ + Op: -1, + Type: -1, + Seq: r.Seq, + ConnHandle: -1, + } + + bl := NewBleListener() + if err := x.Bd.AddListener(base, bl); err != nil { + return BleAddr{}, err + } + defer x.Bd.RemoveListener(base) + + return genRandAddr(x, bl, r) +} + +func SetRandAddrXact(x *BleXport, addr BleAddr) error { + r := NewBleSetRandAddrReq() + r.Addr = addr + + base := BleMsgBase{ + Op: -1, + Type: -1, + Seq: r.Seq, + ConnHandle: -1, + } + + bl := NewBleListener() + if err := x.Bd.AddListener(base, bl); err != nil { + return err + } + defer x.Bd.RemoveListener(base) + + return setRandAddr(x, bl, r) +} + +func SetPreferredMtuXact(x *BleXport, mtu uint16) error { + r := NewBleSetPreferredMtuReq() + r.Mtu = mtu + + base := BleMsgBase{ + Op: -1, + Type: -1, + Seq: r.Seq, + ConnHandle: -1, + } + + bl := NewBleListener() + if err := x.Bd.AddListener(base, bl); err != nil { + return err + } + defer x.Bd.RemoveListener(base) + + return setPreferredMtu(x, bl, r) +} http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/d4271897/nmxact/nmble/ble_xport.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_xport.go b/nmxact/nmble/ble_xport.go index e575d78..970bb00 100644 --- a/nmxact/nmble/ble_xport.go +++ b/nmxact/nmble/ble_xport.go @@ -120,84 +120,6 @@ func (bx *BleXport) createUnixChild() { bx.client = unixchild.New(config) } -func (bx *BleXport) genRandAddr() (BleAddr, error) { - r := NewBleGenRandAddrReq() - base := BleMsgBase{ - Op: -1, - Type: -1, - Seq: r.Seq, - ConnHandle: -1, - } - - bl := NewBleListener() - if err := bx.Bd.AddListener(base, bl); err != nil { - return BleAddr{}, err - } - defer bx.Bd.RemoveListener(base) - - return genRandAddr(bx, bl, r) -} - -func (bx *BleXport) connFind(connHandle uint16) (BleConnDesc, error) { - r := NewBleConnFindReq() - r.ConnHandle = connHandle - - base := BleMsgBase{ - Op: -1, - Type: -1, - Seq: r.Seq, - ConnHandle: -1, - } - - bl := NewBleListener() - if err := bx.Bd.AddListener(base, bl); err != nil { - return BleConnDesc{}, err - } - defer bx.Bd.RemoveListener(base) - - return connFind(bx, bl, r) -} - -func (bx *BleXport) setRandAddr(addr BleAddr) error { - r := NewBleSetRandAddrReq() - r.Addr = addr - - base := BleMsgBase{ - Op: -1, - Type: -1, - Seq: r.Seq, - ConnHandle: -1, - } - - bl := NewBleListener() - if err := bx.Bd.AddListener(base, bl); err != nil { - return err - } - defer bx.Bd.RemoveListener(base) - - return setRandAddr(bx, bl, r) -} - -func (bx *BleXport) setPreferredMtu(mtu uint16) error { - r := NewBleSetPreferredMtuReq() - r.Mtu = mtu - - base := BleMsgBase{ - Op: -1, - Type: -1, - Seq: r.Seq, - ConnHandle: -1, - } - - bl := NewBleListener() - if err := bx.Bd.AddListener(base, bl); err != nil { - return err - } - defer bx.Bd.RemoveListener(base) - - return setPreferredMtu(bx, bl, r) -} - func (bx *BleXport) BuildSesn(cfg sesn.SesnCfg) (sesn.Sesn, error) { switch cfg.MgmtProto { case sesn.MGMT_PROTO_NMP: @@ -489,7 +411,7 @@ func (bx *BleXport) startOnce() error { }() if bx.randAddr == nil { - addr, err := bx.genRandAddr() + addr, err := GenRandAddrXact(bx) if err != nil { bx.shutdown(true, err) return err @@ -498,12 +420,12 @@ func (bx *BleXport) startOnce() error { bx.randAddr = &addr } - if err := bx.setRandAddr(*bx.randAddr); err != nil { + if err := SetRandAddrXact(bx, *bx.randAddr); err != nil { bx.shutdown(true, err) return err } - if err := bx.setPreferredMtu(bx.cfg.PreferredMtu); err != nil { + if err := SetPreferredMtuXact(bx, bx.cfg.PreferredMtu); err != nil { bx.shutdown(true, err) return err }
