Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Garmin Xero C1 Pro chrono
#81
In statistics, where I know about enough to be dangerous, there are 2 SD's. One is an SD for large populations, and one is for a sample of a population, sometimes (IIRC) called student's SD. I think the one using (n-1) is the sample population SD. I think Excel has some help on it, for a commonly available reference.
For our purposes, the sample SD, or student's sd (IIRC) is the better one to use since all of our shot groups are relatively small. We're not dealing with 1000's of events...

(This is one thing I learned that was not in kindergarten, to mock an old book/saying - lol!)
"Down the floor, out the door, Go Brandon Go!!!!!"
Reply
#82
Awesome! The time bug isnt mine!

The time-stamps from the file are actually saying 2004. If its being off-set in software, i suppose that is easy enough....

I included BOTH calculated SD because it drives me crazy thinking my math wasnt right because it wasnt matching what the device says.

*edit*

and now hosting on github

https://github.com/dkpp123/Xero-C1-Pro-F...20to%20TXT


*edit edit*

Fixed date bug - Needed to add 20 years and 4 days (in seconds) to the unix time value (which is in UTC by the way) The script puts it in your local time zone ;-)
thanks a lot garmin.. you saving 1 digit for what? better be good.

Code:
# # Notes: Requires Java # # Copy entire folder from google drive # https://drive.google.com/drive/folders/1fb_MCyteiMZrcL-gj7DJXlCn-Y_LsGkO?usp=drive_link # Connect Garmin Xero C1 Pro to Computer # Run the script (right click + run with powershell) # Navigate to the .FIT files on the device in the pop up and select them, press "Open" button # Name the sessions when prompted in terminal window. Spaces are OK, dont include .txt # # # # Created by ZenEffect cls Add-Type -AssemblyName System.Windows.Forms #ripped this part off of a google search. It creates function for the pop up window to select files function Select-File { [CmdletBinding()] param( [Parameter(ParameterSetName="Single")] [Parameter(ParameterSetName="Multi")] [Parameter(ParameterSetName="Save")] [string]$StartingFolder = [environment]::getfolderpath("mydocuments"), [Parameter(ParameterSetName="Single")] [Parameter(ParameterSetName="Multi")] [Parameter(ParameterSetName="Save")] [string]$NameFilter = "All Files (*.*)|*.*", [Parameter(ParameterSetName="Single")] [Parameter(ParameterSetName="Multi")] [Parameter(ParameterSetName="Save")] [switch]$AllowAnyExtension, [Parameter(Mandatory=$true,ParameterSetName="Save")] [switch]$Save, [Parameter(Mandatory=$true,ParameterSetName="Multi")] [Alias("Multi")] [switch]$AllowMulti ) if ($Save) { $Dialog = New-Object -TypeName System.Windows.Forms.SaveFileDialog } else { $Dialog = New-Object -TypeName System.Windows.Forms.OpenFileDialog if ($AllowMulti) { $Dialog.Multiselect = $true } } if ($AllowAnyExtension) { $NameFilter = $NameFilter + "|All Files (*.*)|*.*" } $Dialog.Filter = $NameFilter $Dialog.InitialDirectory = $StartingFolder [void]($Dialog.ShowDialog()) $Dialog.FileNames } # .FIT file to .CSV - Copies to a "fit_temp" folder first for processing. Does not interact with device except to copy the files to computer first. $fit = (Select-File -StartingFolder "C:\" -NameFilter "Garmin FIT Files (*.fit)|*.fit" -AllowMulti) copy $fit .\fit_Temp $fit_temp = get-childitem -Path .\fit_temp | select-object fullname foreach ($fitfile in $fit_temp) { $fit3 = $fitfile.fullname $fit2 = "`"$fit3`"" # sends the selected files to the bat file that came with the Garmin SDK. Only modification to the .BAT was to remove the "Pause" at the end. FIT files # are processed into CSV by some Garmin SDK Java magic. start-process -filepath '.\java\fittocsv.bat' -argumentlist $fit2 -wait } # gets list of newly created .csv from fit_temp directory for processing $items = get-childitem -Path .\fit_temp\*.csv | select fullname foreach ($item in $items) { # Gets shot data and calculates standard deviation $csv1 = $item.fullname | import-csv $csv_data = $csv1 | where 'type' -eq 'data' | where 'local number' -eq 4 $measured = $csv_data.'value 2' | measure-object -average $newNumbers = 0 ForEach ($number in $csv_data) { $newNumbers += [Math]::Pow(($number.'value 2' - $measured.Average), 2) } $stdDev = [math]::Sqrt($($newNumbers / ($measured.Count - 1))) $stdDevp = [math]::Sqrt($($newNumbers / ($measured.Count))) $stddev_fps=$stddev / 304.79999025 $stddevp_fps=$stddevp / 304.79999025 # Begin CSV to TXT file processing foreach ($csv in $csv1) { $time = (([System.DateTimeOffset]::FromUnixTimeSeconds($time_hack)).DateTime.ToLocalTime()).ToString("s") $type = $csv.type $localnumber = $csv."local number" if ($type -eq "Data" -and $localnumber -eq "3") { $min = ($csv."Value 2" / 304.79999025) $max = ($csv."Value 3" / 304.79999025) $average = ($csv."Value 4" / 304.79999025) $shots = $csv."Value 6" $time_hack=([int]$csv."Value 1" + [int]631065600) $time = (([System.DateTimeOffset]::FromUnixTimeSeconds($time_hack)).DateTime.ToLocalTime()).ToString("s") $extreme_spread= ($max - $min) Write-host "Session Time/Date:" $time Write-host "# of Shots:", $shots Write-host " " Write-host "Min:", $min Write-host "Max:", $max Write-host "Average:", $average Write-host " " write-host "Standard Deviation:", $stddev_fps write-host "Population Standard Deviation:", $stddevp_fps Write-host "Extreme Spread:", $extreme_spread write-host " " write-host " " $Session_name = Read-Host -Prompt "Enter Session Name" Write-output "Session Time/Date: $time" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Session Name: $session_name" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "# of Shots: $shots" | out-file -filepath .\Results\$Session_name.txt -Append Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Min: $min" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Max: $max" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Average: $average" | out-file -filepath .\Results\$Session_name.txt -Append Write-Output "Standard Deviation: $stddev_fps" | out-file -filepath .\Results\$Session_name.txt -Append Write-Output "Population Standard Deviation: $stddevp_fps" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Extreme Spread: $extreme_spread" | out-file -filepath .\Results\$Session_name.txt -Append Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append $newNumbers = 0 cls } if ($type -eq "Data" -and $localnumber -eq "4") { $shot_num = $csv.'Value 3' $speed = ($csv.'Value 2' / 304.79999025) $time_hack1=([int]$csv."value 1" + [int]631065600) $time1 = (([System.DateTimeOffset]::FromUnixTimeSeconds($time_hack1)).DateTime.ToLocalTime()).ToString("s") Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Shot #: $shot_num" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Speed: $speed" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Time of Shot: $time1" | out-file -filepath .\Results\$Session_name.txt -Append Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append } } } # cleanup actions move-item -path .\fit_temp\*.csv -destination .\results\ move-item .\fit_temp\*.fit -destination .\fit_backup


