Notices


Reply
Thread Tools
Posts: 196 | Thanked: 224 times | Joined on Sep 2010 @ Africa
#361
Originally Posted by Kegetys View Post
Anyone else having trouble uploading tracks from N900 eCoach to HeiaHeia? For a few days now the upload has not worked, it doesnt display an error or anything but the entry just never appears to heiaheia.
This was a problem introduced by HeiaHeia on an upgrade they did to their site, which was fixed about a week later.

There was a separate thread about it.

No, the sky is not falling.

There is someone maintaining this version of eCoach, and some features have been added. File support requests, and they may be attended to.

(I would personally be more motivated to contributing to the Qt version, but that is not open source - maybe I will try and learn some GTK+).
 
Posts: 106 | Thanked: 52 times | Joined on Mar 2010 @ Corfe Castle, Dorset, UK
#362
Sports Tracker looks awesome One more reason why I need an N9!
 
travla's Avatar
Posts: 397 | Thanked: 241 times | Joined on Mar 2010 @ Melbourne, Australia
#363
I am using eCoach and uploading tracks to RunKeeper, and apart from the pauses not being detected/read, it is working fine. I would love RunKeeper support (there is a HealthGraph API, which may allow integration), but am happy to at least have eCoach.
 
Posts: 1 | Thanked: 0 times | Joined on Sep 2011
#364
Hey, I'm new in the forum... would like to now if it is possible to add the Polar Patch to the latest version of eCoach? How can I do it? Regards, Thomas
 
Posts: 13 | Thanked: 3 times | Joined on Nov 2010 @ campinas, brazil
#365
Hi, just to share something here.

I've been looking for an alarm to warn me about speed/pace or HR. Recently I've found jspeed, which I can set to warn me when I reach a certain speed. So now I'me using jspeed with ecoach. The only problem is that I can't use the media player, jspeed alarm doesn't ring if the player is on.

If anybody has a better solution/workaround, please tell me.
 

The Following User Says Thank You to r_evangelista For This Useful Post:
Posts: 4 | Thanked: 0 times | Joined on Jun 2011 @ Rio/Brazil
#366
Originally Posted by mvonweis View Post
Hi Neiloca, unfortunately I don't think I can help you. I am not an active developer, merely another eCoach user. I've only applied and modified a patch by Antti so that it worked with my Polar belt and then recompiled and released .debs for 1.64 and 1.66. The latest .deb works fine on my N900 with the community SSU release.

Do you have problems starting eCoach, or problems connecting to the Polar heart rate belt?

--Martin
Hi Martin,
Still can't make it work. N900 just does not recognize the belt and living in Brazil is hard to just return it--actually it was a present.
:-(
I guess my next phone will be an Androi, just less hassle for simple curious geek people like me.
:-)
Thanks for your attention anyway!
Cheers from Rio
 
Posts: 13 | Thanked: 3 times | Joined on Nov 2010 @ campinas, brazil
#367
Friends,

I don't know how many of you use the zephyr HR bluetooth device. eCoach stores the data in a rather odd way so it is not possible to send the HR data to websites like endomondo or sports-tracker (it understand only the garmin standard). Only heiaheia gets the HR data, but heiaheia do not draw a graph with the data, only showing the HR average and max.

Well, a friend of mine, also a maemo user, developed a python script which is able to convert the eCoach gpx file to a gpx file which respects the Garmin standard. The python script is working perfectly, as you can see here http://www.sports-tracker.com/#/work...ocbm9nagupg5em

And here is the python script. You got to have the package python-dateutil installed in your gnu/linux

the python command is
python gpxc.py <input-file.gpx> <output-file.gpx>

gpxc.py is the name the developer gave to the script

#!/usr/bin/env python
#
# Copyright (C) 2011 Lincoln de Sousa <lincoln@comum.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from xml.dom.minidom import parse, getDOMImplementation
from dateutil.parser import parse as parse_date
from datetime import datetime


def getnv(element, name):
return element.getElementsByTagName(name)[0].firstChild.nodeValue


def getnear(allhbts, hbt):
higher = [x for x in allhbts if x['time'] > hbt]
lower = [x for x in allhbts if x['time'] < hbt]

# First case, we have higher but no lower values, so we just take it
if higher and not lower:
return higher[0]

# Second case, we have lower but no higher
if lower and not higher:
return lower[0]

# Last case, we have both, so we find the one with the smaller
# difference from our element
delta1 = hbt - lower[0]['time']
delta2 = hbt - higher[0]['time']
return delta1 < delta2 and lower[0] or higher[0]


def read(fname):
bad = parse(fname)
get = bad.getElementsByTagName

