const long interval = 1000;
static long currentMillis;
char plussignpoint = 0; //To determine where is the + in +CCLK in the char array
char serialdata[256] = ""; //Array to store the chars before parsing
int rdpos = 0;
int pointingfinger = 0;
char timeen = 0;
byte stat0 = 0;
char futstat0 = 0;
char searchcharpos = 0;
char enabled = 0;
char searchchartype = 0;
char smsvalid = 0;
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
Serial1.write("ATE0\r");
}
void loop() {
if (millis() - currentMillis >= interval)
{
Serial1.print("AT+CCLK?\r"); //ask for the time
enabled = 1;
currentMillis = millis();
}
if (enabled == 1) {
if (stat0 == 0) {
if (Serial1.available () > 0) {
pointingfinger++;
serialdata[pointingfinger] = Serial1.read();
if (serialdata[pointingfinger] == '+') {
searchcharpos = pointingfinger;
searchchartype = 1;
futstat0 = 1;
}
else if (serialdata[pointingfinger] == '$') {
if (smsvalid = 1) {
searchcharpos = pointingfinger;
searchchartype = 2;
futstat0 = 2;
}
if (smsvalid = 0) {
stat0 = futstat0;
pointingfinger = 0;
}
}
else if (serialdata[pointingfinger] == '\n') {
stat0 = futstat0;
pointingfinger = 0;
enabled = 0;
}
else if (serialdata[pointingfinger] == '\r') {
stat0 = futstat0;
pointingfinger = 0;
enabled = 0;
}
else {
stat0 = 0;
pointingfinger = 0;
}
}
if (pointingfinger == 255) {
pointingfinger = 0;
enabled = 0;
}
}
}
}
const long interval = 1000;
static long currentMillis;
char plussignpoint = 0; //To determine where is the + in +CCLK in the char array
char serialdata[256] = ""; //Array to store the chars before parsing
int rdpos = 0;
int pointingfinger = 0;
char timeen = 0;
byte stat0 = 0;
char futstat0 = 0;
char searchcharpos = 0;
char enabled = 0;
char searchchartype = 0;
char smsvalid = 0;
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
Serial1.write("ATE0\r");
}
void loop() {
if (millis() - currentMillis >= interval)
{
Serial1.print("AT+CCLK?\r"); //ask for the time
enabled = 1;
currentMillis = millis();
}
if (enabled == 1) {
if (stat0 == 0) {
if (Serial1.available () > 0) {
pointingfinger++;
serialdata[pointingfinger] = Serial1.read();
if (serialdata[pointingfinger] == '+') {
searchcharpos = pointingfinger;
searchchartype = 1;
futstat0 = 1;
}
else if (serialdata[pointingfinger] == '$') {
if (smsvalid = 1) {
searchcharpos = pointingfinger;
searchchartype = 2;
futstat0 = 2;
}
if (smsvalid = 0) {
stat0 = futstat0;
pointingfinger = 0;
}
}
else if (serialdata[pointingfinger] == '\n') {
stat0 = futstat0;
pointingfinger = 0;
enabled = 0;
}
else if (serialdata[pointingfinger] == '\r') {
stat0 = futstat0;
pointingfinger = 0;
enabled = 0;
}
else {
stat0 = 0;
pointingfinger = 0;
}
}
if (pointingfinger == 255) {
pointingfinger = 0;
enabled = 0;
}
}
}
}
Arduino: AT+CCLK?
SIM800H: +CCLK: "04/01/01,01:35:31+00"
OK
Arduino: AT+CCLK?
SIM800H: +CCLK: "04/01/01,01:35:31+00"
OK