David's line following code from the LVBots competition, 2015.
Dependencies: GeneralDebouncer Pacer PololuEncoder mbed
Fork of DeadReckoning by
logger.cpp@48:c84b7b3ab0e8, 2015-04-15 (annotated)
- Committer:
- DavidEGrayson
- Date:
- Wed Apr 15 21:42:52 2015 +0000
- Revision:
- 48:c84b7b3ab0e8
- Parent:
- 47:cb5c1504c24d
- Child:
- 49:eaa6fd514f4f
made it record entries every 200 encoder counts, instead of every 200 ms;
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 | 48:c84b7b3ab0e8 | 17 | void Logger::log(struct LogEntry * newEntry) |
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 | 48:c84b7b3ab0e8 | 26 | *entry = *newEntry; |
DavidEGrayson | 37:23000a47ed2b | 27 | } |
DavidEGrayson | 37:23000a47ed2b | 28 | |
DavidEGrayson | 37:23000a47ed2b | 29 | void Logger::dump() |
DavidEGrayson | 37:23000a47ed2b | 30 | { |
DavidEGrayson | 37:23000a47ed2b | 31 | pc.printf("Log dump start\r\n"); |
DavidEGrayson | 37:23000a47ed2b | 32 | for(int32_t i = 0; i < entryIndex; i++) |
DavidEGrayson | 37:23000a47ed2b | 33 | { |
DavidEGrayson | 37:23000a47ed2b | 34 | LogEntry * entry = &entries[i]; |
DavidEGrayson | 47:cb5c1504c24d | 35 | pc.printf("%d,%d,%d\r\n", entry->turnAngle, entry->x, entry->y); |
DavidEGrayson | 37:23000a47ed2b | 36 | } |
DavidEGrayson | 37:23000a47ed2b | 37 | pc.printf("Log dump end\r\n"); |
DavidEGrayson | 37:23000a47ed2b | 38 | } |