I think a low RF tx power should be enough in the case that the zigbee end device is close to the gateway (coord) device, hence it would be better for power saving if the TX power can be dynamically programmed. The adjustment can based on the LQI or RSSI. I've found this post about this issue:
it mentioned the emberAfPluginNetworkFindGetRadioPowerForChannelCallback defined by the network-find plugin, but I found it can only be used at the point device joining the PAN, after that this callback will not be called again, which doesn't satisfy my 'dynamically' requirement.
another API: emberSetTxPowerMode(uint16_t txPowerMode), I'm not sure whether it can be called anytime when stack is up.
Silicon Labs ZigBee radios do not allow for dynamic changing of the radio transmiter settings dynamically. While you can change the settings on the radio (Channel and power) at run time, the radio must be turned off and then back on for the settings to be changed. For near dynamic changing you could cycle the radio power quickly to allow the Tx changes to be set.
Thanks for the reply!
I'm not very clear about "cycle the radio power quickly.." and it seems there is no api to turn on/off the radio.
According to my understand seems there is no safe way to implement the dynamic adjustment of radio power. I've implemented a plugin by using the emberSetRadioPower, my simple test case with only several node is just ok.