Session Time/Date: 2024-01-15T11:13:36
Session Name: 23.6gr 8208XBR Nosler RDF 77gr 2.26
# of Shots: 5

Min: 2627.82816804897
Max: 2678.33341900837
Average: 2650.3905047287
Standard Deviation: 18.7458957133989
Population Standard Deviation: 16.7668388457128
Extreme Spread: 50.5052509594034


Shot #: 1
Speed: 2653.21202712867
Time of Shot: 2024-01-15T11:16:12


Shot #: 2
Speed: 2678.33341900837
Time of Shot: 2024-01-15T11:16:22


Shot #: 3
Speed: 2652.38197460868
Time of Shot: 2024-01-15T11:16:29


Shot #: 4
Speed: 2627.82816804897
Time of Shot: 2024-01-15T11:16:39


Shot #: 5
Speed: 2640.20021568882
Time of Shot: 2024-01-15T11:16:48
Reply
#83
My program got real close to your amounts for each SD Zen.

Quote:Standard Deviation (SD)
= sqrt(1/(N-1) * ((X1-M)^2 + (X2-M)^2 + .... +(XN-M)^2))
= sqrt(1/(5-1) * ((2653.21-2650.388)^2 + (2678.33-2650.388)^2 + (2652.38-2650.388)^2 + (2627.82-2650.388)^2 + (2640.20-2650.388)^2))
= sqrt(1/4 * ((2.82181640625004)^2 + (27.9418164062499)^2 + (1.99181640625011)^2 + (-22.5681835937498)^2 + (-10.1881835937502)^2))
= sqrt(351.4493)
= 18.74698


