Library for HopeRF RFM22 / RFM22B transceiver module ported to mbed. Original Software from Mike McCauley (mikem@open.com.au) . See http://www.open.com.au/mikem/arduino/RF22/

Dependents:   RF22_MAX_test_Send Geofence_receiver Geofence_sender Geofence_sender ... more

More Info about RFM22-modules like connecting and a demo-program see RF22-Notebook

Committer:
charly
Date:
Mon Sep 02 20:32:54 2013 +0000
Revision:
9:4002a2c117cc
Parent:
5:0386600f3408
removed DEBUG-LEDs LED1 .. LED4 as they make problems on other platforms (KL25Z)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
charly 0:79c6d0071c4c 1 // RF22Datagram.cpp
charly 0:79c6d0071c4c 2 //
charly 0:79c6d0071c4c 3 // Copyright (C) 2011 Mike McCauley
charly 5:0386600f3408 4 // $Id: RF22Datagram.cpp,v 1.3 2012/05/30 01:50:21 mikem Exp $
charly 0:79c6d0071c4c 5 // ported to mbed by Karl Zweimueller
charly 0:79c6d0071c4c 6
charly 0:79c6d0071c4c 7 #include <RF22Datagram.h>
charly 0:79c6d0071c4c 8 //#include <SPI.h>
charly 0:79c6d0071c4c 9
charly 0:79c6d0071c4c 10 RF22Datagram::RF22Datagram(uint8_t thisAddress, PinName slaveSelectPin , PinName mosi, PinName miso, PinName sclk, PinName interrupt )
charly 0:79c6d0071c4c 11 : RF22(slaveSelectPin , mosi, miso, sclk, interrupt )
charly 0:79c6d0071c4c 12 {
charly 0:79c6d0071c4c 13 _thisAddress = thisAddress;
charly 0:79c6d0071c4c 14 }
charly 0:79c6d0071c4c 15
charly 0:79c6d0071c4c 16 ////////////////////////////////////////////////////////////////////
charly 0:79c6d0071c4c 17 // Public methods
charly 0:79c6d0071c4c 18 boolean RF22Datagram::init()
charly 0:79c6d0071c4c 19 {
charly 0:79c6d0071c4c 20 boolean ret = this->RF22::init();
charly 0:79c6d0071c4c 21 if (ret)
charly 0:79c6d0071c4c 22 setThisAddress(_thisAddress);
charly 0:79c6d0071c4c 23 return ret;
charly 0:79c6d0071c4c 24 }
charly 0:79c6d0071c4c 25
charly 0:79c6d0071c4c 26 void RF22Datagram::setThisAddress(uint8_t thisAddress)
charly 0:79c6d0071c4c 27 {
charly 0:79c6d0071c4c 28 _thisAddress = thisAddress;
charly 0:79c6d0071c4c 29 // Check the TO header against RF22_DEFAULT_NODE_ADDRESS
charly 0:79c6d0071c4c 30 spiWrite(RF22_REG_3F_CHECK_HEADER3, _thisAddress);
charly 0:79c6d0071c4c 31 // Use this address in the transmitted FROM header
charly 0:79c6d0071c4c 32 setHeaderFrom(_thisAddress);
charly 0:79c6d0071c4c 33 }
charly 0:79c6d0071c4c 34
charly 0:79c6d0071c4c 35 boolean RF22Datagram::sendto(uint8_t* buf, uint8_t len, uint8_t address)
charly 0:79c6d0071c4c 36 {
charly 0:79c6d0071c4c 37 setHeaderTo(address);
charly 0:79c6d0071c4c 38 return send(buf, len);
charly 0:79c6d0071c4c 39 }
charly 0:79c6d0071c4c 40
charly 0:79c6d0071c4c 41 boolean RF22Datagram::recvfrom(uint8_t* buf, uint8_t* len, uint8_t* from, uint8_t* to, uint8_t* id, uint8_t* flags)
charly 0:79c6d0071c4c 42 {
charly 5:0386600f3408 43 if (recv(buf, len))
charly 5:0386600f3408 44 {
charly 5:0386600f3408 45
charly 0:79c6d0071c4c 46 if (from) *from = headerFrom();
charly 0:79c6d0071c4c 47 if (to) *to = headerTo();
charly 0:79c6d0071c4c 48 if (id) *id = headerId();
charly 0:79c6d0071c4c 49 if (flags) *flags = headerFlags();
charly 5:0386600f3408 50 return true;
charly 5:0386600f3408 51 }
charly 5:0386600f3408 52 return false;
charly 0:79c6d0071c4c 53 }
charly 0:79c6d0071c4c 54
charly 0:79c6d0071c4c 55