Uploaded from my local repository
[433Utils_NP] / xPi_utils / RFSniffer.cpp
1 /*
2   RFSniffer
3
4   Usage: ./RFSniffer [<pulseLength>]
5   [] = optional
6
7   Hacked from http://code.google.com/p/rc-switch/
8   by @justy to provide a handy RF code sniffer
9 */
10
11 #include "../rc-switch/RCSwitch.h"
12 #include <stdlib.h>
13 #include <stdio.h>
14 #include <unistd.h>
15      
16      
17 RCSwitch mySwitch;
18  
19
20
21 int main(int argc, char *argv[]) {
22   
23      // This pin is not the first pin on the RPi GPIO header!
24      // Consult https://projects.drogon.net/raspberry-pi/wiringpi/pins/
25      // for more information.
26      int PIN = 0; // 2
27      
28      if(wiringPiSetup() == -1) {
29        printf("wiringPiSetup failed, exiting...");
30        return 0;
31      }
32
33      int pulseLength = 0;
34      if (argv[1] != NULL) pulseLength = atoi(argv[1]);
35
36      mySwitch = RCSwitch();
37      if (pulseLength != 0) mySwitch.setPulseLength(pulseLength);
38      mySwitch.enableReceive(PIN);  // Receiver on interrupt 0 => that is pin #2
39      
40     
41      while(1) {
42   
43       if (mySwitch.available()) {
44     
45         int value = mySwitch.getReceivedValue();
46     
47         if (value == 0) {
48           printf("Unknown encoding\n");
49         } else {    
50    
51           printf("Received %i\n", mySwitch.getReceivedValue() );
52         }
53     
54         fflush(stdout);
55         mySwitch.resetAvailable();
56       }
57       usleep(100); 
58   
59   }
60
61   exit(0);
62
63
64 }
65
Contact me: dev (at) shalnoff (dot) com
PGP fingerprint: A6B8 3B23 6013 F18A 0C71 198B 83D8 C64D 917A 5717