Advertisement
Guest User

Waspmote Repeater 868

a guest
Jan 26th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.27 KB | None | 0 0
  1.  
  2. #include <WaspXBee868.h>
  3.  
  4. packetXBee* packet;
  5. char* MAC_ADDRESS1="0013A200408B79DD";
  6. void setup()
  7. {  
  8.   // Init USB port
  9.   USB.ON();
  10.   USB.println(F("868_03 example"));
  11.  
  12.   // Powers XBee
  13.   xbee868.ON();
  14. }
  15.  
  16.  
  17. void loop()
  18. {
  19.   // Check available data in RX buffer
  20.   if( xbee868.available() > 0 )
  21.   {
  22.     // Treat available bytes in order to parse the information as XBee packets
  23.     xbee868.treatData();
  24.    
  25.     // Check RX flag after 'treatData'
  26.     if( !xbee868.error_RX )
  27.     {
  28.       // Read available packets
  29.       while( xbee868.pos>0 )
  30.       {
  31.        
  32.         // 2.1. Send response
  33.           packet=(packetXBee*) calloc(1,sizeof(packetXBee));
  34.           packet->mode=UNICAST;
  35.          
  36.           char * pointer = xbee868.packet_finished[xbee868.pos-1]->data;
  37.           uint16_t length = xbee868.packet_finished[xbee868.pos-1]->data_length;
  38.         // Available information in 'xbee868.packet_finished' structure
  39.         // HERE it should be introduced the User's packet treatment        
  40.         // For example: show DATA field:
  41.         USB.print(F("Data: "));            
  42.         for(int i=0;i<length;i++)          
  43.         {          
  44.           USB.print(pointer[i],BYTE);          
  45.         }
  46.         USB.println("");
  47.         delay(3000);      
  48.         USB.println("SENDING:");
  49.  
  50.          xbee868.setDestinationParams( packet, MAC_ADDRESS1, pointer, length);
  51.            
  52.           // 2.3. send packet
  53.           xbee868.sendXBee(packet);
  54.  
  55.           USB.print(F("New packet received and forwarded "));
  56.  
  57.           // 2.4. Check TX flag
  58.           if( xbee868.error_TX == 0)
  59.           {
  60.             USB.println(F("ok"));
  61.             Utils.blinkLEDs(1500);
  62.           }
  63.           else
  64.           {
  65.             USB.print(F("error:"));
  66.             USB.println(xbee868.error_TX);
  67.           }
  68.  
  69.         free(packet);
  70.         packet=NULL;
  71.         // Once a packet has been read it is necessary to
  72.         // free the allocated memory for this packet
  73.         // free memory
  74.         free(xbee868.packet_finished[xbee868.pos-1]);
  75.        
  76.         // free pointer
  77.         xbee868.packet_finished[xbee868.pos-1]=NULL;
  78.        
  79.         // decrement the received packet counter
  80.         xbee868.pos--;
  81.        
  82.        
  83.       }
  84.     }
  85.   }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement