ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
365965 Топик полностью
diper (02.11.2012 15:48 - 15:53, просмотров: 203) ответил PlainUser на Есть один момент.
Не надо эти функции. Достаточно ST_RadioReceiveIsrCallback(...) Эти функции наверно нужны только если включен ST_RadioEnableAutoAck(TRUE) и то если будешь пользоваться полем "Frame Pending field".
The Frame Pending field shall be set to one if the device sending the frame has more data for the recipient,
as described in 5.1.6.3. This field shall be set to zero otherwise.
The Frame Pending field shall be used only in beacon frames or frames transmitted either during the CAP
by devices operating on a beacon-enabled PAN or at any time by devices operating on a nonbeacon-enabled
PAN.
At all other times, it shall be set to zero on transmission and ignored on reception.

If the acknowledgment frame is being sent in response to a received data request command, the device
sending the acknowledgment frame shall determine whether it has data pending for the recipient. If the
device can determine this before sending the acknowledgment frame, as described in 5.1.6.4.2, it shall set the
Frame Pending field according to whether there is pending data. Otherwise, the Frame Pending field shall
be set to one. If the acknowledgment frame is being sent in response to either a data frame or another type
of MAC command frame, the device shall set the Frame Pending field to zero.
Фразы "The library will set the frame pending bit in the outgoing short address fields ACK only ..." не нашел. Смысла "short address fields" не понимаю, т.к. в ACK фреймах вообще нет адреса. У меня в доке так
The ST_RadioDataPendingforLongIdIsrCallback and ST_RadioDataPendingforShortIdIsrCallback
callbacks are called by the library when the packet source short or long address has been
received. The library sets the frame pending bit in the outgoing acknowledgment only if the
related callback returns TRUE. The user callback implementation must check if the
receiving node has pending data for the detected sender source. This can be done by
searching the source address in a lookup table containing the sender addresses for which
there are data pending, and returning TRUE if there is pending data, and FALSE otherwise.