Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP
Fork of SystemManagement by
Libs/XbeeManager/XbeeManager.cpp@33:6bc82b6b62e5, 2015-01-06 (annotated)
- Committer:
- pspatel321
- Date:
- Tue Jan 06 20:45:26 2015 +0000
- Revision:
- 33:6bc82b6b62e5
- Child:
- 34:18bcf276d3bf
Updated IDs to match AMS, added a constants.h file.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| pspatel321 | 33:6bc82b6b62e5 | 1 | #include "XbeeManager.h" |
| pspatel321 | 33:6bc82b6b62e5 | 2 | |
| pspatel321 | 33:6bc82b6b62e5 | 3 | XbeeManager::XbeeManager(CANxbee* _x1, CANxbee* _x2) |
| pspatel321 | 33:6bc82b6b62e5 | 4 | { |
| pspatel321 | 33:6bc82b6b62e5 | 5 | x1 = _x1; |
| pspatel321 | 33:6bc82b6b62e5 | 6 | x2 = _x2; |
| pspatel321 | 33:6bc82b6b62e5 | 7 | alternate = false; |
| pspatel321 | 33:6bc82b6b62e5 | 8 | extraAvail = false; |
| pspatel321 | 33:6bc82b6b62e5 | 9 | counterX1in = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 10 | counterX2in = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 11 | counterX1out = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 12 | counterX2out = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 13 | } |
| pspatel321 | 33:6bc82b6b62e5 | 14 | |
| pspatel321 | 33:6bc82b6b62e5 | 15 | bool XbeeManager::send(CANMessage &msg) |
| pspatel321 | 33:6bc82b6b62e5 | 16 | { |
| pspatel321 | 33:6bc82b6b62e5 | 17 | alternate = !alternate; |
| pspatel321 | 33:6bc82b6b62e5 | 18 | if (alternate) { |
| pspatel321 | 33:6bc82b6b62e5 | 19 | if (x1->send(msg)) { |
| pspatel321 | 33:6bc82b6b62e5 | 20 | counterX1out++; |
| pspatel321 | 33:6bc82b6b62e5 | 21 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 22 | } |
| pspatel321 | 33:6bc82b6b62e5 | 23 | } else { |
| pspatel321 | 33:6bc82b6b62e5 | 24 | if (x2->send(msg)) { |
| pspatel321 | 33:6bc82b6b62e5 | 25 | counterX2out++; |
| pspatel321 | 33:6bc82b6b62e5 | 26 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 27 | } |
| pspatel321 | 33:6bc82b6b62e5 | 28 | } |
| pspatel321 | 33:6bc82b6b62e5 | 29 | return false; |
| pspatel321 | 33:6bc82b6b62e5 | 30 | } |
| pspatel321 | 33:6bc82b6b62e5 | 31 | |
| pspatel321 | 33:6bc82b6b62e5 | 32 | bool XbeeManager::receive(CANMessage &msg) |
| pspatel321 | 33:6bc82b6b62e5 | 33 | { |
| pspatel321 | 33:6bc82b6b62e5 | 34 | if (extraAvail) { |
| pspatel321 | 33:6bc82b6b62e5 | 35 | extraAvail = false; |
| pspatel321 | 33:6bc82b6b62e5 | 36 | memcpy((void*)&msg, (void*)&extra, sizeof(CANMessage)); |
| pspatel321 | 33:6bc82b6b62e5 | 37 | counterX2in++; |
| pspatel321 | 33:6bc82b6b62e5 | 38 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 39 | } |
| pspatel321 | 33:6bc82b6b62e5 | 40 | if (x1->receive(msg)) { |
| pspatel321 | 33:6bc82b6b62e5 | 41 | if (x2->receive(extra)) { |
| pspatel321 | 33:6bc82b6b62e5 | 42 | extraAvail = true; |
| pspatel321 | 33:6bc82b6b62e5 | 43 | } |
| pspatel321 | 33:6bc82b6b62e5 | 44 | counterX1in++; |
| pspatel321 | 33:6bc82b6b62e5 | 45 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 46 | } else { |
| pspatel321 | 33:6bc82b6b62e5 | 47 | if (x2->receive(msg)) { |
| pspatel321 | 33:6bc82b6b62e5 | 48 | counterX2in++; |
| pspatel321 | 33:6bc82b6b62e5 | 49 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 50 | } |
| pspatel321 | 33:6bc82b6b62e5 | 51 | } |
| pspatel321 | 33:6bc82b6b62e5 | 52 | return false; |
| pspatel321 | 33:6bc82b6b62e5 | 53 | } |
