Пример #1
0
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;
}
Пример #2
0
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();
}
Пример #3
0
int XBeeMACLayer::getNumberOfTransmissions(){
      atRequest.setCommand(ecCmd); 
      atRequest.setCommandValue((uint8_t*) &ecCommandValue);
      if (!sendAtCommand())
        return CCA_RETRIES_FAIL; 
      return cca_retries;
}
Пример #4
0
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);
}
Пример #5
0
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;
			}
		}

	}
}