.. add a new method to fetch a data.frame of PMC data
for the passed metric, by default it returns for the
selected date range, all=TRUE will fetch all dates.
.. GC.activity(compare=TRUE) will return a list of compares
.. If you are not in compare mode it will be 1 element long
and represent the currently selected ride
.. otherwise it will have one entry for each activity dropped
into the compare pane
.. each element has a $activity and a $color
Example:
df <- GC.activity()
.. do plot ..
Now:
compares <- GC.activity(compare=TRUE)
for (compare in compares) {
df <- compare$activity
col <- compare$color
.. do plot ...
}
.. you can pass all=TRUE|FALSE to GC.metrics if you want to
override the date range selection
.. also added connect to daterange select so a trend chart
will refresh when you select a date range
.. set a script to run when an activity is selected
.. this allows a plot to be generated and displayed when
you select a ride in analysis view
.. the script is stored with the chart settings
.. it now builds and runs on Windows
.. there is a runtime crash when embedded R is initialised
that needs to be reolved
** NOTE **
R is not distributed with a .lib that can be linked to
with the MS VC linker. Instead, we need to generate a
lib and exp file from the dll:
1. dumpbin /exports R.dll > R.def
2. edit the .def output to have EXPORTS at the top and
a list of functions only (last column, delete the rest)
3. lib /machine:x64 /def:R.def
After linking remember to copy the DLLs to the GoldenCheetah
build directory from the $R_HOME/bin/x64/*.dll
.. and a few more tidy ups.
.. never cease to be amazed at how some developers
will feel its OK to define generic symbols like
TRUE and FALSE in their code (!!)
.. R is a mess.
.. mostly startup issues when R_HOME is not known
.. need to think carefully about how we get the user to
register the R home. We could let them select the R
binary so we can run `R RHOME` and apply that (?)
.. we no longer need RInside or Rcpp as we use
100% R API calls to embed
.. the following need to be resolved:
1. R_HOME / Options *must* be set to startup
embedded R but we don't check / restart or
default via system("R HOME")
2. Output is not trapped - all output is sent
directly to the console you started GC on
.. will fixup the 2 above before finally:
3. Build for Windows using MSVC !
.. we can register routines when embedding via the
R_getEmbeddingDLLInfo()
.. so we just register our functions directly now
in RTool rather than needing a dynamic library.
.. its cleaner and there are no nasty casts and build
settings required