# Getting the name and number values
header = {
'name': get('name') and getnv(bad, 'name') or 'Untitled',
'number': get('number') and getnv(bad, 'number') or '0',
}

# Parsing the heart beats
hbts = []
for i in get('ec:hbt'):
hbts.append({
'time': parse_date(i.getAttribute('time')),
'value': i.getAttribute('value'),
})

trkpts = []
for i in get('trkpt'):
time = parse_date(getnv(i, 'time'))
trkpts.append({
'lat': i.getAttribute('lat'),
'lon': i.getAttribute('lon'),
'ele': getnv(i, 'ele'),
'time': time,
'hr': getnear(hbts, time)['value'],
})
return header, trkpts


def gen(header, trkpts):
dom = getDOMImplementation()
doc = dom.createDocument('http://www.topografix.com/GPX/1/1', 'gpx', None)
root = doc.firstChild

# Some useful attributes and namespaces
root.setAttribute('version', '1.1')
root.setAttribute('creator', 'Garmin Connect')
root.setAttribute('xmlns', 'http://www.topografix.com/GPX/1/1')
root.setAttribute('xmlns:gpxtpx',
'http://www.garmin.com/xmlschemas/TrackPointExtension/v1')

# metadata section
text = doc.createElement('text')
text.appendChild(doc.createTextNode('Garmin Connect'))
link = doc.createElement('link')
link.setAttribute('href', 'connect.garmin.com')
link.appendChild(text)
time = doc.createElement('time')
time.appendChild(doc.createTextNode(datetime.now() .isoformat()))
metadata = doc.createElement('metadata')
metadata.appendChild(link)
metadata.appendChild(time)
root.appendChild(metadata)

# The trk section
name = doc.createElement('name')
name.appendChild(doc.createTextNode(header['name']))
number = doc.createElement('number')
number.appendChild(doc.createTextNode(header['number']))
trkseg = doc.createElement('trkseg')
trk = doc.createElement('trk')
trk.appendChild(name)
trk.appendChild(number)
trk.appendChild(trkseg)
root.appendChild(trk)

# Appending the track points
for i in trkpts:
ele = doc.createElement('ele')
ele.appendChild(doc.createTextNode(i['ele']))
time = doc.createElement('time')
time.appendChild(doc.createTextNode(i['time'].isoformat()))

hr = doc.createElement('gpxtpx:hr')
hr.appendChild(doc.createTextNode(i['hr']))
tpe = doc.createElement('gpxtpx:TrackPointExtension')
tpe.appendChild(hr)
ext = doc.createElement('extensions')
ext.appendChild(tpe)

trkpt = doc.createElement('trkpt')
trkpt.setAttribute('lat', i['lat'])
trkpt.setAttribute('lon', i['lon'])
trkpt.appendChild(ele)
trkpt.appendChild(time)
trkpt.appendChild(ext)
trkseg.appendChild(trkpt)
return doc.toprettyxml(indent=' ')


def main():
import sys
if len(sys.argv) not in (2, 3):
sys.stderr.write('Usage: %s <input.gpx> [<output>.gpx]\n' %
sys.argv[0])
exit(1)

output = sys.stdout
if len(sys.argv) == 3:
output = open(sys.argv[2], 'w')

output.write(gen(*read(sys.argv[1])))

if __name__ == '__main__':
main()
 

The Following User Says Thank You to r_evangelista For This Useful Post:
Posts: 13 | Thanked: 3 times | Joined on Nov 2010 @ campinas, brazil
#368
a link for the python script http://dl.dropbox.com/u/14738653/gpxc.py
 
Posts: 10 | Thanked: 3 times | Joined on Feb 2011
#369
@r_evangelista, I've downloaded the python script and would like to use it but don't have the dateutil package installed. I've downloaded the python2.5-dateutil_1.4.1-1.tar.gz file and looking for advice on what directory to extract it to.

Is this the best way to get it or am I overcomplicating the process? Sorry my knowledge on this is not great.

This is a great update for me as I use a Zephyr HXM HRM and upload my .gpx files to Strava. Strava unfortunately doesn't accept the split format of HRM and Trackpoints created by eCoach.

If I can get the script to work it would greatly improve the info in my uploads to strava.

Thanks
 
Posts: 13 | Thanked: 3 times | Joined on Nov 2010 @ campinas, brazil
#370
Hi @geraldnicholls. Which linux distribution are you using? There should be an easier way to install python-dateutil. I use ubuntu and just had to write in the command line
# sudo apt-get install python-dateutil

I've never used Strava (I use endomondo and sports-tracker). I'll try Strava
 
Reply

Thread Tools

 
Forum Jump


All times are GMT. The time now is 22:12.