nordicsemiconductor / android-nrf-mesh-library Goto Github PK
View Code? Open in Web Editor NEWThe Bluetooth Mesh Provisioner and Configurator library.
Home Page: https://www.nordicsemi.com/
License: BSD 3-Clause "New" or "Revised" License
The Bluetooth Mesh Provisioner and Configurator library.
Home Page: https://www.nordicsemi.com/
License: BSD 3-Clause "New" or "Revised" License
The lib should save the sequence number for all outgoing messages. Currently we do that only for the Unacknowledged messages. In case a acknowledged message is lost, we lose the correct sequence number.
Is your feature request related to a problem? Please describe.
The newest version of this library saves the provisioning settings to SharedPreferences, but should probably be passed to the MeshApi in some way.
Describe the solution you'd like
Pass the networkkey and application keys to the api like in the previous version, which would allow to manage multiple networks.
What's the strategy on this? Reading them from SharedPreferences does not seem to be an optimal solution for a library and should rather be taken care of by the application.
As a user, I want to be able to CRUD groups from the settings so that I do not have to input addresses into the node configuration view and improve my experience.
Describe the solution you'd like
I want to be able to access sensor data by sending commands to Sensor Server Model on another Mesh device. Things like reading Sensor descriptors, reading sensor values, etc.
As a user it would be nice to identify the node before starting provisioning process as there could be multiple un-provisioned nodes.
I'm using nRF52 DK, mesh SDK version 2.2.0
I want give demo of the Light-Switch example application by forming network through mobile. I found that through mobile application switch, we cannot control the lights. Is there any mobile application apart from nRF Mesh (android/IOS). And yeah through switch device I can on/off the lights but not through mobile application.
My requirement is:
Control the lights subscribed to particular switch through that switch in mobile app.
Control all lights individually.
As a user, I want the library to resend segments that haven't been acknowledged
by the destination node so that I have a fully functional and stable network.
Bug description
Hi, I am trying to use nrf mesh android app to switch on light, I am facing issue some times during reconnect after provisioning. My observation is after provisioning if i disconnect and try to connect again, device is not connecting at one shot, instead app gives me below issue
To Reproduce
Steps to reproduce the behavior:
Expected behavior
App should connect to the device with in few seconds.
Platform details:
Logs / Screenshots
Screen shots are linked as urls
I have also cloned project from github and tried building app from android studio still same issue. Any advice or help will be a great. thank you in advance.
Describe the bug
Provisioning fails after Sending public key
state.
To Reproduce
I'm using hardware mynewt-based mesh network node, on RedBear blenano2 (nrf52) device.
This same device is confirmed to work with SiliconLabs demo app.
Expected behavior
Provisioning completes successfully.
Platform details:
Logs
06-09 23:01:24.193 23694-23694/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Sending data : 0x03000A
06-09 23:01:24.199 23694-23741/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Data written: 0x03000A
06-09 23:01:24.199 23694-23741/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Provisioning pdu sent: 0x03000A
06-09 23:01:24.285 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Received provisioning message: 0x03010100010000040007000000
06-09 23:01:39.306 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Number of elements: 1
06-09 23:01:39.310 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Algorithm: 1
06-09 23:01:39.311 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Public key type: Public key information unavailable
06-09 23:01:39.314 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Static OOB type: Static OOB Actions unavailable
06-09 23:01:39.315 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Output OOB size: 4
06-09 23:01:39.317 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Output OOB action: Unknown
06-09 23:01:39.318 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Input OOB size: 0
06-09 23:01:39.320 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningInvite: Input OOB action: No Input
06-09 23:01:39.323 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningStart: Provisioning start PDU: 0x03020000000004
06-09 23:01:39.327 23694-23719/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Sending data : 0x03020000000004
06-09 23:01:39.338 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Data written: 0x03020000000004
06-09 23:01:39.338 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Provisioning pdu sent: 0x03020000000004
06-09 23:01:39.525 23694-23701/no.nordicsemi.android.nrfmeshprovisioner I/zygote64: Compiler allocated 6MB to compile void android.view.ViewRootImpl.performTraversals()
06-09 23:01:41.104 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningPublicKey: X: length: 32 9C62CFE4201131671AB81D5D79AB17D18AA98ECFFC6E432BD507C15C76E2EB9D
06-09 23:01:41.105 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/ProvisioningPublicKey: Y: length: 32 500E2CF5658F56440CDD7C522C3545DB4C838C5C8D4C4F33DB00022D55105E31
XY: 0x9C62CFE4201131671AB81D5D79AB17D18AA98ECFFC6E432BD507C15C76E2EB9D500E2CF5658F56440CDD7C522C3545DB4C838C5C8D4C4F33DB00022D55105E31
06-09 23:01:41.107 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Sending data : 0x03039C62CFE4201131671AB81D5D79AB17D18AA98ECFFC6E432BD507C15C76E2EB9D500E2CF5658F56440CDD7C522C3545DB4C838C5C8D4C4F33DB00022D55105E31
06-09 23:01:41.113 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Received provisioning message: 0x030902
06-09 23:01:47.531 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Data written: 0x03039C62CFE4201131671AB81D5D79AB17D18AA98ECFFC6E432BD507C15C76E2EB9D500E2CF5658F56440CDD7C522C3545DB4C838C5C8D4C4F33DB00022D55105E31
06-09 23:01:47.532 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Provisioning pdu sent: 0x03039C62CFE4201131671AB81D5D79AB17D18AA98ECFFC6E432BD507C15C76E2EB9D500E2CF5658F56440CDD7C522C3545DB4C838C5C8D4C4F33DB00022D55105E31
06-09 23:01:47.536 23694-23720/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Received provisioning message: 0x0303294E9F14E777304B9D7C2206DCCC9D6EF2B59B91EDB2D75FBFEE29A10439D585E83279CB0B0E72572CCEF58FB3EB078DC8250DBEDB5F8F0A6AC446F629A52709
06-09 23:02:13.026 23694-23694/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: cancelOpen() - device: 19:A4:5B:3C:6A:D0
06-09 23:02:13.062 23694-23738/no.nordicsemi.android.nrfmeshprovisioner D/OpenGLRenderer: endAllActiveAnimators on 0x7bf09e2800 (RippleDrawable) with handle 0x7bf09cbb40
06-09 23:02:13.113 23694-23694/no.nordicsemi.android.nrfmeshprovisioner V/ScannerFragment: scan started
06-09 23:02:13.125 23694-23694/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothAdapter: isLeEnabled(): ON
06-09 23:02:13.131 23694-23719/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothLeScanner: onScannerRegistered() - status=0 scannerId=7 mScannerId=0
06-09 23:02:14.666 23694-23720/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=8 device=19:A4:5B:3C:6A:D0
06-09 23:02:14.675 23694-23720/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: close()
PS: Great thanks for the lib! You are the only ones (at least the only ones I've found) providing some libraries to communicate with ble meshes!
My intent is to implement PC library in JS to run on laptops or raspberry pis (or even Web Bluetooth), but I'm still struggling with the protocol, especially with provision part.
Is your feature request related to a problem? Please describe.
As a dev, It's still a nightmare trying to get the library working in my custom app. (non-native)
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Describe the solution you'd like
I want to be able to control Configuration Server settings of a Mesh node from the app.
Currently the app disregards the src of the messages and assumes that its the same node as the user is already communicating with. This may lead to wrong node being updated when receiving messages.
As a power user, I want to be able to enable or disable the relay and proxy services on a node so that I have granular control over how the nodes behave.
when the device is connected,i try to press the IDENTFY Button , but the method mViewModel.getMeshNode() returned wrong params. params in method meshNode.getMeshNode() are all null;
12-13 10:43:30.429 7621-7621/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: discoverServices() - device: 98:12:88:77:00:15 12-13 10:43:30.429 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetService() - Device=98:12:88:77:00:15 UUID=00001800-0000-1000-8000-00805f9b34fb 12-13 10:43:30.429 7621-7645/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetService() - Device=98:12:88:77:00:15 UUID=00001801-0000-1000-8000-00805f9b34fb 12-13 10:43:30.429 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetService() - Device=98:12:88:77:00:15 UUID=00001828-0000-1000-8000-00805f9b34fb 12-13 10:43:30.429 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetCharacteristic() - Device=98:12:88:77:00:15 UUID=00002a00-0000-1000-8000-00805f9b34fb 12-13 10:43:30.439 7621-7645/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetCharacteristic() - Device=98:12:88:77:00:15 UUID=00002a01-0000-1000-8000-00805f9b34fb 12-13 10:43:30.439 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetCharacteristic() - Device=98:12:88:77:00:15 UUID=00002a04-0000-1000-8000-00805f9b34fb 12-13 10:43:30.439 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetCharacteristic() - Device=98:12:88:77:00:15 UUID=00002a05-0000-1000-8000-00805f9b34fb 12-13 10:43:30.449 7621-7645/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetCharacteristic() - Device=98:12:88:77:00:15 UUID=00002add-0000-1000-8000-00805f9b34fb 12-13 10:43:30.449 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetCharacteristic() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:30.449 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetDescriptor() - Device=98:12:88:77:00:15 UUID=00002902-0000-1000-8000-00805f9b34fb 12-13 10:43:30.459 7621-7645/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onGetDescriptor() - Device=98:12:88:77:00:15 UUID=00002902-0000-1000-8000-00805f9b34fb 12-13 10:43:30.459 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onSearchComplete() = Device=98:12:88:77:00:15 Status=0 12-13 10:43:30.459 7621-7621/no.nordicsemi.android.nrfmeshprovisioner D/PRETTY_LOGGER: ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────── │ Thread: main ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ MeshProvisionerActivity$1.onChanged (MeshProvisionerActivity.java:193) │ Debuger.d (Debuger.java:16) ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ Initializing… └──────────────────────────────────────────────────────────────────────────────────────────────────────────────── 12-13 10:43:30.469 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: setCharacteristicNotification() - uuid: 00002ade-0000-1000-8000-00805f9b34fb enable: true 12-13 10:43:30.469 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: writeDescriptor() - uuid: 00002902-0000-1000-8000-00805f9b34fb 12-13 10:43:30.539 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onDescriptorWrite() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:30.539 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/PRETTY_LOGGER: ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────── │ Thread: Binder_1 ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ │ MeshService.onDeviceReady (MeshService.java:405) │ Debuger.d (Debuger.java:16) ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 12-13 10:43:30.549 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/PRETTY_LOGGER: │ 98:12:88:77:00:15 └──────────────────────────────────────────────────────────────────────────────────────────────────────────────── 12-13 10:43:32.549 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/MeshTransport: Src address: 07FF Dst address: 002B Key: C3BE94232FFFB189256CC19760C5A4A0 akf: 0 aid: 0 aszmic: 0 Sequence number: 123 Access message opcode: 32776 Access message parameters: FF 12-13 10:43:32.549 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/AccessLayer: Created Access PDU 8008FF 12-13 10:43:32.549 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/UpperTransportLayer: Device nonce: 020000007B07FF002B00000000 12-13 10:43:32.559 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/UpperTransportLayer: Encrypted upper transport pdu: 7174AC29C3B4C1 12-13 10:43:32.559 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/LowerTransportLayer: Unsegmented Lower transport access PDU 007174AC29C3B4C1 12-13 10:43:32.559 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Encryption key: 09D98362AFD9980568560D7ABB90472E Privacy key: F9CA93F9110E9AD5EF741B35DF2C35F4 Sequence Number: 00007B Network nonce: 006400007B07FF000000000000 Encrypted Network payload: 86FCB04510E4CDCBA38C2B8C6A44 12-13 10:43:32.559 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/ConfigCompositionDataGet: Sending composition data get 12-13 10:43:32.559 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Sending data : 0x400C2793473B679886FCB04510E4CDCBA38C2B8C 12-13 10:43:32.559 7621-7621/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: writeCharacteristic() - uuid: 00002add-0000-1000-8000-00805f9b34fb 12-13 10:43:32.559 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onCharacteristicWrite() - Device=98:12:88:77:00:15 UUID=00002add-0000-1000-8000-00805f9b34fb Status=0 12-13 10:43:32.569 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Data written: 0x400C2793473B679886FCB04510E4CDCBA38C2B8C 12-13 10:43:32.569 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Sending data : 0xC06A44 12-13 10:43:32.569 7621-7621/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: writeCharacteristic() - uuid: 00002add-0000-1000-8000-00805f9b34fb 12-13 10:43:32.569 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onCharacteristicWrite() - Device=98:12:88:77:00:15 UUID=00002add-0000-1000-8000-00805f9b34fb Status=0 12-13 10:43:32.569 7621-7643/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Data written: 0xC06A44 12-13 10:43:32.569 7621-7643/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Network pdu sent: 0x000C2793473B679886FCB04510E4CDCBA38C2B8C6A44 12-13 10:43:32.569 7621-7643/no.nordicsemi.android.nrfmeshprovisioner V/MeshMessageHandler: Switching current state on write complete ConfigCompositionDataGet to ConfigCompositionDataStatus 12-13 10:43:32.639 7621-7645/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onNotify() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:32.639 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Characteristic notified: 0x400C3BF3E4D5D32B6611C9A0430168E45E013C5C 12-13 10:43:32.679 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onNotify() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:32.679 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Characteristic notified: 0xC08528CB43E9BF1DECC4B0 12-13 10:43:32.679 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Received network pdu: 0x000C3BF3E4D5D32B6611C9A0430168E45E013C5C8528CB43E9BF1DECC4B0 12-13 10:43:32.689 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Privacy Random: 0000000000000000006611C9A0430168 TTL for received message: 10 Sequence number of received access message: 0 Received a segmented access message from: 002B 12-13 10:43:32.689 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/LowerTransportLayer: SEG O: 0 SEG N: 2 Current SeqAuth value 0 Starting incomplete timer for src: 002B 12-13 10:43:32.689 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/ConfigCompositionDataStatus: Message reassembly may not be complete yet 12-13 10:43:32.729 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onNotify() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:32.729 7621-7643/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Characteristic notified: 0x400CF46E0F9988AE184FC6819A528C1C3FFCB0DD 12-13 10:43:32.729 7621-7645/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onNotify() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:32.729 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Characteristic notified: 0xC04891656D545D56BD8856 12-13 10:43:32.729 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Received network pdu: 0x000CF46E0F9988AE184FC6819A528C1C3FFCB0DD4891656D545D56BD8856 12-13 10:43:32.729 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Privacy Random: 000000000000000000184FC6819A528C TTL for received message: 10 12-13 10:43:32.739 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Sequence number of received access message: 1 Received a segmented access message from: 002B 12-13 10:43:32.739 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/LowerTransportLayer: SEG O: 1 SEG N: 2 Last SeqAuth value 0 Current SeqAuth value 0 Restarting incomplete timer for src: 002B 12-13 10:43:32.739 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/ConfigCompositionDataStatus: Message reassembly may not be complete yet 12-13 10:43:33.319 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onNotify() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:33.319 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Characteristic notified: 0x400C10883D6EBB5B3F4C1D3EA3CE81ADACFA6F43 12-13 10:43:33.339 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/LowerTransportLayer: All segments received cancelling incomplete timer Block acknowledgement payload: 000000000003 Creating unsegmented transport control Unsegmented Lower transport control PDU 00000000000003 12-13 10:43:33.339 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Encryption key: 09D98362AFD9980568560D7ABB90472E Privacy key: F9CA93F9110E9AD5EF741B35DF2C35F4 Sequence Number: 00007C Network nonce: 008A00007C07FF000000000000 12-13 10:43:33.349 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Encrypted Network payload: DC0AA0F80619B685C5A0F183133F75AD7E 12-13 10:43:33.349 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/ConfigCompositionDataStatus: Sending acknowledgement: 000CA3485591C16DDC0AA0F80619B685C5A0F183133F75AD7E 12-13 10:43:33.349 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Sending data : 0x400CA3485591C16DDC0AA0F80619B685C5A0F183 12-13 10:43:33.349 7621-7621/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: writeCharacteristic() - uuid: 00002add-0000-1000-8000-00805f9b34fb 12-13 10:43:33.349 7621-7643/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onCharacteristicWrite() - Device=98:12:88:77:00:15 UUID=00002add-0000-1000-8000-00805f9b34fb Status=0 12-13 10:43:33.349 7621-7643/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Data written: 0x400CA3485591C16DDC0AA0F80619B685C5A0F183 12-13 10:43:33.359 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Sending data : 0xC0133F75AD7E 12-13 10:43:33.359 7621-7621/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: writeCharacteristic() - uuid: 00002add-0000-1000-8000-00805f9b34fb 12-13 10:43:33.359 7621-7645/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onCharacteristicWrite() - Device=98:12:88:77:00:15 UUID=00002add-0000-1000-8000-00805f9b34fb Status=0 12-13 10:43:33.369 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Data written: 0xC0133F75AD7E 12-13 10:43:33.369 7621-7645/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Network pdu sent: 0x000CA3485591C16DDC0AA0F80619B685C5A0F183133F75AD7E 12-13 10:43:33.369 7621-7696/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onNotify() - Device=98:12:88:77:00:15 UUID=00002ade-0000-1000-8000-00805f9b34fb 12-13 10:43:33.369 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/BleMeshManager: Characteristic notified: 0xC0533AD77F 12-13 10:43:33.369 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/MeshManagerApi: Received network pdu: 0x000C10883D6EBB5B3F4C1D3EA3CE81ADACFA6F43533AD77F 12-13 10:43:33.369 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Privacy Random: 0000000000000000003F4C1D3EA3CE81 TTL for received message: 10 Sequence number of received access message: 2 12-13 10:43:33.379 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/NetworkLayer: Received a segmented access message from: 002B 12-13 10:43:33.379 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/LowerTransportLayer: SEG O: 2 SEG N: 2 Last SeqAuth value 0 Current SeqAuth value 0 Restarting incomplete timer for src: 002B 12-13 10:43:33.379 7621-7621/no.nordicsemi.android.nrfmeshprovisioner V/LowerTransportLayer: Block ack value: 3 12-13 10:43:33.379 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/LowerTransportLayer: Restarting block acknowledgement timer for src: 002B All segments received Block ack sent? true 12-13 10:43:33.389 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/AccessLayer: Opcode length: 1 Octets Received Access PDU 02000C001A000100080003000001020000000010000101000010 12-13 10:43:33.389 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/ConfigCompositionDataStatus: Received composition data status Company identifier: 000C Product identifier: 001A Version identifier: 0001 crpl: 0008 Features: 0003 Relay feature: true Proxy feature: true Friend feature: false Low power feature: false Location identifier: 0100 12-13 10:43:33.399 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/ConfigCompositionDataStatus: Number of sig models: 2 Number of vendor models: 0 Sig model ID 0 : 0000 Sig model ID 1 : 1000 Location identifier: 0100 Number of sig models: 1 Number of vendor models: 0 Sig model ID 0 : 1000 Number of elements: 2 12-13 10:43:33.419 7621-7696/no.nordicsemi.android.nrfmeshprovisioner V/MeshMessageHandler: Switched to No operation state
12-13 10:43:34.029 7621-7621/no.nordicsemi.android.nrfmeshprovisioner W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41742d58) 12-13 10:43:34.049 7621-7621/no.nordicsemi.android.nrfmeshprovisioner W/System.err: java.lang.NullPointerException at no.nordicsemi.android.meshprovisioner.transport.LowerTransportLayer.sendBlockAck(LowerTransportLayer.java:686) at no.nordicsemi.android.meshprovisioner.transport.LowerTransportLayer.lambda$initSegmentedAccessAcknowledgementTimer$0$LowerTransportLayer(LowerTransportLayer.java:655) at no.nordicsemi.android.meshprovisioner.transport.LowerTransportLayer$$Lambda$0.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5052) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 12-13 10:43:34.059 7621-7621/no.nordicsemi.android.nrfmeshprovisioner W/System.err: at dalvik.system.NativeStart.main(Native Method)
Hello,
Can you add example mesh firmware for nRF52840?
Thanks
Hi,
I want to click a button on this app to switch lights.
Can you tell me how to use an Android application to switch lights, such as the iOS application nRF Mesh?
Or can you add this feature to the Android application nRF Mesh?
Thank you!
Hello, ask, I want to know where to modify the value of tid, because the value of tid is the same when sending data, but I can not find the attribute tid
As a user, I want to be able to identify nodes using nRF Mesh so that I can know where the models and elements are physically located and ease the process of configuring nodes.
As per Mesh Model Specification (on firmware end) ,
if ( TID == LAST_TID &&
SRC_ADDR == LAST_SRC_ADDR &&
DST_ADDR == LAST_DST_ADDR &&
(now - last_msg_timestamp <= 6 Seconds) ) {
// re-transmitted message & hence
return;
}
Android #nRFMesh issue:
If App is controlling Group of NODEs which actually has only one NODE then each button toggle event send message with new TID. This is perfect implementation.
But it is observed that if there are many NODEs actually available then APP sends message with same TID. This happens intermittently. Because of it, above mentioned condition get executed on firmware end & server assumes it is re-transmitted message & state does not get updated.
@roshanrajaratnam Correct me if I go wrong on this.
I was going through the code and trying to figure out how to put data into the Proxy node i.e. PDU.
3 of the files caught my interest:
meshprovisioner/MeshManagerApi.java
(as in meshprovisioner module)nrfmeshprovisioner/ble/BleMeshManager.java
(as in meshprovisioner module)ble/BleManager.java
(as in ble module)From these I feel 1 is related to Provisioning of the mesh and 2, 3 are related to sending data to the lower level Android Bluetooth manager.
I've used the Bluetooth SIG App Accelerator library/files wherein they give a BleWrapper object and writing data to/reading data from a Bluetooth device works by writing/reading to a Characteristic of a Service of a GATT server running on a Bluetooth device. Now that's how it is for Bluetooth devices which are not Mesh and one to one Bluetooth communication.
I could see in file 2 above the PROXY_IN and PROXY_OUT characteristic mentioned which makes sense when compared with the Bluetooth SIG Mesh Model document.
What confuses me is that this project needs both the 'ble' and 'meshprovisioner' module. So, there is both the BleMeshManager.java
and BleManager.java
. Won't their working collide with each other?
But, that's not my main question in this thread is. My main interest is to write to/read from proxy characteristics of the mesh and that will solve what @kcjian is looking for.
I can see in BleMeshManager.java
that there is a function sendPdu(final byte[] pdu)
.
Is this the function I have to call from my MainActivity like on button press in a graphical app?
If not then can you give a code snippet of which function in which file I've to call from my MainActivity to send data PDUs (byte[] array) to mesh nodes?
Is it something like this: instanceBleMeshManager.sendPdu((byte[]) {0x01, 0x02, 0x03})
I have to call from the MainActivity?
If not then give a code snippet.
Also, give a code snippet of how to read from a PROXY_OUT characteristic of the Bluetooth service.
Thanks in advance
I'm using nRF52 DK, mesh SDK version 2.2.0
I want give demo of the Light-Switch example application by forming network through mobile. I found that through mobile application switch, we cannot control the lights. Is there any mobile application apart from nRF Mesh (android/IOS). And yeah through switch device I can on/off the lights but not through mobile application.
I have bind the application key to the model. But my concern is if a switch is publishing at lets say C001 publishing address, if 3 lights subscribe to the same C001. Now, if you go to light 1 and try to on/off other 2 lights also turn on/off since they are subscribed to C001. Is there any way to control each light ?
My requirement is:
1.Control the lights subscribed to particular switch through that switch in mobile app.
2.Control all lights individually.
As a user, I want to be able to send GenericLevel related messages so that I can test GenericLevel features on my hardware.
As a user/developer this would allow setting real time values to a generic level mode.
As a power user, I want to be able to export my entire mesh database in json format that respects the bluetooth database spec so that I can easily migrate my network between mesh compliant apps and avoid losing my network's configuration.
Adding a message builder class will allow a better separation of logic within a mesh messages and mesh message states
Support adding a generic vendor model api so that users are able to type in the message that needs to be sent to a vendor model
Enable transition and delay on the app side
As a power user, I want to be able to configure all the publication parameter so that I get granular control over how the mesh node behaves according to my needs.
Due to wrong state handling the vendor model message reassembly is failing.
Invalid ttl value is been set as a publishTTL parameter. The feedback provided to the user here is a bit unclear.
Currently the app only sends vendor model messages to only unicast addresses. If an acknowledged message is to be sent, the app should only send to the unicast address, otherwise send it to the group address if the model has subscribed to one.
if a node is provisioned but due to edge cases, is not configurable, we cannot reconnect to the node or relay messages, causing it to be only removed by resetting the whole network, this was by design due to the fact that the node will still have the network key, etc..
a better approach would be allowing a specific node to be "force deleted" with a user warning about security complications.
One of the more reasons for having this is in case a user physically resets the node, there is no way of removing the node from the network.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Why do we want to pass the node when generating new messages like GenericOnOffSet(NODE,...,destinationAddress)
. When sending to groups we do not have a single node we can put there. Can we just remove this from all model messages, or why is it necessary?
08-22 15:31:10.601 10887-10887/no.nordicsemi.android.nrfmeshprovisioner V/ScannerFragment: scan started
08-22 15:31:10.608 10887-10887/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothAdapter: isLeEnabled(): ON
08-22 15:31:10.613 10887-22242/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothLeScanner: onScannerRegistered() - status=0 scannerId=7 mScannerId=0
08-22 15:31:10.649 10887-10901/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: close()
unregisterApp() - mClientIf=8
08-22 15:31:10.699 10887-10925/no.nordicsemi.android.nrfmeshprovisioner D/OpenGLRenderer: endAllActiveAnimators on 0x779be4a000 (RippleDrawable) with handle 0x779b2582a0
08-22 15:31:15.808 10887-10887/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: connect() - device: 9E:16:11:07:DA:78, auto: false
registerApp()
08-22 15:31:15.809 10887-10887/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: registerApp() - UUID=252eef3f-9b0c-4b1b-a048-0e3544d1df75
08-22 15:31:15.810 10887-10901/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onClientRegistered() - status=0 clientIf=8
08-22 15:31:16.216 10887-10887/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothAdapter: isLeEnabled(): ON
08-22 15:31:16.221 10887-10887/no.nordicsemi.android.nrfmeshprovisioner V/ScannerFragment: stopping scan
08-22 15:31:16.519 10887-10926/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=8 device=9E:16:11:07:DA:78
08-22 15:31:16.583 10887-10887/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: discoverServices() - device: 9E:16:11:07:DA:78
08-22 15:31:16.957 10887-10902/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onConnectionUpdated() - Device=9E:16:11:07:DA:78 interval=6 latency=0 timeout=500 status=0
08-22 15:31:17.343 10887-22242/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onSearchComplete() = Device=9E:16:11:07:DA:78 Status=0
08-22 15:31:17.538 10887-22242/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: setCharacteristicNotification() - uuid: 00002ade-0000-1000-8000-00805f9b34fb enable: true
08-22 15:31:17.571 10887-22242/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onConnectionUpdated() - Device=9E:16:11:07:DA:78 interval=39 latency=0 timeout=500 status=0
08-22 15:31:17.715 10887-10901/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: configureMTU() - device: 9E:16:11:07:DA:78 mtu: 517
08-22 15:31:17.782 10887-10926/no.nordicsemi.android.nrfmeshprovisioner D/BluetoothGatt: onConfigureMTU() - Device=9E:16:11:07:DA:78 mtu=158 status=0
08-22 15:31:17.803 10887-10926/no.nordicsemi.android.nrfmeshprovisioner W/BluetoothGatt: Unhandled exception in callback
java.lang.NullPointerException: Attempt to invoke virtual method 'void no.nordicsemi.android.meshprovisioner.configuration.ProvisionedMeshNode.setBluetoothDeviceAddress(java.lang.String)' on a null object reference
at no.nordicsemi.android.nrfmeshprovisioner.service.MeshService.onDeviceReady(MeshService.java:358)
at no.nordicsemi.android.ble.BleManager$BleManagerGattCallback.onDeviceReady(BleManager.java:1053)
at no.nordicsemi.android.nrfmeshprovisioner.ble.BleMeshManager$1.onDeviceReady(BleMeshManager.java:179)
at no.nordicsemi.android.ble.BleManager$BleManagerGattCallback.nextRequest(BleManager.java:1513)
at no.nordicsemi.android.ble.BleManager$BleManagerGattCallback.onMtuChanged(BleManager.java:1459)
at android.bluetooth.BluetoothGatt$1$13.run(BluetoothGatt.java:610)
at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:725)
at android.bluetooth.BluetoothGatt.-wrap0(Unknown Source:0)
at android.bluetooth.BluetoothGatt$1.onConfigureMTU(BluetoothGatt.java:605)
at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:208)
at android.os.Binder.execTransact(Binder.java:697)
public static BluetoothLeScannerCompat getScanner() { if (mInstance != null) return mInstance; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) return mInstance = new BluetoothLeScannerImplOreo(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) return mInstance = new BluetoothLeScannerImplMarshmallow(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) return mInstance = new BluetoothLeScannerImplLollipop(); return mInstance = new BluetoothLeScannerImplJB(); }
in my xiaomi 4>>will get BluetoothLeScannerImplMarshmallow (android 6.0)
xiaomi mix 2>> will get BluetoothLeScannerImplOreo( android 8.0)
could you tell me the diffrence of this?
i found xiaomi mix2 can scan provinsioned device easier than xiaomi 4,
You can't even scan it on xiammi 4,
i dont know the reaseon of this condition , whiling provinsioning , onProvisioningComplete,
public void onProvisioningComplete(final ProvisionedMeshNode provisionedMeshNode) {
provisionedMeshNode.setIsProvisioned(true);
Debuger.d("onProvisioningComplete............");
mMeshNode = provisionedMeshNode;
mIsProvisioningComplete = true;
final Intent intent = new Intent(ACTION_PROVISIONING_STATE);
intent.putExtra(EXTRA_PROVISIONING_STATE, MeshNodeStates.MeshNodeStatus.PROVISIONING_COMPLETE.getState());
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
mIsProvisioningComplete = true;
mIsReconnecting = true;
final Intent intent1 = new Intent(ACTION_IS_RECONNECTING);
intent1.putExtra(EXTRA_DATA, mIsReconnecting);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent1);
//mIsReconnecting.postValue(true);
mBleMeshManager.setProvisioningComplete(true);
mBleMeshManager.disconnect();
mBleMeshManager.refreshDeviceCache();
mHandler.postDelayed(mReconnectRunnable, 1500); //Added a slight delay to disconnect and refresh the cache
}`
in this place the xiaomi 4 rescan so hard and you can't even scan it on xiammi 4,
Is this a compatibility issue?
Is your feature request related to a problem? Please describe.
We have devices with multiple elements, that all support genericOnOffServer. Sending acknowledged messages return status messages, but it is not clear, which element sent which message. Currently the callbacks for onGenericOnOffStatusReceived won't allow to determine from which element these messages came from.
public void onGenericOnOffStatusReceived(ProvisionedMeshNode node, boolean presentOnOff, Boolean targetOnOff, int transitionSteps, int transitionResolution)
Describe the solution you'd like
We would like to have public void onGenericOnOffStatusReceived(ProvisionedMeshNode node, Integer elementAddress, boolean presentOnOff, Boolean targetOnOff, int transitionSteps, int transitionResolution)
where Integer elementAddress (or if preferred byte[] elementAddress) is added to all callbacks, that are coming from a specific element, but does not have the element address in the actual payload.
I'd be happy to submit a pull request. Is there any eta on #73 so I can wait for it?
how to defin ConfigRelaySet profile ?
As of now the user is not notified if the device disconnected when the user is configuring a node. It would be nice to notify the user of a possible disconnection
Hi,Do you have a plan to upgrade the mesh network ? Like the
Android-DFU-Library
There is currently no way to delete a publication address, a method to clear the publication address as is done with subscription addresses
As a power user, I want to be able to configure my phone to support mesh messages and behave as a virtual light and/or light switch so that I can test the mesh features even if I do not have the hardware and be able to control nodes within the specification.
Random values.xml pops up and build fails
When I build the project, it fails with the message:
..\Android-nRF-Mesh-Library\Example\nrf-mesh\app\build\intermediates\res\merged\debug\values\values.xml
Error:(1073) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
Error:(1073) Unexpected end tag string
Error is in line 1073 of this file. Tried many solutions given on the net and they don't work. Also opening of resources tag:
<resources xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2" xmlns:ns2="http://schemas.android.com/tools">
The values of ns1= and ns2= values are red in colour i.e. error.
What I did here is removed these ns1 and ns2 values and converted it to:
<resources>
I then rebuilt it.
This time the error was different. It was in the file no\nordicsemi\android\meshprovisioner\transport\LowerTransportLayer.java
It gives an error for:
mHandler.postDelayed(() -> {
I says:
Error:(476, 34) error: cannot find symbol method metafactory(Lookup,String,MethodType,MethodType,MethodHandle,MethodType)
Platform details:
Logs / Screenshots
Below is my app gradle file:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "no.nordicsemi.android.nrfmeshprovisioner"
minSdkVersion 18
targetSdkVersion 27
versionCode 5
versionName "0.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
jackOptions {
enabled true
}
}
buildTypes {
release {
minifyEnabled false
shrinkResources false
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
dexOptions {
preDexLibraries = false
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:27.1.1'
compile 'com.android.support:design:27.1.1'
compile 'com.android.support:recyclerview-v7:27.1.1'
compile 'com.android.support:cardview-v7:27.1.1'
compile 'com.android.support.constraint:constraint-layout:1.1.0'
// Butter Knife
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
// Brings the new BluetoothLeScanner API to older platforms
compile 'no.nordicsemi.android.support.v18:scanner:1.1.0'
compile 'no.nordicsemi.android:ble:1.2.0'
// Log Bluetooth LE events in nRF Logger
compile 'com.android.support:multidex:1.0.1'
// Lifecycle extensions
compile 'android.arch.lifecycle:extensions:1.1.0'
compile 'com.google.dagger:dagger:2.11'
compile 'com.google.dagger:dagger-android:2.11'
compile 'com.google.dagger:dagger-android-support:2.11'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
compile 'com.google.code.gson:gson:2.8.3'
compile project(':meshprovisioner')
}
` protected MeshModel(final Parcel in) {
final int modelId = in.readInt();
if (modelId < Short.MIN_VALUE || modelId > Short.MAX_VALUE) {
mModelId = modelId;
} else {
mModelId = (short) modelId;
}
in.readList(mBoundAppKeyIndexes, Integer.class.getClassLoader());
sortAppKeys(in.readHashMap(String.class.getClassLoader()));
publishAddress = in.createByteArray();
publishAppKeyIndex = in.createByteArray();
credentialFlag = in.readInt();
publishTtl = in.readInt();
publishPeriod = in.readInt();
// publicationSteps = publishPeriod >> 6;
// publicationResolution = publishPeriod & 0x03;
publicationSteps = (short) (publishPeriod >> 2);
publicationResolution = publishPeriod & 0x03;
publishRetransmitCount=in.readInt();//add it 2018/11/6
publishRetransmitIntervalSteps = in.readInt();
in.readList(mSubscriptionAddress, byte[].class.getClassLoader());
}`
Describe the solution you'd like
I want to be able to control Generic Level Server model of a Mesh node from the app.
We hope to add a Vendor Model to config beacon,We consulted the GenericOnOffModel and made some necessary changes,implemented BeaconGet, BeaconSet,BeaconStatus;
we can receive BeaconStatus when i get Beacon Data,No matter how long the data is.
we can receive BeaconStatus when I send a short data to set beacon ,that valid data about 6 bytes ,example beacon major.
But we can not receive any data when I send a long data to set beacon ,that valid data about 20 bytes ,example beacon uuid,My colleague said he didn't receive the data of setting.
The above data length include our protocol but does not include mesh protocol.
Can you give me any advice,thanks!
Describe the bug
Provisioning the second Thingy will failed,happen to Example/nrf-mesh 1.0
To Reproduce
Steps to reproduce the behavior:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.