Paso 4: Código de Arduino - explicación 2
La función readBT
Así que... permite tener una mirada en el 'cerebro' :-)
Todo lo que hacemos aquí es la lectura char c, verificar si coincide con uno de nuestros jefes. BTW: también manejamos la función de ajuste del horario, si es falsa llamada la función timesync.
Permite echar un vistazo a las asas de la bruja de línea "SMS1_HEADER". Arduino tomará esta decisión si recibe '$' claro la "vieja" matriz de datos y luego leerá de serie y escriba los siguientes caracteres a inData matriz hasta que se pone "SMS2_HEADER" (que el "|") o ArraySize (16).
Let´s pasar a that´s "SMS0_HEADER" un solo carácter ("!") paquetes. Establecerá una bandera para los mecánicos de sms-claro y se borrará la matriz y la notificación.
El "GPS_HEADER" (char "&") no necesitamos un trailer aquí porque todo lo que hacemos es utilizar el comando Serial.parseInt().
por ejemplo. Secuencia serial "y 123.456,...". Si utilizamos la Serial.parseInt() analizaremos la corriente y "Haz" int´s ("123") fuera de él. La función terminará si un char no es un número (","). Cuando lo utilizamos una vez más, obtenemos el int "456"
Si usted tiene más preguntas, no dude de mi correo.
void readBT() // Handle received Data<p>{ while (Serial.available() > 0){ char c = Serial.read(); while (timeStatus()!= timeSet) { // sync Clock if timeSet false timesync(); } if(c == TIME_HEADER) { // Handle Packet for Time, see definitions timesync(); } if (c == SMS1_HEADER) // Handle Packet for SMS, see definitions { memset(inData, 0, sizeof(inData)); //Clear old Data //bstat = 1; notifier = 1; sms = 1; char c = Serial.readBytesUntil(SMS2_HEADER, inData, sizeof(inData)); //write Data to ARRAY } if (c == SMS0_HEADER || sms == 0) // Handle Packet for SMS RESET, see definitions { //bstat = 0; //notifier = 0; sms = 0; memset(inData, 0, sizeof(inData)); //Clear old Data } if(c == CALL1_HEADER){ // Handle Packet for call, see definitions memset(inCall, 0, sizeof(inCall)); //Clear old Data //bstat = 1; notifier = 1; call = 1; char x = Serial.readBytesUntil(CALL2_HEADER, inCall, sizeof(inCall)); //write Data to ARRAY } if(c == CALL0_HEADER || call == 0){ // Handle Packet for call reset, see definitions //bstat = 0; //notifier = 0; call = 0; memset(inCall, 0, sizeof(inCall)); //Clear old Data } if(c == GPS_HEADER){ // Handle Packet for GPS INFO, see definitions gps = 1; alt = Serial.parseInt(); spd = Serial.parseInt(); } Serial.flush(); c = ' '; } }</p>