Oskar Weigl
/
Eurobot2013
We are going to win! wohoo
Diff: Kalman/Sonar/RF12B/RF12B.h
- Revision:
- 4:698a3c538482
- Parent:
- 3:8c78c15a92e3
- Child:
- 8:a8693e2daa00
--- a/Kalman/Sonar/RF12B/RF12B.h Wed Nov 14 15:48:20 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -#ifndef _RF12B_H -#define _RF12B_H - -#include "mbed.h" -//#include <queue> - -enum rfmode_t{RX, TX}; - -class DummyCT; - -class RF12B { -public: - /* Constructor */ - RF12B(PinName SDI, - PinName SDO, - PinName SCK, - PinName NCS, - PinName NIRQ); - - - - /* Reads a packet of data. Returns false if read failed. Use available() to check how much space to allocate for buffer */ - bool read(unsigned char* data, unsigned int size); - - /* Reads a byte of data from the receive buffer - Returns 0xFF if there is no data */ - unsigned char read(); - - /* Transmits a packet of data */ - void write(unsigned char* data, unsigned char length); - void write(unsigned char data); /* 1-byte packet */ -// void write(std::queue<char> &data, int length = -1); /* sends a whole queue */ - - /* Returns the packet length if data is available in the receive buffer, 0 otherwise*/ - unsigned int available(); - - /** A assigns a callback function when a new reading is available **/ - void (*callbackfunc)(unsigned char rx_code); - DummyCT* callbackobj; - void (DummyCT::*mcallbackfunc)(unsigned char rx_code); - -protected: - /* Receive FIFO buffer */ -// std::queue<unsigned char> fifo; -// std::queue<unsigned char> temp; //for storing stuff mid-packet - - /* SPI module */ - SPI spi; - - /* Other digital pins */ - DigitalOut NCS; - InterruptIn NIRQ; - DigitalIn NIRQ_in; - //DigitalOut rfled; - - rfmode_t mode; - - /* Initialises the RF12B module */ - void init(); - - /* Write a command to the RF Module */ - unsigned int writeCmd(unsigned int cmd); - - /* Sends a byte of data across RF */ - void send(unsigned char data); - - /* Switch module between receive and transmit modes */ - void changeMode(rfmode_t mode); - - /* Interrupt routine for data reception */ - void rxISR(); - - /* Tell the RF Module this packet is received and wait for the next */ - void resetRX(); - - /* Return the RF Module Status word */ - unsigned int status(); - - /* Calculate CRC8 */ - unsigned char crc8(unsigned char crc, unsigned char data); -}; - -#endif /* _RF12B_H */ \ No newline at end of file