This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
lab5 [2014/11/04 14:59] dan.tudose created |
lab5 [2018/11/09 09:55] (current) dan.tudose |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Protocoale de transmisie ====== | ====== Protocoale de transmisie ====== | ||
| - | Pentru lucrarea curentă de laborator veți folosi biblioteca | + | Pentru lucrarea curentă de laborator veți folosi biblioteca |
| Instalarea bibliotecii este foarte facilă, trebuie doar să dezarhivați arhiva în Arduino\libraries | Instalarea bibliotecii este foarte facilă, trebuie doar să dezarhivați arhiva în Arduino\libraries | ||
| Line 7: | Line 7: | ||
| Mai jos aveți un exemplu care vă permite să trimiteți și să recepționați pachete de date de pe interfața radio. Pentru aceasta aveți nevoie de două noduri: primul rulează codul care transmite (Tx) și al doilea recepționează (Rx). | Mai jos aveți un exemplu care vă permite să trimiteți și să recepționați pachete de date de pe interfața radio. Pentru aceasta aveți nevoie de două noduri: primul rulează codul care transmite (Tx) și al doilea recepționează (Rx). | ||
| + | Codul pentru Transmitter: | ||
| + | <code C> | ||
| + | #include " | ||
| + | |||
| + | //create object | ||
| + | SparrowTransfer ST; | ||
| + | |||
| + | struct SEND_DATA_STRUCTURE{ | ||
| + | //put your variable definitions here for the data you want to send | ||
| + | //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO | ||
| + | uint16_t data; | ||
| + | }; | ||
| + | |||
| + | //give a name to the group of data | ||
| + | SEND_DATA_STRUCTURE mydata; | ||
| + | |||
| + | void blinkLED() //blinks the LED | ||
| + | { | ||
| + | digitalWrite(8, | ||
| + | delay(20); | ||
| + | digitalWrite(8, | ||
| + | } | ||
| + | |||
| + | void setup(){ | ||
| + | | ||
| + | |||
| + | // | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | } | ||
| + | |||
| + | void loop(){ | ||
| + | | ||
| + | mydata.data++; | ||
| + | | ||
| + | //send the data | ||
| + | ST.sendData(); | ||
| + | blinkLED(); | ||
| + | |||
| + | delay(1000); | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Codul pentru Receiver: | ||
| + | |||
| + | <code C> | ||
| + | #include " | ||
| + | |||
| + | //create object | ||
| + | SparrowTransfer ST; | ||
| + | |||
| + | struct RECEIVE_DATA_STRUCTURE{ | ||
| + | //put your variable definitions here for the data you want to send | ||
| + | //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO | ||
| + | uint16_t data; | ||
| + | |||
| + | }; | ||
| + | //give a name to the group of data | ||
| + | RECEIVE_DATA_STRUCTURE mydata; | ||
| + | |||
| + | uint16_t old_index, received_index, | ||
| + | |||
| + | void setup(){ | ||
| + | Serial.begin(9600); | ||
| + | | ||
| + | //start the library, pass in the data details | ||
| + | ST.begin(details(mydata)); | ||
| + | |||
| + | pinMode(11, OUTPUT); | ||
| + | digitalWrite(11, | ||
| + | |||
| + | } | ||
| + | |||
| + | void blinkLED() | ||
| + | { | ||
| + | digitalWrite(11, | ||
| + | delay(20); | ||
| + | digitalWrite(11, | ||
| + | } | ||
| + | |||
| + | void loop(){ | ||
| + | //check and see if a data packet has come in. | ||
| + | if(ST.receiveData() == SUCCESS){ | ||
| + | | ||
| + | blinkLED(); | ||
| + | | ||
| + | received_index++; | ||
| + | | ||
| + | if(old_index != 0) | ||
| + | lost += mydata.data - old_index - 1; | ||
| + | | ||
| + | Serial.print(" | ||
| + | Serial.print(mydata.data); | ||
| + | Serial.print(" | ||
| + | Serial.print(", | ||
| + | Serial.print(lost); | ||
| + | Serial.print(", | ||
| + | Serial.print(lost*100.0/ | ||
| + | Serial.println(" | ||
| + | | ||
| + | old_index = mydata.data; | ||
| + | } | ||
| + | |||
| + | //optional delay, to disable flooding serial interface | ||
| + | // | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||