Commit b0846b68de84a62c686253a96cd5a36d6be7b11e
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 | -//////////////////////////////////////////////////////////////////////////////// |