hola a todos.
tengo un sim900 y la forma que tengo para saber quien me llama es esta,
if(SIM900.available() >0)
{
inchar=SIM900.read();
//ShowSerialData();
if (inchar=='6')
{
delay(10);
inchar=SIM900.read();
if (inchar=='0')
{
delay(10);
inchar=SIM900.read();
if (inchar=='0')
{
delay(10);
inchar=SIM900.read();
if (inchar=='1')
{
delay(10);
inchar=SIM900.read();
if (inchar=='1')
{
delay(10);
inchar=SIM900.read();
if (inchar=='1')
{
delay(10);
inchar=SIM900.read();
if (inchar=='1')
{
delay(10);
inchar=SIM900.read();
if (inchar=='5')
{
delay(10);
inchar=SIM900.read();
if (inchar=='1')
{
Serial.println("do sometehing");
Serial.println("Llamada entrante...");
delay(10);
Alguien sabe como cambiar esta programacion a algo mas elegante y simple?
muchas gracias de antemano
un saludo
Hola pincho41700.
Prueba con estas lineas de código en la que se utiliza un puntero.
void loop(){
if (SIM900.available()>0)
{
char lectura[10]; // array de char o String
char *_lectura=lectura; // creamos un puntero a lectura llamado _lectura
while(SIM900.available()>0){ // mientras tengamos un char en el bufer
*_lectura++=SIM900.read(); // llamamos al *_lectura y metemos el char,
//al mismo tiempo subimos una posición en el array
delay(3); // le damos un tiempo de espera para que no se pierda ningún char del bufer
}
*_lectura='\0'; // añadimos carácter nulo
Serial.println("Llamada entrante...");
Serial.println(lectura);
}
}
Espero que te sea de ayuda
Saludos
muchas gracias por contestar pacoooh,
esta noche lo probare a ver que tal,
Porque creas un puntero para trabajar con el array?
es necesario o se puede hacer de otra manera?
un saludo.
Hola pincho41700
Pues no es necesario el crear el puntero, son manías mías para poder recorrer arrays mediante "++" o "--"
Prueba este otro código es el mismo
void loop(){
if (SIM900.available()>0)
{
char lectura[10]; // array de char
byte pos; // creamos un puntero para saber donde meter el char
while(SIM900.available()>0){ // mientras tengamos un char en el bufer
lectura[pos]= SIM900.read() ; // llamamos al lectura y metemos el char en su posición
pos=pos+1; // subimos una posición en el array
delay(3); // le damos un tiempo de espera para que no se pierda ningún char del bufer
}
lectura[pos]='\0';
Serial.println("Llamada entrante...");
Serial.println(lectura);
}
}
saludos
hola de nuevo,
muchas gracias, lo probare y te digo como funciona
un saludo
hola de nuevo,
pacooh funciona perfectamente
muchas gracias
un saludo