doxygen: Added documentation to nrf24l01 module
authorKiveisha Yevgeniy <yevgeniy.kiveisha@intel.com>
Fri, 6 Jun 2014 15:40:24 +0000 (15:40 +0000)
committerKiveisha Yevgeniy <yevgeniy.kiveisha@intel.com>
Fri, 6 Jun 2014 15:40:24 +0000 (15:40 +0000)
Signed-off-by: Kiveisha Yevgeniy <yevgeniy.kiveisha@intel.com>
examples/nrf_receiver.cxx
examples/nrf_transmitter.cxx
src/nrf24l01/nrf24l01.cxx
src/nrf24l01/nrf24l01.h

index 294b175..16faa83 100644 (file)
@@ -41,20 +41,23 @@ sig_handler(int signo)
     }
 }
 
+//! [Interesting]
 void nrf_handler () {
     std::cout << "devi1 :: " << *((uint32_t *)&(comm->m_rxBuffer[0])) << std::endl;
 }
+//! [Interesting]
 
 int
 main(int argc, char **argv)
 {
+//! [Interesting]
     comm = new upm::NRF24l01(7);
     comm->nrfSetRXaddr ((uint8_t *) "devi1");
     comm->nrfSetTXaddr ((uint8_t *) "devi2");
     comm->nrfSetPayload (MAX_BUFFER);
     comm->nrfConfigModule ();
     comm->dataRecievedHandler = nrf_handler;
-    
+
     signal(SIGINT, sig_handler);
 
     while (!running) {
@@ -64,6 +67,6 @@ main(int argc, char **argv)
     std::cout << "exiting application" << std::endl;
 
     delete comm;
-
+//! [Interesting]
     return 0;
 }
index 52c4643..2761442 100644 (file)
@@ -47,6 +47,7 @@ void nrf_handler () {
 int
 main(int argc, char **argv)
 {
+//! [Interesting]
     uint32_t dummyData = 0;
     comm = new upm::NRF24l01(7);
     comm->nrfSetRXaddr ((uint8_t *) "devi2");
@@ -54,7 +55,7 @@ main(int argc, char **argv)
     comm->nrfSetPayload (MAX_BUFFER);
     comm->nrfConfigModule ();
     comm->dataRecievedHandler = nrf_handler;
-    
+
     signal(SIGINT, sig_handler);
 
     while (!running) {
@@ -68,6 +69,6 @@ main(int argc, char **argv)
     std::cout << "exiting application" << std::endl;
 
     delete comm;
-
+//! [Interesting]
     return 0;
 }
index 5be416e..b4b4579 100644 (file)
@@ -64,13 +64,13 @@ NRF24l01::nrfInitModule (uint8_t chip_select, uint8_t chip_enable) {
         fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_csn);
         exit (1);
     }
-    
+
     m_cePinCtx = maa_gpio_init (m_ce);
     if (m_cePinCtx == NULL) {
         fprintf (stderr, "Are you sure that pin%d you requested is valid on your platform?", m_ce);
         exit (1);
     }
-    
+
     error = maa_gpio_dir (m_csnPinCtx, MAA_GPIO_OUT);
     if (error != MAA_SUCCESS) {
         maa_result_print (error);
@@ -80,7 +80,7 @@ NRF24l01::nrfInitModule (uint8_t chip_select, uint8_t chip_enable) {
     if (error != MAA_SUCCESS) {
         maa_result_print (error);
     }
-    
+
     nrfCELow ();
     m_spi = maa_spi_init (0);
 }
@@ -95,7 +95,7 @@ NRF24l01::nrfConfigModule() {
     nrfConfigRegister (RX_PW_P1, m_payload);
     /* Set length of incoming payload for broadcast */
     nrfConfigRegister (RX_PW_P2, m_payload);
-    
+
     /* Start receiver */
     nrfPowerUpRX ();
     nrfFlushRX ();
@@ -114,7 +114,7 @@ void
 NRF24l01::nrfPowerUpRX() {
     m_ptx = 0;
     nrfCELow();
-    nrfConfigRegister(CONFIG, mirf_CONFIG | ( (1<<PWR_UP) | (1<<PRIM_RX) ) );
+    nrfConfigRegister(CONFIG, NRF_CONFIG | ( (1<<PWR_UP) | (1<<PRIM_RX) ) );
     nrfCEHigh();
     nrfConfigRegister(STATUS,(1 << TX_DS) | (1 << MAX_RT));
 }
@@ -130,7 +130,7 @@ NRF24l01::nrfFlushRX() {
 void
 NRF24l01::nrfSetRXaddr(uint8_t * addr) {
     nrfCELow();
-    nrfWriteRegister(RX_ADDR_P1, addr, mirf_ADDR_LEN);
+    nrfWriteRegister(RX_ADDR_P1, addr, ADDR_LEN);
     nrfCEHigh();
 }
 
@@ -139,15 +139,15 @@ void
 NRF24l01::nrfSetTXaddr(uint8_t * addr)
 {
     /* RX_ADDR_P0 must be set to the sending addr for auto ack to work. */
-    nrfWriteRegister (RX_ADDR_P0, addr, mirf_ADDR_LEN);
-    nrfWriteRegister (TX_ADDR, addr, mirf_ADDR_LEN);
+    nrfWriteRegister (RX_ADDR_P0, addr, ADDR_LEN);
+    nrfWriteRegister (TX_ADDR, addr, ADDR_LEN);
 }
 
 /* The broadcast address should be 0xFFFFF */
 void
 NRF24l01::nrfSetBroadcastAddr (uint8_t * addr) {
     nrfCELow ();
-    nrfWriteRegister (RX_ADDR_P2, addr, mirf_ADDR_LEN);
+    nrfWriteRegister (RX_ADDR_P2, addr, ADDR_LEN);
     nrfCEHigh ();
 }
 
@@ -180,7 +180,7 @@ NRF24l01::nrfDataReady() {
     if ( status & (1 << RX_DR) ) {
         return 1;
     }
-    
+
     return !nrfRXFifoEmpty();
 }
 
@@ -250,7 +250,7 @@ NRF24l01::nrfSend(uint8_t * value) {
     nrfCSOn ();
     maa_spi_write (m_spi, FLUSH_TX);        // Write cmd to flush tx fifo
     nrfCSOff ();
-    
+
     nrfCSOn ();
     maa_spi_write (m_spi, W_TX_PAYLOAD);     // Write cmd to write payload
     nrfTransmitSync(value, m_payload);        // Write payload
@@ -281,13 +281,13 @@ NRF24l01::nrfIsSending () {
 void
 NRF24l01::nrfPowerUpTX () {
     m_ptx = 1;
-    nrfConfigRegister (CONFIG, mirf_CONFIG | ( (1<<PWR_UP) | (0<<PRIM_RX) ) );
+    nrfConfigRegister (CONFIG, NRF_CONFIG | ( (1<<PWR_UP) | (0<<PRIM_RX) ) );
 }
 
 void
 NRF24l01::nrfPowerDown () {
     nrfCELow ();
-    nrfConfigRegister (CONFIG, mirf_CONFIG);
+    nrfConfigRegister (CONFIG, NRF_CONFIG);
 }
 
 maa_result_t
index 394d3fa..e9562a6 100644 (file)
 #define NOP                   0xFF
 
 /* Nrf24l settings */
-#define mirf_ADDR_LEN        5
-#define mirf_CONFIG         ((1<<EN_CRC) | (0<<CRCO) )
+#define ADDR_LEN        5
+#define NRF_CONFIG         ((1<<EN_CRC) | (0<<CRCO) )
 
 #define MAX_BUFFER            32
 
@@ -118,50 +118,217 @@ namespace upm {
 
 typedef void (* funcPtrVoidVoid) ();
 
+/**
+ * @brief C++ API for NRF24l01 transceiver module
+ *
+ * This file defines the NRF24l01 C++ interface for libnrf24l01
+ *
+ * @snippet nrf_receiver.cxx Interesting
+ * @snippet nrf_transmitter.cxx Interesting
+ */
 class NRF24l01 {
     public:
+        /**
+         * Instanciates a NRF24l01 object
+         *
+         * @param cs chip select pin
+         */
         NRF24l01 (uint8_t cs);
+
+        /**
+         * NRF24l01 object destructor
+         */
         ~NRF24l01 ();
+
+        /**
+         * Return name of the component
+         */
         std::string name()
         {
             return m_name;
         }
 
+        /**
+         * Initialize needed Gpio pins and SPI interface
+         *
+         * @param chipSelect setting up the chip select pin
+         * @param chipEnable setting up the chip enable pin
+         */
         void nrfInitModule (uint8_t chipSelect, uint8_t chipEnable);
+
+        /**
+         * Configure NRF24l01 chip
+         */
         void nrfConfigModule ();
+
+        /**
+         * Send the buffer data
+         *
+         * @param *value pointer to the buffer
+         */
         void nrfSend (uint8_t *value);
+
+        /**
+         * Send the data located in inner bufer, user must fill the
+         * m_txBuffer buffer
+         */
         void nrfSend ();
+
+        /**
+         * Set recieving address of the device
+         *
+         * @param addr 5 bytes addres
+         */
         void nrfSetRXaddr (uint8_t * addr);
+
+        /**
+         * Set recipient address. nrfSend method will send the data buffer
+         * to this address
+         *
+         * @param addr 5 bytes addres
+         */
         void nrfSetTXaddr (uint8_t * addr);
+
+        /**
+         * Set broadcasting address.
+         *
+         * @param addr 5 bytes addres
+         */
         void nrfSetBroadcastAddr (uint8_t * addr);
+
+        /**
+         * Set payload size.
+         *
+         * @param load size of the payload (MAX 32)
+         */
         void nrfSetPayload (uint8_t load);
+
+        /**
+         * Check if data arrived
+         */
         bool nrfDataReady ();
+
+        /**
+         * Check if chip in sending mode
+         */
         bool nrfIsSending ();
+
+        /**
+         * Check if recieving stack is empty
+         */
         bool nrfRXFifoEmpty ();
+
+        /**
+         * Check if transmitting stack is empty
+         */
         bool nrfTXFifoEmpty ();
+
+        /**
+         * Sink all arrived data into the provided buffer
+         *
+         * @param load size of the payload (MAX 32)
+         */
         void nrfGetData (uint8_t * data);
+
+        /**
+         * Check the chip state
+         */
         uint8_t nrfGetStatus ();
-        
+
+        /**
+         * Transmit provided data to the chip
+         *
+         * @param *dataout pointer to the buffer with data
+         * @param len length of the buffer
+         */
         void nrfTransmitSync (uint8_t *dataout, uint8_t len);
+
+        /**
+         * Recieve data from the chip
+         *
+         * @param *dataout pointer to the buffer with data
+         * @param *datain pointer to the buffer where the arrived data
+         * will be sinked
+         * @param len length of the buffer
+         */
         void nrfTransferSync (uint8_t *dataout ,uint8_t *datain, uint8_t len);
+
+        /**
+         * Write byte value into a register
+         *
+         * @param reg register address
+         * @param value the value to write
+         */
         void nrfConfigRegister (uint8_t reg, uint8_t value);
+
+        /**
+         * Read continues data from register
+         *
+         * @param reg register address
+         * @param *value pointer to the buffer
+         * @param len length of the buffer
+         */
         void nrfReadRegister (uint8_t reg, uint8_t * value, uint8_t len);
+
+        /**
+         * Write continues data to register
+         *
+         * @param reg register address
+         * @param *value pointer to the buffer
+         * @param len length of the buffer
+         */
         void nrfWriteRegister (uint8_t reg, uint8_t * value, uint8_t len);
+
+        /**
+         * Power up reciever
+         */
         void nrfPowerUpRX ();
+
+        /**
+         * Power up transmitter
+         */
         void nrfPowerUpTX ();
+
+        /**
+         * Power down all
+         */
         void nrfPowerDown ();
 
+        /**
+         * Set chip enable pin HIGH
+         */
         maa_result_t nrfCEHigh ();
+
+        /**
+         * Set chip enable LOW
+         */
         maa_result_t nrfCELow ();
+
+        /**
+         * Set chip select pin LOW
+         */
         maa_result_t nrfCSOn ();
+
+        /**
+         * Set chip select pin HIGH
+         */
         maa_result_t nrfCSOff ();
+
+        /**
+         * Flush reciver stack
+         */
         void nrfFlushRX ();
+
+        /**
+         * Pulling method which listenning for arrived data, if data
+         * arrived dataRecievedHandler will be triggered
+         */
         void nrfListenForChannel();
 
-        uint8_t                m_rxBuffer[MAX_BUFFER];
-        uint8_t                m_txBuffer[MAX_BUFFER];
+        uint8_t                m_rxBuffer[MAX_BUFFER]; /**< Reciver buffer */
+        uint8_t                m_txBuffer[MAX_BUFFER]; /**< Transmit buffer */
 
-        funcPtrVoidVoid dataRecievedHandler;
+        funcPtrVoidVoid dataRecievedHandler; /**< Data arrived handler */
     private:
         maa_spi_context        m_spi;
         uint8_t                m_ce;
@@ -170,7 +337,7 @@ class NRF24l01 {
         uint8_t             m_ptx;
         uint8_t                m_payload;
         uint8_t                m_localAddress[5];
-        
+
         maa_gpio_context     m_csnPinCtx;
         maa_gpio_context     m_cePinCtx;