|
13 | 13 | import static no.nordicsemi.android.mesh.opcodes.ConfigMessageOpCodes.CONFIG_MODEL_APP_STATUS; |
14 | 14 | import static no.nordicsemi.android.mesh.opcodes.ConfigMessageOpCodes.CONFIG_MODEL_PUBLICATION_STATUS; |
15 | 15 | import static no.nordicsemi.android.mesh.opcodes.ConfigMessageOpCodes.CONFIG_MODEL_SUBSCRIPTION_STATUS; |
| 16 | +import static no.nordicsemi.android.mesh.opcodes.ConfigMessageOpCodes.CONFIG_NETWORK_TRANSMIT_STATUS; |
16 | 17 | import static no.nordicsemi.android.mesh.opcodes.ConfigMessageOpCodes.CONFIG_NODE_RESET_STATUS; |
17 | 18 | import static no.nordicsemi.android.mesh.opcodes.ConfigMessageOpCodes.CONFIG_RELAY_STATUS; |
18 | 19 | import static no.nordicsemi.android.nrfmesh.ble.BleMeshManager.MESH_PROXY_UUID; |
|
62 | 63 | import no.nordicsemi.android.mesh.transport.ConfigModelAppStatus; |
63 | 64 | import no.nordicsemi.android.mesh.transport.ConfigModelPublicationStatus; |
64 | 65 | import no.nordicsemi.android.mesh.transport.ConfigModelSubscriptionStatus; |
| 66 | +import no.nordicsemi.android.mesh.transport.ConfigNetworkTransmitStatus; |
65 | 67 | import no.nordicsemi.android.mesh.transport.ConfigNodeResetStatus; |
66 | 68 | import no.nordicsemi.android.mesh.transport.ConfigRelayStatus; |
67 | 69 | import no.nordicsemi.android.mesh.transport.ControlMessage; |
@@ -766,39 +768,58 @@ public void onMeshMessageReceived(final int src, @NonNull final MeshMessage mesh |
766 | 768 | } |
767 | 769 | } else if (meshMessage.getOpCode() == CONFIG_DEFAULT_TTL_STATUS) { |
768 | 770 | final ConfigDefaultTtlStatus status = (ConfigDefaultTtlStatus) meshMessage; |
769 | | -/* if (mSetupProvisionedNode) { |
| 771 | + if (mSetupProvisionedNode) { |
770 | 772 | mIsDefaultTtlReceived = true; |
| 773 | + if(mMeshNetworkLiveData.getAppKeys().isEmpty()){ |
| 774 | + mSetupProvisionedNode = false; |
| 775 | + } |
771 | 776 | mProvisionedMeshNodeLiveData.postValue(node); |
772 | 777 | mProvisioningStateLiveData.onMeshNodeStateUpdated(ProvisionerStates.DEFAULT_TTL_STATUS_RECEIVED); |
773 | | - mHandler.postDelayed(() -> { |
774 | | - final ConfigNetworkTransmitSet networkTransmitSet = new ConfigNetworkTransmitSet(2, 1); |
775 | | - mMeshManagerApi.createMeshPdu(node.getUnicastAddress(), networkTransmitSet); |
776 | | - }, 1500); |
777 | | - } else { |
778 | | - updateNode(node); |
779 | | - mMeshMessageLiveData.postValue(status); |
780 | | - } |
781 | | - } else if (meshMessage.getOpCode() == CONFIG_NETWORK_TRANSMIT_STATUS) { |
782 | | - final ConfigNetworkTransmitStatus status = (ConfigNetworkTransmitStatus) meshMessage;*/ |
783 | | - if (mSetupProvisionedNode) { |
784 | | - mIsNetworkRetransmitSetCompleted = true; |
785 | | - mProvisioningStateLiveData.onMeshNodeStateUpdated(ProvisionerStates.NETWORK_TRANSMIT_STATUS_RECEIVED); |
786 | | - final ApplicationKey appKey = mMeshNetworkLiveData.getSelectedAppKey(); |
787 | | - if (appKey != null) { |
788 | | - mHandler.postDelayed(() -> { |
789 | | - // We should use the app key's boundNetKeyIndex as the network key index when adding the default app key |
790 | | - final NetworkKey networkKey = mMeshNetwork.getNetKeys().get(appKey.getBoundNetKeyIndex()); |
791 | | - final ConfigAppKeyAdd configAppKeyAdd = new ConfigAppKeyAdd(networkKey, appKey); |
792 | | - mMeshManagerApi.createMeshPdu(node.getUnicastAddress(), configAppKeyAdd); |
793 | | - }, 1500); |
794 | | - } else { |
795 | | - mSetupProvisionedNode = false; |
796 | | - mProvisioningStateLiveData.onMeshNodeStateUpdated(ProvisionerStates.APP_KEY_STATUS_RECEIVED); |
| 778 | + //mHandler.postDelayed(() -> { |
| 779 | + // final ConfigNetworkTransmitSet networkTransmitSet = new ConfigNetworkTransmitSet(2, 1); |
| 780 | + // mMeshManagerApi.createMeshPdu(node.getUnicastAddress(), networkTransmitSet); |
| 781 | + //}, 1500); |
| 782 | + if(!mMeshNetworkLiveData.getAppKeys().isEmpty()) { |
| 783 | + final ApplicationKey appKey = mMeshNetworkLiveData.getSelectedAppKey(); |
| 784 | + if (appKey != null) { |
| 785 | + mHandler.postDelayed(() -> { |
| 786 | + // We should use the app key's boundNetKeyIndex as the network key index when adding the default app key |
| 787 | + final NetworkKey networkKey = mMeshNetwork.getNetKeys().get(appKey.getBoundNetKeyIndex()); |
| 788 | + final ConfigAppKeyAdd configAppKeyAdd = new ConfigAppKeyAdd(networkKey, appKey); |
| 789 | + mMeshManagerApi.createMeshPdu(node.getUnicastAddress(), configAppKeyAdd); |
| 790 | + }, 1500); |
| 791 | + } else { |
| 792 | + mSetupProvisionedNode = false; |
| 793 | + mProvisioningStateLiveData.onMeshNodeStateUpdated(ProvisionerStates.APP_KEY_STATUS_RECEIVED); |
| 794 | + } |
797 | 795 | } |
798 | 796 | } else { |
799 | 797 | updateNode(node); |
800 | 798 | mMeshMessageLiveData.postValue(status); |
801 | 799 | } |
| 800 | + } else if (meshMessage.getOpCode() == CONFIG_NETWORK_TRANSMIT_STATUS) { |
| 801 | + final ConfigNetworkTransmitStatus status = (ConfigNetworkTransmitStatus) meshMessage; |
| 802 | + //if (mSetupProvisionedNode) { |
| 803 | + // mIsNetworkRetransmitSetCompleted = true; |
| 804 | + // mProvisioningStateLiveData.onMeshNodeStateUpdated(ProvisionerStates.NETWORK_TRANSMIT_STATUS_RECEIVED); |
| 805 | + // final ApplicationKey appKey = mMeshNetworkLiveData.getSelectedAppKey(); |
| 806 | + // if (appKey != null) { |
| 807 | + // mHandler.postDelayed(() -> { |
| 808 | + // // We should use the app key's boundNetKeyIndex as the network key index when adding the default app key |
| 809 | + // final NetworkKey networkKey = mMeshNetwork.getNetKeys().get(appKey.getBoundNetKeyIndex()); |
| 810 | + // final ConfigAppKeyAdd configAppKeyAdd = new ConfigAppKeyAdd(networkKey, appKey); |
| 811 | + // mMeshManagerApi.createMeshPdu(node.getUnicastAddress(), configAppKeyAdd); |
| 812 | + // }, 1500); |
| 813 | + // } else { |
| 814 | + // mSetupProvisionedNode = false; |
| 815 | + // mProvisioningStateLiveData.onMeshNodeStateUpdated(ProvisionerStates.APP_KEY_STATUS_RECEIVED); |
| 816 | + // } |
| 817 | + //} else { |
| 818 | + // updateNode(node); |
| 819 | + // mMeshMessageLiveData.postValue(status); |
| 820 | + //} |
| 821 | + updateNode(node); |
| 822 | + mMeshMessageLiveData.postValue(status); |
802 | 823 | } else if (meshMessage.getOpCode() == CONFIG_APPKEY_STATUS) { |
803 | 824 | final ConfigAppKeyStatus status = (ConfigAppKeyStatus) meshMessage; |
804 | 825 | if (mSetupProvisionedNode) { |
|
0 commit comments