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@34:18bcf276d3bf, 2015-01-07 (annotated)
- Committer:
- pspatel321
- Date:
- Wed Jan 07 03:25:50 2015 +0000
- Revision:
- 34:18bcf276d3bf
- Parent:
- 33:6bc82b6b62e5
- Child:
- 38:8efacce315ae
Added serial input. Updated glvBat coulomb counter to match AMS, brought in changes to outDiag and inCommands from AMS.
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 | 34:18bcf276d3bf | 6 | |
| 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 | 34:18bcf276d3bf | 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 | 34:18bcf276d3bf | 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 | 34:18bcf276d3bf | 40 | if (x1.receive(msg)) { |
| pspatel321 | 34:18bcf276d3bf | 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 | 34:18bcf276d3bf | 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 | } |