Quote:Population Standard Deviation (SD)
= sqrt(1/(N) * ((X1-M)^2 + (X2-M)^2 + .... +(XN-M)^2))
= sqrt(1/5 * ((2653.21-2650.388)^2 + (2678.33-2650.388)^2 + (2652.38-2650.388)^2 + (2627.82-2650.388)^2 + (2640.20-2650.388)^2))
= sqrt(1/5 * ((2.82181640625004)^2 + (27.9418164062499)^2 + (1.99181640625011)^2 + (-22.5681835937498)^2 + (-10.1881835937502)^2))
= sqrt(281.1594)
= 16.76781
Reply
#84
Yea, results match garmin now for PSD so I'm confident with the math

Code:
$csv_data = $csv1 | where 'type' -eq 'data' | where 'local number' -eq 4 $measured = $csv_data.'value 2' | measure-object -average $newNumbers = 0 ForEach ($number in $csv_data) { $newNumbers += [Math]::Pow(($number.'value 2' - $measured.Average), 2) } $stdDev = [math]::Sqrt($($newNumbers / ($measured.Count - 1))) $stdDevp = [math]::Sqrt($($newNumbers / ($measured.Count))) $stddev_fps=$stddev / 304.79999025 $stddevp_fps=$stddevp / 304.79999025

