From d31d73e0c837757938c3f2645de9ee10e1fc751f Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 27 May 2015 22:23:14 +0300 Subject: [PATCH] Continuous Integration with @travis-ci + @PlatformIO --- .travis.yml | 28 +++++++++++++++++ Readme.txt => Readme.md | 67 +++++++++++++++++++++-------------------- 2 files changed, 63 insertions(+), 32 deletions(-) create mode 100644 .travis.yml rename Readme.txt => Readme.md (85%) diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..4b3df8f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,28 @@ +language: python +python: + - "2.7" + +env: + - PLATFORMIO_CI_SRC=examples/TimeArduinoDue PLATFORMIO_CI_BOARDS_ARGS="--board=due" + - PLATFORMIO_CI_SRC=examples/TimeGPS + - PLATFORMIO_CI_SRC=examples/TimeNTP + - PLATFORMIO_CI_SRC=examples/TimeRTC + - PLATFORMIO_CI_SRC=examples/TimeRTCLog + - PLATFORMIO_CI_SRC=examples/TimeRTCSet + - PLATFORMIO_CI_SRC=examples/TimeSerial + - PLATFORMIO_CI_SRC=examples/TimeSerialDateStrings + - PLATFORMIO_CI_SRC=examples/TimeTeensy3 PLATFORMIO_CI_BOARDS_ARGS="--board=teensy31" + +install: + - python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)" + + # + # Libraries from PlatformIO Library Registry: + # + # http://platformio.org/#!/lib/show/416/TinyGPS + # http://platformio.org/#!/lib/show/421/DS1307RTC + # http://platformio.org/#!/lib/show/422/DueRTC + - platformio lib install 416 421 422 + +script: + - if [[ $PLATFORMIO_CI_BOARDS_ARGS ]]; then bash -c 'platformio ci --lib="." $PLATFORMIO_CI_BOARDS_ARGS'; else bash -c 'platformio ci --lib="." --board=uno --board=teensy20pp'; fi diff --git a/Readme.txt b/Readme.md similarity index 85% rename from Readme.txt rename to Readme.md index 67b148e..ee3ad22 100644 --- a/Readme.txt +++ b/Readme.md @@ -1,3 +1,6 @@ +[![Build Status](https://travis-ci.org/PaulStoffregen/Time.svg)](https://travis-ci.org/PaulStoffregen/Time) +__________ + Readme file for Arduino Time Library Time is a library that provides timekeeping functionality for Arduino. @@ -15,35 +18,35 @@ for time synchronization. The functions available in the library include: hour(); // the hour now (0-23) -minute(); // the minute now (0-59) -second(); // the second now (0-59) +minute(); // the minute now (0-59) +second(); // the second now (0-59) day(); // the day now (1-31) -weekday(); // day of the week, Sunday is day 0 +weekday(); // day of the week, Sunday is day 0 month(); // the month now (1-12) -year(); // the full four digit year: (2009, 2010 etc) +year(); // the full four digit year: (2009, 2010 etc) there are also functions to return the hour in 12 hour format hourFormat12(); // the hour now in 12 hour format -isAM(); // returns true if time now is AM +isAM(); // returns true if time now is AM isPM(); // returns true if time now is PM -now(); // returns the current time as seconds since Jan 1 1970 +now(); // returns the current time as seconds since Jan 1 1970 The time and date functions can take an optional parameter for the time. This prevents errors if the time rolls over between elements. For example, if a new minute begins -between getting the minute and second, the values will be inconsistent. Using the -following functions eliminates this probglem - time_t t = now(); // store the current time in time variable t +between getting the minute and second, the values will be inconsistent. Using the +following functions eliminates this probglem + time_t t = now(); // store the current time in time variable t hour(t); // returns the hour for the given time t minute(t); // returns the minute for the given time t - second(t); // returns the second for the given time t - day(t); // the day for the given time t - weekday(t); // day of the week for the given time t - month(t); // the month for the given time t - year(t); // the year for the given time t - - -Functions for managing the timer services are: + second(t); // returns the second for the given time t + day(t); // the day for the given time t + weekday(t); // day of the week for the given time t + month(t); // the month for the given time t + year(t); // the year for the given time t + + +Functions for managing the timer services are: setTime(t); // set the system time to the give time t setTime(hr,min,sec,day,mnth,yr); // alternative to above, yr is 2 or 4 digit yr (2010 or 10 sets year to 2010) adjustTime(adjustment); // adjust system time by adding the adjustment value @@ -53,8 +56,8 @@ timeStatus(); // indicates if time has been set and recently synchronized timeNotSet // the time has never been set, the clock started at Jan 1 1970 timeNeedsSync // the time had been set but a sync attempt did not succeed timeSet // the time is set and is synced -Time and Date values are not valid if the status is timeNotSet. Otherwise values can be used but -the returned time may have drifted if the status is timeNeedsSync. +Time and Date values are not valid if the status is timeNotSet. Otherwise values can be used but +the returned time may have drifted if the status is timeNeedsSync. setSyncProvider(getTimeFunction); // set the external time provider setSyncInterval(interval); // set the number of seconds between re-sync @@ -70,22 +73,22 @@ illustrating how the library can be used with various time sources: - TimeSerial.pde shows Arduino as a clock without external hardware. It is synchronized by time messages sent over the serial port. A companion Processing sketch will automatically provide these messages - if it is running and connected to the Arduino serial port. + if it is running and connected to the Arduino serial port. - TimeSerialDateStrings.pde adds day and month name strings to the sketch above - Short (3 character) and long strings are available to print the days of - the week and names of the months. - + Short (3 character) and long strings are available to print the days of + the week and names of the months. + - TimeRTC uses a DS1307 real time clock to provide time synchronization. A basic RTC library named DS1307RTC is included in the download. To run this sketch the DS1307RTC library must be installed. -- TimeRTCSet is similar to the above and adds the ability to set the Real Time Clock +- TimeRTCSet is similar to the above and adds the ability to set the Real Time Clock -- TimeRTCLog demonstrates how to calculate the difference between times. +- TimeRTCLog demonstrates how to calculate the difference between times. It is a vary simple logger application that monitors events on digtial pins and prints (to the serial port) the time of an event and the time period since the previous event. - + - TimeNTP uses the Arduino Ethernet shield to access time using the internet NTP time service. The NTP protocol uses UDP and the UdpBytewise library is required, see: http://bitbucket.org/bjoern/arduino_osc/src/14667490521f/libraries/Ethernet/ @@ -98,34 +101,34 @@ Differences between this code and the playground DateTime library although the Time library is based on the DateTime codebase, the API has changed. Changes in the Time library API: - time elements are functions returning int (they are variables in DateTime) -- Years start from 1970 +- Years start from 1970 - days of the week and months start from 1 (they start from 0 in DateTime) - DateStrings do not require a seperate library - time elements can be accessed non-atomically (in DateTime they are always atomic) - function added to automatically sync time with extrnal source - localTime and maketime parameters changed, localTime renamed to breakTime - + Technical notes: Internal system time is based on the standard Unix time_t. The value is the number of seconds since Jan 1 1970. System time begins at zero when the sketch starts. - + The internal time can be automatically synchronized at regular intervals to an external time source. This is enabled by calling the setSyncProvider(provider) function - the provider argument is the address of a function that returns the current time as a time_t. See the sketches in the examples directory for usage. -The default interval for re-syncing the time is 5 minutes but can be changed by calling the +The default interval for re-syncing the time is 5 minutes but can be changed by calling the setSyncInterval( interval) method to set the number of seconds between re-sync attempts. The Time library defines a structure for holding time elements that is a compact version of the C tm structure. All the members of the Arduino tm structure are bytes and the year is offset from 1970. Convenience macros provide conversion to and from the Arduino format. -Low level functions to convert between system time and individual time elements are provided: +Low level functions to convert between system time and individual time elements are provided: breakTime( time, &tm); // break time_t into elements stored in tm struct - makeTime( &tm); // return time_t from elements stored in tm struct + makeTime( &tm); // return time_t from elements stored in tm struct The DS1307RTC library included in the download provides an example of how a time provider can use the low level functions to interface with the Time library.