Giter VIP home page Giter VIP logo

postrunner's People

Contributors

masneyb avatar ngiger avatar scrapper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

postrunner's Issues

error lap_index

I have an issue when importing a workout. this happens often when it's a multisport workout. But it used to import flawlessly.
I tried on a blank database, here is the log:

INFO: Creating PostRunner data directory .pr-test
INFO: Creating HTML output directory .pr-test/html
INFO: Creating devices directory .pr-test/devices
INFO: Creating Old Fit directory .pr-test/old_fit_dir
INFO: Creating fit directory .pr-test/fit
ERROR: Record 2018-06-26 04:28:07 +0000 has smaller distance (4944.95) than an earlier record (4945.88).
ERROR: Record 2018-06-26 04:46:46 +0000 has smaller distance (5604.34) than an earlier record (5663.04).
WARN: Discarding 43 earlier records
ERROR: lap_index must be 1, not 0
ERROR: lap_index must be 1, not 0

here are my gems installed:

bigdecimal (default: 1.3.4)
bindata (2.3.0)
cmath (default: 1.0.0)
csv (default: 1.0.0)
date (default: 1.0.0)
dbm (default: 1.0.0)
did_you_mean (1.2.0)
etc (default: 1.0.0)
fcntl (default: 1.0.0)
fiddle (default: 1.0.0)
fileutils (default: 1.0.2)
fit4ruby (2.0.0)
gdbm (default: 2.0.0)
io-console (default: 0.4.6)
ipaddr (default: 1.2.0)
json (default: 2.1.0)
mini_portile2 (2.3.0)
minitest (5.10.3)
net-telnet (0.1.1)
nokogiri (1.8.2)
openssl (default: 2.1.0)
perobs (4.0.0)
postrunner (0.10.1)
power_assert (0.2.7)
psych (default: 3.0.2)
rake (12.3.1)
rdoc (default: 6.0.1)
scanf (default: 1.0.0)
sdbm (default: 1.0.0)
stringio (default: 0.0.1)
strscan (default: 1.0.0)
test-unit (3.2.5)
webrick (default: 1.4.2)
zlib (default: 1.0.0)

Thanks for any help,
I can provide a fit file if needed or more info.
David

Package postrunner for Debian

For ease of use, it would be great to have postrunner packaged for, and preferably available in, the Debian operating system.

As far as I can see, there are no traces of Debian packaging for postrunner in either the Microsoft GitHub repository, nor in its issue tracker or pull request history. A quick glance at Work-Needing and Prospective Packages also suggests that noone has announced attempting to bring postrunner to Debian.

To avoid potential duplication of effort, this ticket is filed to:

  • Ask whether @scrapper or anyone else has knowledge about an already started packaging effort?
  • To track the progress of my attempt at the task.

Although no packaging exists as of yet, it should eventually show up on a branch at https://git.netizen.se/postrunner/. My contact details are available at the main web address for the same domain, for anyone interested in communicating with me about this using some other channel than through MSGH.

failed import/dump activity from powerfun

I tried to dump a fit file from powerfun, and here is the error shown in the terminal.

[034:000:004:enum   ] event_type: stop
ERROR: Activity must have at least one device_info section
ERROR: Activity must have at least one device_info section
/opt/homebrew/lib/ruby/gems/3.0.0/gems/fit4ruby-3.9.0/lib/fit4ruby/Log.rb:70:in `fatal'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/fit4ruby-3.9.0/lib/fit4ruby/Activity.rb:118:in `check'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/fit4ruby-3.9.0/lib/fit4ruby/FitFileEntity.rb:79:in `check'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/fit4ruby-3.9.0/lib/fit4ruby/FitFile.rb:77:in `read'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/fit4ruby-3.9.0/lib/fit4ruby.rb:18:in `read'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:556:in `read_fit_file'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:489:in `process_file'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:474:in `block in process_files'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:468:in `each'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:468:in `process_files'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:431:in `block in process_files_or_activities'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:427:in `each'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:427:in `process_files_or_activities'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:343:in `execute_command'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:79:in `main'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner.rb:24:in `<module:PostRunner>'
/opt/homebrew/lib/ruby/gems/3.0.0/gems/postrunner-1.0.5/lib/postrunner.rb:22:in `<top (required)>'
<internal:/opt/homebrew/Cellar/ruby/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in `require'
<internal:/opt/homebrew/Cellar/ruby/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require'
<internal:/opt/homebrew/Cellar/ruby/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:149:in `require'
/opt/homebrew/opt/ruby/bin/postrunner:4:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 1.0.5!

Here is my fit file.
2021-12-18-171105-1103882.fit.zip

Environment

M1MAX-64GB
MacOS 12.2.1
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [arm64-darwin21]
gem 3.0.0

import FIT file failed

Trying to import a swimming session there is an error:
"ERROR: Checksum error in file 'D:\GARMIN\ACTIVITY\68T62508.FIT'. Computed 6674 instead of 2271."

I tried importing on garmin connect and had no issue. What can I do/provide?

Thanks

Problem with importing -> perobs

Hello,
I installed postrunner as root via gem2.1 install postrunner with no errors or warnings.
Then I tried to import already downloaded fit-data via postrunner import /ACTIVITY and run into errors (perobs). What can I do to fix that or to get more information about the error?

Thanks for the software and best regards
Bernd

$ postrunner import /home/user/fun/Sport/GARMIN/ACTIVITY
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in require': cannot load such file -- perobs/Store (LoadError)
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in rescue in require' from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in require'
from /var/lib/gems/2.1.0/gems/perobs-4.0.0/lib/perobs.rb:29:in <top (required)>' from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from /var/lib/gems/2.1.0/gems/postrunner-0.10.1/lib/postrunner/Main.rb:15:in <top (required)>'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /var/lib/gems/2.1.0/gems/postrunner-0.10.1/lib/postrunner.rb:20:in <top (required)>' from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from /var/lib/gems/2.1.0/gems/postrunner-0.10.1/bin/postrunner:4:in <top (required)>'
from /usr/local/bin/postrunner:23:in load' from /usr/local/bin/postrunner:23:in

'

~ $ gem2.1 list

*** LOCAL GEMS ***

bigdecimal (1.2.4)
bindata (2.3.0)
fit4ruby (2.0.0)
io-console (0.4.2)
json (1.8.1)
mini_portile2 (2.3.0)
minitest (4.7.5)
nokogiri (1.8.4)
perobs (4.0.0)
postrunner (0.10.1)
psych (2.0.5)
rake (10.1.0)
rdoc (4.1.0)
test-unit (2.1.5.0)
~ $

