David's line following code from the LVBots competition, 2015.
Dependencies: GeneralDebouncer Pacer PololuEncoder mbed
Fork of DeadReckoning by
logger.cpp@37:23000a47ed2b, 2014-03-06 (annotated)
- Committer:
- DavidEGrayson
- Date:
- Thu Mar 06 05:11:46 2014 +0000
- Revision:
- 37:23000a47ed2b
- Child:
- 46:f11cb4f93aac
With a boost 0.2% to handleRight in the Reckoner, this code did very well on the course twice!! Then I ran it the other way and it was more than a foot off :(
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DavidEGrayson | 37:23000a47ed2b | 1 | #pragma once |
DavidEGrayson | 37:23000a47ed2b | 2 | |
DavidEGrayson | 37:23000a47ed2b | 3 | #include "logger.h" |
DavidEGrayson | 37:23000a47ed2b | 4 | #include "main.h" |
DavidEGrayson | 37:23000a47ed2b | 5 | #include "pc_serial.h" |
DavidEGrayson | 37:23000a47ed2b | 6 | |
DavidEGrayson | 37:23000a47ed2b | 7 | Logger::Logger() |
DavidEGrayson | 37:23000a47ed2b | 8 | { |
DavidEGrayson | 37:23000a47ed2b | 9 | entryIndex = 0; |
DavidEGrayson | 37:23000a47ed2b | 10 | } |
DavidEGrayson | 37:23000a47ed2b | 11 | |
DavidEGrayson | 37:23000a47ed2b | 12 | bool Logger::isFull() |
DavidEGrayson | 37:23000a47ed2b | 13 | { |
DavidEGrayson | 37:23000a47ed2b | 14 | return entryIndex >= LOGGER_SIZE; |
DavidEGrayson | 37:23000a47ed2b | 15 | } |
DavidEGrayson | 37:23000a47ed2b | 16 | |
DavidEGrayson | 37:23000a47ed2b | 17 | void Logger::log() |
DavidEGrayson | 37:23000a47ed2b | 18 | { |
DavidEGrayson | 37:23000a47ed2b | 19 | if (isFull()) |
DavidEGrayson | 37:23000a47ed2b | 20 | { |
DavidEGrayson | 37:23000a47ed2b | 21 | return; |
DavidEGrayson | 37:23000a47ed2b | 22 | } |
DavidEGrayson | 37:23000a47ed2b | 23 | |
DavidEGrayson | 37:23000a47ed2b | 24 | LogEntry * entry = &entries[entryIndex]; |
DavidEGrayson | 37:23000a47ed2b | 25 | entryIndex++; |
DavidEGrayson | 37:23000a47ed2b | 26 | |
DavidEGrayson | 37:23000a47ed2b | 27 | //entry->cos = reckoner.cos >> 16; |
DavidEGrayson | 37:23000a47ed2b | 28 | //entry->sin = reckoner.sin >> 16; |
DavidEGrayson | 37:23000a47ed2b | 29 | entry->x = reckoner.x >> 16; |
DavidEGrayson | 37:23000a47ed2b | 30 | entry->y = reckoner.y >> 16; |
DavidEGrayson | 37:23000a47ed2b | 31 | } |
DavidEGrayson | 37:23000a47ed2b | 32 | |
DavidEGrayson | 37:23000a47ed2b | 33 | void Logger::dump() |
DavidEGrayson | 37:23000a47ed2b | 34 | { |
DavidEGrayson | 37:23000a47ed2b | 35 | pc.printf("Log dump start\r\n"); |
DavidEGrayson | 37:23000a47ed2b | 36 | for(int32_t i = 0; i < entryIndex; i++) |
DavidEGrayson | 37:23000a47ed2b | 37 | { |
DavidEGrayson | 37:23000a47ed2b | 38 | LogEntry * entry = &entries[i]; |
DavidEGrayson | 37:23000a47ed2b | 39 | pc.printf("%d,%d\r\n", entry->x, entry->y); |
DavidEGrayson | 37:23000a47ed2b | 40 | } |
DavidEGrayson | 37:23000a47ed2b | 41 | pc.printf("Log dump end\r\n"); |
DavidEGrayson | 37:23000a47ed2b | 42 | } |