|
|
|
@ -160,6 +160,7 @@ size_t cc2420_tx_prepare(cc2420_t *dev, const struct iovec *data, unsigned count
|
|
|
|
|
size_t pkt_len = 2; /* include the FCS (frame check sequence) */
|
|
|
|
|
|
|
|
|
|
/* wait for any ongoing transmissions to be finished */
|
|
|
|
|
DEBUG("cc2420: tx_exec: waiting for any ongoing transmission\n");
|
|
|
|
|
while (cc2420_get_state(dev) & NETOPT_STATE_TX) {}
|
|
|
|
|
|
|
|
|
|
/* get and check the length of the packet */
|
|
|
|
@ -186,9 +187,6 @@ size_t cc2420_tx_prepare(cc2420_t *dev, const struct iovec *data, unsigned count
|
|
|
|
|
|
|
|
|
|
void cc2420_tx_exec(cc2420_t *dev)
|
|
|
|
|
{
|
|
|
|
|
/* make sure, any ongoing transmission is finished */
|
|
|
|
|
DEBUG("cc2420: tx_exec: waiting for any ongoing transmission\n");
|
|
|
|
|
while (cc2420_get_state(dev) & NETOPT_STATE_TX) {}
|
|
|
|
|
/* trigger the transmission */
|
|
|
|
|
if (dev->options & CC2420_OPT_TELL_TX_START) {
|
|
|
|
|
dev->netdev.netdev.event_callback(&dev->netdev.netdev,
|
|
|
|
@ -203,15 +201,6 @@ void cc2420_tx_exec(cc2420_t *dev)
|
|
|
|
|
DEBUG("cc2420: tx_exec: triggering TX without CCA\n");
|
|
|
|
|
cc2420_strobe(dev, CC2420_STROBE_TXON);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while (gpio_read(dev->params.pin_sfd)) {
|
|
|
|
|
puts("\t...ongoing}");
|
|
|
|
|
}
|
|
|
|
|
if (dev->options & CC2420_OPT_TELL_TX_END) {
|
|
|
|
|
dev->netdev.netdev.event_callback(&dev->netdev.netdev,
|
|
|
|
|
NETDEV2_EVENT_TX_COMPLETE);
|
|
|
|
|
}
|
|
|
|
|
DEBUG("cc2420: tx_exec: TX_DONE\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int cc2420_rx(cc2420_t *dev, uint8_t *buf, size_t max_len, void *info)
|
|
|
|
|