LineLedControl

Dependencies:   LPD8806 mbed

Fork of LPD8806_Test by Jelmer Tiete

Committer:
sfjmt
Date:
Mon Aug 19 12:14:37 2013 +0000
Revision:
3:b0a1b4b24d3c
Parent:
2:c9d9fa02a4e4
LPD8806 control

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ehbmbed2 2:c9d9fa02a4e4 1 // standard connected to 1st hardware SPI
ehbmbed2 2:c9d9fa02a4e4 2 // LPD8806 <> MBED
sfjmt 3:b0a1b4b24d3c 3 // DATA -> P5( mosi ) or P11( mosi )
sfjmt 3:b0a1b4b24d3c 4 // CLOCK -> p7( sclk ) or p13( sclk )
ehbmbed2 1:c70352e536c0 5 /*****************************************************************************/
sfjmt 3:b0a1b4b24d3c 6 #include "mbed.h"
sfjmt 3:b0a1b4b24d3c 7 #include "mbedOSC.h"
ehbmbed2 1:c70352e536c0 8 #include "LPD8806.h"
ehbmbed2 1:c70352e536c0 9
sfjmt 3:b0a1b4b24d3c 10 extern "C" void mbed_reset();
sfjmt 3:b0a1b4b24d3c 11
sfjmt 3:b0a1b4b24d3c 12 //OSC setup----------------------------------------------------------------------
sfjmt 3:b0a1b4b24d3c 13 // mbed IP address (server):
sfjmt 3:b0a1b4b24d3c 14 //#ifdef DHCP
sfjmt 3:b0a1b4b24d3c 15 //EthernetNetIf eth;
sfjmt 3:b0a1b4b24d3c 16 //#else
sfjmt 3:b0a1b4b24d3c 17 EthernetNetIf eth(
sfjmt 3:b0a1b4b24d3c 18 IpAddr(192,168,12,210),//my mbed IP Address
sfjmt 3:b0a1b4b24d3c 19 IpAddr(255,255,255,0),//Network Mask
sfjmt 3:b0a1b4b24d3c 20 IpAddr(),//Gateway
sfjmt 3:b0a1b4b24d3c 21 IpAddr()//DNS
sfjmt 3:b0a1b4b24d3c 22 );
sfjmt 3:b0a1b4b24d3c 23 //#endif
sfjmt 3:b0a1b4b24d3c 24
sfjmt 3:b0a1b4b24d3c 25 //receive
sfjmt 3:b0a1b4b24d3c 26 uint8_t receiveIp[] = { 192, 168, 12, 210 };//IP Address
sfjmt 3:b0a1b4b24d3c 27 int receivePort = 5678;//port
sfjmt 3:b0a1b4b24d3c 28
sfjmt 3:b0a1b4b24d3c 29 //destination.
sfjmt 3:b0a1b4b24d3c 30 uint8_t destIp[] = { 192, 168, 12, 51};//IP Address
sfjmt 3:b0a1b4b24d3c 31 int destPort = 10000;//port
sfjmt 3:b0a1b4b24d3c 32
sfjmt 3:b0a1b4b24d3c 33 //send value propaty.
sfjmt 3:b0a1b4b24d3c 34 char *topAddress = "/hangers";
sfjmt 3:b0a1b4b24d3c 35 char *subAddress[3] = {"/line1","/line2","/line3"};
sfjmt 3:b0a1b4b24d3c 36
sfjmt 3:b0a1b4b24d3c 37 //receive value propaty
sfjmt 3:b0a1b4b24d3c 38 char *requestStr = "hangers";
sfjmt 3:b0a1b4b24d3c 39 char *requestTopStr[3] = {"mbed1","mbed2","mbed3"};
sfjmt 3:b0a1b4b24d3c 40 char *requestSubStr[3] = {"test1","test2","test3"};
sfjmt 3:b0a1b4b24d3c 41 int requestNumber[10] = {101,102,103,104,105,106,107,108,109,110};
sfjmt 3:b0a1b4b24d3c 42 const int resetNumber = 777;
sfjmt 3:b0a1b4b24d3c 43
sfjmt 3:b0a1b4b24d3c 44 //instance
sfjmt 3:b0a1b4b24d3c 45 OSCMessage recMes;
sfjmt 3:b0a1b4b24d3c 46 OSCMessage sendMes;
sfjmt 3:b0a1b4b24d3c 47 OSCClass osc;
sfjmt 3:b0a1b4b24d3c 48
sfjmt 3:b0a1b4b24d3c 49 //digital pin
sfjmt 3:b0a1b4b24d3c 50 DigitalOut csPin1(p8);
sfjmt 3:b0a1b4b24d3c 51 DigitalOut csPin2(p9);
sfjmt 3:b0a1b4b24d3c 52 DigitalOut csPin3(p10);
sfjmt 3:b0a1b4b24d3c 53 DigitalOut csPin4(p21);
sfjmt 3:b0a1b4b24d3c 54 DigitalOut csPin5(p22);
sfjmt 3:b0a1b4b24d3c 55 DigitalOut csPin6(p23);
sfjmt 3:b0a1b4b24d3c 56 DigitalOut csPin7(p24);
sfjmt 3:b0a1b4b24d3c 57 DigitalOut csPin8(p25);
sfjmt 3:b0a1b4b24d3c 58 DigitalOut csPin9(p26);
sfjmt 3:b0a1b4b24d3c 59 DigitalOut led(LED1);
sfjmt 3:b0a1b4b24d3c 60
sfjmt 3:b0a1b4b24d3c 61 //mode
sfjmt 3:b0a1b4b24d3c 62 bool sendMode = false;
sfjmt 3:b0a1b4b24d3c 63 bool receiveMode = true;
sfjmt 3:b0a1b4b24d3c 64 //----------------------------------------------------------------------
sfjmt 3:b0a1b4b24d3c 65
sfjmt 3:b0a1b4b24d3c 66 LPD8806 strip = LPD8806(10);
sfjmt 3:b0a1b4b24d3c 67
sfjmt 3:b0a1b4b24d3c 68 //LOW
sfjmt 3:b0a1b4b24d3c 69 void low()
sfjmt 3:b0a1b4b24d3c 70 {
sfjmt 3:b0a1b4b24d3c 71 for (int i=0; i < strip.numPixels(); i++) {
sfjmt 3:b0a1b4b24d3c 72 strip.setPixelColor(i, 0); // turn all pixels off
sfjmt 3:b0a1b4b24d3c 73 }
sfjmt 3:b0a1b4b24d3c 74 strip.show();
sfjmt 3:b0a1b4b24d3c 75
sfjmt 3:b0a1b4b24d3c 76 printf("low complete.");
sfjmt 3:b0a1b4b24d3c 77 }
sfjmt 3:b0a1b4b24d3c 78
sfjmt 3:b0a1b4b24d3c 79 //HIGH
sfjmt 3:b0a1b4b24d3c 80 void high(uint32_t c)
sfjmt 3:b0a1b4b24d3c 81 {
sfjmt 3:b0a1b4b24d3c 82 for (int i=0; i < strip.numPixels(); i++) {
sfjmt 3:b0a1b4b24d3c 83 strip.setPixelColor(i, c); // turn all pixels off
sfjmt 3:b0a1b4b24d3c 84 }
sfjmt 3:b0a1b4b24d3c 85 strip.show();
sfjmt 3:b0a1b4b24d3c 86
sfjmt 3:b0a1b4b24d3c 87 printf("high complete.");
sfjmt 3:b0a1b4b24d3c 88 }
sfjmt 3:b0a1b4b24d3c 89
sfjmt 3:b0a1b4b24d3c 90 //FADE
sfjmt 3:b0a1b4b24d3c 91 void fade(uint16_t colorNum,uint8_t delay)
sfjmt 3:b0a1b4b24d3c 92 {
sfjmt 3:b0a1b4b24d3c 93 //fade in
sfjmt 3:b0a1b4b24d3c 94 for(int i = 0; i < colorNum; i++)
sfjmt 3:b0a1b4b24d3c 95 {
sfjmt 3:b0a1b4b24d3c 96 for(int j = 0; j < strip.numPixels(); j++)
sfjmt 3:b0a1b4b24d3c 97 {
sfjmt 3:b0a1b4b24d3c 98 strip.setPixelColor(j,strip.Color(i,i,i));
sfjmt 3:b0a1b4b24d3c 99 }
sfjmt 3:b0a1b4b24d3c 100 strip.show();
sfjmt 3:b0a1b4b24d3c 101 wait_ms(delay);
sfjmt 3:b0a1b4b24d3c 102 }
sfjmt 3:b0a1b4b24d3c 103
sfjmt 3:b0a1b4b24d3c 104 //fade out
sfjmt 3:b0a1b4b24d3c 105 for(int i = colorNum; i > 0; i--)
sfjmt 3:b0a1b4b24d3c 106 {
sfjmt 3:b0a1b4b24d3c 107 for(int j = 0; j < strip.numPixels(); j++)
sfjmt 3:b0a1b4b24d3c 108 {
sfjmt 3:b0a1b4b24d3c 109 strip.setPixelColor(j,strip.Color(i,i,i));
sfjmt 3:b0a1b4b24d3c 110 }
sfjmt 3:b0a1b4b24d3c 111 strip.show();
sfjmt 3:b0a1b4b24d3c 112 wait_ms(delay);
sfjmt 3:b0a1b4b24d3c 113 }
sfjmt 3:b0a1b4b24d3c 114 //low
sfjmt 3:b0a1b4b24d3c 115 low();
sfjmt 3:b0a1b4b24d3c 116
sfjmt 3:b0a1b4b24d3c 117 printf("fade complete.");
sfjmt 3:b0a1b4b24d3c 118 }
ehbmbed2 1:c70352e536c0 119
ehbmbed2 1:c70352e536c0 120 // Chase a dot down the strip
ehbmbed2 1:c70352e536c0 121 // good for testing purposes
ehbmbed2 1:c70352e536c0 122 void colorChase(uint32_t c, uint8_t delay) {
ehbmbed2 1:c70352e536c0 123 int i;
ehbmbed2 1:c70352e536c0 124
ehbmbed2 1:c70352e536c0 125 for (i=0; i < strip.numPixels(); i++) {
ehbmbed2 1:c70352e536c0 126 strip.setPixelColor(i, 0); // turn all pixels off
ehbmbed2 1:c70352e536c0 127 }
ehbmbed2 1:c70352e536c0 128
ehbmbed2 1:c70352e536c0 129 for (i=0; i < strip.numPixels(); i++) {
ehbmbed2 1:c70352e536c0 130 strip.setPixelColor(i, c);
ehbmbed2 1:c70352e536c0 131 if (i == 0) {
ehbmbed2 1:c70352e536c0 132 strip.setPixelColor(strip.numPixels()-1, 0);
ehbmbed2 1:c70352e536c0 133 } else {
ehbmbed2 1:c70352e536c0 134 strip.setPixelColor(i-1, 0);
ehbmbed2 1:c70352e536c0 135 }
ehbmbed2 1:c70352e536c0 136 strip.show();
ehbmbed2 1:c70352e536c0 137 wait_ms(delay);
ehbmbed2 1:c70352e536c0 138 }
ehbmbed2 1:c70352e536c0 139 }
ehbmbed2 1:c70352e536c0 140
ehbmbed2 1:c70352e536c0 141 // fill the dots one after the other with said color
ehbmbed2 1:c70352e536c0 142 // good for testing purposes
ehbmbed2 1:c70352e536c0 143 void colorWipe(uint32_t c, uint8_t delay) {
ehbmbed2 1:c70352e536c0 144 int i;
ehbmbed2 1:c70352e536c0 145
ehbmbed2 1:c70352e536c0 146 for (i=0; i < strip.numPixels(); i++) {
ehbmbed2 1:c70352e536c0 147 strip.setPixelColor(i, c);
ehbmbed2 1:c70352e536c0 148 strip.show();
ehbmbed2 1:c70352e536c0 149 wait_ms(delay);
ehbmbed2 1:c70352e536c0 150 }
ehbmbed2 1:c70352e536c0 151 }
ehbmbed2 1:c70352e536c0 152
ehbmbed2 1:c70352e536c0 153 //Input a value 0 to 384 to get a color value.
ehbmbed2 1:c70352e536c0 154 //The colours are a transition r - g -b - back to r
ehbmbed2 1:c70352e536c0 155
ehbmbed2 1:c70352e536c0 156 uint32_t Wheel(uint16_t WheelPos) {
ehbmbed2 1:c70352e536c0 157 uint8_t b=0;
ehbmbed2 1:c70352e536c0 158 uint8_t g=0;
ehbmbed2 1:c70352e536c0 159 uint8_t r = 0;
ehbmbed2 1:c70352e536c0 160 switch (WheelPos / 128) {
ehbmbed2 1:c70352e536c0 161 case 0:
ehbmbed2 1:c70352e536c0 162 r = 127 - WheelPos % 128; //Red down
ehbmbed2 1:c70352e536c0 163 g = WheelPos % 128; // Green up
ehbmbed2 1:c70352e536c0 164 b = 0; //blue off
ehbmbed2 1:c70352e536c0 165 break;
ehbmbed2 1:c70352e536c0 166 case 1:
ehbmbed2 1:c70352e536c0 167 g = 127 - WheelPos % 128; //green down
ehbmbed2 1:c70352e536c0 168 b = WheelPos % 128; //blue up
ehbmbed2 1:c70352e536c0 169 r = 0; //red off
ehbmbed2 1:c70352e536c0 170 break;
ehbmbed2 1:c70352e536c0 171 case 2:
ehbmbed2 1:c70352e536c0 172 b = 127 - WheelPos % 128; //blue down
ehbmbed2 1:c70352e536c0 173 r = WheelPos % 128; //red up
ehbmbed2 1:c70352e536c0 174 g = 0; //green off
ehbmbed2 1:c70352e536c0 175 break;
ehbmbed2 1:c70352e536c0 176 }
ehbmbed2 1:c70352e536c0 177 return(strip.Color(r,g,b));
ehbmbed2 1:c70352e536c0 178 }
ehbmbed2 1:c70352e536c0 179
ehbmbed2 1:c70352e536c0 180 void rainbow(uint8_t delay) {
ehbmbed2 1:c70352e536c0 181 int i, j;
ehbmbed2 1:c70352e536c0 182
ehbmbed2 1:c70352e536c0 183 for (j=0; j < 384; j++) { // 3 cycles of all 384 colors in the wheel
ehbmbed2 1:c70352e536c0 184 for (i=0; i < strip.numPixels(); i++) {
ehbmbed2 1:c70352e536c0 185 strip.setPixelColor(i, Wheel( (i + j) % 384));
ehbmbed2 1:c70352e536c0 186 }
ehbmbed2 1:c70352e536c0 187 strip.show(); // write all the pixels out
ehbmbed2 1:c70352e536c0 188 wait_ms(delay);
ehbmbed2 1:c70352e536c0 189 }
ehbmbed2 1:c70352e536c0 190 }
ehbmbed2 1:c70352e536c0 191
ehbmbed2 1:c70352e536c0 192 // Slightly different, this one makes the rainbow wheel equally distributed
ehbmbed2 1:c70352e536c0 193 // along the chain
ehbmbed2 1:c70352e536c0 194 void rainbowCycle(uint8_t delay) {
ehbmbed2 1:c70352e536c0 195 uint16_t i, j;
ehbmbed2 1:c70352e536c0 196
ehbmbed2 1:c70352e536c0 197 for (j=0; j < 384 * 5; j++) { // 5 cycles of all 384 colors in the wheel
ehbmbed2 1:c70352e536c0 198 for (i=0; i < strip.numPixels(); i++) {
ehbmbed2 1:c70352e536c0 199 // tricky math! we use each pixel as a fraction of the full 384-color wheel
ehbmbed2 1:c70352e536c0 200 // (thats the i / strip.numPixels() part)
ehbmbed2 1:c70352e536c0 201 // Then add in j which makes the colors go around per pixel
ehbmbed2 1:c70352e536c0 202 // the % 384 is to make the wheel cycle around
ehbmbed2 1:c70352e536c0 203 strip.setPixelColor(i, Wheel( ((i * 384 / strip.numPixels()) + j) % 384) );
ehbmbed2 1:c70352e536c0 204 }
ehbmbed2 1:c70352e536c0 205 strip.show(); // write all the pixels out
ehbmbed2 1:c70352e536c0 206 wait_ms(delay);
ehbmbed2 1:c70352e536c0 207 }
ehbmbed2 1:c70352e536c0 208 }
ehbmbed2 1:c70352e536c0 209
ehbmbed2 1:c70352e536c0 210 // "Larson scanner" = Cylon/KITT bouncing light effect
ehbmbed2 1:c70352e536c0 211 void scanner(uint8_t r, uint8_t g, uint8_t b, uint8_t delay) {
ehbmbed2 1:c70352e536c0 212 int i, j, pos, dir;
ehbmbed2 1:c70352e536c0 213
ehbmbed2 1:c70352e536c0 214 pos = 0;
ehbmbed2 1:c70352e536c0 215 dir = 1;
ehbmbed2 1:c70352e536c0 216
ehbmbed2 1:c70352e536c0 217 for (i=0; i<((strip.numPixels()-1) * 8); i++) {
ehbmbed2 1:c70352e536c0 218 // Draw 5 pixels centered on pos. setPixelColor() will clip
ehbmbed2 1:c70352e536c0 219 // any pixels off the ends of the strip, no worries there.
ehbmbed2 1:c70352e536c0 220 // we'll make the colors dimmer at the edges for a nice pulse
ehbmbed2 1:c70352e536c0 221 // look
ehbmbed2 1:c70352e536c0 222 strip.setPixelColor(pos - 2, strip.Color(r/4, g/4, b/4));
ehbmbed2 1:c70352e536c0 223 strip.setPixelColor(pos - 1, strip.Color(r/2, g/2, b/2));
ehbmbed2 1:c70352e536c0 224 strip.setPixelColor(pos, strip.Color(r, g, b));
ehbmbed2 1:c70352e536c0 225 strip.setPixelColor(pos + 1, strip.Color(r/2, g/2, b/2));
ehbmbed2 1:c70352e536c0 226 strip.setPixelColor(pos + 2, strip.Color(r/4, g/4, b/4));
ehbmbed2 1:c70352e536c0 227
ehbmbed2 1:c70352e536c0 228 strip.show();
ehbmbed2 1:c70352e536c0 229 wait_ms(delay);
ehbmbed2 1:c70352e536c0 230 // If we wanted to be sneaky we could erase just the tail end
ehbmbed2 1:c70352e536c0 231 // pixel, but it's much easier just to erase the whole thing
ehbmbed2 1:c70352e536c0 232 // and draw a new one next time.
ehbmbed2 1:c70352e536c0 233 for (j=-2; j<= 2; j++)
ehbmbed2 1:c70352e536c0 234 strip.setPixelColor(pos+j, strip.Color(0,0,0));
ehbmbed2 1:c70352e536c0 235 // Bounce off ends of strip
ehbmbed2 1:c70352e536c0 236 pos += dir;
ehbmbed2 1:c70352e536c0 237 if (pos < 0) {
ehbmbed2 1:c70352e536c0 238 pos = 1;
ehbmbed2 1:c70352e536c0 239 dir = -dir;
ehbmbed2 1:c70352e536c0 240 } else if (pos >= strip.numPixels()) {
ehbmbed2 1:c70352e536c0 241 pos = strip.numPixels() - 2;
ehbmbed2 1:c70352e536c0 242 dir = -dir;
ehbmbed2 1:c70352e536c0 243 }
ehbmbed2 1:c70352e536c0 244 }
ehbmbed2 1:c70352e536c0 245 }
ehbmbed2 1:c70352e536c0 246
sfjmt 3:b0a1b4b24d3c 247 void processOSC(UDPSocketEvent e);
sfjmt 3:b0a1b4b24d3c 248
sfjmt 3:b0a1b4b24d3c 249 //osc callback function
sfjmt 3:b0a1b4b24d3c 250 void processOSC(UDPSocketEvent e)
sfjmt 3:b0a1b4b24d3c 251 {
sfjmt 3:b0a1b4b24d3c 252 osc.onUDPSocketEvent(e);
sfjmt 3:b0a1b4b24d3c 253
sfjmt 3:b0a1b4b24d3c 254 printf("new message!!");
sfjmt 3:b0a1b4b24d3c 255
sfjmt 3:b0a1b4b24d3c 256 if (osc.newMessage)
sfjmt 3:b0a1b4b24d3c 257 {
sfjmt 3:b0a1b4b24d3c 258 // osc.newMessage = false; // note: if using: message = osc.getMessage(), then we don't need to do this explicitly.
sfjmt 3:b0a1b4b24d3c 259
sfjmt 3:b0a1b4b24d3c 260 if(strcmp(recMes.getAddress(0),requestStr)==0)
sfjmt 3:b0a1b4b24d3c 261 {
sfjmt 3:b0a1b4b24d3c 262 int val = recMes.getArgInt(0);
sfjmt 3:b0a1b4b24d3c 263
sfjmt 3:b0a1b4b24d3c 264 switch(val)
sfjmt 3:b0a1b4b24d3c 265 {
sfjmt 3:b0a1b4b24d3c 266 case 101:
sfjmt 3:b0a1b4b24d3c 267 //action
sfjmt 3:b0a1b4b24d3c 268 // led = 1;
sfjmt 3:b0a1b4b24d3c 269 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 270 // led = 0;//led LOW
sfjmt 3:b0a1b4b24d3c 271 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 272
sfjmt 3:b0a1b4b24d3c 273 printf("\n");
sfjmt 3:b0a1b4b24d3c 274 printf("receive ... 101\n");
sfjmt 3:b0a1b4b24d3c 275 printf("\n");
sfjmt 3:b0a1b4b24d3c 276
sfjmt 3:b0a1b4b24d3c 277 // fade(127,2);
sfjmt 3:b0a1b4b24d3c 278 high(strip.Color(127,127,127));
sfjmt 3:b0a1b4b24d3c 279 wait(1.0);
sfjmt 3:b0a1b4b24d3c 280 low();
sfjmt 3:b0a1b4b24d3c 281 wait(1.0);
sfjmt 3:b0a1b4b24d3c 282
sfjmt 3:b0a1b4b24d3c 283 printf("101 ... complete.\n");
sfjmt 3:b0a1b4b24d3c 284 break;
sfjmt 3:b0a1b4b24d3c 285 case 102:
sfjmt 3:b0a1b4b24d3c 286
sfjmt 3:b0a1b4b24d3c 287 printf("\n");
sfjmt 3:b0a1b4b24d3c 288 printf("receive ... 102\n");
sfjmt 3:b0a1b4b24d3c 289 printf("\n");
sfjmt 3:b0a1b4b24d3c 290
sfjmt 3:b0a1b4b24d3c 291 //action
sfjmt 3:b0a1b4b24d3c 292 led = 1;
sfjmt 3:b0a1b4b24d3c 293 wait(0.2);
sfjmt 3:b0a1b4b24d3c 294 led = 0;//led LOW
sfjmt 3:b0a1b4b24d3c 295 wait(0.2);
sfjmt 3:b0a1b4b24d3c 296 led = 1;
sfjmt 3:b0a1b4b24d3c 297 wait(0.2);
sfjmt 3:b0a1b4b24d3c 298 led = 0;//led LOW
sfjmt 3:b0a1b4b24d3c 299 wait(0.2);
sfjmt 3:b0a1b4b24d3c 300
sfjmt 3:b0a1b4b24d3c 301 printf("102 ... complete.\n");
sfjmt 3:b0a1b4b24d3c 302 break;
sfjmt 3:b0a1b4b24d3c 303 case 103:
sfjmt 3:b0a1b4b24d3c 304
sfjmt 3:b0a1b4b24d3c 305 printf("\n");
sfjmt 3:b0a1b4b24d3c 306 printf("receive ... 103\n");
sfjmt 3:b0a1b4b24d3c 307 printf("\n");
sfjmt 3:b0a1b4b24d3c 308
sfjmt 3:b0a1b4b24d3c 309 //action
sfjmt 3:b0a1b4b24d3c 310 led = 1;
sfjmt 3:b0a1b4b24d3c 311 wait(1.0);
sfjmt 3:b0a1b4b24d3c 312 led = 0;//led LOW
sfjmt 3:b0a1b4b24d3c 313 wait(1.0);
sfjmt 3:b0a1b4b24d3c 314 led = 1;
sfjmt 3:b0a1b4b24d3c 315 wait(1.0);
sfjmt 3:b0a1b4b24d3c 316 led = 0;//led LOW
sfjmt 3:b0a1b4b24d3c 317 wait(1.0);
sfjmt 3:b0a1b4b24d3c 318 led = 1;
sfjmt 3:b0a1b4b24d3c 319 wait(1.0);
sfjmt 3:b0a1b4b24d3c 320 led = 0;//led LOW
sfjmt 3:b0a1b4b24d3c 321 wait(1.0);
sfjmt 3:b0a1b4b24d3c 322 printf("103 ... complete.\n");
sfjmt 3:b0a1b4b24d3c 323 break;
sfjmt 3:b0a1b4b24d3c 324 case 104:
sfjmt 3:b0a1b4b24d3c 325 //action
sfjmt 3:b0a1b4b24d3c 326 break;
sfjmt 3:b0a1b4b24d3c 327 case 105:
sfjmt 3:b0a1b4b24d3c 328 //action
sfjmt 3:b0a1b4b24d3c 329 break;
sfjmt 3:b0a1b4b24d3c 330 case 106:
sfjmt 3:b0a1b4b24d3c 331 //action
sfjmt 3:b0a1b4b24d3c 332 break;
sfjmt 3:b0a1b4b24d3c 333 case 107:
sfjmt 3:b0a1b4b24d3c 334 //action
sfjmt 3:b0a1b4b24d3c 335 break;
sfjmt 3:b0a1b4b24d3c 336 case 108:
sfjmt 3:b0a1b4b24d3c 337 //action
sfjmt 3:b0a1b4b24d3c 338 break;
sfjmt 3:b0a1b4b24d3c 339 case 109:
sfjmt 3:b0a1b4b24d3c 340 //action
sfjmt 3:b0a1b4b24d3c 341 break;
sfjmt 3:b0a1b4b24d3c 342 case resetNumber://reset
sfjmt 3:b0a1b4b24d3c 343 mbed_reset();
sfjmt 3:b0a1b4b24d3c 344 break;
sfjmt 3:b0a1b4b24d3c 345 default:
sfjmt 3:b0a1b4b24d3c 346 break;
sfjmt 3:b0a1b4b24d3c 347 }
sfjmt 3:b0a1b4b24d3c 348 }
sfjmt 3:b0a1b4b24d3c 349 }
sfjmt 3:b0a1b4b24d3c 350 }
sfjmt 3:b0a1b4b24d3c 351
sfjmt 3:b0a1b4b24d3c 352 void pinStatusChange(int st1=0,int st2=0,int st3=0,int st4=0,int st5=0,int st6=0,int st7=0,int st8=0)
sfjmt 3:b0a1b4b24d3c 353 {
sfjmt 3:b0a1b4b24d3c 354 csPin1 = st1;
sfjmt 3:b0a1b4b24d3c 355 csPin2 = st2;
sfjmt 3:b0a1b4b24d3c 356 csPin3 = st3;
sfjmt 3:b0a1b4b24d3c 357 csPin4 = st4;
sfjmt 3:b0a1b4b24d3c 358 csPin5 = st5;
sfjmt 3:b0a1b4b24d3c 359 csPin6 = st6;
sfjmt 3:b0a1b4b24d3c 360 csPin7 = st7;
sfjmt 3:b0a1b4b24d3c 361 csPin8 = st8;
sfjmt 3:b0a1b4b24d3c 362 }
sfjmt 3:b0a1b4b24d3c 363
sfjmt 3:b0a1b4b24d3c 364 int main(void)
sfjmt 3:b0a1b4b24d3c 365 {
sfjmt 3:b0a1b4b24d3c 366 //chip select pin setup
sfjmt 3:b0a1b4b24d3c 367 csPin1 = 1;
sfjmt 3:b0a1b4b24d3c 368 csPin2 = 1;
sfjmt 3:b0a1b4b24d3c 369 csPin3 = 1;
sfjmt 3:b0a1b4b24d3c 370 csPin4 = 1;
sfjmt 3:b0a1b4b24d3c 371 csPin5 = 1;
sfjmt 3:b0a1b4b24d3c 372 csPin6 = 1;
sfjmt 3:b0a1b4b24d3c 373 csPin7 = 1;
sfjmt 3:b0a1b4b24d3c 374 csPin8 = 1;
sfjmt 3:b0a1b4b24d3c 375 csPin9 = 1;
ehbmbed2 1:c70352e536c0 376
ehbmbed2 1:c70352e536c0 377 // Start up the LED strip
ehbmbed2 1:c70352e536c0 378 strip.begin();
ehbmbed2 1:c70352e536c0 379
ehbmbed2 1:c70352e536c0 380 // Update the strip, to start they are all 'off'
ehbmbed2 1:c70352e536c0 381 strip.show();
sfjmt 3:b0a1b4b24d3c 382
sfjmt 3:b0a1b4b24d3c 383 // Set the Ethernet port:
sfjmt 3:b0a1b4b24d3c 384 EthernetErr ethErr = eth.setup();
sfjmt 3:b0a1b4b24d3c 385 if(ethErr)
sfjmt 3:b0a1b4b24d3c 386 {
sfjmt 3:b0a1b4b24d3c 387 //error
sfjmt 3:b0a1b4b24d3c 388 return -1;
sfjmt 3:b0a1b4b24d3c 389 }
ehbmbed2 1:c70352e536c0 390
sfjmt 3:b0a1b4b24d3c 391
sfjmt 3:b0a1b4b24d3c 392 //(1) Sending message >>>
sfjmt 3:b0a1b4b24d3c 393 // Set IP and Port:
sfjmt 3:b0a1b4b24d3c 394 if(sendMode)
sfjmt 3:b0a1b4b24d3c 395 {
sfjmt 3:b0a1b4b24d3c 396 sendMes.setIp( destIp );
sfjmt 3:b0a1b4b24d3c 397 sendMes.setPort( destPort );
sfjmt 3:b0a1b4b24d3c 398 }
ehbmbed2 1:c70352e536c0 399
sfjmt 3:b0a1b4b24d3c 400 //(2) Receiving <<<
sfjmt 3:b0a1b4b24d3c 401 if(receiveMode)
sfjmt 3:b0a1b4b24d3c 402 {
sfjmt 3:b0a1b4b24d3c 403 recMes.setIp(receiveIp);
sfjmt 3:b0a1b4b24d3c 404 osc.setReceiveMessage(&recMes); // this sets the receiver container for the OSC packets (we can avoid doing this if we use osc.getMessage() to get messages)
sfjmt 3:b0a1b4b24d3c 405 osc.begin(receivePort, &processOSC); // binds the upd (osc) messages to an arbitrary listening port ("server" port), and callback function
sfjmt 3:b0a1b4b24d3c 406 }
sfjmt 3:b0a1b4b24d3c 407
sfjmt 3:b0a1b4b24d3c 408 //loop
sfjmt 3:b0a1b4b24d3c 409 while (receiveMode||sendMode)
sfjmt 3:b0a1b4b24d3c 410 {
sfjmt 3:b0a1b4b24d3c 411 printf("loop...");
sfjmt 3:b0a1b4b24d3c 412
sfjmt 3:b0a1b4b24d3c 413 Net::poll();
sfjmt 3:b0a1b4b24d3c 414 //
sfjmt 3:b0a1b4b24d3c 415 // if(sendMode)
sfjmt 3:b0a1b4b24d3c 416 // {
sfjmt 3:b0a1b4b24d3c 417 // sendMes.setTopAddress(topAddress);//top address
sfjmt 3:b0a1b4b24d3c 418 // sendMes.setSubAddress(subAddress[0]);//sub address
sfjmt 3:b0a1b4b24d3c 419 // sendMes.setArgs("i", 1);//type , value
sfjmt 3:b0a1b4b24d3c 420 // osc.sendOsc(&sendMes);//send!
sfjmt 3:b0a1b4b24d3c 421 // }
sfjmt 3:b0a1b4b24d3c 422
sfjmt 3:b0a1b4b24d3c 423 // high(strip.Color(127,127,127));
sfjmt 3:b0a1b4b24d3c 424 // wait(1.0);
sfjmt 3:b0a1b4b24d3c 425 // low();
sfjmt 3:b0a1b4b24d3c 426 // wait(1.0);
ehbmbed2 1:c70352e536c0 427
sfjmt 3:b0a1b4b24d3c 428 // fade(127,5);
sfjmt 3:b0a1b4b24d3c 429 // wait(1.0);
sfjmt 3:b0a1b4b24d3c 430 // scanner(127,127,127,0);//white,slow
sfjmt 3:b0a1b4b24d3c 431
sfjmt 3:b0a1b4b24d3c 432 // colorChase(strip.Color(127,127,127), 2);//white
sfjmt 3:b0a1b4b24d3c 433 // wait(1.0);
sfjmt 3:b0a1b4b24d3c 434 //
sfjmt 3:b0a1b4b24d3c 435 // pinStatusChange(1,1,1,1,1,1,1,1);//pin status change
sfjmt 3:b0a1b4b24d3c 436 // colorChase(strip.Color(127,127,127), 1);//white
sfjmt 3:b0a1b4b24d3c 437 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 438 //
sfjmt 3:b0a1b4b24d3c 439 // pinStatusChange(0,0,0,0,0,0,0,0);//pin status change
sfjmt 3:b0a1b4b24d3c 440 // colorChase(strip.Color(127,127,127), 1);//white
sfjmt 3:b0a1b4b24d3c 441 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 442 //
sfjmt 3:b0a1b4b24d3c 443 // pinStatusChange(1,1,0);//pin status change
sfjmt 3:b0a1b4b24d3c 444 // colorChase(strip.Color(127,127,127), 1);//white
sfjmt 3:b0a1b4b24d3c 445 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 446 //
sfjmt 3:b0a1b4b24d3c 447 // pinStatusChange(0,1,1);//pin status change
sfjmt 3:b0a1b4b24d3c 448 // colorChase(strip.Color(127,127,127), 1);//white
sfjmt 3:b0a1b4b24d3c 449 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 450 //
sfjmt 3:b0a1b4b24d3c 451 // pinStatusChange(0,0,1);//pin status change
sfjmt 3:b0a1b4b24d3c 452 // colorChase(strip.Color(127,127,127), 1);//white
sfjmt 3:b0a1b4b24d3c 453 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 454 //
sfjmt 3:b0a1b4b24d3c 455 // pinStatusChange(0,0,0);//pin status change
sfjmt 3:b0a1b4b24d3c 456 // colorChase(strip.Color(127,127,127), 1);//white
sfjmt 3:b0a1b4b24d3c 457 // wait(0.2);
sfjmt 3:b0a1b4b24d3c 458
sfjmt 3:b0a1b4b24d3c 459 }
ehbmbed2 1:c70352e536c0 460
sfjmt 3:b0a1b4b24d3c 461 //loop
sfjmt 3:b0a1b4b24d3c 462 // while(1)
sfjmt 3:b0a1b4b24d3c 463 // {
sfjmt 3:b0a1b4b24d3c 464 /*
sfjmt 3:b0a1b4b24d3c 465 sample
sfjmt 3:b0a1b4b24d3c 466 */
sfjmt 3:b0a1b4b24d3c 467 // allBlink(strip.Color(127,127,127));
sfjmt 3:b0a1b4b24d3c 468 // colorChase(strip.Color(127,127,127), 2);//white
sfjmt 3:b0a1b4b24d3c 469 // colorWipe(strip.Color(127,127,127), 2);//white
sfjmt 3:b0a1b4b24d3c 470 // colorChase(strip.Color(127,0,0), 10); // full brightness red
sfjmt 3:b0a1b4b24d3c 471 // colorChase(strip.Color(127,127,0), 10); // orange
sfjmt 3:b0a1b4b24d3c 472 // colorChase(strip.Color(0,127,0), 10); // green
sfjmt 3:b0a1b4b24d3c 473 // colorChase(strip.Color(0,127,127), 10); // teal
sfjmt 3:b0a1b4b24d3c 474 // colorChase(strip.Color(0,0,127), 10); // blue
sfjmt 3:b0a1b4b24d3c 475 // colorChase(strip.Color(127,0,127), 10); // violet
sfjmt 3:b0a1b4b24d3c 476 // // fill the entire strip with...
sfjmt 3:b0a1b4b24d3c 477 // colorWipe(strip.Color(127,0,0), 1000); // red
sfjmt 3:b0a1b4b24d3c 478 // colorWipe(strip.Color(0, 127,0), 10); // green
sfjmt 3:b0a1b4b24d3c 479 // colorWipe(strip.Color(0,0,127), 10); // blue
sfjmt 3:b0a1b4b24d3c 480 // rainbow(10);
sfjmt 3:b0a1b4b24d3c 481 // rainbowCycle(5); // make it go through the cycle fairly fast
sfjmt 3:b0a1b4b24d3c 482 // // Back-and-forth lights
sfjmt 3:b0a1b4b24d3c 483 // scanner(127,0,0, 50); // red, slow
sfjmt 3:b0a1b4b24d3c 484 // scanner(0,0,127, 5); // blue, fast
sfjmt 3:b0a1b4b24d3c 485
sfjmt 3:b0a1b4b24d3c 486 //Set data
sfjmt 3:b0a1b4b24d3c 487 // if(sendMode)
sfjmt 3:b0a1b4b24d3c 488 // {
sfjmt 3:b0a1b4b24d3c 489 // Net::poll();
sfjmt 3:b0a1b4b24d3c 490 //
sfjmt 3:b0a1b4b24d3c 491 // sendMes.setTopAddress(topAddress);//top address
sfjmt 3:b0a1b4b24d3c 492 // sendMes.setSubAddress(subAddress[0]);//sub address
sfjmt 3:b0a1b4b24d3c 493 // sendMes.setArgs("i", 1);//type , value
sfjmt 3:b0a1b4b24d3c 494 // osc.sendOsc(&sendMes);//send!
sfjmt 3:b0a1b4b24d3c 495 // }
sfjmt 3:b0a1b4b24d3c 496 // }
sfjmt 3:b0a1b4b24d3c 497 }