Will work on 2nd csv output that is converted to feet per second, time corrected, and cleaned up. I got to playing with putting all the info into an array but then exporting the array as csv is giving me issues. I think I'm going to work around rather than solve the issue. Will manually make a csv, import it, export it so it has appropriate headers and see how that goes. Expect an update to the script later today.
Reply
#85
Hey if you want someone to write a user's guide for all this, I can help out. I'm a technical writer by trade. 20+ years in the software development world.
Reply
#86
Code:
?# # Notes: Requires Java # # Copy entire folder from google drive # https://drive.google.com/drive/folders/1fb_MCyteiMZrcL-gj7DJXlCn-Y_LsGkO?usp=drive_link # Connect Garmin Xero C1 Pro to Computer # Run the script (right click + run with powershell) # Navigate to the .FIT files on the device in the pop up and select them, press "Open" button # Name the sessions when prompted in terminal window. Spaces are OK, dont include .txt # # # # Created by ZenEffect cls Add-Type -AssemblyName System.Windows.Forms #ripped this part off of a google search. It creates function for the pop up window to select files function Select-File { [CmdletBinding()] param( [Parameter(ParameterSetName="Single")] [Parameter(ParameterSetName="Multi")] [Parameter(ParameterSetName="Save")] [string]$StartingFolder = [environment]::getfolderpath("mydocuments"), [Parameter(ParameterSetName="Single")] [Parameter(ParameterSetName="Multi")] [Parameter(ParameterSetName="Save")] [string]$NameFilter = "All Files (*.*)|*.*", [Parameter(ParameterSetName="Single")] [Parameter(ParameterSetName="Multi")] [Parameter(ParameterSetName="Save")] [switch]$AllowAnyExtension, [Parameter(Mandatory=$true,ParameterSetName="Save")] [switch]$Save, [Parameter(Mandatory=$true,ParameterSetName="Multi")] [Alias("Multi")] [switch]$AllowMulti ) if ($Save) { $Dialog = New-Object -TypeName System.Windows.Forms.SaveFileDialog } else { $Dialog = New-Object -TypeName System.Windows.Forms.OpenFileDialog if ($AllowMulti) { $Dialog.Multiselect = $true } } if ($AllowAnyExtension) { $NameFilter = $NameFilter + "|All Files (*.*)|*.*" } $Dialog.Filter = $NameFilter $Dialog.InitialDirectory = $StartingFolder [void]($Dialog.ShowDialog()) $Dialog.FileNames } # .FIT file to .CSV - Copies to a "fit_temp" folder first for processing. Does not interact with device except to copy the files to computer first. $fit = (Select-File -StartingFolder "C:\" -NameFilter "Garmin FIT Files (*.fit)|*.fit" -AllowMulti) copy $fit .\fit_Temp $fit_temp = get-childitem -Path .\fit_temp | select-object fullname foreach ($fitfile in $fit_temp) { $fit3 = $fitfile.fullname $fit2 = "`"$fit3`"" # sends the selected files to the bat file that came with the Garmin SDK. Only modification to the .BAT was to remove the "Pause" at the end. FIT files # are processed into CSV by some Garmin SDK Java magic. start-process -filepath '.\java\fittocsv.bat' -argumentlist $fit2 -wait } # gets list of newly created .csv from fit_temp directory for processing $items = get-childitem -Path .\fit_temp\*.csv | select fullname foreach ($item in $items) { # Gets shot data and calculates standard deviation $csv1 = $item.fullname | import-csv $csv_data = $csv1 | where 'type' -eq 'data' | where 'local number' -eq 4 $measured = $csv_data.'value 2' | measure-object -average $newNumbers = 0 ForEach ($number in $csv_data) { $newNumbers += [Math]::Pow(($number.'value 2' - $measured.Average), 2) } $stdDev = [math]::Sqrt($($newNumbers / ($measured.Count - 1))) $stdDevp = [math]::Sqrt($($newNumbers / ($measured.Count))) $stddev_fps=$stddev / 304.79999025 $stddevp_fps=$stddevp / 304.79999025 # Begin CSV to TXT file processing foreach ($csv in $csv1) { $type = $csv.type $localnumber = $csv."local number" if ($type -eq "Data" -and $localnumber -eq "3") { $min = ($csv."Value 2" / 304.79999025) $max = ($csv."Value 3" / 304.79999025) $average = ($csv."Value 4" / 304.79999025) $shots = $csv."Value 6" $time_hack=([int]$csv."Value 1" + [int]631065600) $time = (([System.DateTimeOffset]::FromUnixTimeSeconds($time_hack)).DateTime.ToLocalTime()).ToString("s") $extreme_spread= ($max - $min) Write-host "Session Time/Date:" $time Write-host "# of Shots:", $shots Write-host " " Write-host "Min:", $min Write-host "Max:", $max Write-host "Average:", $average Write-host " " write-host "Standard Deviation:", $stddev_fps write-host "Population Standard Deviation:", $stddevp_fps Write-host "Extreme Spread:", $extreme_spread write-host " " write-host " " $Session_name = Read-Host -Prompt "Enter Session Name" Write-output "Session Time/Date: $time" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Session Name: $session_name" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "# of Shots: $shots" | out-file -filepath .\Results\$Session_name.txt -Append Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Min: $min" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Max: $max" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Average: $average" | out-file -filepath .\Results\$Session_name.txt -Append Write-Output "Standard Deviation: $stddev_fps" | out-file -filepath .\Results\$Session_name.txt -Append Write-Output "Population Standard Deviation: $stddevp_fps" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Extreme Spread: $extreme_spread" | out-file -filepath .\Results\$Session_name.txt -Append Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append Write-Output "Session_Time,Session_Name,Count,Min,Max,Average,SD,PSD,ES,Shot_Num,Shot_Time,Velocity" | out-file -filepath .\Results\$Session_name.csx -Append Write-Output "$time , $session_name , $shots , $min , $max , $average , $stddev_fps , $stddevp_fps , $extreme_spread" | out-file -filepath .\Results\$Session_name.csx -Append $newNumbers = 0 cls } if ($type -eq "Data" -and $localnumber -eq "4") { $shot_num = $csv.'Value 3' $speed = ($csv.'Value 2' / 304.79999025) $time_hack1=([int]$csv."value 1" + [int]631065600) $time1 = (([System.DateTimeOffset]::FromUnixTimeSeconds($time_hack1)).DateTime.ToLocalTime()).ToString("s") Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Shot #: $shot_num" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Speed: $speed" | out-file -filepath .\Results\$Session_name.txt -Append Write-output "Time of Shot: $time1" | out-file -filepath .\Results\$Session_name.txt -Append Write-output " " | out-file -filepath .\Results\$Session_name.txt -Append Write-Output ",,,,,,,,,$shot_num,$time1,$speed" | out-file -filepath .\Results\$Session_name.csx -Append } } $csvprocessing = import-csv .\results\$session_name.csx $csvprocessing | export-csv .\results\$session_name.csv -NoTypeInformation remove-item .\results\$session_name.csx } # cleanup actions move-item -path .\fit_temp\*.csv -destination .\results\ move-item .\fit_temp\*.fit -destination .\fit_backup

