update to new driver format
This commit is contained in:
parent
658c35df11
commit
cbb8621e30
4 changed files with 770 additions and 723 deletions
File diff suppressed because it is too large
Load diff
|
@ -45,7 +45,7 @@
|
|||
* \file
|
||||
* \brief This file contains radio driver code.
|
||||
*
|
||||
* $Id: rf230bb.h,v 1.1 2009/07/08 16:17:07 dak664 Exp $
|
||||
* $Id: rf230bb.h,v 1.2 2010/02/22 22:23:18 dak664 Exp $
|
||||
*/
|
||||
|
||||
#ifndef RADIO_H
|
||||
|
@ -68,6 +68,7 @@
|
|||
#define RF230_MIN_ED_THRESHOLD ( 0 )
|
||||
#define RF230_MAX_ED_THRESHOLD ( 15 )
|
||||
#define RF230_MAX_TX_FRAME_LENGTH ( 127 ) /**< 127 Byte PSDU. */
|
||||
//#define RF230_MAX_PACKET_LEN 127
|
||||
|
||||
#define TX_PWR_3DBM ( 0 )
|
||||
#define TX_PWR_17_2DBM ( 15 )
|
||||
|
@ -170,13 +171,37 @@ typedef void (*radio_rx_callback) (uint16_t data);
|
|||
extern uint8_t rxMode;
|
||||
/*============================ PROTOTYPES ====================================*/
|
||||
const struct radio_driver rf230_driver;
|
||||
void rf230_init(void);
|
||||
int rf230_init(void);
|
||||
//int rf230_on(void);
|
||||
//int rf230_off(void);
|
||||
void rf230_set_channel(int channel);
|
||||
int rf230_get_channel(void);
|
||||
void rf230_set_channel(int c);
|
||||
void rf230_set_pan_addr(uint16_t pan,uint16_t addr,uint8_t *ieee_addr);
|
||||
void rf230_set_txpower(uint8_t power);
|
||||
void rf230_set_pan_addr(unsigned pan,unsigned addr,const uint8_t *ieee_addr);
|
||||
//void rf230_set_pan_addr(uint16_t pan,uint16_t addr,uint8_t *ieee_addr);
|
||||
//void rf230_set_txpower(uint8_t power);
|
||||
int rf230_get_txpower(void);
|
||||
|
||||
//extern signed char rf230_last_rssi;
|
||||
//extern uint8_t rf230_last_correlation;
|
||||
|
||||
//int rf230_rssi(void);
|
||||
|
||||
|
||||
|
||||
//#define CC2420_TXPOWER_MAX 31
|
||||
//#define CC2420_TXPOWER_MIN 0
|
||||
|
||||
/**
|
||||
* Interrupt function, called from the simple-cc2420-arch driver.
|
||||
*
|
||||
*/
|
||||
//int cc2420_interrupt(void);
|
||||
|
||||
/* XXX hack: these will be made as Chameleon packet attributes */
|
||||
//extern rtimer_clock_t rf230_time_of_arrival,rf230_time_of_departure;
|
||||
//extern int rf230_authority_level_of_sender;
|
||||
|
||||
|
||||
//radio_status_t radio_init(bool cal_rc_osc,
|
||||
// hal_rx_start_isr_event_handler_t rx_event,
|
||||
// hal_trx_end_isr_event_handler_t trx_end_event,
|
||||
|
|
|
@ -82,6 +82,14 @@ typedef int32_t s32_t;
|
|||
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 2
|
||||
#define SICSLOWPAN_CONF_FRAG 1
|
||||
|
||||
/* Network setup for IPv6 */
|
||||
#define NETSTACK_CONF_NETWORK sicslowpan_driver
|
||||
//#define NETSTACK_CONF_MAC nullmac_driver
|
||||
#define NETSTACK_CONF_MAC csma_driver
|
||||
//#define NETSTACK_CONF_RDC contikimac_driver
|
||||
#define NETSTACK_CONF_RDC sicslowmac_driver
|
||||
#define NETSTACK_CONF_RADIO rf230_driver
|
||||
|
||||
/* Below will prevent fragmentation of TCP packets, undef for faster page loads, simpler wireshark captures */
|
||||
//#define UIP_CONF_TCP_MSS 48
|
||||
|
||||
|
@ -97,6 +105,7 @@ typedef int32_t s32_t;
|
|||
#define SICSLOWPAN_CONF_CONVENTIONAL_MAC 1 //for barebones driver, sicslowpan calls radio->read function
|
||||
#undef PACKETBUF_CONF_HDR_SIZE //RF230BB takes the packetbuf default for header size
|
||||
#define UIP_CONF_ROUTER 0
|
||||
|
||||
#if 0
|
||||
/* Specifies the default MAC driver */
|
||||
//no auto_ack gives bad FCS for some reason?
|
||||
|
|
|
@ -33,12 +33,14 @@
|
|||
#define DEBUG 1
|
||||
#if DEBUG
|
||||
#define PRINTF(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
|
||||
#define PRINTSHORT(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
|
||||
int pingtimer1=0,pingtimer2=0;
|
||||
#if RF230BB
|
||||
extern int rf230_interrupt_flag;
|
||||
#endif
|
||||
#else
|
||||
#define PRINTF(...)
|
||||
#define PRINTSHORT(...)
|
||||
#endif
|
||||
|
||||
#include <avr/pgmspace.h>
|
||||
|
@ -58,13 +60,14 @@ extern int rf230_interrupt_flag;
|
|||
//#include "net/mac/framer-nullmac.h"
|
||||
//#include "net/mac/framer.h"
|
||||
#include "net/sicslowpan.h"
|
||||
#include "net/uip-netif.h"
|
||||
//#include "net/uip-netif.h"
|
||||
//#include "net/mac/lpp.h"
|
||||
#include "net/mac/cxmac.h"
|
||||
#include "net/mac/sicslowmac.h"
|
||||
//#include "net/mac/cxmac.h"
|
||||
//#include "net/mac/sicslowmac.h"
|
||||
//#include "dev/xmem.h"
|
||||
#include "net/rime.h"
|
||||
//#include "net/rime.h"
|
||||
|
||||
#if 0
|
||||
#if WITH_NULLMAC
|
||||
#define MAC_DRIVER nullmac_driver
|
||||
#endif /* WITH_NULLMAC */
|
||||
|
@ -73,10 +76,11 @@ extern int rf230_interrupt_flag;
|
|||
#ifdef MAC_CONF_DRIVER
|
||||
#define MAC_DRIVER MAC_CONF_DRIVER
|
||||
#else
|
||||
#define MAC_DRIVER sicslowmac_driver
|
||||
#define MAC_DRIVER sicslowmac1_driver
|
||||
//#define MAC_DRIVER cxmac_driver
|
||||
#endif /* MAC_CONF_DRIVER */
|
||||
#endif /* MAC_DRIVER */
|
||||
#endif
|
||||
|
||||
#else //radio driver using Atmel/Cisco 802.15.4'ish MAC
|
||||
#include <stdbool.h>
|
||||
|
@ -189,7 +193,19 @@ void initialize(void)
|
|||
PRINTF("MAC address %x:%x:%x:%x:%x:%x:%x:%x\n",addr.u8[0],addr.u8[1],addr.u8[2],addr.u8[3],addr.u8[4],addr.u8[5],addr.u8[6],addr.u8[7]);
|
||||
|
||||
framer_set(&framer_802154);
|
||||
|
||||
/* Setup X-MAC for 802.15.4 */
|
||||
queuebuf_init();
|
||||
NETSTACK_RDC.init(); //prints rs2048
|
||||
NETSTACK_MAC.init();
|
||||
NETSTACK_NETWORK.init();
|
||||
//todo: makes raven reboot
|
||||
// printf(" %s, channel check rate %d Hz, radio channel %u\n",
|
||||
// sicslowpan_mac->name,
|
||||
// CLOCK_SECOND / (sicslowpan_mac->channel_check_interval() == 0? 1:
|
||||
// sicslowpan_mac->channel_check_interval()),
|
||||
// RF_CHANNEL);
|
||||
|
||||
// uip_ip6addr(&ipprefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
||||
// uip_netif_addr_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0, AUTOCONF);
|
||||
// uip_nd6_prefix_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0);
|
||||
|
@ -202,10 +218,10 @@ void initialize(void)
|
|||
uip_router_register(&rimeroute);
|
||||
#endif
|
||||
|
||||
sicslowpan_init(MAC_DRIVER.init(&rf230_driver));
|
||||
// sicslowpan_init(MAC_DRIVER.init(&rf230_driver));
|
||||
|
||||
PRINTF("Driver: %s, Channel: %u\n\r", MAC_DRIVER.name, rf230_get_channel());
|
||||
//PRINTF("Driver: %s, Channel: %u\n", sicslowmac_driver.name, rf230_get_channel());
|
||||
// PRINTF("Driver: %s, Channel: %u\n\r", MAC_DRIVER.name, rf230_get_channel());
|
||||
PRINTF("Driver: %s, Channel: %u\n", sicslowpan_mac->name, rf230_get_channel());
|
||||
}
|
||||
#endif /*RF230BB*/
|
||||
|
||||
|
@ -246,6 +262,7 @@ void initialize(void)
|
|||
|
||||
/*--------------------------Announce the configuration---------------------*/
|
||||
#define ANNOUNCE_BOOT 1 //adds about 400 bytes to program size
|
||||
|
||||
#if ANNOUNCE_BOOT
|
||||
|
||||
#if WEBSERVER
|
||||
|
@ -326,7 +343,7 @@ main(void)
|
|||
rtimerworks=0;
|
||||
}
|
||||
#endif
|
||||
#if RF230BB
|
||||
#if RF230BB && 0
|
||||
if (rf230processflag) {
|
||||
printf("rf230p%d",rf230processflag);
|
||||
rf230processflag=0;
|
||||
|
@ -335,10 +352,11 @@ main(void)
|
|||
|
||||
#if 0
|
||||
if (rf230_interrupt_flag) {
|
||||
if (rf230_interrupt_flag!=11) {
|
||||
PRINTF("*****Radio interrupt %u\n",rf230_interrupt_flag);
|
||||
// if (rf230_interrupt_flag!=11) {
|
||||
// PRINTF("*****Radio interrupt %u\n",rf230_interrupt_flag);
|
||||
PRINTSHORT("**RI%u",rf230_interrupt_flag);
|
||||
rf230_interrupt_flag=0;
|
||||
}
|
||||
// }
|
||||
}
|
||||
#endif
|
||||
#if PINGS
|
||||
|
|
Loading…
Reference in a new issue