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:
charly
Date:
Tue Feb 14 19:39:36 2012 +0000
Revision:
0:79c6d0071c4c
Child:
5:0386600f3408
Initial Port - Quick and Dirty !!!

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 0:79c6d0071c4c 4 // $Id: RF22Datagram.cpp,v 1.2 2011/02/09 22:26:09 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 0:79c6d0071c4c 43 if (from) *from = headerFrom();
charly 0:79c6d0071c4c 44 if (to) *to = headerTo();
charly 0:79c6d0071c4c 45 if (id) *id = headerId();
charly 0:79c6d0071c4c 46 if (flags) *flags = headerFlags();
charly 0:79c6d0071c4c 47 return recv(buf, len);
charly 0:79c6d0071c4c 48 }
charly 0:79c6d0071c4c 49
charly 0:79c6d0071c4c 50
charly 0:79c6d0071c4c 51