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
RF22Datagram.cpp@9:46fb41f4259d, 2013-08-29 (annotated)
- 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?
User | Revision | Line number | New 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 |