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

Fork of RF22 by Karl Zweimüller

Committer:
floha
Date:
Thu Aug 29 21:57:14 2013 +0000
Revision:
9:46fb41f4259d
Parent:
5:0386600f3408
changed the LED default numbers in the RF22 constructor as the former values interfered with pins used on an KL25Z board. The library didn't work with those.

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