map not showing

Hello, I'm using postrunner with fenix 3 HR and it is working great on linux/windows (thanks!). Only caveat is the map. It is not displaying on the html page redered. Is there something I can do to troubleshoot this issue?

ERROR: Assigning objects of class Bignum is not supported.

I installed this today and am getting the following output for every command I try:

$ postrunner
ERROR: Assigning objects of class Bignum is not supported. Only PEROBS objects or one of the following classes are supported: NilClass, Integer, Float, String, Time, TrueClass, FalseClass
/home/anders/.gem/ruby/2.3.0/gems/perobs-4.1.0/lib/perobs/Log.rb:107:in `fatal'
/home/anders/.gem/ruby/2.3.0/gems/perobs-4.1.0/lib/perobs/ObjectBase.rb:226:in `_check_assignment_value'
/home/anders/.gem/ruby/2.3.0/gems/perobs-4.1.0/lib/perobs/Hash.rb:127:in `[]='
/home/anders/.gem/ruby/2.3.0/gems/perobs-4.1.0/lib/perobs/Store.rb:289:in `[]='
/home/anders/.gem/ruby/2.3.0/gems/postrunner-0.11.0/lib/postrunner/Main.rb:65:in `main'
/home/anders/.gem/ruby/2.3.0/gems/postrunner-0.11.0/lib/postrunner.rb:24:in `<module:PostRunner>'
/home/anders/.gem/ruby/2.3.0/gems/postrunner-0.11.0/lib/postrunner.rb:22:in `<top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/home/anders/.gem/ruby/2.3.0/gems/postrunner-0.11.0/bin/postrunner:4:in `<top (required)>'
/home/anders/.gem/ruby/2.3.0/bin/postrunner:22:in `load'
/home/anders/.gem/ruby/2.3.0/bin/postrunner:22:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 0.11.0!

The only command I found which does not give this error is postrunner --help.
Maybe a version mismatch?

Here are my installed gems:

bigdecimal (1.2.8)
bindata (2.3.0)
did_you_mean (1.0.0)
fit4ruby (3.2.0)
io-console (0.4.5)
json (1.8.3)
mini_portile2 (2.4.0)
minitest (5.9.0)
net-telnet (0.1.1)
nokogiri (1.10.3)
perobs (4.1.0)
postrunner (0.11.0)
power_assert (0.2.7)
psych (2.1.0)
rake (10.5.0)
rdoc (4.2.1)

Installed with gem install --user postrunner. I did not have any ruby gems (besides the defaults) installed before this. Running debian stretch if that matters.

Can't import fit file

Hi ,

just installed postrunner, but get error when trying to import .fit file.
Below is the error.

INFO: Creating PostRunner data directory /root/.postrunner
INFO: Creating HTML output directory /root/.postrunner/html
INFO: Creating devices directory /root/.postrunner/devices
INFO: Creating Old Fit directory /root/.postrunner/old_fit_dir
INFO: Creating fit directory /root/.postrunner/fit
ERROR: selection '0' does not exist in :choices for obj.local_message_type
/usr/local/rvm/gems/ruby-2.1.0/gems/bindata-2.1.0/lib/bindata/choice.rb:119:in instantiate_choice' /usr/local/rvm/gems/ruby-2.1.0/gems/bindata-2.1.0/lib/bindata/choice.rb:113:in current_choice'
(eval):2:in do_read' /usr/local/rvm/gems/ruby-2.1.0/gems/bindata-2.1.0/lib/bindata/struct.rb:131:in block in do_read'
/usr/local/rvm/gems/ruby-2.1.0/gems/bindata-2.1.0/lib/bindata/struct.rb:131:in each' /usr/local/rvm/gems/ruby-2.1.0/gems/bindata-2.1.0/lib/bindata/struct.rb:131:in do_read'
/usr/local/rvm/gems/ruby-2.1.0/gems/bindata-2.1.0/lib/bindata/base.rb:146:in read' /usr/local/rvm/gems/ruby-2.1.0/gems/bindata-2.1.0/lib/bindata/base.rb:23:in read'
/usr/local/rvm/gems/ruby-2.1.0/gems/fit4ruby-1.3.0/lib/fit4ruby/FitRecord.rb:37:in read' /usr/local/rvm/gems/ruby-2.1.0/gems/fit4ruby-1.3.0/lib/fit4ruby/FitFile.rb:53:in read'
/usr/local/rvm/gems/ruby-2.1.0/gems/fit4ruby-1.3.0/lib/fit4ruby.rb:18:in read' /usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner/Main.rb:474:in import_fit_file'
/usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner/Main.rb:462:in process_file' /usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner/Main.rb:447:in block in process_files'
/usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner/Main.rb:441:in each' /usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner/Main.rb:441:in process_files'
/usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner/Main.rb:345:in execute_command' /usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner/Main.rb:77:in main'
/usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner.rb:24:in <module:PostRunner>' /usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/lib/postrunner.rb:22:in <top (required)>'
/usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' /usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require'
/usr/local/rvm/gems/ruby-2.1.0/gems/postrunner-0.7.2/bin/postrunner:4:in <top (required)>' /usr/local/rvm/gems/ruby-2.1.0/bin/postrunner:22:in load'
/usr/local/rvm/gems/ruby-2.1.0/bin/postrunner:22:in <main>' /usr/local/rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in eval'
/usr/local/rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `

'


You have triggered a bug in PostRunner 0.7.2!

ERROR: undefined method `exists?' for Dir:Class w/ Ruby 3.x

I've successfully installed postrunner under Ruby 3.2.2 by running gem install postrunner. Unfortunately, when attempting to run it, it fails like this:

root@8cec5a50d5d0:/# postrunner list
ERROR: undefined method `exists?' for Dir:Class
/usr/local/bundle/gems/postrunner-1.1.1/lib/postrunner/DirUtils.rb:20:in `create_directory'
/usr/local/bundle/gems/postrunner-1.1.1/lib/postrunner/Main.rb:57:in `main'
/usr/local/bundle/gems/postrunner-1.1.1/lib/postrunner.rb:24:in `<module:PostRunner>'
/usr/local/bundle/gems/postrunner-1.1.1/lib/postrunner.rb:22:in `<top (required)>'
<internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
/usr/local/bundle/gems/postrunner-1.1.1/bin/postrunner:4:in `<top (required)>'
/usr/local/bundle/bin/postrunner:25:in `load'
/usr/local/bundle/bin/postrunner:25:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 1.1.1!