cleaned up CSV output is added, with actual CSV headers! It will be the same as your session name. what a cheap ass hack i thought of before goign to sleep. google drive repository is updated, updating github now.

I need to add a couple of safety features incase of bad or empty input but this is pretty much complete now.
Reply
#87
SDW Wrote:Hey if you want someone to write a user's guide for all this, I can help out. I'm a technical writer by trade. 20+ years in the software development world.

I do, and once written maybe we should make a separate post and a mod can sticky it since the discussion, development, etc are exclusive to this forum.

How to use:

Prep Work:

Download the entire folder from google drive or github (when selecting "download" it will make a zip file for you and download that)
https://drive.google.com/drive/folders/1...drive_link
https://github.com/dkpp123/Xero-C1-Pro-F.../tree/main

Extract the zip file anywhere on the PC
Go to the stuff you just unzipped, there is a "Garmin_CSV_Converter_v2.51.ps1" file there. Double click it, it should open in notepad
After the first # on first line, type something, anything you want. dog, cat, cheese then save. This makes YOU the script owner and you wont get prompted for execution level blah blah in powershell

Usage:
Right Click the "Garmin_CSV_Converter_v2.51.ps1" file then select "Run with Powershell" in the context menu
Select the .FIT files on the Garmin Xero C1 that you wish to export/convert (you can select multiple files and it works) then press the Open button
When prompted, enter a session name for the currently displayed session. spaces are ok, do not add a .txt or .csv to the end, it does that automatically.

Thats it, you are done

Results are found in the "Results" folder

I made a quick video. it should be easy enough to use for anyone as its minimal user interaction. its also worth mentioning you dont need to do notepad every time, just once is enough.


https://youtu.be/G68mfjltw38?feature=shared

huh... just noticed in the output.. if you delete a shot on the device, you can detect it in the txt and csv as the shot number is the shot number, not the order of which it appears in the file. If you do 5 shots and delete shot #3 you will get shot #s listed as 1,2,4,5. the count is correct for the total shots displayed/calculated and will show 4. everything is fine, this is a feature not a bug.
Reply
#88
Nice!

Edit...

What should the title of the instructions be? Should capture in a nutshell what the user hopes to accomplish at the end. "How to convert Garmin data to CSV data on your PC" or similar?

Maybe an intro ought to be something like "The following procedures show you how to copy ballistic data from your Xero to your PC and convert it to a useable format..." Or similar. I'm still trying to grasp the big picture, actually.

The rest of my questions, I'll PM you, @Zeneffect. No sense in cluttering up this thread with back and forth discussion on how to document the process. Smile
Reply
#89
thats it in a nutshell. its a script/utility that allows one to batch process the session data into 3x forms of usable data, directly from the garmin device when plugged into a PC.

I could write an installer (not really installer, self extracting exe that places things where in static locations so i can hard-code a shortcut) and make a shortcut. Instructions would be "double click this", then its installed. double click the shortcut and its running... select your files off the garmin and name the sessions when prompted. view results.
Reply
#90
I ran into this just now while trying to run the script on my Lenovo LT, using PowerShell ISE. It's Windows 10 if that makes a difference (probably not). Apparently, running of scripts is disabled on my machine. I have not googled it yet. Do you think it will be a common issue with Windows users?

[ATTACH=CONFIG]20204[/ATTACH]

Edit: Found this....

https://www.sharepointdiary.com/2014/03/...m.html#:~:

Apparently PowerShell won't run scripts from untrusted sources. (This script says Publisher: UNKNOWN.) I'm still reading the explanation of how to get around it.


Attached Files
.jpg   Scriptsdontrun.jpg (Size: 322 KB / Downloads: 6)
Reply
#91
Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Then run script again. End user issues running a powershell script is sort of expected. Can't predict everyone's setup however I used only the most basic of powershell functions so there shouldn't be compatibility issues.
Reply
#92
Thanks. That's the next one to try. I just tried setting it to RemoteSigned, but that didn't work either. Different error message. I though it would because the script is local. But no.

