diff --git a/2k17/Arduino_DUE_LoRa/Arduino_DUE_LoRa.ino b/2k17/Arduino_DUE_LoRa/Arduino_DUE_LoRa.ino deleted file mode 100644 index 8a3b737..0000000 --- a/2k17/Arduino_DUE_LoRa/Arduino_DUE_LoRa.ino +++ /dev/null @@ -1,156 +0,0 @@ -#include -#include -#include -#include "Ethernet.h" - -//correspond au modele de la trame -//la station est définie sur 1 octet (poid faible) -#define MAX_STATION 0x03 - -#define Serial SerialUSB - -byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // set the mac address - -uint16_t temp_IS=0; -uint16_t temp_H=0; -bool res; - -//structure de la trame (établie en fonction de notre protocole) -typedef struct -{ - uint16_t IS; - uint16_t TS; - uint16_t TD; - uint16_t D1; - uint16_t D2; - uint16_t D3; -}trame; - -trame tab_trames[MAX_STATION]; //tableau des trames par micro-statiton - -void setup() -{ - Serial.begin(9600); - Ethernet.begin(mac); - Serial.println("Passerelle LoRa :"); - Serial.print("server is at "); // display on serial the IP you can find the webpage - Serial.println(Ethernet.localIP()); - -//on démarre une instance de LoRa avec en parametre une fréquence et on bloque si on ne peux pas se connecter - do - { - res = LoRa.begin(868E6); - if(res == false) - { - Serial.println("Le LoRa ne peux pas établir de connexion!"); - } - } - while(res == false); -} - -void loop() -{ - trame traitement_trame; - int packetSize = LoRa.parsePacket(); //On range dans cette variable la taille du packet - uint16_t trame_recu[6]; - int id; - int i=0; - if (packetSize > 0) - { - Serial.println("Réception des trames :"); - while (LoRa.available()) //on se met sur écoute et on lit le paquet qu'on cast en char - { - trame_recu[i]=LoRa.read() << 8; - trame_recu[i] |= LoRa.read(); - Serial.print(trame_recu[i]);// read sert a lire les données du registre du LoRa - Serial.print("."); - i++; - } - - Serial.println(" "); - - /*cas acceptés: - * temp_IS != traitement_trame.IS && temp_H != traitement_trame.H - * temp_IS != traitement_trame.IS && temp.H == traitement_trame.H - * temp_IS == traitement_trame.IS && temp.h != traitement_trame.H - * cas reffusé : - * temp_IS == traitement_trame.IS && temp.h == traitement_trame.H - */ - if(tab_trames[trame_recu[0]-1].IS == trame_recu[0] && tab_trames[trame_recu[0]-1].TS == trame_recu[1]) - { - Serial.println("trame déja recu"); - } - else - { - //on stocke les valeurs reçue de la trame dans la structure - traitement_trame.IS=trame_recu[0]; - traitement_trame.TS=trame_recu[1]; - traitement_trame.TD=trame_recu[2]; - traitement_trame.D1=trame_recu[3]; - traitement_trame.D2=trame_recu[4]; - traitement_trame.D3=trame_recu[5]; - - //On remplace les valeurs temp pour pouvoir les comparer avec les futures trames - temp_H = traitement_trame.TS; - temp_IS = traitement_trame.IS; - tab_trames[temp_IS-1]=traitement_trame; - - envoyer_trame(temp_IS-1); - } - } -} - - -/* - * fonction envoyer par TX/RX les trames recues precedemment - * On convertit en string le tableau de trame puis on le concatene - * avec les en-tetes basique du protocole HTTP - * - * CODE : - * - * Variables : - * création d'une en_tete String - * incréments - * tab_trames - * tableau de caractères - * IMPOSSIBILITE : print ou write peux afficher les strings, - * cependant on utilisera un char pour la surdéfinition de print - * - * Instructions : - * for(i=0;i