Beispiel #1
0
 def d_run (self, sr):
     datatype = self.datatype_for('run', 1009)
     track_index, first_lap_index, last_lap_index = sr.read('3H')
     sport, program, multisport = sr.read('3B 3x')
     quick_wokrout = objectify( ( 'time', 'distance' ), sr.read('L f') )
     workout = self.d_workout(sr, forced_datatype = 1008)
     keys = ( 'track_index', 'first_lap_index', 'last_lap_index', 'sport', 'program', 'multisport', 'quick_wokrout', 'workout')
     values = ( track_index, first_lap_index, last_lap_index, sport, program, multisport, quick_wokrout, workout )
     return objectify(keys,values)
Beispiel #2
0
 def d_track_data (self,sr):
     datatype = self.datatype_for('track.data', 304)
     keys = ( 'position', 'time', 'altitude', 'distance', 'heart_rate', 'cadence', 'sensor' )
     values = ( sr.read_position(), sr.read_time() ) + sr.read('2f 3B')
     result  = objectify(keys,values)
     log.debug("time %s", result.time)
     return result
Beispiel #3
0
 def d_track_header (self, sr):
     datatype = self.datatype_for('track.header', 310, 311, 312)
     if datatype == 311:
         return sr.read('H')
     elif datatype in [ 310, 312 ]:
         keys = ('display', 'color', 'identifier' )
         values = sr.read('2B') + ( sr.read_string(), )
         return objectify(keys,values)
Beispiel #4
0
 def d_workout (self, sr, forced_datatype= None):
     datatype = forced_datatype or self.datatype_for('workout', 1008)
     valid_steps_counts = sr.read('L')
     steps = []
     for i in xrange(20):
         keys = ( 'custom_name', 'target_custom_zone_low', 'target_custom_zone_high', 'duration_value', 'intensity', 'duration', 'target', 'target_value')
         values = ( sr.read_fixed_string(16), ) + sr.read('2f H 4B 2x')
         steps.append( objectify(keys,values) )
     name = sr.read_fixed_string(16)
     sport = sr.read('B')
     return name, sport, steps[:valid_steps_counts]
Beispiel #5
0
    def d_fitness_user_profile (self, sr):
        datatype = self.datatype_for('fitness', 1004)
        activities =  Obj()
        for activity in [ 'running', 'biking', 'other' ]:
            heart_rate_zones = []
            for i in xrange(5):
                low, high = sr.read('2B 2x')
                heart_rate_zones.append( Obj(low = low, high = high) )
            speed_zones = []
            for i in xrange(10):
                low, high = sr.read('2f')
                name = sr.read_fixed_string(16)
                speed_zones.append( Obj( name = name, low = low, high = high) )
            gear_weight, maximum_heart_rate = sr.read('f B 3x')
            keys = ( 'heart_rate_zones', 'speed_zones', 'gear_weight','maximum_heart_rate' )
            values = ( heart_rate_zones, speed_zones, gear_weight, maximum_heart_rate )
            activities[ activity ] = objectify(keys,values)

        weight, birth_year, birth_month, birth_day, gender = sr.read('f H 3B')
        birthdate = datetime.date( birth_year, birth_month, birth_day)

        keys = ( 'activities', 'weight', 'birthdate', 'gender' )
        values = ( activities, weight, birthdate, gender )
        return objectify(keys,values)
Beispiel #6
0
 def d_course_limits (self, sr):
     dataype = self.datatype_for('course.limits', 1013)
     keys = ( 'max_courses', 'max_course_laps', 'max_course_points', 'max_course_track_poins' )
     return objectify(keys,sr.read('4L'))
Beispiel #7
0
 def d_course_lap (self, sr):
     datatype = self.datatype_for('course.lap', 1007)
     keys = ( 'course_index', 'lap_index', 'total_time', 'total_distance', 'begin', 'end', 'average_heart_rate', 'maximum_heart_rate', 'intensity', 'average_cadence' )
     values = sr.read('2H L f') + (sr.read_position(), sr.read_position()) + sr.read('4B')
     return objectify(keys,values)
Beispiel #8
0
 def d_almanac_data (self, sr):
     datatype = self.datatype_for('almanac', 501)
     keys = ( 'week_number', 'af0', 'af1', 'eccentricity', 'sqrta', 'm0', 'w', 'omg0', 'odot', 'inclination', 'health' )
     return objectify(keys,sr.read('H 10f B'))
Beispiel #9
0
 def d_lap (self, sr):
     datatype = self.datatype_for('lap', 1011, 1015)
     keys = ( 'index', 'start_time', 'duration', 'distance', 'max_speed', 'begin', 'end', 'calories', 'average_heart_rate', 'maximum_heart_rate', 'intensity', 'average_cadence', 'trigger_method' )
     values = ( sr.read('H 2x') , sr.read_time() ) +  sr.read('L 2f') + ( sr.read_position(), sr.read_position() ) + sr.read('H 5B')
     return objectify(keys,values)