Hola de nuevo, tengo un problema con un comando at, concretamente con AT+CPBW= que es para grabar números de tel en la sim. El comando enviado desde el monitor serial anda perfecto, el problema es que no se como poner las comillas cuando lo hago desde el sketch, este es el caso:
SIM800.print("AT+CPBW=,\"541136589399"); esto no va...
porque debería ser así:
SIM800.print("AT+CPBW=,"541136589399"); pero las segundas comillas dejan en negro al tel
no uso la librería porque no esta este código, pero funciona perfecto desde el serial, el tema que en el serial pongo así:
AT+CPBW=,"54xxxxxxxxxx
con eso es suficiente para que lo grabe en el primer lugar libre que encuentre, el tema que cuando lo quiero enviar desde el sketch no se como lo debo de poner con las comillas...
Hola gatul, no no funciona, de hecho intento con algo mas simple como borrar el registro asi:
SIM800.print("AT+CPBW=1");
eso borra el registro 1, ya que lo probé desde el serial, pero no lo hace desde el sketch, raro porque todos los demás comandos no hay drama los probé y funcionan...
edito:
el manual dice así "Write Command AT+CPBW=[,,[,[]]]"
edito 2:
era un error en mi código, funciona perfecto gatul, gracias...
edito 3:
lo que no puedo es guardar un numero que esta en una variable:
SIM800.println("AT+CPBW=,\"" + TelNvo + "\"");
la variable la imprimo y esta correcta, pero debo estar poniendo algo mal, aunque si en vez de usar ese código uso un código para mandar sms lo envía bien:
es medio "desprolijo" pero sino tienes que usar sprintf() para formatear el texto, para lo que tienes que crear un array para que actúe de buffer y demás...
Esto último lo profundizas buscando en la web.
Mira gatul, tarde en verlo pero recién me di cuenta, perdón, esto:
SIM900.println("AT+CPBW=,\""+TelNvo+"\"");
estaría bien, sino fuera porque agrega un espacio antes de la comilla final, calculo que por la barra invertida, lo deja así: AT+CPBW=,"54xxxxxxxx " al dejar ese espacio devuelve error el comando, pero si hago esto:
SIM900.println("AT+CPBW=,\""+TelNvo+"");
lo que falta al final son las comillas...si soluciono eso va a andar, pero no se como quitarle el espacio a esas comillas
El espacio lo debes tener al final de TelNvo porque todo lo que te estoy pasando primero lo pruebo y por consola sale perfectamente, como debe, sin espacios ni cosas raras (tengo compilador y emulador en el móvil ).
OK y como puedo hacer para saber si esa variable string TelNvo me la devuelve con un espacio al final? porque en monitor solo veo el numero y lo que se ve estaría bien, pero no puedo ver si hay un espacio vacío..
edito:
ya esta, lo que hice fue a la variable TelNvo:
int pos = TelNvo.indexOf("0");
String NumLimpio = TelNvo.substring(pos,pos+11);
ahora si lo guarda correctamente, no se porque mi variable tiene un espacio al final, dejo el código para que si podes veas la forma de hacerlo, porque el otro día me dijiste que tenia que cambiar la forma de pensar, y yo trato. Ahora por ejemplo llegué a la solución, pero capaz esta mal pensado todo el código que captura el numero y es ahí donde viene el problema.
El tema es así yo cuando mando un sms, pongo un "#1" seguido del numero "011xxxxxx" entonces el código captura a partir del "#1", así:
No da error, porque la variable TelNvo es la que debe tener ese 0 o espacio en blanco, y devuelve error el comando, pero con el código como puse antes si lo hace lo guarda perfecto..
Ya lo podemos dar los solucionado, gracias que me dijiste lo del espacio sino no lo hubiera sacado..
claramente TelNvo tiene que ser un String y como tal tendrá el caracter 0 de finalización.
Como te dije antes, está probado por consola y es correcto, me extraña que no funcione para el SIM pero como no tengo como probarlo no puedo opinar más.