aa7534fd684769714f9ab83b381a9fd495b9d9e1
[rtl-433.git] / src / devices / leak.c~
1 #include "rtl_433.h"
2
3 int leak_callback(uint8_t bb[BITBUF_ROWS][BITBUF_COLS], int16_t bits_per_row[BITBUF_ROWS]) {
4     int i,j,k;
5     int rows_used[BITBUF_ROWS];
6     int col_max = 0;
7     int row_cnt = 0;
8
9     // determine what part of bb[][] has non-zero data to avoid
10     // outputting lots of empty rows 
11     for (i=0 ; i<BITBUF_ROWS ; i++) {
12         for (j=BITBUF_COLS - 1 ; j > 0 ; j--) {
13             if (bb[i][j] != 0)
14                 break;
15         }
16         if (j != 0) {
17             rows_used[i] = 1;
18             row_cnt++;
19             if (j > col_max)
20                 col_max = j;
21         } else {
22             rows_used[i] = 0;
23         }
24     }
25
26     fprintf(stderr,"Rows=%d,Cols=%d",row_cnt,col_max);    
27
28     if (row_cnt != 1) {
29         return 0;
30     }
31
32     if (col_max !=4) {
33         return 0;
34     }
35
36     if ((bb[0][0] == 0x76) || (bb[0][0] == 0x77)) {
37
38         fprintf(stdout,"ALARM:TYPE=LEAK,ID=%2X%2X%2X%2X\n",bb[0][0],bb[0][1],bb[0][2],bb[0][3]);
39
40     }
41
42     return 1;
43
44 }
45
46 r_device leak = {
47     /* .id             = */ 20,
48     /* .name           = */ "Leak sensor",
49     /* .modulation     = */ OOK_MANCHESTER,
50     /* .short_limit    = */ 150,
51     /* .long_limit     = */ 0, 
52     /* .reset_limit    = */ 1000,
53     /* .json_callback  = */ &leak_callback,
54 };