Fri, 20 Jun 2014 17:42:36 +0200
Compiles with 1-wire bus on PC hardware
/***************************************************************************** * Copyright (C) 2014 * * Michiel Broek <mbroek at mbse dot eu> * * This file is part of the mbsePi-apps * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * mbsePi-apps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with EC-65K; see the file COPYING. If not, write to the Free * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *****************************************************************************/ #include "rc433.h" #ifdef HAVE_WIRINGPI_H int main(int argc, char *argv[]) { /* input PIN is hardcoded for testing purposes see https://projects.drogon.net/raspberry-pi/wiringpi/pins/ for pin mapping of the raspberry pi GPIO connector */ int PIN = 2; if (wiringPiSetup () ) return 1; enableReceiveIRQ(PIN); while (1) { if (available()) { unsigned long int value = getReceivedValue(); int bitlen = getReceivedBitlength(); if (value == 0) { printf("Unknown encoding\n"); } else { if (bitlen == 24) { printf("Received 0x%06lx/24 bit %s Protocol: %d", value, dec2binWzerofill(value, bitlen), getReceivedProtocol() ); if ((value & 0x00000000000003f0) == 0x0000000000000150) { printf(" Type A "); printf("%c%c%c%c%c ", (value & 0xc00000) ? '0' : '1', (value & 0x300000) ? '0' : '1', (value & 0x0c0000) ? '0' : '1', (value & 0x030000) ? '0' : '1', (value & 0x00c000) ? '0' : '1'); printf("%c%c%c%c%c ", (value & 0x003000) ? '0' : '1', (value & 0x000c00) ? '0' : '1', (value & 0x000300) ? '0' : '1', (value & 0x0000c0) ? '0' : '1', (value & 0x000030) ? '0' : '1'); } if ((value & 0x000000000000001c) == 0x0000000000000000) { printf(" Type E"); } printf("\n"); } else { printf("Received 0x%lx/%d bit %s Protocol: %d\n", value, bitlen, dec2binWzerofill(value, bitlen), getReceivedProtocol() ); } } resetAvailable(); } else { /* * Don't hog the CPU. */ delay(10); } } return 0; } #else int main(int argc, char *argv[]) { fprintf(stderr, "This program does nothing without the wiringPi library\n"); return 0; } #endif