Comments (11)
Thank you for reporting the issue. I'll look into it and come back to you.
from ios-nrf-mesh-library.
For Acknowledged messages there's a timer on Access Layer that should try to retransmit the message and time out eventually.
from ios-nrf-mesh-library.
OK. I see where the issue may occur.
AccessLayer sets the repeat & timeout timer only for acknowledge messages sent to a Unicast Address:
IOS-nRF-Mesh-Library/nRFMeshProvision/Layers/Access Layer/AccessLayer.swift
Lines 239 to 244 in 293210d
That means, that acknowledged messages sent to a Group Address (or Virtual Address) don't get that timer set. Such messages may be sent to 0+ nodes and the transmitter can receive 0+ responses. In that case, it is the underlying layer that should notify the network manager, just like for unacknowledged messages.
However, as you pointed out, when the Acknowledged Mesh Message is unsegmented, like ConfigOnOffSet
, and sending the message fails, the network manager is never notified:
I'll prepare a fix.
from ios-nrf-mesh-library.
from ios-nrf-mesh-library.
Btw, for multicast addresses it is recommended not to use Acknowledged messages, but their Unacknowledged counterparts. This significantly decreases the traffic in the network.
from ios-nrf-mesh-library.
Hmm... I did some more digging and seems like the Network Layer doesn't throw bearerDidClose
when the message is sent to a group address, as such message may be handled internally:
IOS-nRF-Mesh-Library/nRFMeshProvision/Layers/Network Layer/NetworkLayer.swift
Lines 156 to 167 in 293210d
This is the shouldLoopback
method:
IOS-nRF-Mesh-Library/nRFMeshProvision/Layers/Network Layer/NetworkLayer.swift
Lines 444 to 450 in 293210d
As you're getting that error, that means, that you're sending the message to a Unicast Address. In that case, the network manager should wait until the response is received from the target, which happens on Access Layer.
I'll leave #600 open, but don't think it's required.
from ios-nrf-mesh-library.
Could you say what message are you trying to send exactly, what are your network parameters (default?) and what is the destination address of the message?
from ios-nrf-mesh-library.
Thank you for your help. I just send some GenericOnOffSet to a Unicast Address when not connected.In this case, a timeout will not be thrown?
from ios-nrf-mesh-library.
There will be a timeout. The timeout is set using:
IOS-nRF-Mesh-Library/nRFMeshProvision/Layers/NetworkParameters.swift
Lines 219 to 230 in 293210d
Documentatuion
from ios-nrf-mesh-library.
I found failedToSendMessage is no callback. Because Address change to MeshMessage.
After fix it.
I can handle the timeout here.
from ios-nrf-mesh-library.
Can I handle deliveryCallbacks here?
from ios-nrf-mesh-library.
Related Issues (20)
- Why group address not added in network exclusions list when deleted? HOT 3
- Version 4.0.0 not sent vender mesages HOT 3
- Test issue
- Unable to send a message to specified address. Another transfer in progress. HOT 8
- Stop overriding arbitrary provisioners when localProvisioner is removed HOT 1
- Crash due to belated type conversion (maxElementCount) HOT 4
- Message sequences received out of sync HOT 3
- Proxy change within a network causes the proxy filter not to be set HOT 3
- I updated from version 3.1.5 to version 4.0.1. I need to update many interfaces and the changes are huge. Is there any convenient way? HOT 7
- Zephyr BLE Mesh sample stuck on "Connecting" on iOS only. HOT 2
- How to migrate a custom model from library version 3.2.0 to 4.1.0? HOT 2
- Requirement for Provisioner's Unicast Address to be in its range is not a requirement by spec
- UI/UX improvement
- no
- ios nfc
- Receiving UnknownMessage with OpCode 0x008260 When Publishing Current State of LightCTL HOT 7
- nRFMeshProvision/iOSDFULibrary: "Multiple commands produce PrivacyInfo.bundle" when creating an archive. HOT 4
- Need help with configuring nodes HOT 3
- Why not skipping the 96h between each IV Index change state when testMode is true? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ios-nrf-mesh-library.