altos/telelco-v3.0: Merge info into one screen
[fw/altos] / src / kernel / ao_radio_cmac.c
index 155fce350b69f77c464d5fefe747ede3c6478b14..b7aceef6792cc4646eb069917c1f348752c1ead0 100644 (file)
@@ -37,7 +37,7 @@ round_len(uint8_t len)
                len = AO_CMAC_KEY_LEN;
        rem = len % AO_CMAC_KEY_LEN;
        if (rem != 0)
-               len += (AO_CMAC_KEY_LEN - rem);
+               len += (uint8_t) (AO_CMAC_KEY_LEN - rem);
        return len;
 }
 
@@ -76,8 +76,10 @@ radio_cmac_send(uint8_t len)
  * Receive and validate an incoming packet
  */
 
+int8_t ao_radio_cmac_last_rssi;
+
 static int8_t
-radio_cmac_recv(uint8_t len, uint16_t timeout) 
+radio_cmac_recv(uint8_t len, AO_TICK_TYPE timeout) 
 {
        uint8_t i;
 
@@ -92,6 +94,8 @@ radio_cmac_recv(uint8_t len, uint16_t timeout)
                return AO_RADIO_CMAC_TIMEOUT;
        }
 
+       ao_radio_cmac_last_rssi = ao_radio_rssi;
+
        if (!(cmac_data[len + AO_CMAC_KEY_LEN +1] & AO_RADIO_STATUS_CRC_OK))
                return AO_RADIO_CMAC_CRC_ERROR;
 
@@ -132,7 +136,7 @@ ao_radio_cmac_send(void *packet, uint8_t len)
        if (len > AO_CMAC_MAX_LEN)
                return AO_RADIO_CMAC_LEN_ERROR;
        ao_mutex_get(&ao_radio_cmac_mutex);
-       ao_xmemcpy(cmac_data, packet, len);
+       memcpy(cmac_data, packet, len);
 #if AO_LED_TX
        ao_led_on(AO_LED_TX);
 #endif
@@ -145,7 +149,7 @@ ao_radio_cmac_send(void *packet, uint8_t len)
 }
 
 int8_t
-ao_radio_cmac_recv(void *packet, uint8_t len, uint16_t timeout) 
+ao_radio_cmac_recv(void *packet, uint8_t len, AO_TICK_TYPE timeout) 
 {
        int8_t  i;
        if (len > AO_CMAC_MAX_LEN)
@@ -159,7 +163,7 @@ ao_radio_cmac_recv(void *packet, uint8_t len, uint16_t timeout)
        ao_led_off(AO_LED_RX);
 #endif
        if (i == AO_RADIO_CMAC_OK)
-               ao_xmemcpy(packet, cmac_data, len);
+               memcpy(packet, cmac_data, len);
        ao_mutex_put(&ao_radio_cmac_mutex);
        return i;
 }