Embedded WebSockets Experiment

Dependencies:   mbed MD5

Committer:
nandgate
Date:
Tue Jul 26 05:30:53 2011 +0000
Revision:
0:6dee052a3fa4

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nandgate 0:6dee052a3fa4 1 #include "RGBLed.h"
nandgate 0:6dee052a3fa4 2
nandgate 0:6dee052a3fa4 3 RGBLed::RGBLed() : red(p23), green(p22), blue(p21) {
nandgate 0:6dee052a3fa4 4 red.period(0.001);
nandgate 0:6dee052a3fa4 5 green.period(0.001);
nandgate 0:6dee052a3fa4 6 blue.period(0.001);
nandgate 0:6dee052a3fa4 7
nandgate 0:6dee052a3fa4 8 setRgb(0.1, 0.1, 0.1);
nandgate 0:6dee052a3fa4 9 }
nandgate 0:6dee052a3fa4 10
nandgate 0:6dee052a3fa4 11 void RGBLed::setRgb(char *rgb) {
nandgate 0:6dee052a3fa4 12 float r, g, b;
nandgate 0:6dee052a3fa4 13 int value;
nandgate 0:6dee052a3fa4 14
nandgate 0:6dee052a3fa4 15 value= parseHex(0, *rgb++);
nandgate 0:6dee052a3fa4 16 value= parseHex(value, *rgb++);
nandgate 0:6dee052a3fa4 17 r= value / 255.0f;
nandgate 0:6dee052a3fa4 18
nandgate 0:6dee052a3fa4 19 value= parseHex(0, *rgb++);
nandgate 0:6dee052a3fa4 20 value= parseHex(value, *rgb++);
nandgate 0:6dee052a3fa4 21 g= value / 255.0f;
nandgate 0:6dee052a3fa4 22
nandgate 0:6dee052a3fa4 23 value= parseHex(0, *rgb++);
nandgate 0:6dee052a3fa4 24 value= parseHex(value, *rgb++);
nandgate 0:6dee052a3fa4 25 b= value / 255.0f;
nandgate 0:6dee052a3fa4 26
nandgate 0:6dee052a3fa4 27 setRgb(r, g, b);
nandgate 0:6dee052a3fa4 28 }
nandgate 0:6dee052a3fa4 29
nandgate 0:6dee052a3fa4 30 void RGBLed::setRgb(float r, float g, float b) {
nandgate 0:6dee052a3fa4 31 red= 1.0 - r;
nandgate 0:6dee052a3fa4 32 green= 1.0 - g;
nandgate 0:6dee052a3fa4 33 blue= 1.0 - b;
nandgate 0:6dee052a3fa4 34
nandgate 0:6dee052a3fa4 35 //printf("red:%0.3f green:%0.3f blue%0.3f\n", r, g, b);
nandgate 0:6dee052a3fa4 36 }
nandgate 0:6dee052a3fa4 37
nandgate 0:6dee052a3fa4 38 int RGBLed::parseHex(int value, char hex) {
nandgate 0:6dee052a3fa4 39 switch (hex) {
nandgate 0:6dee052a3fa4 40 case '0':
nandgate 0:6dee052a3fa4 41 return value<<4;
nandgate 0:6dee052a3fa4 42 case '1':
nandgate 0:6dee052a3fa4 43 return value<<4 | 1;
nandgate 0:6dee052a3fa4 44 case '2':
nandgate 0:6dee052a3fa4 45 return value<<4 | 2;
nandgate 0:6dee052a3fa4 46 case '3':
nandgate 0:6dee052a3fa4 47 return value<<4 | 3;
nandgate 0:6dee052a3fa4 48 case '4':
nandgate 0:6dee052a3fa4 49 return value<<4 | 4;
nandgate 0:6dee052a3fa4 50 case '5':
nandgate 0:6dee052a3fa4 51 return value<<4 | 5;
nandgate 0:6dee052a3fa4 52 case '6':
nandgate 0:6dee052a3fa4 53 return value<<4 | 6;
nandgate 0:6dee052a3fa4 54 case '7':
nandgate 0:6dee052a3fa4 55 return value<<4 | 7;
nandgate 0:6dee052a3fa4 56 case '8':
nandgate 0:6dee052a3fa4 57 return value<<4 | 8;
nandgate 0:6dee052a3fa4 58 case '9':
nandgate 0:6dee052a3fa4 59 return value<<4 | 9;
nandgate 0:6dee052a3fa4 60 case 'A':
nandgate 0:6dee052a3fa4 61 case 'a':
nandgate 0:6dee052a3fa4 62 return value<<4 | 10;
nandgate 0:6dee052a3fa4 63 case 'B':
nandgate 0:6dee052a3fa4 64 case 'b':
nandgate 0:6dee052a3fa4 65 return value<<4 | 11;
nandgate 0:6dee052a3fa4 66 case 'C':
nandgate 0:6dee052a3fa4 67 case 'c':
nandgate 0:6dee052a3fa4 68 return value<<4 | 12;
nandgate 0:6dee052a3fa4 69 case 'D':
nandgate 0:6dee052a3fa4 70 case 'd':
nandgate 0:6dee052a3fa4 71 return value<<4 | 13;
nandgate 0:6dee052a3fa4 72 case 'E':
nandgate 0:6dee052a3fa4 73 case 'e':
nandgate 0:6dee052a3fa4 74 return value<<4 | 14;
nandgate 0:6dee052a3fa4 75 case 'F':
nandgate 0:6dee052a3fa4 76 case 'f':
nandgate 0:6dee052a3fa4 77 return value<<4 | 15;
nandgate 0:6dee052a3fa4 78 default:
nandgate 0:6dee052a3fa4 79 return value;
nandgate 0:6dee052a3fa4 80 }
nandgate 0:6dee052a3fa4 81 }