TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: salvador512 en 06 de Febrero de 2015, 18:58:33
-
Hola a todos , estoy programando en un pic un sistema en donde usando un modulo GSM , al recibir una llamada de un determinado numero este prende un led.
El problema es que no se filtrar el numero de telefono
El comando que me regresa el modulo GSM por via RS232 es asi
+CLIP: “+5691234567”,145,,,,0
y me gustaría filtrar “+5691234567” para comparar con un numero ya guardado.
Estoy programando en Pic Basic de Proton , pero si alguien sabe como hacerlo en C , me mudo a C
-
si tuvieras en C todo ese dato en un array ( recibido desde la UART )
cadena[]= '+CLIP: \“+5691234567\”,145,,,,0'
Tendrias tu valor desde cadena[8] a cadena[18] sino me equivoco.
o podrias buscar el primer " y pasar por todos los demas hasta llegar al proximo ". Y ya tendrias tu numero, no se que manejo de string tiene basic. Pero en C parece bastante simple.
-
En basic Pic Simulator IDE se podría proceder de la siguiente manera:
string_var = "ab6060606 y mas cosas"
string_telf = "6060606"
string_var1 = MidStr(string_var, 3, 7)
MidStr del ejemplo; es un comando o función que extrae 7 caracteres de la cadena string_var, comenzando por el tercero de izquierda a derecha.
If string_var1 = string_telf then ........
-
no hace falta complicarse tanto, simplemente con una comparacion vale.
Si siempre sera +CLIP: “+5691234567”,145,,,,0 podrias hacerlo asi:
clip[]="+CLIP: “+5691234567”,145,,,,0";
int compara() {
for(x=0;x<num;x++)
if(clip
return 1;
}
en "x<num" (num) tienes que poner el numero de caracteres a comparar (no me he parado a contarlos).
la funcion seria
if(compara()) enciendeled();