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
- Committer:
- Jasper
- Date:
- 2012-06-10
- Revision:
- 0:0a6f193d5344
- Child:
- 1:e384e7146746
File content as of revision 0:0a6f193d5344:
#include "mbed.h" #include "LPD8806.h" DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); LPD8806 strip = LPD8806(32); /* 0 - 16 */ void top_strip(int quantity){ int i; if (quantity == 0) { // blank it setPixelsTop(0, 16, 0); } setPixelsTop(0, quantity < 12 ? quantity : 12, strip.Color(0, 127, 0)); for (i = 0 ; i < 12 ; i++) { if (i <= quantity) strip.setPixelColor(i, 0, 127, 0); else strip.setPixelColor(i, 0, 0, 0); } i = 12; if (i <= quantity) strip.setPixelColor(i, 127, 127, 0); else strip.setPixelColor(i, 0, 0, 0); i = 13; if (i <= quantity) strip.setPixelColor(i, 127, 127, 0); else strip.setPixelColor(i, 0, 0, 0); i = 14; if (i <= quantity) strip.setPixelColor(i, 127, 0, 0); else strip.setPixelColor(i, 0, 0, 0); i = 15; if (i <= quantity) strip.setPixelColor(i, 127, 0, 0); else strip.setPixelColor(i, 0, 0, 0); strip.show(); } void bottom_strip(int quantity){ int i; for (i = 0 ; i < 12 ; i++) { if (i <= quantity) strip.setPixelColor(16 + i, 0, 127, 0); else strip.setPixelColor(16 + i, 0, 0, 0); } i = 12; if (i <= quantity) strip.setPixelColor(16 + i, 127, 127, 0); else strip.setPixelColor(16 + i, 0, 0, 0); i = 13; if (i <= quantity) strip.setPixelColor(16 + i, 127, 127, 0); else strip.setPixelColor(16 + i, 0, 0, 0); i = 14; if (i <= quantity) strip.setPixelColor(16 + i, 127, 0, 0); else strip.setPixelColor(16 + i, 0, 0, 0); i = 15; if (i <= quantity) strip.setPixelColor(16 + i, 127, 0, 0); else strip.setPixelColor(16 + i, 0, 0, 0); } void setPixelsTop(int start, int end, int colour) { int i; for (i = start; i < end + 1 ; i++) { strip.setPixelColor(i, colour); } } void setPixelsBottom(int start, int end, int colour) { int i; for (i = start; i < end + 1 ; i++) { strip.setPixelColor(16 + i, colour); } } int main() { int count = 0; int c2 = 0; int i; strip.begin(); for (i = 0 ; i < strip.numPixels() ; i++) { // clear the strip strip.setPixelColor(i, 0); } strip.show(); while(1) { if (c2 > 16) c2 = 0; led1 = 1; wait(0.25); led1 = 0; count ++; if (count > 2) { top_strip(c2); bottom_strip(c2); strip.show(); count = 0; c2 ++; } } }