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
RF22Datagram.cpp@5:0386600f3408, 2013-03-02 (annotated)
- Committer:
- charly
- Date:
- Sat Mar 02 20:49:07 2013 +0000
- Revision:
- 5:0386600f3408
- Parent:
- 0:79c6d0071c4c
Updated to Revision 1.25 of original package
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 |