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@39:ddf38df9699e, 2015-02-11 (annotated)
- Committer:
- pspatel321
- Date:
- Wed Feb 11 23:09:57 2015 +0000
- Revision:
- 39:ddf38df9699e
- Parent:
- 38:8efacce315ae
Updated CAN IDs for datalogging. Changed profile encoding.
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 | 34:18bcf276d3bf | 3 | XbeeManager::XbeeManager(PinName tx1, PinName rx1, PinName tx2, PinName rx2, int baud, int txSize, int rxSize) : |
| pspatel321 | 34:18bcf276d3bf | 4 | x1(tx1, rx1, baud, txSize, rxSize), x2(tx2, rx2, baud, txSize, rxSize) |
| pspatel321 | 33:6bc82b6b62e5 | 5 | { |
| pspatel321 | 33:6bc82b6b62e5 | 6 | alternate = false; |
| pspatel321 | 33:6bc82b6b62e5 | 7 | extraAvail = false; |
| pspatel321 | 33:6bc82b6b62e5 | 8 | counterX1in = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 9 | counterX2in = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 10 | counterX1out = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 11 | counterX2out = 0; |
| pspatel321 | 38:8efacce315ae | 12 | bytesX1out = 0; |
| pspatel321 | 38:8efacce315ae | 13 | bytesX2out = 0; |
| pspatel321 | 33:6bc82b6b62e5 | 14 | } |
| pspatel321 | 33:6bc82b6b62e5 | 15 | |
| pspatel321 | 33:6bc82b6b62e5 | 16 | bool XbeeManager::send(CANMessage &msg) |
| pspatel321 | 33:6bc82b6b62e5 | 17 | { |
| pspatel321 | 33:6bc82b6b62e5 | 18 | alternate = !alternate; |
| pspatel321 | 38:8efacce315ae | 19 | unsigned int length; |
| pspatel321 | 33:6bc82b6b62e5 | 20 | if (alternate) { |
| pspatel321 | 38:8efacce315ae | 21 | if (x1.send(msg, &length)) { |
| pspatel321 | 33:6bc82b6b62e5 | 22 | counterX1out++; |
| pspatel321 | 38:8efacce315ae | 23 | bytesX1out += length; |
| pspatel321 | 33:6bc82b6b62e5 | 24 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 25 | } |
| pspatel321 | 33:6bc82b6b62e5 | 26 | } else { |
| pspatel321 | 38:8efacce315ae | 27 | if (x2.send(msg, &length)) { |
| pspatel321 | 33:6bc82b6b62e5 | 28 | counterX2out++; |
| pspatel321 | 38:8efacce315ae | 29 | bytesX2out += length; |
| pspatel321 | 38:8efacce315ae | 30 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 31 | } |
| pspatel321 | 33:6bc82b6b62e5 | 32 | } |
| pspatel321 | 33:6bc82b6b62e5 | 33 | return false; |
| pspatel321 | 33:6bc82b6b62e5 | 34 | } |
| pspatel321 | 33:6bc82b6b62e5 | 35 | |
| pspatel321 | 33:6bc82b6b62e5 | 36 | bool XbeeManager::receive(CANMessage &msg) |
| pspatel321 | 33:6bc82b6b62e5 | 37 | { |
| pspatel321 | 33:6bc82b6b62e5 | 38 | if (extraAvail) { |
| pspatel321 | 33:6bc82b6b62e5 | 39 | extraAvail = false; |
| pspatel321 | 33:6bc82b6b62e5 | 40 | memcpy((void*)&msg, (void*)&extra, sizeof(CANMessage)); |
| pspatel321 | 33:6bc82b6b62e5 | 41 | counterX2in++; |
| pspatel321 | 33:6bc82b6b62e5 | 42 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 43 | } |
| pspatel321 | 34:18bcf276d3bf | 44 | if (x1.receive(msg)) { |
| pspatel321 | 34:18bcf276d3bf | 45 | if (x2.receive(extra)) { |
| pspatel321 | 33:6bc82b6b62e5 | 46 | extraAvail = true; |
| pspatel321 | 33:6bc82b6b62e5 | 47 | } |
| pspatel321 | 33:6bc82b6b62e5 | 48 | counterX1in++; |
| pspatel321 | 33:6bc82b6b62e5 | 49 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 50 | } else { |
| pspatel321 | 34:18bcf276d3bf | 51 | if (x2.receive(msg)) { |
| pspatel321 | 33:6bc82b6b62e5 | 52 | counterX2in++; |
| pspatel321 | 33:6bc82b6b62e5 | 53 | return true; |
| pspatel321 | 33:6bc82b6b62e5 | 54 | } |
| pspatel321 | 33:6bc82b6b62e5 | 55 | } |
| pspatel321 | 33:6bc82b6b62e5 | 56 | return false; |
| pspatel321 | 33:6bc82b6b62e5 | 57 | } |
