Bayley Wang
/
foc-ed_in_the_bot_compact
robot
PreferenceWriter/PreferenceWriter.cpp@252:38644631ed97, 2018-11-13 (annotated)
- Committer:
- bwang
- Date:
- Tue Nov 13 17:46:23 2018 +0000
- Revision:
- 252:38644631ed97
- Parent:
- 181:d3510c8beab6
11/13/2018 12:45 - hitting <return> on empty line prints "\r>", so that hitting enter after intially connecting to the controller generates a prompt
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 181:d3510c8beab6 | 1 | #include "PreferenceWriter.h" |
bwang | 181:d3510c8beab6 | 2 | #include "FlashWriter.h" |
bwang | 181:d3510c8beab6 | 3 | |
bwang | 181:d3510c8beab6 | 4 | #include "prefs.h" |
bwang | 181:d3510c8beab6 | 5 | |
bwang | 181:d3510c8beab6 | 6 | float __float_reg[64]; |
bwang | 181:d3510c8beab6 | 7 | int __int_reg[64]; |
bwang | 181:d3510c8beab6 | 8 | |
bwang | 181:d3510c8beab6 | 9 | PreferenceWriter::PreferenceWriter(uint32_t sector) { |
bwang | 181:d3510c8beab6 | 10 | writer = new FlashWriter(sector); |
bwang | 181:d3510c8beab6 | 11 | __sector = sector; |
bwang | 181:d3510c8beab6 | 12 | __ready = false; |
bwang | 181:d3510c8beab6 | 13 | } |
bwang | 181:d3510c8beab6 | 14 | |
bwang | 181:d3510c8beab6 | 15 | void PreferenceWriter::open() { |
bwang | 181:d3510c8beab6 | 16 | writer->open(); |
bwang | 181:d3510c8beab6 | 17 | __ready = true; |
bwang | 181:d3510c8beab6 | 18 | } |
bwang | 181:d3510c8beab6 | 19 | |
bwang | 181:d3510c8beab6 | 20 | bool PreferenceWriter::ready() { |
bwang | 181:d3510c8beab6 | 21 | return __ready; |
bwang | 181:d3510c8beab6 | 22 | } |
bwang | 181:d3510c8beab6 | 23 | |
bwang | 181:d3510c8beab6 | 24 | void PreferenceWriter::write(int x, int index) { |
bwang | 181:d3510c8beab6 | 25 | __int_reg[index] = x; |
bwang | 181:d3510c8beab6 | 26 | } |
bwang | 181:d3510c8beab6 | 27 | |
bwang | 181:d3510c8beab6 | 28 | void PreferenceWriter::write(float x, int index) { |
bwang | 181:d3510c8beab6 | 29 | __float_reg[index] = x; |
bwang | 181:d3510c8beab6 | 30 | } |
bwang | 181:d3510c8beab6 | 31 | |
bwang | 181:d3510c8beab6 | 32 | void PreferenceWriter::flush() { |
bwang | 181:d3510c8beab6 | 33 | int offs; |
bwang | 181:d3510c8beab6 | 34 | for (offs = 0; offs < 64; offs++) { |
bwang | 181:d3510c8beab6 | 35 | writer->write(offs, __int_reg[offs]); |
bwang | 181:d3510c8beab6 | 36 | } |
bwang | 181:d3510c8beab6 | 37 | for (; offs < 128; offs++) { |
bwang | 181:d3510c8beab6 | 38 | writer->write(offs, __float_reg[offs - 64]); |
bwang | 181:d3510c8beab6 | 39 | } |
bwang | 181:d3510c8beab6 | 40 | __ready = false; |
bwang | 181:d3510c8beab6 | 41 | } |
bwang | 181:d3510c8beab6 | 42 | |
bwang | 181:d3510c8beab6 | 43 | void PreferenceWriter::load() { |
bwang | 181:d3510c8beab6 | 44 | int offs; |
bwang | 181:d3510c8beab6 | 45 | for (offs = 0; offs < 64; offs++) { |
bwang | 181:d3510c8beab6 | 46 | __int_reg[offs] = flashReadInt(__sector, offs); |
bwang | 181:d3510c8beab6 | 47 | } |
bwang | 181:d3510c8beab6 | 48 | for(; offs < 128; offs++) { |
bwang | 181:d3510c8beab6 | 49 | __float_reg[offs - 64] = flashReadFloat(__sector, offs); |
bwang | 181:d3510c8beab6 | 50 | } |
bwang | 181:d3510c8beab6 | 51 | } |
bwang | 181:d3510c8beab6 | 52 | |
bwang | 181:d3510c8beab6 | 53 | void PreferenceWriter::close() { |
bwang | 181:d3510c8beab6 | 54 | __ready = false; |
bwang | 181:d3510c8beab6 | 55 | writer->close(); |
bwang | 181:d3510c8beab6 | 56 | } |