mirror of
https://github.com/esp8266/Arduino.git
synced 2025-09-18 04:09:55 +03:00
.settings
app
arduino-builder
arduino-core
build
hardware
libraries
Audio
Bridge
examples
Bridge
ConsoleAsciiTable
ConsolePixel
ConsoleRead
Datalogger
FileWriteScript
HttpClient
MailboxReadMessage
Process
ShellCommands
SpacebrewYun
Temboo
TemperatureWebPanel
TimeCheck
TimeCheck.ino
WiFiStatus
YunSerialTerminal
src
README.adoc
keywords.txt
library.properties
Esplora
Ethernet
GSM
LiquidCrystal
RobotIRremote
Robot_Control
Robot_Motor
SD
Scheduler
Servo
SpacebrewYun
Stepper
TFT
USBHost
WiFi
.classpath
.gitignore
.project
README.md
format.every.sketch.sh
lib_sync
license.txt
83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
/*
|
|
Time Check
|
|
|
|
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
|
|
modified 21 June 2013
|
|
By Tom Igoe
|
|
|
|
This example code is in the public domain.
|
|
|
|
http://www.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()) {
|
|
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()) {
|
|
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();
|
|
}
|
|
|
|
}
|