public static List <Step> RecognizeSteps(List <WalkDataRecord> wdrs) { List <List <WalkDataRecord> > allSteps = new List <List <WalkDataRecord> >(); WalkDataRecord startWDR = wdrs.First(); List <WalkDataRecord> oneStep = new List <WalkDataRecord>(); List <Step> allMySteps = new List <Step>(); int numberOfRecordsInStep = 0; int currentRecord = 0; int startStepRecord = 0; int totalSteps = 0; foreach (WalkDataRecord wdr in wdrs) { if (wdr != wdrs.First()) { if ( //wdr.AxisData[0].CheckRange(startWDR.AxisData[0] * minDivergent, startWDR.AxisData[0] * maxDivergent) && wdr.AxisData[1].CheckRange(startWDR.AxisData[1] * minDivergent, startWDR.AxisData[1] * maxDivergent) //&& //wdr.AxisData[2].CheckRange(startWDR.AxisData[2] * minDivergent, startWDR.AxisData[2] * maxDivergent) ) { // Step complete Step stepToAdd = new Step(oneStep); totalSteps++; Console.WriteLine("==================== STEP COMPLETED ===================="); Console.WriteLine("Total steps " + totalSteps); Console.WriteLine("Start of step record " + startStepRecord); Console.WriteLine("End of step record " + currentRecord); Console.WriteLine("Number of records in this step " + (numberOfRecordsInStep + 1)); allSteps.Add(oneStep); oneStep = new List <WalkDataRecord>(); startStepRecord = currentRecord; numberOfRecordsInStep = 0; Console.WriteLine("==================== CONTINUE ====================\n"); } else { //Console.WriteLine("Incomplete"); numberOfRecordsInStep++; oneStep.Add(wdr); } } currentRecord++; } return(allMySteps); }
private static List <WalkDataRecord> GetWalkDataRecords() { var csv = new List <WalkDataRecord>(); var lines = File.ReadAllLines(@"Data/datasetSubsetStap.csv"); foreach (string line in lines) { if (line != lines.First()) { WalkDataRecord wdr = new WalkDataRecord(); string[] temp = line.Split(';'); wdr.Moment = 0; // Convert.ToSingle(float.Parse(temp[0])); //Convert.ToDateTime(temp[0]); wdr.AxisData = new float[] { float.Parse(temp[1]), float.Parse(temp[2]), float.Parse(temp[3]) }; csv.Add(wdr); // Console.WriteLine("DateTime = " + wdr.Moment.ToString() + " // Axis = " + wdr.AxisData[0] + ", " + wdr.AxisData[1] + ", " + wdr.AxisData[2]); } } return(csv); }