Update IRrecvDumpV2.ino

Fixed presentation & 2 bugs.

Presentation: No longer display leading space in timings, as is confusing to users & essentially irrelevant.
Bug Fix 1: rawData was starting with a space & would not work with sendRaw
Bug Fix 2: chaned x from unsigned int to nsigend long to avoid potential overflow on integer multiplication.

very similar to recent changes to IRrecDump #167  #207
This commit is contained in:
AnalysIR
2015-08-25 01:00:56 +01:00
parent 646a93a9cd
commit 54e22eba82

View File

@@ -6,7 +6,7 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Tell IRremote which Arduino pin is connected to the IR Receiver (TSOP4838) // Tell IRremote which Arduino pin is connected to the IR Receiver (TSOP4838)
// //
int recvPin = 6; int recvPin = 11;
IRrecv irrecv(recvPin); IRrecv irrecv(recvPin);
//+============================================================================= //+=============================================================================
@@ -92,10 +92,9 @@ void dumpRaw (decode_results *results)
Serial.print("Timing["); Serial.print("Timing[");
Serial.print(results->rawlen, DEC); Serial.print(results->rawlen, DEC);
Serial.println("]: "); Serial.println("]: ");
Serial.print(" -");
Serial.println(results->rawbuf[0] * USECPERTICK, DEC);
for (int i = 1; i < results->rawlen; i++) { for (int i = 1; i < results->rawlen; i++) {
unsigned int x = results->rawbuf[i] * USECPERTICK; unsigned long x = results->rawbuf[i] * USECPERTICK;
if (!(i & 1)) { // even if (!(i & 1)) { // even
Serial.print("-"); Serial.print("-");
if (x < 1000) Serial.print(" ") ; if (x < 1000) Serial.print(" ") ;
@@ -109,7 +108,7 @@ void dumpRaw (decode_results *results)
Serial.print(x, DEC); Serial.print(x, DEC);
Serial.print(", "); Serial.print(", ");
} }
if (!(i%8)) Serial.println(""); if (!(i % 8)) Serial.println("");
} }
Serial.println(""); // Newline Serial.println(""); // Newline
} }
@@ -126,10 +125,10 @@ void dumpCode (decode_results *results)
Serial.print("] = {"); // Start declaration Serial.print("] = {"); // Start declaration
// Dump data // Dump data
for (int i = 0; i < results->rawlen; i++) { for (int i = 1; i < results->rawlen; i++) {
Serial.print(results->rawbuf[i] * USECPERTICK, DEC); Serial.print(results->rawbuf[i] * USECPERTICK, DEC);
Serial.print(","); Serial.print(",");
if (!(i&1)) Serial.print(" "); if (!(i & 1)) Serial.print(" ");
} }
// End declaration // End declaration
@@ -143,17 +142,17 @@ void dumpCode (decode_results *results)
// Newline // Newline
Serial.println(""); Serial.println("");
// Now dump "known" codes // Now dump "known" codes
if (results->decode_type != UNKNOWN) { if (results->decode_type != UNKNOWN) {
// Some protocols have an address // Some protocols have an address
if (results->decode_type == PANASONIC) { if (results->decode_type == PANASONIC) {
Serial.print("unsigned int addr = 0x"); Serial.print("unsigned int addr = 0x");
Serial.print(results->address, HEX); Serial.print(results->address, HEX);
Serial.println(";"); Serial.println(";");
} }
// All protocols have data // All protocols have data
Serial.print("unsigned int data = 0x"); Serial.print("unsigned int data = 0x");
Serial.print(results->value, HEX); Serial.print(results->value, HEX);
@@ -166,14 +165,13 @@ void dumpCode (decode_results *results)
// //
void loop ( ) void loop ( )
{ {
decode_results results; // Somewhere to store the results decode_results results; // Somewhere to store the results
if (irrecv.decode(&results)) { // Grab an IR code if (irrecv.decode(&results)) { // Grab an IR code
dumpInfo(&results); // Output the results dumpInfo(&results); // Output the results
dumpRaw(&results); // Output the results in RAW format dumpRaw(&results); // Output the results in RAW format
dumpCode(&results); // Output the results as source code dumpCode(&results); // Output the results as source code
Serial.println(""); // Blank line between entries Serial.println(""); // Blank line between entries
irrecv.resume(); // Prepare for the next value irrecv.resume(); // Prepare for the next value
} }
} }