UDPversion

Dependencies:   XBee mbed NetServicesMin

Revision:
1:3a46d2725374
Parent:
0:84a3b029656e
--- a/tcpip/net_routing.cpp	Sat Apr 14 03:53:45 2012 +0000
+++ b/tcpip/net_routing.cpp	Sun Apr 15 10:49:08 2012 +0000
@@ -6,51 +6,138 @@
 
 
 extern PrefServer pref;
+extern PrefSender spref;
+extern PrefReciever rpref;
+
 extern Serial pc;
 
 void netRouting(Payload *_payload)
 {
-    
-
-    #ifdef _SERVER_TEST_MODE_
-        tcpSendPayload(_payload);
+       
+//    dumpPayload(_payload);
 
-    #else
-    
-    dumpPayload(_payload);
-    
-    uint32_t xbeeAdr=0;
     
     switch(_payload->frame.message.device)
     {
         case LED_SENDER:
         {
-            xbeeAdr = kLedSender;
-            xbeeSend(xbeeAdr,_payload);
+            #ifndef _SERVER_TEST_MODE_
+
+            xbeeSend(kLedSender,_payload);
+            #else
+                
+                switch(_payload->frame.message.command)
+                {
+                    case PING:
+                    {
+                        dumpPrefSender(&spref);
+                         memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
+                         _payload->frame.message.device=LED_SENDER;
+                         DBGF("******* [TEST MODE] sender ping!  **************\r\n");
+                    }
+                    break;
+                    case SEND_SINGLE:
+                    {
+                        spref.continueusMode=0;
+                        spref.currentFrameNumber=_payload->frame.message.frameNumber;
+                        dumpPrefSender(&spref);
+                        
+                         memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
+                         _payload->frame.message.device=LED_SENDER;
+                         DBGF("*******  [TEST MODE] sender single send!  **************\r\n");
+                        
+                    }
+                    break;
+                    case SEND_CONTINUEOUS:
+                    {
+                        spref.continueusMode=1;
+                        spref.currentFrameNumber=_payload->frame.message.frameNumber;
+                        dumpPrefSender(&spref);
+                        
+                         memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
+                         _payload->frame.message.device=LED_SENDER;
+                         DBGF("*******  [TEST MODE] sender continues send!  **************\r\n");
+                        
+                    }
+                    break;
+                    case SEND_CONT_STOP:
+                    {
+                        spref.continueusMode=0;
+                        spref.currentFrameNumber=_payload->frame.message.frameNumber;
+                        dumpPrefSender(&spref);
+                        
+                         memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
+                         _payload->frame.message.device=LED_SENDER;
+                         DBGF("*******  [TEST MODE] sender continues stop!  **************\r\n");
+                        
+                    }
+                    break;
+                    
+                    case SET_TX_GAIN:
+                    {   
+                        spref.gainData.gain=_payload->frame.message.data[0];
+                        spref.gainData.middleLevel=_payload->frame.message.data[1];
+                        
+                        dumpPrefSender(&spref);
+                        
+                         memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
+                         _payload->frame.message.device=LED_SENDER;
+                         DBGF("*******  [TEST MODE] sender tx lebel set!  **************\r\n");
+                    }
+                    break;
+                    case SET_LIGHT_CONTROL:
+                    {
+                        spref.lightsw=_payload->frame.message.data[0];
+                        
+                        dumpPrefSender(&spref);
+                        
+                         memcpy(_payload->frame.message.data,&spref,sizeof(PrefSender));
+                         _payload->frame.message.device=LED_SENDER;
+                         DBGF("*******  [TEST MODE] sender light on set!  **************\r\n");
+                        
+                    }
+                    break;
+                }
+                dumpPayload(_payload);
+                udpSendPayload(_payload);
+            #endif
             break;
         }
         
         case LED_RECIEVER:
         {
-            xbeeAdr = kLedReciever;
-            xbeeSend(xbeeAdr,_payload);
+            #ifndef _SERVER_TEST_MODE_
+
+            xbeeSend(kLedReciever,_payload);
+            #else
+                if(_payload->frame.message.command==PING){
+                dumpPrefReciever(&rpref);
+                memcpy(_payload->frame.message.data,&rpref,sizeof(PrefReciever));
+                _payload->frame.message.device=LED_RECIEVER;
+                dumpPayload(_payload);
+                udpSendPayload(_payload);
+                DBGF("*******  [TEST MODE] reciever ping!  **************\r\n");
+                
+            }
+            
+            #endif
             break;
         }
         case SERVER:
         {
             if(_payload->frame.message.command==PING){
-                memcpy(_payload->frame.message.data,&pref,sizeof(pref));
+                #ifdef _SERVER_TEST_MODE_
+                    dumpPrefServer(&pref); 
+                #endif
+                memcpy(_payload->frame.message.data,&pref,sizeof(PrefServer));
                 _payload->frame.message.device=SERVER;
                 udpSendPayload(_payload);
-                pc.printf("*******  ping!  **************\r\n");
+                DBGF("*******  server ping!  **************\r\n");
             }
             break;
         }
     
     }
-    
 
     
-    #endif
-    
 }
\ No newline at end of file