Commit b0846b68de84a62c686253a96cd5a36d6be7b11e

Authored by rcavalie
1 parent 78cb1342

communication en fonction temp aleatoires ok

Showing 2 changed files with 121 additions and 74 deletions   Show diff stats
emetteur/emetteur.cpp
@@ -56,14 +56,87 @@ uint8_t testMsg[TRAME_SIZE]; @@ -56,14 +56,87 @@ uint8_t testMsg[TRAME_SIZE];
56 //////////////////////////////////////////////////////////////////////////////// 56 ////////////////////////////////////////////////////////////////////////////////
57 57
58 //////////////////////////////////////////////////////////////////////////////// 58 ////////////////////////////////////////////////////////////////////////////////
  59 +//Fonctions utiles
  60 +
  61 +//Debug pour savoir si le message a été transmis
  62 +void OnTxDone( void )
  63 +{
  64 + Radio.SetChannel( HoppingFrequencies[0] );
  65 + Radio.Sleep( );
  66 + State = TX;
  67 + debug_if( DEBUG_MESSAGE, "\nEnvoye \n\r" );
  68 +}
  69 +
  70 +//Time out de transmission. Échec de l'envoi
  71 +void OnTxTimeout( void )
  72 +{
  73 + Radio.SetChannel(HoppingFrequencies[0]);
  74 + Radio.Sleep( );
  75 + State = TX_TIMEOUT;
  76 + debug_if( DEBUG_MESSAGE, "Echec de l'envoi \n\r");
  77 +}
  78 +
  79 +//Modification du canal d'emission
  80 +void OnFhssChangeChannel( uint8_t channelIndex )
  81 +{
  82 + Radio.SetChannel(HoppingFrequencies[channelIndex]);
  83 + debug_if(DEBUG_MESSAGE, "F%d-", channelIndex);
  84 +}
  85 +
  86 +//fonction permettant de convertir int en uint8_t (ASCII)
  87 +uint8_t RandAscii(int nb)
  88 +{
  89 + int return_var;
  90 +
  91 + if (nb == 0) {
  92 + return_var = 0x30;
  93 + }
  94 + else if (nb == 1) {
  95 + return_var = 0x31;
  96 + }
  97 + else if (nb == 2) {
  98 + return_var = 0x32;
  99 + }
  100 + else if (nb == 3) {
  101 + return_var = 0x33;
  102 + }
  103 + else if (nb == 4) {
  104 + return_var = 0x34;
  105 + }
  106 + else if (nb == 5) {
  107 + return_var = 0x35;
  108 + }
  109 + else if (nb == 6) {
  110 + return_var = 0x36;
  111 + }
  112 + else if (nb == 7) {
  113 + return_var = 0x37;
  114 + }
  115 + else if (nb == 8) {
  116 + return_var = 0x38;
  117 + }
  118 + else if (nb == 9) {
  119 + return_var = 0x39;
  120 + }
  121 + return return_var;
  122 +}
  123 +////////////////////////////////////////////////////////////////////////////////
  124 +
  125 +////////////////////////////////////////////////////////////////////////////////
