1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#include <RH_ASK.h>
#include <SPI.h> // Not actually used but needed to compile
#define speedTR 1000
#define RX_PIN 5
const uint16_t sizeMaxData = 43; //Taille max du data à envoyer
struct data_t {
uint16_t addr[8];
uint8_t dataRecv[sizeMaxData]; //Nombre d'octets en réception
} data;
const uint16_t tblAddr[8]{0x00AB,0xCF2A,0x153D,0x2ABC,0x2384,0xA23D,0xF2FF,0xCA2D};
//const uint16_t tblAddr[8]{0x00AB,0xCF2A,0x153D,0x2ABC,0x2384,0xA23D,0xF2FF,0xCA5D};
RH_ASK driver(speedTR, RX_PIN); //Librairie RadioHead
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); //Liaison série pour le Débug
driver.init(); //Initialisation de RH_ASK
}
void loop() {
// put your main code here, to run repeatedly:
uint8_t buflen = sizeof(data); //Longueur du buffer
//Si des datas sont reçues au tarvers de RH_ASK
if (driver.recv((uint8_t*) &data, &buflen)) {
//Si l'adresse correspond à celle de l'équipement
if(!memcmp(data.addr, tblAddr, sizeof(data.addr))) {
//Extraire le message, l'affichage sur le LCD
/* A tester */
const uint8_t maxPtr = 10;
uint8_t cmpt = 0;
char* tblMessage[sizeof(data.dataRecv)];
char * ptrText;
ptrText = strtok(data.dataRecv, ",");
//Boucler tant que tous les éléments ne sont pas extrait
while(ptrText) {
char* starText;
//Si nous avons un espace au début, sauter
if(*ptrText == ' ') {
starText = ptrText + 1;
}
else {
starText = ptrText;
}
//S'il reste de la place dans le buffer, nous gardons le pointeur
if(cmpt < maxPtr) {
tblMessage[cmpt++] = starText;
}
else {
break; //stop !!! Oust... Dehors ! On a pas assez de place pour mémoriser les suivants
}
ptrText = strtok(NULL, ";"); //Tocken suivant
}
Serial.print(F("Type message [ "));
Serial.print(tblMessage[0]);
Serial.println(F(" ]"));
Serial.print(F("ligne [ "));
Serial.print(tblMessage[1]);
Serial.println(F(" ]"));
Serial.print(F("colonne [ "));
Serial.print(tblMessage[2]);
Serial.println(F(" ]"));
Serial.print(F("Message [ "));
Serial.print(tblMessage[3]);
Serial.println(F(" ]"));
/* Fin du test */
}
}
} |
Partager