Uploaded from my local repository
[433Utils_NP] / xPi_utils / send.cpp
1 /*
2  Usage: ./send <systemCode> <unitCode> <command>
3  Command is 0 for OFF and 1 for ON
4  */
5
6 #include "../rc-switch/RCSwitch.h"
7 #include <stdlib.h>
8 #include <stdio.h>
9
10 int main(int argc, char *argv[]) {
11     
12     /*
13      output PIN is hardcoded for testing purposes
14      see https://projects.drogon.net/raspberry-pi/wiringpi/pins/
15      for pin mapping of the raspberry pi GPIO connector
16      */
17     int PIN = 0;
18     const char* code[6] = { "00000", "10000", "01000", "00100", "00010", "00001" };
19
20     if (argc < 4) {
21         printf("Sending 433 MHz remote plug control codes, hardcoded on wiringpi pin %d.\n", PIN);
22         printf("Usage: %s <systemCode> <unitCode> <command> [pulseLength]\n", argv[0]);
23         printf("systemCode  - First five settings of Type A 10 pole DIP switch, e.g. 11111\n");
24         printf("unitCode    - Switch number [1 .. 5] or [10000 .. 00001]\n");
25         printf("command     - 0 for OFF and 1 for ON\n");
26         printf("pulseLength - optional pulse length\n");
27         return -1;
28     }
29
30     char* systemCode = argv[1];
31     const char* unitCode;
32     if (strlen(argv[2]) == 5) {
33         unitCode = argv[2];
34     } else if (atoi(argv[2]) > 0 and atoi(argv[2]) < 6) {
35         unitCode = code[atoi(argv[2])];
36     } else {
37         return -1;
38     }
39     int command  = atoi(argv[3]);
40
41     if (wiringPiSetup () == -1) return 1;
42     printf("sending systemCode[%s] unitCode[%s] command[%i]\n", systemCode, unitCode, command);
43     RCSwitch mySwitch = RCSwitch();
44     if (argv[4] != NULL)
45         mySwitch.setPulseLength(atoi(argv[4]));
46     mySwitch.enableTransmit(PIN);
47     
48     switch(command) {
49         case 1:
50             mySwitch.switchOn(systemCode, unitCode);
51             break;
52         case 0:
53             mySwitch.switchOff(systemCode, unitCode);
54             break;
55         default:
56             printf("command[%i] is unsupported\n", command);
57             return -1;
58     }
59     return 0;
60 }
Contact me: dev (at) shalnoff (dot) com
PGP fingerprint: A6B8 3B23 6013 F18A 0C71 198B 83D8 C64D 917A 5717