59 void TrameCreation() 126 void TrameCreation()
60 { 127 {
61 //Création d'une trame 128 //Création d'une trame
62 /* 129 /*
63 - [1...] : ID de l'emetteur  
64 - [...] : ID du recepteur cible  
65 - [...] : Température communiquée ici 20 pour l'exemple 130 + [1...6] : ID de l'emetteur
  131 + [7...11] : ID du recepteur cible
  132 + [12...13] : Température communiquée ici 20 pour l'exemple
66 */ 133 */
  134 + //Génération aléatoire des températures
  135 + int dizaines_i = rand()%10;
  136 + int unites_i = rand()%10;
  137 + uint8_t dizaines_c = RandAscii(dizaines_i);
  138 + uint8_t unites_c = RandAscii(unites_i);
  139 +
67 //Converti en ASCII 140 //Converti en ASCII
68 testMsg[0] = 0x46; //emetteur F 141 testMsg[0] = 0x46; //emetteur F
69 testMsg[1] = 0x33; //emetteur 3 142 testMsg[1] = 0x33; //emetteur 3
@@ -78,8 +151,8 @@ void TrameCreation() @@ -78,8 +151,8 @@ void TrameCreation()
78 testMsg[9] = 0x31; //recepteur 1 151 testMsg[9] = 0x31; //recepteur 1
79 testMsg[10] = 0x43; //recepteur C 152 testMsg[10] = 0x43; //recepteur C
80 // 153 //
81 - testMsg[11] = 0x32; //temperature 2 dizaines  
82 - testMsg[12] = 0x31; //temperature 0 unités 154 + testMsg[11] = dizaines_c; //temperature 2 dizaines
  155 + testMsg[12] = unites_c; //temperature 0 unités
83 } 156 }
84 //////////////////////////////////////////////////////////////////////////////// 157 ////////////////////////////////////////////////////////////////////////////////
85 158
@@ -144,32 +217,3 @@ int main( void ) @@ -144,32 +217,3 @@ int main( void )
144 } 217 }
145 } 218 }
146 //////////////////////////////////////////////////////////////////////////////// 219 ////////////////////////////////////////////////////////////////////////////////
147 -  
148 -////////////////////////////////////////////////////////////////////////////////  
149 -//Fonctions utiles  
150 -  
151 -//Debug pour savoir si le message a été transmis  
152 -void OnTxDone( void )  
153 -{  
154 - Radio.SetChannel( HoppingFrequencies[0] );  
155 - Radio.Sleep( );  
156 - State = TX;  
157 - debug_if( DEBUG_MESSAGE, "\nEnvoye \n\r" );  
158 -}  
159 -  
160 -//Time out de transmission. Échec de l'envoi  
161 -void OnTxTimeout( void )  
162 -{  
163 - Radio.SetChannel(HoppingFrequencies[0]);  
164 - Radio.Sleep( );  
165 - State = TX_TIMEOUT;  
166 - debug_if( DEBUG_MESSAGE, "Echec de l'envoi \n\r");  
167 -}  
168 -  
169 -//Modification du canal d'emission  
170 -void OnFhssChangeChannel( uint8_t channelIndex )  
171 -{  
172 - Radio.SetChannel(HoppingFrequencies[channelIndex]);  
173 - debug_if(DEBUG_MESSAGE, "F%d-", channelIndex);  
174 -}  
175 -////////////////////////////////////////////////////////////////////////////////  
recepteur/recepteur.cpp
@@ -59,6 +59,44 @@ uint8_t receptMsg[13]; @@ -59,6 +59,44 @@ uint8_t receptMsg[13];
59 //////////////////////////////////////////////////////////////////////////////// 59 ////////////////////////////////////////////////////////////////////////////////
60 60
61 //////////////////////////////////////////////////////////////////////////////// 61 ////////////////////////////////////////////////////////////////////////////////
  62 +//Fonctions utiles
  63 +void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
  64 +{
  65 + Radio.SetChannel( HoppingFrequencies[0] );
  66 + Radio.Sleep( );
  67 + BufferSize = size;
  68 + memcpy( Buffer, payload, BufferSize );
  69 + RssiValue = rssi;
  70 + SnrValue = snr;
  71 + State = RX;
  72 + debug_if( DEBUG_MESSAGE, "> OnRxDone\n\r" );
  73 +}
  74 +
  75 +void OnRxTimeout( void )
  76 +{
  77 + Radio.SetChannel( HoppingFrequencies[0] );
  78 + Radio.Sleep( );
  79 + Buffer[BufferSize] = 0;
  80 + State = RX_TIMEOUT;
  81 + debug_if( DEBUG_MESSAGE, "> OnRxTimeout\n\r" );
  82 +}
  83 +
  84 +void OnRxError( void )
  85 +{
  86 + Radio.SetChannel( HoppingFrequencies[0] );
  87 + Radio.Sleep( );
  88 + State = RX_ERROR;
  89 + debug_if( DEBUG_MESSAGE, "> OnRxError\n\r" );
  90 +}
  91 +
  92 +void OnFhssChangeChannel( uint8_t channelIndex )
  93 +{
  94 + Radio.SetChannel( HoppingFrequencies[channelIndex] );
  95 + debug_if( DEBUG_MESSAGE, "F%d-", channelIndex );
  96 +}
  97 +////////////////////////////////////////////////////////////////////////////////
  98 +
  99 +////////////////////////////////////////////////////////////////////////////////
