UDPversion

Dependencies:   XBee mbed NetServicesMin

Committer:
recotana
Date:
Sun Apr 15 10:49:08 2012 +0000
Revision:
1:3a46d2725374
Parent:
0:84a3b029656e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
recotana 0:84a3b029656e 1 #include "net_routing.h"
recotana 0:84a3b029656e 2 #include "types.h"
recotana 0:84a3b029656e 3 #include "config.h"
recotana 0:84a3b029656e 4 #include "xbee_lib.h"
recotana 0:84a3b029656e 5 #include "tcp_client.h"
recotana 0:84a3b029656e 6
recotana 0:84a3b029656e 7
recotana 0:84a3b029656e 8 extern PrefServer pref;
recotana 1:3a46d2725374 9 extern PrefSender spref;
recotana 1:3a46d2725374 10 extern PrefReciever rpref;
recotana 1:3a46d2725374 11
recotana 0:84a3b029656e 12 extern Serial pc;
recotana 0:84a3b029656e 13
recotana 0:84a3b029656e 14 void netRouting(Payload *_payload)
recotana 0:84a3b029656e 15 {
recotana 1:3a46d2725374 16
recotana 1:3a46d2725374 17 // dumpPayload(_payload);
recotana 0:84a3b029656e 18
recotana 0:84a3b029656e 19
recotana 0:84a3b029656e 20 switch(_payload->frame.message.device)
recotana 0:84a3b029656e 21 {
recotana 0:84a3b029656e 22 case LED_SENDER:
recotana 0:84a3b029656e 23 {
recotana 1:3a46d2725374 24 #ifndef _SERVER_TEST_MODE_
recotana 1:3a46d2725374 25
recotana 1:3a46d2725374 26 xbeeSend(kLedSender,_payload);
recotana 1:3a46d2725374 27 #else
recotana 1:3a46d2725374 28
recotana 1:3a46d2725374 29 switch(_payload->frame.message.command)
recotana 1:3a46d2725374 30 {
recotana 1:3a46d2725374 31 case PING:
recotana 1:3a46d2725374 32 {
recotana 1:3a46d2725374 33 dumpPrefSender(&spref);
recotana 1:3a46d2725374 34 memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
recotana 1:3a46d2725374 35 _payload->frame.message.device=LED_SENDER;
recotana 1:3a46d2725374 36 DBGF("******* [TEST MODE] sender ping! **************\r\n");
recotana 1:3a46d2725374 37 }
recotana 1:3a46d2725374 38 break;
recotana 1:3a46d2725374 39 case SEND_SINGLE:
recotana 1:3a46d2725374 40 {
recotana 1:3a46d2725374 41 spref.continueusMode=0;
recotana 1:3a46d2725374 42 spref.currentFrameNumber=_payload->frame.message.frameNumber;
recotana 1:3a46d2725374 43 dumpPrefSender(&spref);
recotana 1:3a46d2725374 44
recotana 1:3a46d2725374 45 memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
recotana 1:3a46d2725374 46 _payload->frame.message.device=LED_SENDER;
recotana 1:3a46d2725374 47 DBGF("******* [TEST MODE] sender single send! **************\r\n");
recotana 1:3a46d2725374 48
recotana 1:3a46d2725374 49 }
recotana 1:3a46d2725374 50 break;
recotana 1:3a46d2725374 51 case SEND_CONTINUEOUS:
recotana 1:3a46d2725374 52 {
recotana 1:3a46d2725374 53 spref.continueusMode=1;
recotana 1:3a46d2725374 54 spref.currentFrameNumber=_payload->frame.message.frameNumber;
recotana 1:3a46d2725374 55 dumpPrefSender(&spref);
recotana 1:3a46d2725374 56
recotana 1:3a46d2725374 57 memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
recotana 1:3a46d2725374 58 _payload->frame.message.device=LED_SENDER;
recotana 1:3a46d2725374 59 DBGF("******* [TEST MODE] sender continues send! **************\r\n");
recotana 1:3a46d2725374 60
recotana 1:3a46d2725374 61 }
recotana 1:3a46d2725374 62 break;
recotana 1:3a46d2725374 63 case SEND_CONT_STOP:
recotana 1:3a46d2725374 64 {
recotana 1:3a46d2725374 65 spref.continueusMode=0;
recotana 1:3a46d2725374 66 spref.currentFrameNumber=_payload->frame.message.frameNumber;
recotana 1:3a46d2725374 67 dumpPrefSender(&spref);
recotana 1:3a46d2725374 68
recotana 1:3a46d2725374 69 memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
recotana 1:3a46d2725374 70 _payload->frame.message.device=LED_SENDER;
recotana 1:3a46d2725374 71 DBGF("******* [TEST MODE] sender continues stop! **************\r\n");
recotana 1:3a46d2725374 72
recotana 1:3a46d2725374 73 }
recotana 1:3a46d2725374 74 break;
recotana 1:3a46d2725374 75
recotana 1:3a46d2725374 76 case SET_TX_GAIN:
recotana 1:3a46d2725374 77 {
recotana 1:3a46d2725374 78 spref.gainData.gain=_payload->frame.message.data[0];
recotana 1:3a46d2725374 79 spref.gainData.middleLevel=_payload->frame.message.data[1];
recotana 1:3a46d2725374 80
recotana 1:3a46d2725374 81 dumpPrefSender(&spref);
recotana 1:3a46d2725374 82
recotana 1:3a46d2725374 83 memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
recotana 1:3a46d2725374 84 _payload->frame.message.device=LED_SENDER;
recotana 1:3a46d2725374 85 DBGF("******* [TEST MODE] sender tx lebel set! **************\r\n");
recotana 1:3a46d2725374 86 }
recotana 1:3a46d2725374 87 break;
recotana 1:3a46d2725374 88 case SET_LIGHT_CONTROL:
recotana 1:3a46d2725374 89 {
recotana 1:3a46d2725374 90 spref.lightsw=_payload->frame.message.data[0];
recotana 1:3a46d2725374 91
recotana 1:3a46d2725374 92 dumpPrefSender(&spref);
recotana 1:3a46d2725374 93
recotana 1:3a46d2725374 94 memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
recotana 1:3a46d2725374 95 _payload->frame.message.device=LED_SENDER;
recotana 1:3a46d2725374 96 DBGF("******* [TEST MODE] sender light on set! **************\r\n");
recotana 1:3a46d2725374 97
recotana 1:3a46d2725374 98 }
recotana 1:3a46d2725374 99 break;
recotana 1:3a46d2725374 100 }
recotana 1:3a46d2725374 101 dumpPayload(_payload);
recotana 1:3a46d2725374 102 udpSendPayload(_payload);
recotana 1:3a46d2725374 103 #endif
recotana 0:84a3b029656e 104 break;
recotana 0:84a3b029656e 105 }
recotana 0:84a3b029656e 106
recotana 0:84a3b029656e 107 case LED_RECIEVER:
recotana 0:84a3b029656e 108 {
recotana 1:3a46d2725374 109 #ifndef _SERVER_TEST_MODE_
recotana 1:3a46d2725374 110
recotana 1:3a46d2725374 111 xbeeSend(kLedReciever,_payload);
recotana 1:3a46d2725374 112 #else
recotana 1:3a46d2725374 113 if(_payload->frame.message.command==PING){
recotana 1:3a46d2725374 114 dumpPrefReciever(&rpref);
recotana 1:3a46d2725374 115 memcpy(_payload->frame.message.data,&rpref,sizeof(PrefReciever));
recotana 1:3a46d2725374 116 _payload->frame.message.device=LED_RECIEVER;
recotana 1:3a46d2725374 117 dumpPayload(_payload);
recotana 1:3a46d2725374 118 udpSendPayload(_payload);
recotana 1:3a46d2725374 119 DBGF("******* [TEST MODE] reciever ping! **************\r\n");
recotana 1:3a46d2725374 120
recotana 1:3a46d2725374 121 }
recotana 1:3a46d2725374 122
recotana 1:3a46d2725374 123 #endif
recotana 0:84a3b029656e 124 break;
recotana 0:84a3b029656e 125 }
recotana 0:84a3b029656e 126 case SERVER:
recotana 0:84a3b029656e 127 {
recotana 0:84a3b029656e 128 if(_payload->frame.message.command==PING){
recotana 1:3a46d2725374 129 #ifdef _SERVER_TEST_MODE_
recotana 1:3a46d2725374 130 dumpPrefServer(&pref);
recotana 1:3a46d2725374 131 #endif
recotana 1:3a46d2725374 132 memcpy(_payload->frame.message.data,&pref,sizeof(PrefServer));
recotana 0:84a3b029656e 133 _payload->frame.message.device=SERVER;
recotana 0:84a3b029656e 134 udpSendPayload(_payload);
recotana 1:3a46d2725374 135 DBGF("******* server ping! **************\r\n");
recotana 0:84a3b029656e 136 }
recotana 0:84a3b029656e 137 break;
recotana 0:84a3b029656e 138 }
recotana 0:84a3b029656e 139
recotana 0:84a3b029656e 140 }
recotana 0:84a3b029656e 141
recotana 0:84a3b029656e 142
recotana 0:84a3b029656e 143 }