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
XbeeManager.cpp
00001 #include "XbeeManager.h" 00002 00003 XbeeManager::XbeeManager(PinName tx1, PinName rx1, PinName tx2, PinName rx2, int baud, int txSize, int rxSize) : 00004 x1(tx1, rx1, baud, txSize, rxSize), x2(tx2, rx2, baud, txSize, rxSize) 00005 { 00006 alternate = false; 00007 extraAvail = false; 00008 counterX1in = 0; 00009 counterX2in = 0; 00010 counterX1out = 0; 00011 counterX2out = 0; 00012 bytesX1out = 0; 00013 bytesX2out = 0; 00014 } 00015 00016 bool XbeeManager::send(CANMessage &msg) 00017 { 00018 alternate = !alternate; 00019 unsigned int length; 00020 if (alternate) { 00021 if (x1.send(msg, &length)) { 00022 counterX1out++; 00023 bytesX1out += length; 00024 return true; 00025 } 00026 } else { 00027 if (x2.send(msg, &length)) { 00028 counterX2out++; 00029 bytesX2out += length; 00030 return true; 00031 } 00032 } 00033 return false; 00034 } 00035 00036 bool XbeeManager::receive(CANMessage &msg) 00037 { 00038 if (extraAvail) { 00039 extraAvail = false; 00040 memcpy((void*)&msg, (void*)&extra, sizeof(CANMessage)); 00041 counterX2in++; 00042 return true; 00043 } 00044 if (x1.receive(msg)) { 00045 if (x2.receive(extra)) { 00046 extraAvail = true; 00047 } 00048 counterX1in++; 00049 return true; 00050 } else { 00051 if (x2.receive(msg)) { 00052 counterX2in++; 00053 return true; 00054 } 00055 } 00056 return false; 00057 }
Generated on Fri Jul 15 2022 06:07:18 by
1.7.2
