It's quite cool and looks much better in real life that on marketing fotos.
If you new to this you should download the recent version, unpack and remove the following line from templates.py:
from compiler.consts import SC_LOCAL, SC_GLOBAL, SC_FREE, SC_CELLas described here:
if all ok after plugin device to usb and confirming "Conect to PC?" dialog you will be able to manipulate device data records with commands like this one:
gh600_console.py c -o ./export -f gpx
<% for track in tracks %> <% endfor %> <% for trackpoint in track.trackpoints %> <% endfor %> <% if hasattr(track, 'laps') %> <% for lap in track.laps %> <% endif %><% endfor %> $lap.distance $lap.calories
def pre(track): track.hrMax = 0 track.hrSum = 0 track.hrAvg = 0 for trackpoint in track.trackpoints: track.hrSum += trackpoint.heartrate if (trackpoint.heartrate > track.hrMax): track.hrMax = trackpoint.heartrate if (len(track.trackpoints) > 0 and track.hrSum > 0): track.hrAvg = track.hrSum / len(track.trackpoints)
Pay attention to identation as this is python. After all you will be able use command with option -f tcx to generate files formatted as required. As we have *nix power we will add udev rule for device, create file /etc/udev/rules.d/99-gpsd.rules with the following lines:
# GH-625M
SYSFS{idVendor}=="067b", SYSFS{idProduct}=="2303", SYMLINK="ttyUSB%n", GROUP="users", MODE="0666" RUN+="gsimportdata"
#!/bin/bash env > /tmp/env.out DISPLAY=:0.0 /usr/bin/notify-send -t 1 "Tracking device found" "Downloading the data started" python /media/STORE2/globalsat/gh600_console.py c -o /media/STORE2/globalsat/export -f tcx /usr/bin/notify-send -t 1 "Tracking device found" "Downloading the data finished"











У него хоть и бедно документированная, зато очень удобная система плагинов, которая позволяет довольно запросто переопределять и дополнять ключевые процессы системы. Плагины в тоже время остаются довольно самодостаточными, т. е. для установки нового плагина вам скорее всего не придется переписывать и патчить половину проекта и самого трака чтобы заставить это все работать. Но плагины очень редко работают сразу: во-первых, часть из них еще не переехала на 0.11, тогда как некоторые отваждые уже ставят 0.12dev, во-вторых. некоторые начинают работать только после определенных заклинаний (в виде определения переменных окружения для какойнить внешней программы, это не проблема, но они определяются не из админки трака и даже не в trac.ini, а в настройках сервера например). Вобщем, если требуется шаг влево, то придется с ним немного повозиться, и низкоуровневость трака тут как раз на руку, правда вместо класса User вы будете полагаться простую строчку имени пользователя, а вместо Объектной модели данных использовать SQL запросы. Откуда я столько узнал:) ? я делал поддержку нескольких проектов в одном окружении. Много проектовость - довольно серьезная беда трака. В приемлемом виде ее просто нет. Это можно пережить, если вы планируете 2-3 опенсорсных проекта, если вам нужно что-то вроде мантиса, то придется знакомиться с траком совсем близко, как я. С помощью custom fields и дописывания своей логики у меня в какой-то степени это получилось, т.е. есть разграничение по поектам в базовых сущностях и контроле доступа в рамках одной среды (Trac Env). Если будет время, силы и не будет разных противлений может и доведу до товарного вида и выложу куда-нибудь.