62 void TrameComp() 100 void TrameComp()
63 { 101 {
64 //Création d'une trame de comparaison pour vérifier si l'id de l'emetteur est bonne 102 //Création d'une trame de comparaison pour vérifier si l'id de l'emetteur est bonne
@@ -130,60 +168,25 @@ int main( void ) @@ -130,60 +168,25 @@ int main( void )
130 TrameComp(); 168 TrameComp();
131 debug("Reception en cours...\r\n"); 169 debug("Reception en cours...\r\n");
132 debug("Etat initial du Buffer : %s\r\n",(char*)Buffer); 170 debug("Etat initial du Buffer : %s\r\n",(char*)Buffer);
133 - Radio.Rx(RX_TIMEOUT_VALUE); //Reception mode en continu car TIME_OUT_VALUE = 0  
134 171
135 while(1) 172 while(1)
136 { 173 {
  174 + Radio.Rx(RX_TIMEOUT_VALUE); //Reception mode en continu car TIME_OUT_VALUE = 0
137 if( BufferSize > 0 ) 175 if( BufferSize > 0 )
138 { 176 {
139 if(strncmp((const char*)Buffer, (const char*)receptMsg, TRAME_SIZE-2 ) == 0) //-2 pour ne vérifier que l'entete 177 if(strncmp((const char*)Buffer, (const char*)receptMsg, TRAME_SIZE-2 ) == 0) //-2 pour ne vérifier que l'entete
140 { 178 {
141 debug("Trame recue : %s\r\n",(char*)Buffer); 179 debug("Trame recue : %s\r\n",(char*)Buffer);
  180 + //il faut enregistrer la trame
  181 + //il faut vider le buffer
  182 + memset (Buffer, NULL, BUFFER_SIZE);
142 } 183 }
143 else 184 else
144 { 185 {
145 debug("Attente d'une trame...\n"); 186 debug("Attente d'une trame...\n");
146 } 187 }
147 - wait_ms(1000); 188 + wait_ms(5000);
148 } 189 }
149 } 190 }
150 } 191 }
151 //////////////////////////////////////////////////////////////////////////////// 192 ////////////////////////////////////////////////////////////////////////////////
152 -  
153 -////////////////////////////////////////////////////////////////////////////////  
154 -//Fonctions utiles  
155 -void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )  
156 -{  
157 - Radio.SetChannel( HoppingFrequencies[0] );  
158 - Radio.Sleep( );  
159 - BufferSize = size;  
160 - memcpy( Buffer, payload, BufferSize );  
161 - RssiValue = rssi;  
162 - SnrValue = snr;  
163 - State = RX;  
164 - debug_if( DEBUG_MESSAGE, "> OnRxDone\n\r" );  
165 -}  
166 -  
167 -void OnRxTimeout( void )  
168 -{  
169 - Radio.SetChannel( HoppingFrequencies[0] );  
170 - Radio.Sleep( );  
171 - Buffer[BufferSize] = 0;  
172 - State = RX_TIMEOUT;  
173 - debug_if( DEBUG_MESSAGE, "> OnRxTimeout\n\r" );  
174 -}  
175 -  
176 -void OnRxError( void )  
177 -{  
178 - Radio.SetChannel( HoppingFrequencies[0] );  
179 - Radio.Sleep( );  
180 - State = RX_ERROR;  
181 - debug_if( DEBUG_MESSAGE, "> OnRxError\n\r" );  
182 -}  
183 -  
184 -void OnFhssChangeChannel( uint8_t channelIndex )  
185 -{  
186 - Radio.SetChannel( HoppingFrequencies[channelIndex] );  
187 - debug_if( DEBUG_MESSAGE, "F%d-", channelIndex );  
188 -}  
189 -////////////////////////////////////////////////////////////////////////////////