Changeset 131

Show
Ignore:
Timestamp:
01/04/08 23:04:40 (1 year ago)
Author:
vud1
Message:

"First hr implementation"

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pytrainer/trunk/glade/pytrainer.glade

    r130 r131  
    14111411                                          <property name="items" translatable="yes">Stage Profile 
    14121412Stage Velocity 
     1413Stage Heart Rate 
    14131414Stage Profile/velocity</property> 
    14141415                                          <property name="add_tearoffs">False</property> 
  • pytrainer/trunk/pytrainer.style

    r4 r131  
    1414FIELD_DELIMITER         WHITESPACE 
    1515RECORD_DELIMITER        NEWLINE 
    16 BADCHARS                ,'" 
     16BADCHARS                WHITESPACE 
    1717 
    1818SHORTLEN                20 
     
    2828IFIELD  GMT_TIME,"","%m/%d/%Y %I:%M:%D %p" 
    2929IFIELD  ICON_DESCR, "", "%s" 
     30IFIELD  HEART_RATE,"","%d" 
    3031 
    3132OFIELD  LAT_DECIMAL, "", "%08.5f" 
     
    3334OFIELD  ALT_METERS, "", "%.0f" 
    3435OFIELD  GMT_TIME,"","%s" 
     36OFIELD  HEART_RATE,"","%d" 
  • pytrainer/trunk/pytrainer/daygraph.py

    r4 r131  
    2626        def drawgraph(self,values): 
    2727                value_selected = self.combovalue.get_active() 
     28                print "value selected " 
     29                print value_selected 
    2830                if value_selected < 0: 
    2931                        self.combovalue.set_active(0) 
     
    3840                        self.drawarea.stadistics("plot",[xvalues],[yvalues],[xlabel],[ylabel],[title],[color]) 
    3941                if value_selected == 2: 
     42                        xvalues, yvalues = self.get_values(values,value_selected) 
     43                        xlabel,ylabel,title,color = self.get_value_params(value_selected) 
     44                        self.drawarea.stadistics("plot",[xvalues],[yvalues],[xlabel],[ylabel],[title],[color]) 
     45                if value_selected == 3: 
    4046                        xvalues, yvalues = self.get_values(values,0) 
    4147                        xvalues1, yvalues1 = self.get_values(values,1) 
     
    4854                        return _("Distance (km)"),_("Height (m)"),_("Stage Profile"),"#747400" 
    4955                if value == 1: 
    50                         return _("Distance (km)"),_("Velocity (Km/h)"),_("velocity"),"#007474" 
     56                        return _("Distance (km)"),_("Velocity (Km/h)"),_("Velocity"),"#007474" 
     57                if value == 2: 
     58                        return _("Distance (km)"),_("Beats (bpm)"),_("Heart Rate"),"#740074" 
    5159 
    5260        def get_values(self,values, value_selected): 
     
    5967                        if value_selected==1: 
    6068                                yvalue.append(value[3]) 
     69                        if value_selected==2: 
     70                                yvalue.append(value[5]) 
    6171                return xvalue,yvalue 
    6272         
  • pytrainer/trunk/pytrainer/lib/gpx.py

    r128 r131  
    6565        def getTrackList(self): 
    6666                return self.Values 
     67 
     68        def getHeartRateAverage(self): 
     69                return self.hr_average 
    6770                 
    6871        def _getValues(self): 
     
    7881                                        dom = trk 
    7982                                        content = """<?xml version="1.0" encoding="UTF-8"?> 
    80 <gpx 
    81  version="1.0" 
     83 
     84<gpx  
    8285creator="pytrainer http://pytrainer.e-oss.net" 
    83 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    84 xmlns="http://www.topografix.com/GPX/1/0" 
    85 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd"> 
     86version="1.1"  
     87xmlns="http://www.topografix.com/GPX/1/1"  
     88xmlns:geocache="http://www.groundspeak.com/cache/1/0"  
     89xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0"  
     90xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     91xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.cluetrust.com/XML/GPXDATA/1/0 http://www.cluetrust.com/Schemas/gpxdata10.xsd"> 
     92 
     93 
    8694""" 
    8795                                        content += dom.toxml() 
     
    103111                last_time = "False" 
    104112                total_dist = 0 
     113                total_hr = 0 
    105114                tmp_alt = 0 
    106115 
     
    108117                        lat = trkpoint.attributes["lat"].value 
    109118                        lon = trkpoint.attributes["lon"].value 
     119                        #get the heart rate value from the gpx extended format file 
     120                        if len(trkpoint.getElementsByTagName("gpxdata:hr")) > 0: 
     121                                hr = int(trkpoint.getElementsByTagName("gpxdata:hr")[0].firstChild.data) 
     122                        else:  
     123                                hr = 0 
    110124                        if len(trkpoint.getElementsByTagName("time")) > 0: 
    111125                                time_ = trkpoint.getElementsByTagName("time")[0].firstChild.data 
     
    129143                                        time_ = tmp_time - last_time 
    130144                                        tempnum=(math.sin(last_lat)*math.sin(tmp_lat))+(math.cos(last_lat)*math.cos(tmp_lat)*math.cos(tmp_lon-last_lon)) 
    131                                         try: 
    132                                                 #Obtenemos el punto respecto al punto anterior 
    133                                                 dist=math.acos(tempnum)*111.302*57.29577951 
    134                                                 total_dist += dist 
    135                                                 #dividimos kilometros por hora (no por segundo) 
    136                                                 tmp_vel = dist/((time_)/3600.0) 
    137                                                 vel,his_vel = self._calculate_velocity(tmp_vel,his_vel) 
    138                                                 #si la velocidad es menor de 90 lo damos por bueno 
    139                                                 if vel<90 and time_ <100: 
    140                                                         self.total_time += time_ 
    141                                                         retorno.append((total_dist,tmp_alt, self.total_time,vel,lat,lon)) 
    142                                                         rel_alt = tmp_alt - last_alt 
    143                                                         if rel_alt > 0: 
    144                                                                 self.upositive += rel_alt 
    145                                                         elif rel_alt < 0: 
    146                                                                 self.unegative -= rel_alt 
    147                                         except: 
    148                                                 print tempnum 
     145                                        #try: 
     146                                        #Obtenemos el punto respecto al punto anterior 
     147                                        dist=math.acos(tempnum)*111.302*57.29577951 
     148                                        total_dist += dist 
     149                                        total_hr += hr 
     150                                        #dividimos kilometros por hora (no por segundo) 
     151                                        tmp_vel = dist/((time_)/3600.0) 
     152                                        vel,his_vel = self._calculate_velocity(tmp_vel,his_vel) 
     153                                        #si la velocidad es menor de 90 lo damos por bueno 
     154                                        if vel<90 and time_ <100: 
     155                                                self.total_time += time_ 
     156                                                retorno.append((total_dist,tmp_alt, self.total_time,vel,lat,lon,hr)) 
     157                                                rel_alt = tmp_alt - last_alt 
     158                                                if rel_alt > 0: 
     159                                                        self.upositive += rel_alt 
     160                                                elif rel_alt < 0: 
     161                                                        self.unegative -= rel_alt 
     162                                        #except: 
     163                                        #       print tempnum 
    149164                                 
    150165                                last_lat = tmp_lat 
     
    153168                                last_time = tmp_time 
    154169 
     170                self.hr_average = total_hr/len(trkpoints) 
    155171                self.total_dist = total_dist  
    156172                return retorno 
  • pytrainer/trunk/pytrainer/record.py

    r123 r131  
    198198                distance, time = gpx.getMaxValues() 
    199199                upositive,unegative = gpx.getUnevenness() 
    200                 print gpx.getTrackRoutes()  
     200                heartrate = gpx.getHeartRateAverage() 
    201201                date = gpx.getTrackRoutes()[0][1] 
    202202                 
     
    204204                self.recordwindow.rcd_upositive.set_text(str(upositive)) 
    205205                self.recordwindow.rcd_unegative.set_text(str(unegative)) 
     206                self.recordwindow.rcd_beats.set_text(str(heartrate)) 
    206207                self.recordwindow.set_distance(distance) 
    207208                self.recordwindow.set_recordtime(time/60.0/60.0) 
  • pytrainer/trunk/pytrainer/recordgraph.py

    r21 r131  
    3737                        xlabel,ylabel,title,color = self.get_value_params(value_selected) 
    3838                        self.drawarea.stadistics("plot",[xvalues],[yvalues],[xlabel],[ylabel],[title],[color]) 
    39                 if value_selected == 2: 
     39                if value_selected == 2: 
     40                        xvalues, yvalues = self.get_values(values,value_selected) 
     41                        xlabel,ylabel,title,color = self.get_value_params(value_selected) 
     42                        self.drawarea.stadistics("plot",[xvalues],[yvalues],[xlabel],[ylabel],[title],[color]) 
     43                if value_selected == 3: 
    4044                        xvalues, yvalues = self.get_values(values,0) 
    4145                        xvalues1, yvalues1 = self.get_values(values,1) 
     
    4953                if value == 1: 
    5054                        return _("Distance (km)"),_("Velocity (Km/h)"),_("velocity"),"#007474" 
     55                if value == 2: 
     56                        return _("Distance (km)"),_("Beats (bpm)"),_("Heart Rate"),"#740074" 
     57 
    5158 
    5259        def get_values(self,values, value_selected): 
     
    5966                        if value_selected==1: 
    6067                                yvalue.append(value[3]) 
     68                        if value_selected==2: 
     69                                yvalue.append(value[6]) 
    6170                return xvalue,yvalue 
    6271