Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed MODSERIAL FATFileSystem
Course/Course.cpp@9:d5fcdcb3c89d, 2017-10-20 (annotated)
- Committer:
- mkelly10
- Date:
- Fri Oct 20 11:41:22 2017 +0000
- Revision:
- 9:d5fcdcb3c89d
Tested 10/19/17 Folders
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mkelly10 | 9:d5fcdcb3c89d | 1 | #include "Course.hpp" |
| mkelly10 | 9:d5fcdcb3c89d | 2 | #include "StaticDefs.hpp" |
| mkelly10 | 9:d5fcdcb3c89d | 3 | |
| mkelly10 | 9:d5fcdcb3c89d | 4 | Course::Course() |
| mkelly10 | 9:d5fcdcb3c89d | 5 | { |
| mkelly10 | 9:d5fcdcb3c89d | 6 | counter = 0; |
| mkelly10 | 9:d5fcdcb3c89d | 7 | getFromFile(); |
| mkelly10 | 9:d5fcdcb3c89d | 8 | //eventually want to grab everything from the file |
| mkelly10 | 9:d5fcdcb3c89d | 9 | } |
| mkelly10 | 9:d5fcdcb3c89d | 10 | |
| mkelly10 | 9:d5fcdcb3c89d | 11 | int Course::increment() |
| mkelly10 | 9:d5fcdcb3c89d | 12 | { |
| mkelly10 | 9:d5fcdcb3c89d | 13 | counter++; |
| mkelly10 | 9:d5fcdcb3c89d | 14 | return counter; |
| mkelly10 | 9:d5fcdcb3c89d | 15 | } |
| mkelly10 | 9:d5fcdcb3c89d | 16 | |
| mkelly10 | 9:d5fcdcb3c89d | 17 | int Course::decrement() |
| mkelly10 | 9:d5fcdcb3c89d | 18 | { |
| mkelly10 | 9:d5fcdcb3c89d | 19 | counter--; |
| mkelly10 | 9:d5fcdcb3c89d | 20 | return counter; |
| mkelly10 | 9:d5fcdcb3c89d | 21 | } |
| mkelly10 | 9:d5fcdcb3c89d | 22 | |
| mkelly10 | 9:d5fcdcb3c89d | 23 | int Course::jumpto(int jump) |
| mkelly10 | 9:d5fcdcb3c89d | 24 | { |
| mkelly10 | 9:d5fcdcb3c89d | 25 | if (jump > total_legs) { |
| mkelly10 | 9:d5fcdcb3c89d | 26 | jump = total_legs-1; |
| mkelly10 | 9:d5fcdcb3c89d | 27 | } |
| mkelly10 | 9:d5fcdcb3c89d | 28 | counter = jump; |
| mkelly10 | 9:d5fcdcb3c89d | 29 | return counter; |
| mkelly10 | 9:d5fcdcb3c89d | 30 | } |
| mkelly10 | 9:d5fcdcb3c89d | 31 | |
| mkelly10 | 9:d5fcdcb3c89d | 32 | float Course::readDepth() |
| mkelly10 | 9:d5fcdcb3c89d | 33 | { |
| mkelly10 | 9:d5fcdcb3c89d | 34 | return course[counter].depth; |
| mkelly10 | 9:d5fcdcb3c89d | 35 | } |
| mkelly10 | 9:d5fcdcb3c89d | 36 | |
| mkelly10 | 9:d5fcdcb3c89d | 37 | float Course::readThrottle() |
| mkelly10 | 9:d5fcdcb3c89d | 38 | { |
| mkelly10 | 9:d5fcdcb3c89d | 39 | return course[counter].throttle; |
| mkelly10 | 9:d5fcdcb3c89d | 40 | } |
| mkelly10 | 9:d5fcdcb3c89d | 41 | |
| mkelly10 | 9:d5fcdcb3c89d | 42 | float Course::readHeading() |
| mkelly10 | 9:d5fcdcb3c89d | 43 | { |
| mkelly10 | 9:d5fcdcb3c89d | 44 | return course[counter].heading; |
| mkelly10 | 9:d5fcdcb3c89d | 45 | } |
| mkelly10 | 9:d5fcdcb3c89d | 46 | |
| mkelly10 | 9:d5fcdcb3c89d | 47 | float Course::readTime() |
| mkelly10 | 9:d5fcdcb3c89d | 48 | { |
| mkelly10 | 9:d5fcdcb3c89d | 49 | return course[counter].time; |
| mkelly10 | 9:d5fcdcb3c89d | 50 | } |
| mkelly10 | 9:d5fcdcb3c89d | 51 | |
| mkelly10 | 9:d5fcdcb3c89d | 52 | int Course::readFinal() |
| mkelly10 | 9:d5fcdcb3c89d | 53 | { |
| mkelly10 | 9:d5fcdcb3c89d | 54 | return course[counter].final; |
| mkelly10 | 9:d5fcdcb3c89d | 55 | } |
| mkelly10 | 9:d5fcdcb3c89d | 56 | |
| mkelly10 | 9:d5fcdcb3c89d | 57 | int Course::readTotalLegs() |
| mkelly10 | 9:d5fcdcb3c89d | 58 | { |
| mkelly10 | 9:d5fcdcb3c89d | 59 | return total_legs; |
| mkelly10 | 9:d5fcdcb3c89d | 60 | } |
| mkelly10 | 9:d5fcdcb3c89d | 61 | |
| mkelly10 | 9:d5fcdcb3c89d | 62 | bool Course::getFromFile() |
| mkelly10 | 9:d5fcdcb3c89d | 63 | { |
| mkelly10 | 9:d5fcdcb3c89d | 64 | ;//open file and read the stuff |
| mkelly10 | 9:d5fcdcb3c89d | 65 | FILE *fp = fopen("/local/course.txt", "r"); |
| mkelly10 | 9:d5fcdcb3c89d | 66 | |
| mkelly10 | 9:d5fcdcb3c89d | 67 | char line[MAXLINEWIDTH]; |
| mkelly10 | 9:d5fcdcb3c89d | 68 | |
| mkelly10 | 9:d5fcdcb3c89d | 69 | while ( fgets( line, sizeof line, fp ) != NULL ) { /* read a line */ |
| mkelly10 | 9:d5fcdcb3c89d | 70 | if (( sscanf(line,"%f %f %f %f %i",&course[counter].depth, &course[counter].throttle, &course[counter].heading, &course[counter].time, &course[counter].final)) == 5) { |
| mkelly10 | 9:d5fcdcb3c89d | 71 | counter++; |
| mkelly10 | 9:d5fcdcb3c89d | 72 | } |
| mkelly10 | 9:d5fcdcb3c89d | 73 | } |
| mkelly10 | 9:d5fcdcb3c89d | 74 | total_legs = counter; |
| mkelly10 | 9:d5fcdcb3c89d | 75 | counter--; //rewind 1 click |
| mkelly10 | 9:d5fcdcb3c89d | 76 | fclose(fp); //close the file |
| mkelly10 | 9:d5fcdcb3c89d | 77 | |
| mkelly10 | 9:d5fcdcb3c89d | 78 | if (course[counter].final) { |
| mkelly10 | 9:d5fcdcb3c89d | 79 | counter = 0; //rewind everything |
| mkelly10 | 9:d5fcdcb3c89d | 80 | return true; |
| mkelly10 | 9:d5fcdcb3c89d | 81 | } else { |
| mkelly10 | 9:d5fcdcb3c89d | 82 | // something was fubared along the way |
| mkelly10 | 9:d5fcdcb3c89d | 83 | return false; |
| mkelly10 | 9:d5fcdcb3c89d | 84 | } |
| mkelly10 | 9:d5fcdcb3c89d | 85 | |
| mkelly10 | 9:d5fcdcb3c89d | 86 | //returned = fscanf(pfile, "%f %f %f %f %i", &d, &s, &h, &t, &last) ; |
| mkelly10 | 9:d5fcdcb3c89d | 87 | //pc().printf("\n\r%f %f %f %f %i %i\n\r",d,s,h,t,last,returned); |
| mkelly10 | 9:d5fcdcb3c89d | 88 | //fclose(pfile); |
| mkelly10 | 9:d5fcdcb3c89d | 89 | |
| mkelly10 | 9:d5fcdcb3c89d | 90 | } |