1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Fixed a lot of comments by removing tabs and correcting format.

This commit is contained in:
Hauke Petersen 2013-11-27 17:54:30 +01:00
parent 3785fe956b
commit edcabf7cb6
64 changed files with 734 additions and 765 deletions

View File

@ -9,10 +9,15 @@
/**
* @ingroup core_util
* @{
<<<<<<< HEAD
*
* @file bitarithm.c
* @brief Bit arithmetic helper functions implementation
*
=======
* @file bitarithm.c
* @brief Bit arithmetic helper functions implementation
>>>>>>> 94fedda... Fixed a lot of comments by removing tabs and correcting format.
* @author Kaspar Schleiser <kaspar.schleiser@fu-berlin.de>
* @author Martin Lenders <mlenders@inf.fu-berlin.de>
*

View File

@ -13,9 +13,9 @@
* @file config.h
* @brief Kernel configuration interface
*
* @author unknown
*/
#ifndef CONFIG_H
#define CONFIG_H

View File

@ -122,12 +122,9 @@ void hwtimer_spin(unsigned long ticks);
int hwtimer_active(void);
/**
* @}
*/
/** @} */
/* internal */
/**
* @brief TODO
* @internal

View File

@ -24,5 +24,5 @@
int fw_puts(char *data, int count);
/** @} */
/** @} */
#endif /* IO_H */

View File

@ -57,5 +57,5 @@ void restoreIRQ(unsigned state);
*/
int inISR(void);
/** @} */
/** @} */
#endif /* IRQ_H_ */

View File

@ -13,6 +13,7 @@
* @file lifo.h
* @brief LIFO buffer API
*
* @author unknwon
*/
#ifndef __LIFO_H

View File

@ -19,7 +19,7 @@
* queue are never dropped and the sending never blocks. Threads with a full message queue behaves
* like in synchronous mode.
*
* @{
* @{
*
* @file msg.h
* @brief Messaging API for inter process communication

View File

@ -13,8 +13,6 @@
* @file queue.h
* @brief A simple queue implementation
*
* TODO document functions and datastructures
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Kaspar Schleiser <kaspar@schleiser.de>
*/

View File

@ -13,6 +13,9 @@
* @file lifo.c
* @brief LIFO buffer implementation
*
* @file lifo.c
* @brief LIFO buffer implementation
* @author unknown
* @}
*/

View File

@ -17,10 +17,10 @@
* @author Kaspar Schleiser <kaspar.schleiser@fu-berlin.de>
*
* @}
*
* TODO: setup dependency from SCHEDSTATISTICS to MODULE_HWTIMER
*/
/* TODO: setup dependency from SCHEDSTATISTICS to MODULE_HWTIMER */
#include <stdint.h>
#include <sched.h>
#include <kernel.h>

View File

@ -15,11 +15,6 @@
* @author Heiko Will <heiko.will@fu-berlin.de>
* @}
*/
/**
*
*
*
*/
#include <stdio.h>
#include "arm_cpu.h"

View File

@ -7,7 +7,7 @@
*/
/**
* @defgroup cc430 TI CC430
* @brief Texas Instruments CC430 specific code
* @ingroup cpu
* @defgroup cc430 TI CC430
* @brief Texas Instruments CC430 specific code
* @ingroup cpu
*/

View File

