esp_mesh_waive_root() function
Cause the root device to give up (waive) its mesh root status - A device is elected root primarily based on RSSI from the external router. - If external router conditions change, users can call this API to perform a root switch. - In this API, users could specify a desired root address to replace itself or specify an attempts value to ask current root to initiate a new round of voting. During the voting, a better root candidate would be expected to find to replace the current one. - If no desired root candidate, the vote will try a specified number of attempts (at least 15). If no better root candidate is found, keep the current one. If a better candidate is found, the new better one will send a root switch request to the current root, current root will respond with a root switch acknowledgment. - After that, the new candidate will connect to the router to be a new root, the previous root will disconnect with the router and choose another parent instead. Root switch is completed with minimal disruption to the whole mesh network. @attention This API is only called by the root. - Field percentage threshold is 0.9 by default. - Field is_rc_specified shall be false. - Field attempts shall be at least 15 times.
Arguments
vote
vote configuration - If this parameter is set NULL, the vote will perform the default 15 times.
reason
only accept MESH_VOTE_REASON_ROOT_INITIATED for now
Return value
- ESP_OK - ESP_ERR_MESH_QUEUE_FULL - ESP_ERR_MESH_DISCARD - ESP_FAIL