def __process_record(self, tcx, activity_id, record_number, point):
     root_logger.debug("Processing record: %r (%d)", point, record_number)
     if not GarminDB.ActivityRecords.s_exists(self.garmin_act_db_session, {
             'activity_id': activity_id,
             'record': record_number
     }):
         record = {
             'activity_id':
             activity_id,
             'record':
             record_number,
             'timestamp':
             tcx.get_point_time(point),
             'hr':
             tcx.get_point_hr(point),
             'altitude':
             tcx.get_point_altitude(point).meters_or_feet(
                 measurement_system=self.measurement_system),
             'speed':
             tcx.get_point_speed(point).kph_or_mph(
                 measurement_system=self.measurement_system)
         }
         loc = tcx.get_point_loc(point)
         if loc is not None:
             record.update({
                 'position_lat': loc.lat_deg,
                 'position_long': loc.long_deg
             })
         self.garmin_act_db_session.add(GarminDB.ActivityRecords(**record))
Пример #2
0
 def _write_record_entry(self, fit_file, message_dict):
     # We don't get record data from multiple sources so we don't need to coellesce data in the DB.
     # It's fastest to just write the new data out if it doesn't currently exist.
     activity_id = GarminDB.File.id_from_path(fit_file.filename)
     if not GarminDB.ActivityRecords.s_exists(self.garmin_act_db_session, {
             'activity_id': activity_id,
             'record': self.record
     }):
         record = {
             'activity_id':
             activity_id,
             'record':
             self.record,
             'timestamp':
             self.__get_field_value(message_dict, 'timestamp'),
             'position_lat':
             self.__get_field_value(message_dict, 'position_lat'),
             'position_long':
             self.__get_field_value(message_dict, 'position_long'),
             'distance':
             self.__get_field_value(message_dict, 'distance'),
             'cadence':
             self.__get_field_value(message_dict, 'cadence'),
             'hr':
             self.__get_field_value(message_dict, 'heart_rate'),
             'alititude':
             self.__get_field_value(message_dict, 'altitude'),
             'speed':
             self.__get_field_value(message_dict, 'speed'),
             'temperature':
             self.__get_field_value(message_dict, 'temperature'),
         }
         self.garmin_act_db_session.add(GarminDB.ActivityRecords(**record))
         self.record += 1
 def _write_record_entry(self, fit_file, message_fields, record_num):
     # We don't get record data from multiple sources so we don't need to coellesce data in the DB.
     # It's fastest to just write the new data out if it doesn't currently exist.
     activity_id = GarminDB.File.id_from_path(fit_file.filename)
     plugin_record = self._plugin_dispatch('write_record_entry', self.garmin_act_db_session, fit_file, activity_id, message_fields, record_num)
     if not GarminDB.ActivityRecords.s_exists(self.garmin_act_db_session, {'activity_id' : activity_id, 'record' : record_num}):
         record = {
             'activity_id'                       : activity_id,
             'record'                            : record_num,
             'timestamp'                         : fit_file.utc_datetime_to_local(message_fields.timestamp),
             'position_lat'                      : self._get_field_value(message_fields, 'position_lat'),
             'position_long'                     : self._get_field_value(message_fields, 'position_long'),
             'distance'                          : self._get_field_value(message_fields, 'distance'),
             'cadence'                           : self._get_field_value(message_fields, 'cadence'),
             'hr'                                : self._get_field_value(message_fields, 'heart_rate'),
             'rr'                                : self._get_field_value(message_fields, 'respiration_rate'),
             'altitude'                          : self._get_field_value(message_fields, 'altitude'),
             'speed'                             : self._get_field_value(message_fields, 'speed'),
             'temperature'                       : self._get_field_value(message_fields, 'temperature'),
         }
         record.update(plugin_record)
         root_logger.info("_write_record_entry activity_id %s, record %s doesn't exist", activity_id, record_num)
         self.garmin_act_db_session.add(GarminDB.ActivityRecords(**record))