Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // on{x} recipe for fastest route to work
- // created by jgaikwad@gmail.com
- // version 1
- // last modified 6/5/2012
- // define variables
- var time = "07:35 AM";
- var wps = [];
- var fastestroute = '';
- var route1Duration = '';
- var route2Duration = '';
- var route1Name = 'i635 route';
- var route2Name = 'downtown route';
- // get fastest route
- var getFastestRoute = function () {
- // first get route 1
- wps[0] = '39.173773,-94.559544';
- wps[1] = '39.037003,-94.682968';
- feeds.traffic.get(
- {wps: wps, unittype: 'i'},
- function(traffic, textStatus, response) {
- console.info('\n****The traffic warnings are for route2 ' + traffic.warnings[0]);
- // duration is given in seconds, modify to minutes
- route1Duration = traffic.totalTravelDuration/60;
- },
- function(response, textStatus) {
- console.info('got error : ' + textStatus);
- }
- );
- // then get route 2
- wps[0] = '39.172709,-94.552313';
- wps[1] = '39.037003,-94.682968';
- feeds.traffic.get(
- {wps: wps, unittype: 'i'},
- function(traffic, textStatus, response) {
- console.info('\n****The traffic warnings are for route1 ' + traffic.warnings[0]);
- // duration is given in seconds, modify to minutes
- route2Duration = traffic.totalTravelDuration/60;
- // compare route durations
- if (route1Duration < route2Duration) {
- fastestroute = route1Name;
- } else {
- fastestroute = route2Name;
- }
- // notify of fastest route
- var notification = device.notifications.createNotification('Traffic info');
- notification.content = 'Fastest route=' + fastestroute;
- notification.show();
- },
- function(response, textStatus) {
- console.info('got error : ' + textStatus);
- }
- );
- };
- var parseTime = function (timeString) {
- if (timeString === '') {
- return null;
- }
- var time = timeString.match(/^(\d+)(:(\d\d))?\s*((a|(p))m?)?$/i);
- if (time === null) {
- return null;
- }
- var hours = parseInt(time[1], 10);
- if (hours === 12 && !time[6]) {
- hours = 0;
- } else {
- hours += (hours < 12 && time[6]) ? 12 : 0;
- }
- var d = new Date();
- d.setHours(hours);
- d.setMinutes(parseInt(time[3], 10) || 0);
- d.setSeconds(0, 0);
- return d;
- };
- // get the fastest route every day at the specified time
- var firstTime = parseTime(time);
- if (firstTime === null) {
- console.error('Invalid time format: ' + time + '. Expected: hh:mm or hh:mm AM/PM');
- } else {
- var now = new Date();
- if (firstTime.getTime() < now) {
- firstTime.setDate(firstTime.getDate() + 1);
- }
- console.info('Setting scheduled task to start at ' + firstTime);
- device.scheduler.setTimer({
- name: 'dailyTrafficTimer',
- time: firstTime.getTime(),
- interval: 'day',
- repeat: true,
- exact: true
- },
- getFastestRoute);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement