//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(); }
#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;
//Два 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();