nmxact - Indicate peer in BLE sesn close callback.
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/ea22bd05 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/tree/ea22bd05 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/diff/ea22bd05 Branch: refs/heads/master Commit: ea22bd05c0e5161a6d312f9922923f2f1583b5b6 Parents: ae52880 Author: Christopher Collins <[email protected]> Authored: Tue Mar 28 12:10:51 2017 -0700 Committer: Christopher Collins <[email protected]> Committed: Tue Mar 28 15:38:36 2017 -0700 ---------------------------------------------------------------------- nmxact/nmble/ble_fsm.go | 5 +++-- nmxact/nmble/ble_oic_sesn.go | 14 +++++++------- nmxact/nmble/ble_plain_sesn.go | 14 +++++++------- nmxact/sesn/sesn_cfg.go | 4 ++-- 4 files changed, 19 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/ea22bd05/nmxact/nmble/ble_fsm.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_fsm.go b/nmxact/nmble/ble_fsm.go index 52f61b8..daa930b 100644 --- a/nmxact/nmble/ble_fsm.go +++ b/nmxact/nmble/ble_fsm.go @@ -34,7 +34,7 @@ const ( ) type BleRxNmpFn func(data []byte) -type BleDisconnectFn func(err error) +type BleDisconnectFn func(peer BleDev, err error) type BleFsmParams struct { Bx *BleXport @@ -284,8 +284,9 @@ func (bf *BleFsm) connectListen(seq int) error { } bf.setState(SESN_STATE_UNCONNECTED) + peer := *bf.peerDev bf.peerDev = nil - bf.disconnectCb(err) + bf.disconnectCb(peer, err) return default: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/ea22bd05/nmxact/nmble/ble_oic_sesn.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_oic_sesn.go b/nmxact/nmble/ble_oic_sesn.go index 98a30e9..949d7aa 100644 --- a/nmxact/nmble/ble_oic_sesn.go +++ b/nmxact/nmble/ble_oic_sesn.go @@ -5,7 +5,7 @@ import ( "sync" "time" - "mynewt.apache.org/newt/nmxact/bledefs" + . "mynewt.apache.org/newt/nmxact/bledefs" "mynewt.apache.org/newt/nmxact/nmp" "mynewt.apache.org/newt/nmxact/omp" "mynewt.apache.org/newt/nmxact/sesn" @@ -17,7 +17,7 @@ type BleOicSesn struct { nls map[*nmp.NmpListener]struct{} od *omp.OmpDispatcher closeTimeout time.Duration - onCloseCb sesn.OnCloseFn + onCloseCb sesn.BleOnCloseFn closeChan chan error mx sync.Mutex @@ -28,7 +28,7 @@ func NewBleOicSesn(bx *BleXport, cfg sesn.SesnCfg) *BleOicSesn { nls: map[*nmp.NmpListener]struct{}{}, od: omp.NewOmpDispatcher(), closeTimeout: cfg.Ble.CloseTimeout, - onCloseCb: cfg.OnCloseCb, + onCloseCb: cfg.Ble.OnCloseCb, } svcUuid, err := ParseUuid(NmpOicSvcUuid) @@ -54,7 +54,7 @@ func NewBleOicSesn(bx *BleXport, cfg sesn.SesnCfg) *BleOicSesn { ReqChrUuid: reqChrUuid, RspChrUuid: rspChrUuid, RxNmpCb: func(d []byte) { bos.onRxNmp(d) }, - DisconnectCb: func(e error) { bos.onDisconnect(e) }, + DisconnectCb: func(p BleDev, e error) { bos.onDisconnect(p, e) }, }) return bos @@ -141,7 +141,7 @@ func (bos *BleOicSesn) onRxNmp(data []byte) { bos.od.Dispatch(data) } -func (bos *BleOicSesn) onDisconnect(err error) { +func (bos *BleOicSesn) onDisconnect(peer BleDev, err error) { for nl, _ := range bos.nls { nl.ErrChan <- err } @@ -151,7 +151,7 @@ func (bos *BleOicSesn) onDisconnect(err error) { bos.closeChan <- err } if bos.onCloseCb != nil { - bos.onCloseCb(bos, err) + bos.onCloseCb(bos, peer, err) } } @@ -194,5 +194,5 @@ func (bos *BleOicSesn) MtuOut() int { WRITE_CMD_BASE_SZ - omp.OMP_MSG_OVERHEAD - nmp.NMP_HDR_SIZE - return util.IntMin(mtu, bledefs.BLE_ATT_ATTR_MAX_LEN) + return util.IntMin(mtu, BLE_ATT_ATTR_MAX_LEN) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/ea22bd05/nmxact/nmble/ble_plain_sesn.go ---------------------------------------------------------------------- diff --git a/nmxact/nmble/ble_plain_sesn.go b/nmxact/nmble/ble_plain_sesn.go index b4fda8e..71133e7 100644 --- a/nmxact/nmble/ble_plain_sesn.go +++ b/nmxact/nmble/ble_plain_sesn.go @@ -5,7 +5,7 @@ import ( "sync" "time" - "mynewt.apache.org/newt/nmxact/bledefs" + . "mynewt.apache.org/newt/nmxact/bledefs" "mynewt.apache.org/newt/nmxact/nmp" "mynewt.apache.org/newt/nmxact/sesn" "mynewt.apache.org/newt/util" @@ -16,7 +16,7 @@ type BlePlainSesn struct { nls map[*nmp.NmpListener]struct{} nd *nmp.NmpDispatcher closeTimeout time.Duration - onCloseCb sesn.OnCloseFn + onCloseCb sesn.BleOnCloseFn closeChan chan error mx sync.Mutex @@ -27,7 +27,7 @@ func NewBlePlainSesn(bx *BleXport, cfg sesn.SesnCfg) *BlePlainSesn { nls: map[*nmp.NmpListener]struct{}{}, nd: nmp.NewNmpDispatcher(), closeTimeout: cfg.Ble.CloseTimeout, - onCloseCb: cfg.OnCloseCb, + onCloseCb: cfg.Ble.OnCloseCb, } svcUuid, err := ParseUuid(NmpPlainSvcUuid) @@ -48,7 +48,7 @@ func NewBlePlainSesn(bx *BleXport, cfg sesn.SesnCfg) *BlePlainSesn { ReqChrUuid: chrUuid, RspChrUuid: chrUuid, RxNmpCb: func(d []byte) { bps.onRxNmp(d) }, - DisconnectCb: func(e error) { bps.onDisconnect(e) }, + DisconnectCb: func(p BleDev, e error) { bps.onDisconnect(p, e) }, }) return bps @@ -135,7 +135,7 @@ func (bps *BlePlainSesn) onRxNmp(data []byte) { bps.nd.Dispatch(data) } -func (bps *BlePlainSesn) onDisconnect(err error) { +func (bps *BlePlainSesn) onDisconnect(peer BleDev, err error) { for nl, _ := range bps.nls { nl.ErrChan <- err } @@ -145,7 +145,7 @@ func (bps *BlePlainSesn) onDisconnect(err error) { bps.closeChan <- err } if bps.onCloseCb != nil { - bps.onCloseCb(bps, err) + bps.onCloseCb(bps, peer, err) } } @@ -182,5 +182,5 @@ func (bps *BlePlainSesn) MtuIn() int { func (bps *BlePlainSesn) MtuOut() int { mtu := bps.bf.attMtu - WRITE_CMD_BASE_SZ - nmp.NMP_HDR_SIZE - return util.IntMin(mtu, bledefs.BLE_ATT_ATTR_MAX_LEN) + return util.IntMin(mtu, BLE_ATT_ATTR_MAX_LEN) } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/ea22bd05/nmxact/sesn/sesn_cfg.go ---------------------------------------------------------------------- diff --git a/nmxact/sesn/sesn_cfg.go b/nmxact/sesn/sesn_cfg.go index c511d10..9e07c71 100644 --- a/nmxact/sesn/sesn_cfg.go +++ b/nmxact/sesn/sesn_cfg.go @@ -13,7 +13,7 @@ const ( MGMT_PROTO_OMP ) -type OnCloseFn func(s Sesn, err error) +type BleOnCloseFn func(s Sesn, peer bledefs.BleDev, err error) // Specifies the BLE peer to connect to. type BlePeerSpec struct { @@ -45,12 +45,12 @@ type SesnCfgBle struct { OwnAddrType bledefs.BleAddrType PeerSpec BlePeerSpec CloseTimeout time.Duration + OnCloseCb BleOnCloseFn } type SesnCfg struct { // Used with all transport types. MgmtProto MgmtProto - OnCloseCb OnCloseFn // Only used with BLE transports. Ble SesnCfgBle
