Before I begin, I'm using a port of SimpliciTI v1.0.5 for CCE. I don't know if frequency agility was fully operational for that version. If not, I suppose I can just wait until SimpliciTI v1.1.0, and I'll port my code then.
The function nwk_scanForChannels in nwk_freq.c is used by end devices to locate the frequency channel on which the AP exists. The end device sequentially broadcasts packets on all its frequency channels and listens for the AP's reply. If it hears a reply, and already knows its own AP's address, it checks to make sure that the source address of the reply is that of its known AP address.
I have verified that the AP is hearing the ping requests and is sending ping replys. I have also verified that the ED is receiving these ping replys. However, when it goes to check whether or not the source address is that of its known AP, it fails. The ping reply has a source of address of {0, 0, 0, 0}. For some reason the AP doesn't seem to be inserting its source address into the reply. Is there a known reason for that?
As another side issue, the code on the ED doesn't check to make sure that the radio is on (i.e. receiver on, not simply awake) before it writes out the the ping request. It pings, then verifies that it will actually be able to hear the ping reply, should one occur. I suppose it's pretty good bet that the ED code will easily execute before the AP is ever able to send a reply. That so?