1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-04 15:24:12 +01:00
Arduino/libraries/Bridge/examples/TimeCheck/TimeCheck.ino

83 lines
2.2 KiB
Arduino
Raw Normal View History

/*
Time Check
2014-05-30 12:17:09 +02:00
Gets the time from Linux via Bridge then parses out hours,
minutes and seconds for the Arduino using an Arduino Yún.
created 27 May 2013
2013-06-22 08:03:47 +02:00
modified 21 June 2013
By Tom Igoe
This example code is in the public domain.
2013-09-09 20:56:15 +02:00
http://arduino.cc/en/Tutorial/TimeCheck
*/
#include <Process.h>
Process date; // process used to get the date
int hours, minutes, seconds; // for the results
int lastSecond = -1; // need an impossible value for comparison
void setup() {
Bridge.begin(); // initialize Bridge
Serial.begin(9600); // initialize serial
while (!Serial); // wait for Serial Monitor to open
Serial.println("Time Check"); // Title of sketch
// run an initial date process. Should return:
// hh:mm:ss :
if (!date.running()) {
2013-06-22 08:03:47 +02:00
date.begin("date");
date.addParameter("+%T");
date.run();
}
}
void loop() {
if (lastSecond != seconds) { // if a second has passed
// print the time:
if (hours <= 9) Serial.print("0"); // adjust for 0-9
Serial.print(hours);
Serial.print(":");
if (minutes <= 9) Serial.print("0"); // adjust for 0-9
Serial.print(minutes);
Serial.print(":");
if (seconds <= 9) Serial.print("0"); // adjust for 0-9
Serial.println(seconds);
// restart the date process:
if (!date.running()) {
2013-06-22 08:03:47 +02:00
date.begin("date");
date.addParameter("+%T");
date.run();
}
}
//if there's a result from the date process, parse it:
while (date.available() > 0) {
// get the result of the date process (should be hh:mm:ss):
String timeString = date.readString();
// find the colons:
int firstColon = timeString.indexOf(":");
int secondColon = timeString.lastIndexOf(":");
// get the substrings for hour, minute second:
String hourString = timeString.substring(0, firstColon);
String minString = timeString.substring(firstColon + 1, secondColon);
String secString = timeString.substring(secondColon + 1);
// convert to ints,saving the previous second:
hours = hourString.toInt();
minutes = minString.toInt();
lastSecond = seconds; // save to do a time comparison
seconds = secString.toInt();
}
}