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 | 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 | -//////////////////////////////////////////////////////////////////////////////// | ... | ... |