bool XBeeMACLayer::init(){ //xbee.begin(9600); delay(XBEE_INIT_WAITING_TIME); //wait for the XBEE to initialize mac_position = 0; if (!sendAtCommand()) return false; // get SH (Serial High) atRequest.setCommand(slCmd); // Set command to SL if (!sendAtCommand()) return false; // get SL (Serial Low) return true; }
void XBeeActive::test_arRequestMod() { arRequestMod.setCommand(command); arRequestMod.setCommandValue(commandValue); arRequestMod.setCommandValueLength(commandValueLength); sendAtCommand_ar(); delay(250); atRequest.setCommand(WRCmd); sendAtCommand(); delay(250); atRequest.setCommand(assocCmd); sendAtCommand(); arRequestMod.clearCommandValue(); }
int XBeeMACLayer::getNumberOfTransmissions(){ atRequest.setCommand(ecCmd); atRequest.setCommandValue((uint8_t*) &ecCommandValue); if (!sendAtCommand()) return CCA_RETRIES_FAIL; return cca_retries; }
void XBeeActive::XBee_status() { unsigned long XBee_data2; atRequest.setCommand(shCmd); sendAtCommand(); delay(100); XBee_data2 = (unsigned long&)info_XBee_data1; DEBAG.print("SH " ); DEBAG.println(String(XBee_data2, HEX)); atRequest.setCommand(slCmd); sendAtCommand(); delay(100); XBee_data2 = (unsigned long&)info_XBee_data1; DEBAG.print("SL " ); DEBAG.println(String(XBee_data2, HEX)); atRequest.setCommand(MYCmd); sendAtCommand(); delay(100); XBee_data2 = (unsigned long&)info_XBee_data1; DEBAG.print("MY "); DEBAG.println(String(XBee_data2, HEX)); // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta; // Форматирование текста, смещение //// strcpy_P(buffer, (char*)pgm_read_word(&(table_message[12]))); // "Network (MY) = " // myGLCD.print("OI", LEFT, yXBee); // atRequest.setCommand(OICmd); // sendAtCommand(); // delay(100); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // myGLCD.print(String(XBee_data2, HEX), RIGHT, yXBee); // // // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta; // Форматирование текста, смещение // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[13]))); // "PAN ID (OP) = " // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(opCmd); // sendAtCommand(); // delay(100); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // myGLCD.print(String(XBee_data2, HEX), RIGHT, yXBee); // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta; // Форматирование текста, смещение // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[14]))); // "ID (ID) = " // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(IDCmd); // sendAtCommand(); // delay(100); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // myGLCD.print(String(XBee_data2, HEX), RIGHT, yXBee); // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta;// Форматирование текста, смещение // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[15]))); // "Chanel (CH) = " // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(CHCmd); // sendAtCommand(); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // myGLCD.print("0x",193, yXBee); // myGLCD.print(String(XBee_data2, HEX), RIGHT, yXBee); // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta;// Форматирование текста, смещение // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[16]))); // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(assocCmd); // sendAtCommand(); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // myGLCD.print(String(XBee_data2, HEX), RIGHT, yXBee); // // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta;// Форматирование текста, смещение // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[17]))); // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(BDCmd); // sendAtCommand(); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // switch (XBee_data2) // { // case 0: // XBee_data2 = 1200; // break; // case 1: // XBee_data2 = 2400; // break; // case 2: // XBee_data2 = 4800; // break; // case 3: // XBee_data2 = 9600; // break; // case 4: // XBee_data2 = 19200; // break; // case 5: // XBee_data2 = 38400; // break; // case 6: // XBee_data2 = 57600; // break; // case 7: // XBee_data2 = 115200; // break; // default: // XBee_data2 = 000000; // } // // myGLCD.print(String(XBee_data2), RIGHT, yXBee); // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta;// Форматирование текста, смещение // // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[18]))); // "Volt(V) "; // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(VoltCmd); // sendAtCommand(); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // float XBee_data3 = XBee_data2; // myGLCD.printNumF(XBee_data3/1000,2, RIGHT, yXBee,'.',2); // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta; // Форматирование текста, смещение // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[27]))); // txt_temperature // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(TPCmd); // Температура модуля // sendAtCommand(); // delay(100); // XBee_data2 = (unsigned long&)info_XBee_data1; // myGLCD.setColor(VGA_YELLOW); // myGLCD.print(String(XBee_data2, DEC), RIGHT, yXBee); // // myGLCD.setColor(255, 255, 255); // yXBee = yXBee + yDelta; // Форматирование текста, смещение // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[75]))); // "TX Power mW" // myGLCD.print(buffer, LEFT, yXBee); // atRequest.setCommand(PLCmd); // "TX Power mW" // sendAtCommand(); // delay(100); // XBee_data2 = (unsigned long&)info_XBee_data1; // switch (XBee_data2) // { // case 0: // XBee_data2 = 1; // break; // case 1: // XBee_data2 = 25; // break; // case 2: // XBee_data2 = 100; // break; // case 3: // XBee_data2 = 200; // break; // case 4: // XBee_data2 = 300; // break; // default: // XBee_data2 = 0; // break; // } // // myGLCD.setColor(VGA_YELLOW); // myGLCD.print(String(XBee_data2, DEC), RIGHT, yXBee); // // myGLCD.setColor(0, 0, 255); // Нарисовать прямоугольник для текста // myGLCD.fillRoundRect (2, 296, 238, 318); // myGLCD.setColor(255, 255, 255); // myGLCD.drawRoundRect (2, 296, 238, 318); // myGLCD.setBackColor(0, 0, 255); // myGLCD.setColor(255, 255, 255); // strcpy_P(buffer, (char*)pgm_read_word(&(table_message[19]))); // myGLCD.print(buffer, CENTER, 299); // Завершить просмотр // delay(300); }
void XBeeActive::search_XBee() { d0Value[0] = 0xFE; commandValueLength = 0x1; atRequest.setCommand(NTCmd); sendAtCommand(); delay(250); arRequestMod.clearCommandValue(); delay(100); atRequest.setCommand(NDCmd); int search_list = 0; int i10; Serial.println("\nSending command search XBee"); xbee.send(atRequest); while (true) { if (xbee.readPacket(5000)) // подождите до 5 секунд для ответа состояния { if (xbee.getResponse().getApiId() == AT_COMMAND_RESPONSE) // Должна быть команда отклика AT { xbee.getResponse().getAtCommandResponse(atResponse); if (atResponse.isOk()) { Serial.print("Command ["); Serial.print(atResponse.getCommand()[0]); Serial.print(atResponse.getCommand()[1]); Serial.println("] was successful!"); if (atResponse.getValueLength() > 0) { Len_XBee = atResponse.getValueLength(); Serial.print("Command value length is - "); Serial.println(atResponse.getValueLength(), DEC); Serial.print("Command value: "); for (i10 = 0; i10 < atResponse.getValueLength(); i10++) { info_XBee_data[i10] = atResponse.getValue()[i10]; Serial.print(info_XBee_data[i10], HEX); Serial.print(" "); } Serial.println(""); search_list++; } } else { Serial.print("Command return error code: "); Serial.println(atResponse.getStatus(), HEX); } } else { Serial.print("Expected AT response but got "); Serial.println(xbee.getResponse().getApiId(), HEX); } } else { if (xbee.getResponse().isError()) // at command failed { Serial.print("Error reading packet. Error code: "); Serial.println(xbee.getResponse().getErrorCode()); } else { Serial.println("\nNo response from radio1"); return; } } } }