Programm for decoding radio-signals sent by a ETH-Window-Shutter-Contact, received with a RFM12B-module

Dependencies:   TextLCD mbed

main.cpp

Committer:
charly
Date:
2011-04-07
Revision:
1:fc72e0bdb693
Parent:
0:96794c9fc5a3

File content as of revision 1:fc72e0bdb693:

#include "mbed.h"

#include "TextLCD.h"

#include "eth_comfort.h"
#include "rfm.h"
#include "rfm12b.h"

/*!
 * \file       main.cpp
 * \brief      Show the messages from ETH-Radio-Shutters on serial port and lcd
 * \author     Karl Zweimüller
 */

TextLCD lcd(p30, p29, p28, p27, p26, p25, TextLCD::LCD16x2); // rs, e, d0-d3

eth_comfort eth_comf(p11, p12, p13, p14, p18, LED4); // mosi, miso, sclk, cs, rxdata, rxled

Serial pc(USBTX, USBRX); // tx, rx

// mbed LEDs
/*
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
*/

//---------------------------------------------------------------------
//
//---------------------------------------------------------------------

int main() {

    eth_message message;

    pc.baud(115200);

    pc.printf("\n\rConnected to mbed\n\r");
    lcd.printf("Hello!\n");

    do {
        // anything new?
        if (eth_comf.readable()) {
            // read the new message and display
            message = eth_comf.getMessage();
            pc.printf("\n\rCounter: %02X\n\r",message.cnt);
            pc.printf(    " Dev-ID: %06X\n\r",message.adr);
            pc.printf(    "    cmd: %0X\n\r",message.cmd);
            //pc.printf(    "cmd&0x80: %0X\n\r",message.cmd&0x80);
            // why doesn't work the following??????????????
            //pc.printf(    "Battery: ");
            //if (message.cmd&0x80 == 0x00) pc.printf("GOOD\n\r"); else pc.printf("WEAK\n\r");

            pc.printf(    "Window : %s\n\r\n\r", (message.cmd&0x01 != 0x00) ? "OPEN" : "CLOSE");
            lcd.cls();
            lcd.printf("#:%02X ID: %06X\n",message.cnt,message.adr);
            lcd.printf("Window : %s\n", (message.cmd&0x01 != 0x00) ? "OPEN" : "CLOSE");
            pc.printf("\n\r");
        }
    } while (1==1);

}