This appears to be a Ruby version compatibility issue...postrunner runs fine with the latest 2.x version (2.7.8).

Problem with BinData module

Hi,

I just tried your program. I checkout fit4ruby, perobs and postrunner from github and install all other required modules from my distribution (Debian unstable). In particular, bindata is version 2.3.5 (and ruby 2.5.1p57).
When trying to import my first data, I get this:

$ bin/postrunner import /media/sde/GARMIN/ACTIVITY/
ERROR: Rename field 'type' in BinData::Struct, as it is a reserved name.
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:410:in `block in ensure_field_names_are_valid'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:404:in `each'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:404:in `ensure_field_names_are_valid'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:380:in `sanitize_fields'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:344:in `sanitize_parameters!'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:287:in `sanitize!'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:207:in `initialize'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:189:in `new'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:189:in `sanitize'
/usr/lib/ruby/vendor_ruby/bindata/base.rb:302:in `extract_args'
/usr/lib/ruby/vendor_ruby/bindata/base.rb:249:in `extract_args'
/usr/lib/ruby/vendor_ruby/bindata/base.rb:81:in `initialize'
/usr/lib/ruby/vendor_ruby/bindata/warnings.rb:21:in `initialize_with_warning'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitMessageRecord.rb:164:in `new'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitMessageRecord.rb:164:in `produce'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitMessageRecord.rb:41:in `initialize'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitRecord.rb:53:in `new'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitRecord.rb:53:in `read'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitFile.rb:68:in `read'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby.rb:18:in `read'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:482:in `import_fit_file'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:464:in `process_file'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:446:in `block (2 levels) in process_files'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:445:in `each'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:445:in `block in process_files'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:443:in `each'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:443:in `process_files'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:347:in `execute_command'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:77:in `main'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner.rb:24:in `<module:PostRunner>'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner.rb:22:in `<top (required)>'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
bin/postrunner:4:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 0.10.1!

Is it really a bug? Do you know how to workaround it?

Regards,
Vincent

postrunner import loops forever

Hello,

I'm running Debian testing and switched to ruby 3.0. This was the occasion to update my old postrunner setup to 1.0.5.
I then tried to import all my .FIT files. When I try to import even a single file (e.g postrunner -v import C2KB2851.FIT), postrunner loops forever and the memory the process is using is increasing regularly. I can stop postrunner using ^C and get the following message (maybe it can help locate the loop)

INFO: New 2022 running speed record for 400 m: 0:02:00
INFO: New all-time running speed record for 500 m: 0:02:30
INFO: New 2022 running speed record for 500 m: 0:02:30
^Clog writing failed. can't be called from trap context
ERROR: undefined method 'est_sweat_loss' for #<Fit4Ruby::Session:0x000055a9a9eb8b08>
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivitySummary.rb:129:in 'summary'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivitySummary.rb:52:in 'to_html'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivityView.rb:79:in 'block (4 levels) in generate_html'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/HTMLBuilder.rb:124:in 'create_node'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/HTMLBuilder.rb:89:in 'method_missing'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivityView.rb:74:in 'block (3 levels) in generate_html'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/HTMLBuilder.rb:124:in 'create_node'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/HTMLBuilder.rb:89:in 'method_missing'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivityView.rb:73:in 'block (2 levels) in generate_html'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/HTMLBuilder.rb:65:in 'body'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivityView.rb:71:in 'block in generate_html'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/View.rb:41:in 'body'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivityView.rb:70:in 'generate_html'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/ActivityView.rb:47:in 'initialize'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/FFS_Activity.rb:248:in 'new'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/FFS_Activity.rb:248:in 'generate_html_report'
xxx/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:57:in 'method_missing'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/FitFileStore.rb:166:in 'add_fit_file'
xxx/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:57:in 'method_missing'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:517:in 'import_fit_file'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:491:in 'process_file'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:474:in 'block in process_files'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:468:in 'each'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:468:in 'process_files'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:354:in 'execute_command'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner/Main.rb:79:in 'main'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner.rb:24:in '<module:PostRunner>'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/lib/postrunner.rb:22:in '<top (required)>'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in 'require'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in 'require'
xxx/.gem/ruby/3.0.0/gems/postrunner-1.0.5/bin/postrunner:4:in '<top (required)>'
xxx/postrunner:25:in 'load'
xxx/postrunner:25:in '<main>'

*******************************************************************************
You have triggered a bug in PostRunner 1.0.5!

The following patch workarounds the problem (just does not use the recent sweat estimation feature ?).

--- ActivitySummary.rb.org	2022-03-17 10:56:04.398977001 +0100
+++ ActivitySummary.rb	2022-03-17 10:56:07.559000828 +0100
@@ -126,9 +126,9 @@
                           { :metric => 'm', :statute => 'ft' }) ])
       t.row([ 'Calories:', "#{session.total_calories} kCal" ])
 