@ -11,20 +11,20 @@ See the file LICENSE in the top level directory for more details.
*******************************************************************************/
/**
* @ingroup lpc2387
* @ingroup lpc2387
* @{
*/
/**
* @file
* @brief LPC2387 GPIO Interrupt Multiplexer implementation
* @brief LPC2387 GPIO Interrupt Multiplexer implementation
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Michael Baar <michael.baar@fu-berlin.de>
* @author Michael Baar <michael.baar@fu-berlin.de>
* @version $Revision: 1508 $
*
* @note $Id: lpc2387-gpioint.c 1508 2009-10-26 15:10:02Z baar $
* @see dev_gpioint
* @note $Id: lpc2387-gpioint.c 1508 2009-10-26 15:10:02Z baar $
* @see dev_gpioint
*/
#include <stdio.h>
@ -34,7 +34,7 @@ See the file LICENSE in the top level directory for more details.
#include <irq.h>
struct irq_callback_t {
fp_irqcb callback;
fp_irqcb callback;
};
static struct irq_callback_t gpioint0[32];
@ -54,50 +54,50 @@ void gpioint_init(void)
bool
gpioint_set(int port, uint32_t bitmask, int flags, fp_irqcb callback)
{
struct irq_callback_t *cbdata;
struct irq_callback_t *cbdata;
unsigned long bit;
volatile unsigned long *en_f;
volatile unsigned long *en_r;
volatile unsigned long *en_clr;
/* lookup registers */
bit = number_of_highest_bit(bitmask); /* get irq mapping table index */
bit = number_of_highest_bit(bitmask); /* get irq mapping table index */
switch(port) {
case 0: /* PORT0 */
case 0: /* PORT0 */
cbdata = gpioint0;
en_f = &IO0_INT_EN_F;
en_r = &IO0_INT_EN_R;
en_clr = &IO0_INT_CLR;
break;
case 2: /* PORT2 */
case 2: /* PORT2 */
cbdata = gpioint2;
en_f = &IO2_INT_EN_F;
en_r = &IO2_INT_EN_R;
en_clr = &IO2_INT_CLR;
break;
default: /* unsupported */
return false; /* fail */
default: /* unsupported */
return false; /* fail */
}
/* reconfigure irq */
unsigned long cpsr = disableIRQ();
*en_clr |= bitmask; /* clear interrupt */
*en_clr |= bitmask; /* clear interrupt */
if ((flags & GPIOINT_FALLING_EDGE) != 0) {
*en_f |= bitmask; /* enable falling edge */
*en_f |= bitmask; /* enable falling edge */
}
else {
*en_f &= ~bitmask; /* disable falling edge */
*en_f &= ~bitmask; /* disable falling edge */
}
if ((flags & GPIOINT_RISING_EDGE) != 0) {
*en_r |= bitmask; /* enable rising edge */
*en_r |= bitmask; /* enable rising edge */
}
else {
*en_r &= ~bitmask; /* disable rising edge */
*en_r &= ~bitmask; /* disable rising edge */
}
if (((flags & (GPIOINT_FALLING_EDGE | GPIOINT_RISING_EDGE)) != 0)) {
@ -105,12 +105,12 @@ gpioint_set(int port, uint32_t bitmask, int flags, fp_irqcb callback)
}
else {
cbdata[bit].callback = NULL; /* remove from interrupt mapping table */
cbdata[bit].callback = NULL; /* remove from interrupt mapping table */
}
restoreIRQ(cpsr);
return true; /* success */
return true; /* success */
}
/*---------------------------------------------------------------------------*/
static void __attribute__((__no_instrument_function__)) test_irq(int port, unsigned long f_mask, unsigned long r_mask, struct irq_callback_t *pcb)
@ -122,7 +122,7 @@ static void __attribute__((__no_instrument_function__)) test_irq(int port, unsig
do {
if ((pcb->callback != NULL)) {
if ((r_mask & 1) | (f_mask & 1)) {
pcb->callback(); /* pass to handler */
pcb->callback(); /* pass to handler */
}
}
@ -135,7 +135,7 @@ static void __attribute__((__no_instrument_function__)) test_irq(int port, unsig
/*---------------------------------------------------------------------------*/
void GPIO_IRQHandler(void) __attribute__((interrupt("IRQ")));
/**
* @brief GPIO Interrupt handler function
* @brief GPIO Interrupt handler function
* @internal
*
* Invoked whenever an activated gpio interrupt is triggered by a rising
@ -143,27 +143,27 @@ void GPIO_IRQHandler(void) __attribute__((interrupt("IRQ")));
*/
void __attribute__((__no_instrument_function__)) GPIO_IRQHandler(void)
{
if (IO_INT_STAT & BIT0) { /* interrupt(s) on PORT0 pending */
unsigned long int_stat_f = IO0_INT_STAT_F; /* save content */
unsigned long int_stat_r = IO0_INT_STAT_R; /* save content */
if (IO_INT_STAT & BIT0) { /* interrupt(s) on PORT0 pending */
unsigned long int_stat_f = IO0_INT_STAT_F; /* save content */
unsigned long int_stat_r = IO0_INT_STAT_R; /* save content */
IO0_INT_CLR = int_stat_f; /* clear flags of fallen pins */
IO0_INT_CLR = int_stat_r; /* clear flags of risen pins */
IO0_INT_CLR = int_stat_f; /* clear flags of fallen pins */
IO0_INT_CLR = int_stat_r; /* clear flags of risen pins */
test_irq(0, int_stat_f, int_stat_r, gpioint0);
}
if (IO_INT_STAT & BIT2) { /* interrupt(s) on PORT2 pending */
unsigned long int_stat_f = IO2_INT_STAT_F; /* save content */
unsigned long int_stat_r = IO2_INT_STAT_R; /* save content */
if (IO_INT_STAT & BIT2) { /* interrupt(s) on PORT2 pending */
unsigned long int_stat_f = IO2_INT_STAT_F; /* save content */
unsigned long int_stat_r = IO2_INT_STAT_R; /* save content */
IO2_INT_CLR = int_stat_f; /* clear flags of fallen pins */
IO2_INT_CLR = int_stat_r; /* clear flags of risen pins */
IO2_INT_CLR = int_stat_f; /* clear flags of fallen pins */
IO2_INT_CLR = int_stat_r; /* clear flags of risen pins */
test_irq(2, int_stat_f, int_stat_r, gpioint2);
}
VICVectAddr = 0; /* Acknowledge Interrupt */
VICVectAddr = 0; /* Acknowledge Interrupt */
}
/*---------------------------------------------------------------------------*/
/** @} */

View File

@ -14,9 +14,9 @@ See the file LICENSE in the top level directory for more details.
#define __CPU_H
/**
* @defgroup lpc2387 NXP LPC2387
* @ingroup cpu
* @brief NXP LPC2387 specific code
* @defgroup lpc2387 NXP LPC2387
* @ingroup cpu
* @brief NXP LPC2387 specific code
* @{
*/
@ -24,7 +24,7 @@ See the file LICENSE in the top level directory for more details.
#include "lpc2387.h"
#include "arm_cpu.h"
extern uintptr_t __stack_start; ///< end of user stack memory space
extern uintptr_t __stack_start; ///< end of user stack memory space
void lpc2387_pclk_scale(uint32_t source, uint32_t target, uint32_t *pclksel, uint32_t *prescale);
bool install_irq(int IntNumber, void (*HandlerAddr)(void), int Priority);

View File

@ -7,7 +7,7 @@
*/
/**
* @defgroup lpc_common LPC common
* @brief Common code for all arm-based LPC controllers
* @ingroup cpu
* @defgroup lpc_common LPC common
* @brief Common code for all arm-based LPC controllers
* @ingroup cpu
*/

View File

@ -7,9 +7,9 @@
*/
/**
* @defgroup mc1322x Freescale MC1322x
* @ingroup cpu
* @brief Freescale MC1322x specific code
* @defgroup mc1322x Freescale MC1322x
* @ingroup cpu
* @brief Freescale MC1322x specific code
*/
#ifndef CPU_H
@ -19,6 +19,6 @@
#include "arm_cpu.h"
#include "mc1322x.h"
extern uintptr_t __stack_start; ///< end of user stack memory space
extern uintptr_t __stack_start; ///< end of user stack memory space
#endif /* CPU_H */

View File

@ -14,12 +14,12 @@ See the file LICENSE in the top level directory for more details.
#define _CPU_H
/**
* @defgroup msp430 TI MSP430
* @ingroup cpu
* @brief Texas Instruments MSP430 specific code
* @defgroup msp430 TI MSP430
* @ingroup cpu
* @brief Texas Instruments MSP430 specific code
<h2>First steps</h2>
\li See the <a href="../manual/index.html">manual</a> for toolchain and ide setup
\li See the <a href="../manual/index.html">manual</a> for toolchain and ide setup
* @{
*/
@ -34,7 +34,7 @@ See the file LICENSE in the top level directory for more details.
/* CPU speed */
#define F_CPU (2457600ul)
#define F_RC_OSCILLATOR (32768) ///< Frequency of internal RC oscillator
#define F_RC_OSCILLATOR (32768) ///< Frequency of internal RC oscillator
extern volatile int __inISR;
extern char __isr_stack[MSP430_ISR_STACK_SIZE];
@ -132,4 +132,3 @@ void msp430_cpu_init(void);
/** @} */
#endif // _CPU_H

View File

@ -13,8 +13,8 @@
/**
* @ingroup arch
* @defgroup native_cpu Native CPU
* @ingroup cpu
* @brief CPU abstraction for the native port
* @ingroup cpu
* @brief CPU abstraction for the native port
* @{
* @author Ludwig Ortmann <ludwig.ortmann@fu-berlin.de>
*/

View File

@ -16,8 +16,8 @@
*/
/**
* @defgroup native_net
* @ingroup native_cpu
* @defgroup native_net
* @ingroup native_cpu
* @{
* @author Ludwig Ortmann <ludwig.ortmann@fu-berlin.de>
*/

View File

@ -1,8 +1,8 @@
/******************************************************************************
/*
* Copyright 2008, Freie Universitaet Berlin (FUB). All rights reserved.
*
* These sources were developed at the Freie Universitaet Berlin, Computer Systems
and Telematics group (http://cst.mi.fu-berlin.de).
* and Telematics group (http://cst.mi.fu-berlin.de).
* ----------------------------------------------------------------------------
* This file is part of RIOT.
*
@ -13,27 +13,21 @@ and Telematics group (http://cst.mi.fu-berlin.de).
*******************************************************************************/
/**
* @defgroup drivers_cc110x CC110x
* @ingroup drivers
* @brief Texas Instruments CC110x driver
* @defgroup drivers_cc110x CC110x
* @ingroup drivers
* @brief Texas Instruments CC110x driver
*
* <h3>Quick links</h3>
* \li \ref cc1100_packet_layer0_t MAC packet format
* \li \ref cc1100_packet_layer0_t MAC packet format
*
* <hr>
* @{
*/
/**
*
* @file
* @brief TI Chipcon CC110x radio driver
* @brief TI Chipcon CC110x radio driver
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @version $Revision: 2128 $
*
* @note $Id: cc1100.h 2128 2010-05-12 12:07:59Z hillebra $
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
*/
#ifndef CC1100_H
@ -43,17 +37,17 @@ and Telematics group (http://cst.mi.fu-berlin.de).
#include "cc1100-interface.h"
/**
* @name Defines used as state values for state machine
* @name Defines used as state values for state machine
* @{
*/
#define RADIO_UNKNOWN (0)
#define RADIO_AIR_FREE_WAITING (1)
#define RADIO_WOR (2)
#define RADIO_IDLE (3)
#define RADIO_SEND_BURST (4)
#define RADIO_RX (5)
#define RADIO_SEND_ACK (6)
#define RADIO_PWD (7)
#define RADIO_UNKNOWN (0)
#define RADIO_AIR_FREE_WAITING (1)
#define RADIO_WOR (2)
#define RADIO_IDLE (3)
#define RADIO_SEND_BURST (4)
#define RADIO_RX (5)
#define RADIO_SEND_ACK (6)
#define RADIO_PWD (7)
/** @} */
@ -102,73 +96,73 @@ typedef struct cc1100_reg {
/** CC1100 radio configuration */
typedef struct cc1100_cfg_t {
cc1100_reg_t reg_cfg; ///< CC1100 register configuration
uint8_t pa_power; ///< Output power setting
cc1100_reg_t reg_cfg; ///< CC1100 register configuration
uint8_t pa_power; ///< Output power setting
} cc1100_cfg_t;
/**
* @brief Radio Control Flags
* @brief Radio Control Flags
*/
typedef struct cc1100_flags {
uint32_t TOF; ///< Time of flight of the last packet and last ACK
uint32_t TCP; ///< Time to compute packet
unsigned RPS : 16; ///< Raw packets sent to transmit last packet
unsigned RETC : 8; ///< Retransmission count of last send packet
unsigned RSSI : 8; ///< The RSSI value of last received packet
unsigned RSSI_SEND : 8; ///< The RSSI value of the last send unicast packet of this node
unsigned LQI : 8; ///< The LQI value of the last received packet
unsigned LL_ACK : 1; ///< Is set if Link-Level ACK is received, otherwise 0 (reset on new burst)
unsigned CAA : 1; ///< The status of the air (1 = air free, 0 = air not free)
unsigned CRC_STATE : 1; ///< The CRC status of last received packet (1 = OK, 0 = not OK)
unsigned SEQ : 1; ///< Sequence number (toggles between 0 and 1)
unsigned MAN_WOR : 1; ///< Manual WOR set (for randomized WOR times => no synch)
unsigned KT_RES_ERR : 1; ///< A hwtimer resource error has occurred (no free timers available)
unsigned TX : 1; ///< State machine TX lock, only ACKs will be received
unsigned WOR_RST : 1; ///< Reset CC1100 real time clock (WOR) on next WOR strobe
uint32_t TOF; ///< Time of flight of the last packet and last ACK
uint32_t TCP; ///< Time to compute packet
unsigned RPS : 16; ///< Raw packets sent to transmit last packet
unsigned RETC : 8; ///< Retransmission count of last send packet
unsigned RSSI : 8; ///< The RSSI value of last received packet
unsigned RSSI_SEND : 8; ///< The RSSI value of the last send unicast packet of this node
unsigned LQI : 8; ///< The LQI value of the last received packet
unsigned LL_ACK : 1; ///< Is set if Link-Level ACK is received, otherwise 0 (reset on new burst)
unsigned CAA : 1; ///< The status of the air (1 = air free, 0 = air not free)
unsigned CRC_STATE : 1; ///< The CRC status of last received packet (1 = OK, 0 = not OK)
unsigned SEQ : 1; ///< Sequence number (toggles between 0 and 1)
unsigned MAN_WOR : 1; ///< Manual WOR set (for randomized WOR times => no synch)
unsigned KT_RES_ERR : 1; ///< A hwtimer resource error has occurred (no free timers available)
unsigned TX : 1; ///< State machine TX lock, only ACKs will be received
unsigned WOR_RST : 1; ///< Reset CC1100 real time clock (WOR) on next WOR strobe
} cc1100_flags;
/**
* @brief Statistic interface for debugging
* @brief Statistic interface for debugging
*/
typedef struct cc1100_statistic {
uint32_t packets_in;
uint32_t packets_in_crc_fail;
uint32_t packets_in_while_tx;
uint32_t packets_in_dups;
uint32_t packets_in_up;
uint32_t packets_out;
uint32_t packets_out_acked;
uint32_t packets_out_broadcast;
uint32_t raw_packets_out;
uint32_t raw_packets_out_acked;
uint32_t acks_send;
uint32_t rx_buffer_max;
uint32_t watch_dog_resets;
uint32_t packets_in;
uint32_t packets_in_crc_fail;
uint32_t packets_in_while_tx;
uint32_t packets_in_dups;
uint32_t packets_in_up;
uint32_t packets_out;
uint32_t packets_out_acked;
uint32_t packets_out_broadcast;
uint32_t raw_packets_out;
uint32_t raw_packets_out_acked;
uint32_t acks_send;
uint32_t rx_buffer_max;
uint32_t watch_dog_resets;
} cc1100_statistic_t;
enum radio_mode {
RADIO_MODE_GET = -1, ///< leave mode unchanged
RADIO_MODE_OFF = 0, ///< turn radio off
RADIO_MODE_ON = 1 ///< turn radio on
RADIO_MODE_GET = -1, ///< leave mode unchanged
RADIO_MODE_OFF = 0, ///< turn radio off
RADIO_MODE_ON = 1 ///< turn radio on
};
enum radio_result {
RADIO_PAYLOAD_TOO_LONG = -1, ///< payload too long
RADIO_WRONG_MODE = -2, ///< operation not supported in current mode
RADIO_ADDR_OUT_OF_RANGE = -3, ///< address out of range
RADIO_OP_FAILED = -4, ///< operation failed
RADIO_CS_TIMEOUT = -5, ///< Carrier Sense timeout: air was never free
RADIO_INVALID_PARAM = -6 ///< Invalid parameters passed to radio
RADIO_PAYLOAD_TOO_LONG = -1, ///< payload too long
RADIO_WRONG_MODE = -2, ///< operation not supported in current mode
RADIO_ADDR_OUT_OF_RANGE = -3, ///< address out of range
RADIO_OP_FAILED = -4, ///< operation failed
RADIO_CS_TIMEOUT = -5, ///< Carrier Sense timeout: air was never free
RADIO_INVALID_PARAM = -6 ///< Invalid parameters passed to radio
};
/* ------------------------------------------------------------------------- */
// Variable declarations (also used in other files)
// Variable declarations (also used in other files)
/* ------------------------------------------------------------------------- */
extern volatile cc1100_flags rflags; ///< Radio flags
extern volatile cc1100_flags rflags; ///< Radio flags
extern volatile uint8_t radio_mode; ///< Radio mode
extern volatile uint8_t radio_state; ///< Radio state
extern volatile uint8_t radio_mode; ///< Radio mode
extern volatile uint8_t radio_state; ///< Radio state
/** Mode callback functions */
typedef void (*cc1100_mode_callback_t)(void);
@ -177,85 +171,85 @@ extern volatile cc1100_mode_callback_t cc1100_go_receive;
extern volatile cc1100_mode_callback_t cc1100_go_after_tx;
extern volatile cc1100_mode_callback_t cc1100_setup_mode;
extern volatile int wor_hwtimer_id; ///< WOR hwtimer identifier
extern volatile int wor_hwtimer_id; ///< WOR hwtimer identifier
/* ------------------------------------------------------------------------- */
// CC1100 radio driver API
// CC1100 radio driver API
/* ------------------------------------------------------------------------- */
/**
* @brief Set chip and state machine to IDLE mode.
* @brief Set chip and state machine to IDLE mode.
*/
void cc1100_set_idle(void);
/**
* @brief Convert radio mode to textual representation.
* @brief Convert radio mode to textual representation.
*
* @param mode The radio mode to convert.
* @param mode The radio mode to convert.
*
* @return Textual representation of radio mode.
* @return Textual representation of radio mode.
*/
char *cc1100_mode_to_text(uint8_t mode);
/**
* @brief Convert radio state to textual representation.
* @brief Convert radio state to textual representation.
*
* @param mode The radio state to convert.
* @param mode The radio state to convert.
*
* @return Textual representation of radio state.
* @return Textual representation of radio state.
*/
char *cc1100_state_to_text(uint8_t state);
/**
* @brief Convert current output power to textual representation.
* @brief Convert current output power to textual representation.
*
* @return Textual representation of current output power in dBm.
* @return Textual representation of current output power in dBm.
*/
char *cc1100_get_output_power(char *buf);
/**
* @brief Read out main radio control FSM state.
* @brief Read out main radio control FSM state.
*
* @return Textual representation of current main radio control FSM state.
* @return Textual representation of current main radio control FSM state.
*/
char *cc1100_get_marc_state(void);
/**
* @brief hwtimer wrapper function.
* @brief hwtimer wrapper function.
*
* This wrapper function puts the radio to receive mode.
*
* @param ptr Optional data (only to match hwtimer interface).
* @param ptr Optional data (only to match hwtimer interface).
*/
void cc1100_hwtimer_go_receive_wrapper(void *ptr);
/**
* @brief GDO0 interrupt handler.
* @brief GDO0 interrupt handler.
*/
void cc1100_gdo0_irq(void);
/**
* @brief GDO2 interrupt handler.
* @brief GDO2 interrupt handler.
*
* @note Wakes up MCU on packet reception.
* @note Wakes up MCU on packet reception.
*/
void cc1100_gdo2_irq(void);
/**
* @brief Transfer packet from CC1100 RX FIFO.
* @brief Transfer packet from CC1100 RX FIFO.
*
* Transfers a packet from CC1100 RX FIFO into a buffer.
*
* @param rxBuffer The buffer in which to transfer the packet.
* @param length The size of the buffer in which to transfer the packet.
* @param rxBuffer The buffer in which to transfer the packet.
* @param length The size of the buffer in which to transfer the packet.
*
* @return true if operation succeeded; false otherwise (e.g. no data
* @return true if operation succeeded; false otherwise (e.g. no data
* available, buffer to small or CRC check failed).
*/
bool cc1100_spi_receive_packet(uint8_t *rxBuffer, uint8_t length);
/**
* @brief Sends raw data.
* @brief Sends raw data.
*
* Sends the data of the given buffer. The first two bytes of the
* buffer must match the CC1100 packet format (so address interpretation
@ -264,8 +258,8 @@ bool cc1100_spi_receive_packet(uint8_t *rxBuffer, uint8_t length);
* This function is not mode safe!The radio must be woke up before
* sending and has to be put back manually to receive mode.
*
* @param tx_buffer Data source buffer.
* @param size The size of the data source buffer (maximum: 62 bytes).
* @param tx_buffer Data source buffer.
* @param size The size of the data source buffer (maximum: 62 bytes).
*/
void cc1100_send_raw(uint8_t *tx_buffer, uint8_t size);
@ -275,62 +269,61 @@ void cc1100_send_raw(uint8_t *tx_buffer, uint8_t size);
*/
/**
* @brief Initialize radio for carrier sense detection.
* @brief Initialize radio for carrier sense detection.
*/
void cc1100_cs_init(void);
/**
* @brief Enable or disable carrier sense detections.
* @brief Enable or disable carrier sense detections.
*
* Turns interrupts for carrier sense on or off.
*
* @param enabled true if carrier sense detection should
* @param enabled true if carrier sense detection should
* be enabled; false otherwise.
*/
void cc1100_cs_set_enabled(bool enabled);
/**
* @brief Read carrier sense signal.
* @brief Read carrier sense signal.
*
* @return High (1) if air is not free; low (0) if air is
* @return High (1) if air is not free; low (0) if air is
* currently free.
*/
int cc1100_cs_read(void);
/**
* @brief Reads the CCA (Clear Channel Assessment) flag.
* @brief Reads the CCA (Clear Channel Assessment) flag.
*
* The CCA flag is set by an interrupt service routine, after
* carrier sense detection is enabled. So the status of the
* carrier sense signal can be evaluated in a non blocking
* manner.
*
* @return The current value of the CCA flag (High: air is free,
* low: air is not free).
* @return The current value of the CCA flag (High: air is free,
* low: air is not free).
*/
int cc1100_cs_read_cca(void);
/**
* @brief Sets the CCA flag.
* @brief Sets the CCA flag.
*
* @param cca The new value for the CCA flag.
* @param cca The new value for the CCA flag.
*/
void cc1100_cs_write_cca(const int cca);
/** @} */
/**
* @name Statistic interface
* @name Statistic interface
* @{
*/
/**
* @brief Reset radio statistics.
* @brief Reset radio statistics.
*/
void cc1100_reset_statistic(void);
/** @} */
/** @} */
#endif

View File

@ -1,6 +1,4 @@
/**
* Default configuration for the cc110x chip
*
/*
* Copyright (C) 2013 INRIA
*
* This file is subject to the terms and conditions of the GNU Lesser General
@ -9,19 +7,17 @@
*/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
*
* @file
* @brief TI Chipcon CC110x default settings
* @brief TI Chipcon CC110x default settings
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author INRIA
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @author Oliver Hahm <oliver.hahm@inria.fr>
*
* @note $Id: cc110x-defaultSettings.c 2058 2010-03-31 08:59:31Z hillebra $
* @}
*/
@ -35,7 +31,7 @@
* -----------------------------------------
* 0 | 0 | 869.525
* 1 | 10 | 871.61
* 2 | 20 | 873.58 ~ seems to be bad (hang-ups with this channel)
* 2 | 20 | 873.58 ~ seems to be bad (hang-ups with this channel)
* 3 | 30 | 875.61
* 4 | 40 | 877.58
* 5 | 50 | 879.61
@ -68,9 +64,9 @@ char cc110x_conf[] = {
0x0F, // FIFOTHR
0x9B, // SYNC1
0xAD, // SYNC0
0x3D, // PKTLEN (maximum value of packet length byte = 61)
0x3D, // PKTLEN (maximum value of packet length byte = 61)
0x06, // PKTCTRL1
0x45, // PKTCTRL0 (variable packet length)
0x45, // PKTCTRL0 (variable packet length)
0xFF, // ADDR
CC1100_DEFAULT_CHANNR * 10, // CHANNR
0x0B, // FSCTRL1
@ -105,18 +101,18 @@ char cc110x_conf[] = {
0x00 // padding to 4 bytes
};
uint8_t pa_table_index = PATABLE; ///< Current PATABLE Index
uint8_t pa_table[] = { ///< PATABLE with available output powers
0x00, ///< -52 dBm
0x03, ///< -30 dBm
0x0D, ///< -20 dBm
0x1C, ///< -15 dBm
0x34, ///< -10 dBm
0x57, ///< - 5 dBm
0x3F, ///< - 1 dBm
0x8E, ///< 0 dBm
0x85, ///< + 5 dBm
0xCC, ///< + 7 dBm
0xC6, ///< + 9 dBm
0xC3 ///< +10 dBm
uint8_t pa_table_index = PATABLE; ///< Current PATABLE Index
uint8_t pa_table[] = { ///< PATABLE with available output powers
0x00, ///< -52 dBm
0x03, ///< -30 dBm
0x0D, ///< -20 dBm
0x1C, ///< -15 dBm
0x34, ///< -10 dBm
0x57, ///< - 5 dBm
0x3F, ///< - 1 dBm
0x8E, ///< 0 dBm
0x85, ///< + 5 dBm
0xCC, ///< + 7 dBm
0xC6, ///< + 9 dBm
0xC3 ///< +10 dBm
}; // If PATABLE is changed in size, adjust MAX_OUTPUT_POWER definition in CC1100 interface!

View File

@ -8,13 +8,15 @@
*/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
* @file cc110x-rx.c
* @brief Functions for packet reception on cc110x
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @file cc110x-rx.c
* @brief Functions for packet reception on cc110x
*
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @}
*/
#include <cc110x_ng.h>
#include <cc110x-internal.h>
#include <cc110x-config.h>
@ -41,8 +43,8 @@ static uint8_t is_ignored(radio_address_t addr);
static uint8_t receive_packet_variable(uint8_t *rxBuffer, uint8_t length);
static uint8_t receive_packet(uint8_t *rxBuffer, uint8_t length);
rx_buffer_t cc110x_rx_buffer[RX_BUF_SIZE]; ///< RX buffer
volatile uint8_t rx_buffer_next; ///< Next packet in RX queue
rx_buffer_t cc110x_rx_buffer[RX_BUF_SIZE]; ///< RX buffer
volatile uint8_t rx_buffer_next; ///< Next packet in RX queue
void cc110x_rx_handler(void)
{
@ -66,13 +68,13 @@ void cc110x_rx_handler(void)
cc110x_rx_buffer[rx_buffer_next].rssi = rflags._RSSI;
cc110x_rx_buffer[rx_buffer_next].lqi = rflags._LQI;
cc110x_strobe(CC1100_SFRX); /* ...for flushing the RX FIFO */
cc110x_strobe(CC1100_SFRX); /* ...for flushing the RX FIFO */
/* Valid packet. After a wake-up, the radio should be in IDLE.
* So put CC1100 to RX for WOR_TIMEOUT (have to manually put
* the radio back to sleep/WOR). */
//cc110x_spi_write_reg(CC1100_MCSM0, 0x08); /* Turn off FS-Autocal */
cc110x_write_reg(CC1100_MCSM2, 0x07); /* Configure RX_TIME (until end of packet) */
//cc110x_spi_write_reg(CC1100_MCSM0, 0x08); /* Turn off FS-Autocal */
cc110x_write_reg(CC1100_MCSM2, 0x07); /* Configure RX_TIME (until end of packet) */
cc110x_strobe(CC1100_SRX);
hwtimer_wait(IDLE_TO_RX_TIME);
radio_state = RADIO_RX;
@ -106,8 +108,8 @@ void cc110x_rx_handler(void)
rflags.TOF = 0;
/* CRC false or RX buffer full -> clear RX FIFO in both cases */
cc110x_strobe(CC1100_SIDLE); /* Switch to IDLE (should already be)... */
cc110x_strobe(CC1100_SFRX); /* ...for flushing the RX FIFO */
cc110x_strobe(CC1100_SIDLE); /* Switch to IDLE (should already be)... */
cc110x_strobe(CC1100_SFRX); /* ...for flushing the RX FIFO */
/* If packet interrupted this nodes send call,
* don't change anything after this point. */

View File

@ -8,11 +8,12 @@
*/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
* @file cc110x-tx.c
* @brief Functions for packet transmission on cc110x
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @file cc110x-tx.c
* @brief Functions for packet transmission on cc110x
*
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @}
*/
#include <stdio.h>

View File

@ -8,12 +8,12 @@
*/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
* @file cc110x.c
* @brief Basic functionality of cc110x driver
*
* @file cc110x.c
* @brief Basic functionality of cc110x driver
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @}
*/
#include <cc110x_ng.h>
@ -32,15 +32,15 @@
#include <debug.h>
/* some externals */
extern uint8_t pa_table[]; ///< PATABLE with available output powers
extern uint8_t pa_table[]; ///< PATABLE with available output powers
extern uint8_t pa_table_index; ///< Current PATABLE Index
/* global variables */
cc110x_statistic_t cc110x_statistic;
volatile cc110x_flags rflags; ///< Radio control flags
volatile uint8_t radio_state = RADIO_UNKNOWN; ///< Radio state
volatile cc110x_flags rflags; ///< Radio control flags
volatile uint8_t radio_state = RADIO_UNKNOWN; ///< Radio state
static radio_address_t radio_address; ///< Radio address
static uint8_t radio_channel; ///< Radio channel
@ -54,7 +54,7 @@ static void power_up_reset(void);
static void write_register(uint8_t r, uint8_t value);
/*---------------------------------------------------------------------------*
* Radio Driver API *
* Radio Driver API *
*---------------------------------------------------------------------------*/
void cc110x_init(int tpid)
{
@ -353,7 +353,7 @@ int16_t cc110x_get_channel(void)
/*---------------------------------------------------------------------------
* CC1100 reset functionality
* CC1100 reset functionality
*---------------------------------------------------------------------------*/
static void reset(void)
@ -409,13 +409,13 @@ static int rd_set_mode(int mode)
switch(mode) {
case RADIO_MODE_ON:
DEBUG("Enabling rx mode\n");
cc110x_init_interrupts(); /* Enable interrupts */
cc110x_setup_rx_mode(); /* Set chip to desired mode */
cc110x_init_interrupts(); /* Enable interrupts */
cc110x_setup_rx_mode(); /* Set chip to desired mode */
break;
case RADIO_MODE_OFF:
cc110x_disable_interrupts(); /* Disable interrupts */
cc110x_switch_to_pwd(); /* Set chip to power down mode */
cc110x_disable_interrupts(); /* Disable interrupts */
cc110x_switch_to_pwd(); /* Set chip to power down mode */
break;
case RADIO_MODE_GET:

View File

@ -1,8 +1,8 @@
/******************************************************************************
/*
* Copyright 2008, Freie Universitaet Berlin (FUB). All rights reserved.
*
* These sources were developed at the Freie Universitaet Berlin, Computer Systems
and Telematics group (http://cst.mi.fu-berlin.de).
* and Telematics group (http://cst.mi.fu-berlin.de).
* ----------------------------------------------------------------------------
* This file is part of RIOT.
*
@ -13,18 +13,16 @@ and Telematics group (http://cst.mi.fu-berlin.de).
*******************************************************************************/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
*
* @file cc110x-arch.h
* @brief CC1100 architecture dependent functions
* @file cc110x-arch.h
* @brief CC1100 architecture dependent functions
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @version $Revision: 1775 $
*
* @note $Id: arch_cc110x.h 1775 2010-01-26 09:37:03Z hillebra $
* @author Heiko Will <hwill@inf.fu-berlin.de>
*/
#ifndef __CC1100_ARCH_H
#define __CC1100_ARCH_H

View File

@ -1,18 +1,20 @@
/**
* Configuration parameters for the cc110x radio chip
*
/*
* Copyright (C) 2009 Freie Universität Berlin
* Copyright (C) 2013 INRIA
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License. See the file LICENSE in the top level directory for more
* details.
*
* @ingroup drivers_cc110x_ng
*/
/**
* @ingroup drivers_cc110x_ng
* @{
*
* @file cc110x-config.h
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @file cc110x-config.h
* @brief Configuration parameters for the cc110x radio chip
*
* @author Oliver Hahm <oliver.hahm@inria.fr>
*/
#ifndef CC1100_CONFIG_H
#define CC1100_CONFIG_H
@ -65,47 +67,47 @@ typedef struct {
/** CC1100 radio configuration */
typedef struct {
cc110x_reg_t reg_cfg; ///< CC1100 register configuration
uint8_t pa_power; ///< Output power setting
cc110x_reg_t reg_cfg; ///< CC1100 register configuration
uint8_t pa_power; ///< Output power setting
} cc110x_cfg_t;
/**
* @brief Radio Control Flags
* @brief Radio Control Flags
*/
typedef struct {
uint32_t TOF; ///< Time of flight of the last packet and last ACK
uint32_t TOF; ///< Time of flight of the last packet and last ACK
timex_t TOA; ///< Time of packet arriveal
uint32_t TCP; ///< Time to compute packet
unsigned RPS : 16; ///< Raw packets sent to transmit last packet
unsigned RETC : 8; ///< Retransmission count of last send packet
unsigned _RSSI : 8; ///< The RSSI value of last received packet
unsigned RSSI_SEND : 8; ///< The RSSI value of the last send unicast packet of this node
unsigned _LQI : 8; ///< The LQI value of the last received packet
unsigned LL_ACK : 1; ///< Is set if Link-Level ACK is received, otherwise 0 (reset on new burst)
unsigned CAA : 1; ///< The status of the air (1 = air free, 0 = air not free)
unsigned CRC_STATE : 1; ///< The CRC status of last received packet (1 = OK, 0 = not OK)
unsigned SEQ : 1; ///< Sequence number (toggles between 0 and 1)
unsigned MAN_WOR : 1; ///< Manual WOR set (for randomized WOR times => no synch)
unsigned KT_RES_ERR : 1; ///< A hwtimer resource error has occurred (no free timers available)
unsigned TX : 1; ///< State machine TX lock, only ACKs will be received
unsigned WOR_RST : 1; ///< Reset CC1100 real time clock (WOR) on next WOR strobe
uint32_t TCP; ///< Time to compute packet
unsigned RPS : 16; ///< Raw packets sent to transmit last packet
unsigned RETC : 8; ///< Retransmission count of last send packet
unsigned _RSSI : 8; ///< The RSSI value of last received packet
unsigned RSSI_SEND : 8; ///< The RSSI value of the last send unicast packet of this node
unsigned _LQI : 8; ///< The LQI value of the last received packet
unsigned LL_ACK : 1; ///< Is set if Link-Level ACK is received, otherwise 0 (reset on new burst)
unsigned CAA : 1; ///< The status of the air (1 = air free, 0 = air not free)
unsigned CRC_STATE : 1; ///< The CRC status of last received packet (1 = OK, 0 = not OK)
unsigned SEQ : 1; ///< Sequence number (toggles between 0 and 1)
unsigned MAN_WOR : 1; ///< Manual WOR set (for randomized WOR times => no synch)
unsigned KT_RES_ERR : 1; ///< A hwtimer resource error has occurred (no free timers available)
unsigned TX : 1; ///< State machine TX lock, only ACKs will be received
unsigned WOR_RST : 1; ///< Reset CC1100 real time clock (WOR) on next WOR strobe
} cc110x_flags;
/**
* @brief Statistic interface for debugging
* @brief Statistic interface for debugging
*/
typedef struct cc110x_statistic {
uint32_t packets_in;
uint32_t packets_in_crc_fail;
uint32_t packets_in_while_tx;
uint32_t packets_in_dups;
uint32_t packets_in_up;
uint32_t packets_out;
uint32_t packets_out_broadcast;
uint32_t raw_packets_out;
uint32_t acks_send;
uint32_t rx_buffer_max;
uint32_t watch_dog_resets;
uint32_t packets_in;
uint32_t packets_in_crc_fail;
uint32_t packets_in_while_tx;
uint32_t packets_in_dups;
uint32_t packets_in_up;
uint32_t packets_out;
uint32_t packets_out_broadcast;
uint32_t raw_packets_out;
uint32_t acks_send;
uint32_t rx_buffer_max;
uint32_t watch_dog_resets;
} cc110x_statistic_t;
/** @} */

View File

@ -16,20 +16,15 @@ and Telematics group (http://cst.mi.fu-berlin.de).
#define __CC1100_DEFAULTSETTINGS_H
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
*/
/**
*
* @file
* @brief TI Chipcon CC110x default settings
* @brief TI Chipcon CC110x default settings
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @version $Revision: 2139 $
*
* @note $Id: cc110x-defaultSettings.h 2139 2010-05-26 08:04:04Z hillebra $
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
*/
#include <stdint.h>
@ -37,61 +32,61 @@ and Telematics group (http://cst.mi.fu-berlin.de).
// returns hwtimer ticks per us
#define RTIMER_TICKS(us) HWTIMER_TICKS(us)
#define TIMER_TICK_USEC_RES (122)
#define TIMER_TICK_USEC_RES (122)
// Default PA table index (output power)
#define PATABLE (11)
#define PATABLE (11)
// Watchdog cycle time in seconds, set 0 to disable watchdog
#define CC1100_WATCHDOG_PERIOD (5)
#define CC1100_WATCHDOG_PERIOD (5)
// Number of transmission retries for unicast packets (constant RX mode)
#define TRANSMISSION_RETRIES_CRX_UC (5)
#define TRANSMISSION_RETRIES_CRX_UC (5)
// Number of transmission retries for unicast packets (WOR mode)
#define TRANSMISSION_RETRIES_WOR_UC (1)
#define TRANSMISSION_RETRIES_WOR_UC (1)
// Number of transmission retries for broadcast packets (constant RX mode)
#define TRANSMISSION_RETRIES_CRX_BC (0)
#define TRANSMISSION_RETRIES_CRX_BC (0)
// Number of transmission retries for broadcast packets (WOR mode)
#define TRANSMISSION_RETRIES_WOR_BC (0)
#define TRANSMISSION_RETRIES_WOR_BC (0)
// Time before chip goes back to RX (= stays in PWD after incoming packet)
#define WOR_TIMEOUT_1 (3200) // ~ 32 milliseconds
#define WOR_TIMEOUT_1 (3200) // ~ 32 milliseconds
// Time before chip goes back to WOR (= stays in RX after elapsed WOR_TIMEOUT_1)
#define WOR_TIMEOUT_2 (800) // ~ 8 milliseconds
#define WOR_TIMEOUT_2 (800) // ~ 8 milliseconds
// XOSC startup + FS calibration (300 + 809 us ~ 1.38 ms)
#define FS_CAL_TIME RTIMER_TICKS(12 * TIMER_TICK_USEC_RES)
#define FS_CAL_TIME RTIMER_TICKS(12 * TIMER_TICK_USEC_RES)
// Manual FS calibration (721 us)
#define MANUAL_FS_CAL_TIME RTIMER_TICKS(7 * TIMER_TICK_USEC_RES)
#define MANUAL_FS_CAL_TIME RTIMER_TICKS(7 * TIMER_TICK_USEC_RES)
// Reset wait time (in reset procedure)
#define RESET_WAIT_TIME RTIMER_TICKS(4 * TIMER_TICK_USEC_RES)
#define RESET_WAIT_TIME RTIMER_TICKS(4 * TIMER_TICK_USEC_RES)
// Time chip needs to go to RX
#define IDLE_TO_RX_TIME RTIMER_TICKS(1 * TIMER_TICK_USEC_RES)
#define IDLE_TO_RX_TIME RTIMER_TICKS(1 * TIMER_TICK_USEC_RES)
// Time chip needs to go to RX and CS signal is ready
#define CS_READY_TIME RTIMER_TICKS(3 * TIMER_TICK_USEC_RES)
#define CS_READY_TIME RTIMER_TICKS(3 * TIMER_TICK_USEC_RES)
// Default RX interval for WOR in milliseconds
#define T_RX_INTERVAL (542)
#define T_RX_INTERVAL (542)
// Time of packet interval in microseconds (at 400 kbps)
#define T_PACKET_INTERVAL (3800)
#define T_PACKET_INTERVAL (3800)
// The size of the configuration array for CC1100 in bytes
#define CC1100_CONF_SIZE (39)
#define CC1100_CONF_SIZE (39)
// The default channel number (0-24) for CC1100
#define CC1100_DEFAULT_CHANNR (0)
#define CC1100_DEFAULT_CHANNR (0)
// Burst retry to TX switch time (measured ~ 230 us)
#define BURST_RETRY_TX_SWITCH_TIME (23)
#define BURST_RETRY_TX_SWITCH_TIME (23)
/** @} */

View File

@ -8,32 +8,33 @@
*/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
*
* @file
* @brief Driver internal constants for 110x chip configuration
* @file cc110x-internal.h
* @brief Driver internal constants for 110x chip configuration
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @author Oliver Hahm <oliver.hahm@inria.fr>
*/
#ifndef CC1100_INTERNAL_H
#define CC1100_INTERNAL_H
#define FIXED_PKTLEN (0x00) ///< Fixed length packets, length configured in PKTLEN register.
#define VARIABLE_PKTLEN (0x01) ///< Variable length packets, packet length configured by the first
///< byte after synch word.
#define FIXED_PKTLEN (0x00) ///< Fixed length packets, length configured in PKTLEN register.
#define VARIABLE_PKTLEN (0x01) ///< Variable length packets, packet length configured by the first
///< byte after synch word.
/**
* @name Bitmasks for reading out status register values
* @name Bitmasks for reading out status register values
* @{
*/
/**
* @brief Bitmask (=10000000) for reading CRC_OK.
* @brief Bitmask (=10000000) for reading CRC_OK.
*
* If CRC_OK == 1: CRC for received data OK (or CRC disabled).
* If CRC_OK == 0: CRC error in received data.
@ -44,42 +45,42 @@
*
* The Link Quality Indicator estimates how easily a received signal can be demodulated.
*/
#define LQI_EST (0x7F)
#define I_RSSI (0x00) ///< Index 0 contains RSSI information (from optionally appended packet status bytes).
#define I_LQI (0x01) ///< Index 1 contains LQI & CRC_OK information (from optionally appended packet status bytes).
#define MARC_STATE (0x1F) ///< Bitmask (=00011111) for reading MARC_STATE in MARCSTATE status register.
#define CS (0x40) ///< Bitmask (=01000000) for reading CS (Carrier Sense) in PKTSTATUS status register.
#define PQT_REACHED (0x20) ///< Bitmask (=00100000) for reading PQT_REACHED (Preamble Quality reached) in PKTSTATUS status register.
#define CCA (0x10) ///< Bitmask (=00010000) for reading CCA (clear channel assessment) in PKTSTATUS status register.
#define SFD (0x08) ///< Bitmask (=00001000) for reading SFD (Sync word found) in PKTSTATUS status register.
#define GDO2 (0x04) ///< Bitmask (=00000100) for reading GDO2 (current value on GDO2 pin) in PKTSTATUS status register.
#define GDO1 (0x02) ///< Bitmask (=00000010) for reading GDO1 (current value on GDO1 pin) in PKTSTATUS status register.
#define GDO0 (0x01) ///< Bitmask (=00000001) for reading GDO0 (current value on GDO0 pin) in PKTSTATUS status register.
#define TXFIFO_UNDERFLOW (0x80) ///< Bitmask (=10000000) for reading TXFIFO_UNDERFLOW in TXBYTES status register.
#define BYTES_IN_TXFIFO (0x7F) ///< Bitmask (=01111111) for reading NUM_TXBYTES in TXBYTES status register.
#define RXFIFO_OVERFLOW (0xBF) ///< Bitmask (=10000000) for reading RXFIFO_OVERFLOW in RXBYTES status register.
#define BYTES_IN_RXFIFO (0xFF) ///< Bitmask (=01111111) for reading NUM_RXBYTES in RXBYTES status register.
#define LQI_EST (0x7F)
#define I_RSSI (0x00) ///< Index 0 contains RSSI information (from optionally appended packet status bytes).
#define I_LQI (0x01) ///< Index 1 contains LQI & CRC_OK information (from optionally appended packet status bytes).
#define MARC_STATE (0x1F) ///< Bitmask (=00011111) for reading MARC_STATE in MARCSTATE status register.
#define CS (0x40) ///< Bitmask (=01000000) for reading CS (Carrier Sense) in PKTSTATUS status register.
#define PQT_REACHED (0x20) ///< Bitmask (=00100000) for reading PQT_REACHED (Preamble Quality reached) in PKTSTATUS status register.
#define CCA (0x10) ///< Bitmask (=00010000) for reading CCA (clear channel assessment) in PKTSTATUS status register.
#define SFD (0x08) ///< Bitmask (=00001000) for reading SFD (Sync word found) in PKTSTATUS status register.
#define GDO2 (0x04) ///< Bitmask (=00000100) for reading GDO2 (current value on GDO2 pin) in PKTSTATUS status register.
#define GDO1 (0x02) ///< Bitmask (=00000010) for reading GDO1 (current value on GDO1 pin) in PKTSTATUS status register.
#define GDO0 (0x01) ///< Bitmask (=00000001) for reading GDO0 (current value on GDO0 pin) in PKTSTATUS status register.
#define TXFIFO_UNDERFLOW (0x80) ///< Bitmask (=10000000) for reading TXFIFO_UNDERFLOW in TXBYTES status register.
#define BYTES_IN_TXFIFO (0x7F) ///< Bitmask (=01111111) for reading NUM_TXBYTES in TXBYTES status register.
#define RXFIFO_OVERFLOW (0xBF) ///< Bitmask (=10000000) for reading RXFIFO_OVERFLOW in RXBYTES status register.
#define BYTES_IN_RXFIFO (0xFF) ///< Bitmask (=01111111) for reading NUM_RXBYTES in RXBYTES status register.
/** @} */
/**
* @name Bitmasks for reading out configuration register values
* @name Bitmasks for reading out configuration register values
* @{
*/
#define PKT_LENGTH_CONFIG (0x03) ///< Bitmask (=00000011) for reading LENGTH_CONFIG in PKTCTRL0 configuration register.
#define PKT_LENGTH_CONFIG (0x03) ///< Bitmask (=00000011) for reading LENGTH_CONFIG in PKTCTRL0 configuration register.
/** @} */
/**
* @name Definitions to support burst/single access
* @name Definitions to support burst/single access
* @{
*/
#define CC1100_WRITE_BURST (0x40) ///< Offset for burst write.
#define CC1100_READ_SINGLE (0x80) ///< Offset for read single byte.
#define CC1100_READ_BURST (0xC0) ///< Offset for read burst.
#define CC1100_NOBYTE (0xFF) ///< No command (for reading).
#define CC1100_WRITE_BURST (0x40) ///< Offset for burst write.
#define CC1100_READ_SINGLE (0x80) ///< Offset for read single byte.
#define CC1100_READ_BURST (0xC0) ///< Offset for read burst.
#define CC1100_NOBYTE (0xFF) ///< No command (for reading).
/** @} */
/**
* @name Configuration Registers (47x)
* @name Configuration Registers (47x)
* @{
*/
#define CC1100_IOCFG2 (0x00) ///< GDO2 output pin configuration
@ -132,12 +133,12 @@
/** @} */
/**
* @name Strobe commands (14x)
* @name Strobe commands (14x)
* @{
*/
#define CC1100_SRES (0x30) ///< Reset chip.
#define CC1100_SRES (0x30) ///< Reset chip.
/**
* @brief Enable and calibrate frequency synthesizer (if MCSM0.FS_AUTOCAL=1).
* @brief Enable and calibrate frequency synthesizer (if MCSM0.FS_AUTOCAL=1).
*
* If in RX/TX: Go to a wait state where only the synthesizer is running (for quick RX / TX turnaround).
*/
@ -161,35 +162,35 @@
/** @} */
/**
* @name Status registers (12x)
* @name Status registers (12x)
* @{
*/
#define CC1100_PARTNUM (0x30) ///< Part number of CC1100.
#define CC1100_VERSION (0x31) ///< Current version number.
#define CC1100_FREQEST (0x32) ///< Frequency Offset Estimate.
#define CC1100_LQI (0x33) ///< Demodulator estimate for Link Quality.
#define CC1100_RSSI (0x34) ///< Received signal strength indication.
#define CC1100_MARCSTATE (0x35) ///< Control state machine state.
#define CC1100_WORTIME1 (0x36) ///< High byte of WOR timer.
#define CC1100_WORTIME0 (0x37) ///< Low byte of WOR timer.
#define CC1100_PKTSTATUS (0x38) ///< Current GDOx status and packet status.
#define CC1100_VCO_VC_DAC (0x39) ///< Current setting from PLL calibration module.
#define CC1100_TXBYTES (0x3A) ///< Underflow and number of bytes in the TX FIFO.
#define CC1100_RXBYTES (0x3B) ///< Overflow and number of bytes in the RX FIFO.
#define CC1100_PARTNUM (0x30) ///< Part number of CC1100.
#define CC1100_VERSION (0x31) ///< Current version number.
#define CC1100_FREQEST (0x32) ///< Frequency Offset Estimate.
#define CC1100_LQI (0x33) ///< Demodulator estimate for Link Quality.
#define CC1100_RSSI (0x34) ///< Received signal strength indication.
#define CC1100_MARCSTATE (0x35) ///< Control state machine state.
#define CC1100_WORTIME1 (0x36) ///< High byte of WOR timer.
#define CC1100_WORTIME0 (0x37) ///< Low byte of WOR timer.
#define CC1100_PKTSTATUS (0x38) ///< Current GDOx status and packet status.
#define CC1100_VCO_VC_DAC (0x39) ///< Current setting from PLL calibration module.
#define CC1100_TXBYTES (0x3A) ///< Underflow and number of bytes in the TX FIFO.
#define CC1100_RXBYTES (0x3B) ///< Overflow and number of bytes in the RX FIFO.
/** @} */
/**
* @name Multi byte registers
* @name Multi byte registers
* @{
*/
/**
* @brief Register for eight user selected output power settings.
* @brief Register for eight user selected output power settings.
*
* 3-bit FREND0.PA_POWER value selects the PATABLE entry to use.
*/
#define CC1100_PATABLE (0x3E)
#define CC1100_TXFIFO (0x3F) ///< TX FIFO: Write operations write to the TX FIFO (SB: +0x00; BURST: +0x40)
#define CC1100_RXFIFO (0x3F) ///< RX FIFO: Read operations read from the RX FIFO (SB: +0x80; BURST: +0xC0)
#define CC1100_TXFIFO (0x3F) ///< TX FIFO: Write operations write to the TX FIFO (SB: +0x00; BURST: +0x40)
#define CC1100_RXFIFO (0x3F) ///< RX FIFO: Read operations read from the RX FIFO (SB: +0x80; BURST: +0xC0)
/** @} */
/** @} */

View File

@ -8,15 +8,16 @@
*/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
*
* @file cc110x-reg.h
* @brief Access to CC110X registers
* @file cc110x-reg.h
* @brief Access to CC110X registers
*
* @author INRIA
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @author INRIA
* @author Oliver Hahm <oliver.hahm@inria.fr>
*/
#ifndef __CC110X_REG_H
#define __CC110X_REG_H

View File

@ -8,14 +8,17 @@
*/
/**
* @defgroup drivers_cc110x_ng CC110x_ng
* @brief Next generation version of the TI CC110x driver
* @ingroup drivers
* @defgroup drivers_cc110x_ng CC110x_ng
* @brief Next generation version of the TI CC110x driver
* @ingroup drivers
* @{
* @file cc110x_ng.h
* @brief Data structures and variables for the cc110x driver interface
* @author Oliver Hahm <oliver.hahm@inria.fr>
*
* @file cc110x_ng.h
* @brief Data structures and variables for the cc110x driver interface
*
* @author Oliver Hahm <oliver.hahm@inria.fr>
*/
#ifndef CC1100_H
#define CC1100_H
@ -28,40 +31,40 @@
#define CC1100_HEADER_LENGTH (3) ///< Header covers SRC, DST and FLAGS
#define CC1100_BROADCAST_ADDRESS (0x00) ///< CC1100 broadcast address
#define CC1100_BROADCAST_ADDRESS (0x00) ///< CC1100 broadcast address
#define MAX_UID (0xFF) ///< Maximum UID of a node is 255
#define MIN_UID (0x01) ///< Minimum UID of a node is 1
#define MAX_UID (0xFF) ///< Maximum UID of a node is 255
#define MIN_UID (0x01) ///< Minimum UID of a node is 1
#define MIN_CHANNR (0) ///< Minimum channel number
#define MAX_CHANNR (24) ///< Maximum channel number
#define MIN_CHANNR (0) ///< Minimum channel number
#define MAX_CHANNR (24) ///< Maximum channel number
#define MIN_OUTPUT_POWER (0) ///< Minimum output power value
#define MAX_OUTPUT_POWER (11) ///< Maximum output power value
#define MIN_OUTPUT_POWER (0) ///< Minimum output power value
#define MAX_OUTPUT_POWER (11) ///< Maximum output power value
#define PACKET_LENGTH (0x3E) ///< Packet length = 62 Bytes.
#define CC1100_SYNC_WORD_TX_TIME (90000) // loop count (max. timeout ~ 15 ms) to wait for
// sync word to be transmitted (GDO2 from low to high)
#define PACKET_LENGTH (0x3E) ///< Packet length = 62 Bytes.
#define CC1100_SYNC_WORD_TX_TIME (90000) // loop count (max. timeout ~ 15 ms) to wait for
// sync word to be transmitted (GDO2 from low to high)
/**
* @name Defines used as state values for state machine
* @name Defines used as state values for state machine
* @{
*/
#define RADIO_UNKNOWN (0)
#define RADIO_AIR_FREE_WAITING (1)
#define RADIO_WOR (2)
#define RADIO_IDLE (3)
#define RADIO_SEND_BURST (4)
#define RADIO_RX (5)
#define RADIO_SEND_ACK (6)
#define RADIO_PWD (7)
#define RADIO_UNKNOWN (0)
#define RADIO_AIR_FREE_WAITING (1)
#define RADIO_WOR (2)
#define RADIO_IDLE (3)
#define RADIO_SEND_BURST (4)
#define RADIO_RX (5)
#define RADIO_SEND_ACK (6)
#define RADIO_PWD (7)
/** @} */
extern volatile cc110x_flags rflags; ///< Radio flags
extern volatile cc110x_flags rflags; ///< Radio flags
extern char cc110x_conf[];
/**
* @brief CC1100 layer 0 protocol
* @brief CC1100 layer 0 protocol
*
* <pre>
---------------------------------------------------
@ -72,24 +75,24 @@ extern char cc110x_conf[];
1 byte 1 byte 1 byte 1 byte <= 58 bytes
Flags:
Bit | Meaning
--------------------
7:4 | -
3:1 | Protocol
0 | Identification
Bit | Meaning
--------------------
7:4 | -
3:1 | Protocol
0 | Identification
</pre>
Notes:
\li length & address are given by CC1100
\li Identification is increased is used to scan duplicates. It must be increased
for each new packet and kept for packet retransmissions.
for each new packet and kept for packet retransmissions.
*/
typedef struct __attribute__((packed))
{
uint8_t length; ///< Length of the packet (without length byte)
uint8_t address; ///< Destination address
uint8_t phy_src; ///< Source address (physical source)
uint8_t flags; ///< Flags
uint8_t data[CC1100_MAX_DATA_LENGTH]; ///< Data (high layer protocol)
uint8_t length; ///< Length of the packet (without length byte)
uint8_t address; ///< Destination address
uint8_t phy_src; ///< Source address (physical source)
uint8_t flags; ///< Flags
uint8_t data[CC1100_MAX_DATA_LENGTH]; ///< Data (high layer protocol)
}
cc110x_packet_t;
@ -100,16 +103,16 @@ typedef struct {
} rx_buffer_t;
enum radio_mode {
RADIO_MODE_GET = -1, ///< leave mode unchanged
RADIO_MODE_OFF = 0, ///< turn radio off
RADIO_MODE_ON = 1 ///< turn radio on
RADIO_MODE_GET = -1, ///< leave mode unchanged
RADIO_MODE_OFF = 0, ///< turn radio off
RADIO_MODE_ON = 1 ///< turn radio on
};
extern rx_buffer_t cc110x_rx_buffer[];
extern volatile uint8_t rx_buffer_next; ///< Next packet in RX queue
extern volatile uint8_t rx_buffer_next; ///< Next packet in RX queue
extern volatile uint8_t radio_state; ///< Radio state
extern volatile uint8_t radio_state; ///< Radio state
extern cc110x_statistic_t cc110x_statistic;
int transceiver_pid; ///< the transceiver thread pid
@ -140,14 +143,14 @@ void cc110x_set_monitor(uint8_t mode);
void cc110x_print_config(void);
/**
* @brief GDO0 interrupt handler.
* @brief GDO0 interrupt handler.
*/
void cc110x_gdo0_irq(void);
/**
* @brief GDO2 interrupt handler.
* @brief GDO2 interrupt handler.
*
* @note Wakes up MCU on packet reception.
* @note Wakes up MCU on packet reception.
*/
void cc110x_gdo2_irq(void);
@ -168,8 +171,5 @@ void cc110x_init_ignore(void);
uint8_t cc110x_add_ignored(radio_address_t addr);
#endif
/**
* @}
*/
/** @} */
#endif

View File

@ -13,20 +13,15 @@ and Telematics group (http://cst.mi.fu-berlin.de).
*******************************************************************************/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
*/
/**
*
* @file
* @brief TI Chipcon CC1100 SPI driver
* @brief TI Chipcon CC1100 SPI driver
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @version $Revision: 1775 $
*
* @note $Id: cc110x_spi.h 1775 2010-01-26 09:37:03Z hillebra $
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
*/
#ifndef CC1100_SPI_H_

View File

@ -1,8 +1,8 @@
/******************************************************************************
/*
* Copyright 2008, Freie Universitaet Berlin (FUB). All rights reserved.
*
* These sources were developed at the Freie Universitaet Berlin, Computer Systems
and Telematics group (http://cst.mi.fu-berlin.de).
* and Telematics group (http://cst.mi.fu-berlin.de).
* ----------------------------------------------------------------------------
* This file is part of RIOT.
*
@ -13,20 +13,16 @@ and Telematics group (http://cst.mi.fu-berlin.de).
*******************************************************************************/
/**
* @ingroup drivers_cc110x_ng
* @ingroup drivers_cc110x_ng
* @{
*/
/**
* @file
* @brief TI Chipcon CC1100 SPI driver
*
* @file cc110x_spi.c
* @brief TI Chipcon CC1100 SPI driver
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @version $Revision: 1775 $
*
* @note $Id: cc110x_spi.c 1775 2010-01-26 09:37:03Z hillebra $
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @}
*/
#include <stdio.h>
@ -40,7 +36,7 @@ and Telematics group (http://cst.mi.fu-berlin.de).
#include "irq.h"
/*---------------------------------------------------------------------------*/
// CC1100 SPI access
// CC1100 SPI access
/*---------------------------------------------------------------------------*/
uint8_t cc110x_writeburst_reg(uint8_t addr, char *src, uint8_t count)
@ -125,5 +121,3 @@ uint8_t cc110x_strobe(uint8_t c)
restoreIRQ(cpsr);
return result;
}
/** @} */

View File

@ -7,8 +7,8 @@
*/
/**
* @defgroup drivers Drivers
* @brief Drivers for external devices as radios, sensors, memory etc.
* @defgroup drivers Drivers
* @brief Drivers for external devices as radios, sensors, memory etc.
*
* The module contains all kind of drivers for specific devices.
*/

View File

@ -1,27 +1,30 @@
/**
* @defgroup drivers_adc ADC
* @ingroup drivers
* @brief Generic ADC driver
* @{
*
* @file adc.h
*/
#ifndef ADC_H
#define ADC_H
#include <stdint.h>
/**
* @defgroup drivers_adc ADC
* @ingroup drivers
* @brief Generic ADC driver
*/
/**
* @brief Initialize ADC.
* @brief Initialize ADC.
*/
void adc_init(void);
/**
* @brief Read ADC value of selected channel.
* @brief Read ADC value of selected channel.
*
* Valid channel numbers are from 0 to 2.
*
* @return ADC value of selected channel.
* @return ADC value of selected channel.
*/
uint16_t adc_read(uint8_t channel);
/** @} */
#endif /* ADC_H */

View File

@ -3,11 +3,17 @@
/-----------------------------------------------------------------------*/
/**
* @defgroup diskio Disk IO Driver
* @ingroup drivers
* @brief Low level disk interface
* @defgroup diskio Disk IO Driver
* @ingroup drivers
* @brief Low level disk interface
*
* The connection between the MCU and the SRF08 is based on the i2c-interface.
*
* @{
*
* @file diskio.h
*
* @author unknown
*/
#ifndef DEF_DISKIO
@ -15,33 +21,33 @@
#include <stdint.h>
#define DN_MCI 0 /* Physical drive number for MCI */
#define DN_NAND 1 /* Physical drive number for NAND flash */
#define DN_MCI 0 /* Physical drive number for MCI */
#define DN_NAND 1 /* Physical drive number for NAND flash */
/**
* @def MCI_PWRSAVE
* @ingroup conf
* @brief Powerdown mode to use between mci operations
* @def MCI_PWRSAVE
* @ingroup conf
* @brief Powerdown mode to use between mci operations
*/
#ifndef MCI_PWRSAVE
#define MCI_PWRSAVE 0
#define MCI_PWRSAVE 0
#endif
/* These functions are defined in asmfunc.S */
void Copy_al2un(unsigned char *dst, const unsigned long *src, int count); /* Copy aligned to unaligned. */
void Copy_un2al(unsigned long *dst, const unsigned char *src, int count); /* Copy unaligned to aligned. */
void Copy_al2un(unsigned char *dst, const unsigned long *src, int count); /* Copy aligned to unaligned. */
void Copy_un2al(unsigned long *dst, const unsigned char *src, int count); /* Copy unaligned to aligned. */
/* Status of Disk Functions */
typedef unsigned char DSTATUS;
typedef unsigned char DSTATUS;
/* Results of Disk Functions */
typedef enum {
RES_OK = 0, /* 0: Successful */
RES_ERROR, /* 1: R/W Error */
RES_WRPRT, /* 2: Write Protected */
RES_NOTRDY, /* 3: Not Ready */
RES_PARERR /* 4: Invalid Parameter */
RES_OK = 0, /* 0: Successful */
RES_ERROR, /* 1: R/W Error */
RES_WRPRT, /* 2: Write Protected */
RES_NOTRDY, /* 3: Not Ready */
RES_PARERR /* 4: Invalid Parameter */
} DRESULT;
@ -58,39 +64,39 @@ DRESULT disk_ioctl(unsigned char, unsigned char, void *);
/* Disk Status Bits (DSTATUS) */
#define STA_NOINIT 0x01 /* Drive not initialized */
#define STA_NODISK 0x02 /* No medium in the drive */
#define STA_PROTECT 0x04 /* Write protected */
#define STA_NOINIT 0x01 /* Drive not initialized */
#define STA_NODISK 0x02 /* No medium in the drive */
#define STA_PROTECT 0x04 /* Write protected */
/* Command code for disk_ioctrl fucntion */
/* Generic ioctl command (defined for FatFs) */
#define CTRL_SYNC 0 /* Flush disk cache (for write functions) */
#define GET_SECTOR_COUNT 1 /* Get media size (for only f_mkfs()) */
#define GET_SECTOR_SIZE 2 /* Get sector size (for multiple sector size (_MAX_SS >= 1024)) */
#define GET_BLOCK_SIZE 3 /* Get erase block size (for only f_mkfs()) */
#define CTRL_ERASE_SECTOR 4 /* Force erased a block of sectors (for only _USE_ERASE) */
#define CTRL_SYNC 0 /* Flush disk cache (for write functions) */
#define GET_SECTOR_COUNT 1 /* Get media size (for only f_mkfs()) */
#define GET_SECTOR_SIZE 2 /* Get sector size (for multiple sector size (_MAX_SS >= 1024)) */
#define GET_BLOCK_SIZE 3 /* Get erase block size (for only f_mkfs()) */
#define CTRL_ERASE_SECTOR 4 /* Force erased a block of sectors (for only _USE_ERASE) */
/* Generic ioctl command */
#define CTRL_POWER 5 /* Get/Set power status */
#define CTRL_LOCK 6 /* Lock/Unlock media removal */
#define CTRL_EJECT 7 /* Eject media */
#define CTRL_POWER 5 /* Get/Set power status */
#define CTRL_LOCK 6 /* Lock/Unlock media removal */
#define CTRL_EJECT 7 /* Eject media */
/* MMC/SDC specific ioctl command */
#define MMC_GET_TYPE 10 /* Get card type */
#define MMC_GET_CSD 11 /* Get CSD */
#define MMC_GET_CID 12 /* Get CID */
#define MMC_GET_OCR 13 /* Get OCR */
#define MMC_GET_SDSTAT 14 /* Get SD status */
#define MMC_GET_TYPE 10 /* Get card type */
#define MMC_GET_CSD 11 /* Get CSD */
#define MMC_GET_CID 12 /* Get CID */
#define MMC_GET_OCR 13 /* Get OCR */
#define MMC_GET_SDSTAT 14 /* Get SD status */
/* ATA/CF specific ioctl command */
#define ATA_GET_REV 20 /* Get F/W revision */
#define ATA_GET_MODEL 21 /* Get model name */
#define ATA_GET_SN 22 /* Get serial number */
#define ATA_GET_REV 20 /* Get F/W revision */
#define ATA_GET_MODEL 21 /* Get model name */
#define ATA_GET_SN 22 /* Get serial number */
/* NAND specific ioctl command */
#define NAND_FORMAT 30 /* Create physical format */
#define NAND_FORMAT 30 /* Create physical format */
@ -111,5 +117,5 @@ DRESULT MCI_write(const unsigned char *, unsigned long, unsigned char);
DRESULT MCI_ioctl(unsigned char, void *);
void MCI_timerproc(void);
/** @} */
#endif

View File

@ -1,10 +1,12 @@
/**
* @defgroup flashrom Flash memory driver
* @ingroup drivers
* @brief Generic flash memory driver
/*
* @defgroup flashrom Flash memory driver
* @ingroup drivers
* @brief Generic flash memory driver
* @{
*
* @file flashrom.h
*
* @author unknown
*/
#ifndef FLASHROM_H
@ -20,7 +22,7 @@
*
* @return 1 on success, 0 otherwise
*/
uint8_t flashrom_erase(uint8_t *addr);
uint8_t flashrom_erase(uint8_t *addr);
/* @brief Write buffer from ram to flash
*
@ -30,7 +32,7 @@ uint8_t flashrom_erase(uint8_t *addr);
*
* @return 1 on success, 0 otherwise
*/
uint8_t flashrom_write(uint8_t *dst, char *src, size_t size);
uint8_t flashrom_write(uint8_t *dst, char *src, size_t size);
/** @} */
#endif /* FLASHROM_H */

View File

@ -1,4 +1,4 @@
/******************************************************************************
/*
* Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
*
* These sources were developed at the Freie Universitaet Berlin, Computer Systems
@ -16,32 +16,25 @@ and Telematics group (http://cst.mi.fu-berlin.de).
#define GPIOINT_H_
/**
* @defgroup drivers_gpioint GPIO IRQ Multiplexer
* @ingroup drivers
* @brief Provides an API to implement interrupt handlers on IO pins.
* @defgroup drivers_gpioint GPIO IRQ Multiplexer
* @ingroup drivers
* @brief Provides an API to implement interrupt handlers on IO pins.
*
* Multiplexer and interrupt handling must be implemented platform specific.
*
* See gpioint-example.c for an example of how to use gpioint.
*
* @{
*/
/**
*
* @example gpioint-example.c
* This example shows how to setup an interrupt handler for a GPIO pin
* without using the HAL.
*/
/**
*
* @file
* @brief GPIO IRQ Multiplexer interface
* @brief GPIO IRQ Multiplexer interface
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Michael Baar <michael.baar@fu-berlin.de>
* @version $Revision: 1508 $
*
* @note $Id: gpioint.h 1508 2009-10-26 15:10:02Z baar $
* @author Michael Baar <michael.baar@fu-berlin.de>
*/
#include <stdint.h>
@ -52,26 +45,26 @@ and Telematics group (http://cst.mi.fu-berlin.de).
* Note: - We rely on the exact values for the edges.
* - These flags are extended in hal/drivers/device-gpio.h
*/
#define GPIOINT_DISABLE 0x00
#define GPIOINT_RISING_EDGE 0x01 ///< interrupt is generated on rising edge
#define GPIOINT_FALLING_EDGE 0x02 ///< interrupt is generated on falling edge
#define GPIOINT_DISABLE 0x00
#define GPIOINT_RISING_EDGE 0x01 ///< interrupt is generated on rising edge
#define GPIOINT_FALLING_EDGE 0x02 ///< interrupt is generated on falling edge
#define GPIOINT_DEBOUNCE 0x04 ///< debounce this interrupt
/**
* @brief GPIO IRQ callback function type
* @param[in] data User defined callback data passed through gpioint_set
* @param[in] edge A combination of GPIOINT_RISING_EDGE and GPIOINT_FALLING_EDGE
* @brief GPIO IRQ callback function type
* @param[in] data User defined callback data passed through gpioint_set
* @param[in] edge A combination of GPIOINT_RISING_EDGE and GPIOINT_FALLING_EDGE
*/
typedef void(*fp_irqcb)(void);
/**
* @brief GPIO IRQ handler setup
* @param[in] port CPU specific port number (starting at 0)
* @param[in] bitmask One or more bits for which to set the handler
* @param[in] flags A combination of #GPIOINT_RISING_EDGE and #GPIOINT_FALLING_EDGE
* @param[in] callback A pointer to a handler function
* @retval true successful
* @retval false failed
* @brief GPIO IRQ handler setup
* @param[in] port CPU specific port number (starting at 0)
* @param[in] bitmask One or more bits for which to set the handler
* @param[in] flags A combination of #GPIOINT_RISING_EDGE and #GPIOINT_FALLING_EDGE
* @param[in] callback A pointer to a handler function
* @retval true successful
* @retval false failed
*
* To enable interrupt handling for a pin flags and callback must be non-zero. To disable interrupt
* handling flags and callback shall be zero.

View File

@ -1,7 +1,4 @@
/*
* lm75a-temp-sensor.h - Definitions of the LM75A temperature sensor driver.
*
* Copyright (C) 2013 Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
*
* This source code is licensed under the LGPLv2 license,
@ -9,26 +6,22 @@
*/
/**
* @defgroup lm75a LM75A
* @ingroup drivers
* @brief Driver for the LM75A digital temperature sensor and thermal watchdog
* @defgroup lm75a LM75A
* @ingroup drivers
* @brief Driver for the LM75A digital temperature sensor and thermal watchdog
*
* The connection between the MCU and the LM75A is based on the i2c-interface.
*/
/**
*
* @{
*
* @file
* @internal
* @brief Definitions of the LM75A temperature sensor driver.
*
* The connection between the LM75A and the MCU is based
* on the I2C-interface.
* The connection between the LM75A and the MCU is based on the I2C-interface.
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
* @version $Revision: 3859 $
*
* @note $Id: lm75a-temp-sensor.h 3854 2013-09-2 15:35:21 kasmi $
*/
#ifndef LM75A_H_
@ -260,4 +253,5 @@ bool lm75A_external_interrupt_register(void *handler);
*/
void lm75A_set_in_alarm(bool b);
/** @} */
#endif /* LM75A_H_ */

View File

@ -18,19 +18,14 @@ and Telematics group (http://cst.mi.fu-berlin.de).
/**
* @defgroup ltc4150 LTC4150
* @ingroup drivers
* @brief Driver for the Linear Technology LTC4150 Coulomb Counter
* @brief Driver for the Linear Technology LTC4150 Coulomb Counter
* @{
*/
/**
* @file
*
* @file ltc4150_arch.h
* @brief LTC4150 Coulomb Counter
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Heiko Will
* @version $Revision: 1203 $
*
* @note $Id: ltc4150_arch.h 1203 2009-07-07 10:23:18Z baar $
*/
#define _GFH (double)32.631375

View File

@ -1,4 +1,4 @@
/******************************************************************************
/*
* Copyright 2010, Freie Universitaet Berlin (FUB). All rights reserved.
*
* These sources were developed at the Freie Universitaet Berlin, Computer Systems
@ -13,9 +13,9 @@ and Telematics group (http://cst.mi.fu-berlin.de).
*******************************************************************************/
/**
* @defgroup rtc Realtime Clock
* @ingroup drivers
* @brief Generic real time clock driver
* @defgroup rtc Realtime Clock
* @ingroup drivers
* @brief Generic real time clock driver
* @{
*/
@ -47,24 +47,24 @@ void rtc_enable(void);
void rtc_disable(void);
/**
* @brief Sets the current time in broken down format directly from to RTC
* @param[in] localt Pointer to structure with time to set
* @brief Sets the current time in broken down format directly from to RTC
* @param[in] localt Pointer to structure with time to set
*/
void rtc_set_localtime(struct tm *localt);
/**
* @brief Returns the current time in broken down format directly from the RTC
* @param[out] localt Pointer to structure to receive time
* @brief Returns the current time in broken down format directly from the RTC
* @param[out] localt Pointer to structure to receive time
*/
void rtc_get_localtime(struct tm *localt);
/**
* @brief Get the current time as a struct timeval
* @param[out] time Pointer to structure to receive time
* @brief Get the current time as a struct timeval
* @param[out] time Pointer to structure to receive time
*/
time_t rtc_time(struct timeval *time);
extern int rtc_second_pid;
#endif
/** @} */
#endif

View File

@ -16,30 +16,26 @@ and Telematics group (http://cst.mi.fu-berlin.de).
#define SHT11_H_
/**
* @defgroup sht11 SHT11
* @ingroup drivers
* @defgroup sht11 SHT11
* @ingroup drivers
* @{
*/
/**
* @file
* @brief SHT11 Device Driver
*
* @file sht11.h
* @brief SHT11 Device Driver
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @version $Revision: 667 $
*
* @note $Id: sht11.h 667 2009-02-19 15:06:38Z baar $
*/
#include <stdint.h>
#define SHT11_NO_ACK (0)
#define SHT11_ACK (1)
#define SHT11_NO_ACK (0)
#define SHT11_ACK (1)
//adr command r/w
#define SHT11_STATUS_REG_W (0x06) //000 0011 0
#define SHT11_STATUS_REG_R (0x07) //000 0011 1
#define SHT11_MEASURE_TEMP (0x03) //000 0001 1
#define SHT11_MEASURE_HUMI (0x05) //000 0010 1
#define SHT11_RESET (0x1E) //000 1111 0
#define SHT11_STATUS_REG_W (0x06) //000 0011 0
#define SHT11_STATUS_REG_R (0x07) //000 0011 1
#define SHT11_MEASURE_TEMP (0x03) //000 0001 1
#define SHT11_MEASURE_HUMI (0x05) //000 0010 1
#define SHT11_RESET (0x1E) //000 1111 0
/* time to wait after toggling the data line */
#define SHT11_DATA_WAIT (HWTIMER_TICKS(1))
@ -53,13 +49,13 @@ and Telematics group (http://cst.mi.fu-berlin.de).
* @brief sht11 measureable data
*/
typedef struct {
float temperature; /**< temperature value */
float relhum; /**< linear relative humidity */
float relhum_temp; /**< temperature compensated relative humidity */
float temperature; /**< temperature value */
float relhum; /**< linear relative humidity */
float relhum_temp; /**< temperature compensated relative humidity */
} sht11_val_t;
/**
* @brief SHT11 modes that can be measured
* @brief SHT11 modes that can be measured
*/
typedef enum {
TEMPERATURE = 1,
@ -67,12 +63,12 @@ typedef enum {
} sht11_mode_t;
/**
* @brief Initialize SHT11 ports
* @brief Initialize SHT11 ports
*/
void sht11_init(void);
/**
* @brief Read sensor
* @brief Read sensor
*
* @param value The struct to be filled with measured values
* @param mode Specifies type of data to be read
@ -107,4 +103,3 @@ uint8_t sht11_read_status(uint8_t *p_value, uint8_t *p_checksum);
/** @} */
#endif /*SHT11_H_*/

View File

@ -1,7 +1,4 @@
/*
* srf02-ultrasonic-sensor.h - Definitions for the SRF02 ultrasonic ranger
* driver.
*
* Copyright (C) 2013 Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
*
* This source code is licensed under the LGPLv2 license,
@ -9,26 +6,21 @@
*/
/**
* @defgroup srf02 SRF02
* @ingroup drivers
* @brief Driver for the SRF02 ultrasonic range sensor
* @defgroup srf02 SRF02
* @ingroup drivers
* @brief Driver for the SRF02 ultrasonic range sensor
*
* The connection between the MCU and the SRF08 is based on the i2c-interface.
*/
/**
* @file
* @internal
*
* @{
*
* @file srf02-ultrasonic-sensor.h
* @brief Driver definitions for the SRF02 ultrasonic ranger.
* The connection between the SRF02 and the MCU is based on
* the i2c interface.
*
* The connection between the SRF02 and the MCU is based on the i2c interface.
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
* @version $Revision: 3857 $
*
* @note $Id: srf02-ultrasonic-sensor.h 3854 2013-09-03 13:55:30 kasmi $
*
*/
#ifndef SRF02_ULTRASONIC_SENSOR_I2C_H_
@ -102,4 +94,5 @@ uint32_t srf02_get_distance(uint8_t ranging_mode);
*/
void srf02_start_ranging(uint16_t ranging_mode);
/** @} */
#endif /* SRF02_ULTRASONIC_SENSOR_I2C_H_ */

View File

@ -1,6 +1,4 @@
/*
* srf08-ultrasonic-sensor.h - Definitions for the SRF08 ultrasonic ranger.
*
* Copyright (C) 2013 Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
*
* This source code is licensed under the LGPLv2 license,
@ -8,26 +6,22 @@
*/
/**
* @defgroup srf08 SRF08
* @ingroup drivers
* @brief Driver for the SRF08 ultrasonic range sensor
* @defgroup srf08 SRF08
* @ingroup drivers
* @brief Driver for the SRF08 ultrasonic range sensor
*
* The connection between the MCU and the SRF08 is based on the i2c-interface.
*/
/**
*
* @{
*
* @file
* @internal
* @brief Driver definitions for the SRF08 ultrasonic.
* The communication between the MCU and SRF08 is via the i2c
* interface.
*
* The communication between the MCU and SRF08 is via the i2c interface.
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
* @version $Revision: 3857 $
*
* @note $Id: srf08-ultrasonic-sensor.h 3854 2013-09-03 16:26:13 kasmi $
*
*/
#ifndef SRF08_ULTRASONIC_SENSOR_I2C_H_
@ -134,4 +128,5 @@ uint8_t srf08_get_gain(void);
*/
int32_t srf08_get_distances(uint32_t *range_array, uint8_t ranging_mode);
/** @} */
#endif /* SRF08_ULTRASONIC_SENSOR_I2C_H_ */

View File

@ -7,6 +7,6 @@
*/
/**
* @defgroup sys System
* @brief System library contains tools and utilities that make RIOT an actual operating system
* @defgroup sys System
* @brief System library contains tools and utilities that make RIOT an actual operating system
*/

View File

@ -1,8 +1,11 @@
/**
* @defgroup sys_autoinit Auto-init
* @ingroup sys
* @brief Autoconfigure libraries
* @defgroup sys_autoinit Auto-init
* @ingroup sys
* @brief Autoconfigure libraries
* @{
*
* @file auto_init.h
*/
#ifndef AUTO_INIT_H
@ -30,4 +33,5 @@
void auto_init(void);
#endif
/** @} */
#endif /* AUTO_INIT_H */

View File

@ -1,11 +1,4 @@
/**
* @defgroup sys_bloom Bloom filter
* @ingroup sys
* @brief Bloom filter library
*/
/**
/*
* bloom.c
*
* Bloom filters
@ -108,7 +101,14 @@
*/
/**
* @file
* @defgroup sys_bloom Bloom filter
* @ingroup sys
* @brief Bloom filter library
* @{
*
* @file bloom.h
* @brief Bloom filter API
*
* @autor Christian Mehlis <mehlis@inf.fu-berlin.de>
* @autor Freie Universität Berlin, Computer Systems & Telematics
*/
@ -208,4 +208,5 @@ void bloom_add(struct bloom_t *bloom, const uint8_t *buf, size_t len);
*/
bool bloom_check(struct bloom_t *bloom, const uint8_t *buf, size_t len);
#endif
/** @} */
#endif /* _BLOOM_FILTER_H */

View File

@ -1,8 +1,12 @@
/**
* @defgroup sys_uart0 UART0
* @ingroup sys
* @brief UART0 interface abstraction
* @defgroup sys_uart0 UART0
* @ingroup sys
* @brief UART0 interface abstraction
* @{
*
* @file board_uart0.h
* @brief Interface definitions for the UART0 abstraction
*/
#ifndef __BOARD_UART0_H
@ -17,4 +21,5 @@ void uart0_notify_thread(void);
int uart0_readc(void);
void uart0_putc(int c);
/** @} */
#endif /* __BOARD_UART0_H */

View File

@ -1,8 +1,8 @@
/**
* @defgroup sys_chardevthread Chardev Thread
* @ingroup sys
* @brief Chardev thread
* @defgroup sys_chardevthread Chardev Thread
* @ingroup sys
* @brief Chardev thread
*/
#ifndef __CHARDEV_THREAD_H

View File

@ -1,6 +1,4 @@
/**
* This file contains some simple hash function
*
/*
* Copyright (C) 2013 Freie Universität Berlin
*
* This file is subject to the terms and conditions of the GNU Lesser General
@ -9,18 +7,22 @@
*/
/**
* @defgroup sys_hashes Hashes
* @ingroup sys
* @brief Hash function library
*/
/**
* @file
* @defgroup sys_hashes Hashes
* @ingroup sys
* @brief Hash function library
* @{
*
* @file hashes.h
* @brief Hash function API
*
* @autor Jason Linehan <patientulysses@gmail.com>
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Christian Mehlis <mehlis@inf.fu-berlin.de>
*/
#ifndef __HASHES_H
#define __HASHES_H
#include <stddef.h>
#include <inttypes.h>
@ -153,3 +155,6 @@ uint32_t rotating_hash(const uint8_t *buf, size_t len);
* @return 32 bit sized hash
*/
uint32_t one_at_a_time_hash(const uint8_t *buf, size_t len);
/** @} */
#endif /* __HASHES_H */

View File

@ -1,8 +1,8 @@
/**
* @defgroup sys_ping Ping
* @ingroup sys
* @brief Ping
* @defgroup sys_ping Ping
* @ingroup sys
* @brief Ping
*/
#include "radio/radio.h"

View File

@ -7,9 +7,9 @@
*/
/**
* @defgroup sys_posixio Posix IO
* @ingroup sys
* @brief Posix compatible IO
* @defgroup sys_posixio Posix IO
* @ingroup sys
* @brief Posix compatible IO
* @{
* @file
* @brief POSIX-like IO

View File

@ -1,8 +1,8 @@
/**
* @defgroup sys_ps PS
* @ingroup sys
* @brief Show list with all threads
* @defgroup sys_ps PS
* @ingroup sys
* @brief Show list with all threads
*/
#ifndef __PS_H

View File

@ -1,8 +1,8 @@
/**
* @defgroup sys_random Random
* @ingroup sys
* @brief Random number generator
* @defgroup sys_random Random
* @ingroup sys
* @brief Random number generator
*/
#include <inttypes.h>

View File

@ -29,9 +29,9 @@
/**
* @defgroup sys_sha256 SHA264
* @ingroup sys
* @brief SHA264 hash generator
* @defgroup sys_sha256 SHA264
* @ingroup sys
* @brief SHA264 hash generator
*/
#ifndef _SHA256_H_

View File

@ -13,9 +13,9 @@
*******************************************************************************/
/**
* @defgroup sys_shell Shell
* @ingroup sys
* @brief Simple shell interpreter
* @defgroup sys_shell Shell
* @ingroup sys
* @brief Simple shell interpreter
*/
#ifndef __SHELL_H

View File

@ -1,8 +1,8 @@
/**
* @defgroup sys_timex Timex
* @ingroup sys
* @brief Utility library for comparing and computing timestamps
* @defgroup sys_timex Timex
* @ingroup sys
* @brief Utility library for comparing and computing timestamps
*/
#ifndef __TIMEX_H

View File

@ -1,8 +1,8 @@
/**
* @defgroup sys_transceiver Transceiver
* @ingroup sys
* @brief Transceiver library
* @defgroup sys_transceiver Transceiver
* @ingroup sys
* @brief Transceiver library
*/
#ifndef TRANSCEIVER_H

View File

@ -1,21 +1,20 @@
/** \addtogroup sys
* @{ */
/**
* \defgroup vtimer Virtual (Software) Timer library
* @defgroup sys_vtimer Virtual (Software) Timer library
* @addtogroup sys
* @brief Virtual software timer for general timer functionality in applications
* @{
*
* @file vtimer.h
* @brief VTimer API
*
* The vtimer library provides functions for setting, resetting and restarting
* software timers, and for checking if a vtimer has expired.
*
* (As of now, not resetting, restarting, removing and checking are not implemented)
*
* @{
* @author unknown
*/
/**
* \file
* Timer library header file.
*/
#ifndef __VTIMER_H
#define __VTIMER_H
@ -120,4 +119,5 @@ void vtimer_print_long_queue(void);
#endif
/** @} */
#endif /* __VTIMER_H */

View File

@ -7,7 +7,7 @@
*/
/**
* @defgroup net Net
* @ingroup sys
* @brief Networking libraries
* @defgroup net Net
* @ingroup sys
* @brief Networking libraries
*/

View File

@ -1,21 +1,22 @@
/**
* Data struct and prototypes for the IEEE 802.15.4 frame format
*
/*
* Copyright (C) 2013 INRIA.
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License. See the file LICENSE in the top level directory for more
* details.
*
* @defgroup net_ieee802154 IEEE802.15.4
*/
/**
* @defgroup net_ieee802154 IEEE802.15.4
* @ingroup net
* @brief IEEE802.15.4 adapaption layer
* @brief IEEE802.15.4 adapaption layer
* @{
*
* @file ieee802154/ieee802154_frame.h
* @brief IEEE 802.14.4 framing data structs and prototypes
*
* @author Stephan Zeisberg <zeisberg@mi.fu-berlin.de>
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @}
*/
#ifndef IEEE802154_IEEE802154_FRAME
@ -63,8 +64,8 @@ typedef struct __attribute__((packed)) {
uint8_t ieee802154_frame_init(ieee802154_frame_t *frame, uint8_t *buf);
uint8_t ieee802154_frame_get_hdr_len(ieee802154_frame_t *frame);
uint8_t ieee802154_frame_read(uint8_t *buf, ieee802154_frame_t *frame,
uint8_t len);
uint8_t ieee802154_frame_read(uint8_t *buf, ieee802154_frame_t *frame, uint8_t len);
void ieee802154_frame_print_fcf_frame(ieee802154_frame_t *frame);
/** @} */
#endif /* IEEE802154_IEEE802154_FRAME */

View File

@ -1,18 +1,17 @@
/*
* common.h
*
* Created on: 05.10.2011
* Author: Oliver
*/
/**
* @defgroup net_help Net help
* @ingroup net
* @brief Helper functions for networking as byte order conversions and checksum calculations
* @defgroup net_help Net help
* @ingroup net
* @brief Helper functions for networking as byte order conversions and checksum calculations
* @{
*
* @file net_help.h
*
* @author Oliver
*/
#ifndef COMMON_H_
#define COMMON_H_
#ifndef __NET_HELP_H
#define __NET_HELP_H
#include <string.h>
#include <stdint.h>
@ -30,4 +29,5 @@
uint16_t csum(uint16_t sum, uint8_t *buf, uint16_t len);
void printArrayRange(uint8_t *array, uint16_t len, char *str);
#endif /* COMMON_H_ */
/** @} */
#endif /* __NET_HELP_H */

View File

@ -1,8 +1,8 @@
/******************************************************************************
/*
* Copyright 2009, Freie Universitaet Berlin (FUB). All rights reserved.
*
* These sources were developed at the Freie Universitaet Berlin, Computer Systems
and Telematics group (http://cst.mi.fu-berlin.de).
* and Telematics group (http://cst.mi.fu-berlin.de).
* ----------------------------------------------------------------------------
* This file is part of RIOT.
*
@ -12,40 +12,35 @@ and Telematics group (http://cst.mi.fu-berlin.de).
*
*******************************************************************************/
/**
* @defgroup net_mmstack Protocol multiplex
* @ingroup net
* @brief Protocol handler multiplexing
* @{
*
* @file
* @brief Protocol handler multiplexing
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @author Michael Baar <baar@inf.fu-berlin.de>
*/
#ifndef PROTOCOLMULTIPLEX_H_
#define PROTOCOLMULTIPLEX_H_
/**
* @defgroup net_mmstack Protocol multiplex
* @ingroup net
* @brief Protocol handler multiplexing
* @{
*/
/**
* @file
* @internal
* @brief Protocol handler multiplexing
*
* @author Freie Universität Berlin, Computer Systems & Telematics
* @author Thomas Hillebrandt <hillebra@inf.fu-berlin.de>
* @author Heiko Will <hwill@inf.fu-berlin.de>
* @author Michael Baar <baar@inf.fu-berlin.de>
* @version $Revision: 1526 $
*
* @note $Id: protocol-multiplex.h 1526 2009-10-30 13:40:20Z hillebra $
*/
#include "radio/types.h"
typedef struct {
packet_handler_t handler;
protocol_t protocol;
packet_handler_t handler;
protocol_t protocol;
} handler_entry_t;
typedef struct {
uint8_t size;
handler_entry_t *handler;
uint8_t size;
handler_entry_t *handler;
} pm_table_t;
void pm_init_table(pm_table_t *table, uint8_t size, handler_entry_t *handler);
@ -55,5 +50,4 @@ void pm_remove_handler(const pm_table_t *table, protocol_t protocol, packet_hand
int pm_invoke(const pm_table_t *table, protocol_t protocol, void *payload, int payload_size, packet_info_t *packet_info);
/** @} */
#endif /* PROTOCOLMULTIPLEX_H_ */

View File

@ -1,22 +1,26 @@
/**
* RPL constants and prototypes
*
/*
* Copyright (C) 2013 INRIA.
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License. See the file LICENSE in the top level directory for more
* details.
*
* @defgroup net_rpl RPL
* @ingroup net
* @brief Routing Protocol for Low power and Lossy Networks
* @{
* @file rpl.h
* @brief RPL header
* @author Eric Engel <eric.engel@fu-berlin.de>
* @}
*/
/**
* @defgroup net_rpl RPL
* @ingroup net
* @brief Routing Protocol for Low power and Lossy Networks
* @{
*
* @file rpl.h
* @brief RPL header
*
* @author Eric Engel <eric.engel@fu-berlin.de>
*/
#ifndef __RPL_H
#define __RPL_H
#include <string.h>
#include <stdint.h>
#include <vtimer.h>
@ -51,3 +55,6 @@ void rpl_del_routing_entry(ipv6_addr_t *addr);
rpl_routing_entry_t *rpl_find_routing_entry(ipv6_addr_t *addr);
void rpl_clear_routing_table(void);
rpl_routing_entry_t *rpl_get_routing_table(void);
/** @} */
#endif /* __RPL_H */

View File

@ -1,22 +1,24 @@
/*
* 6LoWPAN constants, data structs, and prototypes
*
* Copyright (C) 2013 INRIA.
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License. See the file LICENSE in the top level directory for more
* details.
*
* @defgroup net_sixlowpan 6LoWPAN
* @ingroup net
* @brief Riots 6LowPAN implementation
*/
/**
* @defgroup net_sixlowpan 6LoWPAN
* @ingroup net
* @brief Riots 6LowPAN implementation
* @{
* @file sixlowpan.h
* @brief 6lowpan header
* @author Stephan Zeisberg <zeisberg@mi.fu-berlin.de>
* @author Martin Lenders <mlenders@inf.fu-berlin.de>
* @author Oliver Gesch <oliver.gesch@googlemail.com>
* @author Eric Engel <eric.engel@fu-berlin.de>
*
* @file sixlowpan.h
* @brief 6lowpan header
*
* @author Stephan Zeisberg <zeisberg@mi.fu-berlin.de>
* @author Martin Lenders <mlenders@inf.fu-berlin.de>
* @author Oliver Gesch <oliver.gesch@googlemail.com>
* @author Eric Engel <eric.engel@fu-berlin.de>
*/
#ifndef _SIXLOWPAN_LOWPAN_H
@ -49,7 +51,5 @@ lowpan_context_t *lowpan_context_update(uint8_t num,
lowpan_context_t *lowpan_context_get(void);
lowpan_context_t *lowpan_context_num_lookup(uint8_t num);
/**
* @}
*/
/** @} */
#endif /* _SIXLOWPAN_LOWPAN_H */