Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WaspXBee868.h>
- packetXBee* packet;
- char* MAC_ADDRESS1="0013A200408B79DD";
- void setup()
- {
- // Init USB port
- USB.ON();
- USB.println(F("868_03 example"));
- // Powers XBee
- xbee868.ON();
- }
- void loop()
- {
- // Check available data in RX buffer
- if( xbee868.available() > 0 )
- {
- // Treat available bytes in order to parse the information as XBee packets
- xbee868.treatData();
- // Check RX flag after 'treatData'
- if( !xbee868.error_RX )
- {
- // Read available packets
- while( xbee868.pos>0 )
- {
- // 2.1. Send response
- packet=(packetXBee*) calloc(1,sizeof(packetXBee));
- packet->mode=UNICAST;
- char * pointer = xbee868.packet_finished[xbee868.pos-1]->data;
- uint16_t length = xbee868.packet_finished[xbee868.pos-1]->data_length;
- // Available information in 'xbee868.packet_finished' structure
- // HERE it should be introduced the User's packet treatment
- // For example: show DATA field:
- USB.print(F("Data: "));
- for(int i=0;i<length;i++)
- {
- USB.print(pointer[i],BYTE);
- }
- USB.println("");
- delay(3000);
- USB.println("SENDING:");
- xbee868.setDestinationParams( packet, MAC_ADDRESS1, pointer, length);
- // 2.3. send packet
- xbee868.sendXBee(packet);
- USB.print(F("New packet received and forwarded "));
- // 2.4. Check TX flag
- if( xbee868.error_TX == 0)
- {
- USB.println(F("ok"));
- Utils.blinkLEDs(1500);
- }
- else
- {
- USB.print(F("error:"));
- USB.println(xbee868.error_TX);
- }
- free(packet);
- packet=NULL;
- // Once a packet has been read it is necessary to
- // free the allocated memory for this packet
- // free memory
- free(xbee868.packet_finished[xbee868.pos-1]);
- // free pointer
- xbee868.packet_finished[xbee868.pos-1]=NULL;
- // decrement the received packet counter
- xbee868.pos--;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement