Skip to content
Snippets Groups Projects
Commit 3d740742 authored by Julia Wichmann's avatar Julia Wichmann
Browse files

Update modules

parent 41cf8a23
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
...@@ -25,8 +25,6 @@ ...@@ -25,8 +25,6 @@
byte send[MAXFRAMESIZE] = {0}; // Testdata: 0xB3, 0x10 = 10110011, 00010000 byte send[MAXFRAMESIZE] = {0}; // Testdata: 0xB3, 0x10 = 10110011, 00010000
byte frame[MAXFRAMESIZE] = {0}; // 0 - Preambel, 1 to 4 - CRC checksum, 5 - size, 6 to n (n = max. 256) - Payload byte frame[MAXFRAMESIZE] = {0}; // 0 - Preambel, 1 to 4 - CRC checksum, 5 - size, 6 to n (n = max. 256) - Payload
byte state = 0;
byte flag = 1; byte flag = 1;
byte bufferIndex = 0; // Zählvariable für ISR byte bufferIndex = 0; // Zählvariable für ISR
byte sendIndex = 0; byte sendIndex = 0;
...@@ -97,7 +95,7 @@ int main(void){ ...@@ -97,7 +95,7 @@ int main(void){
byte* receivedFrame = malloc(MAXFRAMESIZE*sizeof(byte)); byte* receivedFrame = malloc(MAXFRAMESIZE*sizeof(byte));
byte sizeToReceive = MAXFRAMESIZE-1; byte sizeToReceive = MAXFRAMESIZE-1;
byte action; // 0 - broadcast successful, to layer 4; 1 - receive, to layer 4; 2 - relay byte action; // 0 - broadcast successful, to layer 4; 1 - receive, to layer 4; 2 - relay
byte state = 0;
/* /*
* puts("Getting ready to send."); * puts("Getting ready to send.");
* byte sizeToSend = 4; * byte sizeToSend = 4;
...@@ -114,13 +112,14 @@ int main(void){ ...@@ -114,13 +112,14 @@ int main(void){
*/ */
while(1){ while(1){
switch(state){ /* switch(state){
default: default:
ATOMIC_BLOCK(ATOMIC_FORCEON){ ATOMIC_BLOCK(ATOMIC_FORCEON){
if(!readyToSend) sendZeroes(); if(!readyToSend) sendZeroes();
} }
break; break;
case 1: // receiving data case 1: // receiving data
*/
ATOMIC_BLOCK(ATOMIC_FORCEON){ ATOMIC_BLOCK(ATOMIC_FORCEON){
// Data Package: 0 Preamble, 1 - 4 CRC, 5 Length, 6 Destination, 7 Source, 8 - n Data // Data Package: 0 Preamble, 1 - 4 CRC, 5 Length, 6 Destination, 7 Source, 8 - n Data
if(readyToReceive){ if(readyToReceive){
...@@ -168,15 +167,15 @@ int main(void){ ...@@ -168,15 +167,15 @@ int main(void){
} }
} }
case 2: //send / relay // case 2: //send / relay
l3_send(&state); l3_send(&state);
break; // break;
case 3: //USART Interrupt happened, add msg to queue /*case 3: //USART Interrupt happened, add msg to queue
l3_send(&state); l3_send(&state);
break; */
} // vom switch}
} }
return 0; return 0;
} }
......
...@@ -71,23 +71,19 @@ void l3_exec(byte action, byte* frame){ ...@@ -71,23 +71,19 @@ void l3_exec(byte action, byte* frame){
puts("Handing package to layer 4.\n"); puts("Handing package to layer 4.\n");
break; break;
case 2: //relay case 2: //relay
//fillSend(frame+6, frame[5]);
//Achtung: z.B. bei 8-elementiger Queue: Fall tail ist 7, head ist 0 --> 0-1 != 7 trotzdem queue full //Achtung: z.B. bei 8-elementiger Queue: Fall tail ist 7, head ist 0 --> 0-1 != 7 trotzdem queue full
if(tail == head-1 || (head == 0 && tail == MAXQUEUESIZE)) puts("Message Queue full."); // Auskommentiert, weil erst in Lay4 Acks hinzukommen
else{
//if(tail == head-1 || (head == 0 && tail == MAXQUEUESIZE)) puts("Message Queue full.");
//else{
if(head == 0) head = MAXQUEUESIZE-1; if(head == 0) head = MAXQUEUESIZE-1;
else head--; else head--;
//msgQueue = realloc(msgQueue, tail+1); //würde ich nicht machen. lieber einfach eine feste Größe für die Queue. //msgQueue = realloc(msgQueue, tail+1); //würde ich nicht machen. lieber einfach eine feste Größe für die Queue.
msgQueue[head] = realloc(msgQueue[head], sizeof(frame)); msgQueue[head] = realloc(msgQueue[head], sizeof(frame));
copyFrame(frame, msgQueue[head]); copyFrame(frame, msgQueue[head]);
//tail++; //}
}
//evtl. state = 2 setzen für main -> weiß, dass jetzt priorisiert weitergeleitet werden muss
// hier noch head merken und/oder Index zum senden anpassen. -> Priority
break; break;
default: default:
break; break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment