Hi,
The default settings in collector/sensor node example code seem to indicate that we should include all channels in FH_ASYNC_CHANNEL_MASK, as in the following code:
// subg/config.h /*! Channel mask used when CONFIG_FH_ENABLE is true. Represents the list of channels on which the device can hop. The actual sequence used shall be based on DH1CF function. It is represented as a bit string with LSB representing Ch0. e.g., 0x01 0x10 represents Ch0 and Ch12 are included. */ #define CONFIG_FH_CHANNEL_MASK { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } /*! List of channels to target the Async frames It is represented as a bit string with LSB representing Ch0 e.g., 0x01 0x10 represents Ch0 and Ch12 are included It should cover all channels that could be used by a target device in its hopping sequence. Channels marked beyond number of channels supported by PHY Config will be excluded by stack. To avoid interference on a channel, it should be removed from Async Mask and added to exclude channels (CONFIG_CHANNEL_MASK). */ #define FH_ASYNC_CHANNEL_MASK { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
During testing, I found out that if we reduce the number of channels actually used, as defined in CONFIG_FH_CHANNEL_MASK, something like the following:
#define CONFIG_FH_CHANNEL_MASK { 0x55,0x55,0x55,0x55,0x55,0x55, \ 0x55,0x55,0x55,0x55,0x55,0x55, \ 0x55,0x00,0x00,0x00,0x00 }
The amount of time a sensor node needs to join network will be significantly reduced, roughly proportional to the number of channels actually used. Also in theory if we use different channels for different networks, even those networks co-exist in close vicinity. they won't interfere with each other. We can also avoid interference from other systems.
So my question is: how do we dynamically set different channels for different networks? Should we include all channels in FH_ASYNC_CHANNEL_MASK even if we don't actually use all channels for frequency hopping?
Please advise.
Thanks in advance.