For the sake of the procedures I should add this info under preliminary steps/setup.

Should we advise users to set the execution policy to back to restricted when finished with a conversion session?

BTW, did you mention this earlier in the thread? If so, I'm sorry, I missed it.
Reply
#93
I didn't mention earlier, it's par for the course with powershell scripts.

I suppose it should be in notes somewhere but the way I see it is, it sets a bar of competency and lowers the amount of questions and repetitive troubleshooting on my end.

I can also sign the script bit we would still need to fiddle with the executionpolicy anyways so I don't see the point. It's all plain text, no secrets or voodoo.

If you want to setup a zoom call or something, I'm available in about 30 min. Just pm me and I can send a link + step through the code with you.
Reply
#94
This is a little new to me. I've run scripts and batch files, and Bash shell scripts back in the day. But not PowerShell on my own machine, as opposed to a work machine. This is more my wife's wheelhouse. She's a senior SW quality engineer at her company.

Problem with setting the bar for competency is that most people don't know how incompetent they are. LOL They will follow your basic instructions, hit a wall like I did, and then bug you about it. This is where I'd come in. I've written lots of reqs, test procedures, API documentation, and user guides. With writing guides, one of the cardinal rules is, do it well enough that the user doesn't need to reach out to customer service for help in how to use the SW. AKA keep the phones from ringing, so to speak.

I think the instructions might warrant some kind of brief heads up about execution policies. Maybe reference a short appendix of some sort. But it's your call. I'm sure you don't want to make this into a huge deal. With legal disclaimers and yadda yadda LOL Actually, "Use at your own risk" might not be a terrible idea. CMA

We could do a zoom call at some point. It'd be a good idea. I did start a Word doc to cover this stuff. Mostly for fun, just because I like doing it. Probably the same reason you developed this script package.
Reply
#95
updated the readme in github. Well, does it work for you? LMK if you need a couple of .fit files to play with.
Reply
#96
If it has an .exe extension, or other executable extension, you should be able to right click on the file in file explorer, and get the properties window to come up. Down toward the bottom is a place where you can "unblock" the file. Hit apply, then close, and try to run it then. This is a common thing for most Windows nowadays to set any executable to block from running. I don't know if power shell falls into this category but if nothing else works, it is worth a try.
"Down the floor, out the door, Go Brandon Go!!!!!"
Reply
#97
Zeneffect Wrote:updated the readme in github. Well, does it work for you? LMK if you need a couple of .fit files to play with.
Thanks. I'll check it out.

And yes, I could use a couple of .fit files. my Xero's Results folder is empty and I don't have a nerf gun to generate shots.
Reply
#98
A rubber band is more reliable than a nerf gun with this chrono.

It was raining, I had a new toy, what else was I gonna do?

PM sent with link.

I dont like the idea of an exe for homebrew stuff as the code isnt exposed and easily modifiable, and you arent exactly sure what its doing. With a powershell script you can change it with just notepad, nothing is packaged up or encrypted, its wide open for all to see exactly what its doing and how. by being 100% transparent it should be more trustworthy as it can be peer reviewed at any time.

Want to change the measurement value? Notepad, find + replace 304.79999025 with whatever new value, save, and you are done.

BUT since an EXE IS much easier to use... I just converted it to an exe. uploading to google drive now.
Reply
#99
ok NOW its just an application that still needs the directory structure behind it.

download folder, run the exe. I realized i created folders, but when it downloads since they are empty they werent included. I added stub.txt files to ensure the folders stick.

exe works as tested from a fresh download.

https://drive.google.com/drive/folders/1...Cn-Y_LsGkO

updated usage video

https://youtu.be/G68mfjltw38?feature=shared
Reply
and i updated again. included delta from average and delta from last shot information. I need to add a prompt for bullet weight in grains to do a calculation for energy... then i will have all the features i want.

*edit*

reviewing the data.. i got my delta math bakkards. crap... fixing.

and fixed.

*edit edit*

bullet weight is entered with a decimal point yea? I think i see the field so i can extract and do an energy calculation, and list bullet weight from the session data. going to have every feature from the app.

once im satisfied with the output and features, ill move onto building in failsafe to prevent user induced failure (you didnt name your session, or you failed to select files!)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)