Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of EV-COG-AD3029LZ by
Diff: SimpleSpirit1.cpp
- Revision:
- 19:42df12d5f750
- Parent:
- 18:d6f789f6f4c9
- Child:
- 21:d5c10e5742f6
--- a/SimpleSpirit1.cpp Mon Nov 07 10:01:36 2016 +0100
+++ b/SimpleSpirit1.cpp Mon Nov 07 10:06:16 2016 +0100
@@ -72,10 +72,6 @@
/* init cube vars */
spirit_on = OFF;
-#ifdef CONTIKI // betzw - TODO
- packet_is_prepared = 0;
- just_got_an_ack = 0;
-#endif // CONTIKI
last_rssi = 0 ; //MGR
last_lqi = 0 ; //MGR
@@ -162,112 +158,6 @@
#endif
}
-#ifdef CONTIKI // betzw - TODO
-/** Prepare the radio with a packet to be sent. **/
-int SimpleSpirit1::prepare_contiki(const void *payload, unsigned short payload_len) {
- PRINTF("Spirit1: prep %u\n", payload_len);
- packet_is_prepared = 0;
-
- /* Checks if the payload length is supported */
- if(payload_len > MAX_PACKET_LEN) {
- return RADIO_TX_ERR;
- }
-
- /* Should we delay for an ack? */
-#if NULLRDC_CONF_802154_AUTOACK
- frame802154_t info154;
- wants_an_ack = 0;
- if(payload_len > ACK_LEN
- && frame802154_parse((char*)payload, payload_len, &info154) != 0) {
- if(info154.fcf.frame_type == FRAME802154_DATAFRAME
- && info154.fcf.ack_required != 0) {
- wants_an_ack = 1;
- }
- }
-#endif /* NULLRDC_CONF_802154_AUTOACK */
-
- /* Sets the length of the packet to send */
- disable_spirit_irq();
- cmd_strobe(SPIRIT1_STROBE_FTX);
- pkt_basic_set_payload_length(payload_len);
- spi_write_linear_fifo(payload_len, (uint8_t *)payload);
- enable_spirit_irq();
-
- PRINTF("PREPARE OUT\n");
-
- packet_is_prepared = 1;
- return RADIO_TX_OK;
-}
-
-/** Send the packet that has previously been prepared. **/
-int SimpleSpirit1::transmit_contiki(unsigned short payload_len) {
- /* This function blocks until the packet has been transmitted */
- //rtimer_clock_t rtimer_txdone, rtimer_rxack;
-
- PRINTF("TRANSMIT IN\n");
- if(!packet_is_prepared) {
- return RADIO_TX_ERR;
- }
-
- /* Stores the length of the packet to send */
- /* Others spirit_radio_prepare will be in hold */
- spirit_tx_len = payload_len;
-
- /* Puts the SPIRIT1 in TX state */
- receiving_packet = 0;
- set_ready_state();
- cmd_strobe(SPIRIT1_STROBE_TX);
- just_got_an_ack = 0;
- BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_TX, 1);
- //BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 4); //For GFSK with high data rate
- BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 50); //For FSK with low data rate
-
- /* Reset radio - needed for immediate RX of ack */
- CLEAR_TXBUF();
- CLEAR_RXBUF();
- disable_spirit_irq();
- irq_clear_status();
- receiving_packet = 0;
- cmd_strobe(SPIRIT1_STROBE_SABORT);
- wait_us(SABORT_WAIT_US);
- cmd_strobe(SPIRIT1_STROBE_READY);
- BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 1);
- cmd_strobe(SPIRIT1_STROBE_FRX);
- cmd_strobe(SPIRIT1_STROBE_RX);
- BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 1);
- enable_spirit_irq();
-
-#if XXX_ACK_WORKAROUND
- just_got_an_ack = 1;
-#endif /* XXX_ACK_WORKAROUND */
-
-#if NULLRDC_CONF_802154_AUTOACK
- if (wants_an_ack) {
- rtimer_txdone = us_ticker_read();
- BUSYWAIT_UNTIL(just_got_an_ack, 2);
- rtimer_rxack = us_ticker_read();
-
- if(just_got_an_ack) {
- ACKPRINTF("debug_ack: ack received after %u us\n",
- (uint32_t)(rtimer_rxack - rtimer_txdone));
- } else {
- ACKPRINTF("debug_ack: no ack received\n");
- }
- }
-#endif /* NULLRDC_CONF_802154_AUTOACK */
-
- PRINTF("TRANSMIT OUT\n");
-
- CLEAR_TXBUF();
-
- packet_is_prepared = 0;
-
- wait_us(1);
-
- return RADIO_TX_OK;
-}
-#endif // CONTIKI
-
int SimpleSpirit1::send(const void *payload, unsigned int payload_len) {
/* Checks if the payload length is supported */
if(payload_len > MAX_PACKET_LEN) {
@@ -469,11 +359,6 @@
/* Copies the packet received */
memcpy(buf, spirit_rx_buf, spirit_rx_len);
-#ifdef CONTIKI // betzw - TODO
- packetbuf_set_attr(PACKETBUF_ATTR_RSSI, last_rssi); //MGR
- packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY, last_lqi); //MGR
-#endif
-
bufsize = spirit_rx_len;
_is_receiving = false;
stop_rx_timeout();
