Exemple #1
0
//CONSTRUCTOR
////////////////////////////////////////////////////////////////////////////
XBeePlus::XBeePlus()
{
	XBee _xbee = XBee();
	ZBRxResponse rx = ZBRxResponse();
	XBeeAddress64 addr64 = XBeeAddress64(0x0, 0xFFFF);
	ZBTxStatusResponse txStatus = ZBTxStatusResponse();
}
int XbeeApiStream::available(void) {
  xbee.readPacket();
  if (xbee.getResponse().isAvailable() && xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
    rxResponse = ZBRxResponse();
    xbee.getResponse().getZBRxResponse(rxResponse);
    uint8_t* data = rxResponse.getData();
    for (int i = 0; i < rxResponse.getDataLength(); i++)
      rxQueue.enqueue(data[i]);
  }
  return rxQueue.count();
}
Radio::Radio(): xbee(){
   _read_wait = 300;  // millis
   _max_read_waits = 10;
   _WAITING_delay = 100;
   _max_connect_tries = 10;
   _show_debug = 1;
   _connected = 0;

   //RECIEVING
   _response = XBeeResponse();
   // Packet to be recieved
   _rx = ZBRxResponse();

   // TRANSMITTING
   // DH and DL of the recieving Xbee - default is coordinator
   _addr64 = XBeeAddress64(0x00000000, 0x00000000);
   _tx = ZBTxRequest(_addr64, payload,sizeof(payload));
   _txStatus = ZBTxStatusResponse();
}
Exemple #4
0
#include <avr/power.h>
#include <XBee.h>

#define PIN       6
#define NUMPIXELS 8

char MSG[25], CMD[30];
int DEL = 100, BRI = 20, R = 255, G = 100, B = 50, TOUT = 5;
int x;
long t;

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
ZBRxResponse rx = ZBRxResponse();
ModemStatusResponse msr = ModemStatusResponse();

void setup() {
  pixels.begin(); 
  t = millis() + TOUT * 1000;
  CMD[0] = 'F';
  
  //Change to Serial1 if using micro
  Serial.begin(9600); 
  xbee.begin(Serial);
}

void checkTimeout(){
  if(TOUT == 0)
    return;
Exemple #5
0
//Два 32-битных половинки th4 64-разрядный адрес
long XBee_Addr64_MS = 0x0013a200;
long XBee_Addr64_LS = 0; //0x40672567;

						 //Два 32-битных половинки th4 64-разрядный адрес
long XBee_Addr64_MS_tmp = 0;                    //
long XBee_Addr64_LS_tmp = 0;                    //
int XBee_Addr16;                            //16-разрядный адрес
int Len_XBee = 0;
unsigned char info_XBee_data[96];
unsigned char info_XBee_data1[96];
char* simbol_ascii[2];
char   cmd;

XBeeResponse response = XBeeResponse();               //Это создает экземпляр объекта "response" "ответ" обрабатывать пакеты Xbee
ZBRxResponse rx = ZBRxResponse();                     //Это создает экземпляр объекта "rx" на процесс Xbee Series 2 API пакеты
ModemStatusResponse msr = ModemStatusResponse();      //Это создает экземпляр объекта "msr" процесс associate/disassociate packets (PAN membership)
ZBRxIoSampleResponse ioSample = ZBRxIoSampleResponse();


XBeeAddress64 addr64 = XBeeAddress64(XBee_Addr64_MS, XBee_Addr64_LS);                                     // SH + SL Address of receiving XBee
ZBTxRequest zbTx = ZBTxRequest(addr64, payload, sizeof(payload));                                         // Формирует пакет  zbTx с адресом отправителя и данными
ZBTxStatusResponse txStatus = ZBTxStatusResponse();                                                       // Это создает экземпляр объекта "txStatus" процесс благодарности прислал Xbee Series 2 API пакеты
AtCommandRequest atRequest = AtCommandRequest(shCmd);                                                     // XBeeAddress64 remoteAddress = XBeeAddress64(XBee_Addr64_MS, XBee_Addr64_LS);
AtCommandRequest arRequestMod = AtCommandRequest(command, commandValue, commandValueLength);
AtCommandResponse atResponse = AtCommandResponse();
RemoteAtCommandRequest remoteAtRequest = RemoteAtCommandRequest(addr64, irCmd, irValue, sizeof(irValue)); // Create a remote AT request with the IR command
RemoteAtCommandResponse remoteAtResponse = RemoteAtCommandResponse();                                     // Create a Remote AT response object

XBeeActive RealXBeeMenu;
                 *number_transmissions = getNumberOfTransmissions();
                 ++number_transmissions;//we have always one (the first one), plus the number of times that we had cca failure (collision)

                 return MAC_TX_STATUS_COLLISION;
               case XBEE_SEND_PURGED:
               default:
                 return MAC_TX_STATUS_ERR;
             }     
          }   
      }
    }
    return MAC_TX_STATUS_ERR;

}

ZBRxResponse rxResp = ZBRxResponse();

bool XBeeMACLayer::receive(uip_lladdr_t* lladdr_src, uip_lladdr_t* lladdr_dest, uint8_t* data, uint16_t* length){
    xbee.readPacket();    
    if (xbee.getResponse().isAvailable()) {
      // got something
      
      if (xbee.getResponse().getApiId() == RX_16_RESPONSE || xbee.getResponse().getApiId() == RX_64_RESPONSE) {
        // got a rx packet
        if (xbee.getResponse().getApiId() == RX_16_RESPONSE) {
          if (UIP_LLADDR_LEN == UIP_802154_SHORTADDR_LEN){
                Rx16Response rx16 = Rx16Response();                
                xbee.getResponse().getRx16Response(rx16);
                memcpy(data, rx16.getData(), rx16.getDataLength());
                *length = rx16.getDataLength();