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 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 126 void TrameCreation()
60 127 {
61 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 140 //Converti en ASCII
68 141 testMsg[0] = 0x46; //emetteur F
69 142 testMsg[1] = 0x33; //emetteur 3
... ... @@ -78,8 +151,8 @@ void TrameCreation()
78 151 testMsg[9] = 0x31; //recepteur 1
79 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 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 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 100 void TrameComp()
63 101 {
64 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 168 TrameComp();
131 169 debug("Reception en cours...\r\n");
132 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 172 while(1)
136 173 {
  174 + Radio.Rx(RX_TIMEOUT_VALUE); //Reception mode en continu car TIME_OUT_VALUE = 0
137 175 if( BufferSize > 0 )
138 176 {
139 177 if(strncmp((const char*)Buffer, (const char*)receptMsg, TRAME_SIZE-2 ) == 0) //-2 pour ne vérifier que l'entete
140 178 {
141 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 184 else
144 185 {
145 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   -////////////////////////////////////////////////////////////////////////////////
... ...