Ejemplo n.º 1
0
boolean SIMCOM900::readSMS(char* msg, int msglength, char* number, int nlength)
{
  Serial.println(F("This method is deprecated! Please use GetSMS in the SMS class."));
  long index;
  char *p_char; 
  char *p_char1;

  /*
  if (getStatus()==IDLE)
    return false;
  */
  #ifdef UNO
	_tf.setTimeout(_GSM_DATA_TOUT_);
  #endif
  //_cell.flush();
  WaitResp(500, 500);
  SimpleWriteln(F("AT+CMGL=\"REC UNREAD\",1"));

  WaitResp(5000, 500);
  if(gsm.IsStringReceived("+CMGL")) 
  {
	
	//index
	p_char = strchr((char *)(gsm.comm_buf),'+CMGL');
	p_char1 = p_char+3;  //we are on the first char of string
	p_char = p_char1+1;
          *p_char = 0; 
	index=atoi(p_char1);
	
	p_char1 = p_char+1;
	p_char = strstr((char *)(p_char1), "\",\"");
	p_char1 = p_char+3;
	p_char = strstr((char *)(p_char1), "\",\"");
	if (p_char != NULL) {
          *p_char = 0; 
    }	
	strcpy(number, (char *)(p_char1));
	//////
	
	p_char1 = p_char+3;
	p_char = strstr((char *)(p_char1), "\",\"");
	p_char1 = p_char+3;
	
	p_char = strstr((char *)(p_char1), "\n");
	p_char1 = p_char+1;
	p_char = strstr((char *)(p_char1), "\n");
	if (p_char != NULL) {
          *p_char = 0; 
    }	
	strcpy(msg, (char *)(p_char1));	

	// #ifdef UNO
		// index=_tf.getValue();
	// #endif
	// #ifdef MEGA
	//index=_cell.read();
	// #endif
	// Serial.println("DEBUG");
	// #ifdef UNO
		// _tf.getString("\",\"", "\"", number, nlength);
	// #endif
	// Serial.println("PRIMA");
	// #ifdef MEGA
		// _cell.getString("\",\"", "\"", number, nlength);
	// #endif
	// Serial.println("DEBUG");
	// #ifdef UNO
		// _tf.getString("\n", "\nOK", msg, msglength);
	// #endif
	// #ifdef MEGA
		// _cell.getString("\n", "\nOK", msg, msglength);
	// #endif
	
    SimpleWrite(F("AT+CMGD="));
	SimpleWriteln(index);
	// Serial.print("VAL= ");
	// Serial.println(index);
    gsm.WaitResp(5000, 50, "OK"); 
    return true;
  };
  return false;
};