-      if (est_sweat_loss = session.est_sweat_loss)
-        t.row([ 'Est. Sweat Loss:', "#{est_sweat_loss} ml" ])
-      end
+#      if (est_sweat_loss = session.est_sweat_loss)
+#        t.row([ 'Est. Sweat Loss:', "#{est_sweat_loss} ml" ])
+#      end
       t.row([ 'Avg. HR:', session.avg_heart_rate ?
               "#{session.avg_heart_rate} bpm" : '-' ])
       t.row([ 'Max. HR:', session.max_heart_rate ?

Don't hesitate if you need more information.

Thanks.

error when importing swim workout

I have an error since last update when importing swim workout.
Here is the detail:
ERROR: nil can't be coerced into Float
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:310:in +' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:310:in block (2 levels) in gather_hr_zones'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:310:in each' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:310:in block in gather_hr_zones'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:306:in each' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:306:in gather_hr_zones'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:231:in hr_zones' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivitySummary.rb:57:in to_html'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivityView.rb:78:in block (4 levels) in generate_html' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/HTMLBuilder.rb:124:in create_node'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/HTMLBuilder.rb:89:in method_missing' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivityView.rb:73:in block (3 levels) in generate_html'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/HTMLBuilder.rb:124:in create_node' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/HTMLBuilder.rb:89:in method_missing'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivityView.rb:72:in block (2 levels) in generate_html' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/HTMLBuilder.rb:65:in body'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivityView.rb:70:in block in generate_html' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/View.rb:41:in body'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivityView.rb:69:in generate_html' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/ActivityView.rb:47:in initialize'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/FFS_Activity.rb:247:in new' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/FFS_Activity.rb:247:in generate_html_report'
/var/lib/gems/2.3.0/gems/perobs-4.0.0/lib/perobs/ObjectBase.rb:57:in method_missing' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/FitFileStore.rb:118:in add_fit_file'
/var/lib/gems/2.3.0/gems/perobs-4.0.0/lib/perobs/ObjectBase.rb:57:in method_missing' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:484:in import_fit_file'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:464:in process_file' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:449:in block in process_files'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:443:in each' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:443:in process_files'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:347:in execute_command' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:77:in main'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner.rb:24:in <module:PostRunner>' /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner.rb:22:in <top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require'
/var/lib/gems/2.3.0/gems/postrunner-0.9.0/bin/postrunner:4:in <top (required)>' /usr/local/bin/postrunner:22:in load'
/usr/local/bin/postrunner:22:in `

'

I did not use HR on this one.
If needed, I can send you the fit file per email.

Error importing since stryd ConnectIQ

Hello,

I don't know if it is related, but since around the time I'm using a Styd foot pod I cannot import the fit files anymore. Older files work well. The device recorded the fit file is a Fenix 6x and has the Stryd data field active.

It errors with the following:

postrunner import 7145928273_ACTIVITY.fit
ERROR: undefined method `fit_file_name' for "@timestamp":String
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/FFS_Device.rb:130:in `block in activity_by_file_name'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/Array.rb:71:in `each'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/Array.rb:71:in `find'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/Array.rb:71:in `block (2 levels) in <class:Array>'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:57:in `method_missing'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/FFS_Device.rb:130:in `activity_by_file_name'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/FFS_Device.rb:56:in `add_fit_file'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:57:in `method_missing'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/FitFileStore.rb:156:in `add_fit_file'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:57:in `method_missing'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/Main.rb:492:in `import_fit_file'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/Main.rb:466:in `process_file'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/Main.rb:451:in `block in process_files'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/Main.rb:445:in `each'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/Main.rb:445:in `process_files'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/Main.rb:349:in `execute_command'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner/Main.rb:79:in `main'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner.rb:24:in `<module:PostRunner>'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/lib/postrunner.rb:22:in `<top (required)>'
<internal:/usr/local/Cellar/ruby/3.0.2/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/local/Cellar/ruby/3.0.2/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/gems/postrunner-1.0.4/bin/postrunner:4:in `<top (required)>'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/bin/postrunner:23:in `load'
/Users/tobias.breitwieser/.gem/ruby/3.0.0/bin/postrunner:23:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 1.0.4!

Cant install rspec 3.4.1

Hi I am going to try and use this gem to manage my Garmin watch although I ran into an error doing bundle install, it couldn't find the gem rspec 3.4.1.
Could not find gem 'rspec (~> 3.4.1)' in any of the gem sources listed in your Gemfile.

I did a simple tweak to the gem spec and it fixed the issue spec.add_development_dependency 'rspec', '~> 3.4'

Error when trying to import data from Garmin Instinct 2S Solar: "ERROR: nil can't be coerced into Float"

Hey there,

I was just trying out postrunner for the first time, but unfortunately I can't import any data from my Instinct 2S Solar. This is what I see instead:

$ postrunner --verbose import /media/$USER/GARMIN/GARMIN/ACTIVITY/
DEBUG: Unknown field number 32 in global message 23
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown field number 134 in global message 2
DEBUG: Unknown field number 135 in global message 2
DEBUG: Unknown field number 174 in global message 2
DEBUG: Unknown field number 199 in global message 2
DEBUG: Unknown field number 200 in global message 2
DEBUG: Unknown field number 206 in global message 2
DEBUG: Unknown field number 207 in global message 2
DEBUG: Unknown field number 208 in global message 2
DEBUG: Unknown field number 209 in global message 2
DEBUG: Unknown field number 210 in global message 2
DEBUG: Unknown field number 211 in global message 2
DEBUG: Unknown field number 49 in global message 3
DEBUG: Unknown field number 58 in global message 3
DEBUG: Unknown FIT record field 'field49' in global message user_profile (3).
DEBUG: Unknown FIT record field 'field58' in global message user_profile (3).
DEBUG: Unknown field number 25 in global message 79
DEBUG: Unknown field number 26 in global message 79
DEBUG: Unknown field number 29 in global message 79
DEBUG: Unknown field number 30 in global message 79
DEBUG: Unknown field number 23 in global message 79
DEBUG: Unknown field number 33 in global message 79
DEBUG: Unknown field number 24 in global message 79
DEBUG: Unknown field number 27 in global message 79
DEBUG: Unknown field number 28 in global message 79
DEBUG: Unknown field number 31 in global message 79
DEBUG: Unknown field number 32 in global message 79
DEBUG: Unknown FIT record field 'field23' in global message user_data (79).
DEBUG: Unknown FIT record field 'field24' in global message user_data (79).
DEBUG: Unknown FIT record field 'field25' in global message user_data (79).
DEBUG: Unknown FIT record field 'field26' in global message user_data (79).
DEBUG: Unknown FIT record field 'field27' in global message user_data (79).
DEBUG: Unknown FIT record field 'field28' in global message user_data (79).
DEBUG: Unknown FIT record field 'field29' in global message user_data (79).
DEBUG: Unknown FIT record field 'field30' in global message user_data (79).
DEBUG: Unknown FIT record field 'field31' in global message user_data (79).
DEBUG: Unknown FIT record field 'field32' in global message user_data (79).
DEBUG: Unknown FIT record field 'field33' in global message user_data (79).
DEBUG: Unknown field number 100 in global message 13
DEBUG: Unknown field number 101 in global message 13
DEBUG: Unknown field number 87 in global message 13
DEBUG: Unknown field number 88 in global message 13
DEBUG: Unknown field number 102 in global message 13
DEBUG: Unknown field number 104 in global message 13
DEBUG: Unknown field number 133 in global message 20
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field133' in global message record (20).
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown FIT record field 'field32' in global message device_info (23).
DEBUG: Unknown field number 45 in global message 19
DEBUG: Unknown field number 155 in global message 19
DEBUG: Unknown FIT record field 'field45' in global message lap (19).
DEBUG: Unknown FIT record field 'field155' in global message lap (19).
DEBUG: Unknown field number 47 in global message 140
DEBUG: Unknown field number 49 in global message 140
DEBUG: Unknown field number 50 in global message 140
DEBUG: Unknown field number 51 in global message 140
DEBUG: Unknown field number 52 in global message 140
DEBUG: Unknown FIT record field 'field47' in global message physiological_metrics (140).
DEBUG: Unknown FIT record field 'field49' in global message physiological_metrics (140).
DEBUG: Unknown FIT record field 'field50' in global message physiological_metrics (140).
DEBUG: Unknown FIT record field 'field51' in global message physiological_metrics (140).
DEBUG: Unknown FIT record field 'field52' in global message physiological_metrics (140).
DEBUG: Unknown field number 52 in global message 18
DEBUG: Unknown field number 196 in global message 18
DEBUG: Unknown field number 197 in global message 18
DEBUG: Unknown field number 198 in global message 18
DEBUG: Unknown field number 201 in global message 18
DEBUG: Unknown field number 202 in global message 18
DEBUG: Unknown FIT record field 'field52' in global message session (18).
DEBUG: Unknown FIT record field 'field196' in global message session (18).
DEBUG: Unknown FIT record field 'field197' in global message session (18).
DEBUG: Unknown FIT record field 'field198' in global message session (18).
DEBUG: Unknown FIT record field 'field201' in global message session (18).
DEBUG: Unknown FIT record field 'field202' in global message session (18).
ERROR: nil can't be coerced into Float
/home/user/.local/share/gem/ruby/2.7.0/gems/fit4ruby-3.10.0/lib/fit4ruby/Activity.rb:191:in +' /home/user/.local/share/gem/ruby/2.7.0/gems/fit4ruby-3.10.0/lib/fit4ruby/Activity.rb:191:in block in total_distance'
/home/user/.local/share/gem/ruby/2.7.0/gems/fit4ruby-3.10.0/lib/fit4ruby/Activity.rb:191:in each' /home/user/.local/share/gem/ruby/2.7.0/gems/fit4ruby-3.10.0/lib/fit4ruby/Activity.rb:191:in total_distance'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/FFS_Activity.rb:123:in initialize' /home/user/.local/share/gem/ruby/2.7.0/gems/perobs-4.4.0/lib/perobs/Store.rb:279:in new'
/home/user/.local/share/gem/ruby/2.7.0/gems/perobs-4.4.0/lib/perobs/Store.rb:279:in _construct_po' /home/user/.local/share/gem/ruby/2.7.0/gems/perobs-4.4.0/lib/perobs/Store.rb:264:in block in new'
/home/user/.local/share/gem/ruby/2.7.0/gems/perobs-4.4.0/lib/perobs/Store.rb:263:in synchronize' /home/user/.local/share/gem/ruby/2.7.0/gems/perobs-4.4.0/lib/perobs/Store.rb:263:in new'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/FFS_Device.rb:97:in add_fit_file' /home/user/.local/share/gem/ruby/2.7.0/gems/perobs-4.4.0/lib/perobs/ObjectBase.rb:57:in method_missing'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/FitFileStore.rb:156:in add_fit_file' /home/user/.local/share/gem/ruby/2.7.0/gems/perobs-4.4.0/lib/perobs/ObjectBase.rb:57:in method_missing'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:517:in import_fit_file' /home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:491:in process_file'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:471:in block (2 levels) in process_files' /home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:470:in each'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:470:in block in process_files' /home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:468:in each'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:468:in process_files' /home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:354:in execute_command'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner/Main.rb:79:in main' /home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner.rb:24:in module:PostRunner'
/home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/lib/postrunner.rb:22:in <top (required)>' /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb:85:in require'
/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb:85:in require' /home/user/.local/share/gem/ruby/2.7.0/gems/postrunner-1.1.1/bin/postrunner:4:in <top (required)>'
/home/user/.local/share/gem/ruby/2.7.0/bin/postrunner:23:in load' /home/user/.local/share/gem/ruby/2.7.0/bin/postrunner:23:in

'


You have triggered a bug in PostRunner 1.1.1!

Let me know if you need more info / logs, or if there's anything I can do to help troubleshoot this.

Thanks!

Forerunner 45

Just a head's up that the GPS downloader doesn't work with a Garmin Forerunner 45. The difference appears to be in the size of the EPO.BIN file, which is called CPE.BIN on the 45. My sync'ed CPE.BIN file is 1024 bytes shorter than the EPO.BIN file downloaded by postrunner. Unfortunately I don't know enough to figure out how to make it work on the FR45.

CPE ephemeris data url for newer Garmin watches

Regarding this:

Unfortunately, the download mechanism for CPE files used by the devices with GPS chipsets from Sony is still unknown and hence unsupported

In case this is useful for future device support or for other people

For some Garmin watches with Sony GPS chipsets here is what seems to work for downloading CPE ephemeris data (and copying to the device on Linux). No additional processing is required if wget (or perhaps curl) is used. This was from recording traffic with a Garmin Vivoactive 3.

wget -O CPE.BIN api.gcs.garmin.com/ephemeris/cpe/sony?coverage=WEEKS_1

gio copy --progress CPE.BIN /run/user/1000/gvfs/mtp:host=<VID_PID_MOUNT_OF_YOUR_WATCH_HERE>/Primary/GARMIN/RemoteSW

Update, some other collected info from other sources too:

For: Garmin Forerunner 245
From: https://gadgetbridge.org/internals/specifics/garmin-protocol/
This returns a unix tar file with four CPE bin files of varying sizes. The constellations parameter selects which CPE files are included in the tar file
https://api.gcs.garmin.com/ephemeris/cpe/sony/lle?coverage=WEEKS_1&constellations=GPS,GLONASS,GALILEO,QZSS

For: Garmin Forerunner 935
From: http://www.cyber-neurones.org/tag/forerunner/?amp
Possible url for it's EPO ephemeris data. Looks like it returns JSON.
https://api.gcs.garmin.com/ephemeris/cpe/mtk/segments?segments=28

uninitialized constant PEROBS::FlatFileDB

Hello,

I just install postrunner on a new host, when trying to do anything, I got this error:

ERROR: uninitialized constant PEROBS::FlatFileDB

Is there something that changed with the 0.7 version?

Postrunner 0.7.5 can't read my existing data after upgrade

After upgrading postrunner from 0.6.0 to 0.7.5, I get this error when running

$ postrunner list
INFO: Converting BTreeDB based database to FlatFileDB format
ERROR: undefined method `class_to_id' for nil:NilClass
/home/pauli/.gem/ruby/2.4.0/gems/perobs-2.4.1/lib/perobs/ObjectBase.rb:187:in `_sync'
/home/pauli/.gem/ruby/2.4.0/gems/perobs-2.4.1/lib/perobs/Cache.rb:115:in `block in flush'
/home/pauli/.gem/ruby/2.4.0/gems/perobs-2.4.1/lib/perobs/Cache.rb:115:in `each'
/home/pauli/.gem/ruby/2.4.0/gems/perobs-2.4.1/lib/perobs/Cache.rb:115:in `flush'
/home/pauli/.gem/ruby/2.4.0/gems/perobs-2.4.1/lib/perobs/Store.rb:196:in `exit'
/home/pauli/.gem/ruby/2.4.0/gems/postrunner-0.7.5/lib/postrunner/Main.rb:643:in `ensure_flat_file_db'
/home/pauli/.gem/ruby/2.4.0/gems/postrunner-0.7.5/lib/postrunner/Main.rb:58:in `main'
/home/pauli/.gem/ruby/2.4.0/gems/postrunner-0.7.5/lib/postrunner.rb:24:in `<module:PostRunner>'
/home/pauli/.gem/ruby/2.4.0/gems/postrunner-0.7.5/lib/postrunner.rb:22:in `<top (required)>'
/usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/home/pauli/.gem/ruby/2.4.0/gems/postrunner-0.7.5/bin/postrunner:4:in `<top (required)>'
/home/pauli/.gem/ruby/2.3.0/bin/postrunner:23:in `load'
/home/pauli/.gem/ruby/2.3.0/bin/postrunner:23:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 0.7.5!

If I remove the existing .postrunner directory and try again I get this

$ postrunner list
INFO: Creating PostRunner data directory /home/pauli/.postrunner
INFO: Creating HTML output directory /home/pauli/.postrunner/html
INFO: Creating devices directory /home/pauli/.postrunner/devices
INFO: Creating Old Fit directory /home/pauli/.postrunner/old_fit_dir
INFO: Creating fit directory /home/pauli/.postrunner/fit
+----+--------+----+-----+--------+--------+----------+
|Ref.|Activity|Type|Start|Distance|Duration|Speed/Pace|
+----+--------+----+-----+--------+--------+----------+

So it seems like postrunner 0.7.5 can't read the existing database.
I would like postrunner to read the existing data, but I don't know what causes this problem.

My ruby gem versions are:
fit4ruby (1.5.1, 1.3.0)
perobs (2.4.1, 2.3.1)
postrunner (0.7.5, 0.6.0)

The existing data are obtained with Garmin Forerunner 610 and Fenix 3HR.

ERROR: undefined local variable or method `di'

Hi, I upgraded to 1.0.0 from 0.12.0 and since then, import leads to the following error :

Work needed
WARN: PostRunner version upgrade from 0.12.0 to 1.0.0 started.
A7AC4307.FIT
A84B0935.FIT
A8GC3022.FIT
WARN: PostRunner version upgrade from 0.12.0 to 1.0.0 completed.
ERROR: undefined local variable or method `di' for #<PostRunner::FitFileStore:0x00005569d19af048>
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/FitFileStore.rb:540:in `extract_fit_file_id'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/FitFileStore.rb:147:in `add_fit_file'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/perobs-4.2.0/lib/perobs/ObjectBase.rb:57:in `method_missing'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:492:in `import_fit_file'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:466:in `process_file'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:448:in `block (2 levels) in process_files'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:447:in `each'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:447:in `block in process_files'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:445:in `each'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:445:in `process_files'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:349:in `execute_command'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner/Main.rb:79:in `main'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner.rb:24:in `<module:PostRunner>'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/lib/postrunner.rb:22:in `<top (required)>'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'
/home/taziden/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/postrunner-1.0.0/bin/postrunner:4:in `<top (required)>'
/home/taziden/.rbenv/versions/2.7.1/bin/postrunner:23:in `load'
/home/taziden/.rbenv/versions/2.7.1/bin/postrunner:23:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 1.0.0!

ERROR: No window start time set for day 2024-02-05 00:00:00 UTC

I don't know if this is a bug, or I'm just not using it properly. I imported data from a VivoActive 5. I can do 'postrunner show', and see specific activities in a web browser. Some the command-line operations work, but those that take a date -- whether I supply one or not -- fail in the same way.

I'm not sure whether postrunner is still being maintained. If not, no worries. Thanks.

ERROR: No window start time set for day 2024-02-05 00:00:00 UTC
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner/DailyMonitoringAnalyzer.rb:235:in `extract_data_from_monitor_files'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner/DailyMonitoringAnalyzer.rb:63:in `initialize'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner/MonitoringStatistics.rb:41:in `new'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner/MonitoringStatistics.rb:41:in `daily'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner/FitFileStore.rb:440:in `daily_report'
/home/kevin/.local/share/gem/ruby/gems/perobs-4.5.0/lib/perobs/ObjectBase.rb:57:in `method_missing'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner/Main.rb:346:in `execute_command'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner/Main.rb:81:in `main'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner.rb:24:in `<module:PostRunner>'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/lib/postrunner.rb:22:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
/home/kevin/.local/share/gem/ruby/gems/postrunner-1.2.0/bin/postrunner:4:in `<top (required)>'
/home/kevin/bin/postrunner:25:in `load'
/home/kevin/bin/postrunner:25:in `<main>'

Package for flathub.org

Packaging this application as a flatpak and publishing to flathub.org would be a convenient way to make this application usable, regardless of distribution. If this is something of interest, i could try to package it. Is this something that you would like to see?

Permission issue while using the gem installation

After installing postrunner using ruby-gem, I was unable to launch the program as a standard user. The progam crashed with the following output:

~ ❯❯❯ postrunner import /media/sdd/GARMIN/ACTIVITY
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `require': cannot load such file -- postrunner (LoadError)
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in `require'
    from /var/lib/gems/2.1.0/gems/postrunner-0.0.9/bin/postrunner:4:in `<top (required)>'
    from /usr/local/bin/postrunner:23:in `load'
    from /usr/local/bin/postrunner:23:in `<main>'

Using strace, we can see it's a permission issue:

11:43:44.762611 open("/var/lib/gems/2.1.0/gems/postrunner-0.0.9/lib/postrunner.rb", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied) <0.000040>

Actually, only root can read the file:

~ ❯❯❯ ls -l /var/lib/gems/2.1.0/gems/postrunner-0.0.9/lib/postrunner.rb
-rw-r----- 1 root root 561 Oct 10 11:37 /var/lib/gems/2.1.0/gems/postrunner-0.0.9/lib/postrunner.rb

The permission issue also exists for fit4ruby. After changing the read rights, everything goes smoothly:

root@yoshi:/home/brice# chmod -R a+r /var/lib/gems/2.1.0/gems/fit4ruby-0.0.6 /var/lib/gems/2.1.0/gems/postrunner-0.0.9/
root@yoshi:/home/brice# exit
~ ❯❯❯ postrunner import /media/sdd/GARMIN/ACTIVITY
INFO: No records file found at '/home/brice/.postrunner/records.yml'
INFO: New all-time running distance record: 7218.34 m
INFO: New 2015 running distance record: 7218.34 m
INFO: New all-time running speed record for 400 m: 0:02:22
INFO: New 2015 running speed record for 400 m: 0:02:22
INFO: New all-time running speed record for 500 m: 0:02:55
INFO: New 2015 running speed record for 500 m: 0:02:55
INFO: New all-time running speed record for 800 m: 0:04:41
INFO: New 2015 running speed record for 800 m: 0:04:41
INFO: New all-time running speed record for 1 km: 0:05:56
INFO: New 2015 running speed record for 1 km: 0:05:56
INFO: New all-time running speed record for 1 mi: 0:10:42
INFO: New 2015 running speed record for 1 mi: 0:10:42
INFO: New all-time running speed record for 2 km: 0:13:16
INFO: New 2015 running speed record for 2 km: 0:13:16
INFO: New all-time running speed record for 3 km: 0:20:28
INFO: New 2015 running speed record for 3 km: 0:20:28
INFO: New all-time running speed record for 5 km: 0:32:30
INFO: New 2015 running speed record for 5 km: 0:32:30
INFO: /media/sdd/GARMIN/ACTIVITY/5A763538.FIT successfully added to archive
INFO: Runtime config file '/home/brice/.postrunner/config.yml' written
postrunner import /media/sdd/GARMIN/ACTIVITY  5.63s user 0.39s system 87% cpu 6.887 total

error with fit4ruby

after having install with "gem install postrunner",

the execution gives errors :

postrunner import ../Downloads/4271750461.fit 
Traceback (most recent call last):
        26: from /usr/local/bin/postrunner:23:in `<main>'
        25: from /usr/local/bin/postrunner:23:in `load'
        24: from /var/lib/gems/2.5.0/gems/postrunner-0.12.0/bin/postrunner:4:in `<top (required)>'
        23: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        22: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        21: from /var/lib/gems/2.5.0/gems/postrunner-0.12.0/lib/postrunner.rb:20:in `<top (required)>'
        20: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        19: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        18: from /var/lib/gems/2.5.0/gems/postrunner-0.12.0/lib/postrunner/Main.rb:14:in `<top (required)>'
        17: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        16: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        15: from /var/lib/gems/2.5.0/gems/fit4ruby-3.3.0/lib/fit4ruby.rb:13:in `<top (required)>'
        14: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        13: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        12: from /var/lib/gems/2.5.0/gems/fit4ruby-3.3.0/lib/fit4ruby/FitFile.rb:18:in `<top (required)>'
        11: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        10: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
         9: from /var/lib/gems/2.5.0/gems/fit4ruby-3.3.0/lib/fit4ruby/FitFileEntity.rb:13:in `<top (required)>'
         8: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
         7: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
         6: from /var/lib/gems/2.5.0/gems/fit4ruby-3.3.0/lib/fit4ruby/Activity.rb:13:in `<top (required)>'
         5: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
         4: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
         3: from /var/lib/gems/2.5.0/gems/fit4ruby-3.3.0/lib/fit4ruby/FitDataRecord.rb:14:in `<top (required)>'
         2: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
         1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require': cannot load such file -- fit4ruby/GlobalFitMessages.rb (LoadError)

but gem listgives :

bigdecimal (default: 1.3.4)
bindata (2.3.0)
cmath (default: 1.0.0)
csv (default: 1.0.0)
date (default: 1.0.0)
dbm (default: 1.0.0)
did_you_mean (1.2.0)
etc (default: 1.0.0)
fcntl (default: 1.0.0)
fiddle (default: 1.0.0)
fileutils (default: 1.0.2)
fit4ruby (3.3.0)
gdbm (default: 2.0.0)
io-console (default: 0.4.6)
ipaddr (default: 1.2.0)
json (default: 2.1.0)
mini_portile2 (2.4.0)
minitest (5.10.3)
net-telnet (0.1.1)
nokogiri (1.10.5)
openssl (default: 2.1.1)
perobs (4.1.0)
postrunner (0.12.0)
power_assert (0.2.7)
psych (default: 3.0.2)
rake (12.3.1)
rdoc (default: 6.0.1)
scanf (default: 1.0.0)
sdbm (default: 1.0.0)
stringio (default: 0.0.1)
strscan (default: 1.0.0)
test-unit (3.2.5)
webrick (default: 1.4.2)
zlib (default: 1.0.0)

I did a "gem update" and it's broken

When I import, I got an error:
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in require': cannot load such file -- perobs/Store (LoadError) from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in rescue in require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in require' from /var/lib/gems/2.3.0/gems/perobs-4.0.0/lib/perobs.rb:29:in <top (required)>'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in require' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in rescue in require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in require' from /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner/Main.rb:15:in <top (required)>'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /var/lib/gems/2.3.0/gems/postrunner-0.9.0/lib/postrunner.rb:20:in <top (required)>' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' from /var/lib/gems/2.3.0/gems/postrunner-0.9.0/bin/postrunner:4:in <top (required)>'
from /usr/local/bin/postrunner:22:in load' from /usr/local/bin/postrunner:22:in

'
Here is my gems installed:

sudo gem list

*** LOCAL GEMS ***

bigdecimal (1.3.2, 1.2.8)
bindata (2.4.1, 2.3.0)
did_you_mean (1.0.0)
fit4ruby (1.7.0)
io-console (0.4.6, 0.4.5)
json (2.1.0, 1.8.3)
mini_portile2 (2.3.0, 2.2.0)
minitest (5.10.3)
net-telnet (0.1.1)
nokogiri (1.8.1, 1.8.0)
perobs (4.0.0)
postrunner (0.9.0)
power_assert (1.1.1, 1.1.0, 0.2.7)
psych (2.2.4, 2.1.0)
rake (12.3.0, 12.0.0)
rdoc (5.1.0, 4.2.1)
test-unit (3.2.6, 3.2.5)

Should I go back to earlier version?
Thanks

cycling activity with a new device (edge 530)

I tried to import a cycling activity with a new device. There are a lot of warning. But it finally failed with:
ERROR: undefined method max_hr' for #Fit4Ruby::UserProfile:0x000055aa026075c8`

I can send you the original fit file if you want. Or provide more/other details.

Thanks and tell me if I can do anything,
David

upgrade of the PEROBS database is not supported

I have a postrunner installation with a database last access in 2019 (when I bought my Forerunner 945).
As it did not support a USB FAT file system I used non-free software to access its data.
I tried to import today an activity after having installed on my debian buster sudo apt install go-mtp mtp-tools jmtpfs.
Added /etc/udev/rules.d/51-garmin.rules with a line
ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="666"
After un-and replugging my forerunner 945 I was able to access the data.
sudo mtp-detect showed the device and jmtpfs /tmp/forerunner mounted it via fuse.
Then I removed the pinning of the bundler gem in postrunner.gemspec and ran successfully bundle install.
However running bundle exec ruby bin/postrunner import /tmp/forerunner/Primary/GARMIN/Activity/
failed and gave the following output

/mnt/librem/src/postrunner/vendor/ruby/2.5.0/gems/perobs-4.2.0/lib/perobs/Log.rb:107:in `fatal'
/mnt/librem/src/postrunner/vendor/ruby/2.5.0/gems/perobs-4.2.0/lib/perobs/FlatFileDB.rb:249:in `check_version_and_upgrade'
/mnt/librem/src/postrunner/vendor/ruby/2.5.0/gems/perobs-4.2.0/lib/perobs/FlatFileDB.rb:65:in `initialize'
/mnt/librem/src/postrunner/vendor/ruby/2.5.0/gems/perobs-4.2.0/lib/perobs/Store.rb:154:in `new'
/mnt/librem/src/postrunner/vendor/ruby/2.5.0/gems/perobs-4.2.0/lib/perobs/Store.rb:154:in `initialize'
/mnt/librem/src/postrunner/lib/postrunner/Main.rb:59:in `new'
/mnt/librem/src/postrunner/lib/postrunner/Main.rb:59:in `main'
/mnt/librem/src/postrunner/lib/postrunner.rb:24:in `<module:PostRunner>'
/mnt/librem/src/postrunner/lib/postrunner.rb:22:in `<top (required)>'
bin/postrunner:4:in `require'
bin/postrunner:4:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 1.0.3!```

Can you give me a hint on howto resolve this problem. Moving the old directory out of the way resolved the problem! But I would like to preserve the old data. And other people might run into this problem, too.

Map not included in browser view

First of all, thank you for postrunner!

Unfortunately, I can't see the map in the browser. Am I doing something wrong?

$ gem install --user-install postrunner
Fetching postrunner-1.0.5.gem
Successfully installed postrunner-1.0.5
Parsing documentation for postrunner-1.0.5
Installing ri documentation for postrunner-1.0.5
Done installing documentation for postrunner after 1 seconds
1 gem installed
$ postrunner import /mnt/GARMIN/GARMIN/ACTIVITY/
...
$ postrunner show

Screenshot from 2022-04-05 10-34-13

Thanks!

Exceptions coming from perobs

Hello I am having troubles with postrunner and/or perobs. I started having issues several weeks ago when I went from Fedora 35 to 36.
Maybe I should have created this in the perobs repo, but since it stemming from postrunner, I put it here.

My ruby version: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

postrunner --verbose update-gps                                                                                                                                      Ne 28. srpna 2022, 09:59:06
<internal:gc>:34: warning: Exception in finalizer #<Proc:0x00007f69bcea6410 /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174>
/home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:556:in `_collect': undefined method `[]' for nil:NilClass (NoMethodError)

      if @in_memory_objects[id] == ruby_object_id
                           ^^^^
        from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174:in `block in _finalize'
        from <internal:gc>:34:in `start'
        from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:234:in `exit'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner/Main.rb:98:in `main'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:24:in `<module:PostRunner>'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:22:in `<top (required)>'
        from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/bin/postrunner:4:in `<top (required)>'
        from /home/dupe/bin/postrunner:25:in `load'
        from /home/dupe/bin/postrunner:25:in `<main>'
<internal:gc>:34: warning: Exception in finalizer #<Proc:0x00007f69bcea5470 /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174>
/home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:556:in `_collect': undefined method `[]' for nil:NilClass (NoMethodError)

      if @in_memory_objects[id] == ruby_object_id
                           ^^^^
        from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/ObjectBase.rb:174:in `block in _finalize'
        from <internal:gc>:34:in `start'
        from /home/dupe/.gem/ruby/gems/perobs-4.3.0/lib/perobs/Store.rb:234:in `exit'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner/Main.rb:98:in `main'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:24:in `<module:PostRunner>'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/lib/postrunner.rb:22:in `<top (required)>'
        from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /home/dupe/.gem/ruby/gems/postrunner-1.1.0/bin/postrunner:4:in `<top (required)>'
        from /home/dupe/bin/postrunner:25:in `load'
        from /home/dupe/bin/postrunner:25:in `<main>'

I had the same issue with perobs 4.2.0. And doing clean install of everything did not help me out.

I tried to wrap around the problematic lines of code with some checks for nulls and empty lists/vars. However, seeing ruby for the first time, my efforts were rather futile.

Could you give me a hint where to look or what a possible solution?

perobs version update

I'm using postrunner 0.10.1 and want to update to the latest. But when I install it, it install the latest version of perobs and there is an error because of my data in v0.10.1.
What is the solution of this?

Thanks for your help

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.