Uploaded from my local repository
[433Utils_NP] / rc-switch / examples / ReceiveDemo_Advanced / output.ino
1 void output(unsigned long decimal, unsigned int length, unsigned int delay, unsigned int* raw, unsigned int protocol) {
2
3   if (decimal == 0) {
4     Serial.print("Unknown encoding.");
5   } else {
6     char* b = dec2binWzerofill(decimal, length);
7     Serial.print("Decimal: ");
8     Serial.print(decimal);
9     Serial.print(" (");
10     Serial.print( length );
11     Serial.print("Bit) Binary: ");
12     Serial.print( b );
13     Serial.print(" Tri-State: ");
14     Serial.print( bin2tristate( b) );
15     Serial.print(" PulseLength: ");
16     Serial.print(delay);
17     Serial.print(" microseconds");
18     Serial.print(" Protocol: ");
19     Serial.println(protocol);
20   }
21   
22   Serial.print("Raw data: ");
23   for (unsigned int i=0; i<= length*2; i++) {
24     Serial.print(raw[i]);
25     Serial.print(",");
26   }
27   Serial.println();
28   Serial.println();
29 }
30
31
32 static const char* bin2tristate(char* bin) {
33   static char returnValue[50];
34   int pos = 0;
35   int pos2 = 0;
36   while (bin[pos]!='\0' && bin[pos+1]!='\0') {
37     if (bin[pos]=='0' && bin[pos+1]=='0') {
38       returnValue[pos2] = '0';
39     } else if (bin[pos]=='1' && bin[pos+1]=='1') {
40       returnValue[pos2] = '1';
41     } else if (bin[pos]=='0' && bin[pos+1]=='1') {
42       returnValue[pos2] = 'F';
43     } else {
44       return "not applicable";
45     }
46     pos = pos+2;
47     pos2++;
48   }
49   returnValue[pos2] = '\0';
50   return returnValue;
51 }
52
Contact me: dev (at) shalnoff (dot) com
PGP fingerprint: A6B8 3B23 6013 F18A 0C71 198B 83D8 C64D 917A 5717