NRF24

tools
tools/NRF24.h
tool stable stable

Tool: NRF24 Gestion de la communication radio avec module NRF24. Fonctionnalités : /

Méthodes publiques

Méthode Description Paramètres Retour
NRF24()
NRF24();
Constructeur / Destructeur Initialise l'objet NRF24. /
NRF24()
NRF24();
Constructeur / Destructeur Initialise l'objet NRF24. /
begin()
begin(uint8_t cePin, uint8_t csnPin);
Initialisation Configure les broches CE et CSN du module NRF24. / cePin: Broche CE
csnPin: Broche CSN /
sendData()
sendData(const uint8_t* data, uint8_t length);
Envoi de données Envoie un tableau d'octets au module distant. / data: Pointeur vers les données à envoyer
length: Nombre d'octets à envoyer
true
true si l'envoi a réussi, false sinon /
receiveData()
receiveData(uint8_t* data, uint8_t& length);
Réception de données Lit les données reçues par le module NRF24. / data: Pointeur vers le buffer de réception
length: Référence pour stocker la taille des données reçues
true
true si des données ont été reçues, false sinon /
getStatus()
getStatus() const {
Retourne l'état du module NRF24. jour ailleurs dans la classe : valeur figée à l'initialisation). / DEVICE_ERROR_INIT
DEVICE_ERROR_INIT (⚠️ _status n'est actuellement jamais mis à jour ailleurs dans la classe : valeur figée à l'initialisation). /

Méthodes privées


            begin(115200);;
begin(NRF_CE_PIN, NRF_CSN_PIN);;
println("Message envoyé");;
delay(1000);;

                    

Variables membres


            return _status;

                    

Code source


        #pragma once
#include <Arduino.h>
#include <RF24.h>
#include "../StatusDevice.h"
#include "../Settings.h"

namespace crepp::tools {

/*
 * =========================
 * Tool: NRF24
 * -------------------------
 * Gestion de la communication radio avec module NRF24.
 *
 * Fonctionnalités :
 * - Initialisation du module NRF24
 * - Envoi et réception de données
 * - Gestion interne des auto-ACKs et retransmissions
 *
 * @badge tool
 * @badge stable
 * =========================
 */
class NRF24 {
public:
    /*
     * =========================
     * Constructeur / Destructeur
     * -------------------------
     * Initialise l'objet NRF24.
     */
    NRF24();
    ~NRF24();

    /*
     * =========================
     * Initialisation
     * -------------------------
     * Configure les broches CE et CSN du module NRF24.
     * @param cePin  Broche CE
     * @param csnPin Broche CSN
     */
    void begin(uint8_t cePin, uint8_t csnPin);

    /*
     * =========================
     * Envoi de données
     * -------------------------
     * Envoie un tableau d'octets au module distant.
     * @param data   Pointeur vers les données à envoyer
     * @param length Nombre d'octets à envoyer
     * @return true si l'envoi a réussi, false sinon
     */
    bool sendData(const uint8_t* data, uint8_t length);

    /*
     * =========================
     * Réception de données
     * -------------------------
     * Lit les données reçues par le module NRF24.
     * @param data   Pointeur vers le buffer de réception
     * @param length Référence pour stocker la taille des données reçues
     * @return true si des données ont été reçues, false sinon
     */
    bool receiveData(uint8_t* data, uint8_t& length);

    /**
     * @brief Retourne l'état du module NRF24.
     * @return DEVICE_ERROR_INIT (⚠️ _status n'est actuellement jamais mis à
     *         jour ailleurs dans la classe : valeur figée à l'initialisation).
     */
    StatusDevice getStatus() const { return _status; }

private:
    uint8_t _cePin  = crepp::settings::pin::NRF_CE;   ///< Broche CE NRF_CE
    uint8_t _csnPin = crepp::settings::pin::NRF_CSN;  ///< Broche CSN

    StatusDevice _status = StatusDevice::DEVICE_ERROR_INIT;
};

/*
@example

@include
#include <crepp/tools/NRF24.h>
@end_include

@macro
#define NRF_CE_PIN  9
#define NRF_CSN_PIN 10
@end_macro

@instance
crepp::tools::NRF24 radio;
@end_instance

@isr
@end_isr

@function
@end_function

@setup
  Serial.begin(115200);
  radio.begin(NRF_CE_PIN, NRF_CSN_PIN);
@end_setup

@loop
  const char message[] = "Hello CREPP";
  radio.sendData((uint8_t*)message, sizeof(message));
  Serial.println("Message envoyé");
  delay(1000);
@end_loop

@end_example
*/

} // namespace crepp::tools