stock mbed AnalogReads current loop closed and working
Fork of priustroller_2 by
debug/debug.cpp@53:ef62d7a958f2, 2015-05-02 (annotated)
- Committer:
- bwang
- Date:
- Sat May 02 00:21:00 2015 +0000
- Revision:
- 53:ef62d7a958f2
- Parent:
- 24:f1ff9c7256b5
throttle filter
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 24:f1ff9c7256b5 | 1 | #include "includes.h" |
bwang | 24:f1ff9c7256b5 | 2 | #include "context.h" |
bwang | 24:f1ff9c7256b5 | 3 | #include "debug.h" |
bwang | 24:f1ff9c7256b5 | 4 | |
bwang | 24:f1ff9c7256b5 | 5 | BufferedDebugger::BufferedDebugger(Context *context, int channels, int size) { |
bwang | 24:f1ff9c7256b5 | 6 | _context = context; |
bwang | 24:f1ff9c7256b5 | 7 | _size = size; |
bwang | 24:f1ff9c7256b5 | 8 | _channels = channels; |
bwang | 24:f1ff9c7256b5 | 9 | _index = (int*)malloc(_channels*sizeof(int)); |
bwang | 24:f1ff9c7256b5 | 10 | for (int i = 0; i < _channels; i++) _index[i] = 0; |
bwang | 24:f1ff9c7256b5 | 11 | _done = 0; |
bwang | 53:ef62d7a958f2 | 12 | _triggered = 0; |
bwang | 24:f1ff9c7256b5 | 13 | _buffer = (float*)malloc(_size * _channels * sizeof(float)); |
bwang | 24:f1ff9c7256b5 | 14 | _context->serial->printf("Debugger channels: %d\n\r", _channels); |
bwang | 24:f1ff9c7256b5 | 15 | _context->serial->printf("Debugger depth: %d\n\r", _size); |
bwang | 24:f1ff9c7256b5 | 16 | } |
bwang | 24:f1ff9c7256b5 | 17 | |
bwang | 24:f1ff9c7256b5 | 18 | void BufferedDebugger::Write(int channel, float f) { |
bwang | 53:ef62d7a958f2 | 19 | if (_context->user->throttle > 0.1f) _triggered = 1; |
bwang | 53:ef62d7a958f2 | 20 | if (!_triggered) return; |
bwang | 24:f1ff9c7256b5 | 21 | if (_index[channel] * _channels + channel < _size * _channels) { |
bwang | 24:f1ff9c7256b5 | 22 | _buffer[_channels * _index[channel] + channel] = f; |
bwang | 24:f1ff9c7256b5 | 23 | _index[channel]++; |
bwang | 24:f1ff9c7256b5 | 24 | } else if (!_done) { |
bwang | 24:f1ff9c7256b5 | 25 | Flush(); |
bwang | 24:f1ff9c7256b5 | 26 | _done = 1; |
bwang | 24:f1ff9c7256b5 | 27 | } |
bwang | 24:f1ff9c7256b5 | 28 | } |
bwang | 24:f1ff9c7256b5 | 29 | |
bwang | 24:f1ff9c7256b5 | 30 | void BufferedDebugger::Flush() { |
bwang | 24:f1ff9c7256b5 | 31 | _context->inverter->Disable(); |
bwang | 24:f1ff9c7256b5 | 32 | _context->serial->printf("%s\n\r", "--Begin Debug log--"); |
bwang | 24:f1ff9c7256b5 | 33 | for (int i = 0; i < _size; i++) { |
bwang | 24:f1ff9c7256b5 | 34 | for (int j = 0; j < _channels; j++) { |
bwang | 24:f1ff9c7256b5 | 35 | _context->serial->printf("%f", _buffer[i * _channels + j]); |
bwang | 24:f1ff9c7256b5 | 36 | if (j < _channels - 1) _context->serial->printf(", "); |
bwang | 24:f1ff9c7256b5 | 37 | } |
bwang | 24:f1ff9c7256b5 | 38 | _context->serial->printf("%\n\r"); |
bwang | 24:f1ff9c7256b5 | 39 | } |
bwang | 24:f1ff9c7256b5 | 40 | } |
bwang | 24:f1ff9c7256b5 | 41 | |
bwang | 24:f1ff9c7256b5 | 42 | void BufferedDebugger::Restart() { |
bwang | 24:f1ff9c7256b5 | 43 | _index = 0; |
bwang | 24:f1ff9c7256b5 | 44 | _done = 0; |
bwang | 24:f1ff9c7256b5 | 45 | } |
bwang | 24:f1ff9c7256b5 | 46 |