53 lines
1.3 KiB
Arduino
53 lines
1.3 KiB
Arduino
|
void output(unsigned long decimal, unsigned int length, unsigned int delay, unsigned int* raw, unsigned int protocol) {
|
||
|
|
||
|
if (decimal == 0) {
|
||
|
Serial.print("Unknown encoding.");
|
||
|
} else {
|
||
|
char* b = dec2binWzerofill(decimal, length);
|
||
|
Serial.print("Decimal: ");
|
||
|
Serial.print(decimal);
|
||
|
Serial.print(" (");
|
||
|
Serial.print( length );
|
||
|
Serial.print("Bit) Binary: ");
|
||
|
Serial.print( b );
|
||
|
Serial.print(" Tri-State: ");
|
||
|
Serial.print( bin2tristate( b) );
|
||
|
Serial.print(" PulseLength: ");
|
||
|
Serial.print(delay);
|
||
|
Serial.print(" microseconds");
|
||
|
Serial.print(" Protocol: ");
|
||
|
Serial.println(protocol);
|
||
|
}
|
||
|
|
||
|
Serial.print("Raw data: ");
|
||
|
for (int i=0; i<= length*2; i++) {
|
||
|
Serial.print(raw[i]);
|
||
|
Serial.print(",");
|
||
|
}
|
||
|
Serial.println();
|
||
|
Serial.println();
|
||
|
}
|
||
|
|
||
|
|
||
|
static char* bin2tristate(char* bin) {
|
||
|
char returnValue[50];
|
||
|
int pos = 0;
|
||
|
int pos2 = 0;
|
||
|
while (bin[pos]!='\0' && bin[pos+1]!='\0') {
|
||
|
if (bin[pos]=='0' && bin[pos+1]=='0') {
|
||
|
returnValue[pos2] = '0';
|
||
|
} else if (bin[pos]=='1' && bin[pos+1]=='1') {
|
||
|
returnValue[pos2] = '1';
|
||
|
} else if (bin[pos]=='0' && bin[pos+1]=='1') {
|
||
|
returnValue[pos2] = 'F';
|
||
|
} else {
|
||
|
return "not applicable";
|
||
|
}
|
||
|
pos = pos+2;
|
||
|
pos2++;
|
||
|
}
|
||
|
returnValue[pos2] = '\0';
|
||
|
return returnValue;
|
||
|
}
|
||
|
|