The London Hackspace bandwidth meter
Dependencies: LPD8806 MODSERIAL mbed picojson
See:
- https://github.com/londonhackspace/net-o-meter
- http://wiki.london.hackspace.org.uk/view/Projects/BandwidthMeter
main.cpp@0:0a6f193d5344, 2012-06-10 (annotated)
- Committer:
- Jasper
- Date:
- Sun Jun 10 19:23:12 2012 +0000
- Revision:
- 0:0a6f193d5344
- Child:
- 1:e384e7146746
initial version, in the middle of simplifying
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jasper | 0:0a6f193d5344 | 1 | #include "mbed.h" |
Jasper | 0:0a6f193d5344 | 2 | |
Jasper | 0:0a6f193d5344 | 3 | #include "LPD8806.h" |
Jasper | 0:0a6f193d5344 | 4 | |
Jasper | 0:0a6f193d5344 | 5 | DigitalOut led1(LED1); |
Jasper | 0:0a6f193d5344 | 6 | DigitalOut led2(LED2); |
Jasper | 0:0a6f193d5344 | 7 | DigitalOut led3(LED3); |
Jasper | 0:0a6f193d5344 | 8 | DigitalOut led4(LED4); |
Jasper | 0:0a6f193d5344 | 9 | |
Jasper | 0:0a6f193d5344 | 10 | LPD8806 strip = LPD8806(32); |
Jasper | 0:0a6f193d5344 | 11 | |
Jasper | 0:0a6f193d5344 | 12 | /* 0 - 16 */ |
Jasper | 0:0a6f193d5344 | 13 | void top_strip(int quantity){ |
Jasper | 0:0a6f193d5344 | 14 | int i; |
Jasper | 0:0a6f193d5344 | 15 | |
Jasper | 0:0a6f193d5344 | 16 | if (quantity == 0) { |
Jasper | 0:0a6f193d5344 | 17 | // blank it |
Jasper | 0:0a6f193d5344 | 18 | setPixelsTop(0, 16, 0); |
Jasper | 0:0a6f193d5344 | 19 | } |
Jasper | 0:0a6f193d5344 | 20 | |
Jasper | 0:0a6f193d5344 | 21 | setPixelsTop(0, quantity < 12 ? quantity : 12, strip.Color(0, 127, 0)); |
Jasper | 0:0a6f193d5344 | 22 | |
Jasper | 0:0a6f193d5344 | 23 | for (i = 0 ; i < 12 ; i++) { |
Jasper | 0:0a6f193d5344 | 24 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 25 | strip.setPixelColor(i, 0, 127, 0); |
Jasper | 0:0a6f193d5344 | 26 | else |
Jasper | 0:0a6f193d5344 | 27 | strip.setPixelColor(i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 28 | } |
Jasper | 0:0a6f193d5344 | 29 | i = 12; |
Jasper | 0:0a6f193d5344 | 30 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 31 | strip.setPixelColor(i, 127, 127, 0); |
Jasper | 0:0a6f193d5344 | 32 | else |
Jasper | 0:0a6f193d5344 | 33 | strip.setPixelColor(i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 34 | |
Jasper | 0:0a6f193d5344 | 35 | i = 13; |
Jasper | 0:0a6f193d5344 | 36 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 37 | strip.setPixelColor(i, 127, 127, 0); |
Jasper | 0:0a6f193d5344 | 38 | else |
Jasper | 0:0a6f193d5344 | 39 | strip.setPixelColor(i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 40 | |
Jasper | 0:0a6f193d5344 | 41 | i = 14; |
Jasper | 0:0a6f193d5344 | 42 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 43 | strip.setPixelColor(i, 127, 0, 0); |
Jasper | 0:0a6f193d5344 | 44 | else |
Jasper | 0:0a6f193d5344 | 45 | strip.setPixelColor(i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 46 | |
Jasper | 0:0a6f193d5344 | 47 | i = 15; |
Jasper | 0:0a6f193d5344 | 48 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 49 | strip.setPixelColor(i, 127, 0, 0); |
Jasper | 0:0a6f193d5344 | 50 | else |
Jasper | 0:0a6f193d5344 | 51 | strip.setPixelColor(i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 52 | |
Jasper | 0:0a6f193d5344 | 53 | strip.show(); |
Jasper | 0:0a6f193d5344 | 54 | } |
Jasper | 0:0a6f193d5344 | 55 | |
Jasper | 0:0a6f193d5344 | 56 | void bottom_strip(int quantity){ |
Jasper | 0:0a6f193d5344 | 57 | int i; |
Jasper | 0:0a6f193d5344 | 58 | |
Jasper | 0:0a6f193d5344 | 59 | for (i = 0 ; i < 12 ; i++) { |
Jasper | 0:0a6f193d5344 | 60 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 61 | strip.setPixelColor(16 + i, 0, 127, 0); |
Jasper | 0:0a6f193d5344 | 62 | else |
Jasper | 0:0a6f193d5344 | 63 | strip.setPixelColor(16 + i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 64 | } |
Jasper | 0:0a6f193d5344 | 65 | i = 12; |
Jasper | 0:0a6f193d5344 | 66 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 67 | strip.setPixelColor(16 + i, 127, 127, 0); |
Jasper | 0:0a6f193d5344 | 68 | else |
Jasper | 0:0a6f193d5344 | 69 | strip.setPixelColor(16 + i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 70 | |
Jasper | 0:0a6f193d5344 | 71 | i = 13; |
Jasper | 0:0a6f193d5344 | 72 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 73 | strip.setPixelColor(16 + i, 127, 127, 0); |
Jasper | 0:0a6f193d5344 | 74 | else |
Jasper | 0:0a6f193d5344 | 75 | strip.setPixelColor(16 + i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 76 | |
Jasper | 0:0a6f193d5344 | 77 | i = 14; |
Jasper | 0:0a6f193d5344 | 78 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 79 | strip.setPixelColor(16 + i, 127, 0, 0); |
Jasper | 0:0a6f193d5344 | 80 | else |
Jasper | 0:0a6f193d5344 | 81 | strip.setPixelColor(16 + i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 82 | |
Jasper | 0:0a6f193d5344 | 83 | i = 15; |
Jasper | 0:0a6f193d5344 | 84 | if (i <= quantity) |
Jasper | 0:0a6f193d5344 | 85 | strip.setPixelColor(16 + i, 127, 0, 0); |
Jasper | 0:0a6f193d5344 | 86 | else |
Jasper | 0:0a6f193d5344 | 87 | strip.setPixelColor(16 + i, 0, 0, 0); |
Jasper | 0:0a6f193d5344 | 88 | } |
Jasper | 0:0a6f193d5344 | 89 | |
Jasper | 0:0a6f193d5344 | 90 | void setPixelsTop(int start, int end, int colour) { |
Jasper | 0:0a6f193d5344 | 91 | int i; |
Jasper | 0:0a6f193d5344 | 92 | |
Jasper | 0:0a6f193d5344 | 93 | for (i = start; i < end + 1 ; i++) { |
Jasper | 0:0a6f193d5344 | 94 | strip.setPixelColor(i, colour); |
Jasper | 0:0a6f193d5344 | 95 | } |
Jasper | 0:0a6f193d5344 | 96 | } |
Jasper | 0:0a6f193d5344 | 97 | |
Jasper | 0:0a6f193d5344 | 98 | void setPixelsBottom(int start, int end, int colour) { |
Jasper | 0:0a6f193d5344 | 99 | int i; |
Jasper | 0:0a6f193d5344 | 100 | |
Jasper | 0:0a6f193d5344 | 101 | for (i = start; i < end + 1 ; i++) { |
Jasper | 0:0a6f193d5344 | 102 | strip.setPixelColor(16 + i, colour); |
Jasper | 0:0a6f193d5344 | 103 | } |
Jasper | 0:0a6f193d5344 | 104 | } |
Jasper | 0:0a6f193d5344 | 105 | |
Jasper | 0:0a6f193d5344 | 106 | int main() { |
Jasper | 0:0a6f193d5344 | 107 | int count = 0; |
Jasper | 0:0a6f193d5344 | 108 | int c2 = 0; |
Jasper | 0:0a6f193d5344 | 109 | int i; |
Jasper | 0:0a6f193d5344 | 110 | |
Jasper | 0:0a6f193d5344 | 111 | strip.begin(); |
Jasper | 0:0a6f193d5344 | 112 | |
Jasper | 0:0a6f193d5344 | 113 | for (i = 0 ; i < strip.numPixels() ; i++) { |
Jasper | 0:0a6f193d5344 | 114 | // clear the strip |
Jasper | 0:0a6f193d5344 | 115 | strip.setPixelColor(i, 0); |
Jasper | 0:0a6f193d5344 | 116 | } |
Jasper | 0:0a6f193d5344 | 117 | |
Jasper | 0:0a6f193d5344 | 118 | strip.show(); |
Jasper | 0:0a6f193d5344 | 119 | |
Jasper | 0:0a6f193d5344 | 120 | while(1) { |
Jasper | 0:0a6f193d5344 | 121 | |
Jasper | 0:0a6f193d5344 | 122 | if (c2 > 16) c2 = 0; |
Jasper | 0:0a6f193d5344 | 123 | |
Jasper | 0:0a6f193d5344 | 124 | led1 = 1; |
Jasper | 0:0a6f193d5344 | 125 | wait(0.25); |
Jasper | 0:0a6f193d5344 | 126 | led1 = 0; |
Jasper | 0:0a6f193d5344 | 127 | count ++; |
Jasper | 0:0a6f193d5344 | 128 | if (count > 2) |
Jasper | 0:0a6f193d5344 | 129 | { |
Jasper | 0:0a6f193d5344 | 130 | top_strip(c2); |
Jasper | 0:0a6f193d5344 | 131 | bottom_strip(c2); |
Jasper | 0:0a6f193d5344 | 132 | strip.show(); |
Jasper | 0:0a6f193d5344 | 133 | count = 0; |
Jasper | 0:0a6f193d5344 | 134 | c2 ++; |
Jasper | 0:0a6f193d5344 | 135 | } |
Jasper | 0:0a6f193d5344 | 136 | } |
Jasper | 0:0a6f193d5344 | 137 | } |