xero-c1-cvs-parse
v0.0.1
Published
This library help to parse into structured data CSV file that exported by the Shot View application used for getting data from chronograph Xero C1 Pro.
Readme
Xero C1 CSV Parse
This library help to parse into structured data CSV file that exported by the Shot View application used for getting data from chronograph Xero C1 Pro.
Install
npm install xero-c1-cvs-parseUsage
We must know the locale of the provided file exported from Shot View application. Locale is needed as the session date in the file is in phone locale.
import { Parser } from 'xero-c1-cvs-parse'
const parser = new Parser('us-EN')
const result = await parser.parseFile('exported_file.csv')Result
The result return is ParsingResult type that has information about the session and shots.
interface ParsingResult {
session: Session
shots: Shot[]
}
interface Session {
title: string
date: Date
averageSpeed: number
averagePowerFactor: number
stdDev: number
spread: number
projectileWeight: number
note: string
}
interface Shot {
number: number
speed: number
deltaAvg: number
kineticEnergy: number
powerFactor: number
shotTime: string
cleanBore: boolean | null
coldBore: boolean | null
note: string
}{
"session": {
"title": "Rifle Cartridge 178",
"averageSpeed": 794,
"averagePowerFactor": 9.2,
"stdDev": 2.1,
"spread": 7.1,
"projectileWeight": 178,
"note": "",
"date": "2025-01-18T09:23:00.000Z"
},
"shots": [
{
"number": 1,
"speed": 793.2,
"deltaAvg": -0.8,
"kineticEnergy": 3628.2,
"powerFactor": 9.1,
"shotTime": "11:29:26",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 2,
"speed": 795.3,
"deltaAvg": 1.3,
"kineticEnergy": 3647.3,
"powerFactor": 9.2,
"shotTime": "11:30:02",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 3,
"speed": 794.1,
"deltaAvg": 0.1,
"kineticEnergy": 3636.5,
"powerFactor": 9.2,
"shotTime": "11:30:25",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 4,
"speed": 793,
"deltaAvg": -1,
"kineticEnergy": 3627,
"powerFactor": 9.1,
"shotTime": "11:32:37",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 5,
"speed": 790.5,
"deltaAvg": -3.5,
"kineticEnergy": 3603.5,
"powerFactor": 9.1,
"shotTime": "11:32:58",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 6,
"speed": 793.6,
"deltaAvg": -0.4,
"kineticEnergy": 3632.3,
"powerFactor": 9.2,
"shotTime": "11:33:13",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 7,
"speed": 797.3,
"deltaAvg": 3.3,
"kineticEnergy": 3666.1,
"powerFactor": 9.2,
"shotTime": "11:33:30",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 8,
"speed": 793.8,
"deltaAvg": -0.2,
"kineticEnergy": 3633.6,
"powerFactor": 9.2,
"shotTime": "11:37:54",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 9,
"speed": 794.4,
"deltaAvg": 0.4,
"kineticEnergy": 3639.6,
"powerFactor": 9.2,
"shotTime": "11:43:17",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 10,
"speed": 797.6,
"deltaAvg": 3.6,
"kineticEnergy": 3668.6,
"powerFactor": 9.2,
"shotTime": "11:43:47",
"cleanBore": null,
"coldBore": null,
"note": ""
},
{
"number": 11,
"speed": 791.4,
"deltaAvg": -2.6,
"kineticEnergy": 3611.7,
"powerFactor": 9.1,
"shotTime": "11:44:16",
"cleanBore": null,
"coldBore": null,
"note": ""
}
]
}